@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 enum DomainSeparator {
507
516
  NOTE_HASH = 116501019,
508
- NOTE_HASH_NONCE = 1721808740,
509
- UNIQUE_NOTE_HASH = 226850429,
517
+ PARTIAL_NOTE_COMMITMENT = 568912195,
510
518
  SILOED_NOTE_HASH = 3361878420,
519
+ UNIQUE_NOTE_HASH = 226850429,
520
+ NOTE_HASH_NONCE = 1721808740,
521
+ SINGLE_USE_CLAIM_NULLIFIER = 1465998995,
511
522
  NOTE_NULLIFIER = 50789342,
512
- MESSAGE_NULLIFIER = 3754509616,
513
523
  SILOED_NULLIFIER = 57496191,
524
+ MESSAGE_NULLIFIER = 3754509616,
525
+ EVENT_LOG_TAG = 926040838,
526
+ NOTE_COMPLETION_LOG_TAG = 3372669888,
527
+ UNCONSTRAINED_MSG_LOG_TAG = 1485357192,
528
+ CONSTRAINED_MSG_LOG_TAG = 3715244738,
529
+ CONSTRAINED_MSG_NULLIFIER = 3723577546,
530
+ CONSTRAINED_MSG_SENDER_SECRET = 1182889476,
531
+ NON_INTERACTIVE_HANDSHAKE_LOG_TAG = 4046403018,
532
+ INTERACTIVE_HANDSHAKE_SIGNATURE = 3098455647,
533
+ HANDSHAKE_FORGERY_PROTECTION = 2291983127,
514
534
  PRIVATE_LOG_FIRST_FIELD = 2769976252,
515
535
  PUBLIC_LEAF_SLOT = 1247650290,
516
536
  PUBLIC_STORAGE_MAP_SLOT = 4015149901,
537
+ MERKLE_HASH = 2982624097,
538
+ NULLIFIER_MERKLE = 1157584160,
539
+ PUBLIC_DATA_MERKLE = 3756303423,
540
+ WRITTEN_SLOTS_MERKLE = 2292766212,
541
+ RETRIEVED_BYTECODES_MERKLE = 2789215184,
517
542
  PRIVATE_FUNCTION_LEAF = 1389398688,
518
543
  PUBLIC_BYTECODE = 260313585,
519
544
  CONTRACT_CLASS_ID = 3923495515,
545
+ SALTED_INITIALIZATION_HASH = 2763052992,
520
546
  INITIALIZER = 385396519,
521
547
  NHK_M = 242137788,
522
548
  IVSK_M = 2747825907,
523
549
  OVSK_M = 4272201051,
524
550
  TSK_M = 1546190975,
551
+ MSSK_M = 617962565,
552
+ FBSK_M = 787738027,
525
553
  PUBLIC_KEYS_HASH = 777457226,
554
+ SINGLE_PUBLIC_KEY_HASH = 3452068255,
526
555
  PARTIAL_ADDRESS = 2103633018,
527
- CONTRACT_ADDRESS_V1 = 1788365517,
556
+ CONTRACT_ADDRESS_V2 = 4099338721,
528
557
  BLOCK_HEADER_HASH = 4195546849,
529
558
  TX_REQUEST = 3763737512,
530
559
  PUBLIC_TX_HASH = 1630108851,
@@ -536,12 +565,20 @@ export enum DomainSeparator {
536
565
  AUTHWIT_INNER = 221354163,
537
566
  AUTHWIT_OUTER = 3283595782,
538
567
  AUTHWIT_NULLIFIER = 1239150694,
539
- SYMMETRIC_KEY = 3882206064,
540
- SYMMETRIC_KEY_2 = 4129434989,
541
- CIPHERTEXT_FIELD_MASK = 1870492847,
568
+ APP_SILOED_ECDH_SHARED_SECRET = 1707851664,
569
+ ECDH_SUBKEY = 4277646631,
570
+ ECDH_FIELD_MASK = 190532684,
542
571
  PARTIAL_NOTE_VALIDITY_COMMITMENT = 623934423,
543
572
  INITIALIZATION_NULLIFIER = 1653084894,
573
+ PUBLIC_INITIALIZATION_NULLIFIER = 3342006647,
574
+ PRIVATE_INITIALIZATION_NULLIFIER = 3990889078,
544
575
  SECRET_HASH = 4199652938,
545
576
  TX_NULLIFIER = 1025801951,
546
577
  SIGNATURE_PAYLOAD = 463525807,
578
+ BLOCK_HEADERS_HASH = 515582467,
579
+ BLOB_HASHED_Y_LIMBS = 2949331415,
580
+ BLOB_CHALLENGE_Z = 60345710,
581
+ BLOB_Z_ACC = 1003392952,
582
+ BLOB_GAMMA_ACC = 855632775,
583
+ BLOB_GAMMA_FINAL = 1755883835,
547
584
  }
package/src/constants.ts CHANGED
@@ -4,29 +4,62 @@ import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  // Re-export L2 block number constants with proper BlockNumber type
5
5
  // Note: The generated constants are plain numbers, but we provide typed versions here
6
6
  import {
7
+ DA_GAS_PER_FIELD,
7
8
  GENESIS_BLOCK_HEADER_HASH as GENESIS_BLOCK_HEADER_HASH_BIGINT,
8
9
  INITIAL_CHECKPOINT_NUMBER as INITIAL_CHECKPOINT_NUM_RAW,
9
10
  INITIAL_L2_BLOCK_NUM as INITIAL_L2_BLOCK_NUM_RAW,
11
+ MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT as MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT_RAW,
12
+ MAX_TX_BLOB_DATA_SIZE_IN_FIELDS,
10
13
  } from './constants.gen.js';
11
14
 
12
15
  // Typescript-land-only constants
13
16
  export const SPONSORED_FPC_SALT = BigInt(0);
14
17
 
18
+ /**
19
+ * Network-minimum per-block budget multiplier for L2 gas / tx count. Operators may configure a higher value,
20
+ * but never lower: a node admitting txs under a smaller multiplier would accept work it can never pack.
21
+ */
22
+ export const MIN_PER_BLOCK_ALLOCATION_MULTIPLIER = 1.2;
23
+
24
+ /**
25
+ * Network-minimum per-block budget multiplier for DA gas / blob fields. See
26
+ * {@link MIN_PER_BLOCK_ALLOCATION_MULTIPLIER}. The DA-specific operator knob and its runtime enforcement land
27
+ * with the network tx admission limits (#23947); until then this constant is documentation of the network
28
+ * minimum only.
29
+ */
30
+ export const MIN_PER_BLOCK_DA_ALLOCATION_MULTIPLIER = 1.5;
31
+
32
+ /**
33
+ * The most DA gas a single tx can consume. A tx's effects cannot encode more than
34
+ * MAX_TX_BLOB_DATA_SIZE_IN_FIELDS fields in a blob, each costing DA_GAS_PER_FIELD, so this is the maximum
35
+ * DA gas a tx could ever use; declaring a higher limit is rejected by inbound validation.
36
+ */
37
+ export const MAX_TX_DA_GAS = MAX_TX_BLOB_DATA_SIZE_IN_FIELDS * DA_GAS_PER_FIELD;
38
+
15
39
  // Autogenerated constants loaded from noir-land
16
40
  // eslint-disable-next-line import-x/export
17
41
  export * from './constants.gen.js';
18
42
 
19
43
  /** The initial L2 block number (typed as BlockNumber). This is the first block number in the Aztec L2 chain. */
20
- // Shadow the export from constants.gen above
21
44
  // eslint-disable-next-line import-x/export
22
45
  export const INITIAL_L2_BLOCK_NUM: BlockNumber = BlockNumber(INITIAL_L2_BLOCK_NUM_RAW);
23
46
 
24
47
  /** The initial L2 checkpoint number (typed as CheckpointNumber). This is the first checkpoint number in the Aztec L2 chain. */
25
- // Shadow the export from constants.gen above
26
-
27
- export const INITIAL_L2_CHECKPOINT_NUM: CheckpointNumber = CheckpointNumber(INITIAL_CHECKPOINT_NUM_RAW);
48
+ // eslint-disable-next-line import-x/export
49
+ export const INITIAL_CHECKPOINT_NUMBER: CheckpointNumber = CheckpointNumber(INITIAL_CHECKPOINT_NUM_RAW);
28
50
 
29
51
  /** The block header hash for the genesis block 0. */
30
- // Shadow the export from constants.gen above
31
52
  // eslint-disable-next-line import-x/export
32
53
  export const GENESIS_BLOCK_HEADER_HASH = new Fr(GENESIS_BLOCK_HEADER_HASH_BIGINT);
54
+
55
+ /**
56
+ * The RAW DA capacity of a checkpoint's blobs: `BLOBS_PER_CHECKPOINT * FIELDS_PER_BLOB * DA_GAS_PER_FIELD`.
57
+ * This value is NOT attainable by transactions. The blob encoding reserves overhead fields that no tx pays
58
+ * DA gas for: a checkpoint-end marker field plus per-block block-end fields (7 for the first block in a
59
+ * checkpoint, 6 for each subsequent block — see `@aztec/blob-lib` encoding). The true tx-usable DA budget
60
+ * is lower and block-count-dependent; consumers budgeting tx data should subtract the encoding overhead (as
61
+ * `CheckpointBuilder` and the network tx gas limits in `@aztec/stdlib/gas` do) rather than use this value
62
+ * directly.
63
+ */
64
+ // eslint-disable-next-line import-x/export
65
+ export const MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT = MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT_RAW;