Gate D: real-prestate fixture — leg reproduces & anti-stub confirmed#1
Open
psyto wants to merge 1 commit into
Open
Gate D: real-prestate fixture — leg reproduces & anti-stub confirmed#1psyto wants to merge 1 commit into
psyto wants to merge 1 commit into
Conversation
…tub confirmed Gate D was the one RPC-gated gate. Q1/Q2 now frozen; the fixture is captured and the capability is proven end-to-end on real mainnet data. - Q1 (endpoint): drpc.org serves debug_traceTransaction (prestate+callTracer) FREE. capture_fixture.py: send explicit User-Agent (drpc 403s urllib default) + retry 429/5xx with backoff (free LB flakes transiently). Pure transform untouched (3 tests green). - Q2 (tx): mainnet 0x4a8f5f07… (blk 25499896), UniV2 swapExactTokensForETH…FeeOnTransfer, type-2 / empty access list / value 0 — WETH.withdraw then a plain value-CALL forwarding native ETH to the subject (no Transfer log): exactly one clean log-invisible leg. - Fixture: 6 prestate accts, full block_env, expected_subject_eth_wei = 19173706984341863. CC smoke (manual, frame-thin — not yet a committed test): reexec-server reproduces the leg EXACTLY (recovered == expected). Anti-stub premise holds: mutating the pair reserves slot 0x08 diverges the leg; slots 0x06/0x07/0x0c break the swap → leg 0. Remaining (Codex, frame-thick; CC reviews): encode the offline reproduction test + the anti-stub test in probatio-evm, then flip Gate D to green. See docs/tasks/015. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Gate D — the one RPC-gated gate — is unblocked and captured
The blocker was finding a free trace endpoint, not paying for one.
https://eth.drpc.orgservesdebug_traceTransactionwith bothprestateTracer(pre-mode) andcallTracerfor free — zero spend.Frozen decisions (provenance in
docs/tasks/015)debug_*).capture_fixture.pynow sends an explicit User-Agent (drpc 403s urllib default) and retries 429/5xx with backoff (free LB flakes). Pure transform untouched — 3 transform tests green.0x4a8f5f07e3f1019db5ddc46b344a6af9ffc3895d5128ba5f1b16a54568542f8f(block 25499896). UniV2swapExactTokensForETHSupportingFeeOnTransferTokens, type-2 / empty access list / value 0 — satisfies theblock_envfreeze. Router doesWETH.withdrawthen forwards native ETH to the subject via a plain value-CALL (noTransferlog) — exactly one clean log-invisible leg.probatio-evm/tests/fixtures/gate-d-real-swap.json— 6 prestate accounts, fullblock_env,expected_subject_eth_wei = 19173706984341863(~0.01917 ETH) from callTracer.CC smoke (manual, frame-thin — NOT yet a committed test; this is Codex's job)
reexec-serverwith the fixture (capture_inner=true) reproduces the leg exactly:recovered == expected == 19173706984341863 wei. Both hops present (WETH→router unwrap, router→subject). Native ETH has no log, yet re-execution recovers it — the moat, on real mainnet data.0x08diverges the leg (…341863 → …263682); mutating slots0x06/0x07/0x0cbreaks the swap → leg0(revert-equivalent). Use pair slot0x08as the canonical perturbation.Remaining (Codex, frame-thick; CC reviews)
probatio-evm(no RPC): load fixture → drivereexec-server→ assert recovered inbound leg tosubject==expected_subject_eth_wei.0x08, assert leg diverges (orexecutereverts). Keep therevm/c-kzg-free lockfile invariant intact.probatio-evm/README.md+STAGE1.5_EVM_REEXEC.md.🤖 Generated with Claude Code