Skip to content

Commit 89c133e

Browse files
authored
chore(specs): add missing type annotations (#2868)
1 parent c3a7b6b commit 89c133e

82 files changed

Lines changed: 4495 additions & 4433 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/fork.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"""
1313

1414
from dataclasses import dataclass
15-
from typing import List, Optional, Tuple
15+
from typing import Final, List, Optional, Tuple
1616

1717
from ethereum_rlp import rlp
1818
from ethereum_types.bytes import Bytes
@@ -115,7 +115,9 @@
115115
"0x000F3df6D732807Ef1319fB7B8bB8522d0Beac02"
116116
)
117117
SYSTEM_TRANSACTION_GAS = Uint(30000000)
118-
MAX_BLOB_GAS_PER_BLOCK = GasCosts.BLOB_SCHEDULE_MAX * GasCosts.PER_BLOB
118+
MAX_BLOB_GAS_PER_BLOCK: Final[U64] = (
119+
GasCosts.BLOB_SCHEDULE_MAX * GasCosts.PER_BLOB
120+
)
119121
VERSIONED_HASH_VERSION_KZG = b"\x01"
120122
GWEI_TO_WEI = U256(10**9)
121123

src/ethereum/forks/amsterdam/vm/gas.py

Lines changed: 135 additions & 135 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"""
1313

1414
from dataclasses import dataclass
15-
from typing import List, Tuple
15+
from typing import Final, List, Tuple
1616

1717
from ethereum_types.numeric import U64, U256, Uint, ulen
1818

@@ -33,168 +33,168 @@ class GasCosts:
3333
"""
3434

3535
# Tiers
36-
BASE = Uint(2)
37-
VERY_LOW = Uint(3)
38-
LOW = Uint(5)
39-
MID = Uint(8)
40-
HIGH = Uint(10)
36+
BASE: Final[Uint] = Uint(2)
37+
VERY_LOW: Final[Uint] = Uint(3)
38+
LOW: Final[Uint] = Uint(5)
39+
MID: Final[Uint] = Uint(8)
40+
HIGH: Final[Uint] = Uint(10)
4141

4242
# Access
43-
WARM_ACCESS = Uint(100)
44-
COLD_ACCOUNT_ACCESS = Uint(2600)
45-
COLD_STORAGE_ACCESS = Uint(2100)
43+
WARM_ACCESS: Final[Uint] = Uint(100)
44+
COLD_ACCOUNT_ACCESS: Final[Uint] = Uint(2600)
45+
COLD_STORAGE_ACCESS: Final[Uint] = Uint(2100)
4646

4747
# Storage
48-
STORAGE_SET = Uint(20000)
49-
COLD_STORAGE_WRITE = Uint(5000)
48+
STORAGE_SET: Final[Uint] = Uint(20000)
49+
COLD_STORAGE_WRITE: Final[Uint] = Uint(5000)
5050

5151
# Call
52-
CALL_VALUE = Uint(9000)
53-
CALL_STIPEND = Uint(2300)
54-
NEW_ACCOUNT = Uint(25000)
52+
CALL_VALUE: Final[Uint] = Uint(9000)
53+
CALL_STIPEND: Final[Uint] = Uint(2300)
54+
NEW_ACCOUNT: Final[Uint] = Uint(25000)
5555

5656
# Contract Creation
57-
CODE_DEPOSIT_PER_BYTE = Uint(200)
58-
CODE_INIT_PER_WORD = Uint(2)
57+
CODE_DEPOSIT_PER_BYTE: Final[Uint] = Uint(200)
58+
CODE_INIT_PER_WORD: Final[Uint] = Uint(2)
5959

6060
# Authorization
61-
AUTH_PER_EMPTY_ACCOUNT = 25000
61+
AUTH_PER_EMPTY_ACCOUNT: Final[int] = 25000
6262

6363
# Utility
64-
ZERO = Uint(0)
65-
MEMORY_PER_WORD = Uint(3)
66-
FAST_STEP = Uint(5)
64+
ZERO: Final[Uint] = Uint(0)
65+
MEMORY_PER_WORD: Final[Uint] = Uint(3)
66+
FAST_STEP: Final[Uint] = Uint(5)
6767

6868
# Refunds
69-
REFUND_STORAGE_CLEAR = 4800
69+
REFUND_STORAGE_CLEAR: Final[int] = 4800
7070

7171
# Precompiles
72-
PRECOMPILE_ECRECOVER = Uint(3000)
73-
PRECOMPILE_P256VERIFY = Uint(6900)
74-
PRECOMPILE_SHA256_BASE = Uint(60)
75-
PRECOMPILE_SHA256_PER_WORD = Uint(12)
76-
PRECOMPILE_RIPEMD160_BASE = Uint(600)
77-
PRECOMPILE_RIPEMD160_PER_WORD = Uint(120)
78-
PRECOMPILE_IDENTITY_BASE = Uint(15)
79-
PRECOMPILE_IDENTITY_PER_WORD = Uint(3)
80-
PRECOMPILE_BLAKE2F_PER_ROUND = Uint(1)
81-
PRECOMPILE_POINT_EVALUATION = Uint(50000)
82-
PRECOMPILE_BLS_G1ADD = Uint(375)
83-
PRECOMPILE_BLS_G1MUL = Uint(12000)
84-
PRECOMPILE_BLS_G1MAP = Uint(5500)
85-
PRECOMPILE_BLS_G2ADD = Uint(600)
86-
PRECOMPILE_BLS_G2MUL = Uint(22500)
87-
PRECOMPILE_BLS_G2MAP = Uint(23800)
88-
PRECOMPILE_ECADD = Uint(150)
89-
PRECOMPILE_ECMUL = Uint(6000)
90-
PRECOMPILE_ECPAIRING_BASE = Uint(45000)
91-
PRECOMPILE_ECPAIRING_PER_POINT = Uint(34000)
72+
PRECOMPILE_ECRECOVER: Final[Uint] = Uint(3000)
73+
PRECOMPILE_P256VERIFY: Final[Uint] = Uint(6900)
74+
PRECOMPILE_SHA256_BASE: Final[Uint] = Uint(60)
75+
PRECOMPILE_SHA256_PER_WORD: Final[Uint] = Uint(12)
76+
PRECOMPILE_RIPEMD160_BASE: Final[Uint] = Uint(600)
77+
PRECOMPILE_RIPEMD160_PER_WORD: Final[Uint] = Uint(120)
78+
PRECOMPILE_IDENTITY_BASE: Final[Uint] = Uint(15)
79+
PRECOMPILE_IDENTITY_PER_WORD: Final[Uint] = Uint(3)
80+
PRECOMPILE_BLAKE2F_PER_ROUND: Final[Uint] = Uint(1)
81+
PRECOMPILE_POINT_EVALUATION: Final[Uint] = Uint(50000)
82+
PRECOMPILE_BLS_G1ADD: Final[Uint] = Uint(375)
83+
PRECOMPILE_BLS_G1MUL: Final[Uint] = Uint(12000)
84+
PRECOMPILE_BLS_G1MAP: Final[Uint] = Uint(5500)
85+
PRECOMPILE_BLS_G2ADD: Final[Uint] = Uint(600)
86+
PRECOMPILE_BLS_G2MUL: Final[Uint] = Uint(22500)
87+
PRECOMPILE_BLS_G2MAP: Final[Uint] = Uint(23800)
88+
PRECOMPILE_ECADD: Final[Uint] = Uint(150)
89+
PRECOMPILE_ECMUL: Final[Uint] = Uint(6000)
90+
PRECOMPILE_ECPAIRING_BASE: Final[Uint] = Uint(45000)
91+
PRECOMPILE_ECPAIRING_PER_POINT: Final[Uint] = Uint(34000)
9292

9393
# Blobs
94-
PER_BLOB = U64(2**17)
95-
BLOB_SCHEDULE_TARGET = U64(14)
96-
BLOB_TARGET_GAS_PER_BLOCK = PER_BLOB * BLOB_SCHEDULE_TARGET
97-
BLOB_BASE_COST = Uint(2**13)
98-
BLOB_SCHEDULE_MAX = U64(21)
99-
BLOB_MIN_GASPRICE = Uint(1)
100-
BLOB_BASE_FEE_UPDATE_FRACTION = Uint(11684671)
94+
PER_BLOB: Final[U64] = U64(2**17)
95+
BLOB_SCHEDULE_TARGET: Final[U64] = U64(14)
96+
BLOB_TARGET_GAS_PER_BLOCK: Final[U64] = PER_BLOB * BLOB_SCHEDULE_TARGET
97+
BLOB_BASE_COST: Final[Uint] = Uint(2**13)
98+
BLOB_SCHEDULE_MAX: Final[U64] = U64(21)
99+
BLOB_MIN_GASPRICE: Final[Uint] = Uint(1)
100+
BLOB_BASE_FEE_UPDATE_FRACTION: Final[Uint] = Uint(11684671)
101101

102102
# Block Access Lists
103-
BLOCK_ACCESS_LIST_ITEM = Uint(2000)
103+
BLOCK_ACCESS_LIST_ITEM: Final[Uint] = Uint(2000)
104104

105105
# Transactions
106-
TX_BASE = Uint(21000)
107-
TX_CREATE = Uint(32000)
108-
TX_DATA_TOKEN_STANDARD = Uint(4)
109-
TX_DATA_TOKEN_FLOOR = Uint(16)
110-
TX_ACCESS_LIST_ADDRESS = Uint(2400)
111-
TX_ACCESS_LIST_STORAGE_KEY = Uint(1900)
106+
TX_BASE: Final[Uint] = Uint(21000)
107+
TX_CREATE: Final[Uint] = Uint(32000)
108+
TX_DATA_TOKEN_STANDARD: Final[Uint] = Uint(4)
109+
TX_DATA_TOKEN_FLOOR: Final[Uint] = Uint(16)
110+
TX_ACCESS_LIST_ADDRESS: Final[Uint] = Uint(2400)
111+
TX_ACCESS_LIST_STORAGE_KEY: Final[Uint] = Uint(1900)
112112

113113
# Block
114-
LIMIT_ADJUSTMENT_FACTOR = Uint(1024)
115-
LIMIT_MINIMUM = Uint(5000)
114+
LIMIT_ADJUSTMENT_FACTOR: Final[Uint] = Uint(1024)
115+
LIMIT_MINIMUM: Final[Uint] = Uint(5000)
116116

117117
# Static Opcodes
118-
OPCODE_ADD = VERY_LOW
119-
OPCODE_SUB = VERY_LOW
120-
OPCODE_MUL = LOW
121-
OPCODE_DIV = LOW
122-
OPCODE_SDIV = LOW
123-
OPCODE_MOD = LOW
124-
OPCODE_SMOD = LOW
125-
OPCODE_ADDMOD = MID
126-
OPCODE_MULMOD = MID
127-
OPCODE_SIGNEXTEND = LOW
128-
OPCODE_LT = VERY_LOW
129-
OPCODE_GT = VERY_LOW
130-
OPCODE_SLT = VERY_LOW
131-
OPCODE_SGT = VERY_LOW
132-
OPCODE_EQ = VERY_LOW
133-
OPCODE_ISZERO = VERY_LOW
134-
OPCODE_AND = VERY_LOW
135-
OPCODE_OR = VERY_LOW
136-
OPCODE_XOR = VERY_LOW
137-
OPCODE_NOT = VERY_LOW
138-
OPCODE_BYTE = VERY_LOW
139-
OPCODE_SHL = VERY_LOW
140-
OPCODE_SHR = VERY_LOW
141-
OPCODE_SAR = VERY_LOW
142-
OPCODE_CLZ = LOW
143-
OPCODE_JUMP = MID
144-
OPCODE_JUMPI = HIGH
145-
OPCODE_JUMPDEST = Uint(1)
146-
OPCODE_CALLDATALOAD = VERY_LOW
147-
OPCODE_BLOCKHASH = Uint(20)
148-
OPCODE_COINBASE = BASE
149-
OPCODE_POP = BASE
150-
OPCODE_MSIZE = BASE
151-
OPCODE_PC = BASE
152-
OPCODE_GAS = BASE
153-
OPCODE_ADDRESS = BASE
154-
OPCODE_ORIGIN = BASE
155-
OPCODE_CALLER = BASE
156-
OPCODE_CALLVALUE = BASE
157-
OPCODE_CALLDATASIZE = BASE
158-
OPCODE_CODESIZE = BASE
159-
OPCODE_GASPRICE = BASE
160-
OPCODE_TIMESTAMP = BASE
161-
OPCODE_NUMBER = BASE
162-
OPCODE_GASLIMIT = BASE
163-
OPCODE_PREVRANDAO = BASE
164-
OPCODE_RETURNDATASIZE = BASE
165-
OPCODE_CHAINID = BASE
166-
OPCODE_BASEFEE = BASE
167-
OPCODE_BLOBBASEFEE = BASE
168-
OPCODE_SLOTNUM = BASE
169-
OPCODE_BLOBHASH = Uint(3)
170-
OPCODE_PUSH = VERY_LOW
171-
OPCODE_PUSH0 = BASE
172-
OPCODE_DUP = VERY_LOW
173-
OPCODE_SWAP = VERY_LOW
174-
OPCODE_DUPN = VERY_LOW
175-
OPCODE_SWAPN = VERY_LOW
176-
OPCODE_EXCHANGE = VERY_LOW
118+
OPCODE_ADD: Final[Uint] = VERY_LOW
119+
OPCODE_SUB: Final[Uint] = VERY_LOW
120+
OPCODE_MUL: Final[Uint] = LOW
121+
OPCODE_DIV: Final[Uint] = LOW
122+
OPCODE_SDIV: Final[Uint] = LOW
123+
OPCODE_MOD: Final[Uint] = LOW
124+
OPCODE_SMOD: Final[Uint] = LOW
125+
OPCODE_ADDMOD: Final[Uint] = MID
126+
OPCODE_MULMOD: Final[Uint] = MID
127+
OPCODE_SIGNEXTEND: Final[Uint] = LOW
128+
OPCODE_LT: Final[Uint] = VERY_LOW
129+
OPCODE_GT: Final[Uint] = VERY_LOW
130+
OPCODE_SLT: Final[Uint] = VERY_LOW
131+
OPCODE_SGT: Final[Uint] = VERY_LOW
132+
OPCODE_EQ: Final[Uint] = VERY_LOW
133+
OPCODE_ISZERO: Final[Uint] = VERY_LOW
134+
OPCODE_AND: Final[Uint] = VERY_LOW
135+
OPCODE_OR: Final[Uint] = VERY_LOW
136+
OPCODE_XOR: Final[Uint] = VERY_LOW
137+
OPCODE_NOT: Final[Uint] = VERY_LOW
138+
OPCODE_BYTE: Final[Uint] = VERY_LOW
139+
OPCODE_SHL: Final[Uint] = VERY_LOW
140+
OPCODE_SHR: Final[Uint] = VERY_LOW
141+
OPCODE_SAR: Final[Uint] = VERY_LOW
142+
OPCODE_CLZ: Final[Uint] = LOW
143+
OPCODE_JUMP: Final[Uint] = MID
144+
OPCODE_JUMPI: Final[Uint] = HIGH
145+
OPCODE_JUMPDEST: Final[Uint] = Uint(1)
146+
OPCODE_CALLDATALOAD: Final[Uint] = VERY_LOW
147+
OPCODE_BLOCKHASH: Final[Uint] = Uint(20)
148+
OPCODE_COINBASE: Final[Uint] = BASE
149+
OPCODE_POP: Final[Uint] = BASE
150+
OPCODE_MSIZE: Final[Uint] = BASE
151+
OPCODE_PC: Final[Uint] = BASE
152+
OPCODE_GAS: Final[Uint] = BASE
153+
OPCODE_ADDRESS: Final[Uint] = BASE
154+
OPCODE_ORIGIN: Final[Uint] = BASE
155+
OPCODE_CALLER: Final[Uint] = BASE
156+
OPCODE_CALLVALUE: Final[Uint] = BASE
157+
OPCODE_CALLDATASIZE: Final[Uint] = BASE
158+
OPCODE_CODESIZE: Final[Uint] = BASE
159+
OPCODE_GASPRICE: Final[Uint] = BASE
160+
OPCODE_TIMESTAMP: Final[Uint] = BASE
161+
OPCODE_NUMBER: Final[Uint] = BASE
162+
OPCODE_GASLIMIT: Final[Uint] = BASE
163+
OPCODE_PREVRANDAO: Final[Uint] = BASE
164+
OPCODE_RETURNDATASIZE: Final[Uint] = BASE
165+
OPCODE_CHAINID: Final[Uint] = BASE
166+
OPCODE_BASEFEE: Final[Uint] = BASE
167+
OPCODE_BLOBBASEFEE: Final[Uint] = BASE
168+
OPCODE_SLOTNUM: Final[Uint] = BASE
169+
OPCODE_BLOBHASH: Final[Uint] = Uint(3)
170+
OPCODE_PUSH: Final[Uint] = VERY_LOW
171+
OPCODE_PUSH0: Final[Uint] = BASE
172+
OPCODE_DUP: Final[Uint] = VERY_LOW
173+
OPCODE_SWAP: Final[Uint] = VERY_LOW
174+
OPCODE_DUPN: Final[Uint] = VERY_LOW
175+
OPCODE_SWAPN: Final[Uint] = VERY_LOW
176+
OPCODE_EXCHANGE: Final[Uint] = VERY_LOW
177177

178178
# Dynamic Opcode Components
179-
OPCODE_RETURNDATACOPY_BASE = VERY_LOW
180-
OPCODE_RETURNDATACOPY_PER_WORD = Uint(3)
181-
OPCODE_CALLDATACOPY_BASE = VERY_LOW
182-
OPCODE_CODECOPY_BASE = VERY_LOW
183-
OPCODE_MCOPY_BASE = VERY_LOW
184-
OPCODE_MLOAD_BASE = VERY_LOW
185-
OPCODE_MSTORE_BASE = VERY_LOW
186-
OPCODE_MSTORE8_BASE = VERY_LOW
187-
OPCODE_COPY_PER_WORD = Uint(3)
188-
OPCODE_CREATE_BASE = Uint(32000)
189-
OPCODE_EXP_BASE = Uint(10)
190-
OPCODE_EXP_PER_BYTE = Uint(50)
191-
OPCODE_KECCAK256_BASE = Uint(30)
192-
OPCODE_KECCACK256_PER_WORD = Uint(6)
193-
OPCODE_LOG_BASE = Uint(375)
194-
OPCODE_LOG_DATA_PER_BYTE = Uint(8)
195-
OPCODE_LOG_TOPIC = Uint(375)
196-
OPCODE_SELFDESTRUCT_BASE = Uint(5000)
197-
OPCODE_SELFDESTRUCT_NEW_ACCOUNT = Uint(25000)
179+
OPCODE_RETURNDATACOPY_BASE: Final[Uint] = VERY_LOW
180+
OPCODE_RETURNDATACOPY_PER_WORD: Final[Uint] = Uint(3)
181+
OPCODE_CALLDATACOPY_BASE: Final[Uint] = VERY_LOW
182+
OPCODE_CODECOPY_BASE: Final[Uint] = VERY_LOW
183+
OPCODE_MCOPY_BASE: Final[Uint] = VERY_LOW
184+
OPCODE_MLOAD_BASE: Final[Uint] = VERY_LOW
185+
OPCODE_MSTORE_BASE: Final[Uint] = VERY_LOW
186+
OPCODE_MSTORE8_BASE: Final[Uint] = VERY_LOW
187+
OPCODE_COPY_PER_WORD: Final[Uint] = Uint(3)
188+
OPCODE_CREATE_BASE: Final[Uint] = Uint(32000)
189+
OPCODE_EXP_BASE: Final[Uint] = Uint(10)
190+
OPCODE_EXP_PER_BYTE: Final[Uint] = Uint(50)
191+
OPCODE_KECCAK256_BASE: Final[Uint] = Uint(30)
192+
OPCODE_KECCACK256_PER_WORD: Final[Uint] = Uint(6)
193+
OPCODE_LOG_BASE: Final[Uint] = Uint(375)
194+
OPCODE_LOG_DATA_PER_BYTE: Final[Uint] = Uint(8)
195+
OPCODE_LOG_TOPIC: Final[Uint] = Uint(375)
196+
OPCODE_SELFDESTRUCT_BASE: Final[Uint] = Uint(5000)
197+
OPCODE_SELFDESTRUCT_NEW_ACCOUNT: Final[Uint] = Uint(25000)
198198

199199

200200
@dataclass

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

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
"""
1313

1414
from functools import partial
15+
from typing import Callable
1516

1617
from ethereum_types.numeric import Uint
1718

@@ -79,8 +80,8 @@ def log_n(evm: Evm, num_topics: int) -> None:
7980
evm.pc += Uint(1)
8081

8182

82-
log0 = partial(log_n, num_topics=0)
83-
log1 = partial(log_n, num_topics=1)
84-
log2 = partial(log_n, num_topics=2)
85-
log3 = partial(log_n, num_topics=3)
86-
log4 = partial(log_n, num_topics=4)
83+
log0: Callable[[Evm], None] = partial(log_n, num_topics=0)
84+
log1: Callable[[Evm], None] = partial(log_n, num_topics=1)
85+
log2: Callable[[Evm], None] = partial(log_n, num_topics=2)
86+
log3: Callable[[Evm], None] = partial(log_n, num_topics=3)
87+
log4: Callable[[Evm], None] = partial(log_n, num_topics=4)

0 commit comments

Comments
 (0)