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