@aztec/constants 0.0.1-commit.f2ce05ee → 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.
@@ -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,12 +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
- 'PUBLIC_CHECKS_ADDRESS',
41
+ 'TX_DA_GAS_OVERHEAD',
30
42
  'FEE_JUICE_BALANCES_SLOT',
31
43
  'UPDATED_CLASS_IDS_SLOT',
32
44
  'UPDATES_DELAYED_PUBLIC_MUTABLE_VALUES_LEN',
@@ -42,6 +54,7 @@ const CPP_CONSTANTS = [
42
54
  'MAX_NOTE_HASHES_PER_TX',
43
55
  'MAX_NULLIFIERS_PER_TX',
44
56
  'MAX_L2_TO_L1_MSGS_PER_TX',
57
+ 'MAX_PROCESSABLE_L2_GAS',
45
58
  'MAX_PUBLIC_LOGS_PER_TX',
46
59
  'MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX',
47
60
  'MAX_PUBLIC_CALLS_TO_UNIQUE_CONTRACT_CLASS_IDS',
@@ -109,15 +122,18 @@ const CPP_CONSTANTS = [
109
122
  'FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH',
110
123
  'PUBLIC_LOGS_LENGTH',
111
124
  'PUBLIC_LOG_HEADER_LENGTH',
125
+ 'PUBLIC_TX_L2_GAS_OVERHEAD',
112
126
  'MAX_PROTOCOL_CONTRACTS',
113
127
  'DEFAULT_MAX_DEBUG_LOG_MEMORY_READS'
114
128
  ];
115
129
  const CPP_GENERATORS = [
116
130
  'BLOCK_HEADER_HASH',
131
+ 'SALTED_INITIALIZATION_HASH',
117
132
  'PARTIAL_ADDRESS',
118
- 'CONTRACT_ADDRESS_V1',
133
+ 'CONTRACT_ADDRESS_V2',
119
134
  'CONTRACT_CLASS_ID',
120
135
  'PUBLIC_KEYS_HASH',
136
+ 'SINGLE_PUBLIC_KEY_HASH',
121
137
  'NOTE_HASH_NONCE',
122
138
  'UNIQUE_NOTE_HASH',
123
139
  'SILOED_NOTE_HASH',
@@ -125,7 +141,12 @@ const CPP_GENERATORS = [
125
141
  'PUBLIC_LEAF_SLOT',
126
142
  'PUBLIC_STORAGE_MAP_SLOT',
127
143
  'PUBLIC_CALLDATA',
128
- 'PUBLIC_BYTECODE'
144
+ 'PUBLIC_BYTECODE',
145
+ 'MERKLE_HASH',
146
+ 'NULLIFIER_MERKLE',
147
+ 'PUBLIC_DATA_MERKLE',
148
+ 'WRITTEN_SLOTS_MERKLE',
149
+ 'RETRIEVED_BYTECODES_MERKLE'
129
150
  ];
130
151
  const PIL_CONSTANTS = [
131
152
  'MAX_ETH_ADDRESS_VALUE',
@@ -159,12 +180,9 @@ const PIL_CONSTANTS = [
159
180
  'L1_TO_L2_MSG_TREE_HEIGHT',
160
181
  'UPDATED_CLASS_IDS_SLOT',
161
182
  'UPDATES_DELAYED_PUBLIC_MUTABLE_VALUES_LEN',
162
- 'CANONICAL_AUTH_REGISTRY_ADDRESS',
163
183
  'CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS',
164
184
  'CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS',
165
- 'MULTI_CALL_ENTRYPOINT_ADDRESS',
166
185
  'FEE_JUICE_ADDRESS',
167
- 'PUBLIC_CHECKS_ADDRESS',
168
186
  'FEE_JUICE_BALANCES_SLOT',
169
187
  'TIMESTAMP_OF_CHANGE_BIT_SIZE',
170
188
  'UPDATES_DELAYED_PUBLIC_MUTABLE_METADATA_BIT_SIZE',
@@ -248,10 +266,10 @@ const PIL_CONSTANTS = [
248
266
  'AVM_DYN_GAS_ID_RETURNDATACOPY',
249
267
  'AVM_DYN_GAS_ID_TORADIX',
250
268
  'AVM_DYN_GAS_ID_BITWISE',
251
- 'AVM_DYN_GAS_ID_EMITUNENCRYPTEDLOG',
269
+ 'AVM_DYN_GAS_ID_EMITPUBLICLOG',
252
270
  'AVM_DYN_GAS_ID_SSTORE',
253
271
  'AVM_SUBTRACE_ID_GETCONTRACTINSTANCE',
254
- 'AVM_SUBTRACE_ID_EMITUNENCRYPTEDLOG',
272
+ 'AVM_SUBTRACE_ID_EMITPUBLICLOG',
255
273
  'AVM_EXEC_OP_ID_GETENVVAR',
256
274
  'AVM_EXEC_OP_ID_MOV',
257
275
  'AVM_EXEC_OP_ID_JUMP',
@@ -300,10 +318,12 @@ const PIL_CONSTANTS = [
300
318
  'MAX_PROTOCOL_CONTRACTS'
301
319
  ];
302
320
  const PIL_GENERATORS = [
321
+ 'SALTED_INITIALIZATION_HASH',
303
322
  'PARTIAL_ADDRESS',
304
- 'CONTRACT_ADDRESS_V1',
323
+ 'CONTRACT_ADDRESS_V2',
305
324
  'CONTRACT_CLASS_ID',
306
325
  'PUBLIC_KEYS_HASH',
326
+ 'SINGLE_PUBLIC_KEY_HASH',
307
327
  'NOTE_HASH_NONCE',
308
328
  'UNIQUE_NOTE_HASH',
309
329
  'SILOED_NOTE_HASH',
@@ -311,7 +331,12 @@ const PIL_GENERATORS = [
311
331
  'PUBLIC_LEAF_SLOT',
312
332
  'PUBLIC_STORAGE_MAP_SLOT',
313
333
  'PUBLIC_CALLDATA',
314
- 'PUBLIC_BYTECODE'
334
+ 'PUBLIC_BYTECODE',
335
+ 'MERKLE_HASH',
336
+ 'NULLIFIER_MERKLE',
337
+ 'PUBLIC_DATA_MERKLE',
338
+ 'WRITTEN_SLOTS_MERKLE',
339
+ 'RETRIEVED_BYTECODES_MERKLE'
315
340
  ];
316
341
  const SOLIDITY_CONSTANTS = [
317
342
  'MAX_FIELD_VALUE',
@@ -417,30 +442,30 @@ const SOLIDITY_CONSTANTS = [
417
442
  }
418
443
  /**
419
444
  * Generate the constants file in Typescript.
420
- */ function generateTypescriptConstants({ constants, generatorIndexEnum }, targetPath) {
445
+ */ function generateTypescriptConstants({ constants, domainSeparatorEnum }, targetPath) {
421
446
  const result = [
422
447
  '// GENERATED FILE - DO NOT EDIT, RUN yarn remake-constants',
423
448
  processConstantsTS(constants),
424
- processEnumTS('GeneratorIndex', generatorIndexEnum)
449
+ processEnumTS('DomainSeparator', domainSeparatorEnum)
425
450
  ].join('\n');
426
451
  fs.writeFileSync(targetPath, result);
427
452
  }
428
453
  /**
429
454
  * Generate the constants file in C++.
430
- */ function generateCppConstants({ constants, generatorIndexEnum }, targetPath) {
455
+ */ function generateCppConstants({ constants, domainSeparatorEnum }, targetPath) {
431
456
  const resultCpp = `// GENERATED FILE - DO NOT EDIT, RUN yarn remake-constants in yarn-project/constants
432
457
  #pragma once
433
458
 
434
- ${processConstantsCpp(constants, generatorIndexEnum)}
459
+ ${processConstantsCpp(constants, domainSeparatorEnum)}
435
460
  `;
436
461
  fs.writeFileSync(targetPath, resultCpp);
437
462
  }
438
463
  /**
439
464
  * Generate the constants file in PIL.
440
- */ function generatePilConstants({ constants, generatorIndexEnum }, targetPath) {
465
+ */ function generatePilConstants({ constants, domainSeparatorEnum }, targetPath) {
441
466
  const resultPil = `// GENERATED FILE - DO NOT EDIT, RUN yarn remake-constants in yarn-project/constants
442
467
  namespace constants;
443
- ${processConstantsPil(constants, generatorIndexEnum)}
468
+ ${processConstantsPil(constants, domainSeparatorEnum)}
444
469
  \n`;
445
470
  fs.writeFileSync(targetPath, resultPil);
446
471
  }
@@ -468,16 +493,19 @@ ${processConstantsSolidity(constants)}
468
493
  }
469
494
  /**
470
495
  * Parse the content of the constants file in Noir.
471
- */ function parseNoirFile(fileContent) {
496
+ */ function parseNoirFile(fileContent, { stripLineComments = false } = {}) {
472
497
  const constantsExpressions = [];
473
- const generatorIndexEnum = {};
498
+ const domainSeparatorEnum = {};
474
499
  const emptyExpression = ()=>({
475
500
  name: '',
476
501
  content: []
477
502
  });
478
503
  let expression = emptyExpression();
479
504
  fileContent.split('\n').forEach((l)=>{
480
- 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();
481
509
  if (!line) {
482
510
  // Empty line.
483
511
  return;
@@ -492,7 +520,7 @@ ${processConstantsSolidity(constants)}
492
520
  const [, indexName] = name.match(/DOM_SEP__(\w+)/) || [];
493
521
  if (indexName) {
494
522
  // Generator index.
495
- generatorIndexEnum[indexName] = +value;
523
+ domainSeparatorEnum[indexName] = +value;
496
524
  } else if (end) {
497
525
  // A single line of expression.
498
526
  constantsExpressions.push([
@@ -537,10 +565,9 @@ ${processConstantsSolidity(constants)}
537
565
  console.warn(`Unknown content: ${line}`);
538
566
  }
539
567
  });
540
- const constants = evaluateExpressions(constantsExpressions);
541
568
  return {
542
- constants,
543
- generatorIndexEnum
569
+ constantsExpressions,
570
+ domainSeparatorEnum
544
571
  };
545
572
  }
546
573
  /**
@@ -567,7 +594,11 @@ ${processConstantsSolidity(constants)}
567
594
  .replace(/\(/g, '( ').replace(/\)/g, ' )')// We also make some space around common operators
568
595
  .replace(/\+/g, ' + ').replace(/(?<!\/)\*(?!\/)/, ' * ')// We split the expression into terms...
569
596
  .split(/\s+/)// ...and then we convert each term to a BigInt if it is a number.
570
- .map((term)=>isNaN(+term) ? term : `BigInt('${term}')`)// .. also, we convert the known bigints to BigInts.
597
+ .map((term)=>{
598
+ // Remove underscores from numeric literals (e.g., 6_000_000 -> 6000000)
599
+ const termWithoutUnderscores = term.replace(/_/g, '');
600
+ return isNaN(+termWithoutUnderscores) ? term : `BigInt('${termWithoutUnderscores}')`;
601
+ })// .. also, we convert the known bigints to BigInts.
571
602
  .map((term)=>knownBigInts.includes(term) ? `BigInt(${term})` : term)// We join the terms back together.
572
603
  .join(' ');
573
604
  return `var ${name} = ${guardedRhs};`;
@@ -585,7 +616,26 @@ ${processConstantsSolidity(constants)}
585
616
  const __dirname = dirname(fileURLToPath(import.meta.url));
586
617
  const noirConstantsFile = join(__dirname, NOIR_CONSTANTS_FILE);
587
618
  const noirConstants = fs.readFileSync(noirConstantsFile, 'utf-8');
588
- 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
+ };
589
639
  // Typescript
590
640
  const tsTargetPath = join(__dirname, TS_CONSTANTS_FILE);
591
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.f2ce05ee",
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.f2ce05ee",
26
+ "@aztec/foundation": "0.0.1-commit.f5a9928",
27
27
  "tslib": "^2.4.0"
28
28
  },
29
29
  "devDependencies": {
@@ -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;
@@ -97,9 +103,9 @@ export const INITIAL_L2_BLOCK_NUM = 1;
97
103
  export const FIELDS_PER_BLOB = 4096;
98
104
  export const BLOBS_PER_CHECKPOINT = 6;
99
105
  export const MAX_CHECKPOINTS_PER_EPOCH = 32;
100
- export const MAX_INCLUDE_BY_TIMESTAMP_DURATION = 86400;
101
- export const GENESIS_BLOCK_HEADER_HASH = 21694244557328181932449230888455310614586084993178835904749768133365362325861n;
102
- export const GENESIS_ARCHIVE_ROOT = 9682850228538071369704502076456077473410427336083826595120404283897422804423n;
106
+ export const MAX_TX_LIFETIME = 86400;
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,16 +170,16 @@ 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
- 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;
178
+ export const PRIVATE_LOG_SIZE_IN_FIELDS = 16;
179
+ export const PRIVATE_LOG_LENGTH = 17;
180
+ export const PRIVATE_LOG_DATA_LENGTH = 19;
181
+ export const PRIVATE_LOG_CIPHERTEXT_LEN = 15;
182
+ export const SCOPED_PRIVATE_LOG_DATA_LENGTH = 20;
171
183
  export const FLAT_PUBLIC_LOGS_HEADER_LENGTH = 1;
172
184
  export const FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH = 4096;
173
185
  export const PUBLIC_LOGS_LENGTH = 4097;
@@ -196,30 +208,30 @@ 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 = 902;
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;
210
- export const PRIVATE_TO_ROLLUP_ACCUMULATED_DATA_LENGTH = 1371;
221
+ export const PRIVATE_VALIDATION_REQUESTS_LENGTH = 643;
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
- 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;
225
+ export const PRIVATE_ACCUMULATED_DATA_LENGTH = 2059;
226
+ export const PRIVATE_KERNEL_CIRCUIT_PUBLIC_INPUTS_LENGTH = 2746;
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;
218
230
  export const NUM_AVM_ACCUMULATED_DATA_ARRAYS = 4;
219
231
  export const NUM_PUBLIC_CALL_REQUEST_ARRAYS = 3;
220
232
  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;
233
+ export const PRIVATE_TO_PUBLIC_KERNEL_CIRCUIT_PUBLIC_INPUTS_LENGTH = 2784;
234
+ export const PRIVATE_TO_ROLLUP_KERNEL_CIRCUIT_PUBLIC_INPUTS_LENGTH = 1281;
223
235
  export const AVM_CIRCUIT_PUBLIC_INPUTS_LENGTH = 5008;
224
236
  export const BLOCK_CONSTANT_DATA_LENGTH = 16;
225
237
  export const CHECKPOINT_CONSTANT_DATA_LENGTH = 10;
@@ -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 = 1935;
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;
@@ -269,7 +286,7 @@ export const AVM_SUBTRACE_ID_CALLDATA_COPY = 16;
269
286
  export const AVM_SUBTRACE_ID_RETURNDATA_COPY = 32;
270
287
  export const AVM_SUBTRACE_ID_SET = 64;
271
288
  export const AVM_SUBTRACE_ID_GETCONTRACTINSTANCE = 128;
272
- export const AVM_SUBTRACE_ID_EMITUNENCRYPTEDLOG = 256;
289
+ export const AVM_SUBTRACE_ID_EMITPUBLICLOG = 256;
273
290
  export const AVM_SUBTRACE_ID_POSEIDON2_PERM = 512;
274
291
  export const AVM_SUBTRACE_ID_SHA256_COMPRESSION = 1024;
275
292
  export const AVM_SUBTRACE_ID_KECCAKF1600 = 2048;
@@ -279,7 +296,7 @@ export const AVM_DYN_GAS_ID_CALLDATACOPY = 1;
279
296
  export const AVM_DYN_GAS_ID_RETURNDATACOPY = 2;
280
297
  export const AVM_DYN_GAS_ID_TORADIX = 4;
281
298
  export const AVM_DYN_GAS_ID_BITWISE = 8;
282
- export const AVM_DYN_GAS_ID_EMITUNENCRYPTEDLOG = 16;
299
+ export const AVM_DYN_GAS_ID_EMITPUBLICLOG = 16;
283
300
  export const AVM_DYN_GAS_ID_SSTORE = 32;
284
301
  export const AVM_EXEC_OP_ID_GETENVVAR = 1;
285
302
  export const AVM_EXEC_OP_ID_MOV = 2;
@@ -383,23 +400,17 @@ 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 = 16200;
387
- export const AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED = 1000;
388
- export const AVM_MAX_PROCESSABLE_L2_GAS = 6000000;
403
+ export const AVM_V2_PROOF_LENGTH_IN_FIELDS = 15516;
389
404
  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;
405
+ export const DA_GAS_PER_BYTE = 1;
406
+ export const DA_GAS_PER_FIELD = 32;
407
+ export const TX_DA_GAS_OVERHEAD = 96;
408
+ export const PUBLIC_TX_L2_GAS_OVERHEAD = 540000;
409
+ export const PRIVATE_TX_L2_GAS_OVERHEAD = 440000;
393
410
  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;
411
+ export const AVM_MAX_PROCESSABLE_L2_GAS = 6000000;
412
+ export const MAX_PROCESSABLE_L2_GAS = 6540000;
413
+ export const MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT = 786432;
403
414
  export const L2_GAS_DISTRIBUTED_STORAGE_PREMIUM = 1024;
404
415
  export const AVM_PC_SIZE_IN_BITS = 32;
405
416
  export const AVM_MAX_OPERANDS = 7;
@@ -407,11 +418,11 @@ export const AVM_MAX_REGISTERS = 6;
407
418
  export const AVM_ADDRESSING_BASE_RESOLUTION_L2_GAS = 3;
408
419
  export const AVM_ADDRESSING_INDIRECT_L2_GAS = 3;
409
420
  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;
421
+ export const L2_GAS_PER_NOTE_HASH = 9200;
422
+ export const L2_GAS_PER_NULLIFIER = 16000;
423
+ export const L2_GAS_PER_L2_TO_L1_MSG = 5200;
424
+ export const L2_GAS_PER_PRIVATE_LOG = 2500;
425
+ export const L2_GAS_PER_CONTRACT_CLASS_LOG = 73000;
415
426
  export const AVM_ADD_BASE_L2_GAS = 12;
416
427
  export const AVM_SUB_BASE_L2_GAS = 12;
417
428
  export const AVM_MUL_BASE_L2_GAS = 27;
@@ -446,8 +457,8 @@ export const AVM_NULLIFIEREXISTS_BASE_L2_GAS = 903;
446
457
  export const AVM_EMITNULLIFIER_BASE_L2_GAS = 30800;
447
458
  export const AVM_L1TOL2MSGEXISTS_BASE_L2_GAS = 540;
448
459
  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;
460
+ export const AVM_EMITPUBLICLOG_BASE_L2_GAS = 15;
461
+ export const AVM_SENDL2TOL1MSG_BASE_L2_GAS = 5239;
451
462
  export const AVM_CALL_BASE_L2_GAS = 9936;
452
463
  export const AVM_STATICCALL_BASE_L2_GAS = 9936;
453
464
  export const AVM_RETURN_BASE_L2_GAS = 9;
@@ -456,19 +467,19 @@ export const AVM_DEBUGLOG_BASE_L2_GAS = 9;
456
467
  export const AVM_POSEIDON2_BASE_L2_GAS = 360;
457
468
  export const AVM_SHA256COMPRESSION_BASE_L2_GAS = 12288;
458
469
  export const AVM_KECCAKF1600_BASE_L2_GAS = 58176;
459
- export const AVM_ECADD_BASE_L2_GAS = 270;
470
+ export const AVM_ECADD_BASE_L2_GAS = 180;
460
471
  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;
472
+ export const AVM_CALLDATACOPY_DYN_L2_GAS = 6;
473
+ export const AVM_RETURNDATACOPY_DYN_L2_GAS = 6;
463
474
  export const AVM_TORADIXBE_DYN_L2_GAS = 3;
464
475
  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;
476
+ export const AVM_EMITPUBLICLOG_DYN_L2_GAS = 3;
477
+ export const AVM_EMITNOTEHASH_BASE_DA_GAS = 32;
478
+ export const AVM_EMITNULLIFIER_BASE_DA_GAS = 32;
479
+ export const AVM_SENDL2TOL1MSG_BASE_DA_GAS = 32;
480
+ export const AVM_EMITPUBLICLOG_BASE_DA_GAS = 64;
481
+ export const AVM_EMITPUBLICLOG_DYN_DA_GAS = 32;
482
+ export const AVM_SSTORE_DYN_DA_GAS = 64;
472
483
  export const TX_START_PREFIX = 2624615704;
473
484
  export const BLOCK_END_PREFIX = 3951939007;
474
485
  export const CHECKPOINT_END_PREFIX = 2355328067;
@@ -483,10 +494,10 @@ export const PROOF_TYPE_HN_TAIL = 8;
483
494
  export const PROOF_TYPE_CHONK = 9;
484
495
  export const TWO_POW_64 = 18446744073709551616n;
485
496
  export const AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_HEIGHT = 6;
486
- export const AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_INITIAL_ROOT = 18291678969210913367302010540259942201271604198321103848479209155223586227821n;
497
+ export const AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_INITIAL_ROOT = 8857725174171741160013581538021104168730942281584695363072221389187184558934n;
487
498
  export const AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_INITIAL_SIZE = 1;
488
499
  export const AVM_RETRIEVED_BYTECODES_TREE_HEIGHT = 5;
489
- export const AVM_RETRIEVED_BYTECODES_TREE_INITIAL_ROOT = 7257575663883662864904159007845791361042428565864275462740313586853981161757n;
500
+ export const AVM_RETRIEVED_BYTECODES_TREE_INITIAL_ROOT = 7219963955978612430652135562469971022121082503142071142433583613738272177170n;
490
501
  export const AVM_RETRIEVED_BYTECODES_TREE_INITIAL_SIZE = 1;
491
502
  export const TIMESTAMP_OF_CHANGE_BIT_SIZE = 32;
492
503
  export const DEFAULT_UPDATE_DELAY = 86400;
@@ -500,28 +511,49 @@ export const UPDATES_DELAYED_PUBLIC_MUTABLE_METADATA_BIT_SIZE = 144;
500
511
  export const GRUMPKIN_ONE_X = 1;
501
512
  export const GRUMPKIN_ONE_Y = 17631683881184975370165255887551781615748388533673675138860n;
502
513
  export const DEFAULT_MAX_DEBUG_LOG_MEMORY_READS = 125000;
503
- export enum GeneratorIndex {
514
+ export const MAX_TX_BLOB_DATA_SIZE_IN_FIELDS = 8475;
515
+ export enum DomainSeparator {
504
516
  NOTE_HASH = 116501019,
505
- NOTE_HASH_NONCE = 1721808740,
506
- UNIQUE_NOTE_HASH = 226850429,
517
+ PARTIAL_NOTE_COMMITMENT = 568912195,
507
518
  SILOED_NOTE_HASH = 3361878420,
519
+ UNIQUE_NOTE_HASH = 226850429,
520
+ NOTE_HASH_NONCE = 1721808740,
521
+ SINGLE_USE_CLAIM_NULLIFIER = 1465998995,
508
522
  NOTE_NULLIFIER = 50789342,
509
- MESSAGE_NULLIFIER = 3754509616,
510
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,
511
534
  PRIVATE_LOG_FIRST_FIELD = 2769976252,
512
535
  PUBLIC_LEAF_SLOT = 1247650290,
513
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,
514
542
  PRIVATE_FUNCTION_LEAF = 1389398688,
515
543
  PUBLIC_BYTECODE = 260313585,
516
544
  CONTRACT_CLASS_ID = 3923495515,
545
+ SALTED_INITIALIZATION_HASH = 2763052992,
517
546
  INITIALIZER = 385396519,
518
547
  NHK_M = 242137788,
519
548
  IVSK_M = 2747825907,
520
549
  OVSK_M = 4272201051,
521
550
  TSK_M = 1546190975,
551
+ MSSK_M = 617962565,
552
+ FBSK_M = 787738027,
522
553
  PUBLIC_KEYS_HASH = 777457226,
554
+ SINGLE_PUBLIC_KEY_HASH = 3452068255,
523
555
  PARTIAL_ADDRESS = 2103633018,
524
- CONTRACT_ADDRESS_V1 = 1788365517,
556
+ CONTRACT_ADDRESS_V2 = 4099338721,
525
557
  BLOCK_HEADER_HASH = 4195546849,
526
558
  TX_REQUEST = 3763737512,
527
559
  PUBLIC_TX_HASH = 1630108851,
@@ -533,11 +565,20 @@ export enum GeneratorIndex {
533
565
  AUTHWIT_INNER = 221354163,
534
566
  AUTHWIT_OUTER = 3283595782,
535
567
  AUTHWIT_NULLIFIER = 1239150694,
536
- SYMMETRIC_KEY = 3882206064,
537
- SYMMETRIC_KEY_2 = 4129434989,
568
+ APP_SILOED_ECDH_SHARED_SECRET = 1707851664,
569
+ ECDH_SUBKEY = 4277646631,
570
+ ECDH_FIELD_MASK = 190532684,
538
571
  PARTIAL_NOTE_VALIDITY_COMMITMENT = 623934423,
539
572
  INITIALIZATION_NULLIFIER = 1653084894,
573
+ PUBLIC_INITIALIZATION_NULLIFIER = 3342006647,
574
+ PRIVATE_INITIALIZATION_NULLIFIER = 3990889078,
540
575
  SECRET_HASH = 4199652938,
541
576
  TX_NULLIFIER = 1025801951,
542
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,
543
584
  }