Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
ad2816f
refactor(spec-specs): add opcode gas constants
Carsons-Eels Mar 3, 2026
3c81ee4
refactor(spec-specs): renamed GAS_BLOBHASH_OPCODE to GAS_BLOBHASH to …
Carsons-Eels Mar 3, 2026
78aa88b
refactor(testing): add per-opcode gas constants to GasCosts
Carsons-Eels Mar 3, 2026
30fb2ae
refactor: move post-frontier opcodes
Carsons-Eels Mar 10, 2026
76d6201
refactor: added gas tiers for the test code
Carsons-Eels Mar 10, 2026
9adbb1a
refactor: use gas module refs for opcode constants
Carsons-Eels Mar 10, 2026
14e72c2
refactor: correct GAS_OPCODE_DUP_N to GAS_OPCODE_DUP
Carsons-Eels Mar 17, 2026
26304a7
refactor: correct GAS_OPCODE_SWAP_N to GAS_OPCODE_SWAP
Carsons-Eels Mar 17, 2026
ec3255d
fix: static checks
Carsons-Eels Mar 17, 2026
82f1bcc
refactor: amsterdam conversion to encapsulate Gas Constants in class
Carsons-Eels Mar 20, 2026
4e205e5
refactor: frontier conversion to encapsulate Gas Constants in class
Carsons-Eels Mar 20, 2026
49af689
refactor: berlin conversion to encapsulate Gas Constants in class
Carsons-Eels Mar 20, 2026
a6fc233
refactor: byzantium conversion to encapsulate Gas Constants in class
Carsons-Eels Mar 20, 2026
0721da3
refactor: cancun conversion to encapsulate Gas Constants in class
Carsons-Eels Mar 20, 2026
5ed355d
refactor: constantinople conversion to encapsulate Gas Constants in c…
Carsons-Eels Mar 21, 2026
e93dea3
refactor: fix bad spelling of Belrin (Berlin)
Carsons-Eels Mar 21, 2026
4ba5545
refactor: homestead and dao conversion to encapsulate Gas Constants i…
Carsons-Eels Mar 21, 2026
7a4f16b
refactor: tangerine_whistle conversion to encapsulate Gas Constants i…
Carsons-Eels Mar 21, 2026
f47f46f
refactor: spurious_dragon conversion to encapsulate Gas Constants in …
Carsons-Eels Mar 21, 2026
f0bb696
refactor: istanbul and muir glacier conversion to encapsulate Gas Con…
Carsons-Eels Mar 21, 2026
7f29c07
refactor: london, arrow glacier, and muir glacier conversion to encap…
Carsons-Eels Mar 21, 2026
77228d2
refactor: paris conversion to encapsulate Gas Constants in class
Carsons-Eels Mar 21, 2026
e82d4ae
refactor: shanghai conversion to encapsulate Gas Constants in class
Carsons-Eels Mar 21, 2026
bc48f63
refactor: prague conversion to encapsulate Gas Constants in class
Carsons-Eels Mar 21, 2026
59d7243
refactor: osaka conversion to encapsulate Gas Constants in class
Carsons-Eels Mar 21, 2026
19ef467
refactor: BPO1 conversion to encapsulate Gas Constants in class
Carsons-Eels Mar 21, 2026
4c14505
refactor: BPO2 conversion to encapsulate Gas Constants in class
Carsons-Eels Mar 21, 2026
98a5764
refactor: BPO3 conversion to encapsulate Gas Constants in class
Carsons-Eels Mar 21, 2026
84314aa
refactor: BPO4 conversion to encapsulate Gas Constants in class
Carsons-Eels Mar 21, 2026
eee2e5b
refactor: BPO5 conversion to encapsulate Gas Constants in class
Carsons-Eels Mar 21, 2026
07ff662
refactor: GAS_OPCODE_PUSH_N -> GAS_OPCODE_PUSH
Carsons-Eels Mar 25, 2026
290aa20
feat: add COINBASE opcode gas constant
Carsons-Eels Mar 25, 2026
5f77a69
refactor: align formatting of a docstring
Carsons-Eels Mar 25, 2026
17da946
fix: code review comments
Carsons-Eels Mar 27, 2026
246f14a
refactor:GAS_BLOCK_HASH => GAS_OPCODE_BLOCKHASH
Carsons-Eels Mar 30, 2026
af420fa
refactor:GAS_JUMPDEST => GAS_OPCODE_JUMPDEST
Carsons-Eels Mar 30, 2026
9635725
refactor:GAS_BLOBHASH => GAS_OPCODE_BLOBHASH
Carsons-Eels Mar 30, 2026
13445c3
refactor:GAS_OPCODE => OPCODE
Carsons-Eels Mar 30, 2026
5eb0f82
refactor: drop GAS_ prefix for opcode, precompile, and refund consts
Carsons-Eels Mar 31, 2026
5a81fc1
refactor: remove GAS_ prefix from remaining non-module-level constants
Carsons-Eels Mar 31, 2026
cb1dfbd
refactor: group tier gas constants
Carsons-Eels Apr 1, 2026
a235eb2
refactor: remove GAS_ prefix in all test code + clean up
Carsons-Eels Apr 1, 2026
215f4ae
refactor: alt_bn128 now uses precompile gas constants in spec
Carsons-Eels Apr 1, 2026
d14f63e
reafactor(spec): reorganize gas.py, refactor two constant names
Carsons-Eels Apr 1, 2026
b5a013f
refactor: COPY=>OPCODE_COPY_PER_WORD
Carsons-Eels Apr 2, 2026
9e013e2
refactor: MEMORY=>MEMORY_PER_WORD
Carsons-Eels Apr 7, 2026
250570b
refactor: CREATE=>CREATE_BASE
Carsons-Eels Apr 7, 2026
b3a7d3a
refactor: EXPONENTIATION=>OPCODE_EXP_BASE, EXPONENTIATION_PER_BYTE OP…
Carsons-Eels Apr 7, 2026
eec2354
refactor: KECCAK256=>OPCODE_KECCAK256_BASE, KECCAK256_PER_WORD=>OPCOD…
Carsons-Eels Apr 7, 2026
9a84b4f
refactor: KECCAK256=>OPCODE_KECCAK256_BASE, KECCAK256_PER_WORD=>OPCOD…
Carsons-Eels Apr 7, 2026
ddd0db6
refactor: SELF_DESTRUCT=>OPCODE_SELFDESTRUCT_BASE, SELF_DESTRUCT_NEW_…
Carsons-Eels Apr 7, 2026
4798b20
refactor: forgot KECCAK256 and LOG in test code
Carsons-Eels Apr 7, 2026
2237a87
refactor: EXTERNAL=>OPCODE_EXTERNAL_BASE, BALANCE=>OPCODE_BALANCE
Carsons-Eels Apr 8, 2026
d7aca84
refactor: added _BASE suffix to CALLDATACOPY, CODECOPY, MLOAD, MSTORE…
Carsons-Eels Apr 8, 2026
16fc81c
refactor: RETURN_DATA_COPY=>OPCODE_RETURNDATACOPY_PER_WORD
Carsons-Eels Apr 8, 2026
184148b
refactor: last few opcode refactors
Carsons-Eels Apr 8, 2026
4dad95b
fix: merge fixes
Carsons-Eels Apr 8, 2026
a6a5607
refactor: move transaction gas constatns with other gas constants for…
Carsons-Eels Apr 13, 2026
235c510
refactor: add missing opcode gas constants and replace usage in funct…
Carsons-Eels Apr 13, 2026
24762c1
fix: cr comment misplacement
Carsons-Eels Apr 13, 2026
e67820c
fix spurious formatting diffs from gas constants refactor
knQzx Apr 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -348,10 +348,8 @@ def _deterministic_deploy_contract(
raise ValueError(
f"initcode too large {len(initcode)} > {max_initcode_size}"
)
deploy_gas_limit = gas_costs.GAS_TX_BASE + gas_costs.GAS_TX_CREATE
deploy_gas_limit += (
len(deploy_code) * gas_costs.GAS_CODE_DEPOSIT_PER_BYTE
)
deploy_gas_limit = gas_costs.TX_BASE + gas_costs.TX_CREATE
deploy_gas_limit += len(deploy_code) * gas_costs.CODE_DEPOSIT_PER_BYTE
deploy_gas_limit += memory_expansion_gas_calculator(
new_bytes=len(initcode)
)
Expand Down Expand Up @@ -445,7 +443,7 @@ def _deploy_contract(

initcode_prefix = Bytecode()

deploy_gas_limit = gas_costs.GAS_TX_BASE + gas_costs.GAS_TX_CREATE
deploy_gas_limit = gas_costs.TX_BASE + gas_costs.TX_CREATE

if len(storage.root) > 0:
initcode_prefix += sum(
Expand All @@ -462,7 +460,7 @@ def _deploy_contract(
if len(code) > max_code_size:
raise ValueError(f"code too large: {len(code)} > {max_code_size}")

deploy_gas_limit += len(code) * gas_costs.GAS_CODE_DEPOSIT_PER_BYTE
deploy_gas_limit += len(code) * gas_costs.CODE_DEPOSIT_PER_BYTE

prepared_initcode = Initcode(
deploy_code=code, initcode_prefix=initcode_prefix
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def gas_costs(cls) -> GasCosts:
"""
return replace(
super(EIP7928, cls).gas_costs(),
GAS_BLOCK_ACCESS_LIST_ITEM=2000,
BLOCK_ACCESS_LIST_ITEM=2000,
)

@classmethod
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,9 @@ def fn(
)
if access_list is not None:
for access in access_list:
intrinsic_cost += gas_costs.GAS_TX_ACCESS_LIST_ADDRESS
intrinsic_cost += gas_costs.TX_ACCESS_LIST_ADDRESS
for _ in access.storage_keys:
intrinsic_cost += (
gas_costs.GAS_TX_ACCESS_LIST_STORAGE_KEY
)
intrinsic_cost += gas_costs.TX_ACCESS_LIST_STORAGE_KEY
return intrinsic_cost

return fn
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ def gas_costs(cls) -> GasCosts:
"""Set gas costs for BN254 addition and multiplication."""
return replace(
super(EIP196, cls).gas_costs(),
GAS_PRECOMPILE_ECADD=500,
GAS_PRECOMPILE_ECMUL=40_000,
PRECOMPILE_ECADD=500,
PRECOMPILE_ECMUL=40_000,
)
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,6 @@ def gas_costs(cls) -> GasCosts:
"""Set gas costs for BN254 pairing check."""
return replace(
super(EIP197, cls).gas_costs(),
GAS_PRECOMPILE_ECPAIRING_BASE=100_000,
GAS_PRECOMPILE_ECPAIRING_PER_POINT=80_000,
PRECOMPILE_ECPAIRING_BASE=100_000,
PRECOMPILE_ECPAIRING_PER_POINT=80_000,
)
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ def opcode_gas_map(
base_map = super(EIP211, cls).opcode_gas_map()
return {
**base_map,
Opcodes.RETURNDATASIZE: gas_costs.GAS_BASE,
Opcodes.RETURNDATASIZE: gas_costs.BASE,
Opcodes.RETURNDATACOPY: cls._with_memory_expansion(
cls._with_data_copy(gas_costs.GAS_VERY_LOW, gas_costs),
cls._with_data_copy(gas_costs.VERY_LOW, gas_costs),
memory_expansion_calculator,
),
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ def opcode_gas_map(
base_map = super(EIP1153, cls).opcode_gas_map()
return {
**base_map,
Opcodes.TLOAD: gas_costs.GAS_WARM_SLOAD,
Opcodes.TSTORE: gas_costs.GAS_WARM_SLOAD,
Opcodes.TLOAD: gas_costs.WARM_SLOAD,
Opcodes.TSTORE: gas_costs.WARM_SLOAD,
}

@classmethod
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ def gas_costs(cls) -> GasCosts:
"""On Cancun, the point evaluation precompile gas cost is set."""
return replace(
super(EIP4844, cls).gas_costs(),
GAS_PRECOMPILE_POINT_EVALUATION=50_000,
PRECOMPILE_POINT_EVALUATION=50_000,
)

@classmethod
Expand All @@ -208,7 +208,7 @@ def opcode_gas_map(
base_map = super(EIP4844, cls).opcode_gas_map()

# Add Cancun-specific opcodes
return {**base_map, Opcodes.BLOBHASH: gas_costs.GAS_VERY_LOW}
return {**base_map, Opcodes.BLOBHASH: gas_costs.VERY_LOW}

@classmethod
def valid_opcodes(cls) -> List[Opcodes]:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def opcode_gas_map(
return {
**base_map,
Opcodes.MCOPY: cls._with_memory_expansion(
cls._with_data_copy(gas_costs.GAS_VERY_LOW, gas_costs),
cls._with_data_copy(gas_costs.VERY_LOW, gas_costs),
memory_expansion_calculator,
),
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ def opcode_gas_map(
# Add Cancun-specific opcodes
return {
**base_map,
Opcodes.BLOBBASEFEE: gas_costs.GAS_BASE,
Opcodes.BLOBBASEFEE: gas_costs.BASE,
}

@classmethod
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ def _calculate_create2_gas(

init_code_size = metadata["init_code_size"]
init_code_words = (init_code_size + 31) // 32
hash_gas = gas_costs.GAS_KECCAK256_PER_WORD * init_code_words
hash_gas = gas_costs.OPCODE_KECCACK256_PER_WORD * init_code_words

return gas_costs.GAS_CREATE + hash_gas
return gas_costs.OPCODE_CREATE_BASE + hash_gas

@classmethod
def create_opcodes(cls) -> List[Opcodes]:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ def opcode_gas_map(
base_map = super(EIP145, cls).opcode_gas_map()
return {
**base_map,
Opcodes.SHL: gas_costs.GAS_VERY_LOW,
Opcodes.SHR: gas_costs.GAS_VERY_LOW,
Opcodes.SAR: gas_costs.GAS_VERY_LOW,
Opcodes.SHL: gas_costs.VERY_LOW,
Opcodes.SHR: gas_costs.VERY_LOW,
Opcodes.SAR: gas_costs.VERY_LOW,
}

@classmethod
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def fn(
authorization_list_or_count=authorization_list_or_count,
)
if contract_creation:
intrinsic_cost += gas_costs.GAS_TX_CREATE
intrinsic_cost += gas_costs.TX_CREATE
return intrinsic_cost

return fn
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ def gas_costs(cls) -> GasCosts:
"""Reduce BN254 precompile gas costs."""
return replace(
super(EIP1108, cls).gas_costs(),
GAS_PRECOMPILE_ECADD=150,
GAS_PRECOMPILE_ECMUL=6000,
GAS_PRECOMPILE_ECPAIRING_BASE=45_000,
GAS_PRECOMPILE_ECPAIRING_PER_POINT=34_000,
PRECOMPILE_ECADD=150,
PRECOMPILE_ECMUL=6000,
PRECOMPILE_ECPAIRING_BASE=45_000,
PRECOMPILE_ECPAIRING_PER_POINT=34_000,
)
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def opcode_gas_map(
"""Add CHAINID opcode gas cost."""
gas_costs = cls.gas_costs()
base_map = super(EIP1344, cls).opcode_gas_map()
return {**base_map, Opcodes.CHAINID: gas_costs.GAS_BASE}
return {**base_map, Opcodes.CHAINID: gas_costs.BASE}

@classmethod
def valid_opcodes(cls) -> List[Opcodes]:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,5 @@ def gas_costs(cls) -> GasCosts:
"""Set BLAKE2F per-round gas cost."""
return replace(
super(EIP152, cls).gas_costs(),
GAS_PRECOMPILE_BLAKE2F_PER_ROUND=1,
PRECOMPILE_BLAKE2F_PER_ROUND=1,
)
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ def opcode_gas_map(
"""Add SELFBALANCE opcode gas cost."""
gas_costs = cls.gas_costs()
base_map = super(EIP1884, cls).opcode_gas_map()
return {**base_map, Opcodes.SELFBALANCE: gas_costs.GAS_LOW}
return {**base_map, Opcodes.SELFBALANCE: gas_costs.LOW}

@classmethod
def valid_opcodes(cls) -> List[Opcodes]:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,5 @@ def gas_costs(cls) -> GasCosts:
"""Reduce non-zero calldata byte gas cost to 16."""
return replace(
super(EIP2028, cls).gas_costs(),
GAS_TX_DATA_PER_NON_ZERO=16,
TX_DATA_PER_NON_ZERO=16,
)
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def opcode_gas_map(
"""Add BASEFEE opcode gas cost."""
gas_costs = cls.gas_costs()
base_map = super(EIP3198, cls).opcode_gas_map()
return {**base_map, Opcodes.BASEFEE: gas_costs.GAS_BASE}
return {**base_map, Opcodes.BASEFEE: gas_costs.BASE}

@classmethod
def valid_opcodes(cls) -> List[Opcodes]:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def opcode_gas_map(
base_map = super(EIP7939, cls).opcode_gas_map()
return {
**base_map,
Opcodes.CLZ: gas_costs.GAS_LOW,
Opcodes.CLZ: gas_costs.LOW,
}

@classmethod
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,5 @@ def gas_costs(cls) -> GasCosts:
"""Set the P256VERIFY precompile gas cost."""
return replace(
super(EIP7951, cls).gas_costs(),
GAS_PRECOMPILE_P256VERIFY=6_900,
PRECOMPILE_P256VERIFY=6_900,
)
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,12 @@ def gas_costs(cls) -> GasCosts:
"""Add gas costs for BLS12-381 precompiles."""
return replace(
super(EIP2537, cls).gas_costs(),
GAS_PRECOMPILE_BLS_G1ADD=375,
GAS_PRECOMPILE_BLS_G1MUL=12_000,
GAS_PRECOMPILE_BLS_G1MAP=5_500,
GAS_PRECOMPILE_BLS_G2ADD=600,
GAS_PRECOMPILE_BLS_G2MUL=22_500,
GAS_PRECOMPILE_BLS_G2MAP=23_800,
GAS_PRECOMPILE_BLS_PAIRING_BASE=37_700,
GAS_PRECOMPILE_BLS_PAIRING_PER_PAIR=32_600,
PRECOMPILE_BLS_G1ADD=375,
PRECOMPILE_BLS_G1MUL=12_000,
PRECOMPILE_BLS_G1MAP=5_500,
PRECOMPILE_BLS_G2ADD=600,
PRECOMPILE_BLS_G2MUL=22_500,
PRECOMPILE_BLS_G2MAP=23_800,
PRECOMPILE_BLS_PAIRING_BASE=37_700,
PRECOMPILE_BLS_PAIRING_PER_PAIR=32_600,
)
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ def gas_costs(cls) -> GasCosts:
"""Add standard and floor token costs for calldata."""
return replace(
super(EIP7623, cls).gas_costs(),
GAS_TX_DATA_TOKEN_STANDARD=4,
GAS_TX_DATA_TOKEN_FLOOR=10,
TX_DATA_TOKEN_STANDARD=4,
TX_DATA_TOKEN_FLOOR=10,
)

@classmethod
Expand All @@ -47,8 +47,8 @@ def fn(*, data: BytesConvertible, floor: bool = False) -> int:
num_non_zeros = len(raw) - num_zeros
tokens = num_zeros + num_non_zeros * 4
if floor:
return tokens * gas_costs.GAS_TX_DATA_TOKEN_FLOOR
return tokens * gas_costs.GAS_TX_DATA_TOKEN_STANDARD
return tokens * gas_costs.TX_DATA_TOKEN_FLOOR
return tokens * gas_costs.TX_DATA_TOKEN_STANDARD

return fn

Expand All @@ -65,7 +65,7 @@ def transaction_data_floor_cost_calculator(
def fn(*, data: BytesConvertible) -> int:
return (
calldata_gas_calculator(data=data, floor=True)
+ gas_costs.GAS_TX_BASE
+ gas_costs.TX_BASE
)

return fn
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ def gas_costs(cls) -> GasCosts:
"""Add gas costs for authorization operations."""
return replace(
super(EIP7702, cls).gas_costs(),
GAS_AUTH_PER_EMPTY_ACCOUNT=25_000,
AUTH_PER_EMPTY_ACCOUNT=25_000,
REFUND_AUTH_PER_EXISTING_ACCOUNT=12_500,
)

Expand All @@ -50,9 +50,9 @@ def _calculate_call_gas(

if metadata["delegated_address"] or metadata["delegated_address_warm"]:
if metadata["delegated_address_warm"]:
base_cost += gas_costs.GAS_WARM_ACCESS
base_cost += gas_costs.WARM_ACCESS
else:
base_cost += gas_costs.GAS_COLD_ACCOUNT_ACCESS
base_cost += gas_costs.COLD_ACCOUNT_ACCESS

return base_cost

Expand Down Expand Up @@ -89,7 +89,7 @@ def fn(
)
intrinsic_cost += (
authorization_list_or_count
* gas_costs.GAS_AUTH_PER_EMPTY_ACCOUNT
* gas_costs.AUTH_PER_EMPTY_ACCOUNT
)

return intrinsic_cost
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def opcode_gas_map(
base_map = super(EIP3855, cls).opcode_gas_map()
return {
**base_map,
Opcodes.PUSH0: gas_costs.GAS_BASE,
Opcodes.PUSH0: gas_costs.BASE,
}

@classmethod
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def _calculate_create_gas(

init_code_size = metadata["init_code_size"]
init_code_words = (init_code_size + 31) // 32
init_code_gas = gas_costs.GAS_CODE_INIT_PER_WORD * init_code_words
init_code_gas = gas_costs.CODE_INIT_PER_WORD * init_code_words

return base_cost + init_code_gas

Expand All @@ -55,6 +55,6 @@ def _calculate_create2_gas(

init_code_size = metadata["init_code_size"]
init_code_words = (init_code_size + 31) // 32
init_code_gas = gas_costs.GAS_CODE_INIT_PER_WORD * init_code_words
init_code_gas = gas_costs.CODE_INIT_PER_WORD * init_code_words

return base_cost + init_code_gas
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ def _calculate_call_gas(
metadata = opcode.metadata
if "value_transfer" in metadata:
if metadata["value_transfer"]:
base_cost += gas_costs.GAS_CALL_VALUE
base_cost += gas_costs.CALL_VALUE
if metadata["account_new"]:
base_cost += gas_costs.GAS_NEW_ACCOUNT
base_cost += gas_costs.NEW_ACCOUNT
elif metadata["account_new"]:
raise ValueError("Account new requires value transfer")

Expand Down
Loading