@aztec/constants 0.0.1-commit.a072138 → 0.0.1-commit.a4600f49

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.
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;
package/package.json CHANGED
@@ -1,10 +1,17 @@
1
1
  {
2
2
  "name": "@aztec/constants",
3
- "version": "0.0.1-commit.a072138",
3
+ "version": "0.0.1-commit.a4600f49",
4
4
  "type": "module",
5
5
  "inherits": [
6
6
  "../package.common.json"
7
7
  ],
8
+ "typedocOptions": {
9
+ "entryPoints": [
10
+ "./src/constants.gen.ts"
11
+ ],
12
+ "name": "Constants",
13
+ "tsconfig": "./tsconfig.json"
14
+ },
8
15
  "exports": {
9
16
  ".": "./dest/constants.js"
10
17
  },
@@ -12,11 +19,11 @@
12
19
  "build": "yarn clean && ../scripts/tsc.sh",
13
20
  "build:dev": "../scripts/tsc.sh --watch",
14
21
  "clean": "rm -rf ./dest .tsbuildinfo",
15
- "remake-constants": "node --loader @swc-node/register/esm src/scripts/constants.in.ts && cd ../../l1-contracts && forge fmt",
22
+ "generate": "./scripts/remake-constants.sh",
16
23
  "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
17
24
  },
18
25
  "dependencies": {
19
- "@aztec/foundation": "0.0.1-commit.a072138",
26
+ "@aztec/foundation": "0.0.1-commit.a4600f49",
20
27
  "tslib": "^2.4.0"
21
28
  },
22
29
  "devDependencies": {
@@ -1,4 +1,4 @@
1
- // GENERATED FILE - DO NOT EDIT, RUN yarn remake-constants
1
+ // GENERATED FILE - DO NOT EDIT
2
2
  export const MAX_FIELD_VALUE = 21888242871839275222246405745257275088548364400416034343698204186575808495616n;
3
3
  export const MAX_ETH_ADDRESS_BIT_SIZE = 160;
4
4
  export const MAX_ETH_ADDRESS_VALUE = 1461501637330902918203684832716283019655932542975n;
@@ -12,7 +12,7 @@ export const NOTE_HASH_TREE_HEIGHT = 42;
12
12
  export const PUBLIC_DATA_TREE_HEIGHT = 40;
13
13
  export const NULLIFIER_TREE_HEIGHT = 42;
14
14
  export const L1_TO_L2_MSG_TREE_HEIGHT = 36;
15
- export const OUT_HASH_TREE_HEIGHT = 6;
15
+ export const OUT_HASH_TREE_HEIGHT = 5;
16
16
  export const ARTIFACT_FUNCTION_TREE_MAX_HEIGHT = 7;
17
17
  export const NULLIFIER_TREE_ID = 0;
18
18
  export const NOTE_HASH_TREE_ID = 1;
@@ -21,7 +21,7 @@ export const L1_TO_L2_MESSAGE_TREE_ID = 3;
21
21
  export const ARCHIVE_TREE_ID = 4;
22
22
  export const NOTE_HASH_TREE_LEAF_COUNT = 4398046511104;
23
23
  export const L1_TO_L2_MSG_TREE_LEAF_COUNT = 68719476736;
24
- export const OUT_HASH_TREE_LEAF_COUNT = 64;
24
+ export const OUT_HASH_TREE_LEAF_COUNT = 32;
25
25
  export const NOTE_HASH_SUBTREE_HEIGHT = 6;
26
26
  export const NULLIFIER_SUBTREE_HEIGHT = 6;
27
27
  export const PUBLIC_DATA_SUBTREE_HEIGHT = 6;
@@ -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,18 @@ 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_2_VK_INDEX = 65;
84
+ export const PRIVATE_KERNEL_INIT_3_VK_INDEX = 66;
85
+ export const PRIVATE_KERNEL_INIT_4_VK_INDEX = 67;
86
+ export const PRIVATE_KERNEL_INIT_5_VK_INDEX = 68;
87
+ export const PRIVATE_KERNEL_INNER_2_VK_INDEX = 69;
88
+ export const PRIVATE_KERNEL_INNER_3_VK_INDEX = 70;
89
+ export const PRIVATE_KERNEL_INNER_4_VK_INDEX = 71;
90
+ export const PRIVATE_KERNEL_INNER_5_VK_INDEX = 72;
91
+ export const MAX_APPS_PER_KERNEL = 5;
82
92
  export const GLOBAL_INDEX_NOTE_HASH_READ_REQUEST_OFFSET = 0;
83
93
  export const GLOBAL_INDEX_NULLIFIER_READ_REQUEST_OFFSET = 16;
84
94
  export const GLOBAL_INDEX_NOTE_HASH_OFFSET = 32;
@@ -96,31 +106,28 @@ export const INITIAL_CHECKPOINT_NUMBER = 1;
96
106
  export const INITIAL_L2_BLOCK_NUM = 1;
97
107
  export const FIELDS_PER_BLOB = 4096;
98
108
  export const BLOBS_PER_CHECKPOINT = 6;
99
- export const AZTEC_MAX_EPOCH_DURATION = 48;
100
- export const MAX_INCLUDE_BY_TIMESTAMP_DURATION = 86400;
101
- export const GENESIS_BLOCK_HEADER_HASH = 14710079915322740317808687122062173337464078712794912405124797936019536947264n;
102
- export const GENESIS_ARCHIVE_ROOT = 19669888813533984740577615922349869995342895739385283929087009026587729644092n;
103
- export const EMPTY_EPOCH_OUT_HASH = 425901435741743301163237390758864716627999612705062243139499504804273333597n;
109
+ export const MAX_CHECKPOINTS_PER_EPOCH = 32;
110
+ export const MAX_TX_LIFETIME = 86400;
111
+ export const GENESIS_BLOCK_HEADER_HASH = 6551417544883665873456328017782433997345264442591862482015827744892259451090n;
112
+ export const GENESIS_ARCHIVE_ROOT = 10619256997260439436842531499967995403253967496480475679746178797053672406517n;
113
+ export const EMPTY_EPOCH_OUT_HASH = 355785372471781095838790036702437931769306153278986832745847530947941691539n;
104
114
  export const MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS = 3000;
105
115
  export const MAX_PACKED_BYTECODE_SIZE_PER_PRIVATE_FUNCTION_IN_FIELDS = 3000;
106
116
  export const MAX_PACKED_BYTECODE_SIZE_PER_UTILITY_FUNCTION_IN_FIELDS = 3000;
107
117
  export const CLASS_REGISTRY_PRIVATE_FUNCTION_BROADCASTED_ADDITIONAL_FIELDS = 23;
108
118
  export const CLASS_REGISTRY_UTILITY_FUNCTION_BROADCASTED_ADDITIONAL_FIELDS = 14;
109
- export const CONTRACT_CLASS_PUBLISHED_MAGIC_VALUE = 14149211982683198966415397187677099530590983261208050372085833907509n;
110
- export const CONTRACT_CLASS_REGISTRY_PRIVATE_FUNCTION_BROADCASTED_MAGIC_VALUE = 2889881020989534926461066592611988634597302675057895885580456197069n;
111
- export const CONTRACT_CLASS_REGISTRY_UTILITY_FUNCTION_BROADCASTED_MAGIC_VALUE = 24399338136397901754495080759185489776044879232766421623673792970137n;
112
- export const CONTRACT_INSTANCE_PUBLISHED_MAGIC_VALUE = 19558544958816189742429223939242700295084178455458336806004020892999n;
113
- export const CONTRACT_INSTANCE_UPDATED_MAGIC_VALUE = 1534834688047131268740281708431107902615560100979874281215533519862n;
119
+ export const CONTRACT_CLASS_PUBLISHED_MAGIC_VALUE = 14907836659448373306373608164128296596488873008270905914742877230397948162628n;
120
+ export const CONTRACT_CLASS_REGISTRY_PRIVATE_FUNCTION_BROADCASTED_MAGIC_VALUE = 6632427679359753950122686582223287785801228472790519808071945107172278003224n;
121
+ export const CONTRACT_CLASS_REGISTRY_UTILITY_FUNCTION_BROADCASTED_MAGIC_VALUE = 2863388930963370662477859081312917957786876946407365497018765359301074232169n;
122
+ export const CONTRACT_INSTANCE_PUBLISHED_MAGIC_VALUE = 10538216027419913765597387738085647348651103543680388181336823392401502757423n;
123
+ export const CONTRACT_INSTANCE_UPDATED_MAGIC_VALUE = 20721543224513346060908370400407150739273836456436647488068002302723900469047n;
114
124
  export const MAX_PROTOCOL_CONTRACTS = 11;
115
- export const CANONICAL_AUTH_REGISTRY_ADDRESS = 1;
125
+ export const CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS = 1;
116
126
  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;
121
- export const SIDE_EFFECT_MASKING_ADDRESS = 12;
127
+ export const FEE_JUICE_ADDRESS = 3;
128
+ export const SIDE_EFFECT_MASKING_ADDRESS = 19523154334483583633304358390644137470227519736821975910774528428729027989987n;
122
129
  export const NULL_MSG_SENDER_CONTRACT_ADDRESS = 21888242871839275222246405745257275088548364400416034343698204186575808495616n;
123
- export const CONTRACT_CLASS_REGISTRY_BYTECODE_CAPSULE_SLOT = 79025834455612;
130
+ export const CONTRACT_CLASS_REGISTRY_BYTECODE_CAPSULE_SLOT = 14193106819744442689484501689686180698286338820089744102289275815863062044599n;
124
131
  export const FEE_JUICE_BALANCES_SLOT = 1;
125
132
  export const UPDATED_CLASS_IDS_SLOT = 1;
126
133
  export const DEFAULT_NPK_M_X = 582240093077765400562621227108555700500271598878376310175765873770292988861n;
@@ -131,12 +138,21 @@ export const DEFAULT_OVPK_M_X = 122127877196173055705879288602884754543280089552
131
138
  export const DEFAULT_OVPK_M_Y = 3646747884782549389807830220601404629716007431341772952958971658285958854707n;
132
139
  export const DEFAULT_TPK_M_X = 728059161893070741164607238299536939695876538801885465230641192969135857403n;
133
140
  export const DEFAULT_TPK_M_Y = 14575718736702206050102425029229426215631664471161015518982549597389390371695n;
141
+ export const DEFAULT_MSPK_M_X = 376604625977751683916174973150925911104291823095102990065366659597425722296n;
142
+ export const DEFAULT_MSPK_M_Y = 6401736487141786437369922081657103422778081213225821992340733703460199150021n;
143
+ export const DEFAULT_FBPK_M_X = 11572348468544340050763207926758553848489417025671995953147359609999720016266n;
144
+ export const DEFAULT_FBPK_M_Y = 11774107091164614768010125692190151838649080987589360468021169521798921524563n;
145
+ export const DEFAULT_NPK_M_HASH = 9490941203163884203266873379528043162885952552009707050511473783876867365414n;
146
+ export const DEFAULT_OVPK_M_HASH = 6503635668323258394266152634006889881423098283582185344306514598322956522059n;
147
+ export const DEFAULT_TPK_M_HASH = 3696996950890211715833095099359687729113787313245035143274671977290400579312n;
148
+ export const DEFAULT_MSPK_M_HASH = 9339255027081995322829531434846677508514443987752207871815765570767379563350n;
149
+ export const DEFAULT_FBPK_M_HASH = 6817041416194035981444514907304573239615033139388669881213007796289638159510n;
134
150
  export const AZTEC_ADDRESS_LENGTH = 1;
135
151
  export const GAS_FEES_LENGTH = 2;
136
152
  export const GAS_LENGTH = 2;
137
153
  export const GAS_SETTINGS_LENGTH = 8;
138
154
  export const CALL_CONTEXT_LENGTH = 4;
139
- export const CONTRACT_INSTANCE_LENGTH = 16;
155
+ export const CONTRACT_INSTANCE_LENGTH = 12;
140
156
  export const CONTRACT_STORAGE_READ_LENGTH = 3;
141
157
  export const CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH = 3;
142
158
  export const ETH_ADDRESS_LENGTH = 1;
@@ -158,16 +174,16 @@ export const L2_TO_L1_MESSAGE_LENGTH = 2;
158
174
  export const COUNTED_L2_TO_L1_MESSAGE_LENGTH = 3;
159
175
  export const SCOPED_L2_TO_L1_MESSAGE_LENGTH = 3;
160
176
  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;
177
+ export const KEY_VALIDATION_REQUEST_LENGTH = 2;
178
+ export const KEY_VALIDATION_REQUEST_AND_GENERATOR_LENGTH = 3;
179
+ export const SCOPED_KEY_VALIDATION_REQUEST_AND_GENERATOR_LENGTH = 4;
164
180
  export const PARTIAL_STATE_REFERENCE_LENGTH = 6;
165
181
  export const TREE_LEAF_READ_REQUEST_LENGTH = 2;
166
- export const PRIVATE_LOG_SIZE_IN_FIELDS = 18;
167
- export const PRIVATE_LOG_LENGTH = 19;
168
- export const PRIVATE_LOG_DATA_LENGTH = 21;
169
- export const PRIVATE_LOG_CIPHERTEXT_LEN = 17;
170
- export const SCOPED_PRIVATE_LOG_DATA_LENGTH = 22;
182
+ export const PRIVATE_LOG_SIZE_IN_FIELDS = 16;
183
+ export const PRIVATE_LOG_LENGTH = 17;
184
+ export const PRIVATE_LOG_DATA_LENGTH = 19;
185
+ export const PRIVATE_LOG_CIPHERTEXT_LEN = 15;
186
+ export const SCOPED_PRIVATE_LOG_DATA_LENGTH = 20;
171
187
  export const FLAT_PUBLIC_LOGS_HEADER_LENGTH = 1;
172
188
  export const FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH = 4096;
173
189
  export const PUBLIC_LOGS_LENGTH = 4097;
@@ -196,50 +212,57 @@ export const TX_REQUEST_LENGTH = 15;
196
212
  export const TOTAL_FEES_LENGTH = 1;
197
213
  export const TOTAL_MANA_USED_LENGTH = 1;
198
214
  export const BLOCK_HEADER_LENGTH = 22;
199
- export const CHECKPOINT_HEADER_LENGTH = 12;
200
- export const CHECKPOINT_HEADER_SIZE_IN_BYTES = 316;
215
+ export const CHECKPOINT_HEADER_LENGTH = 13;
216
+ export const CHECKPOINT_HEADER_SIZE_IN_BYTES = 348;
201
217
  export const SCOPED_READ_REQUEST_LEN = 3;
202
- export const PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH = 902;
203
- export const PRIVATE_CONTEXT_INPUTS_LENGTH = 37;
218
+ export const PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH = 839;
219
+ export const PRIVATE_CONTEXT_INPUTS_LENGTH = 38;
204
220
  export const FEE_RECIPIENT_LENGTH = 2;
205
- export const HIDING_KERNEL_IO_PUBLIC_INPUTS_SIZE = 56;
206
- export const PAIRING_POINTS_SIZE = 16;
207
- export const IPA_CLAIM_SIZE = 10;
221
+ export const HIDING_KERNEL_IO_PUBLIC_INPUTS_SIZE = 28;
222
+ export const PAIRING_POINTS_SIZE = 8;
223
+ export const IPA_CLAIM_SIZE = 6;
208
224
  export const PUBLIC_DATA_READ_LENGTH = 3;
209
- export const PRIVATE_VALIDATION_REQUESTS_LENGTH = 771;
210
- export const PRIVATE_TO_ROLLUP_ACCUMULATED_DATA_LENGTH = 1371;
225
+ export const PRIVATE_VALIDATION_REQUESTS_LENGTH = 643;
226
+ export const PRIVATE_TO_ROLLUP_ACCUMULATED_DATA_LENGTH = 1243;
211
227
  export const TX_CONSTANT_DATA_LENGTH = 34;
212
228
  export const COMBINED_CONSTANT_DATA_LENGTH = 43;
213
- export const PRIVATE_ACCUMULATED_DATA_LENGTH = 2187;
214
- export const PRIVATE_KERNEL_CIRCUIT_PUBLIC_INPUTS_LENGTH = 3001;
215
- export const PRIVATE_TO_PUBLIC_ACCUMULATED_DATA_LENGTH = 1499;
229
+ export const PRIVATE_ACCUMULATED_DATA_LENGTH = 2059;
230
+ export const PRIVATE_KERNEL_CIRCUIT_PUBLIC_INPUTS_LENGTH = 2745;
231
+ export const PRIVATE_TO_PUBLIC_ACCUMULATED_DATA_LENGTH = 1371;
216
232
  export const PRIVATE_TO_AVM_ACCUMULATED_DATA_LENGTH = 152;
217
233
  export const NUM_PRIVATE_TO_AVM_ACCUMULATED_DATA_ARRAYS = 3;
218
234
  export const NUM_AVM_ACCUMULATED_DATA_ARRAYS = 4;
219
235
  export const NUM_PUBLIC_CALL_REQUEST_ARRAYS = 3;
220
236
  export const AVM_ACCUMULATED_DATA_LENGTH = 4377;
221
- export const PRIVATE_TO_PUBLIC_KERNEL_CIRCUIT_PUBLIC_INPUTS_LENGTH = 3040;
222
- export const PRIVATE_TO_ROLLUP_KERNEL_CIRCUIT_PUBLIC_INPUTS_LENGTH = 1409;
237
+ export const PRIVATE_TO_PUBLIC_KERNEL_CIRCUIT_PUBLIC_INPUTS_LENGTH = 2784;
238
+ export const PRIVATE_TO_ROLLUP_KERNEL_CIRCUIT_PUBLIC_INPUTS_LENGTH = 1281;
223
239
  export const AVM_CIRCUIT_PUBLIC_INPUTS_LENGTH = 5008;
224
240
  export const BLOCK_CONSTANT_DATA_LENGTH = 16;
225
241
  export const CHECKPOINT_CONSTANT_DATA_LENGTH = 10;
226
242
  export const EPOCH_CONSTANT_DATA_LENGTH = 5;
227
243
  export const TX_ROLLUP_PUBLIC_INPUTS_LENGTH = 52;
228
244
  export const BLOCK_ROLLUP_PUBLIC_INPUTS_LENGTH = 56;
229
- export const CHECKPOINT_ROLLUP_PUBLIC_INPUTS_LENGTH = 197;
230
- export const ROOT_ROLLUP_PUBLIC_INPUTS_LENGTH = 159;
245
+ export const CHECKPOINT_ROLLUP_PUBLIC_INPUTS_LENGTH = 149;
246
+ export const ROOT_ROLLUP_PUBLIC_INPUTS_LENGTH = 111;
231
247
  export const NUM_MSGS_PER_BASE_PARITY = 256;
232
248
  export const NUM_BASE_PARITY_PER_ROOT_PARITY = 4;
233
- export const RECURSIVE_PROOF_LENGTH = 457;
234
- export const NESTED_RECURSIVE_PROOF_LENGTH = 457;
249
+ export const RECURSIVE_PROOF_LENGTH = 410;
250
+ export const NESTED_RECURSIVE_PROOF_LENGTH = 410;
235
251
  export const IPA_PROOF_LENGTH = 64;
236
- export const ULTRA_KECCAK_PROOF_LENGTH = 339;
237
- export const RECURSIVE_ROLLUP_HONK_PROOF_LENGTH = 531;
238
- export const NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH = 531;
239
- export const CHONK_PROOF_LENGTH = 1963;
252
+ export const ULTRA_KECCAK_PROOF_LENGTH = 331;
253
+ export const RECURSIVE_ROLLUP_HONK_PROOF_LENGTH = 480;
254
+ export const NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH = 480;
255
+ export const CHONK_HIDING_OINK_LENGTH = 48;
256
+ export const CHONK_MERGE_PROOF_SIZE = 41;
257
+ export const CHONK_ECCVM_PROOF_LENGTH = 556;
258
+ export const CHONK_TRIPLE_IPA_PROOF_LENGTH = 70;
259
+ export const CHONK_JOINT_PROOF_LENGTH = 478;
260
+ export const CHONK_PROOF_LENGTH = 1221;
240
261
  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;
262
+ export const MEGA_APP_VK_LENGTH_IN_FIELDS = 151;
263
+ export const MEGA_KERNEL_VK_LENGTH_IN_FIELDS = 151;
264
+ export const MEGA_ZK_VK_LENGTH_IN_FIELDS = 119;
265
+ export const CHONK_VK_LENGTH_IN_FIELDS = 119;
243
266
  export const AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS = 86;
244
267
  export const MAX_PUBLIC_BYTECODE_SIZE_IN_BYTES = 96000;
245
268
  export const MAX_PUBLIC_CALLS_TO_UNIQUE_CONTRACT_CLASS_IDS = 21;
@@ -253,9 +276,9 @@ export const MEM_TAG_U128 = 6;
253
276
  export const AVM_HIGHEST_MEM_ADDRESS = 4294967295;
254
277
  export const AVM_MEMORY_NUM_BITS = 32;
255
278
  export const AVM_MEMORY_SIZE = 4294967296;
256
- export const AVM_BITWISE_AND_OP_ID = 0;
257
- export const AVM_BITWISE_OR_OP_ID = 1;
258
- export const AVM_BITWISE_XOR_OP_ID = 2;
279
+ export const AVM_BITWISE_AND_OP_ID = 1;
280
+ export const AVM_BITWISE_OR_OP_ID = 2;
281
+ export const AVM_BITWISE_XOR_OP_ID = 4;
259
282
  export const AVM_KECCAKF1600_NUM_ROUNDS = 24;
260
283
  export const AVM_KECCAKF1600_STATE_SIZE = 25;
261
284
  export const AVM_TX_PHASE_VALUE_START = 0;
@@ -269,7 +292,7 @@ export const AVM_SUBTRACE_ID_CALLDATA_COPY = 16;
269
292
  export const AVM_SUBTRACE_ID_RETURNDATA_COPY = 32;
270
293
  export const AVM_SUBTRACE_ID_SET = 64;
271
294
  export const AVM_SUBTRACE_ID_GETCONTRACTINSTANCE = 128;
272
- export const AVM_SUBTRACE_ID_EMITUNENCRYPTEDLOG = 256;
295
+ export const AVM_SUBTRACE_ID_EMITPUBLICLOG = 256;
273
296
  export const AVM_SUBTRACE_ID_POSEIDON2_PERM = 512;
274
297
  export const AVM_SUBTRACE_ID_SHA256_COMPRESSION = 1024;
275
298
  export const AVM_SUBTRACE_ID_KECCAKF1600 = 2048;
@@ -278,9 +301,8 @@ export const AVM_SUBTRACE_ID_TO_RADIX = 8192;
278
301
  export const AVM_DYN_GAS_ID_CALLDATACOPY = 1;
279
302
  export const AVM_DYN_GAS_ID_RETURNDATACOPY = 2;
280
303
  export const AVM_DYN_GAS_ID_TORADIX = 4;
281
- export const AVM_DYN_GAS_ID_BITWISE = 8;
282
- export const AVM_DYN_GAS_ID_EMITUNENCRYPTEDLOG = 16;
283
- export const AVM_DYN_GAS_ID_SSTORE = 32;
304
+ export const AVM_DYN_GAS_ID_EMITPUBLICLOG = 8;
305
+ export const AVM_DYN_GAS_ID_SSTORE = 16;
284
306
  export const AVM_EXEC_OP_ID_GETENVVAR = 1;
285
307
  export const AVM_EXEC_OP_ID_MOV = 2;
286
308
  export const AVM_EXEC_OP_ID_JUMP = 4;
@@ -382,36 +404,34 @@ export const AVM_PUBLIC_INPUTS_TRANSACTION_FEE_ROW_IDX = 4683;
382
404
  export const AVM_PUBLIC_INPUTS_REVERTED_ROW_IDX = 4684;
383
405
  export const AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH = 4685;
384
406
  export const AVM_NUM_PUBLIC_INPUT_COLUMNS = 4;
385
- export const AVM_PUBLIC_INPUTS_COLUMNS_COMBINED_LENGTH = 18740;
386
- export const AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED = 16200;
387
- export const AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED = 1000;
388
- export const AVM_MAX_PROCESSABLE_L2_GAS = 6000000;
407
+ export const AVM_PUBLIC_INPUTS_COLUMN_0_LENGTH = 4685;
408
+ export const AVM_PUBLIC_INPUTS_COLUMN_1_LENGTH = 4683;
409
+ export const AVM_PUBLIC_INPUTS_COLUMN_2_LENGTH = 522;
410
+ export const AVM_PUBLIC_INPUTS_COLUMN_3_LENGTH = 99;
411
+ export const AVM_PUBLIC_INPUTS_COLUMNS_COMBINED_LENGTH = 9989;
412
+ export const AVM_V2_PROOF_LENGTH_IN_FIELDS = 14532;
389
413
  export const DA_BYTES_PER_FIELD = 32;
390
- export const DA_GAS_PER_BYTE = 16;
391
- export const FIXED_DA_GAS = 512;
392
- export const FIXED_L2_GAS = 512;
414
+ export const DA_GAS_PER_BYTE = 1;
415
+ export const DA_GAS_PER_FIELD = 32;
416
+ export const TX_DA_GAS_OVERHEAD = 96;
417
+ export const PUBLIC_TX_L2_GAS_OVERHEAD = 540000;
418
+ export const PRIVATE_TX_L2_GAS_OVERHEAD = 440000;
393
419
  export const FIXED_AVM_STARTUP_L2_GAS = 20000;
394
- export const MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT = 12582912;
395
- export const GAS_ESTIMATION_TEARDOWN_L2_GAS_LIMIT = 6000000;
396
- export const GAS_ESTIMATION_L2_GAS_LIMIT = 12000000;
397
- export const GAS_ESTIMATION_TEARDOWN_DA_GAS_LIMIT = 12582912;
398
- export const GAS_ESTIMATION_DA_GAS_LIMIT = 25165824;
399
- export const DEFAULT_TEARDOWN_L2_GAS_LIMIT = 1000000;
400
- export const DEFAULT_L2_GAS_LIMIT = 6000000;
401
- export const DEFAULT_TEARDOWN_DA_GAS_LIMIT = 1000000;
402
- export const DEFAULT_DA_GAS_LIMIT = 12582912;
420
+ export const AVM_MAX_PROCESSABLE_L2_GAS = 6000000;
421
+ export const MAX_PROCESSABLE_L2_GAS = 6540000;
422
+ export const MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT = 786432;
403
423
  export const L2_GAS_DISTRIBUTED_STORAGE_PREMIUM = 1024;
404
424
  export const AVM_PC_SIZE_IN_BITS = 32;
405
- export const AVM_MAX_OPERANDS = 7;
406
- export const AVM_MAX_REGISTERS = 6;
425
+ export const AVM_MAX_OPERANDS = 5;
426
+ export const AVM_MAX_REGISTERS = 4;
407
427
  export const AVM_ADDRESSING_BASE_RESOLUTION_L2_GAS = 3;
408
428
  export const AVM_ADDRESSING_INDIRECT_L2_GAS = 3;
409
429
  export const AVM_ADDRESSING_RELATIVE_L2_GAS = 3;
410
- export const L2_GAS_PER_NOTE_HASH = 0;
411
- export const L2_GAS_PER_NULLIFIER = 0;
412
- export const L2_GAS_PER_L2_TO_L1_MSG = 200;
413
- export const L2_GAS_PER_PRIVATE_LOG = 0;
414
- export const L2_GAS_PER_CONTRACT_CLASS_LOG = 0;
430
+ export const L2_GAS_PER_NOTE_HASH = 9200;
431
+ export const L2_GAS_PER_NULLIFIER = 16000;
432
+ export const L2_GAS_PER_L2_TO_L1_MSG = 5200;
433
+ export const L2_GAS_PER_PRIVATE_LOG = 2500;
434
+ export const L2_GAS_PER_CONTRACT_CLASS_LOG = 73000;
415
435
  export const AVM_ADD_BASE_L2_GAS = 12;
416
436
  export const AVM_SUB_BASE_L2_GAS = 12;
417
437
  export const AVM_MUL_BASE_L2_GAS = 27;
@@ -446,8 +466,8 @@ export const AVM_NULLIFIEREXISTS_BASE_L2_GAS = 903;
446
466
  export const AVM_EMITNULLIFIER_BASE_L2_GAS = 30800;
447
467
  export const AVM_L1TOL2MSGEXISTS_BASE_L2_GAS = 540;
448
468
  export const AVM_GETCONTRACTINSTANCE_BASE_L2_GAS = 6108;
449
- export const AVM_EMITUNENCRYPTEDLOG_BASE_L2_GAS = 15;
450
- export const AVM_SENDL2TOL1MSG_BASE_L2_GAS = 478;
469
+ export const AVM_EMITPUBLICLOG_BASE_L2_GAS = 15;
470
+ export const AVM_SENDL2TOL1MSG_BASE_L2_GAS = 5239;
451
471
  export const AVM_CALL_BASE_L2_GAS = 9936;
452
472
  export const AVM_STATICCALL_BASE_L2_GAS = 9936;
453
473
  export const AVM_RETURN_BASE_L2_GAS = 9;
@@ -456,23 +476,21 @@ export const AVM_DEBUGLOG_BASE_L2_GAS = 9;
456
476
  export const AVM_POSEIDON2_BASE_L2_GAS = 360;
457
477
  export const AVM_SHA256COMPRESSION_BASE_L2_GAS = 12288;
458
478
  export const AVM_KECCAKF1600_BASE_L2_GAS = 58176;
459
- export const AVM_ECADD_BASE_L2_GAS = 270;
479
+ export const AVM_ECADD_BASE_L2_GAS = 180;
460
480
  export const AVM_TORADIXBE_BASE_L2_GAS = 24;
461
- export const AVM_CALLDATACOPY_DYN_L2_GAS = 3;
462
- export const AVM_RETURNDATACOPY_DYN_L2_GAS = 3;
481
+ export const AVM_CALLDATACOPY_DYN_L2_GAS = 6;
482
+ export const AVM_RETURNDATACOPY_DYN_L2_GAS = 6;
463
483
  export const AVM_TORADIXBE_DYN_L2_GAS = 3;
464
- export const AVM_BITWISE_DYN_L2_GAS = 3;
465
- export const AVM_EMITUNENCRYPTEDLOG_DYN_L2_GAS = 3;
466
- export const AVM_EMITNOTEHASH_BASE_DA_GAS = 512;
467
- export const AVM_EMITNULLIFIER_BASE_DA_GAS = 512;
468
- export const AVM_SENDL2TOL1MSG_BASE_DA_GAS = 512;
469
- export const AVM_EMITUNENCRYPTEDLOG_BASE_DA_GAS = 1024;
470
- export const AVM_EMITUNENCRYPTEDLOG_DYN_DA_GAS = 512;
471
- export const AVM_SSTORE_DYN_DA_GAS = 1024;
472
- export const TX_START_PREFIX = 8392562855083340404n;
473
- export const TX_START_PREFIX_BIT_SIZE = 64;
474
- export const BLOCK_END_PREFIX = 1815594492414860291684n;
475
- export const CHECKPOINT_END_PREFIX = 2016229657840014237853300314959460n;
484
+ export const AVM_EMITPUBLICLOG_DYN_L2_GAS = 3;
485
+ export const AVM_EMITNOTEHASH_BASE_DA_GAS = 32;
486
+ export const AVM_EMITNULLIFIER_BASE_DA_GAS = 32;
487
+ export const AVM_SENDL2TOL1MSG_BASE_DA_GAS = 32;
488
+ export const AVM_EMITPUBLICLOG_BASE_DA_GAS = 64;
489
+ export const AVM_EMITPUBLICLOG_DYN_DA_GAS = 32;
490
+ export const AVM_SSTORE_DYN_DA_GAS = 64;
491
+ export const TX_START_PREFIX = 2624615704;
492
+ export const BLOCK_END_PREFIX = 3951939007;
493
+ export const CHECKPOINT_END_PREFIX = 2355328067;
476
494
  export const PROOF_TYPE_HONK = 0;
477
495
  export const PROOF_TYPE_OINK = 1;
478
496
  export const PROOF_TYPE_HN = 2;
@@ -480,14 +498,13 @@ export const PROOF_TYPE_AVM = 3;
480
498
  export const PROOF_TYPE_ROLLUP_HONK = 4;
481
499
  export const PROOF_TYPE_ROOT_ROLLUP_HONK = 5;
482
500
  export const PROOF_TYPE_HN_FINAL = 7;
483
- export const PROOF_TYPE_HN_TAIL = 8;
484
- export const PROOF_TYPE_CHONK = 9;
501
+ export const PROOF_TYPE_CHONK = 8;
485
502
  export const TWO_POW_64 = 18446744073709551616n;
486
503
  export const AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_HEIGHT = 6;
487
- export const AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_INITIAL_ROOT = 18291678969210913367302010540259942201271604198321103848479209155223586227821n;
504
+ export const AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_INITIAL_ROOT = 8857725174171741160013581538021104168730942281584695363072221389187184558934n;
488
505
  export const AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_INITIAL_SIZE = 1;
489
506
  export const AVM_RETRIEVED_BYTECODES_TREE_HEIGHT = 5;
490
- export const AVM_RETRIEVED_BYTECODES_TREE_INITIAL_ROOT = 7257575663883662864904159007845791361042428565864275462740313586853981161757n;
507
+ export const AVM_RETRIEVED_BYTECODES_TREE_INITIAL_ROOT = 7219963955978612430652135562469971022121082503142071142433583613738272177170n;
491
508
  export const AVM_RETRIEVED_BYTECODES_TREE_INITIAL_SIZE = 1;
492
509
  export const TIMESTAMP_OF_CHANGE_BIT_SIZE = 32;
493
510
  export const DEFAULT_UPDATE_DELAY = 86400;
@@ -501,44 +518,73 @@ export const UPDATES_DELAYED_PUBLIC_MUTABLE_METADATA_BIT_SIZE = 144;
501
518
  export const GRUMPKIN_ONE_X = 1;
502
519
  export const GRUMPKIN_ONE_Y = 17631683881184975370165255887551781615748388533673675138860n;
503
520
  export const DEFAULT_MAX_DEBUG_LOG_MEMORY_READS = 125000;
504
- export enum GeneratorIndex {
505
- NOTE_HASH = 570261536,
506
- NOTE_HASH_NONCE = 4040695053,
507
- UNIQUE_NOTE_HASH = 1615905817,
508
- SILOED_NOTE_HASH = 3552985968,
509
- NOTE_NULLIFIER = 2273326939,
510
- MESSAGE_NULLIFIER = 4179235419,
511
- SILOED_NULLIFIER = 1843769845,
512
- PRIVATE_LOG_FIRST_FIELD = 3381826258,
513
- PUBLIC_LEAF_SLOT = 2853865602,
514
- PUBLIC_STORAGE_MAP_SLOT = 1106049611,
515
- PRIVATE_FUNCTION_LEAF = 3274445394,
516
- PUBLIC_BYTECODE = 4245021897,
517
- CONTRACT_CLASS_ID = 1134959961,
518
- INITIALIZER = 3165476885,
519
- NHK_M = 3431122223,
520
- IVSK_M = 3641144584,
521
- OVSK_M = 449371170,
522
- TSK_M = 4031170476,
523
- PUBLIC_KEYS_HASH = 349301051,
524
- PARTIAL_ADDRESS = 1453969891,
525
- CONTRACT_ADDRESS_V1 = 2091531360,
526
- BLOCK_HEADER_HASH = 2064783670,
527
- TX_REQUEST = 1076396939,
528
- PUBLIC_TX_HASH = 419169672,
529
- PRIVATE_TX_HASH = 4261301885,
530
- PUBLIC_CALLDATA = 388853507,
531
- FUNCTION_ARGS = 587126185,
532
- PROTOCOL_CONTRACTS = 3581307760,
533
- EVENT_COMMITMENT = 469373807,
534
- AUTHWIT_INNER = 829479065,
535
- AUTHWIT_OUTER = 1502324539,
536
- AUTHWIT_NULLIFIER = 1450992171,
537
- SYMMETRIC_KEY = 690840336,
538
- SYMMETRIC_KEY_2 = 3484314061,
539
- PARTIAL_NOTE_VALIDITY_COMMITMENT = 1665410974,
540
- INITIALIZATION_NULLIFIER = 2762319966,
541
- SECRET_HASH = 15484084,
542
- TX_NULLIFIER = 1039603495,
543
- SIGNATURE_PAYLOAD = 2407104296,
521
+ export const MAX_TX_BLOB_DATA_SIZE_IN_FIELDS = 8475;
522
+ export enum DomainSeparator {
523
+ NOTE_HASH = 116501019,
524
+ PARTIAL_NOTE_COMMITMENT = 568912195,
525
+ SILOED_NOTE_HASH = 3361878420,
526
+ UNIQUE_NOTE_HASH = 226850429,
527
+ NOTE_HASH_NONCE = 1721808740,
528
+ SINGLE_USE_CLAIM_NULLIFIER = 1465998995,
529
+ NOTE_NULLIFIER = 50789342,
530
+ SILOED_NULLIFIER = 57496191,
531
+ MESSAGE_NULLIFIER = 3754509616,
532
+ EVENT_LOG_TAG = 926040838,
533
+ NOTE_COMPLETION_LOG_TAG = 3372669888,
534
+ UNCONSTRAINED_MSG_LOG_TAG = 1485357192,
535
+ CONSTRAINED_MSG_LOG_TAG = 3715244738,
536
+ CONSTRAINED_MSG_NULLIFIER = 3723577546,
537
+ CONSTRAINED_MSG_SENDER_SECRET = 1182889476,
538
+ NON_INTERACTIVE_HANDSHAKE_LOG_TAG = 4046403018,
539
+ INTERACTIVE_HANDSHAKE_SIGNATURE = 3098455647,
540
+ PRIVATE_LOG_FIRST_FIELD = 2769976252,
541
+ PUBLIC_LEAF_SLOT = 1247650290,
542
+ PUBLIC_STORAGE_MAP_SLOT = 4015149901,
543
+ MERKLE_HASH = 2982624097,
544
+ NULLIFIER_MERKLE = 1157584160,
545
+ PUBLIC_DATA_MERKLE = 3756303423,
546
+ WRITTEN_SLOTS_MERKLE = 2292766212,
547
+ RETRIEVED_BYTECODES_MERKLE = 2789215184,
548
+ PRIVATE_FUNCTION_LEAF = 1389398688,
549
+ PUBLIC_BYTECODE = 260313585,
550
+ CONTRACT_CLASS_ID = 3923495515,
551
+ SALTED_INITIALIZATION_HASH = 2763052992,
552
+ INITIALIZER = 385396519,
553
+ NHK_M = 242137788,
554
+ IVSK_M = 2747825907,
555
+ OVSK_M = 4272201051,
556
+ TSK_M = 1546190975,
557
+ MSSK_M = 617962565,
558
+ FBSK_M = 787738027,
559
+ PUBLIC_KEYS_HASH = 777457226,
560
+ SINGLE_PUBLIC_KEY_HASH = 3452068255,
561
+ PARTIAL_ADDRESS = 2103633018,
562
+ CONTRACT_ADDRESS_V2 = 4099338721,
563
+ BLOCK_HEADER_HASH = 4195546849,
564
+ TX_REQUEST = 3763737512,
565
+ PUBLIC_TX_HASH = 1630108851,
566
+ PRIVATE_TX_HASH = 1971680439,
567
+ PUBLIC_CALLDATA = 2760353947,
568
+ FUNCTION_ARGS = 3576554347,
569
+ PROTOCOL_CONTRACTS = 3904434327,
570
+ EVENT_COMMITMENT = 2517418573,
571
+ AUTHWIT_INNER = 221354163,
572
+ AUTHWIT_OUTER = 3283595782,
573
+ AUTHWIT_NULLIFIER = 1239150694,
574
+ APP_SILOED_ECDH_SHARED_SECRET = 1707851664,
575
+ ECDH_SUBKEY = 4277646631,
576
+ ECDH_FIELD_MASK = 190532684,
577
+ PARTIAL_NOTE_VALIDITY_COMMITMENT = 623934423,
578
+ INITIALIZATION_NULLIFIER = 1653084894,
579
+ PUBLIC_INITIALIZATION_NULLIFIER = 3342006647,
580
+ PRIVATE_INITIALIZATION_NULLIFIER = 3990889078,
581
+ SECRET_HASH = 4199652938,
582
+ TX_NULLIFIER = 1025801951,
583
+ SIGNATURE_PAYLOAD = 463525807,
584
+ BLOCK_HEADERS_HASH = 515582467,
585
+ BLOB_HASHED_Y_LIMBS = 2949331415,
586
+ BLOB_CHALLENGE_Z = 60345710,
587
+ BLOB_Z_ACC = 1003392952,
588
+ BLOB_GAMMA_ACC = 855632775,
589
+ BLOB_GAMMA_FINAL = 1755883835,
544
590
  }
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;