Repository navigation
feat(specs,tests): deploy the EIP-8250 nonce manager as an ordinary contract - #3736
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## eips/bogota/eip-8250 #3736 +/- ##
=======================================================
Coverage ? 94.93%
=======================================================
Files ? 677
Lines ? 41903
Branches ? 3960
=======================================================
Hits ? 39779
Misses ? 1470
Partials ? 654
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
6482c6a to
8edf3fd
Compare
ae5c566 to
87e520e
Compare
8edf3fd to
8dbfeec
Compare
danceratopz
left a comment
There was a problem hiding this comment.
🚀 The agents have comments and I'm doing my best to keep up 😆 In the meantime, they seemed worth sharing!
The agent checked the deployment independently: recovering the signature gives sender 0x7A57...8198, CREATE at nonce 0 gives 0x8250968C...1cB7, the hash matches, and the init code returns 60006000fd. The install is fully gone from the spec and the framework, and the genesis pre-allocation is how the account exists in tests. This also fixes the EIP-8250 fill on the base: since #3735 removed the activation install hook, blockchain-test genesis has no nonce manager, and 116 of 251 fixtures fail at 1efbafd. With this PR they all fill (261 passed).
One more question on the EIP text: why must NONCE_MANAGER have a nonzero nonce at activation? Nothing reads it, and the deployment transaction sets it to 1 anyway. If it is only there to match what the deployment produces, saying so in the EIP would stop implementers from adding a check for it.
just static passes and the EIP-8250 fill is green. I'd land this before #3724; #3724's own commits apply cleanly on top once it is rebased onto the branch.
…y storage reads Co-authored-by: danceratopz <danceratopz@gmail.com> Co-authored-by: Guruprasad Kamath <guru241987@gmail.com>
995478c to
de70bb0
Compare
…ontract (#3736) Co-authored-by: danceratopz <danceratopz@gmail.com> Co-authored-by: Guruprasad Kamath <guru241987@gmail.com>
…ontract (#3736) Co-authored-by: danceratopz <danceratopz@gmail.com> Co-authored-by: Guruprasad Kamath <guru241987@gmail.com>
Description
Implements ethereum/EIPs#12440 for EIP-8250: the nonce manager is an ordinary contract deployed by the EIP's keyless transaction, like the EIP-8141 expiry verifier in #3729.
NONCE_MANAGERmoves to0x8250968C12e01A19d6F667b9B2F3b3A4d0e51cB7,apply_forkno longer installs it, and the framework pre-allocates it in genesis instead of using theActivationInstallhook extension from #3683. The newtest_contract_deployment.pydeploys it with the EIP's transaction before, at and after the fork block, and the transition tests check that activation leaves it unchanged and installs nothing when it is missing.The reference spec pin moves to the merged EIP text. Replaces #3722 and #3725.
Related Issues or PRs
Checklist
just static<type>(<area>): <title>, where<type>and<area>come from an appropriateC-<type>, respectivelyA-<area>, label. The title should match the target squash commit message.