From 6d04bc1d5228c1e73271d31398d8a5ad661a9f3c Mon Sep 17 00:00:00 2001 From: lightclient <14004106+lightclient@users.noreply.github.com> Date: Tue, 8 Oct 2024 11:43:26 -0600 Subject: [PATCH] Update EIP-7702: 8905 copy Merged by EIP-Bot. --- EIPS/eip-7702.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/EIPS/eip-7702.md b/EIPS/eip-7702.md index 5370981e59eb68..26f502d3ff5cfb 100644 --- a/EIPS/eip-7702.md +++ b/EIPS/eip-7702.md @@ -67,13 +67,14 @@ The [EIP-2718](./eip-2718.md) `ReceiptPayload` for this transaction is `rlp([sta At the start of executing the transaction, after incrementing the sender's nonce, for each `[chain_id, address, nonce, y_parity, r, s]` tuple do the following: 1. Verify the chain id is either 0 or the chain's current ID. -2. `authority = ecrecover(keccak(MAGIC || rlp([chain_id, address, nonce])), y_parity, r, s])` -3. Add `authority` to `accessed_addresses` (as defined in [EIP-2929](./eip-2929.md).) -4. Verify the code of `authority` is either empty or already delegated. -5. Verify the nonce of `authority` is equal to `nonce`. -6. Add `PER_EMPTY_ACCOUNT_COST - PER_AUTH_BASE_COST` gas to the global refund counter if `authority` exists in the trie. -7. Set the code of `authority` to be `0xef0100 || address`. This is a delegation designation. -8. Increase the nonce of `authority` by one. +2. Verify the `nonce` is less than `2**64 - 1`. +3. `authority = ecrecover(keccak(MAGIC || rlp([chain_id, address, nonce])), y_parity, r, s]` +4. Add `authority` to `accessed_addresses` (as defined in [EIP-2929](./eip-2929.md).) +5. Verify the code of `authority` is either empty or already delegated. +6. Verify the nonce of `authority` is equal to `nonce`. +7. Add `PER_EMPTY_ACCOUNT_COST - PER_AUTH_BASE_COST` gas to the global refund counter if `authority` exists in the trie. +8. Set the code of `authority` to be `0xef0100 || address`. This is a delegation designation. +9. Increase the nonce of `authority` by one. If any of the above steps fail, immediately stop processing that tuple and continue to the next tuple in the list. It will in the case of multiple tuples for the same authority, set the code using the address in the last valid occurrence.