@aztec/pxe 0.48.0 → 0.49.2

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.
@@ -6,6 +6,7 @@ import { type Network } from '@aztec/types/network';
6
6
  export interface BBProverConfig {
7
7
  bbWorkingDirectory?: string;
8
8
  bbBinaryPath?: string;
9
+ bbSkipCleanup?: boolean;
9
10
  }
10
11
  /**
11
12
  * Configuration settings for the prover factory
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAMpD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AACD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,2DAA2D;IAC3D,wBAAwB,EAAE,MAAM,CAAC;IACjC,uDAAuD;IACvD,eAAe,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,kBAAkB,GAAG,cAAc,CAAC;AAE/E,MAAM,MAAM,aAAa,GAAG;IAC1B,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,gBAAgB,CA4BlE,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAEtD;AAED,eAAO,MAAM,oBAAoB,EAAE,kBAAkB,CAAC,aAAa,CAclE,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,kBAAkB,CAAC,aAAa,GAAG,gBAAgB,CASrF,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,gBAAgB,CAQnE;AAED;;GAEG;AACH,wBAAgB,cAAc;;;EAK7B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAMpD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AACD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,2DAA2D;IAC3D,wBAAwB,EAAE,MAAM,CAAC;IACjC,uDAAuD;IACvD,eAAe,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,kBAAkB,GAAG,cAAc,CAAC;AAE/E,MAAM,MAAM,aAAa,GAAG;IAC1B,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,gBAAgB,CAiClE,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAEtD;AAED,eAAO,MAAM,oBAAoB,EAAE,kBAAkB,CAAC,aAAa,CAclE,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,kBAAkB,CAAC,aAAa,GAAG,gBAAgB,CASrF,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,gBAAgB,CAQnE;AAED;;GAEG;AACH,wBAAgB,cAAc;;;EAK7B"}
@@ -26,6 +26,11 @@ export const pxeConfigMappings = {
26
26
  env: 'BB_WORKING_DIRECTORY',
27
27
  description: 'Working directory for the BB binary',
28
28
  },
29
+ bbSkipCleanup: {
30
+ env: 'BB_SKIP_CLEANUP',
31
+ description: 'True to skip cleanup of temporary files for debugging purposes',
32
+ ...booleanConfigHelper(),
33
+ },
29
34
  proverEnabled: {
30
35
  env: 'PXE_PROVER_ENABLED',
31
36
  description: 'Enable real proofs',
@@ -83,4 +88,4 @@ export function getPackageInfo() {
83
88
  const { version, name } = JSON.parse(readFileSync(packageJsonPath).toString());
84
89
  return { version, name };
85
90
  }
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFFTCxtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLGtCQUFrQixHQUNuQixNQUFNLDBCQUEwQixDQUFDO0FBR2xDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEtBQUssQ0FBQztBQXdDcEMsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQXlDO0lBQ3JFLHdCQUF3QixFQUFFO1FBQ3hCLEdBQUcsRUFBRSwrQkFBK0I7UUFDcEMsV0FBVyxFQUFFLHNEQUFzRDtRQUNuRSxHQUFHLGtCQUFrQixDQUFDLElBQUssQ0FBQztLQUM3QjtJQUNELGVBQWUsRUFBRTtRQUNmLEdBQUcsRUFBRSx1QkFBdUI7UUFDNUIsR0FBRyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQztRQUMzQyxXQUFXLEVBQUUsa0RBQWtEO0tBQ2hFO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsR0FBRyxFQUFFLG9CQUFvQjtRQUN6QixXQUFXLEVBQUUsMkRBQTJEO0tBQ3pFO0lBQ0QsWUFBWSxFQUFFO1FBQ1osR0FBRyxFQUFFLGdCQUFnQjtRQUNyQixXQUFXLEVBQUUsdUJBQXVCO0tBQ3JDO0lBQ0Qsa0JBQWtCLEVBQUU7UUFDbEIsR0FBRyxFQUFFLHNCQUFzQjtRQUMzQixXQUFXLEVBQUUscUNBQXFDO0tBQ25EO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsR0FBRyxFQUFFLG9CQUFvQjtRQUN6QixXQUFXLEVBQUUsb0JBQW9CO1FBQ2pDLEdBQUcsbUJBQW1CLEVBQUU7S0FDekI7Q0FDRixDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CO0lBQ2pDLE9BQU8scUJBQXFCLENBQW1CLGlCQUFpQixDQUFDLENBQUM7QUFDcEUsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFzQztJQUNyRSxPQUFPLEVBQUU7UUFDUCxHQUFHLEVBQUUsU0FBUztRQUNkLFFBQVEsRUFBRSxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsR0FBYztRQUN6QyxXQUFXLEVBQUUsbURBQW1EO0tBQ2pFO0lBQ0QsTUFBTSxFQUFFO1FBQ04sR0FBRyxFQUFFLFNBQVM7UUFDZCxXQUFXLEVBQUUsaURBQWlEO0tBQy9EO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsR0FBRyxFQUFFLGdCQUFnQjtRQUNyQixXQUFXLEVBQUUscUNBQXFDO0tBQ25EO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUF5RDtJQUN4RixHQUFHLGlCQUFpQjtJQUNwQixHQUFHLG9CQUFvQjtJQUN2QixhQUFhLEVBQUU7UUFDYixHQUFHLEVBQUUsb0JBQW9CO1FBQ3pCLFFBQVEsRUFBRSxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPO1FBQ3ZGLFdBQVcsRUFBRSxvQkFBb0I7UUFDakMsU0FBUyxFQUFFLElBQUk7S0FDaEI7Q0FDRixDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLE1BQU0sU0FBUyxHQUFHLG1CQUFtQixFQUFFLENBQUM7SUFDeEMsTUFBTSxVQUFVLEdBQUcscUJBQXFCLENBQWdCLG9CQUFvQixDQUFDLENBQUM7SUFDOUUsT0FBTztRQUNMLEdBQUcsU0FBUztRQUNaLEdBQUcsVUFBVTtRQUNiLGFBQWEsRUFBRSxTQUFTLENBQUMsYUFBYSxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTztLQUMvRCxDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGNBQWM7SUFDNUIsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLENBQUM7SUFDL0YsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBRS9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDM0IsQ0FBQyJ9
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFFTCxtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLGtCQUFrQixHQUNuQixNQUFNLDBCQUEwQixDQUFDO0FBR2xDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEtBQUssQ0FBQztBQXlDcEMsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQXlDO0lBQ3JFLHdCQUF3QixFQUFFO1FBQ3hCLEdBQUcsRUFBRSwrQkFBK0I7UUFDcEMsV0FBVyxFQUFFLHNEQUFzRDtRQUNuRSxHQUFHLGtCQUFrQixDQUFDLElBQUssQ0FBQztLQUM3QjtJQUNELGVBQWUsRUFBRTtRQUNmLEdBQUcsRUFBRSx1QkFBdUI7UUFDNUIsR0FBRyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQztRQUMzQyxXQUFXLEVBQUUsa0RBQWtEO0tBQ2hFO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsR0FBRyxFQUFFLG9CQUFvQjtRQUN6QixXQUFXLEVBQUUsMkRBQTJEO0tBQ3pFO0lBQ0QsWUFBWSxFQUFFO1FBQ1osR0FBRyxFQUFFLGdCQUFnQjtRQUNyQixXQUFXLEVBQUUsdUJBQXVCO0tBQ3JDO0lBQ0Qsa0JBQWtCLEVBQUU7UUFDbEIsR0FBRyxFQUFFLHNCQUFzQjtRQUMzQixXQUFXLEVBQUUscUNBQXFDO0tBQ25EO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsR0FBRyxFQUFFLGlCQUFpQjtRQUN0QixXQUFXLEVBQUUsZ0VBQWdFO1FBQzdFLEdBQUcsbUJBQW1CLEVBQUU7S0FDekI7SUFDRCxhQUFhLEVBQUU7UUFDYixHQUFHLEVBQUUsb0JBQW9CO1FBQ3pCLFdBQVcsRUFBRSxvQkFBb0I7UUFDakMsR0FBRyxtQkFBbUIsRUFBRTtLQUN6QjtDQUNGLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsT0FBTyxxQkFBcUIsQ0FBbUIsaUJBQWlCLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQXNDO0lBQ3JFLE9BQU8sRUFBRTtRQUNQLEdBQUcsRUFBRSxTQUFTO1FBQ2QsUUFBUSxFQUFFLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxHQUFjO1FBQ3pDLFdBQVcsRUFBRSxtREFBbUQ7S0FDakU7SUFDRCxNQUFNLEVBQUU7UUFDTixHQUFHLEVBQUUsU0FBUztRQUNkLFdBQVcsRUFBRSxpREFBaUQ7S0FDL0Q7SUFDRCxPQUFPLEVBQUU7UUFDUCxHQUFHLEVBQUUsZ0JBQWdCO1FBQ3JCLFdBQVcsRUFBRSxxQ0FBcUM7S0FDbkQ7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQXlEO0lBQ3hGLEdBQUcsaUJBQWlCO0lBQ3BCLEdBQUcsb0JBQW9CO0lBQ3ZCLGFBQWEsRUFBRTtRQUNiLEdBQUcsRUFBRSxvQkFBb0I7UUFDekIsUUFBUSxFQUFFLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU87UUFDdkYsV0FBVyxFQUFFLG9CQUFvQjtRQUNqQyxTQUFTLEVBQUUsSUFBSTtLQUNoQjtDQUNGLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sVUFBVSxnQkFBZ0I7SUFDOUIsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztJQUN4QyxNQUFNLFVBQVUsR0FBRyxxQkFBcUIsQ0FBZ0Isb0JBQW9CLENBQUMsQ0FBQztJQUM5RSxPQUFPO1FBQ0wsR0FBRyxTQUFTO1FBQ1osR0FBRyxVQUFVO1FBQ2IsYUFBYSxFQUFFLFNBQVMsQ0FBQyxhQUFhLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPO0tBQy9ELENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYztJQUM1QixNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztJQUMvRixNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFFL0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUMzQixDQUFDIn0=
@@ -1,5 +1,5 @@
1
1
  import { type PrivateKernelData, type PrivateKernelResetCircuitPrivateInputsVariants } from '@aztec/circuits.js';
2
2
  import type { ExecutionResult } from '@aztec/simulator';
3
3
  import { type ProvingDataOracle } from '../proving_data_oracle.js';
4
- export declare function buildPrivateKernelResetInputs(executionStack: ExecutionResult[], previousKernelData: PrivateKernelData, noteHashLeafIndexMap: Map<bigint, bigint>, noteHashNullifierCounterMap: Map<number, number>, validationRequestsSplitCounter: number, oracle: ProvingDataOracle): Promise<PrivateKernelResetCircuitPrivateInputsVariants>;
4
+ export declare function buildPrivateKernelResetInputs(executionStack: ExecutionResult[], previousKernelData: PrivateKernelData, noteHashLeafIndexMap: Map<bigint, bigint>, noteHashNullifierCounterMap: Map<number, number>, validationRequestsSplitCounter: number, shouldSilo: boolean, oracle: ProvingDataOracle): Promise<PrivateKernelResetCircuitPrivateInputsVariants>;
5
5
  //# sourceMappingURL=build_private_kernel_reset_hints.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build_private_kernel_reset_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel_prover/hints/build_private_kernel_reset_hints.ts"],"names":[],"mappings":"AAAA,OAAO,EAWL,KAAK,iBAAiB,EAEtB,KAAK,8CAA8C,EAWpD,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA2DnE,wBAAsB,6BAA6B,CACjD,cAAc,EAAE,eAAe,EAAE,EACjC,kBAAkB,EAAE,iBAAiB,EACrC,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACzC,2BAA2B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChD,8BAA8B,EAAE,MAAM,EACtC,MAAM,EAAE,iBAAiB,2DA6G1B"}
1
+ {"version":3,"file":"build_private_kernel_reset_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel_prover/hints/build_private_kernel_reset_hints.ts"],"names":[],"mappings":"AAAA,OAAO,EAWL,KAAK,iBAAiB,EAEtB,KAAK,8CAA8C,EAYpD,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA6DnE,wBAAsB,6BAA6B,CACjD,cAAc,EAAE,eAAe,EAAE,EACjC,kBAAkB,EAAE,iBAAiB,EACrC,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACzC,2BAA2B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChD,8BAA8B,EAAE,MAAM,EACtC,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,iBAAiB,2DA+H1B"}
@@ -1,4 +1,4 @@
1
- import { KeyValidationHint, MAX_KEY_VALIDATION_REQUESTS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX, MembershipWitness, NULLIFIER_TREE_HEIGHT, PRIVATE_RESET_VARIANTS, PrivateKernelResetCircuitPrivateInputs, PrivateKernelResetHints, ScopedNoteHash, ScopedNullifier, ScopedReadRequest, buildNoteHashReadRequestHints, buildNullifierReadRequestHints, buildTransientDataHints, getNonEmptyItems, } from '@aztec/circuits.js';
1
+ import { KeyValidationHint, MAX_KEY_VALIDATION_REQUESTS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX, MembershipWitness, NULLIFIER_TREE_HEIGHT, PRIVATE_RESET_VARIANTS, PrivateKernelResetCircuitPrivateInputs, PrivateKernelResetHints, ScopedNoteHash, ScopedNullifier, ScopedReadRequest, buildNoteHashReadRequestHints, buildNullifierReadRequestHints, buildTransientDataHints, countAccumulatedItems, getNonEmptyItems, } from '@aztec/circuits.js';
2
2
  import { makeTuple } from '@aztec/foundation/array';
3
3
  function getNullifierReadRequestHints(nullifierReadRequests, nullifiers, oracle, sizePending, sizeSettled, futureNullifiers) {
4
4
  const getNullifierMembershipWitness = async (nullifier) => {
@@ -15,7 +15,7 @@ function getNullifierReadRequestHints(nullifierReadRequests, nullifiers, oracle,
15
15
  return buildNullifierReadRequestHints({ getNullifierMembershipWitness }, nullifierReadRequests, nullifiers, sizePending, sizeSettled, futureNullifiers);
16
16
  }
17
17
  async function getMasterSecretKeysAndAppKeyGenerators(keyValidationRequests, oracle) {
18
- const keysHints = makeTuple(MAX_KEY_VALIDATION_REQUESTS_PER_TX, KeyValidationHint.empty);
18
+ const keysHints = makeTuple(MAX_KEY_VALIDATION_REQUESTS_PER_TX, () => KeyValidationHint.nada(MAX_KEY_VALIDATION_REQUESTS_PER_TX));
19
19
  let keyIndex = 0;
20
20
  for (let i = 0; i < keyValidationRequests.length; ++i) {
21
21
  const request = keyValidationRequests[i].request;
@@ -31,7 +31,7 @@ async function getMasterSecretKeysAndAppKeyGenerators(keyValidationRequests, ora
31
31
  keysHints,
32
32
  };
33
33
  }
34
- export async function buildPrivateKernelResetInputs(executionStack, previousKernelData, noteHashLeafIndexMap, noteHashNullifierCounterMap, validationRequestsSplitCounter, oracle) {
34
+ export async function buildPrivateKernelResetInputs(executionStack, previousKernelData, noteHashLeafIndexMap, noteHashNullifierCounterMap, validationRequestsSplitCounter, shouldSilo, oracle) {
35
35
  const publicInputs = previousKernelData.publicInputs;
36
36
  // Use max sizes, they will be trimmed down later.
37
37
  const futureNoteHashes = collectNested(executionStack, executionResult => {
@@ -47,15 +47,28 @@ export async function buildPrivateKernelResetInputs(executionStack, previousKern
47
47
  const { keysCount, keysHints } = await getMasterSecretKeysAndAppKeyGenerators(publicInputs.validationRequests.scopedKeyValidationRequestsAndGenerators, oracle);
48
48
  const futureNoteHashReads = collectNestedReadRequests(executionStack, executionResult => executionResult.callStackItem.publicInputs.noteHashReadRequests);
49
49
  const futureNullifierReads = collectNestedReadRequests(executionStack, executionResult => executionResult.callStackItem.publicInputs.nullifierReadRequests);
50
- const [transientNullifierIndexesForNoteHashes, transientNoteHashIndexesForNullifiers] = buildTransientDataHints(publicInputs.end.noteHashes, publicInputs.end.nullifiers, futureNoteHashReads, futureNullifierReads, noteHashNullifierCounterMap, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX);
50
+ const noteHashes = publicInputs.end.noteHashes;
51
+ const nullifiers = publicInputs.end.nullifiers;
52
+ const { numTransientData, hints: transientDataIndexHints } = buildTransientDataHints(noteHashes, nullifiers, futureNoteHashReads, futureNullifierReads, noteHashNullifierCounterMap, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX);
53
+ const remainingNoteHashes = countAccumulatedItems(noteHashes) - numTransientData;
54
+ const remainingNullifiers = countAccumulatedItems(nullifiers) - numTransientData;
55
+ const numEncryptedLogHashes = countAccumulatedItems(publicInputs.end.encryptedLogsHashes);
51
56
  let privateInputs;
52
57
  for (const [sizeTag, hintSizes] of Object.entries(PRIVATE_RESET_VARIANTS)) {
58
+ const noSiloing = !hintSizes.NOTE_HASH_SILOING_AMOUNT &&
59
+ !hintSizes.NULLIFIER_SILOING_AMOUNT &&
60
+ !hintSizes.ENCRYPTED_LOG_SILOING_AMOUNT;
61
+ const enoughSiloing = hintSizes.NOTE_HASH_SILOING_AMOUNT >= remainingNoteHashes &&
62
+ hintSizes.NULLIFIER_SILOING_AMOUNT >= remainingNullifiers &&
63
+ hintSizes.ENCRYPTED_LOG_SILOING_AMOUNT >= numEncryptedLogHashes;
53
64
  if (hintSizes.NOTE_HASH_PENDING_AMOUNT >= noteHashPendingReadHints &&
54
65
  hintSizes.NOTE_HASH_SETTLED_AMOUNT >= noteHashSettledReadHints &&
55
66
  hintSizes.NULLIFIER_PENDING_AMOUNT >= nullifierPendingReadHints &&
56
67
  hintSizes.NULLIFIER_SETTLED_AMOUNT >= nullifierSettledReadHints &&
57
- hintSizes.NULLIFIER_KEYS >= keysCount) {
58
- privateInputs = new PrivateKernelResetCircuitPrivateInputs(previousKernelData, new PrivateKernelResetHints(transientNullifierIndexesForNoteHashes, transientNoteHashIndexesForNullifiers, noteHashReadRequestHints, nullifierReadRequestHints, keysHints, validationRequestsSplitCounter).trimToSizes(hintSizes.NOTE_HASH_PENDING_AMOUNT, hintSizes.NOTE_HASH_SETTLED_AMOUNT, hintSizes.NULLIFIER_PENDING_AMOUNT, hintSizes.NULLIFIER_SETTLED_AMOUNT, hintSizes.NULLIFIER_KEYS), sizeTag);
68
+ hintSizes.NULLIFIER_KEYS >= keysCount &&
69
+ hintSizes.TRANSIENT_DATA_AMOUNT >= numTransientData &&
70
+ ((!shouldSilo && noSiloing) || (shouldSilo && enoughSiloing))) {
71
+ privateInputs = new PrivateKernelResetCircuitPrivateInputs(previousKernelData, new PrivateKernelResetHints(noteHashReadRequestHints, nullifierReadRequestHints, keysHints, transientDataIndexHints, validationRequestsSplitCounter).trimToSizes(hintSizes.NOTE_HASH_PENDING_AMOUNT, hintSizes.NOTE_HASH_SETTLED_AMOUNT, hintSizes.NULLIFIER_PENDING_AMOUNT, hintSizes.NULLIFIER_SETTLED_AMOUNT, hintSizes.NULLIFIER_KEYS, hintSizes.TRANSIENT_DATA_AMOUNT), sizeTag);
59
72
  break;
60
73
  }
61
74
  }
@@ -74,4 +87,4 @@ function collectNestedReadRequests(executionStack, extractReadRequests) {
74
87
  return nonEmptyReadRequests.map(readRequest => new ScopedReadRequest(readRequest, executionResult.callStackItem.publicInputs.callContext.storageContractAddress));
75
88
  });
76
89
  }
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRfcHJpdmF0ZV9rZXJuZWxfcmVzZXRfaGludHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMva2VybmVsX3Byb3Zlci9oaW50cy9idWlsZF9wcml2YXRlX2tlcm5lbF9yZXNldF9oaW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLGtDQUFrQyxFQUNsQyxzQkFBc0IsRUFDdEIsa0NBQWtDLEVBQ2xDLHFCQUFxQixFQUNyQixrQ0FBa0MsRUFDbEMsaUJBQWlCLEVBQ2pCLHFCQUFxQixFQUNyQixzQkFBc0IsRUFFdEIsc0NBQXNDLEVBRXRDLHVCQUF1QixFQUd2QixjQUFjLEVBQ2QsZUFBZSxFQUNmLGlCQUFpQixFQUNqQiw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLHVCQUF1QixFQUN2QixnQkFBZ0IsR0FDakIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFNcEQsU0FBUyw0QkFBNEIsQ0FDbkMscUJBQTBGLEVBQzFGLFVBQWdFLEVBQ2hFLE1BQXlCLEVBQ3pCLFdBQW9CLEVBQ3BCLFdBQW9CLEVBQ3BCLGdCQUFtQztJQUVuQyxNQUFNLDZCQUE2QixHQUFHLEtBQUssRUFBRSxTQUFhLEVBQUUsRUFBRTtRQUM1RCxNQUFNLEdBQUcsR0FBRyxNQUFNLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxTQUFTLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7UUFFRCxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFDakQsT0FBTztZQUNMLGlCQUFpQixFQUFFLElBQUksaUJBQWlCLENBQ3RD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
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRfcHJpdmF0ZV9rZXJuZWxfcmVzZXRfaGludHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMva2VybmVsX3Byb3Zlci9oaW50cy9idWlsZF9wcml2YXRlX2tlcm5lbF9yZXNldF9oaW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLGtDQUFrQyxFQUNsQyxzQkFBc0IsRUFDdEIsa0NBQWtDLEVBQ2xDLHFCQUFxQixFQUNyQixrQ0FBa0MsRUFDbEMsaUJBQWlCLEVBQ2pCLHFCQUFxQixFQUNyQixzQkFBc0IsRUFFdEIsc0NBQXNDLEVBRXRDLHVCQUF1QixFQUd2QixjQUFjLEVBQ2QsZUFBZSxFQUNmLGlCQUFpQixFQUNqQiw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIsZ0JBQWdCLEdBQ2pCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBTXBELFNBQVMsNEJBQTRCLENBQ25DLHFCQUEwRixFQUMxRixVQUFnRSxFQUNoRSxNQUF5QixFQUN6QixXQUFvQixFQUNwQixXQUFvQixFQUNwQixnQkFBbUM7SUFFbkMsTUFBTSw2QkFBNkIsR0FBRyxLQUFLLEVBQUUsU0FBYSxFQUFFLEVBQUU7UUFDNUQsTUFBTSxHQUFHLEdBQUcsTUFBTSxNQUFNLENBQUMsNkJBQTZCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsU0FBUyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqRixDQUFDO1FBRUQsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEdBQUcsR0FBRyxDQUFDO1FBQ2pELE9BQU87WUFDTCxpQkFBaUIsRUFBRSxJQUFJLGlCQUFpQixDQUN0QyxxQkFBcUIsRUFDckIsS0FBSyxFQUNMLFdBQVcsQ0FBQyxPQUFPLEVBQWdDLENBQ3BEO1lBQ0QsWUFBWTtTQUNiLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRixPQUFPLDhCQUE4QixDQUNuQyxFQUFFLDZCQUE2QixFQUFFLEVBQ2pDLHFCQUFxQixFQUNyQixVQUFVLEVBQ1YsV0FBVyxFQUNYLFdBQVcsRUFDWCxnQkFBZ0IsQ0FDakIsQ0FBQztBQUNKLENBQUM7QUFFRCxLQUFLLFVBQVUsc0NBQXNDLENBQ25ELHFCQUErRyxFQUMvRyxNQUF5QjtJQUV6QixNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsa0NBQWtDLEVBQUUsR0FBRyxFQUFFLENBQ25FLGlCQUFpQixDQUFDLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxDQUMzRCxDQUFDO0lBRUYsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUN0RCxNQUFNLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDakQsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUN0QixNQUFNO1FBQ1IsQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLE1BQU0sTUFBTSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksaUJBQWlCLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNELFFBQVEsRUFBRSxDQUFDO0lBQ2IsQ0FBQztJQUNELE9BQU87UUFDTCxTQUFTLEVBQUUsUUFBUTtRQUNuQixTQUFTO0tBQ1YsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLDZCQUE2QixDQUNqRCxjQUFpQyxFQUNqQyxrQkFBcUMsRUFDckMsb0JBQXlDLEVBQ3pDLDJCQUFnRCxFQUNoRCw4QkFBc0MsRUFDdEMsVUFBbUIsRUFDbkIsTUFBeUI7SUFFekIsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUMsWUFBWSxDQUFDO0lBQ3JELGtEQUFrRDtJQUVsRCxNQUFNLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxjQUFjLEVBQUUsZUFBZSxDQUFDLEVBQUU7UUFDdkUsTUFBTSxrQkFBa0IsR0FBRyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRyxPQUFPLGtCQUFrQixDQUFDLEdBQUcsQ0FDM0IsUUFBUSxDQUFDLEVBQUUsQ0FDVCxJQUFJLGNBQWMsQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDLENBQzlHLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sRUFDSixtQkFBbUIsRUFBRSx3QkFBd0IsRUFDN0MsbUJBQW1CLEVBQUUsd0JBQXdCLEVBQzdDLEtBQUssRUFBRSx3QkFBd0IsR0FDaEMsR0FBRyxNQUFNLDZCQUE2QixDQUNyQyxNQUFNLEVBQ04sWUFBWSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixFQUNwRCxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFDM0Isb0JBQW9CLEVBQ3BCLGtDQUFrQyxFQUNsQyxrQ0FBa0MsRUFDbEMsZ0JBQWdCLENBQ2pCLENBQUM7SUFFRixNQUFNLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxjQUFjLEVBQUUsZUFBZSxDQUFDLEVBQUU7UUFDdkUsTUFBTSxrQkFBa0IsR0FBRyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRyxPQUFPLGtCQUFrQixDQUFDLEdBQUcsQ0FDM0IsU0FBUyxDQUFDLEVBQUUsQ0FDVixJQUFJLGVBQWUsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDLENBQ2hILENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sRUFDSixtQkFBbUIsRUFBRSx5QkFBeUIsRUFDOUMsbUJBQW1CLEVBQUUseUJBQXlCLEVBQzlDLEtBQUssRUFBRSx5QkFBeUIsR0FDakMsR0FBRyxNQUFNLDRCQUE0QixDQUNwQyxZQUFZLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLEVBQ3JELFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUMzQixNQUFNLEVBQ04sa0NBQWtDLEVBQ2xDLGtDQUFrQyxFQUNsQyxnQkFBZ0IsQ0FDakIsQ0FBQztJQUVGLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxzQ0FBc0MsQ0FDM0UsWUFBWSxDQUFDLGtCQUFrQixDQUFDLHdDQUF3QyxFQUN4RSxNQUFNLENBQ1AsQ0FBQztJQUVGLE1BQU0sbUJBQW1CLEdBQUcseUJBQXlCLENBQ25ELGNBQWMsRUFDZCxlQUFlLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLG9CQUFvQixDQUNuRixDQUFDO0lBQ0YsTUFBTSxvQkFBb0IsR0FBRyx5QkFBeUIsQ0FDcEQsY0FBYyxFQUNkLGVBQWUsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQ3BGLENBQUM7SUFFRixNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztJQUMvQyxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztJQUMvQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLEdBQUcsdUJBQXVCLENBQ2xGLFVBQVUsRUFDVixVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQiwyQkFBMkIsRUFDM0Isc0JBQXNCLEVBQ3RCLHFCQUFxQixDQUN0QixDQUFDO0lBRUYsTUFBTSxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztJQUVqRixNQUFNLG1CQUFtQixHQUFHLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxHQUFHLGdCQUFnQixDQUFDO0lBRWpGLE1BQU0scUJBQXFCLEdBQUcscUJBQXFCLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRTFGLElBQUksYUFBYSxDQUFDO0lBRWxCLEtBQUssTUFBTSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQztRQUMxRSxNQUFNLFNBQVMsR0FDYixDQUFDLFNBQVMsQ0FBQyx3QkFBd0I7WUFDbkMsQ0FBQyxTQUFTLENBQUMsd0JBQXdCO1lBQ25DLENBQUMsU0FBUyxDQUFDLDRCQUE0QixDQUFDO1FBQzFDLE1BQU0sYUFBYSxHQUNqQixTQUFTLENBQUMsd0JBQXdCLElBQUksbUJBQW1CO1lBQ3pELFNBQVMsQ0FBQyx3QkFBd0IsSUFBSSxtQkFBbUI7WUFDekQsU0FBUyxDQUFDLDRCQUE0QixJQUFJLHFCQUFxQixDQUFDO1FBQ2xFLElBQ0UsU0FBUyxDQUFDLHdCQUF3QixJQUFJLHdCQUF3QjtZQUM5RCxTQUFTLENBQUMsd0JBQXdCLElBQUksd0JBQXdCO1lBQzlELFNBQVMsQ0FBQyx3QkFBd0IsSUFBSSx5QkFBeUI7WUFDL0QsU0FBUyxDQUFDLHdCQUF3QixJQUFJLHlCQUF5QjtZQUMvRCxTQUFTLENBQUMsY0FBYyxJQUFJLFNBQVM7WUFDckMsU0FBUyxDQUFDLHFCQUFxQixJQUFJLGdCQUFnQjtZQUNuRCxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksYUFBYSxDQUFDLENBQUMsRUFDN0QsQ0FBQztZQUNELGFBQWEsR0FBRyxJQUFJLHNDQUFzQyxDQUN4RCxrQkFBa0IsRUFDbEIsSUFBSSx1QkFBdUIsQ0FDekIsd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6QixTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLDhCQUE4QixDQUMvQixDQUFDLFdBQVcsQ0FDWCxTQUFTLENBQUMsd0JBQXdCLEVBQ2xDLFNBQVMsQ0FBQyx3QkFBd0IsRUFDbEMsU0FBUyxDQUFDLHdCQUF3QixFQUNsQyxTQUFTLENBQUMsd0JBQXdCLEVBQ2xDLFNBQVMsQ0FBQyxjQUFjLEVBQ3hCLFNBQVMsQ0FBQyxxQkFBcUIsQ0FDaEMsRUFDRCxPQUFPLENBQ1IsQ0FBQztZQUNGLE1BQU07UUFDUixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELE9BQU8sYUFBK0QsQ0FBQztBQUN6RSxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQ3BCLGNBQWlDLEVBQ2pDLHFCQUEwRDtJQUUxRCxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUV6RSxPQUFPLGtCQUFrQixDQUFDLE1BQU0sQ0FDOUIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLHFCQUFxQixDQUFDLENBQUMsQ0FDekcsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHlCQUF5QixDQUNoQyxjQUFpQyxFQUNqQyxtQkFBa0U7SUFFbEUsT0FBTyxhQUFhLENBQUMsY0FBYyxFQUFFLGVBQWUsQ0FBQyxFQUFFO1FBQ3JELE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUNwRixPQUFPLG9CQUFvQixDQUFDLEdBQUcsQ0FDN0IsV0FBVyxDQUFDLEVBQUUsQ0FDWixJQUFJLGlCQUFpQixDQUNuQixXQUFXLEVBQ1gsZUFBZSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLHNCQUFzQixDQUM5RSxDQUNKLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMifQ==
@@ -1,5 +1,5 @@
1
1
  import { type PrivateKernelCircuitPublicInputs } from '@aztec/circuits.js';
2
2
  import { type ExecutionResult } from '@aztec/simulator';
3
3
  export declare function needsReset(publicInputs: PrivateKernelCircuitPublicInputs, executionStack: ExecutionResult[]): boolean;
4
- export declare function somethingToReset(publicInputs: PrivateKernelCircuitPublicInputs): boolean;
4
+ export declare function needsFinalReset(publicInputs: PrivateKernelCircuitPublicInputs): boolean;
5
5
  //# sourceMappingURL=needs_reset.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"needs_reset.d.ts","sourceRoot":"","sources":["../../../src/kernel_prover/hints/needs_reset.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,gCAAgC,EAEtC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,wBAAgB,UAAU,CAAC,YAAY,EAAE,gCAAgC,EAAE,cAAc,EAAE,eAAe,EAAE,WAsB3G;AASD,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,gCAAgC,WAO9E"}
1
+ {"version":3,"file":"needs_reset.d.ts","sourceRoot":"","sources":["../../../src/kernel_prover/hints/needs_reset.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,gCAAgC,EAEtC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,wBAAgB,UAAU,CAAC,YAAY,EAAE,gCAAgC,EAAE,cAAc,EAAE,eAAe,EAAE,WAsB3G;AASD,wBAAgB,eAAe,CAAC,YAAY,EAAE,gCAAgC,WAU7E"}
@@ -1,23 +1,23 @@
1
- import { MAX_KEY_VALIDATION_REQUESTS_PER_TX, MAX_NOTE_ENCRYPTED_LOGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX, getNonEmptyItems, } from '@aztec/circuits.js';
1
+ import { MAX_KEY_VALIDATION_REQUESTS_PER_TX, MAX_NOTE_ENCRYPTED_LOGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX, countAccumulatedItems, } from '@aztec/circuits.js';
2
2
  export function needsReset(publicInputs, executionStack) {
3
3
  const nextIteration = executionStack[executionStack.length - 1];
4
- return (getNonEmptyItems(nextIteration.callStackItem.publicInputs.noteHashes).length +
5
- getNonEmptyItems(publicInputs.end.noteHashes).length >
4
+ return (countAccumulatedItems(nextIteration.callStackItem.publicInputs.noteHashes) +
5
+ countAccumulatedItems(publicInputs.end.noteHashes) >
6
6
  MAX_NOTE_HASHES_PER_TX ||
7
- getNonEmptyItems(nextIteration.callStackItem.publicInputs.nullifiers).length +
8
- getNonEmptyItems(publicInputs.end.nullifiers).length >
7
+ countAccumulatedItems(nextIteration.callStackItem.publicInputs.nullifiers) +
8
+ countAccumulatedItems(publicInputs.end.nullifiers) >
9
9
  MAX_NULLIFIERS_PER_TX ||
10
- getNonEmptyItems(nextIteration.callStackItem.publicInputs.noteEncryptedLogsHashes).length +
11
- getNonEmptyItems(publicInputs.end.noteEncryptedLogsHashes).length >
10
+ countAccumulatedItems(nextIteration.callStackItem.publicInputs.noteEncryptedLogsHashes) +
11
+ countAccumulatedItems(publicInputs.end.noteEncryptedLogsHashes) >
12
12
  MAX_NOTE_ENCRYPTED_LOGS_PER_TX ||
13
- getNonEmptyItems(nextIteration.callStackItem.publicInputs.noteHashReadRequests).length +
14
- getNonEmptyItems(publicInputs.validationRequests.noteHashReadRequests).length >
13
+ countAccumulatedItems(nextIteration.callStackItem.publicInputs.noteHashReadRequests) +
14
+ countAccumulatedItems(publicInputs.validationRequests.noteHashReadRequests) >
15
15
  MAX_NOTE_HASH_READ_REQUESTS_PER_TX ||
16
- getNonEmptyItems(nextIteration.callStackItem.publicInputs.nullifierReadRequests).length +
17
- getNonEmptyItems(publicInputs.validationRequests.nullifierReadRequests).length >
16
+ countAccumulatedItems(nextIteration.callStackItem.publicInputs.nullifierReadRequests) +
17
+ countAccumulatedItems(publicInputs.validationRequests.nullifierReadRequests) >
18
18
  MAX_NULLIFIER_READ_REQUESTS_PER_TX ||
19
- getNonEmptyItems(nextIteration.callStackItem.publicInputs.keyValidationRequestsAndGenerators).length +
20
- getNonEmptyItems(publicInputs.validationRequests.scopedKeyValidationRequestsAndGenerators).length >
19
+ countAccumulatedItems(nextIteration.callStackItem.publicInputs.keyValidationRequestsAndGenerators) +
20
+ countAccumulatedItems(publicInputs.validationRequests.scopedKeyValidationRequestsAndGenerators) >
21
21
  MAX_KEY_VALIDATION_REQUESTS_PER_TX);
22
22
  }
23
23
  function hasTransientNullifier(publicInputs) {
@@ -26,10 +26,13 @@ function hasTransientNullifier(publicInputs) {
26
26
  noteHashSet.delete(0n);
27
27
  return publicInputs.end.nullifiers.some(n => noteHashSet.has(n.nullifiedNoteHash.toBigInt()));
28
28
  }
29
- export function somethingToReset(publicInputs) {
30
- return (getNonEmptyItems(publicInputs.validationRequests.noteHashReadRequests).length > 0 ||
31
- getNonEmptyItems(publicInputs.validationRequests.nullifierReadRequests).length > 0 ||
32
- getNonEmptyItems(publicInputs.validationRequests.scopedKeyValidationRequestsAndGenerators).length > 0 ||
29
+ export function needsFinalReset(publicInputs) {
30
+ return (countAccumulatedItems(publicInputs.end.noteHashes) > 0 ||
31
+ countAccumulatedItems(publicInputs.end.nullifiers) > 0 ||
32
+ countAccumulatedItems(publicInputs.end.encryptedLogsHashes) > 0 ||
33
+ countAccumulatedItems(publicInputs.validationRequests.noteHashReadRequests) > 0 ||
34
+ countAccumulatedItems(publicInputs.validationRequests.nullifierReadRequests) > 0 ||
35
+ countAccumulatedItems(publicInputs.validationRequests.scopedKeyValidationRequestsAndGenerators) > 0 ||
33
36
  hasTransientNullifier(publicInputs));
34
37
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVlZHNfcmVzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMva2VybmVsX3Byb3Zlci9oaW50cy9uZWVkc19yZXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsa0NBQWtDLEVBQ2xDLDhCQUE4QixFQUM5QixzQkFBc0IsRUFDdEIsa0NBQWtDLEVBQ2xDLHFCQUFxQixFQUNyQixrQ0FBa0MsRUFFbEMsZ0JBQWdCLEdBQ2pCLE1BQU0sb0JBQW9CLENBQUM7QUFHNUIsTUFBTSxVQUFVLFVBQVUsQ0FBQyxZQUE4QyxFQUFFLGNBQWlDO0lBQzFHLE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLE9BQU8sQ0FDTCxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNO1FBQzFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTTtRQUNwRCxzQkFBc0I7UUFDeEIsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTTtZQUMxRSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU07WUFDcEQscUJBQXFCO1FBQ3ZCLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDLENBQUMsTUFBTTtZQUN2RixnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUMsTUFBTTtZQUNqRSw4QkFBOEI7UUFDaEMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxNQUFNO1lBQ3BGLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE1BQU07WUFDN0Usa0NBQWtDO1FBQ3BDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDLENBQUMsTUFBTTtZQUNyRixnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLENBQUMsQ0FBQyxNQUFNO1lBQzlFLGtDQUFrQztRQUNwQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDLE1BQU07WUFDbEcsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLHdDQUF3QyxDQUFDLENBQUMsTUFBTTtZQUNqRyxrQ0FBa0MsQ0FDckMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUFDLFlBQThDO0lBQzNFLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDOUIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkYsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QixPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNoRyxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFlBQThDO0lBQzdFLE9BQU8sQ0FDTCxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUNqRixnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUNsRixnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsd0NBQXdDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUNyRyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsQ0FDcEMsQ0FBQztBQUNKLENBQUMifQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVlZHNfcmVzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMva2VybmVsX3Byb3Zlci9oaW50cy9uZWVkc19yZXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsa0NBQWtDLEVBQ2xDLDhCQUE4QixFQUM5QixzQkFBc0IsRUFDdEIsa0NBQWtDLEVBQ2xDLHFCQUFxQixFQUNyQixrQ0FBa0MsRUFFbEMscUJBQXFCLEdBQ3RCLE1BQU0sb0JBQW9CLENBQUM7QUFHNUIsTUFBTSxVQUFVLFVBQVUsQ0FBQyxZQUE4QyxFQUFFLGNBQWlDO0lBQzFHLE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLE9BQU8sQ0FDTCxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFDeEUscUJBQXFCLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7UUFDbEQsc0JBQXNCO1FBQ3hCLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztZQUN4RSxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNsRCxxQkFBcUI7UUFDdkIscUJBQXFCLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsdUJBQXVCLENBQUM7WUFDckYscUJBQXFCLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQztZQUMvRCw4QkFBOEI7UUFDaEMscUJBQXFCLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUM7WUFDbEYscUJBQXFCLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDO1lBQzNFLGtDQUFrQztRQUNwQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQztZQUNuRixxQkFBcUIsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLENBQUM7WUFDNUUsa0NBQWtDO1FBQ3BDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLGtDQUFrQyxDQUFDO1lBQ2hHLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyx3Q0FBd0MsQ0FBQztZQUMvRixrQ0FBa0MsQ0FDckMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUFDLFlBQThDO0lBQzNFLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDOUIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkYsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QixPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNoRyxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxZQUE4QztJQUM1RSxPQUFPLENBQ0wscUJBQXFCLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQ3RELHFCQUFxQixDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUN0RCxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQztRQUMvRCxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDO1FBQy9FLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUM7UUFDaEYscUJBQXFCLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLHdDQUF3QyxDQUFDLEdBQUcsQ0FBQztRQUNuRyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsQ0FDcEMsQ0FBQztBQUNKLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"kernel_prover.d.ts","sourceRoot":"","sources":["../../src/kernel_prover/kernel_prover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAQL,KAAK,oCAAoC,EACzC,KAAK,SAAS,EAGf,MAAM,oBAAoB,CAAC;AAS5B,OAAO,EACL,KAAK,eAAe,EAMrB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAOlE;;;;;GAKG;AACH,qBAAa,YAAY;IAGX,OAAO,CAAC,MAAM;IAAqB,OAAO,CAAC,YAAY;IAFnE,OAAO,CAAC,GAAG,CAA4C;gBAEnC,MAAM,EAAE,iBAAiB,EAAU,YAAY,EAAE,mBAAmB;IAExF;;;;;;;;;;OAUG;IACG,KAAK,CACT,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,2BAA2B,CAAC,oCAAoC,CAAC,CAAC;YAsH/D,2BAA2B;YAyB3B,qBAAqB;CA4BpC"}
1
+ {"version":3,"file":"kernel_prover.d.ts","sourceRoot":"","sources":["../../src/kernel_prover/kernel_prover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAQL,KAAK,oCAAoC,EACzC,KAAK,SAAS,EAGf,MAAM,oBAAoB,CAAC;AAS5B,OAAO,EACL,KAAK,eAAe,EAMrB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAOlE;;;;;GAKG;AACH,qBAAa,YAAY;IAGX,OAAO,CAAC,MAAM;IAAqB,OAAO,CAAC,YAAY;IAFnE,OAAO,CAAC,GAAG,CAA4C;gBAEnC,MAAM,EAAE,iBAAiB,EAAU,YAAY,EAAE,mBAAmB;IAExF;;;;;;;;;;OAUG;IACG,KAAK,CACT,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,2BAA2B,CAAC,oCAAoC,CAAC,CAAC;YAwH/D,2BAA2B;YA2B3B,qBAAqB;CA4BpC"}
@@ -4,7 +4,7 @@ import { assertLength } from '@aztec/foundation/serialize';
4
4
  import { pushTestData } from '@aztec/foundation/testing';
5
5
  import { ClientCircuitArtifacts, PrivateResetTagToArtifactName, getVKTreeRoot, } from '@aztec/noir-protocol-circuits-types';
6
6
  import { collectEnqueuedPublicFunctionCalls, collectNoteHashLeafIndexMap, collectNoteHashNullifierCounterMap, collectPublicTeardownFunctionCall, getFinalMinRevertibleSideEffectCounter, } from '@aztec/simulator';
7
- import { buildPrivateKernelResetInputs, needsReset, somethingToReset } from './hints/index.js';
7
+ import { buildPrivateKernelResetInputs, needsFinalReset, needsReset } from './hints/index.js';
8
8
  const NULL_PROVE_OUTPUT = {
9
9
  publicInputs: PrivateKernelCircuitPublicInputs.empty(),
10
10
  verificationKey: VerificationKeyAsFields.makeEmpty(),
@@ -47,7 +47,7 @@ export class KernelProver {
47
47
  const witnessStack = [];
48
48
  while (executionStack.length) {
49
49
  if (!firstIteration && needsReset(output.publicInputs, executionStack)) {
50
- const resetInputs = await this.getPrivateKernelResetInputs(executionStack, output, noteHashLeafIndexMap, noteHashNullifierCounterMap, validationRequestsSplitCounter);
50
+ const resetInputs = await this.getPrivateKernelResetInputs(executionStack, output, noteHashLeafIndexMap, noteHashNullifierCounterMap, validationRequestsSplitCounter, false);
51
51
  output = await this.proofCreator.simulateProofReset(resetInputs);
52
52
  // TODO(#7368) consider refactoring this redundant bytecode pushing
53
53
  acirs.push(Buffer.from(ClientCircuitArtifacts[PrivateResetTagToArtifactName[resetInputs.sizeTag]].bytecode, 'base64'));
@@ -80,8 +80,8 @@ export class KernelProver {
80
80
  }
81
81
  firstIteration = false;
82
82
  }
83
- if (somethingToReset(output.publicInputs)) {
84
- const resetInputs = await this.getPrivateKernelResetInputs(executionStack, output, noteHashLeafIndexMap, noteHashNullifierCounterMap, validationRequestsSplitCounter);
83
+ if (needsFinalReset(output.publicInputs)) {
84
+ const resetInputs = await this.getPrivateKernelResetInputs(executionStack, output, noteHashLeafIndexMap, noteHashNullifierCounterMap, validationRequestsSplitCounter, true);
85
85
  output = await this.proofCreator.simulateProofReset(resetInputs);
86
86
  // TODO(#7368) consider refactoring this redundant bytecode pushing
87
87
  acirs.push(Buffer.from(ClientCircuitArtifacts[PrivateResetTagToArtifactName[resetInputs.sizeTag]].bytecode, 'base64'));
@@ -102,10 +102,10 @@ export class KernelProver {
102
102
  tailOutput.clientIvcProof = ivcProof;
103
103
  return tailOutput;
104
104
  }
105
- async getPrivateKernelResetInputs(executionStack, output, noteHashLeafIndexMap, noteHashNullifierCounterMap, validationRequestsSplitCounter) {
105
+ async getPrivateKernelResetInputs(executionStack, output, noteHashLeafIndexMap, noteHashNullifierCounterMap, validationRequestsSplitCounter, shouldSilo) {
106
106
  const previousVkMembershipWitness = await this.oracle.getVkMembershipWitness(output.verificationKey);
107
107
  const previousKernelData = new PrivateKernelData(output.publicInputs, output.verificationKey, Number(previousVkMembershipWitness.leafIndex), assertLength(previousVkMembershipWitness.siblingPath, VK_TREE_HEIGHT));
108
- return await buildPrivateKernelResetInputs(executionStack, previousKernelData, noteHashLeafIndexMap, noteHashNullifierCounterMap, validationRequestsSplitCounter, this.oracle);
108
+ return await buildPrivateKernelResetInputs(executionStack, previousKernelData, noteHashLeafIndexMap, noteHashNullifierCounterMap, validationRequestsSplitCounter, shouldSilo, this.oracle);
109
109
  }
110
110
  async createPrivateCallData({ callStackItem }, vk) {
111
111
  const { contractAddress, functionData } = callStackItem;
@@ -127,4 +127,4 @@ export class KernelProver {
127
127
  });
128
128
  }
129
129
  }
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2VybmVsX3Byb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rZXJuZWxfcHJvdmVyL2tlcm5lbF9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLEVBQUUsRUFDRixlQUFlLEVBQ2YsZ0NBQWdDLEVBQ2hDLGlCQUFpQixFQUNqQixxQ0FBcUMsRUFDckMsc0NBQXNDLEVBQ3RDLHFDQUFxQyxFQUdyQyxjQUFjLEVBQ2QsdUJBQXVCLEdBQ3hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLDZCQUE2QixFQUM3QixhQUFhLEdBQ2QsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBRUwsa0NBQWtDLEVBQ2xDLDJCQUEyQixFQUMzQixrQ0FBa0MsRUFDbEMsaUNBQWlDLEVBQ2pDLHNDQUFzQyxHQUN2QyxNQUFNLGtCQUFrQixDQUFDO0FBSTFCLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUcvRixNQUFNLGlCQUFpQixHQUFrRTtJQUN2RixZQUFZLEVBQUUsZ0NBQWdDLENBQUMsS0FBSyxFQUFFO0lBQ3RELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxTQUFTLEVBQUU7SUFDcEQsYUFBYSxFQUFFLElBQUksR0FBRyxFQUFFO0NBQ3pCLENBQUM7QUFDRjs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBR3ZCLFlBQW9CLE1BQXlCLEVBQVUsWUFBaUM7UUFBcEUsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFG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
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2VybmVsX3Byb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rZXJuZWxfcHJvdmVyL2tlcm5lbF9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLEVBQUUsRUFDRixlQUFlLEVBQ2YsZ0NBQWdDLEVBQ2hDLGlCQUFpQixFQUNqQixxQ0FBcUMsRUFDckMsc0NBQXNDLEVBQ3RDLHFDQUFxQyxFQUdyQyxjQUFjLEVBQ2QsdUJBQXVCLEdBQ3hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLDZCQUE2QixFQUM3QixhQUFhLEdBQ2QsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBRUwsa0NBQWtDLEVBQ2xDLDJCQUEyQixFQUMzQixrQ0FBa0MsRUFDbEMsaUNBQWlDLEVBQ2pDLHNDQUFzQyxHQUN2QyxNQUFNLGtCQUFrQixDQUFDO0FBSTFCLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHOUYsTUFBTSxpQkFBaUIsR0FBa0U7SUFDdkYsWUFBWSxFQUFFLGdDQUFnQyxDQUFDLEtBQUssRUFBRTtJQUN0RCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsU0FBUyxFQUFFO0lBQ3BELGFBQWEsRUFBRSxJQUFJLEdBQUcsRUFBRTtDQUN6QixDQUFDO0FBQ0Y7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQUd2QixZQUFvQixNQUF5QixFQUFVLFlBQWlDO1FBQXBFLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBRmhG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
@@ -1 +1 @@
1
- {"version":3,"file":"pxe_http_server.d.ts","sourceRoot":"","sources":["../../src/pxe_http/pxe_http_server.ts"],"names":[],"mappings":";AAAA,OAAO,EAUL,KAAK,GAAG,EAQT,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAAE,aAAa,EAAiC,MAAM,mCAAmC,CAAC;AAEjG,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,GAAG,GAAG,aAAa,CAiCjE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAStF"}
1
+ {"version":3,"file":"pxe_http_server.d.ts","sourceRoot":"","sources":["../../src/pxe_http/pxe_http_server.ts"],"names":[],"mappings":";AAAA,OAAO,EAUL,KAAK,GAAG,EAST,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAAE,aAAa,EAAiC,MAAM,mCAAmC,CAAC;AAEjG,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,GAAG,GAAG,aAAa,CAkCjE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAStF"}
@@ -1,4 +1,4 @@
1
- import { AuthWitness, CompleteAddress, EncryptedNoteL2BlockL2Logs, ExtendedNote, ExtendedUnencryptedL2Log, L2Block, LogId, Note, NullifierMembershipWitness, SimulatedTx, Tx, TxEffect, TxExecutionRequest, TxHash, TxReceipt, UnencryptedL2BlockL2Logs, } from '@aztec/circuit-types';
1
+ import { AuthWitness, CompleteAddress, EncryptedNoteL2BlockL2Logs, ExtendedNote, ExtendedUnencryptedL2Log, L2Block, LogId, Note, NullifierMembershipWitness, SimulatedTx, Tx, TxEffect, TxExecutionRequest, TxHash, TxReceipt, UnencryptedL2BlockL2Logs, UniqueNote, } from '@aztec/circuit-types';
2
2
  import { FunctionSelector } from '@aztec/circuits.js';
3
3
  import { NoteSelector } from '@aztec/foundation/abi';
4
4
  import { AztecAddress } from '@aztec/foundation/aztec-address';
@@ -26,6 +26,7 @@ export function createPXERpcServer(pxeService) {
26
26
  GrumpkinScalar,
27
27
  Note,
28
28
  ExtendedNote,
29
+ UniqueNote,
29
30
  AuthWitness,
30
31
  L2Block,
31
32
  TxEffect,
@@ -54,4 +55,4 @@ export function startPXEHttpServer(pxeService, port) {
54
55
  httpServer.listen(port);
55
56
  return httpServer;
56
57
  }
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlX2h0dHBfc2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B4ZV9odHRwL3B4ZV9odHRwX3NlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLGVBQWUsRUFDZiwwQkFBMEIsRUFDMUIsWUFBWSxFQUNaLHdCQUF3QixFQUN4QixPQUFPLEVBQ1AsS0FBSyxFQUNMLElBQUksRUFDSiwwQkFBMEIsRUFFMUIsV0FBVyxFQUNYLEVBQUUsRUFDRixRQUFRLEVBQ1Isa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixTQUFTLEVBQ1Qsd0JBQXdCLEdBQ3pCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVqRyxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFFeEI7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLFVBQWU7SUFDaEQsT0FBTyxJQUFJLGFBQWEsQ0FDdEIsVUFBVSxFQUNWO1FBQ0UsZUFBZTtRQUNmLFlBQVk7UUFDWixrQkFBa0I7UUFDbEIsd0JBQXdCO1FBQ3hCLGdCQUFnQjtRQUNoQixNQUFNO1FBQ04sWUFBWTtRQUNaLFVBQVU7UUFDVixLQUFLO1FBQ0wsRUFBRTtRQUNGLGNBQWM7UUFDZCxJQUFJO1FBQ0osWUFBWTtRQUNaLFdBQVc7UUFDWCxPQUFPO1FBQ1AsUUFBUTtRQUNSLEtBQUs7S0FDTixFQUNEO1FBQ0UsMEJBQTBCO1FBQzFCLFlBQVk7UUFDWiwwQkFBMEI7UUFDMUIsV0FBVztRQUNYLEVBQUU7UUFDRixTQUFTO1FBQ1Qsd0JBQXdCO0tBQ3pCLEVBQ0QsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQ2xCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsVUFBZSxFQUFFLElBQXFCO0lBQ3ZFLE1BQU0sU0FBUyxHQUFHLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pELE1BQU0sU0FBUyxHQUFHLDZCQUE2QixDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXRFLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUMvQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFeEIsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyJ9
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlX2h0dHBfc2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B4ZV9odHRwL3B4ZV9odHRwX3NlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLGVBQWUsRUFDZiwwQkFBMEIsRUFDMUIsWUFBWSxFQUNaLHdCQUF3QixFQUN4QixPQUFPLEVBQ1AsS0FBSyxFQUNMLElBQUksRUFDSiwwQkFBMEIsRUFFMUIsV0FBVyxFQUNYLEVBQUUsRUFDRixRQUFRLEVBQ1Isa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixTQUFTLEVBQ1Qsd0JBQXdCLEVBQ3hCLFVBQVUsR0FDWCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFakcsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCOzs7R0FHRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxVQUFlO0lBQ2hELE9BQU8sSUFBSSxhQUFhLENBQ3RCLFVBQVUsRUFDVjtRQUNFLGVBQWU7UUFDZixZQUFZO1FBQ1osa0JBQWtCO1FBQ2xCLHdCQUF3QjtRQUN4QixnQkFBZ0I7UUFDaEIsTUFBTTtRQUNOLFlBQVk7UUFDWixVQUFVO1FBQ1YsS0FBSztRQUNMLEVBQUU7UUFDRixjQUFjO1FBQ2QsSUFBSTtRQUNKLFlBQVk7UUFDWixVQUFVO1FBQ1YsV0FBVztRQUNYLE9BQU87UUFDUCxRQUFRO1FBQ1IsS0FBSztLQUNOLEVBQ0Q7UUFDRSwwQkFBMEI7UUFDMUIsWUFBWTtRQUNaLDBCQUEwQjtRQUMxQixXQUFXO1FBQ1gsRUFBRTtRQUNGLFNBQVM7UUFDVCx3QkFBd0I7S0FDekIsRUFDRCxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FDbEIsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxVQUFlLEVBQUUsSUFBcUI7SUFDdkUsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakQsTUFBTSxTQUFTLEdBQUcsNkJBQTZCLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFdEUsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQy9CLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDckQsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV4QixPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"create_pxe_service.d.ts","sourceRoot":"","sources":["../../src/pxe_service/create_pxe_service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAehF,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,gBAAgB,EACxB,YAAY,GAAE,MAAM,GAAG,OAAO,GAAG,SAAqB,EACtD,YAAY,CAAC,EAAE,mBAAmB,uBAyCnC"}
1
+ {"version":3,"file":"create_pxe_service.d.ts","sourceRoot":"","sources":["../../src/pxe_service/create_pxe_service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAehF,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,gBAAgB,EACxB,YAAY,GAAE,MAAM,GAAG,OAAO,GAAG,SAAqB,EACtD,YAAY,CAAC,EAAE,mBAAmB,uBA0CnC"}
@@ -40,7 +40,7 @@ export async function createPXEService(aztecNode, config, useLogSuffix = undefin
40
40
  }
41
41
  prover = !config.proverEnabled
42
42
  ? new TestPrivateKernelProver()
43
- : new BBNativePrivateKernelProver(config.bbBinaryPath, config.bbWorkingDirectory, createDebugLogger('aztec:pxe:bb-native-prover' + (logSuffix ? `:${logSuffix}` : '')));
43
+ : new BBNativePrivateKernelProver(config.bbBinaryPath, config.bbWorkingDirectory, !!config.bbSkipCleanup, createDebugLogger('aztec:pxe:bb-native-prover' + (logSuffix ? `:${logSuffix}` : '')));
44
44
  }
45
45
  const server = new PXEService(keyStore, aztecNode, db, prover, config, logSuffix);
46
46
  for (const contract of [
@@ -56,4 +56,4 @@ export async function createPXEService(aztecNode, config, useLogSuffix = undefin
56
56
  await server.start();
57
57
  return server;
58
58
  }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX3B4ZV9zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B4ZV9zZXJ2aWNlL2NyZWF0ZV9weGVfc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN6RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMzRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUUxRyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFOUM7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsZ0JBQWdCLENB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
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX3B4ZV9zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B4ZV9zZXJ2aWNlL2NyZWF0ZV9weGVfc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN6RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMzRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUUxRyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFOUM7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsZ0JBQWdCLENB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
@@ -1,4 +1,4 @@
1
- import { type AuthWitness, type AztecNode, type EventMetadata, EventType, ExtendedNote, type GetUnencryptedLogsResponse, type IncomingNotesFilter, type L2Block, type LogFilter, type OutgoingNotesFilter, type PXE, type PXEInfo, type PrivateKernelProver, SimulatedTx, Tx, type TxEffect, type TxExecutionRequest, type TxHash, type TxReceipt } from '@aztec/circuit-types';
1
+ import { type AuthWitness, type AztecNode, type EventMetadata, EventType, type ExtendedNote, type GetUnencryptedLogsResponse, type IncomingNotesFilter, type L2Block, type LogFilter, type OutgoingNotesFilter, type PXE, type PXEInfo, type PrivateKernelProver, SimulatedTx, Tx, type TxEffect, type TxExecutionRequest, type TxHash, type TxReceipt, UniqueNote } from '@aztec/circuit-types';
2
2
  import { AztecAddress, type CompleteAddress, type PartialAddress } from '@aztec/circuits.js';
3
3
  import { type ContractArtifact, type DecodedReturn } from '@aztec/foundation/abi';
4
4
  import { type Fq, Fr, type Point } from '@aztec/foundation/fields';
@@ -62,21 +62,14 @@ export declare class PXEService implements PXE {
62
62
  }): Promise<void>;
63
63
  getContracts(): Promise<AztecAddress[]>;
64
64
  getPublicStorageAt(contract: AztecAddress, slot: Fr): Promise<Fr>;
65
- getIncomingNotes(filter: IncomingNotesFilter): Promise<ExtendedNote[]>;
66
- getOutgoingNotes(filter: OutgoingNotesFilter): Promise<ExtendedNote[]>;
65
+ getIncomingNotes(filter: IncomingNotesFilter): Promise<UniqueNote[]>;
66
+ getOutgoingNotes(filter: OutgoingNotesFilter): Promise<UniqueNote[]>;
67
67
  addNote(note: ExtendedNote, scope?: AztecAddress): Promise<void>;
68
68
  addNullifiedNote(note: ExtendedNote): Promise<void>;
69
- /**
70
- * Finds the nonce(s) for a given note.
71
- * @param note - The note to find the nonces for.
72
- * @returns The nonces of the note.
73
- * @remarks More than a single nonce may be returned since there might be more than one nonce for a given note.
74
- * TODO(#4956): Un-expose this
75
- */
76
- getNoteNonces(note: ExtendedNote): Promise<Fr[]>;
77
69
  getBlock(blockNumber: number): Promise<L2Block | undefined>;
78
70
  proveTx(txRequest: TxExecutionRequest, simulatePublic: boolean, scopes?: AztecAddress[]): Promise<Tx>;
79
- simulateTx(txRequest: TxExecutionRequest, simulatePublic: boolean, msgSender?: AztecAddress | undefined, scopes?: AztecAddress[]): Promise<SimulatedTx>;
71
+ simulateTx(txRequest: TxExecutionRequest, simulatePublic: boolean, msgSender?: AztecAddress | undefined, skipTxValidation?: boolean, // TODO(#7956): make the default be false
72
+ scopes?: AztecAddress[]): Promise<SimulatedTx>;
80
73
  sendTx(tx: Tx): Promise<TxHash>;
81
74
  simulateUnconstrained(functionName: string, args: any[], to: AztecAddress, _from?: AztecAddress, scopes?: AztecAddress[]): Promise<DecodedReturn>;
82
75
  getTxReceipt(txHash: TxHash): Promise<TxReceipt>;
@@ -1 +1 @@
1
- {"version":3,"file":"pxe_service.d.ts","sourceRoot":"","sources":["../../src/pxe_service/pxe_service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pxe_service.d.ts","sourceRoot":"","sources":["../../src/pxe_service/pxe_service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- var _PXEService_instances, _PXEService_getFunctionCall, _PXEService_getSimulationParameters, _PXEService_simulate, _PXEService_simulateUnconstrained, _PXEService_simulatePublicCalls, _PXEService_simulateAndProve, _PXEService_enrichSimulationError;
1
+ var _PXEService_instances, _PXEService_getNoteNonces, _PXEService_getFunctionCall, _PXEService_getSimulationParameters, _PXEService_simulate, _PXEService_simulateUnconstrained, _PXEService_simulatePublicCalls, _PXEService_simulateAndProve, _PXEService_enrichSimulationError;
2
2
  import { __classPrivateFieldGet } from "tslib";
3
- import { EncryptedNoteTxL2Logs, EncryptedTxL2Logs, EventType, ExtendedNote, L1EventPayload, MerkleTreeId, SimulatedTx, SimulationError, TaggedLog, Tx, UnencryptedTxL2Logs, isNoirCallStackUnresolved, } from '@aztec/circuit-types';
3
+ import { EncryptedNoteTxL2Logs, EncryptedTxL2Logs, EventType, L1EventPayload, MerkleTreeId, SimulatedTx, SimulationError, TaggedLog, Tx, UnencryptedTxL2Logs, UniqueNote, isNoirCallStackUnresolved, } from '@aztec/circuit-types';
4
4
  import { AztecAddress, computeContractClassId, getContractClassFromArtifact, } from '@aztec/circuits.js';
5
5
  import { computeNoteHashNonce, siloNullifier } from '@aztec/circuits.js/hash';
6
6
  import { EventSelector, FunctionSelector, encodeArguments, } from '@aztec/foundation/abi';
@@ -210,7 +210,7 @@ export class PXEService {
210
210
  }
211
211
  owner = completeAddresses.address;
212
212
  }
213
- return new ExtendedNote(dao.note, owner, dao.contractAddress, dao.storageSlot, dao.noteTypeId, dao.txHash);
213
+ return new UniqueNote(dao.note, owner, dao.contractAddress, dao.storageSlot, dao.noteTypeId, dao.txHash, dao.nonce);
214
214
  });
215
215
  return Promise.all(extendedNotes);
216
216
  }
@@ -227,7 +227,7 @@ export class PXEService {
227
227
  }
228
228
  owner = completeAddresses.address;
229
229
  }
230
- return new ExtendedNote(dao.note, owner, dao.contractAddress, dao.storageSlot, dao.noteTypeId, dao.txHash);
230
+ return new UniqueNote(dao.note, owner, dao.contractAddress, dao.storageSlot, dao.noteTypeId, dao.txHash, dao.nonce);
231
231
  });
232
232
  return Promise.all(extendedNotes);
233
233
  }
@@ -236,7 +236,7 @@ export class PXEService {
236
236
  if (!owner) {
237
237
  throw new Error(`Unknown account: ${note.owner.toString()}`);
238
238
  }
239
- const nonces = await this.getNoteNonces(note);
239
+ const nonces = await __classPrivateFieldGet(this, _PXEService_instances, "m", _PXEService_getNoteNonces).call(this, note);
240
240
  if (nonces.length === 0) {
241
241
  throw new Error(`Cannot find the note in tx: ${note.txHash}.`);
242
242
  }
@@ -259,7 +259,7 @@ export class PXEService {
259
259
  if (!owner) {
260
260
  throw new Error(`Unknown account: ${note.owner.toString()}`);
261
261
  }
262
- const nonces = await this.getNoteNonces(note);
262
+ const nonces = await __classPrivateFieldGet(this, _PXEService_instances, "m", _PXEService_getNoteNonces).call(this, note);
263
263
  if (nonces.length === 0) {
264
264
  throw new Error(`Cannot find the note in tx: ${note.txHash}.`);
265
265
  }
@@ -276,34 +276,6 @@ export class PXEService {
276
276
  index, owner.publicKeys.masterIncomingViewingPublicKey));
277
277
  }
278
278
  }
279
- /**
280
- * Finds the nonce(s) for a given note.
281
- * @param note - The note to find the nonces for.
282
- * @returns The nonces of the note.
283
- * @remarks More than a single nonce may be returned since there might be more than one nonce for a given note.
284
- * TODO(#4956): Un-expose this
285
- */
286
- async getNoteNonces(note) {
287
- const tx = await this.node.getTxEffect(note.txHash);
288
- if (!tx) {
289
- throw new Error(`Unknown tx: ${note.txHash}`);
290
- }
291
- const nonces = [];
292
- const firstNullifier = tx.nullifiers[0];
293
- const hashes = tx.noteHashes;
294
- for (let i = 0; i < hashes.length; ++i) {
295
- const hash = hashes[i];
296
- if (hash.equals(Fr.ZERO)) {
297
- break;
298
- }
299
- const nonce = computeNoteHashNonce(firstNullifier, i);
300
- const { siloedNoteHash } = await this.simulator.computeNoteHashAndOptionallyANullifier(note.contractAddress, nonce, note.storageSlot, note.noteTypeId, false, note.note);
301
- if (hash.equals(siloedNoteHash)) {
302
- nonces.push(nonce);
303
- }
304
- }
305
- return nonces;
306
- }
307
279
  async getBlock(blockNumber) {
308
280
  // If a negative block number is provided the current block number is fetched.
309
281
  if (blockNumber < 0) {
@@ -321,12 +293,18 @@ export class PXEService {
321
293
  });
322
294
  }
323
295
  // TODO(#7456) Prevent msgSender being defined here for the first call
324
- async simulateTx(txRequest, simulatePublic, msgSender = undefined, scopes) {
296
+ async simulateTx(txRequest, simulatePublic, msgSender = undefined, skipTxValidation = true, // TODO(#7956): make the default be false
297
+ scopes) {
325
298
  return await this.jobQueue.put(async () => {
326
299
  const simulatedTx = await __classPrivateFieldGet(this, _PXEService_instances, "m", _PXEService_simulateAndProve).call(this, txRequest, this.fakeProofCreator, msgSender, scopes);
327
300
  if (simulatePublic) {
328
301
  simulatedTx.publicOutput = await __classPrivateFieldGet(this, _PXEService_instances, "m", _PXEService_simulatePublicCalls).call(this, simulatedTx.tx);
329
302
  }
303
+ if (!skipTxValidation) {
304
+ if (!(await this.node.isValidTx(simulatedTx.tx))) {
305
+ throw new Error('The simulated transaction is unable to be added to state and is invalid.');
306
+ }
307
+ }
330
308
  // We log only if the msgSender is undefined, as simulating with a different msgSender
331
309
  // is unlikely to be a real transaction, and likely to be only used to read data.
332
310
  // Meaning that it will not necessarily have produced a nullifier (and thus have no TxHash)
@@ -495,7 +473,34 @@ export class PXEService {
495
473
  return decodedEvents;
496
474
  }
497
475
  }
498
- _PXEService_instances = new WeakSet(), _PXEService_getFunctionCall = async function _PXEService_getFunctionCall(functionName, args, to) {
476
+ _PXEService_instances = new WeakSet(), _PXEService_getNoteNonces =
477
+ /**
478
+ * Finds the nonce(s) for a given note.
479
+ * @param note - The note to find the nonces for.
480
+ * @returns The nonces of the note.
481
+ * @remarks More than a single nonce may be returned since there might be more than one nonce for a given note.
482
+ */
483
+ async function _PXEService_getNoteNonces(note) {
484
+ const tx = await this.node.getTxEffect(note.txHash);
485
+ if (!tx) {
486
+ throw new Error(`Unknown tx: ${note.txHash}`);
487
+ }
488
+ const nonces = [];
489
+ const firstNullifier = tx.nullifiers[0];
490
+ const hashes = tx.noteHashes;
491
+ for (let i = 0; i < hashes.length; ++i) {
492
+ const hash = hashes[i];
493
+ if (hash.equals(Fr.ZERO)) {
494
+ break;
495
+ }
496
+ const nonce = computeNoteHashNonce(firstNullifier, i);
497
+ const { siloedNoteHash } = await this.simulator.computeNoteHashAndOptionallyANullifier(note.contractAddress, nonce, note.storageSlot, note.noteTypeId, false, note.note);
498
+ if (hash.equals(siloedNoteHash)) {
499
+ nonces.push(nonce);
500
+ }
501
+ }
502
+ return nonces;
503
+ }, _PXEService_getFunctionCall = async function _PXEService_getFunctionCall(functionName, args, to) {
499
504
  const contract = await this.db.getContract(to);
500
505
  if (!contract) {
501
506
  throw new Error(`Unknown contract ${to}: add it to PXE Service by calling server.addContracts(...).\nSee docs for context: https://docs.aztec.network/reference/common_errors/aztecnr-errors#unknown-contract-0x0-add-it-to-pxe-by-calling-serveraddcontracts`);
@@ -592,7 +597,9 @@ async function _PXEService_simulatePublicCalls(tx) {
592
597
  const noirCallStack = err.getNoirCallStack();
593
598
  if (debugInfo && isNoirCallStackUnresolved(noirCallStack)) {
594
599
  try {
595
- const parsedCallStack = resolveOpcodeLocations(noirCallStack, debugInfo);
600
+ // Public functions are simulated as a single Brillig entry point.
601
+ // Thus, we can safely assume here that the Brillig function id is `0`.
602
+ const parsedCallStack = resolveOpcodeLocations(noirCallStack, debugInfo, 0);
596
603
  err.setNoirCallStack(parsedCallStack);
597
604
  }
598
605
  catch (err) {
@@ -662,4 +669,4 @@ async function _PXEService_enrichSimulationError(err) {
662
669
  }
663
670
  }));
664
671
  };
665
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlX3NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHhlX3NlcnZpY2UvcHhlX3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBR0wscUJBQXFCLEVBQ3JCLGlCQUFpQixFQUVqQixTQUFTLEVBQ1QsWUFBWSxFQUlaLGNBQWMsRUFHZCxZQUFZLEVBS1osV0FBVyxFQUNYLGVBQWUsRUFDZixTQUFTLEVBQ1QsRUFBRSxFQUtGLG1CQUFtQixFQUNuQix5QkFBeUIsR0FDMUIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQ0wsWUFBWSxFQUdaLHNCQUFzQixFQUN0Qiw0QkFBNEIsR0FDN0IsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUUsT0FBTyxFQUdMLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsZUFBZSxHQUNoQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBVyxFQUFFLEVBQWMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQW9CLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXRELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pHLE9BQU8sRUFHTCxzQkFBc0IsRUFDdEIsa0NBQWtDLEVBQ2xDLGlDQUFpQyxFQUNqQywwQkFB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
672
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlX3NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHhlX3NlcnZpY2UvcHhlX3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBR0wscUJBQXFCLEVBQ3JCLGlCQUFpQixFQUVqQixTQUFTLEVBS1QsY0FBYyxFQUdkLFlBQVksRUFLWixXQUFXLEVBQ1gsZUFBZSxFQUNmLFNBQVMsRUFDVCxFQUFFLEVBS0YsbUJBQW1CLEVBQ25CLFVBQVUsRUFDVix5QkFBeUIsR0FDMUIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQ0wsWUFBWSxFQUdaLHNCQUFzQixFQUN0Qiw0QkFBNEIsR0FDN0IsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUUsT0FBTyxFQUdMLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsZUFBZSxHQUNoQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBVyxFQUFFLEVBQWMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQW9CLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXRELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pHLE9BQU8sRUFHTCxzQkFBc0IsRUFDdEIsa0NBQWtDLEVBQ2xDLGlDQUFpQyxFQUNqQywwQkFB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/pxe",
3
- "version": "0.48.0",
3
+ "version": "0.49.2",
4
4
  "type": "module",
5
5
  "exports": "./dest/index.js",
6
6
  "bin": "./dest/bin/index.js",
@@ -56,19 +56,19 @@
56
56
  ]
57
57
  },
58
58
  "dependencies": {
59
- "@aztec/bb-prover": "0.48.0",
60
- "@aztec/bb.js": "0.48.0",
61
- "@aztec/builder": "0.48.0",
62
- "@aztec/circuit-types": "0.48.0",
63
- "@aztec/circuits.js": "0.48.0",
64
- "@aztec/ethereum": "0.48.0",
65
- "@aztec/foundation": "0.48.0",
66
- "@aztec/key-store": "0.48.0",
67
- "@aztec/kv-store": "0.48.0",
68
- "@aztec/noir-protocol-circuits-types": "0.48.0",
69
- "@aztec/protocol-contracts": "0.48.0",
70
- "@aztec/simulator": "0.48.0",
71
- "@aztec/types": "0.48.0",
59
+ "@aztec/bb-prover": "0.49.2",
60
+ "@aztec/bb.js": "0.49.2",
61
+ "@aztec/builder": "0.49.2",
62
+ "@aztec/circuit-types": "0.49.2",
63
+ "@aztec/circuits.js": "0.49.2",
64
+ "@aztec/ethereum": "0.49.2",
65
+ "@aztec/foundation": "0.49.2",
66
+ "@aztec/key-store": "0.49.2",
67
+ "@aztec/kv-store": "0.49.2",
68
+ "@aztec/noir-protocol-circuits-types": "0.49.2",
69
+ "@aztec/protocol-contracts": "0.49.2",
70
+ "@aztec/simulator": "0.49.2",
71
+ "@aztec/types": "0.49.2",
72
72
  "@msgpack/msgpack": "^3.0.0-beta2",
73
73
  "@noir-lang/noirc_abi": "portal:../../noir/packages/noirc_abi",
74
74
  "@noir-lang/types": "workspace:*",
@@ -17,6 +17,7 @@ import { fileURLToPath } from 'url';
17
17
  export interface BBProverConfig {
18
18
  bbWorkingDirectory?: string;
19
19
  bbBinaryPath?: string;
20
+ bbSkipCleanup?: boolean;
20
21
  }
21
22
 
22
23
  /**
@@ -72,6 +73,11 @@ export const pxeConfigMappings: ConfigMappingsType<PXEServiceConfig> = {
72
73
  env: 'BB_WORKING_DIRECTORY',
73
74
  description: 'Working directory for the BB binary',
74
75
  },
76
+ bbSkipCleanup: {
77
+ env: 'BB_SKIP_CLEANUP',
78
+ description: 'True to skip cleanup of temporary files for debugging purposes',
79
+ ...booleanConfigHelper(),
80
+ },
75
81
  proverEnabled: {
76
82
  env: 'PXE_PROVER_ENABLED',
77
83
  description: 'Enable real proofs',
@@ -21,6 +21,7 @@ import {
21
21
  buildNoteHashReadRequestHints,
22
22
  buildNullifierReadRequestHints,
23
23
  buildTransientDataHints,
24
+ countAccumulatedItems,
24
25
  getNonEmptyItems,
25
26
  } from '@aztec/circuits.js';
26
27
  import { makeTuple } from '@aztec/foundation/array';
@@ -68,7 +69,9 @@ async function getMasterSecretKeysAndAppKeyGenerators(
68
69
  keyValidationRequests: Tuple<ScopedKeyValidationRequestAndGenerator, typeof MAX_KEY_VALIDATION_REQUESTS_PER_TX>,
69
70
  oracle: ProvingDataOracle,
70
71
  ) {
71
- const keysHints = makeTuple(MAX_KEY_VALIDATION_REQUESTS_PER_TX, KeyValidationHint.empty);
72
+ const keysHints = makeTuple(MAX_KEY_VALIDATION_REQUESTS_PER_TX, () =>
73
+ KeyValidationHint.nada(MAX_KEY_VALIDATION_REQUESTS_PER_TX),
74
+ );
72
75
 
73
76
  let keyIndex = 0;
74
77
  for (let i = 0; i < keyValidationRequests.length; ++i) {
@@ -92,6 +95,7 @@ export async function buildPrivateKernelResetInputs(
92
95
  noteHashLeafIndexMap: Map<bigint, bigint>,
93
96
  noteHashNullifierCounterMap: Map<number, number>,
94
97
  validationRequestsSplitCounter: number,
98
+ shouldSilo: boolean,
95
99
  oracle: ProvingDataOracle,
96
100
  ) {
97
101
  const publicInputs = previousKernelData.publicInputs;
@@ -154,9 +158,11 @@ export async function buildPrivateKernelResetInputs(
154
158
  executionResult => executionResult.callStackItem.publicInputs.nullifierReadRequests,
155
159
  );
156
160
 
157
- const [transientNullifierIndexesForNoteHashes, transientNoteHashIndexesForNullifiers] = buildTransientDataHints(
158
- publicInputs.end.noteHashes,
159
- publicInputs.end.nullifiers,
161
+ const noteHashes = publicInputs.end.noteHashes;
162
+ const nullifiers = publicInputs.end.nullifiers;
163
+ const { numTransientData, hints: transientDataIndexHints } = buildTransientDataHints(
164
+ noteHashes,
165
+ nullifiers,
160
166
  futureNoteHashReads,
161
167
  futureNullifierReads,
162
168
  noteHashNullifierCounterMap,
@@ -164,24 +170,39 @@ export async function buildPrivateKernelResetInputs(
164
170
  MAX_NULLIFIERS_PER_TX,
165
171
  );
166
172
 
173
+ const remainingNoteHashes = countAccumulatedItems(noteHashes) - numTransientData;
174
+
175
+ const remainingNullifiers = countAccumulatedItems(nullifiers) - numTransientData;
176
+
177
+ const numEncryptedLogHashes = countAccumulatedItems(publicInputs.end.encryptedLogsHashes);
178
+
167
179
  let privateInputs;
168
180
 
169
181
  for (const [sizeTag, hintSizes] of Object.entries(PRIVATE_RESET_VARIANTS)) {
182
+ const noSiloing =
183
+ !hintSizes.NOTE_HASH_SILOING_AMOUNT &&
184
+ !hintSizes.NULLIFIER_SILOING_AMOUNT &&
185
+ !hintSizes.ENCRYPTED_LOG_SILOING_AMOUNT;
186
+ const enoughSiloing =
187
+ hintSizes.NOTE_HASH_SILOING_AMOUNT >= remainingNoteHashes &&
188
+ hintSizes.NULLIFIER_SILOING_AMOUNT >= remainingNullifiers &&
189
+ hintSizes.ENCRYPTED_LOG_SILOING_AMOUNT >= numEncryptedLogHashes;
170
190
  if (
171
191
  hintSizes.NOTE_HASH_PENDING_AMOUNT >= noteHashPendingReadHints &&
172
192
  hintSizes.NOTE_HASH_SETTLED_AMOUNT >= noteHashSettledReadHints &&
173
193
  hintSizes.NULLIFIER_PENDING_AMOUNT >= nullifierPendingReadHints &&
174
194
  hintSizes.NULLIFIER_SETTLED_AMOUNT >= nullifierSettledReadHints &&
175
- hintSizes.NULLIFIER_KEYS >= keysCount
195
+ hintSizes.NULLIFIER_KEYS >= keysCount &&
196
+ hintSizes.TRANSIENT_DATA_AMOUNT >= numTransientData &&
197
+ ((!shouldSilo && noSiloing) || (shouldSilo && enoughSiloing))
176
198
  ) {
177
199
  privateInputs = new PrivateKernelResetCircuitPrivateInputs(
178
200
  previousKernelData,
179
201
  new PrivateKernelResetHints(
180
- transientNullifierIndexesForNoteHashes,
181
- transientNoteHashIndexesForNullifiers,
182
202
  noteHashReadRequestHints,
183
203
  nullifierReadRequestHints,
184
204
  keysHints,
205
+ transientDataIndexHints,
185
206
  validationRequestsSplitCounter,
186
207
  ).trimToSizes(
187
208
  hintSizes.NOTE_HASH_PENDING_AMOUNT,
@@ -189,6 +210,7 @@ export async function buildPrivateKernelResetInputs(
189
210
  hintSizes.NULLIFIER_PENDING_AMOUNT,
190
211
  hintSizes.NULLIFIER_SETTLED_AMOUNT,
191
212
  hintSizes.NULLIFIER_KEYS,
213
+ hintSizes.TRANSIENT_DATA_AMOUNT,
192
214
  ),
193
215
  sizeTag,
194
216
  );
@@ -6,30 +6,30 @@ import {
6
6
  MAX_NULLIFIERS_PER_TX,
7
7
  MAX_NULLIFIER_READ_REQUESTS_PER_TX,
8
8
  type PrivateKernelCircuitPublicInputs,
9
- getNonEmptyItems,
9
+ countAccumulatedItems,
10
10
  } from '@aztec/circuits.js';
11
11
  import { type ExecutionResult } from '@aztec/simulator';
12
12
 
13
13
  export function needsReset(publicInputs: PrivateKernelCircuitPublicInputs, executionStack: ExecutionResult[]) {
14
14
  const nextIteration = executionStack[executionStack.length - 1];
15
15
  return (
16
- getNonEmptyItems(nextIteration.callStackItem.publicInputs.noteHashes).length +
17
- getNonEmptyItems(publicInputs.end.noteHashes).length >
16
+ countAccumulatedItems(nextIteration.callStackItem.publicInputs.noteHashes) +
17
+ countAccumulatedItems(publicInputs.end.noteHashes) >
18
18
  MAX_NOTE_HASHES_PER_TX ||
19
- getNonEmptyItems(nextIteration.callStackItem.publicInputs.nullifiers).length +
20
- getNonEmptyItems(publicInputs.end.nullifiers).length >
19
+ countAccumulatedItems(nextIteration.callStackItem.publicInputs.nullifiers) +
20
+ countAccumulatedItems(publicInputs.end.nullifiers) >
21
21
  MAX_NULLIFIERS_PER_TX ||
22
- getNonEmptyItems(nextIteration.callStackItem.publicInputs.noteEncryptedLogsHashes).length +
23
- getNonEmptyItems(publicInputs.end.noteEncryptedLogsHashes).length >
22
+ countAccumulatedItems(nextIteration.callStackItem.publicInputs.noteEncryptedLogsHashes) +
23
+ countAccumulatedItems(publicInputs.end.noteEncryptedLogsHashes) >
24
24
  MAX_NOTE_ENCRYPTED_LOGS_PER_TX ||
25
- getNonEmptyItems(nextIteration.callStackItem.publicInputs.noteHashReadRequests).length +
26
- getNonEmptyItems(publicInputs.validationRequests.noteHashReadRequests).length >
25
+ countAccumulatedItems(nextIteration.callStackItem.publicInputs.noteHashReadRequests) +
26
+ countAccumulatedItems(publicInputs.validationRequests.noteHashReadRequests) >
27
27
  MAX_NOTE_HASH_READ_REQUESTS_PER_TX ||
28
- getNonEmptyItems(nextIteration.callStackItem.publicInputs.nullifierReadRequests).length +
29
- getNonEmptyItems(publicInputs.validationRequests.nullifierReadRequests).length >
28
+ countAccumulatedItems(nextIteration.callStackItem.publicInputs.nullifierReadRequests) +
29
+ countAccumulatedItems(publicInputs.validationRequests.nullifierReadRequests) >
30
30
  MAX_NULLIFIER_READ_REQUESTS_PER_TX ||
31
- getNonEmptyItems(nextIteration.callStackItem.publicInputs.keyValidationRequestsAndGenerators).length +
32
- getNonEmptyItems(publicInputs.validationRequests.scopedKeyValidationRequestsAndGenerators).length >
31
+ countAccumulatedItems(nextIteration.callStackItem.publicInputs.keyValidationRequestsAndGenerators) +
32
+ countAccumulatedItems(publicInputs.validationRequests.scopedKeyValidationRequestsAndGenerators) >
33
33
  MAX_KEY_VALIDATION_REQUESTS_PER_TX
34
34
  );
35
35
  }
@@ -41,11 +41,14 @@ function hasTransientNullifier(publicInputs: PrivateKernelCircuitPublicInputs) {
41
41
  return publicInputs.end.nullifiers.some(n => noteHashSet.has(n.nullifiedNoteHash.toBigInt()));
42
42
  }
43
43
 
44
- export function somethingToReset(publicInputs: PrivateKernelCircuitPublicInputs) {
44
+ export function needsFinalReset(publicInputs: PrivateKernelCircuitPublicInputs) {
45
45
  return (
46
- getNonEmptyItems(publicInputs.validationRequests.noteHashReadRequests).length > 0 ||
47
- getNonEmptyItems(publicInputs.validationRequests.nullifierReadRequests).length > 0 ||
48
- getNonEmptyItems(publicInputs.validationRequests.scopedKeyValidationRequestsAndGenerators).length > 0 ||
46
+ countAccumulatedItems(publicInputs.end.noteHashes) > 0 ||
47
+ countAccumulatedItems(publicInputs.end.nullifiers) > 0 ||
48
+ countAccumulatedItems(publicInputs.end.encryptedLogsHashes) > 0 ||
49
+ countAccumulatedItems(publicInputs.validationRequests.noteHashReadRequests) > 0 ||
50
+ countAccumulatedItems(publicInputs.validationRequests.nullifierReadRequests) > 0 ||
51
+ countAccumulatedItems(publicInputs.validationRequests.scopedKeyValidationRequestsAndGenerators) > 0 ||
49
52
  hasTransientNullifier(publicInputs)
50
53
  );
51
54
  }
@@ -31,7 +31,7 @@ import {
31
31
 
32
32
  import { type WitnessMap } from '@noir-lang/types';
33
33
 
34
- import { buildPrivateKernelResetInputs, needsReset, somethingToReset } from './hints/index.js';
34
+ import { buildPrivateKernelResetInputs, needsFinalReset, needsReset } from './hints/index.js';
35
35
  import { type ProvingDataOracle } from './proving_data_oracle.js';
36
36
 
37
37
  const NULL_PROVE_OUTPUT: PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs> = {
@@ -88,6 +88,7 @@ export class KernelProver {
88
88
  noteHashLeafIndexMap,
89
89
  noteHashNullifierCounterMap,
90
90
  validationRequestsSplitCounter,
91
+ false,
91
92
  );
92
93
  output = await this.proofCreator.simulateProofReset(resetInputs);
93
94
  // TODO(#7368) consider refactoring this redundant bytecode pushing
@@ -135,13 +136,14 @@ export class KernelProver {
135
136
  firstIteration = false;
136
137
  }
137
138
 
138
- if (somethingToReset(output.publicInputs)) {
139
+ if (needsFinalReset(output.publicInputs)) {
139
140
  const resetInputs = await this.getPrivateKernelResetInputs(
140
141
  executionStack,
141
142
  output,
142
143
  noteHashLeafIndexMap,
143
144
  noteHashNullifierCounterMap,
144
145
  validationRequestsSplitCounter,
146
+ true,
145
147
  );
146
148
  output = await this.proofCreator.simulateProofReset(resetInputs);
147
149
  // TODO(#7368) consider refactoring this redundant bytecode pushing
@@ -188,6 +190,7 @@ export class KernelProver {
188
190
  noteHashLeafIndexMap: Map<bigint, bigint>,
189
191
  noteHashNullifierCounterMap: Map<number, number>,
190
192
  validationRequestsSplitCounter: number,
193
+ shouldSilo: boolean,
191
194
  ) {
192
195
  const previousVkMembershipWitness = await this.oracle.getVkMembershipWitness(output.verificationKey);
193
196
  const previousKernelData = new PrivateKernelData(
@@ -203,6 +206,7 @@ export class KernelProver {
203
206
  noteHashLeafIndexMap,
204
207
  noteHashNullifierCounterMap,
205
208
  validationRequestsSplitCounter,
209
+ shouldSilo,
206
210
  this.oracle,
207
211
  );
208
212
  }
@@ -16,6 +16,7 @@ import {
16
16
  TxHash,
17
17
  TxReceipt,
18
18
  UnencryptedL2BlockL2Logs,
19
+ UniqueNote,
19
20
  } from '@aztec/circuit-types';
20
21
  import { FunctionSelector } from '@aztec/circuits.js';
21
22
  import { NoteSelector } from '@aztec/foundation/abi';
@@ -48,6 +49,7 @@ export function createPXERpcServer(pxeService: PXE): JsonRpcServer {
48
49
  GrumpkinScalar,
49
50
  Note,
50
51
  ExtendedNote,
52
+ UniqueNote,
51
53
  AuthWitness,
52
54
  L2Block,
53
55
  TxEffect,
@@ -57,6 +57,7 @@ export async function createPXEService(
57
57
  : new BBNativePrivateKernelProver(
58
58
  config.bbBinaryPath!,
59
59
  config.bbWorkingDirectory!,
60
+ !!config.bbSkipCleanup,
60
61
  createDebugLogger('aztec:pxe:bb-native-prover' + (logSuffix ? `:${logSuffix}` : '')),
61
62
  );
62
63
  }
@@ -5,7 +5,7 @@ import {
5
5
  EncryptedTxL2Logs,
6
6
  type EventMetadata,
7
7
  EventType,
8
- ExtendedNote,
8
+ type ExtendedNote,
9
9
  type FunctionCall,
10
10
  type GetUnencryptedLogsResponse,
11
11
  type IncomingNotesFilter,
@@ -26,6 +26,7 @@ import {
26
26
  type TxHash,
27
27
  type TxReceipt,
28
28
  UnencryptedTxL2Logs,
29
+ UniqueNote,
29
30
  isNoirCallStackUnresolved,
30
31
  } from '@aztec/circuit-types';
31
32
  import {
@@ -296,7 +297,7 @@ export class PXEService implements PXE {
296
297
  return await this.node.getPublicStorageAt(contract, slot, 'latest');
297
298
  }
298
299
 
299
- public async getIncomingNotes(filter: IncomingNotesFilter): Promise<ExtendedNote[]> {
300
+ public async getIncomingNotes(filter: IncomingNotesFilter): Promise<UniqueNote[]> {
300
301
  const noteDaos = await this.db.getIncomingNotes(filter);
301
302
 
302
303
  // TODO(#6531): Refactor --> This type conversion is ugly but I decided to keep it this way for now because
@@ -312,12 +313,20 @@ export class PXEService implements PXE {
312
313
  }
313
314
  owner = completeAddresses.address;
314
315
  }
315
- return new ExtendedNote(dao.note, owner, dao.contractAddress, dao.storageSlot, dao.noteTypeId, dao.txHash);
316
+ return new UniqueNote(
317
+ dao.note,
318
+ owner,
319
+ dao.contractAddress,
320
+ dao.storageSlot,
321
+ dao.noteTypeId,
322
+ dao.txHash,
323
+ dao.nonce,
324
+ );
316
325
  });
317
326
  return Promise.all(extendedNotes);
318
327
  }
319
328
 
320
- public async getOutgoingNotes(filter: OutgoingNotesFilter): Promise<ExtendedNote[]> {
329
+ public async getOutgoingNotes(filter: OutgoingNotesFilter): Promise<UniqueNote[]> {
321
330
  const noteDaos = await this.db.getOutgoingNotes(filter);
322
331
 
323
332
  // TODO(#6532): Refactor --> This type conversion is ugly but I decided to keep it this way for now because
@@ -333,7 +342,15 @@ export class PXEService implements PXE {
333
342
  }
334
343
  owner = completeAddresses.address;
335
344
  }
336
- return new ExtendedNote(dao.note, owner, dao.contractAddress, dao.storageSlot, dao.noteTypeId, dao.txHash);
345
+ return new UniqueNote(
346
+ dao.note,
347
+ owner,
348
+ dao.contractAddress,
349
+ dao.storageSlot,
350
+ dao.noteTypeId,
351
+ dao.txHash,
352
+ dao.nonce,
353
+ );
337
354
  });
338
355
  return Promise.all(extendedNotes);
339
356
  }
@@ -344,7 +361,7 @@ export class PXEService implements PXE {
344
361
  throw new Error(`Unknown account: ${note.owner.toString()}`);
345
362
  }
346
363
 
347
- const nonces = await this.getNoteNonces(note);
364
+ const nonces = await this.#getNoteNonces(note);
348
365
  if (nonces.length === 0) {
349
366
  throw new Error(`Cannot find the note in tx: ${note.txHash}.`);
350
367
  }
@@ -394,7 +411,7 @@ export class PXEService implements PXE {
394
411
  throw new Error(`Unknown account: ${note.owner.toString()}`);
395
412
  }
396
413
 
397
- const nonces = await this.getNoteNonces(note);
414
+ const nonces = await this.#getNoteNonces(note);
398
415
  if (nonces.length === 0) {
399
416
  throw new Error(`Cannot find the note in tx: ${note.txHash}.`);
400
417
  }
@@ -440,9 +457,8 @@ export class PXEService implements PXE {
440
457
  * @param note - The note to find the nonces for.
441
458
  * @returns The nonces of the note.
442
459
  * @remarks More than a single nonce may be returned since there might be more than one nonce for a given note.
443
- * TODO(#4956): Un-expose this
444
460
  */
445
- public async getNoteNonces(note: ExtendedNote): Promise<Fr[]> {
461
+ async #getNoteNonces(note: ExtendedNote): Promise<Fr[]> {
446
462
  const tx = await this.node.getTxEffect(note.txHash);
447
463
  if (!tx) {
448
464
  throw new Error(`Unknown tx: ${note.txHash}`);
@@ -497,6 +513,7 @@ export class PXEService implements PXE {
497
513
  txRequest: TxExecutionRequest,
498
514
  simulatePublic: boolean,
499
515
  msgSender: AztecAddress | undefined = undefined,
516
+ skipTxValidation: boolean = true, // TODO(#7956): make the default be false
500
517
  scopes?: AztecAddress[],
501
518
  ): Promise<SimulatedTx> {
502
519
  return await this.jobQueue.put(async () => {
@@ -505,6 +522,12 @@ export class PXEService implements PXE {
505
522
  simulatedTx.publicOutput = await this.#simulatePublicCalls(simulatedTx.tx);
506
523
  }
507
524
 
525
+ if (!skipTxValidation) {
526
+ if (!(await this.node.isValidTx(simulatedTx.tx))) {
527
+ throw new Error('The simulated transaction is unable to be added to state and is invalid.');
528
+ }
529
+ }
530
+
508
531
  // We log only if the msgSender is undefined, as simulating with a different msgSender
509
532
  // is unlikely to be a real transaction, and likely to be only used to read data.
510
533
  // Meaning that it will not necessarily have produced a nullifier (and thus have no TxHash)
@@ -718,7 +741,9 @@ export class PXEService implements PXE {
718
741
  const noirCallStack = err.getNoirCallStack();
719
742
  if (debugInfo && isNoirCallStackUnresolved(noirCallStack)) {
720
743
  try {
721
- const parsedCallStack = resolveOpcodeLocations(noirCallStack, debugInfo);
744
+ // Public functions are simulated as a single Brillig entry point.
745
+ // Thus, we can safely assume here that the Brillig function id is `0`.
746
+ const parsedCallStack = resolveOpcodeLocations(noirCallStack, debugInfo, 0);
722
747
  err.setNoirCallStack(parsedCallStack);
723
748
  } catch (err) {
724
749
  this.log.warn(