@aztec/constants 0.0.1-commit.f504929 → 0.0.1-commit.f5a9928

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -57,8 +57,6 @@ export const MAX_KEY_VALIDATION_REQUESTS_PER_CALL = 16;
57
57
  export const NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP = 1024;
58
58
  export const PRIVATE_KERNEL_INIT_VK_INDEX = 0;
59
59
  export const PRIVATE_KERNEL_INNER_VK_INDEX = 1;
60
- export const PRIVATE_KERNEL_TAIL_VK_INDEX = 2;
61
- export const PRIVATE_KERNEL_TAIL_TO_PUBLIC_VK_INDEX = 3;
62
60
  export const HIDING_KERNEL_TO_ROLLUP_VK_INDEX = 4;
63
61
  export const HIDING_KERNEL_TO_PUBLIC_VK_INDEX = 5;
64
62
  export const PUBLIC_CHONK_VERIFIER_VK_INDEX = 6;
@@ -79,6 +77,14 @@ export const ROOT_ROLLUP_VK_INDEX = 20;
79
77
  export const PARITY_BASE_VK_INDEX = 21;
80
78
  export const PARITY_ROOT_VK_INDEX = 22;
81
79
  export const PRIVATE_KERNEL_RESET_VK_INDEX = 23;
80
+ export const PRIVATE_KERNEL_RESET_TAIL_VK_INDEX = 31;
81
+ export const PRIVATE_KERNEL_RESET_TAIL_TO_PUBLIC_VK_INDEX = 37;
82
+ export const PRIVATE_KERNEL_RESET_BLOCK_END = 43;
83
+ export const PRIVATE_KERNEL_INIT_3_VK_INDEX = 65;
84
+ export const PRIVATE_KERNEL_INIT_2_VK_INDEX = 66;
85
+ export const PRIVATE_KERNEL_INNER_2_VK_INDEX = 67;
86
+ export const PRIVATE_KERNEL_INNER_3_VK_INDEX = 68;
87
+ export const MAX_APPS_PER_KERNEL = 3;
82
88
  export const GLOBAL_INDEX_NOTE_HASH_READ_REQUEST_OFFSET = 0;
83
89
  export const GLOBAL_INDEX_NULLIFIER_READ_REQUEST_OFFSET = 16;
84
90
  export const GLOBAL_INDEX_NOTE_HASH_OFFSET = 32;
@@ -98,8 +104,8 @@ export const FIELDS_PER_BLOB = 4096;
98
104
  export const BLOBS_PER_CHECKPOINT = 6;
99
105
  export const MAX_CHECKPOINTS_PER_EPOCH = 32;
100
106
  export const MAX_TX_LIFETIME = 86400;
101
- export const GENESIS_BLOCK_HEADER_HASH = 21694244557328181932449230888455310614586084993178835904749768133365362325861n;
102
- export const GENESIS_ARCHIVE_ROOT = 9682850228538071369704502076456077473410427336083826595120404283897422804423n;
107
+ export const GENESIS_BLOCK_HEADER_HASH = 6551417544883665873456328017782433997345264442591862482015827744892259451090n;
108
+ export const GENESIS_ARCHIVE_ROOT = 10619256997260439436842531499967995403253967496480475679746178797053672406517n;
103
109
  export const EMPTY_EPOCH_OUT_HASH = 355785372471781095838790036702437931769306153278986832745847530947941691539n;
104
110
  export const MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS = 3000;
105
111
  export const MAX_PACKED_BYTECODE_SIZE_PER_PRIVATE_FUNCTION_IN_FIELDS = 3000;
@@ -112,12 +118,9 @@ export const CONTRACT_CLASS_REGISTRY_UTILITY_FUNCTION_BROADCASTED_MAGIC_VALUE =
112
118
  export const CONTRACT_INSTANCE_PUBLISHED_MAGIC_VALUE = 10538216027419913765597387738085647348651103543680388181336823392401502757423n;
113
119
  export const CONTRACT_INSTANCE_UPDATED_MAGIC_VALUE = 20721543224513346060908370400407150739273836456436647488068002302723900469047n;
114
120
  export const MAX_PROTOCOL_CONTRACTS = 11;
115
- export const CANONICAL_AUTH_REGISTRY_ADDRESS = 1;
121
+ export const CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS = 1;
116
122
  export const CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS = 2;
117
- export const CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS = 3;
118
- export const MULTI_CALL_ENTRYPOINT_ADDRESS = 4;
119
- export const FEE_JUICE_ADDRESS = 5;
120
- export const PUBLIC_CHECKS_ADDRESS = 6;
123
+ export const FEE_JUICE_ADDRESS = 3;
121
124
  export const SIDE_EFFECT_MASKING_ADDRESS = 19523154334483583633304358390644137470227519736821975910774528428729027989987n;
122
125
  export const NULL_MSG_SENDER_CONTRACT_ADDRESS = 21888242871839275222246405745257275088548364400416034343698204186575808495616n;
123
126
  export const CONTRACT_CLASS_REGISTRY_BYTECODE_CAPSULE_SLOT = 14193106819744442689484501689686180698286338820089744102289275815863062044599n;
@@ -131,12 +134,21 @@ export const DEFAULT_OVPK_M_X = 122127877196173055705879288602884754543280089552
131
134
  export const DEFAULT_OVPK_M_Y = 3646747884782549389807830220601404629716007431341772952958971658285958854707n;
132
135
  export const DEFAULT_TPK_M_X = 728059161893070741164607238299536939695876538801885465230641192969135857403n;
133
136
  export const DEFAULT_TPK_M_Y = 14575718736702206050102425029229426215631664471161015518982549597389390371695n;
137
+ export const DEFAULT_MSPK_M_X = 376604625977751683916174973150925911104291823095102990065366659597425722296n;
138
+ export const DEFAULT_MSPK_M_Y = 6401736487141786437369922081657103422778081213225821992340733703460199150021n;
139
+ export const DEFAULT_FBPK_M_X = 11572348468544340050763207926758553848489417025671995953147359609999720016266n;
140
+ export const DEFAULT_FBPK_M_Y = 11774107091164614768010125692190151838649080987589360468021169521798921524563n;
141
+ export const DEFAULT_NPK_M_HASH = 9490941203163884203266873379528043162885952552009707050511473783876867365414n;
142
+ export const DEFAULT_OVPK_M_HASH = 6503635668323258394266152634006889881423098283582185344306514598322956522059n;
143
+ export const DEFAULT_TPK_M_HASH = 3696996950890211715833095099359687729113787313245035143274671977290400579312n;
144
+ export const DEFAULT_MSPK_M_HASH = 9339255027081995322829531434846677508514443987752207871815765570767379563350n;
145
+ export const DEFAULT_FBPK_M_HASH = 6817041416194035981444514907304573239615033139388669881213007796289638159510n;
134
146
  export const AZTEC_ADDRESS_LENGTH = 1;
135
147
  export const GAS_FEES_LENGTH = 2;
136
148
  export const GAS_LENGTH = 2;
137
149
  export const GAS_SETTINGS_LENGTH = 8;
138
150
  export const CALL_CONTEXT_LENGTH = 4;
139
- export const CONTRACT_INSTANCE_LENGTH = 16;
151
+ export const CONTRACT_INSTANCE_LENGTH = 12;
140
152
  export const CONTRACT_STORAGE_READ_LENGTH = 3;
141
153
  export const CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH = 3;
142
154
  export const ETH_ADDRESS_LENGTH = 1;
@@ -158,9 +170,9 @@ export const L2_TO_L1_MESSAGE_LENGTH = 2;
158
170
  export const COUNTED_L2_TO_L1_MESSAGE_LENGTH = 3;
159
171
  export const SCOPED_L2_TO_L1_MESSAGE_LENGTH = 3;
160
172
  export const SCOPED_COUNTED_L2_TO_L1_MESSAGE_LENGTH = 4;
161
- export const KEY_VALIDATION_REQUEST_LENGTH = 4;
162
- export const KEY_VALIDATION_REQUEST_AND_GENERATOR_LENGTH = 5;
163
- export const SCOPED_KEY_VALIDATION_REQUEST_AND_GENERATOR_LENGTH = 6;
173
+ export const KEY_VALIDATION_REQUEST_LENGTH = 2;
174
+ export const KEY_VALIDATION_REQUEST_AND_GENERATOR_LENGTH = 3;
175
+ export const SCOPED_KEY_VALIDATION_REQUEST_AND_GENERATOR_LENGTH = 4;
164
176
  export const PARTIAL_STATE_REFERENCE_LENGTH = 6;
165
177
  export const TREE_LEAF_READ_REQUEST_LENGTH = 2;
166
178
  export const PRIVATE_LOG_SIZE_IN_FIELDS = 16;
@@ -196,22 +208,22 @@ export const TX_REQUEST_LENGTH = 15;
196
208
  export const TOTAL_FEES_LENGTH = 1;
197
209
  export const TOTAL_MANA_USED_LENGTH = 1;
198
210
  export const BLOCK_HEADER_LENGTH = 22;
199
- export const CHECKPOINT_HEADER_LENGTH = 12;
200
- export const CHECKPOINT_HEADER_SIZE_IN_BYTES = 316;
211
+ export const CHECKPOINT_HEADER_LENGTH = 13;
212
+ export const CHECKPOINT_HEADER_SIZE_IN_BYTES = 348;
201
213
  export const SCOPED_READ_REQUEST_LEN = 3;
202
- export const PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH = 870;
203
- export const PRIVATE_CONTEXT_INPUTS_LENGTH = 37;
214
+ export const PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH = 839;
215
+ export const PRIVATE_CONTEXT_INPUTS_LENGTH = 38;
204
216
  export const FEE_RECIPIENT_LENGTH = 2;
205
217
  export const HIDING_KERNEL_IO_PUBLIC_INPUTS_SIZE = 28;
206
218
  export const PAIRING_POINTS_SIZE = 8;
207
219
  export const IPA_CLAIM_SIZE = 6;
208
220
  export const PUBLIC_DATA_READ_LENGTH = 3;
209
- export const PRIVATE_VALIDATION_REQUESTS_LENGTH = 771;
221
+ export const PRIVATE_VALIDATION_REQUESTS_LENGTH = 643;
210
222
  export const PRIVATE_TO_ROLLUP_ACCUMULATED_DATA_LENGTH = 1243;
211
223
  export const TX_CONSTANT_DATA_LENGTH = 34;
212
224
  export const COMBINED_CONSTANT_DATA_LENGTH = 43;
213
225
  export const PRIVATE_ACCUMULATED_DATA_LENGTH = 2059;
214
- export const PRIVATE_KERNEL_CIRCUIT_PUBLIC_INPUTS_LENGTH = 2873;
226
+ export const PRIVATE_KERNEL_CIRCUIT_PUBLIC_INPUTS_LENGTH = 2746;
215
227
  export const PRIVATE_TO_PUBLIC_ACCUMULATED_DATA_LENGTH = 1371;
216
228
  export const PRIVATE_TO_AVM_ACCUMULATED_DATA_LENGTH = 152;
217
229
  export const NUM_PRIVATE_TO_AVM_ACCUMULATED_DATA_ARRAYS = 3;
@@ -230,16 +242,21 @@ export const CHECKPOINT_ROLLUP_PUBLIC_INPUTS_LENGTH = 149;
230
242
  export const ROOT_ROLLUP_PUBLIC_INPUTS_LENGTH = 111;
231
243
  export const NUM_MSGS_PER_BASE_PARITY = 256;
232
244
  export const NUM_BASE_PARITY_PER_ROOT_PARITY = 4;
233
- export const RECURSIVE_PROOF_LENGTH = 449;
234
- export const NESTED_RECURSIVE_PROOF_LENGTH = 449;
245
+ export const RECURSIVE_PROOF_LENGTH = 410;
246
+ export const NESTED_RECURSIVE_PROOF_LENGTH = 410;
235
247
  export const IPA_PROOF_LENGTH = 64;
236
248
  export const ULTRA_KECCAK_PROOF_LENGTH = 331;
237
- export const RECURSIVE_ROLLUP_HONK_PROOF_LENGTH = 519;
238
- export const NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH = 519;
239
- export const CHONK_PROOF_LENGTH = 1632;
249
+ export const RECURSIVE_ROLLUP_HONK_PROOF_LENGTH = 480;
250
+ export const NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH = 480;
251
+ export const CHONK_HIDING_OINK_LENGTH = 48;
252
+ export const CHONK_MERGE_PROOF_SIZE = 41;
253
+ export const CHONK_ECCVM_PROOF_LENGTH = 612;
254
+ export const CHONK_JOINT_PROOF_LENGTH = 477;
255
+ export const CHONK_PROOF_LENGTH = 1270;
240
256
  export const ULTRA_VK_LENGTH_IN_FIELDS = 115;
241
- export const MEGA_VK_LENGTH_IN_FIELDS = 127;
242
- export const CHONK_VK_LENGTH_IN_FIELDS = 127;
257
+ export const MEGA_VK_LENGTH_IN_FIELDS = 163;
258
+ export const MEGA_ZK_VK_LENGTH_IN_FIELDS = 115;
259
+ export const CHONK_VK_LENGTH_IN_FIELDS = 115;
243
260
  export const AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS = 86;
244
261
  export const MAX_PUBLIC_BYTECODE_SIZE_IN_BYTES = 96000;
245
262
  export const MAX_PUBLIC_CALLS_TO_UNIQUE_CONTRACT_CLASS_IDS = 21;
@@ -383,8 +400,7 @@ export const AVM_PUBLIC_INPUTS_REVERTED_ROW_IDX = 4684;
383
400
  export const AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH = 4685;
384
401
  export const AVM_NUM_PUBLIC_INPUT_COLUMNS = 4;
385
402
  export const AVM_PUBLIC_INPUTS_COLUMNS_COMBINED_LENGTH = 18740;
386
- export const AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED = 16400;
387
- export const AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED = 1000;
403
+ export const AVM_V2_PROOF_LENGTH_IN_FIELDS = 15516;
388
404
  export const DA_BYTES_PER_FIELD = 32;
389
405
  export const DA_GAS_PER_BYTE = 1;
390
406
  export const DA_GAS_PER_FIELD = 32;
@@ -395,14 +411,6 @@ export const FIXED_AVM_STARTUP_L2_GAS = 20000;
395
411
  export const AVM_MAX_PROCESSABLE_L2_GAS = 6000000;
396
412
  export const MAX_PROCESSABLE_L2_GAS = 6540000;
397
413
  export const MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT = 786432;
398
- export const GAS_ESTIMATION_TEARDOWN_L2_GAS_LIMIT = 6540000;
399
- export const GAS_ESTIMATION_L2_GAS_LIMIT = 13080000;
400
- export const GAS_ESTIMATION_TEARDOWN_DA_GAS_LIMIT = 786432;
401
- export const GAS_ESTIMATION_DA_GAS_LIMIT = 1572864;
402
- export const DEFAULT_TEARDOWN_L2_GAS_LIMIT = 1000000;
403
- export const DEFAULT_L2_GAS_LIMIT = 6540000;
404
- export const DEFAULT_TEARDOWN_DA_GAS_LIMIT = 393216;
405
- export const DEFAULT_DA_GAS_LIMIT = 786432;
406
414
  export const L2_GAS_DISTRIBUTED_STORAGE_PREMIUM = 1024;
407
415
  export const AVM_PC_SIZE_IN_BITS = 32;
408
416
  export const AVM_MAX_OPERANDS = 7;
@@ -459,10 +467,10 @@ export const AVM_DEBUGLOG_BASE_L2_GAS = 9;
459
467
  export const AVM_POSEIDON2_BASE_L2_GAS = 360;
460
468
  export const AVM_SHA256COMPRESSION_BASE_L2_GAS = 12288;
461
469
  export const AVM_KECCAKF1600_BASE_L2_GAS = 58176;
462
- export const AVM_ECADD_BASE_L2_GAS = 270;
470
+ export const AVM_ECADD_BASE_L2_GAS = 180;
463
471
  export const AVM_TORADIXBE_BASE_L2_GAS = 24;
464
- export const AVM_CALLDATACOPY_DYN_L2_GAS = 3;
465
- export const AVM_RETURNDATACOPY_DYN_L2_GAS = 3;
472
+ export const AVM_CALLDATACOPY_DYN_L2_GAS = 6;
473
+ export const AVM_RETURNDATACOPY_DYN_L2_GAS = 6;
466
474
  export const AVM_TORADIXBE_DYN_L2_GAS = 3;
467
475
  export const AVM_BITWISE_DYN_L2_GAS = 3;
468
476
  export const AVM_EMITPUBLICLOG_DYN_L2_GAS = 3;
@@ -486,10 +494,10 @@ export const PROOF_TYPE_HN_TAIL = 8;
486
494
  export const PROOF_TYPE_CHONK = 9;
487
495
  export const TWO_POW_64 = 18446744073709551616n;
488
496
  export const AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_HEIGHT = 6;
489
- export const AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_INITIAL_ROOT = 18291678969210913367302010540259942201271604198321103848479209155223586227821n;
497
+ export const AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_INITIAL_ROOT = 8857725174171741160013581538021104168730942281584695363072221389187184558934n;
490
498
  export const AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_INITIAL_SIZE = 1;
491
499
  export const AVM_RETRIEVED_BYTECODES_TREE_HEIGHT = 5;
492
- export const AVM_RETRIEVED_BYTECODES_TREE_INITIAL_ROOT = 7257575663883662864904159007845791361042428565864275462740313586853981161757n;
500
+ export const AVM_RETRIEVED_BYTECODES_TREE_INITIAL_ROOT = 7219963955978612430652135562469971022121082503142071142433583613738272177170n;
493
501
  export const AVM_RETRIEVED_BYTECODES_TREE_INITIAL_SIZE = 1;
494
502
  export const TIMESTAMP_OF_CHANGE_BIT_SIZE = 32;
495
503
  export const DEFAULT_UPDATE_DELAY = 86400;
@@ -503,28 +511,49 @@ export const UPDATES_DELAYED_PUBLIC_MUTABLE_METADATA_BIT_SIZE = 144;
503
511
  export const GRUMPKIN_ONE_X = 1;
504
512
  export const GRUMPKIN_ONE_Y = 17631683881184975370165255887551781615748388533673675138860n;
505
513
  export const DEFAULT_MAX_DEBUG_LOG_MEMORY_READS = 125000;
514
+ export const MAX_TX_BLOB_DATA_SIZE_IN_FIELDS = 8475;
506
515
  export var DomainSeparator = /*#__PURE__*/ function(DomainSeparator) {
507
516
  DomainSeparator[DomainSeparator["NOTE_HASH"] = 116501019] = "NOTE_HASH";
508
- DomainSeparator[DomainSeparator["NOTE_HASH_NONCE"] = 1721808740] = "NOTE_HASH_NONCE";
509
- DomainSeparator[DomainSeparator["UNIQUE_NOTE_HASH"] = 226850429] = "UNIQUE_NOTE_HASH";
517
+ DomainSeparator[DomainSeparator["PARTIAL_NOTE_COMMITMENT"] = 568912195] = "PARTIAL_NOTE_COMMITMENT";
510
518
  DomainSeparator[DomainSeparator["SILOED_NOTE_HASH"] = 3361878420] = "SILOED_NOTE_HASH";
519
+ DomainSeparator[DomainSeparator["UNIQUE_NOTE_HASH"] = 226850429] = "UNIQUE_NOTE_HASH";
520
+ DomainSeparator[DomainSeparator["NOTE_HASH_NONCE"] = 1721808740] = "NOTE_HASH_NONCE";
521
+ DomainSeparator[DomainSeparator["SINGLE_USE_CLAIM_NULLIFIER"] = 1465998995] = "SINGLE_USE_CLAIM_NULLIFIER";
511
522
  DomainSeparator[DomainSeparator["NOTE_NULLIFIER"] = 50789342] = "NOTE_NULLIFIER";
512
- DomainSeparator[DomainSeparator["MESSAGE_NULLIFIER"] = 3754509616] = "MESSAGE_NULLIFIER";
513
523
  DomainSeparator[DomainSeparator["SILOED_NULLIFIER"] = 57496191] = "SILOED_NULLIFIER";
524
+ DomainSeparator[DomainSeparator["MESSAGE_NULLIFIER"] = 3754509616] = "MESSAGE_NULLIFIER";
525
+ DomainSeparator[DomainSeparator["EVENT_LOG_TAG"] = 926040838] = "EVENT_LOG_TAG";
526
+ DomainSeparator[DomainSeparator["NOTE_COMPLETION_LOG_TAG"] = 3372669888] = "NOTE_COMPLETION_LOG_TAG";
527
+ DomainSeparator[DomainSeparator["UNCONSTRAINED_MSG_LOG_TAG"] = 1485357192] = "UNCONSTRAINED_MSG_LOG_TAG";
528
+ DomainSeparator[DomainSeparator["CONSTRAINED_MSG_LOG_TAG"] = 3715244738] = "CONSTRAINED_MSG_LOG_TAG";
529
+ DomainSeparator[DomainSeparator["CONSTRAINED_MSG_NULLIFIER"] = 3723577546] = "CONSTRAINED_MSG_NULLIFIER";
530
+ DomainSeparator[DomainSeparator["CONSTRAINED_MSG_SENDER_SECRET"] = 1182889476] = "CONSTRAINED_MSG_SENDER_SECRET";
531
+ DomainSeparator[DomainSeparator["NON_INTERACTIVE_HANDSHAKE_LOG_TAG"] = 4046403018] = "NON_INTERACTIVE_HANDSHAKE_LOG_TAG";
532
+ DomainSeparator[DomainSeparator["INTERACTIVE_HANDSHAKE_SIGNATURE"] = 3098455647] = "INTERACTIVE_HANDSHAKE_SIGNATURE";
533
+ DomainSeparator[DomainSeparator["HANDSHAKE_FORGERY_PROTECTION"] = 2291983127] = "HANDSHAKE_FORGERY_PROTECTION";
514
534
  DomainSeparator[DomainSeparator["PRIVATE_LOG_FIRST_FIELD"] = 2769976252] = "PRIVATE_LOG_FIRST_FIELD";
515
535
  DomainSeparator[DomainSeparator["PUBLIC_LEAF_SLOT"] = 1247650290] = "PUBLIC_LEAF_SLOT";
516
536
  DomainSeparator[DomainSeparator["PUBLIC_STORAGE_MAP_SLOT"] = 4015149901] = "PUBLIC_STORAGE_MAP_SLOT";
537
+ DomainSeparator[DomainSeparator["MERKLE_HASH"] = 2982624097] = "MERKLE_HASH";
538
+ DomainSeparator[DomainSeparator["NULLIFIER_MERKLE"] = 1157584160] = "NULLIFIER_MERKLE";
539
+ DomainSeparator[DomainSeparator["PUBLIC_DATA_MERKLE"] = 3756303423] = "PUBLIC_DATA_MERKLE";
540
+ DomainSeparator[DomainSeparator["WRITTEN_SLOTS_MERKLE"] = 2292766212] = "WRITTEN_SLOTS_MERKLE";
541
+ DomainSeparator[DomainSeparator["RETRIEVED_BYTECODES_MERKLE"] = 2789215184] = "RETRIEVED_BYTECODES_MERKLE";
517
542
  DomainSeparator[DomainSeparator["PRIVATE_FUNCTION_LEAF"] = 1389398688] = "PRIVATE_FUNCTION_LEAF";
518
543
  DomainSeparator[DomainSeparator["PUBLIC_BYTECODE"] = 260313585] = "PUBLIC_BYTECODE";
519
544
  DomainSeparator[DomainSeparator["CONTRACT_CLASS_ID"] = 3923495515] = "CONTRACT_CLASS_ID";
545
+ DomainSeparator[DomainSeparator["SALTED_INITIALIZATION_HASH"] = 2763052992] = "SALTED_INITIALIZATION_HASH";
520
546
  DomainSeparator[DomainSeparator["INITIALIZER"] = 385396519] = "INITIALIZER";
521
547
  DomainSeparator[DomainSeparator["NHK_M"] = 242137788] = "NHK_M";
522
548
  DomainSeparator[DomainSeparator["IVSK_M"] = 2747825907] = "IVSK_M";
523
549
  DomainSeparator[DomainSeparator["OVSK_M"] = 4272201051] = "OVSK_M";
524
550
  DomainSeparator[DomainSeparator["TSK_M"] = 1546190975] = "TSK_M";
551
+ DomainSeparator[DomainSeparator["MSSK_M"] = 617962565] = "MSSK_M";
552
+ DomainSeparator[DomainSeparator["FBSK_M"] = 787738027] = "FBSK_M";
525
553
  DomainSeparator[DomainSeparator["PUBLIC_KEYS_HASH"] = 777457226] = "PUBLIC_KEYS_HASH";
554
+ DomainSeparator[DomainSeparator["SINGLE_PUBLIC_KEY_HASH"] = 3452068255] = "SINGLE_PUBLIC_KEY_HASH";
526
555
  DomainSeparator[DomainSeparator["PARTIAL_ADDRESS"] = 2103633018] = "PARTIAL_ADDRESS";
527
- DomainSeparator[DomainSeparator["CONTRACT_ADDRESS_V1"] = 1788365517] = "CONTRACT_ADDRESS_V1";
556
+ DomainSeparator[DomainSeparator["CONTRACT_ADDRESS_V2"] = 4099338721] = "CONTRACT_ADDRESS_V2";
528
557
  DomainSeparator[DomainSeparator["BLOCK_HEADER_HASH"] = 4195546849] = "BLOCK_HEADER_HASH";
529
558
  DomainSeparator[DomainSeparator["TX_REQUEST"] = 3763737512] = "TX_REQUEST";
530
559
  DomainSeparator[DomainSeparator["PUBLIC_TX_HASH"] = 1630108851] = "PUBLIC_TX_HASH";
@@ -536,13 +565,21 @@ export var DomainSeparator = /*#__PURE__*/ function(DomainSeparator) {
536
565
  DomainSeparator[DomainSeparator["AUTHWIT_INNER"] = 221354163] = "AUTHWIT_INNER";
537
566
  DomainSeparator[DomainSeparator["AUTHWIT_OUTER"] = 3283595782] = "AUTHWIT_OUTER";
538
567
  DomainSeparator[DomainSeparator["AUTHWIT_NULLIFIER"] = 1239150694] = "AUTHWIT_NULLIFIER";
539
- DomainSeparator[DomainSeparator["SYMMETRIC_KEY"] = 3882206064] = "SYMMETRIC_KEY";
540
- DomainSeparator[DomainSeparator["SYMMETRIC_KEY_2"] = 4129434989] = "SYMMETRIC_KEY_2";
541
- DomainSeparator[DomainSeparator["CIPHERTEXT_FIELD_MASK"] = 1870492847] = "CIPHERTEXT_FIELD_MASK";
568
+ DomainSeparator[DomainSeparator["APP_SILOED_ECDH_SHARED_SECRET"] = 1707851664] = "APP_SILOED_ECDH_SHARED_SECRET";
569
+ DomainSeparator[DomainSeparator["ECDH_SUBKEY"] = 4277646631] = "ECDH_SUBKEY";
570
+ DomainSeparator[DomainSeparator["ECDH_FIELD_MASK"] = 190532684] = "ECDH_FIELD_MASK";
542
571
  DomainSeparator[DomainSeparator["PARTIAL_NOTE_VALIDITY_COMMITMENT"] = 623934423] = "PARTIAL_NOTE_VALIDITY_COMMITMENT";
543
572
  DomainSeparator[DomainSeparator["INITIALIZATION_NULLIFIER"] = 1653084894] = "INITIALIZATION_NULLIFIER";
573
+ DomainSeparator[DomainSeparator["PUBLIC_INITIALIZATION_NULLIFIER"] = 3342006647] = "PUBLIC_INITIALIZATION_NULLIFIER";
574
+ DomainSeparator[DomainSeparator["PRIVATE_INITIALIZATION_NULLIFIER"] = 3990889078] = "PRIVATE_INITIALIZATION_NULLIFIER";
544
575
  DomainSeparator[DomainSeparator["SECRET_HASH"] = 4199652938] = "SECRET_HASH";
545
576
  DomainSeparator[DomainSeparator["TX_NULLIFIER"] = 1025801951] = "TX_NULLIFIER";
546
577
  DomainSeparator[DomainSeparator["SIGNATURE_PAYLOAD"] = 463525807] = "SIGNATURE_PAYLOAD";
578
+ DomainSeparator[DomainSeparator["BLOCK_HEADERS_HASH"] = 515582467] = "BLOCK_HEADERS_HASH";
579
+ DomainSeparator[DomainSeparator["BLOB_HASHED_Y_LIMBS"] = 2949331415] = "BLOB_HASHED_Y_LIMBS";
580
+ DomainSeparator[DomainSeparator["BLOB_CHALLENGE_Z"] = 60345710] = "BLOB_CHALLENGE_Z";
581
+ DomainSeparator[DomainSeparator["BLOB_Z_ACC"] = 1003392952] = "BLOB_Z_ACC";
582
+ DomainSeparator[DomainSeparator["BLOB_GAMMA_ACC"] = 855632775] = "BLOB_GAMMA_ACC";
583
+ DomainSeparator[DomainSeparator["BLOB_GAMMA_FINAL"] = 1755883835] = "BLOB_GAMMA_FINAL";
547
584
  return DomainSeparator;
548
585
  }({});
package/dest/constants.js CHANGED
@@ -2,17 +2,40 @@ import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  // Re-export L2 block number constants with proper BlockNumber type
4
4
  // Note: The generated constants are plain numbers, but we provide typed versions here
5
- import { GENESIS_BLOCK_HEADER_HASH as GENESIS_BLOCK_HEADER_HASH_BIGINT, INITIAL_CHECKPOINT_NUMBER as INITIAL_CHECKPOINT_NUM_RAW, INITIAL_L2_BLOCK_NUM as INITIAL_L2_BLOCK_NUM_RAW } from './constants.gen.js';
5
+ import { DA_GAS_PER_FIELD, GENESIS_BLOCK_HEADER_HASH as GENESIS_BLOCK_HEADER_HASH_BIGINT, INITIAL_CHECKPOINT_NUMBER as INITIAL_CHECKPOINT_NUM_RAW, INITIAL_L2_BLOCK_NUM as INITIAL_L2_BLOCK_NUM_RAW, MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT as MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT_RAW, MAX_TX_BLOB_DATA_SIZE_IN_FIELDS } from './constants.gen.js';
6
6
  // Typescript-land-only constants
7
7
  export const SPONSORED_FPC_SALT = BigInt(0);
8
+ /**
9
+ * Network-minimum per-block budget multiplier for L2 gas / tx count. Operators may configure a higher value,
10
+ * but never lower: a node admitting txs under a smaller multiplier would accept work it can never pack.
11
+ */ export const MIN_PER_BLOCK_ALLOCATION_MULTIPLIER = 1.2;
12
+ /**
13
+ * Network-minimum per-block budget multiplier for DA gas / blob fields. See
14
+ * {@link MIN_PER_BLOCK_ALLOCATION_MULTIPLIER}. The DA-specific operator knob and its runtime enforcement land
15
+ * with the network tx admission limits (#23947); until then this constant is documentation of the network
16
+ * minimum only.
17
+ */ export const MIN_PER_BLOCK_DA_ALLOCATION_MULTIPLIER = 1.5;
18
+ /**
19
+ * The most DA gas a single tx can consume. A tx's effects cannot encode more than
20
+ * MAX_TX_BLOB_DATA_SIZE_IN_FIELDS fields in a blob, each costing DA_GAS_PER_FIELD, so this is the maximum
21
+ * DA gas a tx could ever use; declaring a higher limit is rejected by inbound validation.
22
+ */ export const MAX_TX_DA_GAS = MAX_TX_BLOB_DATA_SIZE_IN_FIELDS * DA_GAS_PER_FIELD;
8
23
  // Autogenerated constants loaded from noir-land
9
24
  // eslint-disable-next-line import-x/export
10
25
  export * from './constants.gen.js';
11
- /** The initial L2 block number (typed as BlockNumber). This is the first block number in the Aztec L2 chain. */ // Shadow the export from constants.gen above
12
- // eslint-disable-next-line import-x/export
26
+ /** The initial L2 block number (typed as BlockNumber). This is the first block number in the Aztec L2 chain. */ // eslint-disable-next-line import-x/export
13
27
  export const INITIAL_L2_BLOCK_NUM = BlockNumber(INITIAL_L2_BLOCK_NUM_RAW);
14
- /** The initial L2 checkpoint number (typed as CheckpointNumber). This is the first checkpoint number in the Aztec L2 chain. */ // Shadow the export from constants.gen above
15
- export const INITIAL_L2_CHECKPOINT_NUM = CheckpointNumber(INITIAL_CHECKPOINT_NUM_RAW);
16
- /** The block header hash for the genesis block 0. */ // Shadow the export from constants.gen above
17
- // eslint-disable-next-line import-x/export
28
+ /** The initial L2 checkpoint number (typed as CheckpointNumber). This is the first checkpoint number in the Aztec L2 chain. */ // eslint-disable-next-line import-x/export
29
+ export const INITIAL_CHECKPOINT_NUMBER = CheckpointNumber(INITIAL_CHECKPOINT_NUM_RAW);
30
+ /** The block header hash for the genesis block 0. */ // eslint-disable-next-line import-x/export
18
31
  export const GENESIS_BLOCK_HEADER_HASH = new Fr(GENESIS_BLOCK_HEADER_HASH_BIGINT);
32
+ /**
33
+ * The RAW DA capacity of a checkpoint's blobs: `BLOBS_PER_CHECKPOINT * FIELDS_PER_BLOB * DA_GAS_PER_FIELD`.
34
+ * This value is NOT attainable by transactions. The blob encoding reserves overhead fields that no tx pays
35
+ * DA gas for: a checkpoint-end marker field plus per-block block-end fields (7 for the first block in a
36
+ * checkpoint, 6 for each subsequent block — see `@aztec/blob-lib` encoding). The true tx-usable DA budget
37
+ * is lower and block-count-dependent; consumers budgeting tx data should subtract the encoding overhead (as
38
+ * `CheckpointBuilder` and the network tx gas limits in `@aztec/stdlib/gas` do) rather than use this value
39
+ * directly.
40
+ */ // eslint-disable-next-line import-x/export
41
+ export const MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT = MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT_RAW;
@@ -3,9 +3,23 @@ import { dirname, join } from 'path';
3
3
  import { fileURLToPath } from 'url';
4
4
  const NOIR_CONSTANTS_FILE = '../../../../noir-projects/noir-protocol-circuits/crates/types/src/constants.nr';
5
5
  const TS_CONSTANTS_FILE = '../constants.gen.ts';
6
- const CPP_AZTEC_CONSTANTS_FILE = '../../../../barretenberg/cpp/src/barretenberg/vm2/common/aztec_constants.hpp';
6
+ const CPP_AZTEC_CONSTANTS_FILE = '../../../../barretenberg/cpp/src/barretenberg/aztec/aztec_constants.hpp';
7
7
  const PIL_AZTEC_CONSTANTS_FILE = '../../../../barretenberg/cpp/pil/vm2/constants_gen.pil';
8
8
  const SOLIDITY_CONSTANTS_FILE = '../../../../l1-contracts/src/core/libraries/ConstantsGen.sol';
9
+ // Additional Noir source files (outside constants.nr) to extract specific constants from, keyed by
10
+ // file path (relative to this script) and the exact constant names to pull from each. Used for
11
+ // constants that are defined alongside circuit code rather than in constants.nr, so they can be
12
+ // exported to the generated TS constants without duplicating their definition. The referenced
13
+ // constants may depend on constants.nr values, which are in scope because they are evaluated after
14
+ // the main file's constants.
15
+ const ADDITIONAL_NOIR_CONSTANT_FILES = [
16
+ {
17
+ file: '../../../../noir-projects/noir-protocol-circuits/crates/types/src/blob_data/tx_blob_data.nr',
18
+ constants: [
19
+ 'MAX_TX_BLOB_DATA_SIZE_IN_FIELDS'
20
+ ]
21
+ }
22
+ ];
9
23
  // Whitelist of constants that will be copied to aztec_constants.hpp.
10
24
  // We don't copy everything as just a handful are needed, and updating them breaks the cache and triggers expensive bb builds.
11
25
  const CPP_CONSTANTS = [
@@ -21,13 +35,10 @@ const CPP_CONSTANTS = [
21
35
  'MEM_TAG_U128',
22
36
  'MEM_TAG_FF',
23
37
  'MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS',
24
- 'CANONICAL_AUTH_REGISTRY_ADDRESS',
25
38
  'CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS',
26
39
  'CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS',
27
- 'MULTI_CALL_ENTRYPOINT_ADDRESS',
28
40
  'FEE_JUICE_ADDRESS',
29
41
  'TX_DA_GAS_OVERHEAD',
30
- 'PUBLIC_CHECKS_ADDRESS',
31
42
  'FEE_JUICE_BALANCES_SLOT',
32
43
  'UPDATED_CLASS_IDS_SLOT',
33
44
  'UPDATES_DELAYED_PUBLIC_MUTABLE_VALUES_LEN',
@@ -117,10 +128,12 @@ const CPP_CONSTANTS = [
117
128
  ];
118
129
  const CPP_GENERATORS = [
119
130
  'BLOCK_HEADER_HASH',
131
+ 'SALTED_INITIALIZATION_HASH',
120
132
  'PARTIAL_ADDRESS',
121
- 'CONTRACT_ADDRESS_V1',
133
+ 'CONTRACT_ADDRESS_V2',
122
134
  'CONTRACT_CLASS_ID',
123
135
  'PUBLIC_KEYS_HASH',
136
+ 'SINGLE_PUBLIC_KEY_HASH',
124
137
  'NOTE_HASH_NONCE',
125
138
  'UNIQUE_NOTE_HASH',
126
139
  'SILOED_NOTE_HASH',
@@ -128,7 +141,12 @@ const CPP_GENERATORS = [
128
141
  'PUBLIC_LEAF_SLOT',
129
142
  'PUBLIC_STORAGE_MAP_SLOT',
130
143
  'PUBLIC_CALLDATA',
131
- 'PUBLIC_BYTECODE'
144
+ 'PUBLIC_BYTECODE',
145
+ 'MERKLE_HASH',
146
+ 'NULLIFIER_MERKLE',
147
+ 'PUBLIC_DATA_MERKLE',
148
+ 'WRITTEN_SLOTS_MERKLE',
149
+ 'RETRIEVED_BYTECODES_MERKLE'
132
150
  ];
133
151
  const PIL_CONSTANTS = [
134
152
  'MAX_ETH_ADDRESS_VALUE',
@@ -162,12 +180,9 @@ const PIL_CONSTANTS = [
162
180
  'L1_TO_L2_MSG_TREE_HEIGHT',
163
181
  'UPDATED_CLASS_IDS_SLOT',
164
182
  'UPDATES_DELAYED_PUBLIC_MUTABLE_VALUES_LEN',
165
- 'CANONICAL_AUTH_REGISTRY_ADDRESS',
166
183
  'CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS',
167
184
  'CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS',
168
- 'MULTI_CALL_ENTRYPOINT_ADDRESS',
169
185
  'FEE_JUICE_ADDRESS',
170
- 'PUBLIC_CHECKS_ADDRESS',
171
186
  'FEE_JUICE_BALANCES_SLOT',
172
187
  'TIMESTAMP_OF_CHANGE_BIT_SIZE',
173
188
  'UPDATES_DELAYED_PUBLIC_MUTABLE_METADATA_BIT_SIZE',
@@ -303,10 +318,12 @@ const PIL_CONSTANTS = [
303
318
  'MAX_PROTOCOL_CONTRACTS'
304
319
  ];
305
320
  const PIL_GENERATORS = [
321
+ 'SALTED_INITIALIZATION_HASH',
306
322
  'PARTIAL_ADDRESS',
307
- 'CONTRACT_ADDRESS_V1',
323
+ 'CONTRACT_ADDRESS_V2',
308
324
  'CONTRACT_CLASS_ID',
309
325
  'PUBLIC_KEYS_HASH',
326
+ 'SINGLE_PUBLIC_KEY_HASH',
310
327
  'NOTE_HASH_NONCE',
311
328
  'UNIQUE_NOTE_HASH',
312
329
  'SILOED_NOTE_HASH',
@@ -314,7 +331,12 @@ const PIL_GENERATORS = [
314
331
  'PUBLIC_LEAF_SLOT',
315
332
  'PUBLIC_STORAGE_MAP_SLOT',
316
333
  'PUBLIC_CALLDATA',
317
- 'PUBLIC_BYTECODE'
334
+ 'PUBLIC_BYTECODE',
335
+ 'MERKLE_HASH',
336
+ 'NULLIFIER_MERKLE',
337
+ 'PUBLIC_DATA_MERKLE',
338
+ 'WRITTEN_SLOTS_MERKLE',
339
+ 'RETRIEVED_BYTECODES_MERKLE'
318
340
  ];
319
341
  const SOLIDITY_CONSTANTS = [
320
342
  'MAX_FIELD_VALUE',
@@ -471,7 +493,7 @@ ${processConstantsSolidity(constants)}
471
493
  }
472
494
  /**
473
495
  * Parse the content of the constants file in Noir.
474
- */ function parseNoirFile(fileContent) {
496
+ */ function parseNoirFile(fileContent, { stripLineComments = false } = {}) {
475
497
  const constantsExpressions = [];
476
498
  const domainSeparatorEnum = {};
477
499
  const emptyExpression = ()=>({
@@ -480,7 +502,10 @@ ${processConstantsSolidity(constants)}
480
502
  });
481
503
  let expression = emptyExpression();
482
504
  fileContent.split('\n').forEach((l)=>{
483
- const line = l.trim();
505
+ // Strip trailing `//` line comments so multi-line expressions with inline comments (e.g.
506
+ // MAX_TX_BLOB_DATA_SIZE_IN_FIELDS) parse correctly. Disabled for constants.nr to keep its
507
+ // existing parsing behavior byte-for-byte unchanged.
508
+ const line = (stripLineComments ? l.replace(/\/\/.*$/, '') : l).trim();
484
509
  if (!line) {
485
510
  // Empty line.
486
511
  return;
@@ -540,9 +565,8 @@ ${processConstantsSolidity(constants)}
540
565
  console.warn(`Unknown content: ${line}`);
541
566
  }
542
567
  });
543
- const constants = evaluateExpressions(constantsExpressions);
544
568
  return {
545
- constants,
569
+ constantsExpressions,
546
570
  domainSeparatorEnum
547
571
  };
548
572
  }
@@ -592,7 +616,26 @@ ${processConstantsSolidity(constants)}
592
616
  const __dirname = dirname(fileURLToPath(import.meta.url));
593
617
  const noirConstantsFile = join(__dirname, NOIR_CONSTANTS_FILE);
594
618
  const noirConstants = fs.readFileSync(noirConstantsFile, 'utf-8');
595
- const parsedContent = parseNoirFile(noirConstants);
619
+ const { constantsExpressions, domainSeparatorEnum } = parseNoirFile(noirConstants);
620
+ // Pull in explicitly-listed constants defined outside constants.nr (e.g. alongside circuit code).
621
+ // They are appended after the main constants so they can reference them when evaluated together.
622
+ for (const { file, constants: names } of ADDITIONAL_NOIR_CONSTANT_FILES){
623
+ const additionalContent = fs.readFileSync(join(__dirname, file), 'utf-8');
624
+ const { constantsExpressions: additionalExpressions } = parseNoirFile(additionalContent, {
625
+ stripLineComments: true
626
+ });
627
+ for (const name of names){
628
+ const expression = additionalExpressions.find(([exprName])=>exprName === name);
629
+ if (!expression) {
630
+ throw new Error(`Constant ${name} not found in ${file}`);
631
+ }
632
+ constantsExpressions.push(expression);
633
+ }
634
+ }
635
+ const parsedContent = {
636
+ constants: evaluateExpressions(constantsExpressions),
637
+ domainSeparatorEnum
638
+ };
596
639
  // Typescript
597
640
  const tsTargetPath = join(__dirname, TS_CONSTANTS_FILE);
598
641
  generateTypescriptConstants(parsedContent, tsTargetPath);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/constants",
3
- "version": "0.0.1-commit.f504929",
3
+ "version": "0.0.1-commit.f5a9928",
4
4
  "type": "module",
5
5
  "inherits": [
6
6
  "../package.common.json"
@@ -23,7 +23,7 @@
23
23
  "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
24
24
  },
25
25
  "dependencies": {
26
- "@aztec/foundation": "0.0.1-commit.f504929",
26
+ "@aztec/foundation": "0.0.1-commit.f5a9928",
27
27
  "tslib": "^2.4.0"
28
28
  },
29
29
  "devDependencies": {