Skip to content

Commit 9970be5

Browse files
authored
Update EIP-7748: address special case of eip-7610 accounts
Merged by EIP-Bot.
1 parent c4dda7f commit 9970be5

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

EIPS/eip-7748.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,13 @@ def conversion_move_to_next_account(state: State):
144144
else:
145145
# Move to the next account
146146
state._conversion_curr_account.address = address
147-
state._conversion_curr_account.phase = StoragePhase("0x00")
147+
curacc = state._conversion_curr_account
148+
149+
# Skip translating storage if the account has an empty code hash.
150+
if curacc.nonce == 0 and len(curacc.code) == 0 and curacc.state_root != empty_state_root:
151+
state._conversion_curr_account.phase = AccountDataPhase()
152+
else:
153+
state._conversion_curr_account.phase = StoragePhase("0x00")
148154

149155
# Modified function: add new only_if_empty optional parameter.
150156
def set_storage(
@@ -242,6 +248,16 @@ If an account has code, this is chunked and inserted in the VKT in one go. An al
242248

243249
We decided to not do this to reduce the algorithm complexity. Considering the current maximum code size, the worst case scenario for a block could overflow the `CONVERSION_STRIDE` limit by 24k/31~=793 units.
244250

251+
### Deletion of [EIP-7610](./eip-7610.md) accounts
252+
253+
EIP-7610 mentions the existence of 28 accounts that have:
254+
255+
* a nonce of 0,
256+
* no code
257+
* a non-empty storage tree
258+
259+
These storage slots are to be ommitted from the conversion process, as they can not be accessed.
260+
245261
### Expected time for the conversion to finish
246262

247263
TODO: We have an estimation, but it might be worth recalculating it closer to the proposed fork having a more up to date state size estimate.

0 commit comments

Comments
 (0)