fix(l2): cache pending L1 messages in L1->L2 monitor widget #5728
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
The L1->L2 messages monitor widget was calling get_pending_l1_messages once per row when computing L1ToL2MessageStatus::for_tx, both for existing items and for each new log. This resulted in many redundant eth_call requests to the CommonBridge contract on every tick. The watcher code already uses a snapshot pattern instead, fetching the pending L1 transaction hashes once and reusing them for contains checks.
Description
This change aligns the widget with that pattern by fetching pending hashes once per tick in on_tick and passing a slice into for_tx_with_pending, refresh_items and process_logs, preserving semantics while significantly reducing RPC load.