Skip to content

Commit 799cf49

Browse files
committed
refactor: use gas module refs for opcode constants
1 parent 7aad8e3 commit 799cf49

168 files changed

Lines changed: 1025 additions & 1858 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/ethereum/forks/amsterdam/vm/instructions/arithmetic.py

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,10 @@
1616

1717
from ethereum.utils.numeric import get_sign
1818

19-
from .. import Evm
19+
from .. import Evm, gas
2020
from ..gas import (
2121
GAS_EXPONENTIATION,
2222
GAS_EXPONENTIATION_PER_BYTE,
23-
GAS_OPCODE_ADD,
24-
GAS_OPCODE_ADDMOD,
25-
GAS_OPCODE_DIV,
26-
GAS_OPCODE_MOD,
27-
GAS_OPCODE_MUL,
28-
GAS_OPCODE_MULMOD,
29-
GAS_OPCODE_SDIV,
30-
GAS_OPCODE_SIGNEXTEND,
31-
GAS_OPCODE_SMOD,
32-
GAS_OPCODE_SUB,
3323
charge_gas,
3424
)
3525
from ..stack import pop, push
@@ -51,7 +41,7 @@ def add(evm: Evm) -> None:
5141
y = pop(evm.stack)
5242

5343
# GAS
54-
charge_gas(evm, GAS_OPCODE_ADD)
44+
charge_gas(evm, gas.GAS_OPCODE_ADD)
5545

5646
# OPERATION
5747
result = x.wrapping_add(y)
@@ -78,7 +68,7 @@ def sub(evm: Evm) -> None:
7868
y = pop(evm.stack)
7969

8070
# GAS
81-
charge_gas(evm, GAS_OPCODE_SUB)
71+
charge_gas(evm, gas.GAS_OPCODE_SUB)
8272

8373
# OPERATION
8474
result = x.wrapping_sub(y)
@@ -105,7 +95,7 @@ def mul(evm: Evm) -> None:
10595
y = pop(evm.stack)
10696

10797
# GAS
108-
charge_gas(evm, GAS_OPCODE_MUL)
98+
charge_gas(evm, gas.GAS_OPCODE_MUL)
10999

110100
# OPERATION
111101
result = x.wrapping_mul(y)
@@ -132,7 +122,7 @@ def div(evm: Evm) -> None:
132122
divisor = pop(evm.stack)
133123

134124
# GAS
135-
charge_gas(evm, GAS_OPCODE_DIV)
125+
charge_gas(evm, gas.GAS_OPCODE_DIV)
136126

137127
# OPERATION
138128
if divisor == 0:
@@ -165,7 +155,7 @@ def sdiv(evm: Evm) -> None:
165155
divisor = pop(evm.stack).to_signed()
166156

167157
# GAS
168-
charge_gas(evm, GAS_OPCODE_SDIV)
158+
charge_gas(evm, gas.GAS_OPCODE_SDIV)
169159

170160
# OPERATION
171161
if divisor == 0:
@@ -198,7 +188,7 @@ def mod(evm: Evm) -> None:
198188
y = pop(evm.stack)
199189

200190
# GAS
201-
charge_gas(evm, GAS_OPCODE_MOD)
191+
charge_gas(evm, gas.GAS_OPCODE_MOD)
202192

203193
# OPERATION
204194
if y == 0:
@@ -228,7 +218,7 @@ def smod(evm: Evm) -> None:
228218
y = pop(evm.stack).to_signed()
229219

230220
# GAS
231-
charge_gas(evm, GAS_OPCODE_SMOD)
221+
charge_gas(evm, gas.GAS_OPCODE_SMOD)
232222

233223
# OPERATION
234224
if y == 0:
@@ -259,7 +249,7 @@ def addmod(evm: Evm) -> None:
259249
z = Uint(pop(evm.stack))
260250

261251
# GAS
262-
charge_gas(evm, GAS_OPCODE_ADDMOD)
252+
charge_gas(evm, gas.GAS_OPCODE_ADDMOD)
263253

264254
# OPERATION
265255
if z == 0:
@@ -290,7 +280,7 @@ def mulmod(evm: Evm) -> None:
290280
z = Uint(pop(evm.stack))
291281

292282
# GAS
293-
charge_gas(evm, GAS_OPCODE_MULMOD)
283+
charge_gas(evm, gas.GAS_OPCODE_MULMOD)
294284

295285
# OPERATION
296286
if z == 0:
@@ -353,7 +343,7 @@ def signextend(evm: Evm) -> None:
353343
value = pop(evm.stack)
354344

355345
# GAS
356-
charge_gas(evm, GAS_OPCODE_SIGNEXTEND)
346+
charge_gas(evm, gas.GAS_OPCODE_SIGNEXTEND)
357347

358348
# OPERATION
359349
if byte_num > U256(31):

src/ethereum/forks/amsterdam/vm/instructions/bitwise.py

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,8 @@
1313

1414
from ethereum_types.numeric import U256, Uint
1515

16-
from .. import Evm
16+
from .. import Evm, gas
1717
from ..gas import (
18-
GAS_OPCODE_AND,
19-
GAS_OPCODE_BYTE,
20-
GAS_OPCODE_CLZ,
21-
GAS_OPCODE_NOT,
22-
GAS_OPCODE_OR,
23-
GAS_OPCODE_SAR,
24-
GAS_OPCODE_SHL,
25-
GAS_OPCODE_SHR,
26-
GAS_OPCODE_XOR,
2718
charge_gas,
2819
)
2920
from ..stack import pop, push
@@ -45,7 +36,7 @@ def bitwise_and(evm: Evm) -> None:
4536
y = pop(evm.stack)
4637

4738
# GAS
48-
charge_gas(evm, GAS_OPCODE_AND)
39+
charge_gas(evm, gas.GAS_OPCODE_AND)
4940

5041
# OPERATION
5142
push(evm.stack, x & y)
@@ -70,7 +61,7 @@ def bitwise_or(evm: Evm) -> None:
7061
y = pop(evm.stack)
7162

7263
# GAS
73-
charge_gas(evm, GAS_OPCODE_OR)
64+
charge_gas(evm, gas.GAS_OPCODE_OR)
7465

7566
# OPERATION
7667
push(evm.stack, x | y)
@@ -95,7 +86,7 @@ def bitwise_xor(evm: Evm) -> None:
9586
y = pop(evm.stack)
9687

9788
# GAS
98-
charge_gas(evm, GAS_OPCODE_XOR)
89+
charge_gas(evm, gas.GAS_OPCODE_XOR)
9990

10091
# OPERATION
10192
push(evm.stack, x ^ y)
@@ -119,7 +110,7 @@ def bitwise_not(evm: Evm) -> None:
119110
x = pop(evm.stack)
120111

121112
# GAS
122-
charge_gas(evm, GAS_OPCODE_NOT)
113+
charge_gas(evm, gas.GAS_OPCODE_NOT)
123114

124115
# OPERATION
125116
push(evm.stack, ~x)
@@ -145,7 +136,7 @@ def get_byte(evm: Evm) -> None:
145136
word = pop(evm.stack)
146137

147138
# GAS
148-
charge_gas(evm, GAS_OPCODE_BYTE)
139+
charge_gas(evm, gas.GAS_OPCODE_BYTE)
149140

150141
# OPERATION
151142
if byte_index >= U256(32):
@@ -180,7 +171,7 @@ def bitwise_shl(evm: Evm) -> None:
180171
value = Uint(pop(evm.stack))
181172

182173
# GAS
183-
charge_gas(evm, GAS_OPCODE_SHL)
174+
charge_gas(evm, gas.GAS_OPCODE_SHL)
184175

185176
# OPERATION
186177
if shift < Uint(256):
@@ -210,7 +201,7 @@ def bitwise_shr(evm: Evm) -> None:
210201
value = pop(evm.stack)
211202

212203
# GAS
213-
charge_gas(evm, GAS_OPCODE_SHR)
204+
charge_gas(evm, gas.GAS_OPCODE_SHR)
214205

215206
# OPERATION
216207
if shift < U256(256):
@@ -240,7 +231,7 @@ def bitwise_sar(evm: Evm) -> None:
240231
signed_value = pop(evm.stack).to_signed()
241232

242233
# GAS
243-
charge_gas(evm, GAS_OPCODE_SAR)
234+
charge_gas(evm, gas.GAS_OPCODE_SAR)
244235

245236
# OPERATION
246237
if shift < 256:
@@ -273,7 +264,7 @@ def count_leading_zeros(evm: Evm) -> None:
273264
x = pop(evm.stack)
274265

275266
# GAS
276-
charge_gas(evm, GAS_OPCODE_CLZ)
267+
charge_gas(evm, gas.GAS_OPCODE_CLZ)
277268

278269
# OPERATION
279270
bit_length = U256(x.bit_length())

src/ethereum/forks/amsterdam/vm/instructions/comparison.py

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,8 @@
1313

1414
from ethereum_types.numeric import U256, Uint
1515

16-
from .. import Evm
16+
from .. import Evm, gas
1717
from ..gas import (
18-
GAS_OPCODE_EQ,
19-
GAS_OPCODE_GT,
20-
GAS_OPCODE_ISZERO,
21-
GAS_OPCODE_LT,
22-
GAS_OPCODE_SGT,
23-
GAS_OPCODE_SLT,
2418
charge_gas,
2519
)
2620
from ..stack import pop, push
@@ -42,7 +36,7 @@ def less_than(evm: Evm) -> None:
4236
right = pop(evm.stack)
4337

4438
# GAS
45-
charge_gas(evm, GAS_OPCODE_LT)
39+
charge_gas(evm, gas.GAS_OPCODE_LT)
4640

4741
# OPERATION
4842
result = U256(left < right)
@@ -68,7 +62,7 @@ def signed_less_than(evm: Evm) -> None:
6862
right = pop(evm.stack).to_signed()
6963

7064
# GAS
71-
charge_gas(evm, GAS_OPCODE_SLT)
65+
charge_gas(evm, gas.GAS_OPCODE_SLT)
7266

7367
# OPERATION
7468
result = U256(left < right)
@@ -95,7 +89,7 @@ def greater_than(evm: Evm) -> None:
9589
right = pop(evm.stack)
9690

9791
# GAS
98-
charge_gas(evm, GAS_OPCODE_GT)
92+
charge_gas(evm, gas.GAS_OPCODE_GT)
9993

10094
# OPERATION
10195
result = U256(left > right)
@@ -121,7 +115,7 @@ def signed_greater_than(evm: Evm) -> None:
121115
right = pop(evm.stack).to_signed()
122116

123117
# GAS
124-
charge_gas(evm, GAS_OPCODE_SGT)
118+
charge_gas(evm, gas.GAS_OPCODE_SGT)
125119

126120
# OPERATION
127121
result = U256(left > right)
@@ -148,7 +142,7 @@ def equal(evm: Evm) -> None:
148142
right = pop(evm.stack)
149143

150144
# GAS
151-
charge_gas(evm, GAS_OPCODE_EQ)
145+
charge_gas(evm, gas.GAS_OPCODE_EQ)
152146

153147
# OPERATION
154148
result = U256(left == right)
@@ -174,7 +168,7 @@ def is_zero(evm: Evm) -> None:
174168
x = pop(evm.stack)
175169

176170
# GAS
177-
charge_gas(evm, GAS_OPCODE_ISZERO)
171+
charge_gas(evm, gas.GAS_OPCODE_ISZERO)
178172

179173
# OPERATION
180174
result = U256(x == 0)

src/ethereum/forks/amsterdam/vm/instructions/control_flow.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,10 @@
1313

1414
from ethereum_types.numeric import U256, Uint
1515

16+
from ...vm import gas
1617
from ...vm.gas import (
1718
GAS_BASE,
1819
GAS_JUMPDEST,
19-
GAS_OPCODE_JUMP,
20-
GAS_OPCODE_JUMPI,
2120
charge_gas,
2221
)
2322
from .. import Evm
@@ -63,7 +62,7 @@ def jump(evm: Evm) -> None:
6362
jump_dest = Uint(pop(evm.stack))
6463

6564
# GAS
66-
charge_gas(evm, GAS_OPCODE_JUMP)
65+
charge_gas(evm, gas.GAS_OPCODE_JUMP)
6766

6867
# OPERATION
6968
if jump_dest not in evm.valid_jump_destinations:
@@ -90,7 +89,7 @@ def jumpi(evm: Evm) -> None:
9089
conditional_value = pop(evm.stack)
9190

9291
# GAS
93-
charge_gas(evm, GAS_OPCODE_JUMPI)
92+
charge_gas(evm, gas.GAS_OPCODE_JUMPI)
9493

9594
# OPERATION
9695
if conditional_value == 0:

src/ethereum/forks/amsterdam/vm/instructions/environment.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,14 @@
2020
from ...state_tracker import get_account, get_code
2121
from ...utils.address import to_address_masked
2222
from ...vm.memory import buffer_read, memory_write
23-
from .. import Evm
23+
from .. import Evm, gas
2424
from ..exceptions import OutOfBoundsRead
2525
from ..gas import (
2626
GAS_BASE,
2727
GAS_BLOBHASH,
2828
GAS_COLD_ACCOUNT_ACCESS,
2929
GAS_COPY,
3030
GAS_FAST_STEP,
31-
GAS_OPCODE_CALLDATACOPY,
32-
GAS_OPCODE_CALLDATALOAD,
33-
GAS_OPCODE_CODECOPY,
34-
GAS_OPCODE_RETURNDATACOPY,
3531
GAS_RETURN_DATA_COPY,
3632
GAS_WARM_ACCESS,
3733
calculate_blob_gas_price,
@@ -181,7 +177,7 @@ def calldataload(evm: Evm) -> None:
181177
start_index = pop(evm.stack)
182178

183179
# GAS
184-
charge_gas(evm, GAS_OPCODE_CALLDATALOAD)
180+
charge_gas(evm, gas.GAS_OPCODE_CALLDATALOAD)
185181

186182
# OPERATION
187183
value = buffer_read(evm.message.data, start_index, U256(32))
@@ -241,7 +237,7 @@ def calldatacopy(evm: Evm) -> None:
241237
)
242238
charge_gas(
243239
evm,
244-
GAS_OPCODE_CALLDATACOPY + copy_gas_cost + extend_memory.cost,
240+
gas.GAS_OPCODE_CALLDATACOPY + copy_gas_cost + extend_memory.cost,
245241
)
246242

247243
# OPERATION
@@ -302,7 +298,7 @@ def codecopy(evm: Evm) -> None:
302298
)
303299
charge_gas(
304300
evm,
305-
GAS_OPCODE_CODECOPY + copy_gas_cost + extend_memory.cost,
301+
gas.GAS_OPCODE_CODECOPY + copy_gas_cost + extend_memory.cost,
306302
)
307303

308304
# OPERATION
@@ -465,7 +461,7 @@ def returndatacopy(evm: Evm) -> None:
465461
)
466462
charge_gas(
467463
evm,
468-
GAS_OPCODE_RETURNDATACOPY + copy_gas_cost + extend_memory.cost,
464+
gas.GAS_OPCODE_RETURNDATACOPY + copy_gas_cost + extend_memory.cost,
469465
)
470466
if Uint(return_data_start_position) + Uint(size) > ulen(evm.return_data):
471467
raise OutOfBoundsRead

0 commit comments

Comments
 (0)