@aztec/simulator 0.45.0 → 0.46.1

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.
Files changed (67) hide show
  1. package/dest/acvm/oracle/oracle.d.ts +4 -4
  2. package/dest/acvm/oracle/oracle.d.ts.map +1 -1
  3. package/dest/acvm/oracle/oracle.js +13 -13
  4. package/dest/acvm/serialize.d.ts.map +1 -1
  5. package/dest/acvm/serialize.js +2 -1
  6. package/dest/avm/opcodes/ec_add.js +3 -3
  7. package/dest/avm/opcodes/multi_scalar_mul.js +3 -3
  8. package/dest/client/client_execution_context.d.ts +0 -1
  9. package/dest/client/client_execution_context.d.ts.map +1 -1
  10. package/dest/client/client_execution_context.js +9 -9
  11. package/dest/client/execution_result.js +2 -2
  12. package/dest/client/simulator.d.ts.map +1 -1
  13. package/dest/client/simulator.js +2 -2
  14. package/dest/mocks/fixtures.js +5 -5
  15. package/dest/public/abstract_phase_manager.d.ts +8 -3
  16. package/dest/public/abstract_phase_manager.d.ts.map +1 -1
  17. package/dest/public/abstract_phase_manager.js +37 -24
  18. package/dest/public/app_logic_phase_manager.d.ts +3 -1
  19. package/dest/public/app_logic_phase_manager.d.ts.map +1 -1
  20. package/dest/public/app_logic_phase_manager.js +11 -4
  21. package/dest/public/execution.d.ts +4 -4
  22. package/dest/public/execution.d.ts.map +1 -1
  23. package/dest/public/execution.js +5 -5
  24. package/dest/public/executor.d.ts.map +1 -1
  25. package/dest/public/executor.js +2 -3
  26. package/dest/public/hints_builder.d.ts +3 -3
  27. package/dest/public/hints_builder.d.ts.map +1 -1
  28. package/dest/public/hints_builder.js +1 -1
  29. package/dest/public/public_kernel.d.ts.map +1 -1
  30. package/dest/public/public_kernel.js +6 -6
  31. package/dest/public/public_processor.d.ts.map +1 -1
  32. package/dest/public/public_processor.js +4 -2
  33. package/dest/public/setup_phase_manager.d.ts +3 -1
  34. package/dest/public/setup_phase_manager.d.ts.map +1 -1
  35. package/dest/public/setup_phase_manager.js +11 -4
  36. package/dest/public/side_effect_trace.d.ts +3 -5
  37. package/dest/public/side_effect_trace.d.ts.map +1 -1
  38. package/dest/public/side_effect_trace.js +16 -19
  39. package/dest/public/tail_phase_manager.d.ts +3 -1
  40. package/dest/public/tail_phase_manager.d.ts.map +1 -1
  41. package/dest/public/tail_phase_manager.js +10 -9
  42. package/dest/public/teardown_phase_manager.d.ts +3 -1
  43. package/dest/public/teardown_phase_manager.d.ts.map +1 -1
  44. package/dest/public/teardown_phase_manager.js +11 -4
  45. package/dest/rollup/rollup.d.ts.map +1 -1
  46. package/dest/rollup/rollup.js +7 -7
  47. package/package.json +9 -9
  48. package/src/acvm/oracle/oracle.ts +13 -23
  49. package/src/acvm/serialize.ts +1 -0
  50. package/src/avm/opcodes/ec_add.ts +2 -2
  51. package/src/avm/opcodes/multi_scalar_mul.ts +2 -2
  52. package/src/client/client_execution_context.ts +4 -8
  53. package/src/client/execution_result.ts +1 -1
  54. package/src/client/simulator.ts +0 -1
  55. package/src/mocks/fixtures.ts +4 -4
  56. package/src/public/abstract_phase_manager.ts +65 -28
  57. package/src/public/app_logic_phase_manager.ts +29 -10
  58. package/src/public/execution.ts +9 -9
  59. package/src/public/executor.ts +0 -3
  60. package/src/public/hints_builder.ts +3 -3
  61. package/src/public/public_kernel.ts +5 -8
  62. package/src/public/public_processor.ts +4 -1
  63. package/src/public/setup_phase_manager.ts +16 -4
  64. package/src/public/side_effect_trace.ts +13 -19
  65. package/src/public/tail_phase_manager.ts +19 -9
  66. package/src/public/teardown_phase_manager.ts +16 -4
  67. package/src/rollup/rollup.ts +20 -10
@@ -10,9 +10,9 @@ export class TeardownPhaseManager extends AbstractPhaseManager {
10
10
  this.publicContractsDB = publicContractsDB;
11
11
  this.publicStateDB = publicStateDB;
12
12
  }
13
- async handle(tx, previousPublicKernelOutput) {
13
+ async handle(tx, previousPublicKernelOutput, previousKernelArtifact) {
14
14
  this.log.verbose(`Processing tx ${tx.getTxHash()}`);
15
- const { publicProvingInformation, kernelOutput, newUnencryptedLogs, revertReason, gasUsed } = await this.processEnqueuedPublicCalls(tx, previousPublicKernelOutput).catch(
15
+ const { publicProvingInformation, kernelOutput, lastKernelArtifact, newUnencryptedLogs, revertReason, gasUsed } = await this.processEnqueuedPublicCalls(tx, previousPublicKernelOutput, previousKernelArtifact).catch(
16
16
  // the abstract phase manager throws if simulation gives error in a non-revertible phase
17
17
  async (err) => {
18
18
  await this.publicStateDB.rollbackToCommit();
@@ -31,7 +31,14 @@ export class TeardownPhaseManager extends AbstractPhaseManager {
31
31
  const publicProvingRequests = publicProvingInformation.map(info => {
32
32
  return makeAvmProvingRequest(info, PublicKernelType.TEARDOWN);
33
33
  });
34
- return { publicProvingRequests, publicKernelOutput: kernelOutput, revertReason, returnValues: [], gasUsed };
34
+ return {
35
+ publicProvingRequests,
36
+ publicKernelOutput: kernelOutput,
37
+ lastKernelArtifact,
38
+ revertReason,
39
+ returnValues: [],
40
+ gasUsed,
41
+ };
35
42
  }
36
43
  getTransactionFee(tx, previousPublicKernelOutput) {
37
44
  const gasSettings = tx.data.constants.txContext.gasSettings;
@@ -46,4 +53,4 @@ export class TeardownPhaseManager extends AbstractPhaseManager {
46
53
  return tx.data.constants.txContext.gasSettings.getTeardownLimits();
47
54
  }
48
55
  }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhcmRvd25fcGhhc2VfbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvdGVhcmRvd25fcGhhc2VfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQXNDLE1BQU0sc0JBQXNCLENBQUM7QUFXNUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUkxRjs7R0FFRztBQUNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxvQkFBb0I7SUFDNUQsWUFDRSxFQUF3QixFQUN4QixjQUE4QixFQUM5QixZQUEwQyxFQUMxQyxlQUFnQyxFQUNoQyxnQkFBd0IsRUFDZCxpQkFBOEMsRUFDOUMsYUFBNEIsRUFDdEMsUUFBMEIsZ0JBQWdCLENBQUMsUUFBUTtRQUVuRCxLQUFLLENBQUMsRUFBRSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBSnhFLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBNkI7UUFDOUMsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFJeEMsQ0FBQztJQUVRLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBTSxFQUFFLDBCQUEyRDtRQUN2RixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwRCxNQUFNLEVBQUUsd0JBQXdCLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsR0FDekYsTUFBTSxJQUFJLENBQUMsMEJBQTBCLENBQUMsRUFBRSxFQUFFLDBCQUEwQixDQUFDLENBQUMsS0FBSztRQUN6RSx3RkFBd0Y7UUFDeEYsS0FBSyxFQUFDLEdBQUcsRUFBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDNUMsTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDLENBQ0YsQ0FBQztRQUNKLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDaEQsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RDLENBQUM7YUFBTSxDQUFDO1lBQ04sZ0ZBQWdGO1lBQ2hGLG9DQUFvQztZQUNwQyxFQUFFLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCw2Q0FBNkM7UUFDN0MsTUFBTSxxQkFBcUIsR0FBMkIsd0JBQXdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hGLE9BQU8scUJBQXFCLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUM5RyxDQUFDO0lBRWtCLGlCQUFpQixDQUFDLEVBQU0sRUFBRSwwQkFBMkQ7UUFDdEcsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztRQUM1RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQztRQUM3QyxnRkFBZ0Y7UUFDaEYsTUFBTSxPQUFPLEdBQUcsMEJBQTBCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEgsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkcsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRWtCLGVBQWUsQ0FBQyxFQUFNLEVBQUUsMkJBQTREO1FBQ3JHLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3JFLENBQUM7Q0FDRiJ9
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhcmRvd25fcGhhc2VfbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvdGVhcmRvd25fcGhhc2VfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQXNDLE1BQU0sc0JBQXNCLENBQUM7QUFZNUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUkxRjs7R0FFRztBQUNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxvQkFBb0I7SUFDNUQsWUFDRSxFQUF3QixFQUN4QixjQUE4QixFQUM5QixZQUEwQyxFQUMxQyxlQUFnQyxFQUNoQyxnQkFBd0IsRUFDZCxpQkFBOEMsRUFDOUMsYUFBNEIsRUFDdEMsUUFBMEIsZ0JBQWdCLENBQUMsUUFBUTtRQUVuRCxLQUFLLENBQUMsRUFBRSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBSnhFLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBNkI7UUFDOUMsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFJeEMsQ0FBQztJQUVRLEtBQUssQ0FBQyxNQUFNLENBQ25CLEVBQU0sRUFDTiwwQkFBMkQsRUFDM0Qsc0JBQXdDO1FBRXhDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sRUFBRSx3QkFBd0IsRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxHQUM3RyxNQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLEVBQUUsMEJBQTBCLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyxLQUFLO1FBQ2pHLHdGQUF3RjtRQUN4RixLQUFLLEVBQUMsR0FBRyxFQUFDLEVBQUU7WUFDVixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM1QyxNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUMsQ0FDRixDQUFDO1FBQ0osSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUNoRCxFQUFFLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEMsQ0FBQzthQUFNLENBQUM7WUFDTixnRkFBZ0Y7WUFDaEYsb0NBQW9DO1lBQ3BDLEVBQUUsQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDekQsQ0FBQztRQUVELDZDQUE2QztRQUM3QyxNQUFNLHFCQUFxQixHQUEyQix3QkFBd0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDeEYsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEUsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPO1lBQ0wscUJBQXFCO1lBQ3JCLGtCQUFrQixFQUFFLFlBQVk7WUFDaEMsa0JBQWtCO1lBQ2xCLFlBQVk7WUFDWixZQUFZLEVBQUUsRUFBRTtZQUNoQixPQUFPO1NBQ1IsQ0FBQztJQUNKLENBQUM7SUFFa0IsaUJBQWlCLENBQUMsRUFBTSxFQUFFLDBCQUEyRDtRQUN0RyxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO1FBQzVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDO1FBQzdDLGdGQUFnRjtRQUNoRixNQUFNLE9BQU8sR0FBRywwQkFBMEIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwSCxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuRyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFa0IsZUFBZSxDQUFDLEVBQU0sRUFBRSwyQkFBNEQ7UUFDckcsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDckUsQ0FBQztDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/rollup/rollup.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC5B,MAAM,oBAAoB,CAAC;AAsB5B,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzE;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzE;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACnF;;;;OAIG;IACH,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACrF;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;CAC7E;AAED;;GAEG;AACH,qBAAa,0BAA2B,YAAW,eAAe;IAMpD,OAAO,CAAC,kBAAkB;IALtC,OAAO,CAAC,GAAG,CAA+C;IAG1D,OAAO,CAAC,aAAa,CAAsC;gBAEvC,kBAAkB,EAAE,kBAAkB;IAE1D;;;;OAIG;IACU,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAUrF;;;;OAIG;IACU,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAUrF;;;;OAIG;IACU,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAS/F;;;;OAIG;IACU,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAUjG;;;;OAIG;IACU,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAgBzF"}
1
+ {"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/rollup/rollup.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC5B,MAAM,oBAAoB,CAAC;AAkB5B,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzE;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzE;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACnF;;;;OAIG;IACH,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACrF;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;CAC7E;AAED;;GAEG;AACH,qBAAa,0BAA2B,YAAW,eAAe;IAMpD,OAAO,CAAC,kBAAkB;IALtC,OAAO,CAAC,GAAG,CAA+C;IAG1D,OAAO,CAAC,aAAa,CAAsC;gBAEvC,kBAAkB,EAAE,kBAAkB;IAE1D;;;;OAIG;IACU,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAarF;;;;OAIG;IACU,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAarF;;;;OAIG;IACU,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAY/F;;;;OAIG;IACU,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAajG;;;;OAIG;IACU,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAkBzF"}
@@ -1,6 +1,6 @@
1
1
  import { createDebugLogger } from '@aztec/foundation/log';
2
2
  import { elapsed } from '@aztec/foundation/timer';
3
- import { BaseParityArtifact, MergeRollupArtifact, RootParityArtifact, RootRollupArtifact, SimulatedBaseRollupArtifact, convertBaseParityInputsToWitnessMap, convertBaseParityOutputsFromWitnessMap, convertMergeRollupInputsToWitnessMap, convertMergeRollupOutputsFromWitnessMap, convertRootParityInputsToWitnessMap, convertRootParityOutputsFromWitnessMap, convertRootRollupInputsToWitnessMap, convertRootRollupOutputsFromWitnessMap, convertSimulatedBaseRollupInputsToWitnessMap, convertSimulatedBaseRollupOutputsFromWitnessMap, } from '@aztec/noir-protocol-circuits-types';
3
+ import { SimulatedServerCircuitArtifacts, convertBaseParityInputsToWitnessMap, convertBaseParityOutputsFromWitnessMap, convertMergeRollupInputsToWitnessMap, convertMergeRollupOutputsFromWitnessMap, convertRootParityInputsToWitnessMap, convertRootParityOutputsFromWitnessMap, convertRootRollupInputsToWitnessMap, convertRootRollupOutputsFromWitnessMap, convertSimulatedBaseRollupInputsToWitnessMap, convertSimulatedBaseRollupOutputsFromWitnessMap, } from '@aztec/noir-protocol-circuits-types';
4
4
  import { WASMSimulator } from '../providers/acvm_wasm.js';
5
5
  /**
6
6
  * Implements the rollup circuit simulator.
@@ -19,7 +19,7 @@ export class RealRollupCircuitSimulator {
19
19
  */
20
20
  async baseParityCircuit(inputs) {
21
21
  const witnessMap = convertBaseParityInputsToWitnessMap(inputs);
22
- const witness = await this.simulationProvider.simulateCircuit(witnessMap, BaseParityArtifact);
22
+ const witness = await this.simulationProvider.simulateCircuit(witnessMap, SimulatedServerCircuitArtifacts.BaseParityArtifact);
23
23
  const result = convertBaseParityOutputsFromWitnessMap(witness);
24
24
  return Promise.resolve(result);
25
25
  }
@@ -30,7 +30,7 @@ export class RealRollupCircuitSimulator {
30
30
  */
31
31
  async rootParityCircuit(inputs) {
32
32
  const witnessMap = convertRootParityInputsToWitnessMap(inputs);
33
- const witness = await this.simulationProvider.simulateCircuit(witnessMap, RootParityArtifact);
33
+ const witness = await this.simulationProvider.simulateCircuit(witnessMap, SimulatedServerCircuitArtifacts.RootParityArtifact);
34
34
  const result = convertRootParityOutputsFromWitnessMap(witness);
35
35
  return Promise.resolve(result);
36
36
  }
@@ -41,7 +41,7 @@ export class RealRollupCircuitSimulator {
41
41
  */
42
42
  async baseRollupCircuit(input) {
43
43
  const witnessMap = convertSimulatedBaseRollupInputsToWitnessMap(input);
44
- const witness = await this.simulationProvider.simulateCircuit(witnessMap, SimulatedBaseRollupArtifact);
44
+ const witness = await this.simulationProvider.simulateCircuit(witnessMap, SimulatedServerCircuitArtifacts.BaseRollupArtifact);
45
45
  const result = convertSimulatedBaseRollupOutputsFromWitnessMap(witness);
46
46
  return Promise.resolve(result);
47
47
  }
@@ -52,7 +52,7 @@ export class RealRollupCircuitSimulator {
52
52
  */
53
53
  async mergeRollupCircuit(input) {
54
54
  const witnessMap = convertMergeRollupInputsToWitnessMap(input);
55
- const witness = await this.wasmSimulator.simulateCircuit(witnessMap, MergeRollupArtifact);
55
+ const witness = await this.wasmSimulator.simulateCircuit(witnessMap, SimulatedServerCircuitArtifacts.MergeRollupArtifact);
56
56
  const result = convertMergeRollupOutputsFromWitnessMap(witness);
57
57
  return result;
58
58
  }
@@ -63,7 +63,7 @@ export class RealRollupCircuitSimulator {
63
63
  */
64
64
  async rootRollupCircuit(input) {
65
65
  const witnessMap = convertRootRollupInputsToWitnessMap(input);
66
- const [duration, witness] = await elapsed(() => this.wasmSimulator.simulateCircuit(witnessMap, RootRollupArtifact));
66
+ const [duration, witness] = await elapsed(() => this.wasmSimulator.simulateCircuit(witnessMap, SimulatedServerCircuitArtifacts.RootRollupArtifact));
67
67
  const result = convertRootRollupOutputsFromWitnessMap(witness);
68
68
  this.log.debug(`Simulated root rollup circuit`, {
69
69
  eventName: 'circuit-simulation',
@@ -75,4 +75,4 @@ export class RealRollupCircuitSimulator {
75
75
  return result;
76
76
  }
77
77
  }
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sbHVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvbGx1cC9yb2xsdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsMkJBQTJCLEVBQzNCLG1DQUFtQyxFQUNuQyxzQ0FBc0MsRUFDdEMsb0NBQW9DLEVBQ3BDLHVDQUF1QyxFQUN2QyxtQ0FBbUMsRUFDbkMsc0NBQXNDLEVBQ3RDLG1DQUFtQyxFQUNuQyxzQ0FBc0MsRUFDdEMsNENBQTRDLEVBQzVDLCtDQUErQyxHQUNoRCxNQUFNLHFDQUFxQyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQXVDMUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sMEJBQTBCO0lBTXJDLFlBQW9CLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBTGxELFFBQUcsR0FBRyxpQkFBaUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBRTFELHNEQUFzRDtRQUM5QyxrQkFBYSxHQUFrQixJQUFJLGFBQWEsRUFBRSxDQUFDO0lBRUUsQ0FBQztJQUU5RDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQXdCO1FBQ3JELE1BQU0sVUFBVSxHQUFHLG1DQUFtQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9ELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUU5RixNQUFNLE1BQU0sR0FBRyxzQ0FBc0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUvRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBd0I7UUFDckQsTUFBTSxVQUFVLEdBQUcsbUNBQW1DLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFL0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBRTlGLE1BQU0sTUFBTSxHQUFHLHNDQUFzQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRS9ELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUF1QjtRQUNwRCxNQUFNLFVBQVUsR0FBRyw0Q0FBNEMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV2RSxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLDJCQUEyQixDQUFDLENBQUM7UUFFdkcsTUFBTSxNQUFNLEdBQUcsK0NBQStDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFeEUsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQXdCO1FBQ3RELE1BQU0sVUFBVSxHQUFHLG9DQUFvQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9ELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFFMUYsTUFBTSxNQUFNLEdBQUcsdUNBQXVDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFaEUsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBdUI7UUFDcEQsTUFBTSxVQUFVLEdBQUcsbUNBQW1DLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUQsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBRXBILE1BQU0sTUFBTSxHQUFHLHNDQUFzQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLCtCQUErQixFQUFFO1lBQzlDLFNBQVMsRUFBRSxvQkFBb0I7WUFDL0IsV0FBVyxFQUFFLGFBQWE7WUFDMUIsUUFBUTtZQUNSLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTTtZQUNsQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU07U0FDSixDQUFDLENBQUM7UUFDcEMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGIn0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sbHVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvbGx1cC9yb2xsdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFDTCwrQkFBK0IsRUFDL0IsbUNBQW1DLEVBQ25DLHNDQUFzQyxFQUN0QyxvQ0FBb0MsRUFDcEMsdUNBQXVDLEVBQ3ZDLG1DQUFtQyxFQUNuQyxzQ0FBc0MsRUFDdEMsbUNBQW1DLEVBQ25DLHNDQUFzQyxFQUN0Qyw0Q0FBNEMsRUFDNUMsK0NBQStDLEdBQ2hELE1BQU0scUNBQXFDLENBQUM7QUFFN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBdUMxRDs7R0FFRztBQUNILE1BQU0sT0FBTywwQkFBMEI7SUFNckMsWUFBb0Isa0JBQXNDO1FBQXRDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFMbEQsUUFBRyxHQUFHLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFFMUQsc0RBQXNEO1FBQzlDLGtCQUFhLEdBQWtCLElBQUksYUFBYSxFQUFFLENBQUM7SUFFRSxDQUFDO0lBRTlEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBd0I7UUFDckQsTUFBTSxVQUFVLEdBQUcsbUNBQW1DLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFL0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUMzRCxVQUFVLEVBQ1YsK0JBQStCLENBQUMsa0JBQWtCLENBQ25ELENBQUM7UUFFRixNQUFNLE1BQU0sR0FBRyxzQ0FBc0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUvRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBd0I7UUFDckQsTUFBTSxVQUFVLEdBQUcsbUNBQW1DLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFL0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUMzRCxVQUFVLEVBQ1YsK0JBQStCLENBQUMsa0JBQWtCLENBQ25ELENBQUM7UUFFRixNQUFNLE1BQU0sR0FBRyxzQ0FBc0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUvRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBdUI7UUFDcEQsTUFBTSxVQUFVLEdBQUcsNENBQTRDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkUsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUMzRCxVQUFVLEVBQ1YsK0JBQStCLENBQUMsa0JBQWtCLENBQ25ELENBQUM7UUFFRixNQUFNLE1BQU0sR0FBRywrQ0FBK0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4RSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsS0FBd0I7UUFDdEQsTUFBTSxVQUFVLEdBQUcsb0NBQW9DLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FDdEQsVUFBVSxFQUNWLCtCQUErQixDQUFDLG1CQUFtQixDQUNwRCxDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQUcsdUNBQXVDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFaEUsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBdUI7UUFDcEQsTUFBTSxVQUFVLEdBQUcsbUNBQW1DLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUQsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FDN0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLCtCQUErQixDQUFDLGtCQUFrQixDQUFDLENBQ25HLENBQUM7UUFFRixNQUFNLE1BQU0sR0FBRyxzQ0FBc0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUvRCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsRUFBRTtZQUM5QyxTQUFTLEVBQUUsb0JBQW9CO1lBQy9CLFdBQVcsRUFBRSxhQUFhO1lBQzFCLFFBQVE7WUFDUixTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU07WUFDbEMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNO1NBQ0osQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/simulator",
3
- "version": "0.45.0",
3
+ "version": "0.46.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -56,14 +56,14 @@
56
56
  ]
57
57
  },
58
58
  "dependencies": {
59
- "@aztec/circuit-types": "0.45.0",
60
- "@aztec/circuits.js": "0.45.0",
61
- "@aztec/foundation": "0.45.0",
62
- "@aztec/noir-protocol-circuits-types": "0.45.0",
63
- "@aztec/protocol-contracts": "0.45.0",
64
- "@aztec/telemetry-client": "0.45.0",
65
- "@aztec/types": "0.45.0",
66
- "@aztec/world-state": "0.45.0",
59
+ "@aztec/circuit-types": "0.46.1",
60
+ "@aztec/circuits.js": "0.46.1",
61
+ "@aztec/foundation": "0.46.1",
62
+ "@aztec/noir-protocol-circuits-types": "0.46.1",
63
+ "@aztec/protocol-contracts": "0.46.1",
64
+ "@aztec/telemetry-client": "0.46.1",
65
+ "@aztec/types": "0.46.1",
66
+ "@aztec/world-state": "0.46.1",
67
67
  "@noir-lang/acvm_js": "portal:../../noir/packages/acvm_js",
68
68
  "@noir-lang/types": "portal:../../noir/packages/types",
69
69
  "levelup": "^5.1.1",
@@ -1,6 +1,6 @@
1
1
  import { MerkleTreeId, UnencryptedL2Log } from '@aztec/circuit-types';
2
2
  import { KeyValidationRequest } from '@aztec/circuits.js';
3
- import { EventSelector, FunctionSelector, NoteSelector } from '@aztec/foundation/abi';
3
+ import { FunctionSelector, NoteSelector } from '@aztec/foundation/abi';
4
4
  import { AztecAddress } from '@aztec/foundation/aztec-address';
5
5
  import { Fr, Point } from '@aztec/foundation/fields';
6
6
 
@@ -60,7 +60,7 @@ export class Oracle {
60
60
  async getKeyValidationRequest([pkMHash]: ACVMField[]): Promise<ACVMField[]> {
61
61
  const { pkM, skApp } = await this.typedOracle.getKeyValidationRequest(fromACVMField(pkMHash));
62
62
 
63
- return [toACVMField(pkM.x), toACVMField(pkM.y), toACVMField(skApp)];
63
+ return [toACVMField(pkM.x), toACVMField(pkM.y), toACVMField(pkM.isInfinite), toACVMField(skApp)];
64
64
  }
65
65
 
66
66
  async getContractInstance([address]: ACVMField[]) {
@@ -336,13 +336,15 @@ export class Oracle {
336
336
  [ovskApp]: ACVMField[],
337
337
  [ovpkMX]: ACVMField[],
338
338
  [ovpkMY]: ACVMField[],
339
+ [ovpkMIsInfinite]: ACVMField[],
339
340
  [ivpkMX]: ACVMField[],
340
341
  [ivpkMY]: ACVMField[],
342
+ [ivpkMIsInfinite]: ACVMField[],
341
343
  preimage: ACVMField[],
342
344
  ): ACVMField[] {
343
- const ovpkM = new Point(fromACVMField(ovpkMX), fromACVMField(ovpkMY));
345
+ const ovpkM = new Point(fromACVMField(ovpkMX), fromACVMField(ovpkMY), !fromACVMField(ovpkMIsInfinite).isZero());
344
346
  const ovKeys = new KeyValidationRequest(ovpkM, Fr.fromString(ovskApp));
345
- const ivpkM = new Point(fromACVMField(ivpkMX), fromACVMField(ivpkMY));
347
+ const ivpkM = new Point(fromACVMField(ivpkMX), fromACVMField(ivpkMY), !fromACVMField(ivpkMIsInfinite).isZero());
346
348
  const encLog = this.typedOracle.computeEncryptedEventLog(
347
349
  AztecAddress.fromString(contractAddress),
348
350
  Fr.fromString(randomness),
@@ -365,13 +367,15 @@ export class Oracle {
365
367
  [ovskApp]: ACVMField[],
366
368
  [ovpkMX]: ACVMField[],
367
369
  [ovpkMY]: ACVMField[],
370
+ [ovpkMIsInfinite]: ACVMField[],
368
371
  [ivpkMX]: ACVMField[],
369
372
  [ivpkMY]: ACVMField[],
373
+ [ivpkMIsInfinite]: ACVMField[],
370
374
  preimage: ACVMField[],
371
375
  ): ACVMField[] {
372
- const ovpkM = new Point(fromACVMField(ovpkMX), fromACVMField(ovpkMY));
376
+ const ovpkM = new Point(fromACVMField(ovpkMX), fromACVMField(ovpkMY), !fromACVMField(ovpkMIsInfinite).isZero());
373
377
  const ovKeys = new KeyValidationRequest(ovpkM, Fr.fromString(ovskApp));
374
- const ivpkM = new Point(fromACVMField(ivpkMX), fromACVMField(ivpkMY));
378
+ const ivpkM = new Point(fromACVMField(ivpkMX), fromACVMField(ivpkMY), !fromACVMField(ivpkMIsInfinite).isZero());
375
379
  const encLog = this.typedOracle.computeEncryptedNoteLog(
376
380
  AztecAddress.fromString(contractAddress),
377
381
  Fr.fromString(storageSlot),
@@ -387,18 +391,9 @@ export class Oracle {
387
391
  return bytes;
388
392
  }
389
393
 
390
- emitUnencryptedLog(
391
- [contractAddress]: ACVMField[],
392
- [eventSelector]: ACVMField[],
393
- message: ACVMField[],
394
- [counter]: ACVMField[],
395
- ): ACVMField {
394
+ emitUnencryptedLog([contractAddress]: ACVMField[], message: ACVMField[], [counter]: ACVMField[]): ACVMField {
396
395
  const logPayload = Buffer.concat(message.map(fromACVMField).map(f => f.toBuffer()));
397
- const log = new UnencryptedL2Log(
398
- AztecAddress.fromString(contractAddress),
399
- EventSelector.fromField(fromACVMField(eventSelector)),
400
- logPayload,
401
- );
396
+ const log = new UnencryptedL2Log(AztecAddress.fromString(contractAddress), logPayload);
402
397
 
403
398
  this.typedOracle.emitUnencryptedLog(log, +counter);
404
399
  return toACVMField(0);
@@ -406,16 +401,11 @@ export class Oracle {
406
401
 
407
402
  emitContractClassUnencryptedLog(
408
403
  [contractAddress]: ACVMField[],
409
- [eventSelector]: ACVMField[],
410
404
  message: ACVMField[],
411
405
  [counter]: ACVMField[],
412
406
  ): ACVMField {
413
407
  const logPayload = Buffer.concat(message.map(fromACVMField).map(f => f.toBuffer()));
414
- const log = new UnencryptedL2Log(
415
- AztecAddress.fromString(contractAddress),
416
- EventSelector.fromField(fromACVMField(eventSelector)),
417
- logPayload,
418
- );
408
+ const log = new UnencryptedL2Log(AztecAddress.fromString(contractAddress), logPayload);
419
409
 
420
410
  const logHash = this.typedOracle.emitContractClassUnencryptedLog(log, +counter);
421
411
  return toACVMField(logHash);
@@ -57,6 +57,7 @@ export function toAcvmEnqueuePublicFunctionResult(item: PublicCallRequest): ACVM
57
57
  item.contractAddress.toField(),
58
58
  item.functionSelector.toField(),
59
59
  ...item.callContext.toFields(),
60
+ item.sideEffectCounter,
60
61
  item.getArgsHash(),
61
62
  ];
62
63
  if (fields.length !== ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH) {
@@ -59,7 +59,7 @@ export class EcAdd extends Instruction {
59
59
  const p1X = memory.get(p1XOffset);
60
60
  const p1Y = memory.get(p1YOffset);
61
61
  const p1IsInfinite = memory.get(p1IsInfiniteOffset).toNumber() === 1;
62
- const p1 = new Point(p1X.toFr(), p1Y.toFr());
62
+ const p1 = new Point(p1X.toFr(), p1Y.toFr(), p1IsInfinite);
63
63
  if (!p1.isOnGrumpkin()) {
64
64
  throw new Error(`Point1 is not on the curve`);
65
65
  }
@@ -68,7 +68,7 @@ export class EcAdd extends Instruction {
68
68
  const p2Y = memory.get(p2YOffset);
69
69
  // unused. Point doesn't store this information
70
70
  const p2IsInfinite = memory.get(p2IsInfiniteOffset).toNumber() === 1;
71
- const p2 = new Point(p2X.toFr(), p2Y.toFr());
71
+ const p2 = new Point(p2X.toFr(), p2Y.toFr(), p2IsInfinite);
72
72
  if (!p2.isOnGrumpkin()) {
73
73
  throw new Error(`Point1 is not on the curve`);
74
74
  }
@@ -76,7 +76,7 @@ export class MultiScalarMul extends Instruction {
76
76
  // Now we need to reconstruct the points and scalars into something we can operate on.
77
77
  const grumpkinPoints: Point[] = [];
78
78
  for (let i = 0; i < numPoints; i++) {
79
- const p: Point = new Point(pointsVector[3 * i].toFr(), pointsVector[3 * i + 1].toFr());
79
+ const p: Point = new Point(pointsVector[3 * i].toFr(), pointsVector[3 * i + 1].toFr(), false);
80
80
  // Include this later when we have a standard for representing infinity
81
81
  // const isInf = pointsVector[i + 2].toBoolean();
82
82
 
@@ -104,7 +104,7 @@ export class MultiScalarMul extends Instruction {
104
104
  (acc, curr) => grumpkin.add(acc, grumpkin.mul(curr[0], curr[1])),
105
105
  grumpkin.mul(firstBaseScalarPair[0], firstBaseScalarPair[1]),
106
106
  );
107
- const output = outputPoint.toFieldsWithInf().map(f => new Field(f));
107
+ const output = outputPoint.toFields().map(f => new Field(f));
108
108
 
109
109
  memory.setSlice(outputOffset, output);
110
110
 
@@ -459,9 +459,9 @@ export class ClientExecutionContext extends ViewDataOracle {
459
459
 
460
460
  #checkValidStaticCall(childExecutionResult: ExecutionResult) {
461
461
  if (
462
- childExecutionResult.callStackItem.publicInputs.newNoteHashes.some(item => !item.isEmpty()) ||
463
- childExecutionResult.callStackItem.publicInputs.newNullifiers.some(item => !item.isEmpty()) ||
464
- childExecutionResult.callStackItem.publicInputs.newL2ToL1Msgs.some(item => !item.isEmpty()) ||
462
+ childExecutionResult.callStackItem.publicInputs.noteHashes.some(item => !item.isEmpty()) ||
463
+ childExecutionResult.callStackItem.publicInputs.nullifiers.some(item => !item.isEmpty()) ||
464
+ childExecutionResult.callStackItem.publicInputs.l2ToL1Msgs.some(item => !item.isEmpty()) ||
465
465
  childExecutionResult.callStackItem.publicInputs.encryptedLogsHashes.some(item => !item.isEmpty()) ||
466
466
  childExecutionResult.callStackItem.publicInputs.unencryptedLogsHashes.some(item => !item.isEmpty())
467
467
  ) {
@@ -500,7 +500,6 @@ export class ClientExecutionContext extends ViewDataOracle {
500
500
  const derivedCallContext = this.deriveCallContext(
501
501
  targetContractAddress,
502
502
  targetArtifact,
503
- sideEffectCounter,
504
503
  isDelegateCall,
505
504
  isStaticCall,
506
505
  );
@@ -559,7 +558,6 @@ export class ClientExecutionContext extends ViewDataOracle {
559
558
  const derivedCallContext = this.deriveCallContext(
560
559
  targetContractAddress,
561
560
  targetArtifact,
562
- sideEffectCounter,
563
561
  isDelegateCall,
564
562
  isStaticCall,
565
563
  );
@@ -579,6 +577,7 @@ export class ClientExecutionContext extends ViewDataOracle {
579
577
  parentCallContext: this.callContext,
580
578
  functionSelector,
581
579
  contractAddress: targetContractAddress,
580
+ sideEffectCounter,
582
581
  });
583
582
  }
584
583
 
@@ -654,7 +653,6 @@ export class ClientExecutionContext extends ViewDataOracle {
654
653
  * Derives the call context for a nested execution.
655
654
  * @param targetContractAddress - The address of the contract being called.
656
655
  * @param targetArtifact - The artifact of the function being called.
657
- * @param startSideEffectCounter - The side effect counter at the start of the call.
658
656
  * @param isDelegateCall - Whether the call is a delegate call.
659
657
  * @param isStaticCall - Whether the call is a static call.
660
658
  * @returns The derived call context.
@@ -662,7 +660,6 @@ export class ClientExecutionContext extends ViewDataOracle {
662
660
  private deriveCallContext(
663
661
  targetContractAddress: AztecAddress,
664
662
  targetArtifact: FunctionArtifact,
665
- startSideEffectCounter: number,
666
663
  isDelegateCall = false,
667
664
  isStaticCall = false,
668
665
  ) {
@@ -672,7 +669,6 @@ export class ClientExecutionContext extends ViewDataOracle {
672
669
  FunctionSelector.fromNameAndParameters(targetArtifact.name, targetArtifact.parameters),
673
670
  isDelegateCall,
674
671
  isStaticCall,
675
- startSideEffectCounter,
676
672
  );
677
673
  }
678
674
 
@@ -172,7 +172,7 @@ export function collectEnqueuedPublicFunctionCalls(execResult: ExecutionResult):
172
172
  return [
173
173
  ...execResult.enqueuedPublicFunctionCalls,
174
174
  ...execResult.nestedExecutions.flatMap(collectEnqueuedPublicFunctionCalls),
175
- ].sort((a, b) => b.callContext.sideEffectCounter - a.callContext.sideEffectCounter);
175
+ ].sort((a, b) => b.sideEffectCounter - a.sideEffectCounter);
176
176
  }
177
177
 
178
178
  export function collectPublicTeardownFunctionCall(execResult: ExecutionResult): PublicCallRequest {
@@ -67,7 +67,6 @@ export class AcirSimulator {
67
67
  FunctionSelector.fromNameAndParameters(entryPointArtifact.name, entryPointArtifact.parameters),
68
68
  false,
69
69
  entryPointArtifact.isStatic,
70
- startSideEffectCounter,
71
70
  );
72
71
  const context = new ClientExecutionContext(
73
72
  contractAddress,
@@ -75,7 +75,7 @@ export class PublicExecutionResultBuilder {
75
75
  revertReason?: SimulationError;
76
76
  }) {
77
77
  const builder = new PublicExecutionResultBuilder({
78
- callContext: new CallContext(from, tx.to, tx.selector, false, false, 0),
78
+ callContext: new CallContext(from, tx.to, tx.selector, false, false),
79
79
  contractAddress: tx.to,
80
80
  functionSelector: tx.selector,
81
81
  args: tx.args,
@@ -128,9 +128,9 @@ export class PublicExecutionResultBuilder {
128
128
  l1ToL2MsgReadRequests: [],
129
129
  contractStorageUpdateRequests: this._contractStorageUpdateRequests,
130
130
  returnValues: padArrayEnd(this._returnValues, Fr.ZERO, 4), // TODO(#5450) Need to use the proper return values here
131
- newNoteHashes: [],
132
- newNullifiers: [],
133
- newL2ToL1Messages: [],
131
+ noteHashes: [],
132
+ nullifiers: [],
133
+ l2ToL1Messages: [],
134
134
  contractStorageReads: [],
135
135
  unencryptedLogsHashes: [],
136
136
  unencryptedLogs: UnencryptedFunctionL2Logs.empty(),
@@ -25,17 +25,16 @@ import {
25
25
  L2ToL1Message,
26
26
  LogHash,
27
27
  MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_CALL,
28
- MAX_NEW_L2_TO_L1_MSGS_PER_CALL,
29
- MAX_NEW_NOTE_HASHES_PER_CALL,
30
- MAX_NEW_NULLIFIERS_PER_CALL,
28
+ MAX_L2_TO_L1_MSGS_PER_CALL,
29
+ MAX_NOTE_HASHES_PER_CALL,
31
30
  MAX_NOTE_HASH_READ_REQUESTS_PER_CALL,
31
+ MAX_NULLIFIERS_PER_CALL,
32
32
  MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL,
33
33
  MAX_NULLIFIER_READ_REQUESTS_PER_CALL,
34
34
  MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,
35
35
  MAX_PUBLIC_DATA_READS_PER_CALL,
36
36
  MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,
37
37
  MAX_UNENCRYPTED_LOGS_PER_CALL,
38
- MembershipWitness,
39
38
  NESTED_RECURSIVE_PROOF_LENGTH,
40
39
  NoteHash,
41
40
  Nullifier,
@@ -48,14 +47,19 @@ import {
48
47
  PublicKernelData,
49
48
  ReadRequest,
50
49
  RevertCode,
51
- VK_TREE_HEIGHT,
52
- VerificationKeyData,
53
50
  makeEmptyProof,
54
51
  makeEmptyRecursiveProof,
55
52
  } from '@aztec/circuits.js';
56
53
  import { computeVarArgsHash } from '@aztec/circuits.js/hash';
57
54
  import { padArrayEnd } from '@aztec/foundation/collection';
58
55
  import { type DebugLogger, createDebugLogger } from '@aztec/foundation/log';
56
+ import {
57
+ type ProtocolArtifact,
58
+ ProtocolCircuitVkIndexes,
59
+ ProtocolCircuitVks,
60
+ getVKIndex,
61
+ getVKSiblingPath,
62
+ } from '@aztec/noir-protocol-circuits-types';
59
63
  import {
60
64
  type PublicExecutionRequest,
61
65
  type PublicExecutionResult,
@@ -106,6 +110,8 @@ export type TxPublicCallsResult = {
106
110
  publicProvingInformation: PublicProvingInformation[];
107
111
  /** The public kernel output at the end of the Tx */
108
112
  kernelOutput: PublicKernelCircuitPublicInputs;
113
+ /** The last circuit ran by this phase */
114
+ lastKernelArtifact: ProtocolArtifact;
109
115
  /** Unencrypted logs generated during the execution of this Tx */
110
116
  newUnencryptedLogs: UnencryptedFunctionL2Logs[];
111
117
  /** Revert reason, if any */
@@ -121,6 +127,8 @@ export type PhaseResult = {
121
127
  publicProvingRequests: PublicProvingRequest[];
122
128
  /** The output of the public kernel circuit simulation for this phase */
123
129
  publicKernelOutput: PublicKernelCircuitPublicInputs;
130
+ /** The last circuit ran by this phase */
131
+ lastKernelArtifact: ProtocolArtifact;
124
132
  /** The final output of the public kernel circuit for this phase */
125
133
  finalKernelOutput?: KernelCircuitPublicInputs;
126
134
  /** Revert reason, if any */
@@ -150,7 +158,11 @@ export abstract class AbstractPhaseManager {
150
158
  * @param tx - the tx to be processed
151
159
  * @param publicKernelPublicInputs - the output of the public kernel circuit for the previous phase
152
160
  */
153
- abstract handle(tx: Tx, publicKernelPublicInputs: PublicKernelCircuitPublicInputs): Promise<PhaseResult>;
161
+ abstract handle(
162
+ tx: Tx,
163
+ publicKernelPublicInputs: PublicKernelCircuitPublicInputs,
164
+ previousKernelArtifact: ProtocolArtifact,
165
+ ): Promise<PhaseResult>;
154
166
 
155
167
  public static extractEnqueuedPublicCallsByPhase(tx: Tx): Record<PublicKernelType, PublicCallRequest[]> {
156
168
  const data = tx.data.forPublic;
@@ -230,6 +242,7 @@ export abstract class AbstractPhaseManager {
230
242
  protected async processEnqueuedPublicCalls(
231
243
  tx: Tx,
232
244
  previousPublicKernelOutput: PublicKernelCircuitPublicInputs,
245
+ previousKernelArtifact: ProtocolArtifact,
233
246
  ): Promise<TxPublicCallsResult> {
234
247
  const enqueuedCalls = this.extractEnqueuedPublicCalls(tx);
235
248
 
@@ -237,6 +250,7 @@ export abstract class AbstractPhaseManager {
237
250
  return {
238
251
  publicProvingInformation: [],
239
252
  kernelOutput: previousPublicKernelOutput,
253
+ lastKernelArtifact: previousKernelArtifact,
240
254
  newUnencryptedLogs: [],
241
255
  returnValues: [],
242
256
  gasUsed: Gas.empty(),
@@ -253,6 +267,7 @@ export abstract class AbstractPhaseManager {
253
267
  const transactionFee = this.getTransactionFee(tx, previousPublicKernelOutput);
254
268
  let gasUsed = Gas.empty();
255
269
  let kernelPublicOutput: PublicKernelCircuitPublicInputs = previousPublicKernelOutput;
270
+
256
271
  const enqueuedCallResults = [];
257
272
 
258
273
  for (const enqueuedCall of enqueuedCalls) {
@@ -313,8 +328,13 @@ export abstract class AbstractPhaseManager {
313
328
  })`,
314
329
  );
315
330
  const callData = await this.getPublicCallData(result, isExecutionRequest);
316
- const [privateInputs, publicInputs] = await this.runKernelCircuit(kernelPublicOutput, callData);
331
+ const [privateInputs, publicInputs, artifact] = await this.runKernelCircuit(
332
+ kernelPublicOutput,
333
+ previousKernelArtifact,
334
+ callData,
335
+ );
317
336
  kernelPublicOutput = publicInputs;
337
+ previousKernelArtifact = artifact;
318
338
 
319
339
  // Capture the inputs for later proving in the AVM and kernel.
320
340
  const publicProvingInformation: PublicProvingInformation = {
@@ -349,6 +369,7 @@ export abstract class AbstractPhaseManager {
349
369
  return {
350
370
  publicProvingInformation: [],
351
371
  kernelOutput: kernelPublicOutput,
372
+ lastKernelArtifact: previousKernelArtifact,
352
373
  newUnencryptedLogs: [],
353
374
  revertReason: result.revertReason,
354
375
  returnValues: [],
@@ -367,6 +388,7 @@ export abstract class AbstractPhaseManager {
367
388
  return {
368
389
  publicProvingInformation: provingInformationList,
369
390
  kernelOutput: kernelPublicOutput,
391
+ lastKernelArtifact: previousKernelArtifact,
370
392
  newUnencryptedLogs: newUnencryptedFunctionLogs,
371
393
  returnValues: enqueuedCallResults,
372
394
  gasUsed,
@@ -375,7 +397,7 @@ export abstract class AbstractPhaseManager {
375
397
 
376
398
  /** Returns all pending private and public nullifiers. */
377
399
  private getSiloedPendingNullifiers(ko: PublicKernelCircuitPublicInputs) {
378
- return [...ko.end.newNullifiers, ...ko.endNonRevertibleData.newNullifiers].filter(n => !n.isEmpty());
400
+ return [...ko.end.nullifiers, ...ko.endNonRevertibleData.nullifiers].filter(n => !n.isEmpty());
379
401
  }
380
402
 
381
403
  protected getAvailableGas(tx: Tx, previousPublicKernelOutput: PublicKernelCircuitPublicInputs) {
@@ -391,31 +413,46 @@ export abstract class AbstractPhaseManager {
391
413
 
392
414
  private async runKernelCircuit(
393
415
  previousOutput: PublicKernelCircuitPublicInputs,
416
+ previousCircuit: ProtocolArtifact,
394
417
  callData: PublicCallData,
395
- ): Promise<[PublicKernelCircuitPrivateInputs, PublicKernelCircuitPublicInputs]> {
396
- const previousKernel = this.getPreviousKernelData(previousOutput);
418
+ ): Promise<[PublicKernelCircuitPrivateInputs, PublicKernelCircuitPublicInputs, ProtocolArtifact]> {
419
+ const previousKernel = this.getPreviousKernelData(previousOutput, previousCircuit);
397
420
 
398
421
  // We take a deep copy (clone) of these inputs to be passed to the prover
399
422
  const inputs = new PublicKernelCircuitPrivateInputs(previousKernel, callData);
400
423
  switch (this.phase) {
401
424
  case PublicKernelType.SETUP:
402
- return [inputs.clone(), await this.publicKernel.publicKernelCircuitSetup(inputs)];
425
+ return [inputs.clone(), await this.publicKernel.publicKernelCircuitSetup(inputs), 'PublicKernelSetupArtifact'];
403
426
  case PublicKernelType.APP_LOGIC:
404
- return [inputs.clone(), await this.publicKernel.publicKernelCircuitAppLogic(inputs)];
427
+ return [
428
+ inputs.clone(),
429
+ await this.publicKernel.publicKernelCircuitAppLogic(inputs),
430
+ 'PublicKernelAppLogicArtifact',
431
+ ];
405
432
  case PublicKernelType.TEARDOWN:
406
- return [inputs.clone(), await this.publicKernel.publicKernelCircuitTeardown(inputs)];
433
+ return [
434
+ inputs.clone(),
435
+ await this.publicKernel.publicKernelCircuitTeardown(inputs),
436
+ 'PublicKernelTeardownArtifact',
437
+ ];
407
438
  default:
408
439
  throw new Error(`No public kernel circuit for inputs`);
409
440
  }
410
441
  }
411
442
 
412
- protected getPreviousKernelData(previousOutput: PublicKernelCircuitPublicInputs): PublicKernelData {
413
- // The proof and verification key are not used in simulation
414
- const vk = VerificationKeyData.makeFake();
443
+ protected getPreviousKernelData(
444
+ previousOutput: PublicKernelCircuitPublicInputs,
445
+ previousCircuit: ProtocolArtifact,
446
+ ): PublicKernelData {
447
+ // The proof is not used in simulation
415
448
  const proof = makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH);
416
- const vkIndex = 0;
417
- const vkSiblingPath = MembershipWitness.random(VK_TREE_HEIGHT).siblingPath;
418
- return new PublicKernelData(previousOutput, proof, vk, vkIndex, vkSiblingPath);
449
+
450
+ const vk = ProtocolCircuitVks[previousCircuit];
451
+ const vkIndex = ProtocolCircuitVkIndexes[previousCircuit];
452
+
453
+ const leafIndex = getVKIndex(vk);
454
+
455
+ return new PublicKernelData(previousOutput, proof, vk, vkIndex, getVKSiblingPath(leafIndex));
419
456
  }
420
457
 
421
458
  protected async getPublicCallStackItem(result: PublicExecutionResult, isExecutionRequest = false) {
@@ -424,7 +461,7 @@ export abstract class AbstractPhaseManager {
424
461
 
425
462
  const callStackPreimages = await this.getPublicCallStackPreimages(result);
426
463
  const publicCallStackHashes = padArrayEnd(
427
- callStackPreimages.map(c => c.hash()),
464
+ callStackPreimages.map(c => c.getCompressed().hash()),
428
465
  Fr.ZERO,
429
466
  MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,
430
467
  );
@@ -433,9 +470,9 @@ export abstract class AbstractPhaseManager {
433
470
  callContext: result.executionRequest.callContext,
434
471
  proverAddress: AztecAddress.ZERO,
435
472
  argsHash: computeVarArgsHash(result.executionRequest.args),
436
- newNoteHashes: padArrayEnd(result.newNoteHashes, NoteHash.empty(), MAX_NEW_NOTE_HASHES_PER_CALL),
437
- newNullifiers: padArrayEnd(result.newNullifiers, Nullifier.empty(), MAX_NEW_NULLIFIERS_PER_CALL),
438
- newL2ToL1Msgs: padArrayEnd(result.newL2ToL1Messages, L2ToL1Message.empty(), MAX_NEW_L2_TO_L1_MSGS_PER_CALL),
473
+ noteHashes: padArrayEnd(result.noteHashes, NoteHash.empty(), MAX_NOTE_HASHES_PER_CALL),
474
+ nullifiers: padArrayEnd(result.nullifiers, Nullifier.empty(), MAX_NULLIFIERS_PER_CALL),
475
+ l2ToL1Msgs: padArrayEnd(result.l2ToL1Messages, L2ToL1Message.empty(), MAX_L2_TO_L1_MSGS_PER_CALL),
439
476
  startSideEffectCounter: result.startSideEffectCounter,
440
477
  endSideEffectCounter: result.endSideEffectCounter,
441
478
  returnsHash: computeVarArgsHash(result.returnValues),
@@ -506,15 +543,15 @@ export abstract class AbstractPhaseManager {
506
543
  */
507
544
  static getMaxSideEffectCounter(inputs: PublicKernelCircuitPublicInputs): number {
508
545
  const sideEffectCounters = [
509
- ...inputs.endNonRevertibleData.newNoteHashes,
510
- ...inputs.endNonRevertibleData.newNullifiers,
546
+ ...inputs.endNonRevertibleData.noteHashes,
547
+ ...inputs.endNonRevertibleData.nullifiers,
511
548
  ...inputs.endNonRevertibleData.noteEncryptedLogsHashes,
512
549
  ...inputs.endNonRevertibleData.encryptedLogsHashes,
513
550
  ...inputs.endNonRevertibleData.unencryptedLogsHashes,
514
551
  ...inputs.endNonRevertibleData.publicCallStack,
515
552
  ...inputs.endNonRevertibleData.publicDataUpdateRequests,
516
- ...inputs.end.newNoteHashes,
517
- ...inputs.end.newNullifiers,
553
+ ...inputs.end.noteHashes,
554
+ ...inputs.end.nullifiers,
518
555
  ...inputs.end.noteEncryptedLogsHashes,
519
556
  ...inputs.end.encryptedLogsHashes,
520
557
  ...inputs.end.unencryptedLogsHashes,