Commit 5dc3270
authored
fix(sequencer): bind vote-only multicalls to target slot under pipelining (#23090)
Slashing votes are EIP-712-signed for `targetSlot` (the pipelined
proposal slot, not the wall-clock slot) and submitted via
Multicall3.aggregate3 with allowFailure: true. The contract verifies the
signature against getCurrentSlot() derived from block.timestamp, so the
multicall must mine in the slot the vote was signed for or the inner
sub-call reverts silently and VoteCast is never emitted.
Two paths in the sequencer were sending vote-only multicalls without
delaying submission to the target-slot start:
1. CheckpointProposalJob.execute() if (!broadcast) branch — proposer
enqueued votes but did not build a checkpoint.
2. Sequencer.tryVoteWhenSyncFails — proposer enqueued votes in a slot
where archiver sync had not caught up.
Both now route through `sendRequestsAt(getTimestampForSlot(targetSlot))`
when proposer pipelining is enabled. The sync-failure path uses
fire-and-forget so the wait does not block the sequencer's work loop.1 parent 7513e78 commit 5dc3270
2 files changed
Lines changed: 26 additions & 4 deletions
Lines changed: 11 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
198 | 198 | | |
199 | 199 | | |
200 | 200 | | |
201 | | - | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
202 | 207 | | |
203 | | - | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
204 | 213 | | |
205 | 214 | | |
206 | 215 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
| 17 | + | |
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| |||
785 | 785 | | |
786 | 786 | | |
787 | 787 | | |
788 | | - | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
| 791 | + | |
| 792 | + | |
| 793 | + | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
789 | 802 | | |
790 | 803 | | |
791 | 804 | | |
| |||
0 commit comments