Update EIP-8141: assembled canonical paymaster reference bytecode - #12041
Open
Marchhill wants to merge 15 commits into
Open
Update EIP-8141: assembled canonical paymaster reference bytecode#12041Marchhill wants to merge 15 commits into
Marchhill wants to merge 15 commits into
Conversation
…measured gas Insert the assembled 355-byte runtime bytecode and its per-fork keccak256 code hash into the canonical paymaster section, replace the ~2,150 gas estimate with the measured validation-path cost, and add the reference artifacts asset file.
Present the reference contract as annotated EVM assembly (mnemonics, labels, per-block comments) alongside the compiled bytecode and code hash, matching the house style of the system-contract EIPs. The listing assembles byte-for-byte to the pinned runtime bytecode and hash.
…prose Describe the validation-path cost structurally (dispatch, three SIGPARAM reads, memory-only APPROVE, one cold SLOAD) rather than quoting a fork-specific gas figure, since the deployment fork is undetermined. Tighten the assets pointer and reproducibility note.
Remove the superseded assets/eip-8141/CanonicalPaymaster.sol (old 12h-delay, secp256k1-only, arbitrary-recipient withdrawal design with no rotation), which the assembled canonical paymaster in this PR supersedes. Introduce 15,000 as the recommended pay-frame gas_limit bound rather than referencing it as if defined elsewhere. Correct the admin-path claim that both finalize paths clear pending state before acting (rotation writes slot 0 before clearing, and has no external call to observe ordering). Harmonize two remaining "code match" phrasings to the runtime-code-hash-of-the-active-fork wording. Reword the assets closing line to point at the annotated listing as the reproducible source instead of a non-checked-in assembler.
Collaborator
File
|
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.
Completes the canonical paymaster implementation with its assembled reference runtime, code hash, and annotated assembly. Continues #12012.
0xda42f0d11838c4c0c3129b8b8e93e9718127ad6b315e517e1088125707c4d45c.assets/eip-8141/; the annotated listing itself is the reproducible source and assembles byte-for-byte to the runtime bytecode and code hash.assets/eip-8141/CanonicalPaymaster.sol(old 12h-delay, secp256k1-only, withdraw-to-arbitrary-recipient design with no rotation), which this PR's assembled paymaster supersedes.Assembled from the normative pseudocode and validated against a reference implementation's test suite: payment authorization, deposit, withdrawal/rotation timelocks, admin authorization via both the caller and signature routes, reentrancy safety, and the CALL-failure path.