Skip to content

fix(pipe): fix the missing logic for handling discarded txns#110

Merged
nekomoto911 merged 1 commit into
mainfrom
fix_discarded_txns
Jun 20, 2025
Merged

fix(pipe): fix the missing logic for handling discarded txns#110
nekomoto911 merged 1 commit into
mainfrom
fix_discarded_txns

Conversation

@nekomoto911

Copy link
Copy Markdown
Collaborator

No description provided.

@nekomoto911 nekomoto911 merged commit a9914e1 into main Jun 20, 2025
12 of 40 checks passed
@nekomoto911 nekomoto911 deleted the fix_discarded_txns branch June 20, 2025 12:02
Richard1048576 added a commit to Richard1048576/gravity-reth that referenced this pull request Jul 12, 2026
Neutralise the EIP-7702 nonce-bump executor-halt class at the pre-execution transaction
filter, gated by a compile-time const EIP7702_LOCKDOWN (currently `true` — this build ships
it active) until the durable executor-skip fix (gravity-reth Galxe#388 + grevm Galxe#110) is deployed.

Three deterministic drops against certified block-start state, applied when the lockdown is on:
  L1  reject every type-4 (SetCode) tx      - no new delegations (covers audit#822)
  L2  drop any tx FROM a delegated account   - its execution-time CREATE cannot leave a
                                               same-block stale tx (audit#838)
  L3  drop any tx TO a delegated account      - no inbound CALL triggers the delegated CREATE

The filter's in-block simulation models the 7702 authorization-apply nonce bump (audit#822)
but not the execution-time CREATE bump (audit#838): a delegated account's current-nonce tx
reached the executor as NonceTooLow and panicked it at lib.rs:1137. Dropped txs are excluded
via the existing invalid_tx_idxs path, so the drop itself cannot halt the chain.

EIP7702_LOCKDOWN is a compile-time const (not a CLI/env flag) because it is consensus-critical:
a per-node value would fork the chain, so fleet-consistency is made structural by baking it
into the binary — the coordinated upgrade IS the binary version. Set it back to false and
rebuild to revert once the skip fix is deployed and 7702 can be re-enabled.

Trade-off: freezes delegated accounts' tx origination and disables new 7702 usage while active.

Tests: filter_invalid_txs takes an eip7702_lockdown param so the unit tests cover both states
(L1/L2/L3 + the audit#838 attack shape + non-delegated-traffic-unaffected). The full-pipeline
regression test test_finding_a_lockdown_survives_grevm drives OrderedBlock -> filter_invalid_txs
-> executor: with the lockdown the attack block survives; without it the executor panics at
lib.rs:1137 with NonceTooLow{tx:0,state:1}. The P-13/P-14 7702-delegation positive controls are
#[ignore]'d while the lockdown ships (7702 delegation is disabled by it).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant