Skip to content

Instantly share code, notes, and snippets.

@banteg
Last active September 14, 2026 22:11
Show Gist options
  • Select an option

  • Save banteg/d32a87ed2c47dfa4dbf1958235f8bf82 to your computer and use it in GitHub Desktop.

Select an option

Save banteg/d32a87ed2c47dfa4dbf1958235f8bf82 to your computer and use it in GitHub Desktop.
Parity trace APIs: cross-client disagreements and proposed harmonization

Outstanding trace API harmonization decisions

Updated September 15, 2026. Recommendations are proposals for discussion, not an adopted standard or a vote-based correctness claim. Results apply to the pinned builds and generated fixtures; this adversarial sample is not a client-wide compatibility score.

The initial matrix used Reth 2.5.2+5a6940e3, Erigon 3.7.0-dev-c5a056d2, Nethermind 1.40.0-unstable+9cfa9cf5 and Besu 26.8.1 on one 48-block Prague chain. It contained 60 trace probes and six controls; eight trace probes were exact matches across all four. The extended pass uses the same four builds plus Reth nightly 2.5.2+95823365. The nightly predates the merged inspector fix and is not a fifth independent client vote.

What the additional coverage changes

  • Query contracts now have stronger discriminators: positive nested lookup, null/one-sided filters, CREATE/SELFDESTRUCT matching, pagination and fork-boundary completeness.
  • New reporting defects: Besu leaks a sibling's revert status; Nethermind rewrites a 7,400-gas opcode cost and emits malformed JSON for several rejected raw transactions; pre-Cancun deletion is incompletely reported by Reth. Nonempty stateDiff-only output and authorization replacement/clearing extend earlier findings.
  • Useful agreement: dependent storage writes survive between callMany entries, a reverting write rolls back, independent simulations remain isolated, pagination is consistent on a fixed range, MCOPY activation follows Cancun, and withdrawal balances agree.
  • Context matters: Besu range traces diverge at several fork boundaries; Erigon exposes the following block's beacon-root update in historical queries. These should be investigated separately from cosmetic schema differences.

Suggested meeting order

  1. Agree the supported-method profile and query semantics (H01–H06, H23).
  2. Settle output/error conventions and signed-versus-unsigned simulation rules (H07–H17, H25).
  3. Route reporting defects and historical-context discrepancies to focused client work (H18–H28).

Recommended starting position: singular tree-path lookup; OR within address arrays and AND between them; empty filters mean unconstrained; null means not found; explicit errors mean unavailable history. Preserve actual execution bytes/state and apply the selected block's fork rules. These are proposed meanings, not majority-vote verdicts.

The request appendix contains 125 evidence references. Raw responses, chain inputs and runnable fixtures are retained separately for contribution.

Decisions and recommendations

H01 — Method coverage

Disposition: Scope decision

Observed: Besu returns -32601 for trace_replayTransaction. Erigon, Nethermind and Reth implement it. Besu supports block replay, so individual and block replay coverage differ.

Recommendation: Specify each method independently; make the implemented subset discoverable or explicitly declared. An unsupported method should return -32601, never a fabricated empty result. Add individual replay to Besu when practical rather than removing it from the common API.

Why: A caller should be able to distinguish an unsupported operation from a valid query with no trace.

Next: Agree the optional-method/conformance model at the meeting; no assumption of adopted optional status or Geth support.

Reproducers: replay-7702-stateDiff, replay-7702-trace, replay-7702-vmTrace, replay-block-tree, replay-missing, replay-revert-stateDiff, replay-revert-trace, replay-revert-vmTrace, replay-transfer-stateDiff, replay-transfer-trace, replay-transfer-vmTrace, replay-tree-stateDiff, replay-tree-trace, replay-tree-vmTrace.

H02 — trace_get selector and return shape

Disposition: Spec decision

Observed: For a simple transfer, [] returns the root object in Erigon/Besu, null in Reth and [] in Nethermind. On the call tree, ["0x0"] returns the first child in Erigon/Besu and the root in Reth. Nethermind returns arrays; ["0x0","0x0"] returns two records rather than a nested-path lookup. A positive ["0x6","0x0"] probe selects the actual nested SELFDESTRUCT in Erigon/Besu. Reth returns null; Nethermind returns two unrelated records at [6] and [0].

Recommendation: Treat the argument as one traceAddress path: [] is root, [0] first child, [6,0] a nested child. Return one trace object, or null when the transaction/path does not exist. Specify the wire encoding of indices explicitly (prefer hex quantities for compatibility with these requests).

Why: The lookup argument should identify the same path that traceAddress describes, with a singular result matching the method name.

Next: Choose the tree-path contract and align Reth/Nethermind; the positive nested discriminator is now available.

Reproducers: get-missing, get-missing-tx, get-nested, get-one, get-root, get-transfer-root, get-zero, semantic-01--get-nested-positive, semantic-01--get-nested-parent.

H03 — Filter composition and mode

Disposition: Spec decision

Observed: Both address lists produce six records in Erigon/Reth and one in Nethermind/Besu: the default splits OR versus AND. Explicit intersection produces the same one-record result in Erigon/Nethermind/Reth; Besu rejects the extra mode parameter. The union request does not make Nethermind join Erigon/Reth. With intersection and only one nonempty side, Erigon returns zero while Reth/Nethermind return matching records; Besu rejects mode. Unknown mode is rejected by Reth/Besu but silently behaves like the default in Erigon/Nethermind.

Recommendation: Use OR within each address list and AND between fromAddress and toAddress. One unconstrained side should not suppress matches. If union is retained, expose it explicitly as an optional extension and reject unsupported mode values rather than silently ignoring their meaning.

Why: Supplying a second filter normally narrows a search; combining two sets of alternatives should be explicit.

Next: Settle boolean composition and extension validation together; one-sided and unknown-mode fixtures are available.

Reproducers: filter-both, filter-from, filter-intersection, filter-to, filter-union, semantic-01--filter-from-only-intersection, semantic-01--filter-to-only-intersection, semantic-01--filter-both-unknown-mode.

H04 — Empty address lists

Disposition: Spec decision

Observed: Explicit fromAddress:[] and toAddress:[] preserve each client’s unfiltered result in Erigon/Reth/Besu; Nethermind returns zero. Unfiltered lists themselves differ because of reward records and trace fields. The one-empty-side probes confirm Nethermind still returns zero. Null lists are accepted as unrestricted by Erigon/Nethermind/Besu and rejected as invalid params by Reth.

Recommendation: Treat an omitted list or [] as no restriction. If null is accepted, give it the same meaning; document whether null is accepted at all. A supplied nonempty list restricts that side.

Why: Programmatically adding an empty optional filter should not erase all results.

Next: Agree whether null is legal; distinguish that schema choice from empty-array matching and special-action membership.

Reproducers: filter-all, filter-empty, semantic-01--filter-both-null, semantic-01--filter-from-empty-to-set, semantic-01--filter-to-empty-from-set.

H05 — Post-merge reward records

Disposition: Spec decision

Observed: Besu/Nethermind append a zero-value rewardType:block record on this PoS chain; Erigon/Reth omit it. Nethermind omits several inapplicable fields where Besu emits null. This changes trace_block and unfiltered trace_filter counts. The 72-block fork chain now covers real PoW rewards and the Merge boundary. All four show a 100 Gwei withdrawal balance increase at block 52, but none returns a trace_filter match for that withdrawal recipient. This is not evidence that trace_filter enumerates every balance change.

Recommendation: Do not emit a synthetic PoW block reward on a PoS block. Represent real protocol balance changes only under explicitly defined semantics; keep transaction tips in transaction accounting. Define nullable localization fields separately for non-transaction records.

Why: A reward trace should correspond to a real protocol operation, not a zero-value placeholder that changes pagination.

Next: Specify which protocol operations belong in this namespace. Keep withdrawals and system transitions separate from transaction call traces unless explicitly included.

Reproducers: block-transfer, block-tree, filter-all, filter-empty, fork-followup-01--withdrawal-balance-51, fork-followup-01--withdrawal-balance-52, fork-followup-01--withdrawal-filter-52, fork-followup-01--withdrawal-block-52.

H06 — Missing transactions and paths

Disposition: Spec decision / client exception

Observed: trace_transaction for an unknown hash returns null in Erigon/Reth, [] in Besu, and -32000 in Nethermind. Individual replay returns null in Erigon, -32000 in Nethermind, -32001 in Reth; Besu lacks the method. Nethermind trace_get on an unknown hash exposes an ArgumentNullException as -32602. In an explicitly pruned Reth fixture, old headers and receipts remain available and a latest-state call succeeds, while trace_transaction, trace_replayTransaction, trace_block and trace_filter for the old range return -32603 with a state-is-pruned message. Offline pruning removed 706 entries before the test; unknown-block probes are kept separate.

Recommendation: Return null for a well-formed lookup of an unknown transaction or trace path, consistently across these methods. Reserve [] for a successfully evaluated collection with no elements. Preserve -32601 for unsupported methods and use errors for unavailable/pruned state instead of pretending data is absent.

Why: Not found, empty, unsupported and unavailable are different states that callers need to distinguish.

Next: Choose an unavailable-history error contract. Extend the retention fixture to Erigon, Nethermind and Besu; the current pruning result is Reth-only.

Reproducers: get-missing, get-missing-tx, get-nested, replay-missing, transaction-missing, pruned-02--old-header, pruned-02--old-receipt, pruned-02--latest-call, pruned-02--old-transaction, pruned-02--old-replay, pruned-02--old-block, pruned-02--old-filter.

H07 — Replay transactionHash field

Disposition: Spec decision

Observed: Erigon/Nethermind include transactionHash in individual replay envelopes; Reth omits it. For the simple transfer’s trace-only replay this is the only Erigon–Reth difference. Block replay already agrees on the transfer block.

Recommendation: Include transactionHash in both individual and per-transaction block-replay envelopes. Do not require it for unsigned trace_call or trace_callMany simulations.

Why: A replay object should keep its identity when stored or moved out of its original request context.

Next: Confirm the envelope schema and add one serialization test; treat missing support in Besu separately under H01.

Reproducers: replay-7702-stateDiff, replay-7702-trace, replay-7702-vmTrace, replay-block-tree, replay-missing, replay-revert-stateDiff, replay-revert-trace, replay-revert-vmTrace, replay-transfer-stateDiff, replay-transfer-trace, replay-transfer-vmTrace, replay-tree-stateDiff, replay-tree-trace, replay-tree-vmTrace.

H08 — Empty output and unrequested components

Disposition: Spec decision / likely reporting fix

Observed: Nethermind emits output:null in stateDiff-only cases where the executed return bytes are empty; the other successful clients emit "0x". The transfer’s trace and vmTrace-only calls agree across all four, so this depends on trace selection. A contract returning the nonempty word 42 confirms Nethermind output:null under ["stateDiff"], while all other builds return the bytes. Under ["vmTrace"], all return the nonempty output.

Recommendation: Keep a stable envelope: output is the execution return bytes ("0x" when empty); trace is [] when not requested; stateDiff and vmTrace are null when not requested. Requesting a different tracer must not change or erase the returned execution output.

Why: Empty bytes and an unavailable value are different, and selecting an auxiliary view should not change the primary call result.

Next: Preserve the execution return bytes independently of which optional trace components are requested.

Reproducers: call-transfer-stateDiff, replay-7702-stateDiff, replay-revert-stateDiff, replay-transfer-stateDiff, replay-tree-stateDiff, repeat-01--state-only-nonempty-output.

H09 — Failed frame results and error labels

Disposition: Spec decision

Observed: Erigon/Reth retain REVERT output and gasUsed in result; Besu/Nethermind omit that result in the replayed tree. Static-write failure labels differ across all four. Besu also supplies revertReason on a top-level revert. Omitted result versus result:null occurs on exceptional frames.

Recommendation: Always mark failure explicitly, preserve REVERT return bytes and measured gasUsed when available, and define a small stable set of failure kinds. Human-readable explanations or decoded revertReason may be optional. Use null for an inapplicable result; never manufacture a successful result for an exceptional halt.

Why: Consumers need the raw revert data and failure identity without parsing implementation-specific English or mistaking a failure for success.

Next: Agree exact field placement and stable failure kinds. Separate REVERT, exceptional halt and SELFDESTRUCT/no-result cases in fixtures; do not require identical free-text descriptions.

Reproducers: block-tree, call-many, call-many-priced, call-many-transfers, call-tree-trace, call-tree-trace-priced, filter-all, filter-from, filter-to, filter-union, replay-revert-trace, replay-tree-trace, transaction-revert, transaction-tree.

H10 — Creation result field names

Disposition: Spec decision / likely schema fix

Observed: Besu’s CREATE record in the call-tree result uses result.output:"0x" where Erigon uses result.code:"0x". This is separate from vmTrace.code, which should describe executing bytecode. In the mixed CREATE/CREATE2 simulation, all clients produce the same two contract addresses and runtime code. Besu omits creationMethod on both Parity frames; its debug callTracer correctly distinguishes CREATE and CREATE2. This probe does not establish the earlier source-only claim that both would be mislabeled CREATE2.

Recommendation: Use result.address, result.code and result.gasUsed for successful creation. result.code is deployed runtime bytecode, including "0x" for an empty deployment. Use result.output for CALL results; vmTrace.code for executing initcode.

Why: Creation has two different bytecodes—initcode and deployed code—and their field meanings should remain distinct.

Next: Specify creationMethod if it is required; retain the successful mixed-creation probe and investigate historical-method metadata separately.

Reproducers: block-tree, call-constructor, call-constructor-priced, call-tree-trace-priced, replay-block-tree, transaction-tree, repeat-01--call-mixed-create, repeat-01--debug-mixed-create.

H11 — Empty trace-type selection

Disposition: Likely client bug

Observed: With a valid nonzero fee and traceTypes:[], Erigon/Reth/Besu return the same output envelope. Nethermind returns -32603 with “Sequence contains no elements”.

Recommendation: Accept an empty selection, execute the call and return its output with empty/unrequested components. Never leak a collection-reduction exception.

Why: An empty list of auxiliary views is a natural request for just the execution output, and already works identically in three clients.

Next: A focused Nethermind fix and regression fixture can proceed independently of the broader API design.

Reproducers: call-empty-types, call-empty-types-priced.

H12 — Raw-transaction block argument

Disposition: Spec / extension decision

Observed: Reth accepts a third block argument; Erigon/Nethermind/Besu reject that three-argument request with -32602. A nonce-correct two-argument request executes on all four.

Recommendation: Standardize the existing two-argument baseline with an explicit default of latest state. Treat an optional third block selector as a separately negotiated extension until clients adopt it; reject unsupported extra arguments consistently.

Why: The baseline should be usable on all four today without silently changing which state is traced.

Next: Decide whether to add the block selector later. Keep its acceptance test separate from raw transaction execution fidelity.

Reproducers: raw-valid.

H13 — Signed transaction nonce validation

Disposition: Spec decision / likely client fix

Observed: For a signed nonce-0 transaction against state nonce 133, Reth returns nonce-too-low; the other three produce results. Besu’s invalid-nonce result loses stateDiff and the action gas field. With signed nonce 133, all four execute and Besu restores those fields. Further signed-transaction probes cover high nonce, wrong chain, insufficient funds, intrinsic gas too low and fee cap below base fee. Reth rejects all five invalid cases. Erigon/Nethermind accept the high-nonce case; Erigon also simulates the unfunded sender. Besu returns result-shaped partial outcomes for the invalid cases. Nethermind produces malformed JSON for four rejection cases (H25).

Recommendation: For trace_rawTransaction, honor the signed transaction’s nonce and validity rules at the selected state. Reject nonce mismatch with a stable transaction-validation error. Use unsigned trace_call for hypothetical execution that deliberately relaxes admission rules.

Why: A signed transaction is a concrete transaction, so tracing should not silently rewrite its nonce or return a partial-looking success.

Next: Agree admission semantics for signed raw transactions; fix malformed responses independently of that policy choice.

Reproducers: raw-valid-current-nonce, raw-valid-default-block, repeat-01--raw-nonce-high, repeat-01--raw-wrong-chain, repeat-01--raw-insufficient-funds, repeat-01--raw-low-gas, repeat-01--raw-below-basefee.

H14 — Invalid-parameter error codes

Disposition: Spec decision

Observed: Malformed raw bytes return -32602 in Reth/Besu but -32000 in Erigon/Nethermind. Excess positional arguments consistently use -32602, with different messages. Nethermind also misclassifies an unknown transaction as invalid params in trace_get. All but Besu reject a scalar fromAddress; Besu accepts it as a singleton filter. Negative count is rejected by Erigon/Reth and returns [] in Nethermind/Besu. Unknown filter keys are rejected by Reth/Besu and ignored by Erigon/Nethermind.

Recommendation: Use -32602 for malformed encodings, wrong types and unsupported argument shapes. Use a documented execution/validation error for a well-formed but invalid transaction. Keep messages implementation-specific; omit internal stack traces.

Why: Callers should distinguish a malformed request from a valid request that cannot execute, without text matching.

Next: Specify accepted types, bounds and unknown-field handling, then align parameter validation; do not conflate validation with EVM errors.

Reproducers: get-missing-tx, raw-invalid, raw-valid, semantic-01--filter-wrong-address-type, semantic-01--filter-negative-count, semantic-01--filter-unknown-field.

H15 — Unsigned simulation fees and block environment

Disposition: Spec decision / likely environment bug

Observed: For explicit gasPrice:0, Reth/Nethermind execute; Erigon rejects below-base-fee and Besu’s single call returns an internal error. The embedded callenv contract reads BASEFEE as zero in Reth and the actual block value 0x199876 in Nethermind. With a sufficient fee, all four expose 0x199876.

Recommendation: Allow explicit zero-fee unsigned simulations without changing the selected block’s BASEFEE or other block fields. With nonzero supplied fees, use those fees consistently in opcode context and simulated accounting. Apply the same policy to trace_call and trace_callMany; keep strict signed validation separate.

Why: Relaxing transaction admission for a hypothetical call should not silently rewrite the block the caller selected.

Next: Agree the fee-free simulation rule, then fix the block-environment discrepancy. The source contract confirms BASEFEE is returned as word 3; this is more than an error-message difference.

Reproducers: call-constructor, call-constructor-priced, call-many, call-many-priced, call-many-transfers, call-tree-stateDiff, call-tree-stateDiff-priced, call-tree-trace, call-tree-trace-priced, call-tree-vmTrace, call-tree-vmTrace-priced.

H16 — Fee accounting and sequential state diffs

Disposition: Spec decision / likely accounting bug

Observed: In nonce-correct raw tracing, Nethermind/Besu/Reth debit sender value plus gas; Erigon debits only the transferred value while still crediting the fee recipient. Unsigned Reth transfer simulation debits value only and omits the recipient fee credit. All four callMany transfer probes carry the recipient balance 0→1→2 and nonce 133→134→135; their fee diffs still disagree. A dependent storage write(42), reverting write(43), read sequence returns 42 after the revert in every client. Sender nonce advances for each call, and an independent subsequent simulation reads the original zero. Thus the observed accounting differences do not demonstrate broken storage carry-over or rollback.

Recommendation: For signed/raw and mined replay, report the complete actual transition: sender pays value plus gas, fee recipient gets the tip, base fee is burned. For unsigned calls use H15’s documented policy consistently. Each callMany result should describe its own transition from the preceding call’s post-state, not a cumulative diff from the original state.

Why: A state diff should be internally coherent and reconstructible; an ordered multi-call simulation should have one predictable state timeline.

Next: Resolve fee and environment rules while preserving the now-tested storage carry-over, revert rollback and simulation isolation. Broader warm-access/refund behavior remains to test.

Reproducers: call-many, call-many-priced, call-many-transfers, call-transfer-stateDiff, call-tree-stateDiff, call-tree-stateDiff-priced, raw-valid-current-nonce, raw-valid-default-block, replay-block-tree, replay-tree-stateDiff, semantic-01--many-storage-write-read, semantic-01--many-storage-write-revert-read, semantic-01--control-storage-after-many.

H17 — New-account stateDiff encoding

Disposition: Spec decision / likely serializer fix

Observed: For the previously absent transfer recipient, Erigon/Besu use + tags for balance/code/nonce, Nethermind uses + for balance/nonce but code:"=", and Reth uses a * balance change from zero with unchanged code/nonce markers.

Recommendation: Make account existence explicit: + for fields of a newly created account (including empty code and nonce zero), - for deletion, * for a changed existing value, = for unchanged existing fields. If an address already existed with empty code, do not mark it as newly created.

Why: Absent and existing-but-empty are different states; consumers should be able to reconstruct the change without guessing.

Next: Confirm the historical delta model and add pre-funded empty account and deletion fixtures. Current evidence isolates a previously absent recipient.

Reproducers: call-constructor, call-constructor-priced, call-many-transfers, call-transfer-stateDiff, raw-valid, raw-valid-current-nonce, raw-valid-default-block, replay-block-tree, replay-tree-stateDiff.

H18 — EIP-7702 code changes in stateDiff

Disposition: Likely client bug

Observed: The mined authorization replay changes the authority nonce in all three implementing clients. Erigon/Nethermind also report empty code→delegation indicator; Reth reports code:"=". This extends the earlier simulation reproduction to mined replay on the shared chain. Signed type-4 simulations now cover delegation set, replacement, clearing and setting followed by a reverted call. Erigon/Nethermind/Besu report the actual authorization code changes, including changes surviving execution revert; both tested Reth binary images continue to report code:"=". The diagnostic source build with the merged inspector fix also retains code:"=" for authorization clearing and authorization followed by revert.

Recommendation: Report every actual delegation-code transition, including set, replace and clear, independently of account-creation flags. Preserve authorization changes when later execution reverts, according to execution semantics.

Why: stateDiff must include code that changed, even if the account already existed.

Next: Fix account code-change reporting separately; these cases persist after the VM-delta fix.

Reproducers: replay-7702-stateDiff, replay-block-tree, semantic-01--auth-set, semantic-01--auth-replace, semantic-01--auth-clear, semantic-01--auth-set-revert, fixed-01--auth-clear, fixed-01--auth-set-revert.

H19 — vmTrace executing bytecode

Disposition: Likely client bug

Observed: All clients execute the constructor and return runtime 0x01. Erigon/Nethermind/Besu report initcode 0x60016000526001601ff3; Reth reports vmTrace.code:"0x" with nonempty operations. Earlier simulations also reproduced stale/missing delegated bytecode. On delegation set, the two Reth images emit vmTrace.code:0x despite executing the return42 target. On replacement they report the old delegation indicator instead of the newly executed reverting bytecode. Other clients provide the executed target code. The source build with the merged inspector fix still returns empty constructor code and empty/stale delegation code in the retained examples. The VM-delta fix does not resolve bytecode identity.

Recommendation: Record the bytecode actually executed in each frame: initcode for creation, resolved implementation code for delegation, and the relevant code source for delegatecall/callcode. Do not populate it from an address-only pre-state lookup after tracing.

Why: The operations must be decodable against the bytes in their own frame.

Next: Fix bytecode population separately from the already-retested instruction deltas.

Reproducers: call-constructor, call-constructor-priced, call-tree-vmTrace, call-tree-vmTrace-priced, replay-block-tree, replay-tree-vmTrace, semantic-01--auth-set, semantic-01--auth-replace, fixed-01--constructor, fixed-01--auth-clear, fixed-01--auth-set-revert.

H20 — vmTrace step timing and deltas

Disposition: Implementation alignment / release retest

Observed: In the constructor, the first PUSH costs 3: Erigon/Nethermind/Besu report ex.used=46847, Reth 46850. MSTORE at pc 4 has its write at that step in the other three; Reth reports an empty write, then repeats the data at later steps with off=32. More complex VM differences remain in the raw captures. A dedicated CALLDATACOPY at pc 8 has a gas cost of 7,400 in all four debug opcode traces. Nethermind vmTrace alone reports 9,700; all call-frame totals remain 7,409. The minimal code is 0x6174e060006101803700 and the discrepancy repeated. An interpreter-based diagnostic Reth build at 8194fcedefcfa1cbfe11d57f30cae45a21fe136f, with revm-inspectors pinned to merged commit 19746b981132035fdfb7ca89c3faab6258104a18, confirms post-step ex.used, same-step MSTORE/MCOPY deltas, and CALL success/output writes in the focused fixtures. A CALL forwarding 60,000 gas records gross cost 62,603 and post-return remaining gas 576,370; the other clients agree on those gas numbers. This is a source-override diagnostic build, not released adoption.

Recommendation: Define ex.used as post-operation gas remaining, and mem/store/push as effects of that same operation. Use null for no memory write, with actual offset and bytes for a write. Specify call/return gas boundaries using dedicated nested-call fixtures before choosing detailed gas formulas.

Why: A consumer applying deltas in order should reconstruct the state after every opcode without shifting effects to neighboring steps.

Next: Retain the fixed regression cases. Nested warm-access, stipend, refund and output-memory edge cases still require broader coverage.

Reproducers: call-constructor, call-constructor-priced, call-tree-vmTrace, call-tree-vmTrace-priced, replay-block-tree, replay-revert-vmTrace, replay-tree-vmTrace, repeat-01--call-gas7400, repeat-01--debug-gas7400-opcodes, repeat-01--constructor, repeat-01--call-mcopy, fixed-01--constructor, fixed-01--call-return42, fixed-01--call-mcopy, fixed-01--call-siblings-revert-ok.

H21 — vmTrace numeric and optional metadata encoding

Disposition: Spec decision

Observed: Nethermind push values use byte-oriented forms such as 0x01 and 0x00 where the other three use 0x1 and 0x0. Erigon supplies op and idx; Reth supplies op; Besu/Nethermind omit both. These differences alone prevent exact JSON equality.

Recommendation: Encode stack words as minimal hex quantities (zero is 0x0), memory/code as even-length byte strings. Make op/idx optional metadata; require consumers to accept their absence and validate consistency when present. Keep required execution fields independent of these annotations.

Why: Numeric values and byte arrays have different formatting needs; optional convenience labels should not determine whether a trace can be consumed.

Next: Agree schema types and extension policy. A diagnostic comparison may show a separate typed-semantic projection, but must retain the exact wire differences.

Reproducers: call-constructor, call-constructor-priced, call-tree-vmTrace, call-tree-vmTrace-priced, replay-block-tree, replay-revert-vmTrace, replay-tree-vmTrace.

H22 — Precompile return bytes

Disposition: Likely client bug

Observed: All four return top-level output 0x11223344 from the identity precompile. Erigon/Nethermind/Reth repeat those bytes in trace[0].result.output; Besu returns 0x there.

Recommendation: Report the actual return bytes in both the execution envelope and the corresponding successful call-frame result, including precompiles with no EVM bytecode.

Why: Two views of the same successful call should not disagree about its return value.

Next: A focused Besu reporting fix and regression fixture can proceed without waiting on broad API policy.

Reproducers: call-identity.

H23 — Special-action address matching

Disposition: Spec decision / client discrepancy

Observed: Erigon, Nethermind and Reth match a CREATE by its created address and a SELFDESTRUCT by its source/refund beneficiary. Besu misses the CREATE and SELFDESTRUCT records under those filters, even though they exist in the unfiltered transaction tree.

Recommendation: Define from/to equivalents per action: creator/created address for CREATE, destroyed account/refund beneficiary for SELFDESTRUCT. Include these records when the corresponding address matches.

Why: Address-based history should not silently omit a transfer or creation because its action uses different field names.

Next: Agree the action mapping and add the discriminating filter fixtures.

Reproducers: semantic-01--filter-created-to, semantic-01--filter-suicide-from, semantic-01--filter-suicide-beneficiary, semantic-01--transaction-tree.

H24 — Sibling failure isolation

Disposition: Reproduced reporting defect

Observed: For CALL(revert) followed by CALL(return42), Besu marks the successful second sibling Reverted and omits its result. Reversing sibling order avoids the error. All other Parity traces and every debug callTracer, including Besu, identify the second call as successful with return word 42. The failing order was repeated.

Recommendation: Attach error and result data to the actual call frame. A sibling failure must not change another frame's status.

Why: A successful caller can handle a failed subcall and continue; frame results must preserve that distinction.

Next: Prepare a focused Besu regression and fix without waiting for broad schema policy.

Reproducers: repeat-01--call-siblings-revert-ok, repeat-01--debug-siblings-revert-ok.

H25 — Well-formed errors for rejected raw transactions

Disposition: Reproduced response serialization defect

Observed: Nethermind returns malformed JSON for wrong-chain, unfunded, intrinsic-gas-too-low and below-basefee signed raw probes. All-component and trace-only/stateDiff-only/vmTrace-only repeats reproduce it. One captured body starts {"jsonrpc":"2.0","result":{"vmTrace":"output":null,...; this is not a JSON-RPC error object.

Recommendation: Return one complete valid JSON-RPC error response on validation failure. Do not begin serializing a result before validation has succeeded.

Why: Clients must be able to parse failures and associate them with a request, regardless of the chosen signed-transaction admission policy.

Next: Fix the serializer/error path; retain raw malformed response text in regression evidence.

Reproducers: repeat-01--raw-below-basefee, repeat-01--raw-below-basefee-trace, repeat-01--raw-below-basefee-stateDiff, repeat-01--raw-below-basefee-vmTrace.

H26 — Account deletion across Cancun

Disposition: Reproduced stateDiff discrepancy

Observed: For an existing contract self-destructing before Cancun, Erigon/Besu use deletion markers for balance/code/nonce; Nethermind uses changes whose destination is null, and Reth reports balance going to zero but code/nonce unchanged. After Cancun, all correctly retain the existing contract code and report the balance transfer. The before/after Parity cases repeated.

Recommendation: Represent genuine account deletion with the deletion marker, including code, nonce and storage. After EIP-6780, an existing account survives SELFDESTRUCT; do not report code deletion.

Why: Deletion and a zero balance with retained code are observably different states. Apply the rules of the selected block.

Next: Align deletion encoding and fix missing Reth deletion data. The separate Besu prestateTracer probe had no complete response and is not used as an execution oracle.

Reproducers: fork-followup-01--destroy-trace-55, fork-followup-01--destroy-trace-56.

H27 — Filter execution across fork boundaries

Disposition: Reproduced cross-method discrepancy

Observed: In Besu, concatenating trace_block for blocks 35 and 36 gives 16 records, but trace_filter over the same London boundary gives 8. Across Cancun and Prague, range filtering also changes gas/output/error fields compared with the individual blocks. Erigon, Nethermind and both Reth builds match per-block concatenation at all five tested boundaries. A separate ten-probe Besu-only repeat matches every earlier response exactly, including the London omission and Cancun/Prague field changes.

Recommendation: Execute each block with its own fork rules and state, then filter and paginate the resulting ordered records. A range query should agree with the corresponding per-block queries.

Why: The same block must not trace differently depending on the other blocks included in a query.

Next: The repeated fixtures are ready for a focused processor-context investigation and regression.

Reproducers: forks-01--block-35, forks-01--block-36, forks-01--filter-across-36, forks-01--filter-across-56, forks-01--filter-across-60, boundary-repeat-01--block-35, boundary-repeat-01--block-36, boundary-repeat-01--filter-across-36, boundary-repeat-01--filter-across-56, boundary-repeat-01--filter-across-60.

H28 — Historical state at system-operation boundaries

Disposition: Reproduced historical-state discrepancy; cause unresolved

Observed: All clients import the same fork-chain head and boundary headers. At block 55, before the first Cancun system update at 56, Erigon already exposes timestamp 560 and its beacon root in EIP-4788 storage; the other clients return zero. A trace_call querying timestamp 560 also succeeds in Erigon at 55 and reverts elsewhere. At 56 all return the root. Both storage and call observations repeated in a separate run.

Recommendation: Historical state at block N should include that block's changes, including system operations, but none from N+1. Replay should start from the appropriate parent state and apply each system transition once.

Why: A future system write must not appear in an earlier block's state. This is an execution-context issue, not a cosmetic trace encoding choice.

Next: Minimize the historical-state boundary discrepancy and investigate Erigon history indexing separately from the Parity schema.

Reproducers: fork-followup-01--system-beacon-55-560, fork-followup-01--system-beacon-56-560, fork-followup-01--system-beacon-55-8751, fork-followup-01--beacon-call-55, fork-followup-01--beacon-call-56.

Coverage and limits

The extended semantic run contains 86 cases per build; the focused repeat has 41. A 72-block chain crosses London (36), Merge (48), Shanghai (52), Cancun (56) and Prague (60), with 62 probes plus an 18-case focused followup. All five builds passed exact head/state/transaction-root/receipt-root identity checks; the fork-boundary headers also match. Capture placeholders intentionally fail Hive assertions: those failure counts are not conformance scores. Malformed and incomplete responses are recorded separately.

A branch replacement at blocks 40–48 and restoration succeeded in Reth, Nethermind and Besu. Trace filters and receipts followed the new canonical branch and returned to their original values on restoration. Erigon rejected forkchoice after accepting the alternative payloads, including a repeat with safe/finalized markers held on the common prefix. This is an unresolved Engine/setup gate, not a proven stale-trace bug. Each reorg run captured 65 of 75 planned probe exchanges; the missing ten belong to Erigon's post-switch phases.

The separate ten-case Besu boundary repeat reproduces the initial outcomes exactly. A 41-case diagnostic Reth source-build pass pins the merged inspector fix; the source commit, dependency commit, binary hash and build options are recorded below. It disables optional default features, including JIT, and enables jemalloc and the portable interpreter; it is not a release build.

The separate ten-case pruned-state fixture is Reth-only. Headers and receipts remain available, the latest state works, and historical trace queries explicitly fail after verified pruning. The initial retention configuration was rejected and pruned nothing; only the successful explicit cutoff run is evidence of unavailable history.

Mixed CREATE/CREATE2 execution and addresses agree. The source-only theory that Besu would label both creations CREATE2 was not reproduced by the simulation; its Parity output omitted creationMethod while its debug tracer labeled both correctly. The Besu debug prestateTracer before-Cancun deletion probe returned no complete response; the repeated Parity deletion observations are recorded separately.

Remaining work: retention fixtures for the other three clients; resolve Erigon's reorg gate; transaction-order and system-operation variations; exhaustive nested VM gas, warm-access, stipend and refund combinations; invalid EIP-7702 authorization tuples and broader fork/history ranges. These are explicit limits, not claims that the namespace is now exhaustively covered.

Evidence and existing work

The extended passes captured 1,226 probe exchanges across nine successful or partially completed runs: 20 malformed JSON responses and one incomplete response are retained explicitly. The two reorg attempts each lack ten post-switch Erigon exchanges. Failed setup attempts are excluded from this exchange count.

The retained evidence capsules contain exact requests and captured replies. Selected requests and provenance are included below; full responses and runnable chain inputs are retained separately. Original capture files are preserved. Public request examples target generated chains, not mainnet, and require the associated genesis and block data. Runnable inputs, client image digests and raw Hive logs are retained for contribution. The extended run's requests use only public test keys and were never broadcast.

  • revm-inspectors #504: merged September 14; binary adoption must be verified separately.
  • Reth #27213: open at the earlier September 15 check; concerns block-replay bytecode population.
  • Besu #11286: open at the earlier September 15 check; existing MCOPY work remains separate from other trace defects.
  • Pinned Hive revision: basis for the generated-chain fixtures.

These findings are discussion material. No specification PR is opened by this update.

Capture provenance

Run Requested cases per participating build Captured exchanges
semantic-01 86 430
repeat-01 41 205
forks-01 62 310
fork-followup-01 18 90
reorg-01 15 65
reorg-safe-01 15 65
pruned-02 10 10
boundary-repeat-01 10 10
fixed-01 41 41

These runs include controls and repeated requests. The original four-client 264-reply capture and 76 shared-fixture checks are separate. Counts are not pass rates.

Diagnostic build: Reth 8194fcedefcfa1cbfe11d57f30cae45a21fe136f, inspector 19746b981132035fdfb7ca89c3faab6258104a18. The local dependency override also updated alloy-eip2930 to 0.2.4. Default features were disabled; jemalloc and reth-revm/portable were enabled. Binary SHA-256: d9a900982a79fde1a543f009f9edb46deb25e094a090a94a5e8749ade3ef05e5; Cargo.lock SHA-256: 6d85899285fe0c2dfbb28a9ab4eb336094aabe06108c403df64c8045b68ddb4c. This verifies a diagnostic source combination, not adoption by a distributed release.

Request appendix

Requests target the generated Hive chains, not mainnet. They require the corresponding genesis and blocks to reproduce the exact hashes, balances and nonces. They are probes, not normative expected-result assertions. Each extended case records its run; client versions and context are described above.

Original chain head: 0xdf99e6ef33b28babbdb93969e3a60851928f4912294c4fc26b5e6aebb4bd2fe5. Original raw capture SHA-256: 3b3512ba8576354ce0e91e57cb37cab82db055f25eb672eeb5d7360760cfb28b.

block-transfer

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_block",
  "params": [
    "0x5"
  ]
}

block-tree

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_block",
  "params": [
    "0x2"
  ]
}

boundary-repeat-01--block-35

Run: boundary-repeat-01. Chain head: 0xb3ba0330884cb90c46699588aab05619155565a21fecf9b9f9482693556f2316.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_block",
  "params": [
    "0x23"
  ]
}

boundary-repeat-01--block-36

Run: boundary-repeat-01. Chain head: 0xb3ba0330884cb90c46699588aab05619155565a21fecf9b9f9482693556f2316.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_block",
  "params": [
    "0x24"
  ]
}

boundary-repeat-01--filter-across-36

Run: boundary-repeat-01. Chain head: 0xb3ba0330884cb90c46699588aab05619155565a21fecf9b9f9482693556f2316.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x23",
      "toBlock": "0x24"
    }
  ]
}

boundary-repeat-01--filter-across-56

Run: boundary-repeat-01. Chain head: 0xb3ba0330884cb90c46699588aab05619155565a21fecf9b9f9482693556f2316.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x37",
      "toBlock": "0x38"
    }
  ]
}

boundary-repeat-01--filter-across-60

Run: boundary-repeat-01. Chain head: 0xb3ba0330884cb90c46699588aab05619155565a21fecf9b9f9482693556f2316.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x3b",
      "toBlock": "0x3c"
    }
  ]
}

call-constructor-priced

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "gas": "0x186a0",
      "gasPrice": "0x77359400",
      "data": "0x60016000526001601ff3"
    },
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ],
    "0x30"
  ]
}

call-constructor

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "gas": "0x186a0",
      "gasPrice": "0x0",
      "data": "0x60016000526001601ff3"
    },
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ],
    "0x30"
  ]
}

call-empty-types-priced

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x9dcd17433742f4c0ca53122ab541d0ba67fc27d0",
      "gas": "0x927c0",
      "gasPrice": "0x77359400",
      "data": "0x"
    },
    [],
    "0x30"
  ]
}

call-empty-types

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x9dcd17433742f4c0ca53122ab541d0ba67fc27d0",
      "gas": "0x927c0",
      "gasPrice": "0x0",
      "data": "0x"
    },
    [],
    "0x30"
  ]
}

call-identity

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x0000000000000000000000000000000000000004",
      "gas": "0x186a0",
      "gasPrice": "0x77359400",
      "value": "0x0",
      "data": "0x11223344"
    },
    [
      "trace",
      "vmTrace"
    ],
    "0x30"
  ]
}

call-many-priced

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_callMany",
  "params": [
    [
      [
        {
          "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
          "to": "0x9dcd17433742f4c0ca53122ab541d0ba67fc27d0",
          "gas": "0x927c0",
          "gasPrice": "0x77359400",
          "data": "0x"
        },
        [
          "trace"
        ]
      ],
      [
        {
          "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
          "to": "0x9dcd17433742f4c0ca53122ab541d0ba67fc27d0",
          "gas": "0x927c0",
          "gasPrice": "0x77359400",
          "data": "0x"
        },
        [
          "trace"
        ]
      ]
    ],
    "0x30"
  ]
}

call-many-transfers

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_callMany",
  "params": [
    [
      [
        {
          "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
          "to": "0x0000000000000000000000000000000000001234",
          "gas": "0x186a0",
          "gasPrice": "0x77359400",
          "value": "0x1",
          "data": "0x"
        },
        [
          "trace",
          "stateDiff"
        ]
      ],
      [
        {
          "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
          "to": "0x0000000000000000000000000000000000001234",
          "gas": "0x186a0",
          "gasPrice": "0x77359400",
          "value": "0x1",
          "data": "0x"
        },
        [
          "trace",
          "stateDiff"
        ]
      ]
    ],
    "0x30"
  ]
}

call-many

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_callMany",
  "params": [
    [
      [
        {
          "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
          "to": "0x9dcd17433742f4c0ca53122ab541d0ba67fc27d0",
          "gas": "0x927c0",
          "gasPrice": "0x0",
          "data": "0x"
        },
        [
          "trace"
        ]
      ],
      [
        {
          "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
          "to": "0x9dcd17433742f4c0ca53122ab541d0ba67fc27d0",
          "gas": "0x927c0",
          "gasPrice": "0x0",
          "data": "0x"
        },
        [
          "trace"
        ]
      ]
    ],
    "0x30"
  ]
}

call-transfer-stateDiff

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x0000000000000000000000000000000000001234",
      "gas": "0x186a0",
      "gasPrice": "0x77359400",
      "value": "0x1",
      "data": "0x"
    },
    [
      "stateDiff"
    ],
    "0x30"
  ]
}

call-tree-stateDiff-priced

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x9dcd17433742f4c0ca53122ab541d0ba67fc27d0",
      "gas": "0x927c0",
      "gasPrice": "0x77359400",
      "data": "0x"
    },
    [
      "stateDiff"
    ],
    "0x30"
  ]
}

call-tree-stateDiff

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x9dcd17433742f4c0ca53122ab541d0ba67fc27d0",
      "gas": "0x927c0",
      "gasPrice": "0x0",
      "data": "0x"
    },
    [
      "stateDiff"
    ],
    "0x30"
  ]
}

call-tree-trace-priced

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x9dcd17433742f4c0ca53122ab541d0ba67fc27d0",
      "gas": "0x927c0",
      "gasPrice": "0x77359400",
      "data": "0x"
    },
    [
      "trace"
    ],
    "0x30"
  ]
}

call-tree-trace

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x9dcd17433742f4c0ca53122ab541d0ba67fc27d0",
      "gas": "0x927c0",
      "gasPrice": "0x0",
      "data": "0x"
    },
    [
      "trace"
    ],
    "0x30"
  ]
}

call-tree-vmTrace-priced

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x9dcd17433742f4c0ca53122ab541d0ba67fc27d0",
      "gas": "0x927c0",
      "gasPrice": "0x77359400",
      "data": "0x"
    },
    [
      "vmTrace"
    ],
    "0x30"
  ]
}

call-tree-vmTrace

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x9dcd17433742f4c0ca53122ab541d0ba67fc27d0",
      "gas": "0x927c0",
      "gasPrice": "0x0",
      "data": "0x"
    },
    [
      "vmTrace"
    ],
    "0x30"
  ]
}

filter-all

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x2",
      "toBlock": "0x2"
    }
  ]
}

filter-both

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x2",
      "toBlock": "0x2",
      "fromAddress": [
        "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f"
      ],
      "toAddress": [
        "0x9dcd17433742f4c0ca53122ab541d0ba67fc27d0"
      ]
    }
  ]
}

filter-empty

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x2",
      "toBlock": "0x2",
      "fromAddress": [],
      "toAddress": []
    }
  ]
}

filter-from

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x2",
      "toBlock": "0x2",
      "fromAddress": [
        "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f"
      ]
    }
  ]
}

filter-intersection

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x2",
      "toBlock": "0x2",
      "fromAddress": [
        "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f"
      ],
      "toAddress": [
        "0x9dcd17433742f4c0ca53122ab541d0ba67fc27d0"
      ],
      "mode": "intersection"
    }
  ]
}

filter-to

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x2",
      "toBlock": "0x2",
      "toAddress": [
        "0x9dcd17433742f4c0ca53122ab541d0ba67fc27d0"
      ]
    }
  ]
}

filter-union

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x2",
      "toBlock": "0x2",
      "fromAddress": [
        "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f"
      ],
      "toAddress": [
        "0x9dcd17433742f4c0ca53122ab541d0ba67fc27d0"
      ],
      "mode": "union"
    }
  ]
}

fixed-01--auth-clear

Run: fixed-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_rawTransaction",
  "params": [
    "0x04f8d4870c72dd9d5e883e818501847735940083030d409419e7e376e7c213b7e7e7e46cc70a5dd086daff2a8080c0f863f861870c72dd9d5e883e9400000000000000000000000000000000000000008080a098be4e1c8200ba8e16556d95b598148f7ec1c6e18b76142e70007dfa5d18cf58a018a787b683426bb748bb03664d04512e382dca461e0e442f1d4c39c255f8dde501a0c0e27e354c443878b62ef28229d90a05e8414a30869bef4c3ddcf07fa205c734a0503d6a2d2293f18f5bcbb4330ac6dbeeae67c364b12a58294b8494b29782af51",
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ]
  ]
}

fixed-01--auth-set-revert

Run: fixed-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_rawTransaction",
  "params": [
    "0x04f8d4870c72dd9d5e883e818501847735940083030d40941563915e194d8cfba1943570603f7606a31155088080c0f863f861870c72dd9d5e883e9400000000000000000000000000000000000010038080a01c3f9771a572f2fdc37253483e7c67cc8d8e294276bf1dccd8ebe091477d763ba04b0d0c594ea086b9c13812d8810b1320e83b99be260518f6ff94055e04ac61fc80a0eae005bf7758c07ba75a1a0b37133bac4a0625efe1c91958ce0949a08a1bb3bda07c1d251064247970bf84ce0e9c37a44096182fba91e65d4022e080ddc396a15f",
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ]
  ]
}

fixed-01--call-mcopy

Run: fixed-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x000000000000000000000000000000000000100a",
      "gas": "0x927c0",
      "gasPrice": "0x77359400",
      "data": "0x"
    },
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ],
    "0x30"
  ]
}

fixed-01--call-return42

Run: fixed-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x0000000000000000000000000000000000001002",
      "gas": "0x927c0",
      "gasPrice": "0x77359400",
      "data": "0x"
    },
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ],
    "0x30"
  ]
}

fixed-01--call-siblings-revert-ok

Run: fixed-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x0000000000000000000000000000000000001005",
      "gas": "0x927c0",
      "gasPrice": "0x77359400",
      "data": "0x"
    },
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ],
    "0x30"
  ]
}

fixed-01--constructor

Run: fixed-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "data": "0x60016000526001601ff3",
      "gas": "0x927c0",
      "gasPrice": "0x77359400"
    },
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ],
    "0x30"
  ]
}

fork-followup-01--beacon-call-55

Run: fork-followup-01. Chain head: 0xb3ba0330884cb90c46699588aab05619155565a21fecf9b9f9482693556f2316.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x000F3df6D732807Ef1319fB7B8bB8522d0Beac02",
      "data": "0x0000000000000000000000000000000000000000000000000000000000000230",
      "gas": "0x927c0",
      "gasPrice": "0x77359400"
    },
    [
      "trace"
    ],
    "0x37"
  ]
}

fork-followup-01--beacon-call-56

Run: fork-followup-01. Chain head: 0xb3ba0330884cb90c46699588aab05619155565a21fecf9b9f9482693556f2316.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x000F3df6D732807Ef1319fB7B8bB8522d0Beac02",
      "data": "0x0000000000000000000000000000000000000000000000000000000000000230",
      "gas": "0x927c0",
      "gasPrice": "0x77359400"
    },
    [
      "trace"
    ],
    "0x38"
  ]
}

fork-followup-01--destroy-trace-55

Run: fork-followup-01. Chain head: 0xb3ba0330884cb90c46699588aab05619155565a21fecf9b9f9482693556f2316.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x0000000000000000000000000000000000001007",
      "gas": "0x927c0",
      "gasPrice": "0x77359400",
      "data": "0x"
    },
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ],
    "0x37"
  ]
}

fork-followup-01--destroy-trace-56

Run: fork-followup-01. Chain head: 0xb3ba0330884cb90c46699588aab05619155565a21fecf9b9f9482693556f2316.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x0000000000000000000000000000000000001007",
      "gas": "0x927c0",
      "gasPrice": "0x77359400",
      "data": "0x"
    },
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ],
    "0x38"
  ]
}

fork-followup-01--system-beacon-55-560

Run: fork-followup-01. Chain head: 0xb3ba0330884cb90c46699588aab05619155565a21fecf9b9f9482693556f2316.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "eth_getStorageAt",
  "params": [
    "0x000F3df6D732807Ef1319fB7B8bB8522d0Beac02",
    "0x230",
    "0x37"
  ]
}

fork-followup-01--system-beacon-55-8751

Run: fork-followup-01. Chain head: 0xb3ba0330884cb90c46699588aab05619155565a21fecf9b9f9482693556f2316.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "eth_getStorageAt",
  "params": [
    "0x000F3df6D732807Ef1319fB7B8bB8522d0Beac02",
    "0x222f",
    "0x37"
  ]
}

fork-followup-01--system-beacon-56-560

Run: fork-followup-01. Chain head: 0xb3ba0330884cb90c46699588aab05619155565a21fecf9b9f9482693556f2316.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "eth_getStorageAt",
  "params": [
    "0x000F3df6D732807Ef1319fB7B8bB8522d0Beac02",
    "0x230",
    "0x38"
  ]
}

fork-followup-01--withdrawal-balance-51

Run: fork-followup-01. Chain head: 0xb3ba0330884cb90c46699588aab05619155565a21fecf9b9f9482693556f2316.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "eth_getBalance",
  "params": [
    "0x717f8aa2b982bee0e29f573d31df288663e1ce16",
    "0x33"
  ]
}

fork-followup-01--withdrawal-balance-52

Run: fork-followup-01. Chain head: 0xb3ba0330884cb90c46699588aab05619155565a21fecf9b9f9482693556f2316.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "eth_getBalance",
  "params": [
    "0x717f8aa2b982bee0e29f573d31df288663e1ce16",
    "0x34"
  ]
}

fork-followup-01--withdrawal-block-52

Run: fork-followup-01. Chain head: 0xb3ba0330884cb90c46699588aab05619155565a21fecf9b9f9482693556f2316.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "eth_getBlockByNumber",
  "params": [
    "0x34",
    true
  ]
}

fork-followup-01--withdrawal-filter-52

Run: fork-followup-01. Chain head: 0xb3ba0330884cb90c46699588aab05619155565a21fecf9b9f9482693556f2316.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x34",
      "toBlock": "0x34",
      "toAddress": [
        "0x717f8aa2b982bee0e29f573d31df288663e1ce16"
      ]
    }
  ]
}

forks-01--block-35

Run: forks-01. Chain head: 0xb3ba0330884cb90c46699588aab05619155565a21fecf9b9f9482693556f2316.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_block",
  "params": [
    "0x23"
  ]
}

forks-01--block-36

Run: forks-01. Chain head: 0xb3ba0330884cb90c46699588aab05619155565a21fecf9b9f9482693556f2316.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_block",
  "params": [
    "0x24"
  ]
}

forks-01--filter-across-36

Run: forks-01. Chain head: 0xb3ba0330884cb90c46699588aab05619155565a21fecf9b9f9482693556f2316.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x23",
      "toBlock": "0x24"
    }
  ]
}

forks-01--filter-across-56

Run: forks-01. Chain head: 0xb3ba0330884cb90c46699588aab05619155565a21fecf9b9f9482693556f2316.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x37",
      "toBlock": "0x38"
    }
  ]
}

forks-01--filter-across-60

Run: forks-01. Chain head: 0xb3ba0330884cb90c46699588aab05619155565a21fecf9b9f9482693556f2316.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x3b",
      "toBlock": "0x3c"
    }
  ]
}

get-missing-tx

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_get",
  "params": [
    "0xfefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe",
    []
  ]
}

get-missing

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_get",
  "params": [
    "0x55d219e322321525fb6d15c388d730e0f6d0ae119e68163ffcea6d3ee50fa738",
    [
      "0xffff"
    ]
  ]
}

get-nested

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_get",
  "params": [
    "0x55d219e322321525fb6d15c388d730e0f6d0ae119e68163ffcea6d3ee50fa738",
    [
      "0x0",
      "0x0"
    ]
  ]
}

get-one

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_get",
  "params": [
    "0x55d219e322321525fb6d15c388d730e0f6d0ae119e68163ffcea6d3ee50fa738",
    [
      "0x1"
    ]
  ]
}

get-root

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_get",
  "params": [
    "0x55d219e322321525fb6d15c388d730e0f6d0ae119e68163ffcea6d3ee50fa738",
    []
  ]
}

get-transfer-root

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_get",
  "params": [
    "0x99a8eb5c9ab03c42137bcb263c525487dac03192bebd5c6762c8511e3b867afe",
    []
  ]
}

get-zero

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_get",
  "params": [
    "0x55d219e322321525fb6d15c388d730e0f6d0ae119e68163ffcea6d3ee50fa738",
    [
      "0x0"
    ]
  ]
}

pruned-02--latest-call

Run: pruned-02. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x0000000000000000000000000000000000001002",
      "gas": "0x927c0"
    },
    [
      "trace"
    ],
    "0x30"
  ]
}

pruned-02--old-block

Run: pruned-02. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_block",
  "params": [
    "0x2"
  ]
}

pruned-02--old-filter

Run: pruned-02. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x2",
      "toBlock": "0x3"
    }
  ]
}

pruned-02--old-header

Run: pruned-02. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "eth_getBlockByNumber",
  "params": [
    "0x2",
    false
  ]
}

pruned-02--old-receipt

Run: pruned-02. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "eth_getTransactionReceipt",
  "params": [
    "0x55d219e322321525fb6d15c388d730e0f6d0ae119e68163ffcea6d3ee50fa738"
  ]
}

pruned-02--old-replay

Run: pruned-02. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_replayTransaction",
  "params": [
    "0x55d219e322321525fb6d15c388d730e0f6d0ae119e68163ffcea6d3ee50fa738",
    [
      "trace",
      "stateDiff"
    ]
  ]
}

pruned-02--old-transaction

Run: pruned-02. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_transaction",
  "params": [
    "0x55d219e322321525fb6d15c388d730e0f6d0ae119e68163ffcea6d3ee50fa738"
  ]
}

raw-invalid

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_rawTransaction",
  "params": [
    "0x00",
    [
      "trace"
    ]
  ]
}

raw-valid-current-nonce

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_rawTransaction",
  "params": [
    "0xf86b8185847735940082520894000000000000000000000000000000000000123401808718e5bb3abd10a0a0a8d391fb09e2f92ffc93fe7ac7b1eb7f1e24289f707eec0f34292c1713f795ffa0554e314f2ec6166290fc977d4bd4c86a9e0cadc2366f6139bd907d893bb4e237",
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ]
  ]
}

raw-valid-default-block

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_rawTransaction",
  "params": [
    "0xf86a80847735940082520894000000000000000000000000000000000000123401808718e5bb3abd10a0a04c833abdb116ad76fc98610ae0e626d7e35154f1fba38ce6bfdaf69a31eec42ca035ecfb996cc68a2a03df0e1087194e25180b01bf0469f69b4f1d330eea9d027a",
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ]
  ]
}

raw-valid

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_rawTransaction",
  "params": [
    "0xf86a80847735940082520894000000000000000000000000000000000000123401808718e5bb3abd10a0a04c833abdb116ad76fc98610ae0e626d7e35154f1fba38ce6bfdaf69a31eec42ca035ecfb996cc68a2a03df0e1087194e25180b01bf0469f69b4f1d330eea9d027a",
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ],
    "0x0"
  ]
}

repeat-01--call-gas7400

Run: repeat-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x0000000000000000000000000000000000001009",
      "gas": "0x927c0",
      "gasPrice": "0x77359400",
      "data": "0x"
    },
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ],
    "0x30"
  ]
}

repeat-01--call-mcopy

Run: repeat-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x000000000000000000000000000000000000100a",
      "gas": "0x927c0",
      "gasPrice": "0x77359400",
      "data": "0x"
    },
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ],
    "0x30"
  ]
}

repeat-01--call-mixed-create

Run: repeat-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x0000000000000000000000000000000000001006",
      "gas": "0x927c0",
      "gasPrice": "0x77359400",
      "data": "0x"
    },
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ],
    "0x30"
  ]
}

repeat-01--call-siblings-revert-ok

Run: repeat-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x0000000000000000000000000000000000001005",
      "gas": "0x927c0",
      "gasPrice": "0x77359400",
      "data": "0x"
    },
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ],
    "0x30"
  ]
}

repeat-01--constructor

Run: repeat-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "data": "0x60016000526001601ff3",
      "gas": "0x927c0",
      "gasPrice": "0x77359400"
    },
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ],
    "0x30"
  ]
}

repeat-01--debug-gas7400-opcodes

Run: repeat-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "debug_traceCall",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x0000000000000000000000000000000000001009",
      "gas": "0x927c0",
      "gasPrice": "0x77359400",
      "data": "0x"
    },
    "0x30",
    {
      "disableMemory": true,
      "disableStorage": true,
      "disableStack": true
    }
  ]
}

repeat-01--debug-mixed-create

Run: repeat-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "debug_traceCall",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x0000000000000000000000000000000000001006",
      "gas": "0x927c0",
      "gasPrice": "0x77359400",
      "data": "0x"
    },
    "0x30",
    {
      "tracer": "callTracer"
    }
  ]
}

repeat-01--debug-siblings-revert-ok

Run: repeat-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "debug_traceCall",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x0000000000000000000000000000000000001005",
      "gas": "0x927c0",
      "gasPrice": "0x77359400",
      "data": "0x"
    },
    "0x30",
    {
      "tracer": "callTracer"
    }
  ]
}

repeat-01--raw-below-basefee-stateDiff

Run: repeat-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_rawTransaction",
  "params": [
    "0xf86681850182520894000000000000000000000000000000000000123401808718e5bb3abd10a0a0a6525c23fcea9e006fece50614f7aaf6172e8bcc4cd6226480c174bbc055351c9fc17630ea66fe9c6ebfe8f96bb98c2433c16b43fc260cbd2530add6931d551a",
    [
      "stateDiff"
    ]
  ]
}

repeat-01--raw-below-basefee-trace

Run: repeat-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_rawTransaction",
  "params": [
    "0xf86681850182520894000000000000000000000000000000000000123401808718e5bb3abd10a0a0a6525c23fcea9e006fece50614f7aaf6172e8bcc4cd6226480c174bbc055351c9fc17630ea66fe9c6ebfe8f96bb98c2433c16b43fc260cbd2530add6931d551a",
    [
      "trace"
    ]
  ]
}

repeat-01--raw-below-basefee-vmTrace

Run: repeat-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_rawTransaction",
  "params": [
    "0xf86681850182520894000000000000000000000000000000000000123401808718e5bb3abd10a0a0a6525c23fcea9e006fece50614f7aaf6172e8bcc4cd6226480c174bbc055351c9fc17630ea66fe9c6ebfe8f96bb98c2433c16b43fc260cbd2530add6931d551a",
    [
      "vmTrace"
    ]
  ]
}

repeat-01--raw-below-basefee

Run: repeat-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_rawTransaction",
  "params": [
    "0xf86681850182520894000000000000000000000000000000000000123401808718e5bb3abd10a0a0a6525c23fcea9e006fece50614f7aaf6172e8bcc4cd6226480c174bbc055351c9fc17630ea66fe9c6ebfe8f96bb98c2433c16b43fc260cbd2530add6931d551a",
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ]
  ]
}

repeat-01--raw-insufficient-funds

Run: repeat-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_rawTransaction",
  "params": [
    "0xf86a80847735940082520894000000000000000000000000000000000000123401808718e5bb3abd10a0a0aca7ebc30807b79807337959a904b47c9c067f725b99878e04064bbda2b253c3a03d83e51caa10aa91fc8422e47b95b7f8a2bbd409422f007a5bc93715e1de2b9e",
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ]
  ]
}

repeat-01--raw-low-gas

Run: repeat-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_rawTransaction",
  "params": [
    "0xf86b81858477359400824e2094000000000000000000000000000000000000123401808718e5bb3abd10a0a038e0b48a1022d5c55eea7e525942547d2009224ffa7ab6d1b40a5a16cb70a590a0279569cdb60041c1eac5043486547bdf086c64543c7e2d07870a288096213d33",
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ]
  ]
}

repeat-01--raw-nonce-high

Run: repeat-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_rawTransaction",
  "params": [
    "0xf86b8186847735940082520894000000000000000000000000000000000000123401808718e5bb3abd109fa07088ff5b782a62ee95e868e0cb949f05a4fa52e5dff86136e2d3f5eaa9cfb34ba053f2145a9d3b1d5f726bef1e95aa15db4ab7f50099330d2bbe31dae1e73698ce",
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ]
  ]
}

repeat-01--raw-wrong-chain

Run: repeat-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_rawTransaction",
  "params": [
    "0xf86481858477359400825208940000000000000000000000000000000000001234018026a0680e20ade3f3bfbbb3d8e2246c26a13efb3a8e886c182c159cd240b4636342b8a027a25d70c994f869fa5abe6b841ddfff0ab32944d6e9719c830ace909c024a3b",
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ]
  ]
}

repeat-01--state-only-nonempty-output

Run: repeat-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x0000000000000000000000000000000000001002",
      "gas": "0x927c0",
      "gasPrice": "0x77359400",
      "data": "0x"
    },
    [
      "stateDiff"
    ],
    "0x30"
  ]
}

replay-7702-stateDiff

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_replayTransaction",
  "params": [
    "0xb54bc1221b206db9ee0449a716ddde73c1e2d0f72d2e789fcb51230fe851cc8a",
    [
      "stateDiff"
    ]
  ]
}

replay-7702-trace

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_replayTransaction",
  "params": [
    "0xb54bc1221b206db9ee0449a716ddde73c1e2d0f72d2e789fcb51230fe851cc8a",
    [
      "trace"
    ]
  ]
}

replay-7702-vmTrace

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_replayTransaction",
  "params": [
    "0xb54bc1221b206db9ee0449a716ddde73c1e2d0f72d2e789fcb51230fe851cc8a",
    [
      "vmTrace"
    ]
  ]
}

replay-block-tree

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_replayBlockTransactions",
  "params": [
    "0x2",
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ]
  ]
}

replay-missing

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_replayTransaction",
  "params": [
    "0xfefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe",
    [
      "trace"
    ]
  ]
}

replay-revert-stateDiff

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_replayTransaction",
  "params": [
    "0x827f578f78815feb24e5d992addb5d6d184958aad72d02c213271f4b4ac780ae",
    [
      "stateDiff"
    ]
  ]
}

replay-revert-trace

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_replayTransaction",
  "params": [
    "0x827f578f78815feb24e5d992addb5d6d184958aad72d02c213271f4b4ac780ae",
    [
      "trace"
    ]
  ]
}

replay-revert-vmTrace

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_replayTransaction",
  "params": [
    "0x827f578f78815feb24e5d992addb5d6d184958aad72d02c213271f4b4ac780ae",
    [
      "vmTrace"
    ]
  ]
}

replay-transfer-stateDiff

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_replayTransaction",
  "params": [
    "0x99a8eb5c9ab03c42137bcb263c525487dac03192bebd5c6762c8511e3b867afe",
    [
      "stateDiff"
    ]
  ]
}

replay-transfer-trace

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_replayTransaction",
  "params": [
    "0x99a8eb5c9ab03c42137bcb263c525487dac03192bebd5c6762c8511e3b867afe",
    [
      "trace"
    ]
  ]
}

replay-transfer-vmTrace

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_replayTransaction",
  "params": [
    "0x99a8eb5c9ab03c42137bcb263c525487dac03192bebd5c6762c8511e3b867afe",
    [
      "vmTrace"
    ]
  ]
}

replay-tree-stateDiff

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_replayTransaction",
  "params": [
    "0x55d219e322321525fb6d15c388d730e0f6d0ae119e68163ffcea6d3ee50fa738",
    [
      "stateDiff"
    ]
  ]
}

replay-tree-trace

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_replayTransaction",
  "params": [
    "0x55d219e322321525fb6d15c388d730e0f6d0ae119e68163ffcea6d3ee50fa738",
    [
      "trace"
    ]
  ]
}

replay-tree-vmTrace

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_replayTransaction",
  "params": [
    "0x55d219e322321525fb6d15c388d730e0f6d0ae119e68163ffcea6d3ee50fa738",
    [
      "vmTrace"
    ]
  ]
}

semantic-01--auth-clear

Run: semantic-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_rawTransaction",
  "params": [
    "0x04f8d4870c72dd9d5e883e818501847735940083030d409419e7e376e7c213b7e7e7e46cc70a5dd086daff2a8080c0f863f861870c72dd9d5e883e9400000000000000000000000000000000000000008080a098be4e1c8200ba8e16556d95b598148f7ec1c6e18b76142e70007dfa5d18cf58a018a787b683426bb748bb03664d04512e382dca461e0e442f1d4c39c255f8dde501a0c0e27e354c443878b62ef28229d90a05e8414a30869bef4c3ddcf07fa205c734a0503d6a2d2293f18f5bcbb4330ac6dbeeae67c364b12a58294b8494b29782af51",
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ]
  ]
}

semantic-01--auth-replace

Run: semantic-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_rawTransaction",
  "params": [
    "0x04f8d4870c72dd9d5e883e818501847735940083030d409419e7e376e7c213b7e7e7e46cc70a5dd086daff2a8080c0f863f861870c72dd9d5e883e9400000000000000000000000000000000000010038080a032b48971f74add2ebe91ce111113ff37b7f8d272ed23134e89aa7658b677ca45a05bc973423f88f2644a49fa4509864691835ff138f284a233ecba072e79dfb5f580a0d69accc0eaf71c8a02bf2b11adb6644f9b694243463e8300fc88feeff61f8884a02f3f0627d55d5268f16db3cef6ef2636ee568713e5a631e7f73656f3c0d26d76",
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ]
  ]
}

semantic-01--auth-set-revert

Run: semantic-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_rawTransaction",
  "params": [
    "0x04f8d4870c72dd9d5e883e818501847735940083030d40941563915e194d8cfba1943570603f7606a31155088080c0f863f861870c72dd9d5e883e9400000000000000000000000000000000000010038080a01c3f9771a572f2fdc37253483e7c67cc8d8e294276bf1dccd8ebe091477d763ba04b0d0c594ea086b9c13812d8810b1320e83b99be260518f6ff94055e04ac61fc80a0eae005bf7758c07ba75a1a0b37133bac4a0625efe1c91958ce0949a08a1bb3bda07c1d251064247970bf84ce0e9c37a44096182fba91e65d4022e080ddc396a15f",
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ]
  ]
}

semantic-01--auth-set

Run: semantic-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_rawTransaction",
  "params": [
    "0x04f8d4870c72dd9d5e883e818501847735940083030d40941563915e194d8cfba1943570603f7606a31155088080c0f863f861870c72dd9d5e883e9400000000000000000000000000000000000010028001a0909ccd479b49d4de221beaed4e2b48ee8623d1efe6c9ba4f10653c26855123d8a0489bae47a8c46d50d536a34d9695a07668c64e89e2e17e1df04d37acb228601501a0138e133d330b2ac9573aef02e8182d29d97e5669e09079e1828d4ffe7abb73b2a018efb64c0af5c267645bd3de711a50fa787eece3679231a6843a23b3f29892c1",
    [
      "trace",
      "stateDiff",
      "vmTrace"
    ]
  ]
}

semantic-01--control-storage-after-many

Run: semantic-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
      "to": "0x0000000000000000000000000000000000001001",
      "gas": "0x927c0",
      "gasPrice": "0x77359400",
      "data": "0x"
    },
    [
      "trace"
    ],
    "0x30"
  ]
}

semantic-01--filter-both-null

Run: semantic-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x2",
      "toBlock": "0x2",
      "fromAddress": null,
      "toAddress": null
    }
  ]
}

semantic-01--filter-both-unknown-mode

Run: semantic-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x2",
      "toBlock": "0x2",
      "fromAddress": [
        "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f"
      ],
      "toAddress": [
        "0x9dcd17433742f4c0ca53122ab541d0ba67fc27d0"
      ],
      "mode": "garbage"
    }
  ]
}

semantic-01--filter-created-to

Run: semantic-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x2",
      "toBlock": "0x2",
      "toAddress": [
        "0x2d303c5b7911d87d594bf1b31fbb9aa187888893"
      ]
    }
  ]
}

semantic-01--filter-from-empty-to-set

Run: semantic-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x2",
      "toBlock": "0x2",
      "fromAddress": [],
      "toAddress": [
        "0x9dcd17433742f4c0ca53122ab541d0ba67fc27d0"
      ]
    }
  ]
}

semantic-01--filter-from-only-intersection

Run: semantic-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x2",
      "toBlock": "0x2",
      "fromAddress": [
        "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f"
      ],
      "mode": "intersection"
    }
  ]
}

semantic-01--filter-negative-count

Run: semantic-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x2",
      "toBlock": "0x2",
      "count": -1
    }
  ]
}

semantic-01--filter-suicide-beneficiary

Run: semantic-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x2",
      "toBlock": "0x2",
      "toAddress": [
        "0x9dcd17433742f4c0ca53122ab541d0ba67fc27d0"
      ]
    }
  ]
}

semantic-01--filter-suicide-from

Run: semantic-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x2",
      "toBlock": "0x2",
      "fromAddress": [
        "0x2d303c5b7911d87d594bf1b31fbb9aa187888893"
      ]
    }
  ]
}

semantic-01--filter-to-empty-from-set

Run: semantic-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x2",
      "toBlock": "0x2",
      "fromAddress": [
        "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f"
      ],
      "toAddress": []
    }
  ]
}

semantic-01--filter-to-only-intersection

Run: semantic-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x2",
      "toBlock": "0x2",
      "toAddress": [
        "0x9dcd17433742f4c0ca53122ab541d0ba67fc27d0"
      ],
      "mode": "intersection"
    }
  ]
}

semantic-01--filter-unknown-field

Run: semantic-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x2",
      "toBlock": "0x2",
      "unknownDiagnosticFlag": true
    }
  ]
}

semantic-01--filter-wrong-address-type

Run: semantic-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_filter",
  "params": [
    {
      "fromBlock": "0x2",
      "toBlock": "0x2",
      "fromAddress": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f"
    }
  ]
}

semantic-01--get-nested-parent

Run: semantic-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_get",
  "params": [
    "0x55d219e322321525fb6d15c388d730e0f6d0ae119e68163ffcea6d3ee50fa738",
    [
      "0x6"
    ]
  ]
}

semantic-01--get-nested-positive

Run: semantic-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_get",
  "params": [
    "0x55d219e322321525fb6d15c388d730e0f6d0ae119e68163ffcea6d3ee50fa738",
    [
      "0x6",
      "0x0"
    ]
  ]
}

semantic-01--many-storage-write-read

Run: semantic-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_callMany",
  "params": [
    [
      [
        {
          "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
          "to": "0x0000000000000000000000000000000000001001",
          "gas": "0x927c0",
          "gasPrice": "0x77359400",
          "data": "0x000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000000"
        },
        [
          "trace",
          "stateDiff"
        ]
      ],
      [
        {
          "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
          "to": "0x0000000000000000000000000000000000001001",
          "gas": "0x927c0",
          "gasPrice": "0x77359400",
          "data": "0x"
        },
        [
          "trace",
          "stateDiff"
        ]
      ]
    ],
    "0x30"
  ]
}

semantic-01--many-storage-write-revert-read

Run: semantic-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_callMany",
  "params": [
    [
      [
        {
          "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
          "to": "0x0000000000000000000000000000000000001001",
          "gas": "0x927c0",
          "gasPrice": "0x77359400",
          "data": "0x000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000000"
        },
        [
          "trace",
          "stateDiff"
        ]
      ],
      [
        {
          "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
          "to": "0x0000000000000000000000000000000000001001",
          "gas": "0x927c0",
          "gasPrice": "0x77359400",
          "data": "0x000000000000000000000000000000000000000000000000000000000000002b0000000000000000000000000000000000000000000000000000000000000001"
        },
        [
          "trace",
          "stateDiff"
        ]
      ],
      [
        {
          "from": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f",
          "to": "0x0000000000000000000000000000000000001001",
          "gas": "0x927c0",
          "gasPrice": "0x77359400",
          "data": "0x"
        },
        [
          "trace",
          "stateDiff"
        ]
      ]
    ],
    "0x30"
  ]
}

semantic-01--transaction-tree

Run: semantic-01. Chain head: 0xf0b1510b2a9c8d4c4bd1ff2c578ddbffc04741aa06b3cc8680a343741ef15e84.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_transaction",
  "params": [
    "0x55d219e322321525fb6d15c388d730e0f6d0ae119e68163ffcea6d3ee50fa738"
  ]
}

transaction-missing

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_transaction",
  "params": [
    "0xfefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe"
  ]
}

transaction-revert

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_transaction",
  "params": [
    "0x827f578f78815feb24e5d992addb5d6d184958aad72d02c213271f4b4ac780ae"
  ]
}

transaction-tree

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_transaction",
  "params": [
    "0x55d219e322321525fb6d15c388d730e0f6d0ae119e68163ffcea6d3ee50fa738"
  ]
}

Diagnostic contract bytecode

These extra genesis contracts make the key simulation probes reproducible. Authorization accounts use public fixture keys; no real transaction was broadcast.

Contract Address Runtime code
return42 0x0000000000000000000000000000000000001002 0x602a60005260206000f3
revert 0x0000000000000000000000000000000000001003 0x60006000fd
storage 0x0000000000000000000000000000000000001001 0x361561001957600035600055602035156100195760006000fd5b60005460005260206000f3
siblings-ok-revert 0x0000000000000000000000000000000000001004 0x6020600060006000600061100261ea60f1506020600060006000600061100361ea60f15000
siblings-revert-ok 0x0000000000000000000000000000000000001005 0x6020600060006000600061100361ea60f1506020600060006000600061100261ea60f15000
mixed-create 0x0000000000000000000000000000000000001006 0x601761001b600039601760006000f050607b601760006000f55000600a61000d600039600a6000f3602a60005260206000f3
destroy 0x0000000000000000000000000000000000001007 0x611008ff
gas7400 0x0000000000000000000000000000000000001009 0x6174e060006101803700
mcopy 0x000000000000000000000000000000000000100a 0x602a6000526020600060205e00
prefunded-empty 0x000000000000000000000000000000000000100b 0x
delegated 0x19e7e376e7c213b7e7e7e46cc70a5dd086daff2a 0xef01000000000000000000000000000000000000001002
undelegated 0x1563915e194d8cfba1943570603f7606a3115508 0x
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment