-
Notifications
You must be signed in to change notification settings - Fork 437
EIP-2780 Implementation Tracker: Reduce intrinsic transaction gas #1940
Description
EIP-2780: Reduce intrinsic transaction gas
Target Fork
Amsterdam
Instructions
- Assign issue to EIP specification and testing owner(s).
Important
A specifications specialist and a testing specialist should ideally share ownership of the EIP.
- Add the issue to the target fork milestone if applicable (i.e., the EIP is at least in the CFI stage).
Guidance for Marking Items Complete
An item should only be checked off once the EIP is considered stable. In this context, stable means:
- No major issues or ambiguities are still being uncovered in the specification or tests.
- There are no open discussion points awaiting resolution.
- Client implementations have been consistently passing the tests for at least a week.
It is ultimately up to the owners' discretion to decide when an item should be marked as complete, using this guidance as the basis for that decision.
In exceptional cases, an EIP may require changes after some items have been marked complete or even after the entire issue has been completed and closed. This can happen, for example, when significant design optimizations are identified and agreed upon in ACD, or when critical security issues surface and require updates to the specification or tests.
When this occurs, owners should either unmark the relevant checkboxes if the issue is still open, or create a new tracking issue for the modifications if the original issue had already been closed.
Specification + Testing Status
- Testing complexity assessed and documented: EIP-2780.md - 🟡 13.
- Specification implementation merged to
eips/amsterdam/eip-2780(skip if the fork branch merge below is already complete). - Specification updates merged to the corresponding
forks/amsterdambranch. - EIP updates proposed in case of architectural choices surfaced during implementation.
- Required testing framework modifications implemented.
- Test suite implemented.
- Full code coverage for all changes.
- No regressions or failures in tests from prior forks (including static tests).
- Testing checklist complete.
- Hardening session completed.
- Benchmarking tests written and results documented.
- Ran tests using
executeto ensure compatibility, and marked specific tests to be skipped when they cannot be executed on live networks. - Added Mainnet-marked tests (example test).
Process Status
- Hive tests passing on at least two implementations.
- EIP included in a devnet.
The following test cases need to be handled (some of these have been mentioned in the EIP document. Others are from the implementers)
- Fix legacy tests - feat(specs,tests): Implement EIP-2780 #2175
- Value moving transactions to EOA, CONTRACT, DELEGATED_7702, PRECOMPILE, SELF, EMPTY_ACCOUNT - feat(specs,tests): Implement EIP-2780 #2175
- Contract creation transaction - feat(specs,tests): Implement EIP-2780 #2175
- Access and value move using calls - feat(specs,tests): Implement EIP-2780 #2175
- Access using other opcodes
- Block of txs calling minimal gas contract execution with maximal contract size addresses (so VM is activated for every tx)
- 7702 interactions
1. 7702 tx where sender assumes code and calls nothing: intrinsic = 4,500, no extra cold-code cost.
2. 7702 tx where sender assumes code and executes self-code: charge COLD_ACCOUNT_COST_CODE when first loaded. - SELFDESTRUCT test: Create-and-destroy in one tx; confirm normal value-transfer costs apply, no deletion repricing.