ethrex_blockchain/constants.rs
1// === YELLOW PAPER constants ===
2
3/// Base gas cost for each non contract creating transaction
4pub const TX_GAS_COST: u64 = 21000;
5
6/// Base gas cost for each contract creating transaction
7pub const TX_CREATE_GAS_COST: u64 = 53000;
8
9// Gas cost for each zero byte on transaction data
10pub const TX_DATA_ZERO_GAS_COST: u64 = 4;
11
12// Gas cost for each init code word on transaction data
13pub const TX_INIT_CODE_WORD_GAS_COST: u64 = 2;
14
15// Gas cost for each address specified on access lists
16pub const TX_ACCESS_LIST_ADDRESS_GAS: u64 = 2400;
17
18// Gas cost for each storage key specified on access lists
19pub const TX_ACCESS_LIST_STORAGE_KEY_GAS: u64 = 1900;
20
21// Gas cost for each non zero byte on transaction data
22pub const TX_DATA_NON_ZERO_GAS: u64 = 68;
23
24// === EIP-170 constants ===
25
26// Max bytecode size
27pub const MAX_CODE_SIZE: u32 = 0x6000;
28// EIP-7954 (Amsterdam): increased max bytecode size
29pub const AMSTERDAM_MAX_CODE_SIZE: u32 = 0x8000;
30
31// === EIP-3860 constants ===
32
33// Max contract creation bytecode size
34pub const MAX_INITCODE_SIZE: u32 = 2 * MAX_CODE_SIZE;
35// EIP-7954 (Amsterdam): increased max initcode size
36pub const AMSTERDAM_MAX_INITCODE_SIZE: u32 = 2 * AMSTERDAM_MAX_CODE_SIZE;
37
38// === EIP-2028 constants ===
39
40// Gas cost for each non zero byte on transaction data
41pub const TX_DATA_NON_ZERO_GAS_EIP2028: u64 = 16;
42
43// === EIP-4844 constants ===
44
45pub const GAS_LIMIT_BOUND_DIVISOR: u64 = 1024;
46
47pub const MIN_GAS_LIMIT: u64 = 5000;
48
49// === EIP-7825 constants ===
50// https://eips.ethereum.org/EIPS/eip-7825
51pub const POST_OSAKA_GAS_LIMIT_CAP: u64 = 16777216;
52
53// === EIP-7981 / EIP-7976 constants (Amsterdam+) ===
54// access_list_bytes * STANDARD_TOKEN_COST(4) * TOTAL_COST_FLOOR_PER_TOKEN(16) = access_list_bytes * 64
55// Per address entry: 20 bytes * 64 = 1280
56pub const TX_ACCESS_LIST_ADDRESS_DATA_GAS_AMSTERDAM: u64 = 1280;
57// Per storage key entry: 32 bytes * 64 = 2048
58pub const TX_ACCESS_LIST_STORAGE_KEY_DATA_GAS_AMSTERDAM: u64 = 2048;