Skip to content

Commit d045003

Browse files
gurukamathsouradeep-das
authored andcommitted
feat(osaka): Remove EIP-7907 from Osaka (#1333)
* Revert "introduce warm_code_addresses" This reverts commit 4708376. * Revert "Implement EIP-7907" This reverts commit f069e08.
1 parent c1e388b commit d045003

File tree

8 files changed

+4
-79
lines changed

8 files changed

+4
-79
lines changed

src/ethereum/osaka/fork.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -627,7 +627,6 @@ def process_system_transaction(
627627
accessed_addresses=set(),
628628
accessed_storage_keys=set(),
629629
disable_precompiles=False,
630-
warm_code_addresses=set(),
631630
parent_evm=None,
632631
)
633632

src/ethereum/osaka/utils/message.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,5 @@ def prepare_message(
8686
accessed_addresses=accessed_addresses,
8787
accessed_storage_keys=set(tx_env.access_list_storage_keys),
8888
disable_precompiles=False,
89-
warm_code_addresses=set(),
9089
parent_evm=None,
9190
)

src/ethereum/osaka/vm/__init__.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,6 @@ class Message:
133133
accessed_addresses: Set[Address]
134134
accessed_storage_keys: Set[Tuple[Address, Bytes32]]
135135
disable_precompiles: bool
136-
warm_code_addresses: Set[Address]
137136
parent_evm: Optional["Evm"]
138137

139138

@@ -157,7 +156,6 @@ class Evm:
157156
error: Optional[EthereumException]
158157
accessed_addresses: Set[Address]
159158
accessed_storage_keys: Set[Tuple[Address, Bytes32]]
160-
warm_code_addresses: Set[Address]
161159

162160

163161
def incorporate_child_on_success(evm: Evm, child_evm: Evm) -> None:
@@ -177,7 +175,6 @@ def incorporate_child_on_success(evm: Evm, child_evm: Evm) -> None:
177175
evm.accounts_to_delete.update(child_evm.accounts_to_delete)
178176
evm.accessed_addresses.update(child_evm.accessed_addresses)
179177
evm.accessed_storage_keys.update(child_evm.accessed_storage_keys)
180-
evm.warm_code_addresses.update(child_evm.warm_code_addresses)
181178

182179

183180
def incorporate_child_on_error(evm: Evm, child_evm: Evm) -> None:

src/ethereum/osaka/vm/eoa_delegation.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from ..fork_types import Address, Authorization
1717
from ..state import account_exists, get_account, increment_nonce, set_code
1818
from ..utils.hexadecimal import hex_to_address
19-
from ..vm.gas import GAS_COLD_ACCOUNT_ACCESS, GAS_WARM_ACCESS, code_access_cost
19+
from ..vm.gas import GAS_COLD_ACCOUNT_ACCESS, GAS_WARM_ACCESS
2020
from . import Evm, Message
2121

2222
SET_CODE_TX_MAGIC = b"\x05"
@@ -136,16 +136,12 @@ def access_delegation(
136136
return False, address, code, Uint(0)
137137

138138
address = Address(code[EOA_DELEGATION_MARKER_LENGTH:])
139-
code = get_account(state, address).code
140139
if address in evm.accessed_addresses:
141140
access_gas_cost = GAS_WARM_ACCESS
142141
else:
143142
evm.accessed_addresses.add(address)
144143
access_gas_cost = GAS_COLD_ACCOUNT_ACCESS
145-
146-
if address not in evm.warm_code_addresses:
147-
evm.warm_code_addresses.add(address)
148-
access_gas_cost += code_access_cost(code)
144+
code = get_account(state, address).code
149145

150146
return True, address, code, access_gas_cost
151147

src/ethereum/osaka/vm/gas.py

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
from dataclasses import dataclass
1515
from typing import List, Tuple
1616

17-
from ethereum_types.bytes import Bytes
1817
from ethereum_types.numeric import U64, U256, Uint
1918

2019
from ethereum.trace import GasAndRefund, evm_trace
@@ -282,35 +281,6 @@ def init_code_cost(init_code_length: Uint) -> Uint:
282281
return GAS_INIT_CODE_WORD_COST * ceil32(init_code_length) // Uint(32)
283282

284283

285-
def code_access_cost(code: Bytes) -> Uint:
286-
"""
287-
Calculates the gas to be charged for loading contract code.
288-
289-
Parameters
290-
----------
291-
code :
292-
The contract code.
293-
294-
Returns
295-
-------
296-
code_access_gas: `ethereum.base_types.Uint`
297-
The gas to be charged for loading the code.
298-
"""
299-
from .interpreter import MAX_CODE_SIZE_WITH_NO_ACCESS_COST
300-
301-
excess_contract_size = max(
302-
0, len(code) - MAX_CODE_SIZE_WITH_NO_ACCESS_COST
303-
)
304-
if excess_contract_size == 0:
305-
return Uint(0)
306-
307-
return (
308-
GAS_INIT_CODE_WORD_COST
309-
* ceil32(Uint(excess_contract_size))
310-
// Uint(32)
311-
)
312-
313-
314284
def calculate_excess_blob_gas(parent_header: Header) -> U64:
315285
"""
316286
Calculated the excess blob gas for the current block based

src/ethereum/osaka/vm/instructions/environment.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
calculate_blob_gas_price,
3737
calculate_gas_extend_memory,
3838
charge_gas,
39-
code_access_cost,
4039
)
4140
from ..stack import pop, push
4241

@@ -390,12 +389,6 @@ def extcodecopy(evm: Evm) -> None:
390389
evm.accessed_addresses.add(address)
391390
access_gas_cost = GAS_COLD_ACCOUNT_ACCESS
392391

393-
if address not in evm.warm_code_addresses:
394-
evm.warm_code_addresses.add(address)
395-
access_gas_cost += code_access_cost(
396-
get_account(evm.message.block_env.state, address).code
397-
)
398-
399392
charge_gas(evm, access_gas_cost + copy_gas_cost + extend_memory.cost)
400393

401394
# OPERATION

src/ethereum/osaka/vm/instructions/system.py

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@
5353
calculate_gas_extend_memory,
5454
calculate_message_call_gas,
5555
charge_gas,
56-
code_access_cost,
5756
init_code_cost,
5857
max_message_call_gas,
5958
)
@@ -133,7 +132,6 @@ def generic_create(
133132
accessed_addresses=evm.accessed_addresses.copy(),
134133
accessed_storage_keys=evm.accessed_storage_keys.copy(),
135134
disable_precompiles=False,
136-
warm_code_addresses=evm.warm_code_addresses.copy(),
137135
parent_evm=evm,
138136
)
139137
child_evm = process_create_message(child_message)
@@ -324,7 +322,6 @@ def generic_call(
324322
accessed_addresses=evm.accessed_addresses.copy(),
325323
accessed_storage_keys=evm.accessed_storage_keys.copy(),
326324
disable_precompiles=disable_precompiles,
327-
warm_code_addresses=evm.warm_code_addresses.copy(),
328325
parent_evm=evm,
329326
)
330327
child_evm = process_message(child_message)
@@ -379,12 +376,6 @@ def call(evm: Evm) -> None:
379376
evm.accessed_addresses.add(to)
380377
access_gas_cost = GAS_COLD_ACCOUNT_ACCESS
381378

382-
if to not in evm.warm_code_addresses:
383-
evm.warm_code_addresses.add(to)
384-
access_gas_cost += code_access_cost(
385-
get_account(evm.message.block_env.state, to).code
386-
)
387-
388379
code_address = to
389380
(
390381
disable_precompiles,
@@ -473,12 +464,6 @@ def callcode(evm: Evm) -> None:
473464
evm.accessed_addresses.add(code_address)
474465
access_gas_cost = GAS_COLD_ACCOUNT_ACCESS
475466

476-
if code_address not in evm.warm_code_addresses:
477-
evm.warm_code_addresses.add(code_address)
478-
access_gas_cost += code_access_cost(
479-
get_account(evm.message.block_env.state, code_address).code
480-
)
481-
482467
(
483468
disable_precompiles,
484469
code_address,
@@ -618,12 +603,6 @@ def delegatecall(evm: Evm) -> None:
618603
evm.accessed_addresses.add(code_address)
619604
access_gas_cost = GAS_COLD_ACCOUNT_ACCESS
620605

621-
if code_address not in evm.warm_code_addresses:
622-
evm.warm_code_addresses.add(code_address)
623-
access_gas_cost += code_access_cost(
624-
get_account(evm.message.block_env.state, code_address).code
625-
)
626-
627606
(
628607
disable_precompiles,
629608
code_address,
@@ -692,12 +671,6 @@ def staticcall(evm: Evm) -> None:
692671
evm.accessed_addresses.add(to)
693672
access_gas_cost = GAS_COLD_ACCOUNT_ACCESS
694673

695-
if to not in evm.warm_code_addresses:
696-
evm.warm_code_addresses.add(to)
697-
access_gas_cost += code_access_cost(
698-
get_account(evm.message.block_env.state, to).code
699-
)
700-
701674
code_address = to
702675
(
703676
disable_precompiles,

src/ethereum/osaka/vm/interpreter.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,8 @@
6363
from .runtime import get_valid_jump_destinations
6464

6565
STACK_DEPTH_LIMIT = Uint(1024)
66-
MAX_CODE_SIZE_WITH_NO_ACCESS_COST = 0x6000
67-
MAX_CODE_SIZE = 0x40000
68-
MAX_INIT_CODE_SIZE = 0x80000
66+
MAX_CODE_SIZE = 0x6000
67+
MAX_INIT_CODE_SIZE = 2 * MAX_CODE_SIZE
6968

7069

7170
@dataclass
@@ -289,7 +288,6 @@ def execute_code(message: Message) -> Evm:
289288
error=None,
290289
accessed_addresses=message.accessed_addresses,
291290
accessed_storage_keys=message.accessed_storage_keys,
292-
warm_code_addresses=message.warm_code_addresses,
293291
)
294292
try:
295293
if evm.message.code_address in PRE_COMPILED_CONTRACTS:

0 commit comments

Comments
 (0)