Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
aztec_constants.hpp
Go to the documentation of this file.
1// GENERATED FILE - DO NOT EDIT, RUN yarn remake-constants in yarn-project/constants
2#pragma once
3
4#define ARCHIVE_HEIGHT 30
5#define NOTE_HASH_TREE_HEIGHT 42
6#define PUBLIC_DATA_TREE_HEIGHT 40
7#define NULLIFIER_TREE_HEIGHT 42
8#define L1_TO_L2_MSG_TREE_HEIGHT 36
9#define NOTE_HASH_TREE_LEAF_COUNT 0x40000000000
10#define L1_TO_L2_MSG_TREE_LEAF_COUNT 0x1000000000
11#define MAX_NOTE_HASHES_PER_TX 64
12#define MAX_NULLIFIERS_PER_TX 64
13#define MAX_ENQUEUED_CALLS_PER_TX 32
14#define MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX 64
15#define MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX 63
16#define MAX_L2_TO_L1_MSGS_PER_TX 8
17#define GENESIS_BLOCK_HEADER_HASH "0x0dc66232e4edff2923217f4fdf80ecc23ed4bd047e743df85a6827878bf6c4d6"
18#define GENESIS_ARCHIVE_ROOT "0x1f8c805403d88ee809d3cb3e52eeba0a104f69968cdb844a9cbdf1e9e00b3a95"
19#define MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS 3000
20#define MAX_PROTOCOL_CONTRACTS 11
21#define CANONICAL_AUTH_REGISTRY_ADDRESS 1
22#define CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS 2
23#define CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS 3
24#define MULTI_CALL_ENTRYPOINT_ADDRESS 4
25#define FEE_JUICE_ADDRESS 5
26#define ROUTER_ADDRESS 6
27#define FEE_JUICE_BALANCES_SLOT 1
28#define UPDATED_CLASS_IDS_SLOT 1
29#define FLAT_PUBLIC_LOGS_HEADER_LENGTH 1
30#define FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH 4096
31#define PUBLIC_LOGS_LENGTH 4097
32#define PUBLIC_LOG_HEADER_LENGTH 2
33#define AVM_ACCUMULATED_DATA_LENGTH 4377
34#define AVM_CIRCUIT_PUBLIC_INPUTS_LENGTH 5008
35#define AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS 86
36#define MAX_PUBLIC_CALLS_TO_UNIQUE_CONTRACT_CLASS_IDS 21
37#define MEM_TAG_FF 0
38#define MEM_TAG_U1 1
39#define MEM_TAG_U8 2
40#define MEM_TAG_U16 3
41#define MEM_TAG_U32 4
42#define MEM_TAG_U64 5
43#define MEM_TAG_U128 6
44#define AVM_HIGHEST_MEM_ADDRESS 0xffffffff
45#define AVM_MEMORY_NUM_BITS 32
46#define AVM_BITWISE_AND_OP_ID 0
47#define AVM_BITWISE_OR_OP_ID 1
48#define AVM_BITWISE_XOR_OP_ID 2
49#define AVM_KECCAKF1600_NUM_ROUNDS 24
50#define AVM_KECCAKF1600_STATE_SIZE 25
51#define AVM_SUBTRACE_ID_EXECUTION 1
52#define AVM_SUBTRACE_ID_ALU 2
53#define AVM_SUBTRACE_ID_BITWISE 4
54#define AVM_SUBTRACE_ID_CAST 8
55#define AVM_SUBTRACE_ID_CALLDATA_COPY 16
56#define AVM_SUBTRACE_ID_RETURNDATA_COPY 32
57#define AVM_SUBTRACE_ID_SET 64
58#define AVM_SUBTRACE_ID_GETCONTRACTINSTANCE 128
59#define AVM_SUBTRACE_ID_EMITUNENCRYPTEDLOG 256
60#define AVM_SUBTRACE_ID_POSEIDON2_PERM 512
61#define AVM_SUBTRACE_ID_SHA256_COMPRESSION 1024
62#define AVM_SUBTRACE_ID_KECCAKF1600 2048
63#define AVM_SUBTRACE_ID_ECC 4096
64#define AVM_SUBTRACE_ID_TO_RADIX 8192
65#define AVM_DYN_GAS_ID_CALLDATACOPY 1
66#define AVM_DYN_GAS_ID_RETURNDATACOPY 2
67#define AVM_DYN_GAS_ID_TORADIX 4
68#define AVM_DYN_GAS_ID_BITWISE 8
69#define AVM_DYN_GAS_ID_EMITUNENCRYPTEDLOG 16
70#define AVM_DYN_GAS_ID_SSTORE 32
71#define AVM_EXEC_OP_ID_GETENVVAR 1
72#define AVM_EXEC_OP_ID_MOV 2
73#define AVM_EXEC_OP_ID_JUMP 4
74#define AVM_EXEC_OP_ID_JUMPI 8
75#define AVM_EXEC_OP_ID_CALL 16
76#define AVM_EXEC_OP_ID_STATICCALL 32
77#define AVM_EXEC_OP_ID_INTERNALCALL 64
78#define AVM_EXEC_OP_ID_INTERNALRETURN 128
79#define AVM_EXEC_OP_ID_RETURN 256
80#define AVM_EXEC_OP_ID_REVERT 512
81#define AVM_EXEC_OP_ID_SUCCESSCOPY 1024
82#define AVM_EXEC_OP_ID_RETURNDATASIZE 2048
83#define AVM_EXEC_OP_ID_DEBUGLOG 4096
84#define AVM_EXEC_OP_ID_SLOAD 8192
85#define AVM_EXEC_OP_ID_SSTORE 16384
86#define AVM_EXEC_OP_ID_NOTEHASH_EXISTS 32768
87#define AVM_EXEC_OP_ID_EMIT_NOTEHASH 65536
88#define AVM_EXEC_OP_ID_L1_TO_L2_MESSAGE_EXISTS 131072
89#define AVM_EXEC_OP_ID_NULLIFIER_EXISTS 262144
90#define AVM_EXEC_OP_ID_EMIT_NULLIFIER 524288
91#define AVM_EXEC_OP_ID_SENDL2TOL1MSG 1048576
92#define AVM_EXEC_OP_ID_ALU_ADD 1
93#define AVM_EXEC_OP_ID_ALU_SUB 2
94#define AVM_EXEC_OP_ID_ALU_MUL 4
95#define AVM_EXEC_OP_ID_ALU_DIV 8
96#define AVM_EXEC_OP_ID_ALU_FDIV 16
97#define AVM_EXEC_OP_ID_ALU_EQ 32
98#define AVM_EXEC_OP_ID_ALU_LT 64
99#define AVM_EXEC_OP_ID_ALU_LTE 128
100#define AVM_EXEC_OP_ID_ALU_NOT 256
101#define AVM_EXEC_OP_ID_ALU_SHL 512
102#define AVM_EXEC_OP_ID_ALU_SHR 1024
103#define AVM_EXEC_OP_ID_ALU_TRUNCATE 2048
104#define AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_ROW_IDX 0
105#define AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_CHAIN_ID_ROW_IDX 0
106#define AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_VERSION_ROW_IDX 1
107#define AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_BLOCK_NUMBER_ROW_IDX 2
108#define AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_SLOT_NUMBER_ROW_IDX 3
109#define AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_TIMESTAMP_ROW_IDX 4
110#define AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_COINBASE_ROW_IDX 5
111#define AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_FEE_RECIPIENT_ROW_IDX 6
112#define AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_GAS_FEES_ROW_IDX 7
113#define AVM_PUBLIC_INPUTS_PROTOCOL_CONTRACTS_ROW_IDX 8
114#define AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_ROW_IDX 19
115#define AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_L1_TO_L2_MESSAGE_TREE_ROW_IDX 19
116#define AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_NOTE_HASH_TREE_ROW_IDX 20
117#define AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_NULLIFIER_TREE_ROW_IDX 21
118#define AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_PUBLIC_DATA_TREE_ROW_IDX 22
119#define AVM_PUBLIC_INPUTS_START_GAS_USED_ROW_IDX 23
120#define AVM_PUBLIC_INPUTS_GAS_SETTINGS_ROW_IDX 24
121#define AVM_PUBLIC_INPUTS_GAS_SETTINGS_GAS_LIMITS_ROW_IDX 24
122#define AVM_PUBLIC_INPUTS_GAS_SETTINGS_TEARDOWN_GAS_LIMITS_ROW_IDX 25
123#define AVM_PUBLIC_INPUTS_GAS_SETTINGS_MAX_FEES_PER_GAS_ROW_IDX 26
124#define AVM_PUBLIC_INPUTS_GAS_SETTINGS_MAX_PRIORITY_FEES_PER_GAS_ROW_IDX 27
125#define AVM_PUBLIC_INPUTS_EFFECTIVE_GAS_FEES_ROW_IDX 28
126#define AVM_PUBLIC_INPUTS_FEE_PAYER_ROW_IDX 29
127#define AVM_PUBLIC_INPUTS_PROVER_ID_ROW_IDX 30
128#define AVM_PUBLIC_INPUTS_PUBLIC_CALL_REQUEST_ARRAY_LENGTHS_ROW_IDX 31
129#define AVM_PUBLIC_INPUTS_PUBLIC_CALL_REQUEST_ARRAY_LENGTHS_SETUP_CALLS_ROW_IDX 31
130#define AVM_PUBLIC_INPUTS_PUBLIC_CALL_REQUEST_ARRAY_LENGTHS_APP_LOGIC_CALLS_ROW_IDX 32
131#define AVM_PUBLIC_INPUTS_PUBLIC_CALL_REQUEST_ARRAY_LENGTHS_TEARDOWN_CALL_ROW_IDX 33
132#define AVM_PUBLIC_INPUTS_PUBLIC_SETUP_CALL_REQUESTS_ROW_IDX 34
133#define AVM_PUBLIC_INPUTS_PUBLIC_APP_LOGIC_CALL_REQUESTS_ROW_IDX 66
134#define AVM_PUBLIC_INPUTS_PUBLIC_TEARDOWN_CALL_REQUEST_ROW_IDX 98
135#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_ROW_IDX 99
136#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_NOTE_HASHES_ROW_IDX 99
137#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_NULLIFIERS_ROW_IDX 100
138#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_L2_TO_L1_MSGS_ROW_IDX 101
139#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_ROW_IDX 102
140#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_NOTE_HASHES_ROW_IDX 102
141#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_NULLIFIERS_ROW_IDX 103
142#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_L2_TO_L1_MSGS_ROW_IDX 104
143#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ROW_IDX 105
144#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX 105
145#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX 169
146#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX 233
147#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ROW_IDX 241
148#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX 241
149#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX 305
150#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX 369
151#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_ROW_IDX 377
152#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_L1_TO_L2_MESSAGE_TREE_ROW_IDX 377
153#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_NOTE_HASH_TREE_ROW_IDX 378
154#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_NULLIFIER_TREE_ROW_IDX 379
155#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_PUBLIC_DATA_TREE_ROW_IDX 380
156#define AVM_PUBLIC_INPUTS_END_GAS_USED_ROW_IDX 381
157#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_ROW_IDX 382
158#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_NOTE_HASHES_ROW_IDX 382
159#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_NULLIFIERS_ROW_IDX 383
160#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_L2_TO_L1_MSGS_ROW_IDX 384
161#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_PUBLIC_DATA_WRITES_ROW_IDX 385
162#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ROW_IDX 386
163#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX 386
164#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX 450
165#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX 514
166#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_LOGS_ROW_IDX 522
167#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_DATA_WRITES_ROW_IDX 4619
168#define AVM_PUBLIC_INPUTS_TRANSACTION_FEE_ROW_IDX 4683
169#define AVM_PUBLIC_INPUTS_REVERTED_ROW_IDX 4684
170#define AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH 4685
171#define AVM_NUM_PUBLIC_INPUT_COLUMNS 4
172#define AVM_PUBLIC_INPUTS_COLUMNS_COMBINED_LENGTH 18740
173#define AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED 20000
174#define AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED 1000
175#define AVM_MAX_PROCESSABLE_L2_GAS 6000000
176#define AVM_PC_SIZE_IN_BITS 32
177#define AVM_MAX_OPERANDS 7
178#define AVM_MAX_REGISTERS 6
179#define AVM_ADDRESSING_BASE_RESOLUTION_L2_GAS 3
180#define AVM_ADDRESSING_INDIRECT_L2_GAS 3
181#define AVM_ADDRESSING_RELATIVE_L2_GAS 3
182#define AVM_ADD_BASE_L2_GAS 12
183#define AVM_SUB_BASE_L2_GAS 12
184#define AVM_MUL_BASE_L2_GAS 27
185#define AVM_DIV_BASE_L2_GAS 27
186#define AVM_FDIV_BASE_L2_GAS 9
187#define AVM_EQ_BASE_L2_GAS 12
188#define AVM_LT_BASE_L2_GAS 42
189#define AVM_LTE_BASE_L2_GAS 42
190#define AVM_AND_BASE_L2_GAS 12
191#define AVM_OR_BASE_L2_GAS 12
192#define AVM_XOR_BASE_L2_GAS 12
193#define AVM_NOT_BASE_L2_GAS 12
194#define AVM_SHL_BASE_L2_GAS 18
195#define AVM_SHR_BASE_L2_GAS 18
196#define AVM_CAST_BASE_L2_GAS 27
197#define AVM_GETENVVAR_BASE_L2_GAS 12
198#define AVM_CALLDATACOPY_BASE_L2_GAS 18
199#define AVM_SUCCESSCOPY_BASE_L2_GAS 12
200#define AVM_RETURNDATASIZE_BASE_L2_GAS 12
201#define AVM_RETURNDATACOPY_BASE_L2_GAS 18
202#define AVM_JUMP_BASE_L2_GAS 9
203#define AVM_JUMPI_BASE_L2_GAS 9
204#define AVM_INTERNALCALL_BASE_L2_GAS 9
205#define AVM_INTERNALRETURN_BASE_L2_GAS 9
206#define AVM_SET_BASE_L2_GAS 27
207#define AVM_MOV_BASE_L2_GAS 12
208#define AVM_SLOAD_BASE_L2_GAS 129
209#define AVM_SSTORE_BASE_L2_GAS 1657
210#define AVM_NOTEHASHEXISTS_BASE_L2_GAS 126
211#define AVM_EMITNOTEHASH_BASE_L2_GAS 1285
212#define AVM_NULLIFIEREXISTS_BASE_L2_GAS 132
213#define AVM_EMITNULLIFIER_BASE_L2_GAS 1540
214#define AVM_L1TOL2MSGEXISTS_BASE_L2_GAS 108
215#define AVM_GETCONTRACTINSTANCE_BASE_L2_GAS 1527
216#define AVM_EMITUNENCRYPTEDLOG_BASE_L2_GAS 15
217#define AVM_SENDL2TOL1MSG_BASE_L2_GAS 209
218#define AVM_CALL_BASE_L2_GAS 3312
219#define AVM_STATICCALL_BASE_L2_GAS 3312
220#define AVM_RETURN_BASE_L2_GAS 9
221#define AVM_REVERT_BASE_L2_GAS 9
222#define AVM_DEBUGLOG_BASE_L2_GAS 9
223#define AVM_POSEIDON2_BASE_L2_GAS 24
224#define AVM_SHA256COMPRESSION_BASE_L2_GAS 12288
225#define AVM_KECCAKF1600_BASE_L2_GAS 58176
226#define AVM_ECADD_BASE_L2_GAS 27
227#define AVM_TORADIXBE_BASE_L2_GAS 24
228#define AVM_CALLDATACOPY_DYN_L2_GAS 3
229#define AVM_RETURNDATACOPY_DYN_L2_GAS 3
230#define AVM_TORADIXBE_DYN_L2_GAS 3
231#define AVM_BITWISE_DYN_L2_GAS 3
232#define AVM_EMITUNENCRYPTEDLOG_DYN_L2_GAS 3
233#define AVM_EMITNOTEHASH_BASE_DA_GAS 512
234#define AVM_EMITNULLIFIER_BASE_DA_GAS 512
235#define AVM_SENDL2TOL1MSG_BASE_DA_GAS 512
236#define AVM_EMITUNENCRYPTEDLOG_BASE_DA_GAS 1024
237#define AVM_EMITUNENCRYPTEDLOG_DYN_DA_GAS 512
238#define AVM_SSTORE_DYN_DA_GAS 1024
239#define AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_HEIGHT 6
240#define AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_INITIAL_ROOT \
241 "0x2870b93163d4fd6ada360fe48ee1e8e8e69308af34cdfaeffacbbe5929e2466d"
242#define AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_INITIAL_SIZE 1
243#define AVM_RETRIEVED_BYTECODES_TREE_HEIGHT 5
244#define AVM_RETRIEVED_BYTECODES_TREE_INITIAL_ROOT "0x100ba46aea628d39c08788f05fcad4ab19adf5b8bba866a1f5c5baa6e297891d"
245#define AVM_RETRIEVED_BYTECODES_TREE_INITIAL_SIZE 1
246#define TIMESTAMP_OF_CHANGE_BIT_SIZE 32
247#define UPDATES_DELAYED_PUBLIC_MUTABLE_VALUES_LEN 3
248#define UPDATES_DELAYED_PUBLIC_MUTABLE_METADATA_BIT_SIZE 144
249#define DEFAULT_MAX_DEBUG_LOG_MEMORY_READS 125000
250#define GENERATOR_INDEX__NOTE_HASH_NONCE 2
251#define GENERATOR_INDEX__UNIQUE_NOTE_HASH 3
252#define GENERATOR_INDEX__SILOED_NOTE_HASH 4
253#define GENERATOR_INDEX__OUTER_NULLIFIER 7
254#define GENERATOR_INDEX__CONTRACT_ADDRESS_V1 15
255#define GENERATOR_INDEX__CONTRACT_LEAF 16
256#define GENERATOR_INDEX__PUBLIC_LEAF_INDEX 23
257#define GENERATOR_INDEX__PARTIAL_ADDRESS 27
258#define GENERATOR_INDEX__PUBLIC_CALLDATA 43
259#define GENERATOR_INDEX__PUBLIC_KEYS_HASH 52
260#define GENERATOR_INDEX__PUBLIC_BYTECODE 60