@aztec/pxe 3.0.0-nightly.20251202 → 3.0.0-nightly.20251203

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.
@@ -41,4 +41,4 @@ export declare class PrivateKernelExecutionProver {
41
41
  private getVkData;
42
42
  private createPrivateCallData;
43
43
  }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9rZXJuZWxfZXhlY3V0aW9uX3Byb3Zlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByaXZhdGVfa2VybmVsL3ByaXZhdGVfa2VybmVsX2V4ZWN1dGlvbl9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBUUwsS0FBSyxpQ0FBaUMsRUFLdEMsS0FBSyxvQ0FBb0MsRUFFMUMsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBRUwsS0FBSyxzQkFBc0IsRUFDM0IsU0FBUyxFQUlWLE1BQU0sa0JBQWtCLENBQUM7QUFLMUIsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQVN0RSxNQUFNLFdBQVcsa0NBQWtDO0lBQ2pELFFBQVEsRUFBRSxPQUFPLENBQUM7SUFDbEIsa0JBQWtCLEVBQUUsT0FBTyxDQUFDO0lBQzVCLFdBQVcsRUFBRSxPQUFPLEdBQUcsaUJBQWlCLEdBQUcsTUFBTSxHQUFHLE1BQU0sQ0FBQztDQUM1RDtBQUVEOzs7OztHQUtHO0FBQ0gscUJBQWEsNEJBQTRCO0lBSXJDLE9BQU8sQ0FBQyxNQUFNO0lBQ2QsT0FBTyxDQUFDLFlBQVk7SUFDcEIsT0FBTyxDQUFDLFVBQVU7SUFMcEIsT0FBTyxDQUFDLEdBQUcsQ0FBdUQ7SUFFbEUsWUFDVSxNQUFNLEVBQUUsbUJBQW1CLEVBQzNCLFlBQVksRUFBRSxtQkFBbUIsRUFDakMsVUFBVSxVQUFRLEVBQ3hCO0lBRUo7Ozs7Ozs7Ozs7T0FVRztJQUNHLGdCQUFnQixDQUNwQixTQUFTLEVBQUUsU0FBUyxFQUNwQixlQUFlLEVBQUUsc0JBQXNCLEVBQ3ZDLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxHQUFFLGtDQUk5QyxHQUNBLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLENBcVJsRjtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLHVCQUF1QjtZQW9CakIsU0FBUztZQVNULHFCQUFxQjtDQWtDcEMifQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9rZXJuZWxfZXhlY3V0aW9uX3Byb3Zlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByaXZhdGVfa2VybmVsL3ByaXZhdGVfa2VybmVsX2V4ZWN1dGlvbl9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBUUwsS0FBSyxpQ0FBaUMsRUFLdEMsS0FBSyxvQ0FBb0MsRUFFMUMsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBRUwsS0FBSyxzQkFBc0IsRUFDM0IsU0FBUyxFQUlWLE1BQU0sa0JBQWtCLENBQUM7QUFJMUIsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQVN0RSxNQUFNLFdBQVcsa0NBQWtDO0lBQ2pELFFBQVEsRUFBRSxPQUFPLENBQUM7SUFDbEIsa0JBQWtCLEVBQUUsT0FBTyxDQUFDO0lBQzVCLFdBQVcsRUFBRSxPQUFPLEdBQUcsaUJBQWlCLEdBQUcsTUFBTSxHQUFHLE1BQU0sQ0FBQztDQUM1RDtBQUVEOzs7OztHQUtHO0FBQ0gscUJBQWEsNEJBQTRCO0lBSXJDLE9BQU8sQ0FBQyxNQUFNO0lBQ2QsT0FBTyxDQUFDLFlBQVk7SUFDcEIsT0FBTyxDQUFDLFVBQVU7SUFMcEIsT0FBTyxDQUFDLEdBQUcsQ0FBdUQ7SUFFbEUsWUFDVSxNQUFNLEVBQUUsbUJBQW1CLEVBQzNCLFlBQVksRUFBRSxtQkFBbUIsRUFDakMsVUFBVSxVQUFRLEVBQ3hCO0lBRUo7Ozs7Ozs7Ozs7T0FVRztJQUNHLGdCQUFnQixDQUNwQixTQUFTLEVBQUUsU0FBUyxFQUNwQixlQUFlLEVBQUUsc0JBQXNCLEVBQ3ZDLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxHQUFFLGtDQUk5QyxHQUNBLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLENBcVJsRjtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLHVCQUF1QjtZQW9CakIsU0FBUztZQVNULHFCQUFxQjtDQStCcEMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"private_kernel_execution_prover.d.ts","sourceRoot":"","sources":["../../src/private_kernel/private_kernel_execution_prover.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAQL,KAAK,iCAAiC,EAKtC,KAAK,oCAAoC,EAE1C,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEL,KAAK,sBAAsB,EAC3B,SAAS,EAIV,MAAM,kBAAkB,CAAC;AAK1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAStE,MAAM,WAAW,kCAAkC;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,OAAO,GAAG,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;CAC5D;AAED;;;;;GAKG;AACH,qBAAa,4BAA4B;IAIrC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,UAAU;IALpB,OAAO,CAAC,GAAG,CAAuD;IAElE,YACU,MAAM,EAAE,mBAAmB,EAC3B,YAAY,EAAE,mBAAmB,EACjC,UAAU,UAAQ,EACxB;IAEJ;;;;;;;;;;OAUG;IACG,gBAAgB,CACpB,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,sBAAsB,EACvC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,GAAE,kCAI9C,GACA,OAAO,CAAC,iCAAiC,CAAC,oCAAoC,CAAC,CAAC,CAqRlF;IAED;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;YAoBjB,SAAS;YAST,qBAAqB;CAkCpC"}
1
+ {"version":3,"file":"private_kernel_execution_prover.d.ts","sourceRoot":"","sources":["../../src/private_kernel/private_kernel_execution_prover.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAQL,KAAK,iCAAiC,EAKtC,KAAK,oCAAoC,EAE1C,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEL,KAAK,sBAAsB,EAC3B,SAAS,EAIV,MAAM,kBAAkB,CAAC;AAI1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAStE,MAAM,WAAW,kCAAkC;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,OAAO,GAAG,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;CAC5D;AAED;;;;;GAKG;AACH,qBAAa,4BAA4B;IAIrC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,UAAU;IALpB,OAAO,CAAC,GAAG,CAAuD;IAElE,YACU,MAAM,EAAE,mBAAmB,EAC3B,YAAY,EAAE,mBAAmB,EACjC,UAAU,UAAQ,EACxB;IAEJ;;;;;;;;;;OAUG;IACG,gBAAgB,CACpB,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,sBAAsB,EACvC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,GAAE,kCAI9C,GACA,OAAO,CAAC,iCAAiC,CAAC,oCAAoC,CAAC,CAAC,CAqRlF;IAED;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;YAoBjB,SAAS;YAST,qBAAqB;CA+BpC"}
@@ -11,7 +11,6 @@ import { ChonkProof } from '@aztec/stdlib/proofs';
11
11
  import { collectNoteHashLeafIndexMap, collectNoteHashNullifierCounterMap, getFinalMinRevertibleSideEffectCounter } from '@aztec/stdlib/tx';
12
12
  import { VerificationKeyAsFields, VerificationKeyData, VkData } from '@aztec/stdlib/vks';
13
13
  import { PrivateKernelResetPrivateInputsBuilder } from './hints/build_private_kernel_reset_private_inputs.js';
14
- import { computeSideEffectUniquenessHints } from './hints/compute_side_effect_uniqueness_hints.js';
15
14
  const NULL_SIMULATE_OUTPUT = {
16
15
  publicInputs: PrivateKernelCircuitPublicInputs.empty(),
17
16
  verificationKey: VerificationKeyData.empty(),
@@ -271,7 +270,6 @@ const NULL_SIMULATE_OUTPUT = {
271
270
  const functionLeafMembershipWitness = await this.oracle.getFunctionMembershipWitness(currentContractClassId, functionSelector);
272
271
  const { artifactHash: contractClassArtifactHash, publicBytecodeCommitment: contractClassPublicBytecodeCommitment } = await this.oracle.getContractClassIdPreimage(currentContractClassId);
273
272
  const updatedClassIdHints = await this.oracle.getUpdatedClassIdHints(contractAddress);
274
- const sideEffectUniquenessHints = computeSideEffectUniquenessHints(publicInputs);
275
273
  return PrivateCallData.from({
276
274
  publicInputs,
277
275
  vk,
@@ -282,8 +280,7 @@ const NULL_SIMULATE_OUTPUT = {
282
280
  saltedInitializationHash,
283
281
  functionLeafMembershipWitness,
284
282
  updatedClassIdHints
285
- }),
286
- sideEffectUniquenessHints
283
+ })
287
284
  });
288
285
  }
289
286
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/pxe",
3
- "version": "3.0.0-nightly.20251202",
3
+ "version": "3.0.0-nightly.20251203",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./server": "./dest/entrypoints/server/index.js",
@@ -61,19 +61,19 @@
61
61
  ]
62
62
  },
63
63
  "dependencies": {
64
- "@aztec/bb-prover": "3.0.0-nightly.20251202",
65
- "@aztec/bb.js": "3.0.0-nightly.20251202",
66
- "@aztec/builder": "3.0.0-nightly.20251202",
67
- "@aztec/constants": "3.0.0-nightly.20251202",
68
- "@aztec/ethereum": "3.0.0-nightly.20251202",
69
- "@aztec/foundation": "3.0.0-nightly.20251202",
70
- "@aztec/key-store": "3.0.0-nightly.20251202",
71
- "@aztec/kv-store": "3.0.0-nightly.20251202",
72
- "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251202",
73
- "@aztec/noir-types": "3.0.0-nightly.20251202",
74
- "@aztec/protocol-contracts": "3.0.0-nightly.20251202",
75
- "@aztec/simulator": "3.0.0-nightly.20251202",
76
- "@aztec/stdlib": "3.0.0-nightly.20251202",
64
+ "@aztec/bb-prover": "3.0.0-nightly.20251203",
65
+ "@aztec/bb.js": "3.0.0-nightly.20251203",
66
+ "@aztec/builder": "3.0.0-nightly.20251203",
67
+ "@aztec/constants": "3.0.0-nightly.20251203",
68
+ "@aztec/ethereum": "3.0.0-nightly.20251203",
69
+ "@aztec/foundation": "3.0.0-nightly.20251203",
70
+ "@aztec/key-store": "3.0.0-nightly.20251203",
71
+ "@aztec/kv-store": "3.0.0-nightly.20251203",
72
+ "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251203",
73
+ "@aztec/noir-types": "3.0.0-nightly.20251203",
74
+ "@aztec/protocol-contracts": "3.0.0-nightly.20251203",
75
+ "@aztec/simulator": "3.0.0-nightly.20251203",
76
+ "@aztec/stdlib": "3.0.0-nightly.20251203",
77
77
  "koa": "^2.16.1",
78
78
  "koa-router": "^13.1.1",
79
79
  "lodash.omit": "^4.5.0",
@@ -82,8 +82,8 @@
82
82
  "viem": "npm:@aztec/viem@2.38.2"
83
83
  },
84
84
  "devDependencies": {
85
- "@aztec/merkle-tree": "3.0.0-nightly.20251202",
86
- "@aztec/noir-test-contracts.js": "3.0.0-nightly.20251202",
85
+ "@aztec/merkle-tree": "3.0.0-nightly.20251203",
86
+ "@aztec/noir-test-contracts.js": "3.0.0-nightly.20251203",
87
87
  "@jest/globals": "^30.0.0",
88
88
  "@types/jest": "^30.0.0",
89
89
  "@types/lodash.omit": "^4.5.7",
@@ -35,7 +35,6 @@ import {
35
35
  import { VerificationKeyAsFields, VerificationKeyData, VkData } from '@aztec/stdlib/vks';
36
36
 
37
37
  import { PrivateKernelResetPrivateInputsBuilder } from './hints/build_private_kernel_reset_private_inputs.js';
38
- import { computeSideEffectUniquenessHints } from './hints/compute_side_effect_uniqueness_hints.js';
39
38
  import type { PrivateKernelOracle } from './private_kernel_oracle.js';
40
39
 
41
40
  const NULL_SIMULATE_OUTPUT: PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs> = {
@@ -417,8 +416,6 @@ export class PrivateKernelExecutionProver {
417
416
 
418
417
  const updatedClassIdHints = await this.oracle.getUpdatedClassIdHints(contractAddress);
419
418
 
420
- const sideEffectUniquenessHints = computeSideEffectUniquenessHints(publicInputs);
421
-
422
419
  return PrivateCallData.from({
423
420
  publicInputs,
424
421
  vk,
@@ -430,7 +427,6 @@ export class PrivateKernelExecutionProver {
430
427
  functionLeafMembershipWitness,
431
428
  updatedClassIdHints,
432
429
  }),
433
- sideEffectUniquenessHints,
434
430
  });
435
431
  }
436
432
  }
@@ -1,3 +0,0 @@
1
- import { type PrivateCircuitPublicInputs, SideEffectUniquenessHints } from '@aztec/stdlib/kernel';
2
- export declare function computeSideEffectUniquenessHints(publicInputs: PrivateCircuitPublicInputs): SideEffectUniquenessHints;
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZV9zaWRlX2VmZmVjdF91bmlxdWVuZXNzX2hpbnRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJpdmF0ZV9rZXJuZWwvaGludHMvY29tcHV0ZV9zaWRlX2VmZmVjdF91bmlxdWVuZXNzX2hpbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdCQSxPQUFPLEVBR0wsS0FBSywwQkFBMEIsRUFFL0IseUJBQXlCLEVBQzFCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsd0JBQWdCLGdDQUFnQyxDQUFDLFlBQVksRUFBRSwwQkFBMEIsR0FBRyx5QkFBeUIsQ0F3SHBIIn0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"compute_side_effect_uniqueness_hints.d.ts","sourceRoot":"","sources":["../../../src/private_kernel/hints/compute_side_effect_uniqueness_hints.ts"],"names":[],"mappings":"AAwBA,OAAO,EAGL,KAAK,0BAA0B,EAE/B,yBAAyB,EAC1B,MAAM,sBAAsB,CAAC;AAE9B,wBAAgB,gCAAgC,CAAC,YAAY,EAAE,0BAA0B,GAAG,yBAAyB,CAwHpH"}
@@ -1,48 +0,0 @@
1
- import { GLOBAL_INDEX_CONTRACT_CLASS_LOG_HASH_OFFSET, GLOBAL_INDEX_L2_TO_L1_MSG_OFFSET, GLOBAL_INDEX_NOTE_HASH_OFFSET, GLOBAL_INDEX_NOTE_HASH_READ_REQUEST_OFFSET, GLOBAL_INDEX_NULLIFIER_OFFSET, GLOBAL_INDEX_NULLIFIER_READ_REQUEST_OFFSET, GLOBAL_INDEX_PRIVATE_CALL_REQUEST_OFFSET, GLOBAL_INDEX_PRIVATE_LOG_OFFSET, GLOBAL_INDEX_PUBLIC_CALL_REQUEST_OFFSET, MAX_CONTRACT_CLASS_LOGS_PER_CALL, MAX_ENQUEUED_CALLS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_NOTE_HASHES_PER_CALL, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PRIVATE_LOGS_PER_CALL, TOTAL_COUNTED_SIDE_EFFECTS_PER_CALL } from '@aztec/constants';
2
- import { makeTuple } from '@aztec/foundation/array';
3
- import { padArrayEnd } from '@aztec/foundation/collection';
4
- import { SideEffectCounterRange, SideEffectUniquenessHints } from '@aztec/stdlib/kernel';
5
- export function computeSideEffectUniquenessHints(publicInputs) {
6
- let sideEffectRanges = [];
7
- sideEffectRanges = sideEffectRanges.concat(createRangesFromClaimedLengthArray(publicInputs.noteHashReadRequests, GLOBAL_INDEX_NOTE_HASH_READ_REQUEST_OFFSET, createRangeFromCountedItem));
8
- sideEffectRanges = sideEffectRanges.concat(createRangesFromClaimedLengthArray(publicInputs.nullifierReadRequests, GLOBAL_INDEX_NULLIFIER_READ_REQUEST_OFFSET, createRangeFromCountedItem));
9
- sideEffectRanges = sideEffectRanges.concat(createRangesFromClaimedLengthArray(publicInputs.noteHashes, GLOBAL_INDEX_NOTE_HASH_OFFSET, createRangeFromCountedItem));
10
- sideEffectRanges = sideEffectRanges.concat(createRangesFromClaimedLengthArray(publicInputs.nullifiers, GLOBAL_INDEX_NULLIFIER_OFFSET, createRangeFromCountedItem));
11
- sideEffectRanges = sideEffectRanges.concat(createRangesFromClaimedLengthArray(publicInputs.privateCallRequests, GLOBAL_INDEX_PRIVATE_CALL_REQUEST_OFFSET, createRangeFromPrivateCallRequest));
12
- sideEffectRanges = sideEffectRanges.concat(createRangesFromClaimedLengthArray(publicInputs.publicCallRequests, GLOBAL_INDEX_PUBLIC_CALL_REQUEST_OFFSET, createRangeFromCountedItem));
13
- sideEffectRanges = sideEffectRanges.concat(createRangesFromClaimedLengthArray(publicInputs.l2ToL1Msgs, GLOBAL_INDEX_L2_TO_L1_MSG_OFFSET, createRangeFromCountedItem));
14
- sideEffectRanges = sideEffectRanges.concat(createRangesFromClaimedLengthArray(publicInputs.privateLogs, GLOBAL_INDEX_PRIVATE_LOG_OFFSET, createRangeFromCountedItem));
15
- sideEffectRanges = sideEffectRanges.concat(createRangesFromClaimedLengthArray(publicInputs.contractClassLogsHashes, GLOBAL_INDEX_CONTRACT_CLASS_LOG_HASH_OFFSET, createRangeFromCountedItem));
16
- sideEffectRanges.sort((a, b)=>a.start - b.start);
17
- const sideEffectRangeIndices = makeTuple(TOTAL_COUNTED_SIDE_EFFECTS_PER_CALL, ()=>0);
18
- for(let i = 0; i < sideEffectRanges.length; i++){
19
- const range = sideEffectRanges[i];
20
- sideEffectRangeIndices[range.sideEffectGlobalIndex] = i;
21
- }
22
- const hints = SideEffectUniquenessHints.from({
23
- sideEffectRanges: padArrayEnd(sideEffectRanges, SideEffectCounterRange.empty(), TOTAL_COUNTED_SIDE_EFFECTS_PER_CALL),
24
- noteHashReadRequestIndices: makeTuple(MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, (i)=>sideEffectRangeIndices[i + GLOBAL_INDEX_NOTE_HASH_READ_REQUEST_OFFSET]),
25
- nullifierReadRequestIndices: makeTuple(MAX_NULLIFIER_READ_REQUESTS_PER_CALL, (i)=>sideEffectRangeIndices[i + GLOBAL_INDEX_NULLIFIER_READ_REQUEST_OFFSET]),
26
- noteHashesIndices: makeTuple(MAX_NOTE_HASHES_PER_CALL, (i)=>sideEffectRangeIndices[i + GLOBAL_INDEX_NOTE_HASH_OFFSET]),
27
- nullifiersIndices: makeTuple(MAX_NULLIFIERS_PER_CALL, (i)=>sideEffectRangeIndices[i + GLOBAL_INDEX_NULLIFIER_OFFSET]),
28
- privateCallRequestsIndices: makeTuple(MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, (i)=>sideEffectRangeIndices[i + GLOBAL_INDEX_PRIVATE_CALL_REQUEST_OFFSET]),
29
- publicCallRequestsIndices: makeTuple(MAX_ENQUEUED_CALLS_PER_CALL, (i)=>sideEffectRangeIndices[i + GLOBAL_INDEX_PUBLIC_CALL_REQUEST_OFFSET]),
30
- l2ToL1MsgsIndices: makeTuple(MAX_L2_TO_L1_MSGS_PER_CALL, (i)=>sideEffectRangeIndices[i + GLOBAL_INDEX_L2_TO_L1_MSG_OFFSET]),
31
- privateLogsIndices: makeTuple(MAX_PRIVATE_LOGS_PER_CALL, (i)=>sideEffectRangeIndices[i + GLOBAL_INDEX_PRIVATE_LOG_OFFSET]),
32
- contractClassLogsHashesIndices: makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_CALL, (i)=>sideEffectRangeIndices[i + GLOBAL_INDEX_CONTRACT_CLASS_LOG_HASH_OFFSET])
33
- });
34
- return hints;
35
- }
36
- function createRangesFromClaimedLengthArray(array, globalIndexOffset, rangeConstructor) {
37
- const ranges = [];
38
- for(let i = 0; i < array.claimedLength; i++){
39
- ranges.push(rangeConstructor(array.array[i], globalIndexOffset + i));
40
- }
41
- return ranges;
42
- }
43
- function createRangeFromCountedItem(item, globalIndex) {
44
- return new SideEffectCounterRange(item.counter, item.counter, globalIndex);
45
- }
46
- function createRangeFromPrivateCallRequest(item, globalIndex) {
47
- return new SideEffectCounterRange(item.startSideEffectCounter, item.endSideEffectCounter, globalIndex);
48
- }
@@ -1,173 +0,0 @@
1
- import {
2
- GLOBAL_INDEX_CONTRACT_CLASS_LOG_HASH_OFFSET,
3
- GLOBAL_INDEX_L2_TO_L1_MSG_OFFSET,
4
- GLOBAL_INDEX_NOTE_HASH_OFFSET,
5
- GLOBAL_INDEX_NOTE_HASH_READ_REQUEST_OFFSET,
6
- GLOBAL_INDEX_NULLIFIER_OFFSET,
7
- GLOBAL_INDEX_NULLIFIER_READ_REQUEST_OFFSET,
8
- GLOBAL_INDEX_PRIVATE_CALL_REQUEST_OFFSET,
9
- GLOBAL_INDEX_PRIVATE_LOG_OFFSET,
10
- GLOBAL_INDEX_PUBLIC_CALL_REQUEST_OFFSET,
11
- MAX_CONTRACT_CLASS_LOGS_PER_CALL,
12
- MAX_ENQUEUED_CALLS_PER_CALL,
13
- MAX_L2_TO_L1_MSGS_PER_CALL,
14
- MAX_NOTE_HASHES_PER_CALL,
15
- MAX_NOTE_HASH_READ_REQUESTS_PER_CALL,
16
- MAX_NULLIFIERS_PER_CALL,
17
- MAX_NULLIFIER_READ_REQUESTS_PER_CALL,
18
- MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,
19
- MAX_PRIVATE_LOGS_PER_CALL,
20
- TOTAL_COUNTED_SIDE_EFFECTS_PER_CALL,
21
- } from '@aztec/constants';
22
- import { makeTuple } from '@aztec/foundation/array';
23
- import { padArrayEnd } from '@aztec/foundation/collection';
24
- import type { Serializable } from '@aztec/foundation/serialize';
25
- import {
26
- ClaimedLengthArray,
27
- PrivateCallRequest,
28
- type PrivateCircuitPublicInputs,
29
- SideEffectCounterRange,
30
- SideEffectUniquenessHints,
31
- } from '@aztec/stdlib/kernel';
32
-
33
- export function computeSideEffectUniquenessHints(publicInputs: PrivateCircuitPublicInputs): SideEffectUniquenessHints {
34
- let sideEffectRanges: SideEffectCounterRange[] = [];
35
-
36
- sideEffectRanges = sideEffectRanges.concat(
37
- createRangesFromClaimedLengthArray(
38
- publicInputs.noteHashReadRequests,
39
- GLOBAL_INDEX_NOTE_HASH_READ_REQUEST_OFFSET,
40
- createRangeFromCountedItem,
41
- ),
42
- );
43
- sideEffectRanges = sideEffectRanges.concat(
44
- createRangesFromClaimedLengthArray(
45
- publicInputs.nullifierReadRequests,
46
- GLOBAL_INDEX_NULLIFIER_READ_REQUEST_OFFSET,
47
- createRangeFromCountedItem,
48
- ),
49
- );
50
- sideEffectRanges = sideEffectRanges.concat(
51
- createRangesFromClaimedLengthArray(
52
- publicInputs.noteHashes,
53
- GLOBAL_INDEX_NOTE_HASH_OFFSET,
54
- createRangeFromCountedItem,
55
- ),
56
- );
57
- sideEffectRanges = sideEffectRanges.concat(
58
- createRangesFromClaimedLengthArray(
59
- publicInputs.nullifiers,
60
- GLOBAL_INDEX_NULLIFIER_OFFSET,
61
- createRangeFromCountedItem,
62
- ),
63
- );
64
- sideEffectRanges = sideEffectRanges.concat(
65
- createRangesFromClaimedLengthArray(
66
- publicInputs.privateCallRequests,
67
- GLOBAL_INDEX_PRIVATE_CALL_REQUEST_OFFSET,
68
- createRangeFromPrivateCallRequest,
69
- ),
70
- );
71
- sideEffectRanges = sideEffectRanges.concat(
72
- createRangesFromClaimedLengthArray(
73
- publicInputs.publicCallRequests,
74
- GLOBAL_INDEX_PUBLIC_CALL_REQUEST_OFFSET,
75
- createRangeFromCountedItem,
76
- ),
77
- );
78
- sideEffectRanges = sideEffectRanges.concat(
79
- createRangesFromClaimedLengthArray(
80
- publicInputs.l2ToL1Msgs,
81
- GLOBAL_INDEX_L2_TO_L1_MSG_OFFSET,
82
- createRangeFromCountedItem,
83
- ),
84
- );
85
- sideEffectRanges = sideEffectRanges.concat(
86
- createRangesFromClaimedLengthArray(
87
- publicInputs.privateLogs,
88
- GLOBAL_INDEX_PRIVATE_LOG_OFFSET,
89
- createRangeFromCountedItem,
90
- ),
91
- );
92
- sideEffectRanges = sideEffectRanges.concat(
93
- createRangesFromClaimedLengthArray(
94
- publicInputs.contractClassLogsHashes,
95
- GLOBAL_INDEX_CONTRACT_CLASS_LOG_HASH_OFFSET,
96
- createRangeFromCountedItem,
97
- ),
98
- );
99
-
100
- sideEffectRanges.sort((a, b) => a.start - b.start);
101
-
102
- const sideEffectRangeIndices = makeTuple(TOTAL_COUNTED_SIDE_EFFECTS_PER_CALL, () => 0);
103
- for (let i = 0; i < sideEffectRanges.length; i++) {
104
- const range = sideEffectRanges[i];
105
- sideEffectRangeIndices[range.sideEffectGlobalIndex] = i;
106
- }
107
-
108
- const hints = SideEffectUniquenessHints.from({
109
- sideEffectRanges: padArrayEnd(
110
- sideEffectRanges,
111
- SideEffectCounterRange.empty(),
112
- TOTAL_COUNTED_SIDE_EFFECTS_PER_CALL,
113
- ),
114
- noteHashReadRequestIndices: makeTuple(
115
- MAX_NOTE_HASH_READ_REQUESTS_PER_CALL,
116
- i => sideEffectRangeIndices[i + GLOBAL_INDEX_NOTE_HASH_READ_REQUEST_OFFSET],
117
- ),
118
- nullifierReadRequestIndices: makeTuple(
119
- MAX_NULLIFIER_READ_REQUESTS_PER_CALL,
120
- i => sideEffectRangeIndices[i + GLOBAL_INDEX_NULLIFIER_READ_REQUEST_OFFSET],
121
- ),
122
- noteHashesIndices: makeTuple(
123
- MAX_NOTE_HASHES_PER_CALL,
124
- i => sideEffectRangeIndices[i + GLOBAL_INDEX_NOTE_HASH_OFFSET],
125
- ),
126
- nullifiersIndices: makeTuple(
127
- MAX_NULLIFIERS_PER_CALL,
128
- i => sideEffectRangeIndices[i + GLOBAL_INDEX_NULLIFIER_OFFSET],
129
- ),
130
- privateCallRequestsIndices: makeTuple(
131
- MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,
132
- i => sideEffectRangeIndices[i + GLOBAL_INDEX_PRIVATE_CALL_REQUEST_OFFSET],
133
- ),
134
- publicCallRequestsIndices: makeTuple(
135
- MAX_ENQUEUED_CALLS_PER_CALL,
136
- i => sideEffectRangeIndices[i + GLOBAL_INDEX_PUBLIC_CALL_REQUEST_OFFSET],
137
- ),
138
- l2ToL1MsgsIndices: makeTuple(
139
- MAX_L2_TO_L1_MSGS_PER_CALL,
140
- i => sideEffectRangeIndices[i + GLOBAL_INDEX_L2_TO_L1_MSG_OFFSET],
141
- ),
142
- privateLogsIndices: makeTuple(
143
- MAX_PRIVATE_LOGS_PER_CALL,
144
- i => sideEffectRangeIndices[i + GLOBAL_INDEX_PRIVATE_LOG_OFFSET],
145
- ),
146
- contractClassLogsHashesIndices: makeTuple(
147
- MAX_CONTRACT_CLASS_LOGS_PER_CALL,
148
- i => sideEffectRangeIndices[i + GLOBAL_INDEX_CONTRACT_CLASS_LOG_HASH_OFFSET],
149
- ),
150
- });
151
-
152
- return hints;
153
- }
154
-
155
- function createRangesFromClaimedLengthArray<T extends Serializable, N extends number>(
156
- array: ClaimedLengthArray<T, N>,
157
- globalIndexOffset: number,
158
- rangeConstructor: (item: T, globalIndex: number) => SideEffectCounterRange,
159
- ): SideEffectCounterRange[] {
160
- const ranges = [];
161
- for (let i = 0; i < array.claimedLength; i++) {
162
- ranges.push(rangeConstructor(array.array[i], globalIndexOffset + i));
163
- }
164
- return ranges;
165
- }
166
-
167
- function createRangeFromCountedItem(item: { counter: number }, globalIndex: number): SideEffectCounterRange {
168
- return new SideEffectCounterRange(item.counter, item.counter, globalIndex);
169
- }
170
-
171
- function createRangeFromPrivateCallRequest(item: PrivateCallRequest, globalIndex: number): SideEffectCounterRange {
172
- return new SideEffectCounterRange(item.startSideEffectCounter, item.endSideEffectCounter, globalIndex);
173
- }