@aztec/simulator 0.64.0 → 0.65.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 (107) hide show
  1. package/dest/avm/avm_memory_types.d.ts +3 -1
  2. package/dest/avm/avm_memory_types.d.ts.map +1 -1
  3. package/dest/avm/avm_memory_types.js +22 -24
  4. package/dest/avm/avm_simulator.d.ts +5 -1
  5. package/dest/avm/avm_simulator.d.ts.map +1 -1
  6. package/dest/avm/avm_simulator.js +16 -9
  7. package/dest/avm/avm_tree.d.ts +56 -7
  8. package/dest/avm/avm_tree.d.ts.map +1 -1
  9. package/dest/avm/avm_tree.js +155 -82
  10. package/dest/avm/errors.d.ts +19 -0
  11. package/dest/avm/errors.d.ts.map +1 -1
  12. package/dest/avm/errors.js +29 -1
  13. package/dest/avm/journal/journal.d.ts +8 -7
  14. package/dest/avm/journal/journal.d.ts.map +1 -1
  15. package/dest/avm/journal/journal.js +47 -29
  16. package/dest/avm/journal/nullifiers.d.ts +11 -58
  17. package/dest/avm/journal/nullifiers.d.ts.map +1 -1
  18. package/dest/avm/journal/nullifiers.js +27 -107
  19. package/dest/avm/opcodes/contract.d.ts +2 -2
  20. package/dest/avm/opcodes/contract.d.ts.map +1 -1
  21. package/dest/avm/opcodes/contract.js +4 -4
  22. package/dest/avm/opcodes/control_flow.d.ts +2 -2
  23. package/dest/avm/opcodes/control_flow.d.ts.map +1 -1
  24. package/dest/avm/opcodes/control_flow.js +4 -4
  25. package/dest/avm/opcodes/environment_getters.d.ts +2 -2
  26. package/dest/avm/opcodes/environment_getters.d.ts.map +1 -1
  27. package/dest/avm/opcodes/environment_getters.js +4 -4
  28. package/dest/avm/opcodes/instruction.d.ts +1 -1
  29. package/dest/avm/opcodes/instruction.d.ts.map +1 -1
  30. package/dest/avm/opcodes/instruction.js +1 -1
  31. package/dest/avm/opcodes/memory.d.ts +4 -4
  32. package/dest/avm/opcodes/memory.d.ts.map +1 -1
  33. package/dest/avm/opcodes/memory.js +17 -13
  34. package/dest/avm/opcodes/misc.d.ts +2 -2
  35. package/dest/avm/opcodes/misc.d.ts.map +1 -1
  36. package/dest/avm/opcodes/misc.js +4 -4
  37. package/dest/avm/serialization/buffer_cursor.d.ts +2 -0
  38. package/dest/avm/serialization/buffer_cursor.d.ts.map +1 -1
  39. package/dest/avm/serialization/buffer_cursor.js +8 -3
  40. package/dest/avm/serialization/bytecode_serialization.d.ts +1 -0
  41. package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  42. package/dest/avm/serialization/bytecode_serialization.js +27 -13
  43. package/dest/avm/serialization/instruction_serialization.d.ts +1 -0
  44. package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
  45. package/dest/avm/serialization/instruction_serialization.js +9 -6
  46. package/dest/avm/test_utils.d.ts.map +1 -1
  47. package/dest/avm/test_utils.js +3 -2
  48. package/dest/common/errors.d.ts.map +1 -1
  49. package/dest/common/errors.js +3 -2
  50. package/dest/public/dual_side_effect_trace.d.ts +2 -2
  51. package/dest/public/dual_side_effect_trace.d.ts.map +1 -1
  52. package/dest/public/dual_side_effect_trace.js +7 -7
  53. package/dest/public/enqueued_call_side_effect_trace.d.ts +8 -23
  54. package/dest/public/enqueued_call_side_effect_trace.d.ts.map +1 -1
  55. package/dest/public/enqueued_call_side_effect_trace.js +31 -92
  56. package/dest/public/executor_metrics.d.ts +4 -2
  57. package/dest/public/executor_metrics.d.ts.map +1 -1
  58. package/dest/public/executor_metrics.js +20 -3
  59. package/dest/public/fixtures/index.d.ts.map +1 -1
  60. package/dest/public/fixtures/index.js +66 -35
  61. package/dest/public/public_db_sources.d.ts +3 -1
  62. package/dest/public/public_db_sources.d.ts.map +1 -1
  63. package/dest/public/public_db_sources.js +26 -11
  64. package/dest/public/public_processor.d.ts.map +1 -1
  65. package/dest/public/public_processor.js +12 -5
  66. package/dest/public/public_tx_context.d.ts +5 -6
  67. package/dest/public/public_tx_context.d.ts.map +1 -1
  68. package/dest/public/public_tx_context.js +19 -17
  69. package/dest/public/public_tx_simulator.d.ts +13 -2
  70. package/dest/public/public_tx_simulator.d.ts.map +1 -1
  71. package/dest/public/public_tx_simulator.js +263 -217
  72. package/dest/public/side_effect_trace.d.ts +2 -2
  73. package/dest/public/side_effect_trace.d.ts.map +1 -1
  74. package/dest/public/side_effect_trace.js +8 -6
  75. package/dest/public/side_effect_trace_interface.d.ts +2 -2
  76. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  77. package/dest/public/transitional_adapters.d.ts.map +1 -1
  78. package/dest/public/transitional_adapters.js +2 -6
  79. package/package.json +9 -9
  80. package/src/avm/avm_memory_types.ts +26 -24
  81. package/src/avm/avm_simulator.ts +20 -13
  82. package/src/avm/avm_tree.ts +196 -93
  83. package/src/avm/errors.ts +31 -0
  84. package/src/avm/journal/journal.ts +61 -47
  85. package/src/avm/journal/nullifiers.ts +29 -121
  86. package/src/avm/opcodes/contract.ts +2 -2
  87. package/src/avm/opcodes/control_flow.ts +2 -2
  88. package/src/avm/opcodes/environment_getters.ts +2 -2
  89. package/src/avm/opcodes/instruction.ts +1 -1
  90. package/src/avm/opcodes/memory.ts +15 -10
  91. package/src/avm/opcodes/misc.ts +2 -2
  92. package/src/avm/serialization/buffer_cursor.ts +9 -3
  93. package/src/avm/serialization/bytecode_serialization.ts +29 -13
  94. package/src/avm/serialization/instruction_serialization.ts +12 -6
  95. package/src/avm/test_utils.ts +9 -1
  96. package/src/common/errors.ts +2 -1
  97. package/src/public/dual_side_effect_trace.ts +6 -30
  98. package/src/public/enqueued_call_side_effect_trace.ts +35 -154
  99. package/src/public/executor_metrics.ts +23 -1
  100. package/src/public/fixtures/index.ts +97 -43
  101. package/src/public/public_db_sources.ts +29 -15
  102. package/src/public/public_processor.ts +11 -4
  103. package/src/public/public_tx_context.ts +21 -23
  104. package/src/public/public_tx_simulator.ts +45 -8
  105. package/src/public/side_effect_trace.ts +7 -9
  106. package/src/public/side_effect_trace_interface.ts +2 -4
  107. package/src/public/transitional_adapters.ts +0 -11
@@ -1,6 +1,7 @@
1
1
  import { PublicExecutionRequest, UnencryptedFunctionL2Logs, UnencryptedL2Log } from '@aztec/circuit-types';
2
2
  import { AvmAppendTreeHint, AvmContractBytecodeHints, AvmContractInstanceHint, AvmExecutionHints, AvmExternalCallHint, AvmKeyValueHint, AvmNullifierReadTreeHint, AvmNullifierWriteTreeHint, AvmPublicDataReadTreeHint, AvmPublicDataWriteTreeHint, CallContext, ContractStorageRead, ContractStorageUpdateRequest, EthAddress, Gas, L1_TO_L2_MSG_TREE_HEIGHT, L2ToL1Message, LogHash, MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_TX, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX, MAX_PUBLIC_DATA_READS_PER_TX, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_UNENCRYPTED_LOGS_PER_TX, NOTE_HASH_TREE_HEIGHT, NULLIFIER_TREE_HEIGHT, NoteHash, Nullifier, NullifierLeafPreimage, PUBLIC_DATA_TREE_HEIGHT, PublicDataTreeLeafPreimage, ReadRequest, SerializableContractInstance, TreeLeafReadRequest, } from '@aztec/circuits.js';
3
3
  import { Fr } from '@aztec/foundation/fields';
4
+ import { jsonStringify } from '@aztec/foundation/json-rpc';
4
5
  import { createDebugLogger } from '@aztec/foundation/log';
5
6
  import { assert } from 'console';
6
7
  import { resultToPublicCallRequest, } from './execution.js';
@@ -94,11 +95,11 @@ export class PublicSideEffectTrace {
94
95
  this.avmCircuitHints.noteHashWriteRequest.items.push(new AvmAppendTreeHint(leafIndex, noteHash, path));
95
96
  this.incrementSideEffectCounter();
96
97
  }
97
- traceNullifierCheck(_contractAddress, nullifier, exists, lowLeafPreimage = NullifierLeafPreimage.empty(), lowLeafIndex = Fr.zero(), lowLeafPath = emptyNullifierPath()) {
98
+ traceNullifierCheck(siloedNullifier, exists, lowLeafPreimage = NullifierLeafPreimage.empty(), lowLeafIndex = Fr.zero(), lowLeafPath = emptyNullifierPath()) {
98
99
  // NOTE: contractAddress is unused but will be important when an AVM circuit processes an entire enqueued call
99
100
  // NOTE: isPending and leafIndex are unused for now but may be used for optimizations or kernel hints later
100
101
  this.enforceLimitOnNullifierChecks();
101
- const readRequest = new ReadRequest(nullifier, this.sideEffectCounter);
102
+ const readRequest = new ReadRequest(siloedNullifier, this.sideEffectCounter);
102
103
  if (exists) {
103
104
  this.nullifierReadRequests.push(readRequest);
104
105
  }
@@ -111,12 +112,13 @@ export class PublicSideEffectTrace {
111
112
  this.log.debug(`NULLIFIER_EXISTS cnt: ${this.sideEffectCounter}`);
112
113
  this.incrementSideEffectCounter();
113
114
  }
114
- traceNewNullifier(_contractAddress, nullifier, lowLeafPreimage = NullifierLeafPreimage.empty(), lowLeafIndex = Fr.zero(), lowLeafPath = emptyNullifierPath(), insertionPath = emptyNullifierPath()) {
115
+ traceNewNullifier(siloedNullifier, lowLeafPreimage = NullifierLeafPreimage.empty(), lowLeafIndex = Fr.zero(), lowLeafPath = emptyNullifierPath(), insertionPath = emptyNullifierPath()) {
115
116
  // NOTE: contractAddress is unused but will be important when an AVM circuit processes an entire enqueued call
116
117
  if (this.nullifiers.length >= MAX_NULLIFIERS_PER_TX) {
117
118
  throw new SideEffectLimitReachedError('nullifier', MAX_NULLIFIERS_PER_TX);
118
119
  }
119
- this.nullifiers.push(new Nullifier(nullifier, this.sideEffectCounter, /*noteHash=*/ Fr.ZERO));
120
+ // this will be wrong for siloedNullifier
121
+ this.nullifiers.push(new Nullifier(siloedNullifier, this.sideEffectCounter, /*noteHash=*/ Fr.ZERO));
120
122
  // New hinting
121
123
  const lowLeafReadHint = new AvmNullifierReadTreeHint(lowLeafPreimage, lowLeafIndex, lowLeafPath);
122
124
  this.avmCircuitHints.nullifierWriteHints.items.push(new AvmNullifierWriteTreeHint(lowLeafReadHint, insertionPath));
@@ -176,7 +178,7 @@ export class PublicSideEffectTrace {
176
178
  const instance = new AvmContractInstanceHint(contractAddress, exists, contractInstance.salt, contractInstance.deployer, contractInstance.contractClassId, contractInstance.initializationHash, contractInstance.publicKeys);
177
179
  // We need to deduplicate the contract instances based on addresses
178
180
  this.avmCircuitHints.contractBytecodeHints.items.push(new AvmContractBytecodeHints(bytecode, instance, contractClass));
179
- this.log.debug(`Bytecode retrieval for contract execution traced: exists=${exists}, instance=${JSON.stringify(contractInstance)}`);
181
+ this.log.debug(`Bytecode retrieval for contract execution traced: exists=${exists}, instance=${jsonStringify(contractInstance)}`);
180
182
  }
181
183
  /**
182
184
  * Trace a nested call.
@@ -304,4 +306,4 @@ function createPublicExecutionRequest(avmEnvironment) {
304
306
  });
305
307
  return new PublicExecutionRequest(callContext, avmEnvironment.calldata);
306
308
  }
307
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZV9lZmZlY3RfdHJhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3NpZGVfZWZmZWN0X3RyYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx5QkFBeUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNHLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6QiwwQkFBMEIsRUFFMUIsV0FBVyxFQUdYLG1CQUFtQixFQUNuQiw0QkFBNEIsRUFDNUIsVUFBVSxFQUNWLEdBQUcsRUFDSCx3QkFBd0IsRUFDeEIsYUFBYSxFQUNiLE9BQU8sRUFDUCxxQ0FBcUMsRUFDckMsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0QixrQ0FBa0MsRUFDbEMscUJBQXFCLEVBQ3JCLCtDQUErQyxFQUMvQyxrQ0FBa0MsRUFDbEMsNEJBQTRCLEVBQzVCLHNDQUFzQyxFQUN0QywyQkFBMkIsRUFDM0IscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQixRQUFRLEVBQ1IsU0FBUyxFQUNULHFCQUFxQixFQUNyQix1QkFBdUIsRUFFdkIsMEJBQTBCLEVBRTFCLFdBQVcsRUFDWCw0QkFBNEIsRUFDNUIsbUJBQW1CLEdBQ3BCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFJakMsT0FBTyxFQUdMLHlCQUF5QixHQUMxQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSwyQkFBMkIs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
309
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZV9lZmZlY3RfdHJhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3NpZGVfZWZmZWN0X3RyYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx5QkFBeUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNHLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6QiwwQkFBMEIsRUFFMUIsV0FBVyxFQUdYLG1CQUFtQixFQUNuQiw0QkFBNEIsRUFDNUIsVUFBVSxFQUNWLEdBQUcsRUFDSCx3QkFBd0IsRUFDeEIsYUFBYSxFQUNiLE9BQU8sRUFDUCxxQ0FBcUMsRUFDckMsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0QixrQ0FBa0MsRUFDbEMscUJBQXFCLEVBQ3JCLCtDQUErQyxFQUMvQyxrQ0FBa0MsRUFDbEMsNEJBQTRCLEVBQzVCLHNDQUFzQyxFQUN0QywyQkFBMkIsRUFDM0IscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQixRQUFRLEVBQ1IsU0FBUyxFQUNULHFCQUFxQixFQUNyQix1QkFBdUIsRUFFdkIsMEJBQTBCLEVBRTFCLFdBQVcsRUFDWCw0QkFBNEIsRUFDNUIsbUJBQW1CLEdBQ3BCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBSWpDLE9BQU8sRUFHTCx5QkFBeUIsR0FD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
@@ -16,8 +16,8 @@ export interface PublicSideEffectTraceInterface {
16
16
  value: Fr, lowLeafPreimage?: PublicDataTreeLeafPreimage, lowLeafIndex?: Fr, lowLeafPath?: Fr[], newLeafPreimage?: PublicDataTreeLeafPreimage, insertionPath?: Fr[]): void;
17
17
  traceNoteHashCheck(contractAddress: AztecAddress, noteHash: Fr, leafIndex: Fr, exists: boolean, path?: Fr[]): void;
18
18
  traceNewNoteHash(contractAddress: AztecAddress, noteHash: Fr, leafIndex?: Fr, path?: Fr[]): void;
19
- traceNullifierCheck(contractAddress: AztecAddress, nullifier: Fr, exists: boolean, lowLeafPreimage?: NullifierLeafPreimage, lowLeafIndex?: Fr, lowLeafPath?: Fr[]): void;
20
- traceNewNullifier(contractAddress: AztecAddress, nullifier: Fr, lowLeafPreimage?: NullifierLeafPreimage, lowLeafIndex?: Fr, lowLeafPath?: Fr[], insertionPath?: Fr[]): void;
19
+ traceNullifierCheck(siloedNullifier: Fr, exists: boolean, lowLeafPreimage?: NullifierLeafPreimage, lowLeafIndex?: Fr, lowLeafPath?: Fr[]): void;
20
+ traceNewNullifier(siloedNullifier: Fr, lowLeafPreimage?: NullifierLeafPreimage, lowLeafIndex?: Fr, lowLeafPath?: Fr[], insertionPath?: Fr[]): void;
21
21
  traceL1ToL2MessageCheck(contractAddress: AztecAddress, msgHash: Fr, msgLeafIndex: Fr, exists: boolean, path?: Fr[]): void;
22
22
  traceNewL2ToL1Message(contractAddress: AztecAddress, recipient: Fr, content: Fr): void;
23
23
  traceUnencryptedLog(contractAddress: AztecAddress, log: Fr[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"side_effect_trace_interface.d.ts","sourceRoot":"","sources":["../../src/public/side_effect_trace_interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"side_effect_trace_interface.d.ts","sourceRoot":"","sources":["../../src/public/side_effect_trace_interface.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transitional_adapters.d.ts","sourceRoot":"","sources":["../../src/public/transitional_adapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAsB,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAEL,sBAAsB,EAItB,EAAE,EACF,GAAG,EACH,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,MAAM,EAsBX,KAAK,8BAA8B,EACnC,iBAAiB,EAKjB,UAAU,EACV,KAAK,cAAc,EAKpB,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,KAAK,iCAAiC,EAAE,MAAM,sCAAsC,CAAC;AAC9F,OAAO,EAAE,KAAK,iCAAiC,EAAiC,MAAM,gBAAgB,CAAC;AAEvG,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,iCAAiC,EACxC,eAAe,EAAE,eAAe,EAChC,mBAAmB,EAAE,cAAc,EACnC,YAAY,EAAE,GAAG,EACjB,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,iBAAiB,EAAE,EACtC,oBAAoB,EAAE,iBAAiB,EAAE,EACzC,oBAAoB,EAAE,iBAAiB,EAAE,EACzC,uCAAuC,EAAE,8BAA8B,EACvE,oCAAoC,EAAE,8BAA8B,EACpE,iBAAiB,EAAE,cAAc,EACjC,UAAU,EAAE,GAAG,EACf,cAAc,EAAE,EAAE,EAClB,UAAU,EAAE,UAAU,GACrB,sBAAsB,CA2HxB;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,0BAA0B,EACxC,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,sBAAsB,EACxC,MAAM,EAAE,iCAAiC,EACzC,YAAY,EAAE,GAAG,EACjB,cAAc,EAAE,EAAE,GACjB,iBAAiB,CA8BnB"}
1
+ {"version":3,"file":"transitional_adapters.d.ts","sourceRoot":"","sources":["../../src/public/transitional_adapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAsB,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAEL,sBAAsB,EAItB,EAAE,EACF,GAAG,EACH,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,MAAM,EAqBX,KAAK,8BAA8B,EACnC,iBAAiB,EAKjB,UAAU,EACV,KAAK,cAAc,EAKpB,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,KAAK,iCAAiC,EAAE,MAAM,sCAAsC,CAAC;AAC9F,OAAO,EAAE,KAAK,iCAAiC,EAAiC,MAAM,gBAAgB,CAAC;AAEvG,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,iCAAiC,EACxC,eAAe,EAAE,eAAe,EAChC,mBAAmB,EAAE,cAAc,EACnC,YAAY,EAAE,GAAG,EACjB,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,iBAAiB,EAAE,EACtC,oBAAoB,EAAE,iBAAiB,EAAE,EACzC,oBAAoB,EAAE,iBAAiB,EAAE,EACzC,uCAAuC,EAAE,8BAA8B,EACvE,oCAAoC,EAAE,8BAA8B,EACpE,iBAAiB,EAAE,cAAc,EACjC,UAAU,EAAE,GAAG,EACf,cAAc,EAAE,EAAE,EAClB,UAAU,EAAE,UAAU,GACrB,sBAAsB,CAiHxB;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,0BAA0B,EACxC,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,sBAAsB,EACxC,MAAM,EAAE,iCAAiC,EACzC,YAAY,EAAE,GAAG,EACjB,cAAc,EAAE,EAAE,GACjB,iBAAiB,CA8BnB"}
@@ -1,5 +1,5 @@
1
1
  import { ProvingRequestType } from '@aztec/circuit-types';
2
- import { AvmCircuitInputs, AvmCircuitPublicInputs, AztecAddress, ContractStorageRead, ContractStorageUpdateRequest, Fr, Gas, L2ToL1Message, LogHash, MAX_ENQUEUED_CALLS_PER_CALL, MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_CALL, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_PUBLIC_DATA_READS_PER_CALL, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_UNENCRYPTED_LOGS_PER_CALL, NoteHash, Nullifier, PrivateToAvmAccumulatedData, PrivateToAvmAccumulatedDataArrayLengths, PublicCallRequest, PublicCircuitPublicInputs, PublicDataWrite, PublicInnerCallRequest, ReadRequest, RevertCode, TreeLeafReadRequest, TreeSnapshots, countAccumulatedItems, mergeAccumulatedData, } from '@aztec/circuits.js';
2
+ import { AvmCircuitInputs, AvmCircuitPublicInputs, AztecAddress, ContractStorageRead, ContractStorageUpdateRequest, Fr, Gas, L2ToL1Message, LogHash, MAX_ENQUEUED_CALLS_PER_CALL, MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_CALL, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_PUBLIC_DATA_READS_PER_CALL, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_UNENCRYPTED_LOGS_PER_CALL, NoteHash, Nullifier, PrivateToAvmAccumulatedData, PrivateToAvmAccumulatedDataArrayLengths, PublicCallRequest, PublicCircuitPublicInputs, PublicDataWrite, PublicInnerCallRequest, ReadRequest, RevertCode, TreeLeafReadRequest, TreeSnapshots, countAccumulatedItems, mergeAccumulatedData, } from '@aztec/circuits.js';
3
3
  import { computeNoteHashNonce, computeUniqueNoteHash, computeVarArgsHash, siloNoteHash } from '@aztec/circuits.js/hash';
4
4
  import { padArrayEnd } from '@aztec/foundation/collection';
5
5
  import { assertLength } from '@aztec/foundation/serialize';
@@ -34,10 +34,6 @@ export function generateAvmCircuitPublicInputs(trace, globalVariables, startStat
34
34
  avmCircuitPublicInputs.accumulatedData.noteHashes[noteHashIndexInTx] = siloedNoteHash;
35
35
  }
36
36
  }
37
- const nullifiersFromPrivate = revertCode.isOK()
38
- ? mergeAccumulatedData(avmCircuitPublicInputs.previousNonRevertibleAccumulatedData.nullifiers, avmCircuitPublicInputs.previousRevertibleAccumulatedData.nullifiers)
39
- : avmCircuitPublicInputs.previousNonRevertibleAccumulatedData.nullifiers;
40
- avmCircuitPublicInputs.accumulatedData.nullifiers = assertLength(mergeAccumulatedData(nullifiersFromPrivate, avmCircuitPublicInputs.accumulatedData.nullifiers), MAX_NULLIFIERS_PER_TX);
41
37
  const msgsFromPrivate = revertCode.isOK()
42
38
  ? mergeAccumulatedData(avmCircuitPublicInputs.previousNonRevertibleAccumulatedData.l2ToL1Msgs, avmCircuitPublicInputs.previousRevertibleAccumulatedData.l2ToL1Msgs)
43
39
  : avmCircuitPublicInputs.previousNonRevertibleAccumulatedData.l2ToL1Msgs;
@@ -122,4 +118,4 @@ function getPublicCircuitPublicInputs(historicalHeader, globalVariables, result)
122
118
  revertCode: result.reverted ? RevertCode.APP_LOGIC_REVERTED : RevertCode.OK,
123
119
  });
124
120
  }
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNpdGlvbmFsX2FkYXB0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy90cmFuc2l0aW9uYWxfYWRhcHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEwQixrQkFBa0IsRUFBK0IsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLHNCQUFzQixFQUN0QixZQUFZLEVBQ1osbUJBQW1CLEVBQ25CLDRCQUE0QixFQUM1QixFQUFFLEVBQ0YsR0FBRyxFQUlILGFBQWEsRUFDYixPQUFPLEVBQ1AsMkJBQTJCLEVBQzNCLHVDQUF1QyxFQUN2QywwQkFBMEIsRUFDMUIsd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIsb0NBQW9DLEVBQ3BDLHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIsaURBQWlELEVBQ2pELG9DQUFvQyxFQUNwQyw4QkFBOEIsRUFDOUIsd0NBQXdDLEVBQ3hDLHNDQUFzQyxFQUN0Qyw2QkFBNkIsRUFDN0IsUUFBUSxFQUNSLFNBQVMsRUFDVCwyQkFBMkIsRUFDM0IsdUNBQXVDLEVBRXZDLGlCQUFpQixFQUNqQix5QkFBeUIsRUFDekIsZUFBZSxFQUNmLHNCQUFzQixFQUN0QixXQUFXLEVBQ1gsVUFBVSxFQUVWLG1CQUFtQixFQUNuQixhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLG9CQUFvQixHQUNyQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4SCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9B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
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNpdGlvbmFsX2FkYXB0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy90cmFuc2l0aW9uYWxfYWRhcHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEwQixrQkFBa0IsRUFBK0IsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLHNCQUFzQixFQUN0QixZQUFZLEVBQ1osbUJBQW1CLEVBQ25CLDRCQUE0QixFQUM1QixFQUFFLEVBQ0YsR0FBRyxFQUlILGFBQWEsRUFDYixPQUFPLEVBQ1AsMkJBQTJCLEVBQzNCLHVDQUF1QyxFQUN2QywwQkFBMEIsRUFDMUIsd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIsb0NBQW9DLEVBQ3BDLHVCQUF1QixFQUN2QixpREFBaUQsRUFDakQsb0NBQW9DLEVBQ3BDLDhCQUE4QixFQUM5Qix3Q0FBd0MsRUFDeEMsc0NBQXNDLEVBQ3RDLDZCQUE2QixFQUM3QixRQUFRLEVBQ1IsU0FBUyxFQUNULDJCQUEyQixFQUMzQix1Q0FBdUMsRUFFdkMsaUJBQWlCLEVBQ2pCLHlCQUF5QixFQUN6QixlQUFlLEVBQ2Ysc0JBQXNCLEVBQ3RCLFdBQVcsRUFDWCxVQUFVLEVBRVYsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsb0JBQW9CLEdBQ3JCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLHVCQUF1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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/simulator",
3
- "version": "0.64.0",
3
+ "version": "0.65.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -59,14 +59,14 @@
59
59
  ]
60
60
  },
61
61
  "dependencies": {
62
- "@aztec/circuit-types": "0.64.0",
63
- "@aztec/circuits.js": "0.64.0",
64
- "@aztec/foundation": "0.64.0",
65
- "@aztec/noir-protocol-circuits-types": "0.64.0",
66
- "@aztec/protocol-contracts": "0.64.0",
67
- "@aztec/telemetry-client": "0.64.0",
68
- "@aztec/types": "0.64.0",
69
- "@aztec/world-state": "0.64.0",
62
+ "@aztec/circuit-types": "0.65.1",
63
+ "@aztec/circuits.js": "0.65.1",
64
+ "@aztec/foundation": "0.65.1",
65
+ "@aztec/noir-protocol-circuits-types": "0.65.1",
66
+ "@aztec/protocol-contracts": "0.65.1",
67
+ "@aztec/telemetry-client": "0.65.1",
68
+ "@aztec/types": "0.65.1",
69
+ "@aztec/world-state": "0.65.1",
70
70
  "@noir-lang/acvm_js": "portal:../../noir/packages/acvm_js",
71
71
  "@noir-lang/noirc_abi": "portal:../../noir/packages/noirc_abi",
72
72
  "@noir-lang/types": "portal:../../noir/packages/types",
@@ -15,7 +15,7 @@ import { type FunctionsOf } from '@aztec/foundation/types';
15
15
 
16
16
  import { strict as assert } from 'assert';
17
17
 
18
- import { InstructionExecutionError, TagCheckError } from './errors.js';
18
+ import { InstructionExecutionError, InvalidTagValueError, TagCheckError } from './errors.js';
19
19
  import { Addressing, AddressingMode } from './opcodes/addressing_mode.js';
20
20
 
21
21
  /** MemoryValue gathers the common operations for all memory types. */
@@ -241,6 +241,10 @@ export class TaggedMemory implements TaggedMemoryInterface {
241
241
  this._mem = [];
242
242
  }
243
243
 
244
+ public getMaxMemorySize(): number {
245
+ return TaggedMemory.MAX_MEMORY_SIZE;
246
+ }
247
+
244
248
  /** Returns a MeteredTaggedMemory instance to track the number of reads and writes if TRACK_MEMORY_ACCESSES is set. */
245
249
  public track(type: string = 'instruction'): TaggedMemoryInterface {
246
250
  return TaggedMemory.TRACK_MEMORY_ACCESSES ? new MeteredTaggedMemory(this, type) : this;
@@ -327,6 +331,22 @@ export class TaggedMemory implements TaggedMemoryInterface {
327
331
  }
328
332
  }
329
333
 
334
+ public static checkIsValidTag(tagNumber: number) {
335
+ if (
336
+ ![
337
+ TypeTag.UINT1,
338
+ TypeTag.UINT8,
339
+ TypeTag.UINT16,
340
+ TypeTag.UINT32,
341
+ TypeTag.UINT64,
342
+ TypeTag.UINT128,
343
+ TypeTag.FIELD,
344
+ ].includes(tagNumber)
345
+ ) {
346
+ throw new InvalidTagValueError(tagNumber);
347
+ }
348
+ }
349
+
330
350
  /**
331
351
  * Check tags for memory at all of the specified offsets.
332
352
  */
@@ -400,29 +420,7 @@ export class TaggedMemory implements TaggedMemoryInterface {
400
420
  case TypeTag.UINT128:
401
421
  return new Uint128(v & ((1n << 128n) - 1n));
402
422
  default:
403
- throw new Error(`${TypeTag[tag]} is not a valid tag.`);
404
- }
405
- }
406
-
407
- // Does not truncate. Type constructor will check that it fits.
408
- public static buildFromTagOrDie(v: bigint | number, tag: TypeTag): MemoryValue {
409
- switch (tag) {
410
- case TypeTag.FIELD:
411
- return new Field(v);
412
- case TypeTag.UINT1:
413
- return new Uint1(v);
414
- case TypeTag.UINT8:
415
- return new Uint8(v);
416
- case TypeTag.UINT16:
417
- return new Uint16(v);
418
- case TypeTag.UINT32:
419
- return new Uint32(v);
420
- case TypeTag.UINT64:
421
- return new Uint64(v);
422
- case TypeTag.UINT128:
423
- return new Uint128(v);
424
- default:
425
- throw new Error(`${TypeTag[tag]} is not a valid integral type.`);
423
+ throw new InvalidTagValueError(tag);
426
424
  }
427
425
  }
428
426
 
@@ -471,6 +469,10 @@ export class MeteredTaggedMemory implements TaggedMemoryInterface {
471
469
  }
472
470
  }
473
471
 
472
+ public getMaxMemorySize(): number {
473
+ return this.wrapped.getMaxMemorySize();
474
+ }
475
+
474
476
  public track(type: string = 'instruction'): MeteredTaggedMemory {
475
477
  return new MeteredTaggedMemory(this.wrapped, type);
476
478
  }
@@ -24,7 +24,11 @@ import {
24
24
  revertReasonFromExplicitRevert,
25
25
  } from './errors.js';
26
26
  import { type AvmPersistableStateManager } from './journal/journal.js';
27
- import { decodeInstructionFromBytecode } from './serialization/bytecode_serialization.js';
27
+ import {
28
+ INSTRUCTION_SET,
29
+ type InstructionSet,
30
+ decodeInstructionFromBytecode,
31
+ } from './serialization/bytecode_serialization.js';
28
32
 
29
33
  type OpcodeTally = {
30
34
  count: number;
@@ -42,12 +46,19 @@ export class AvmSimulator {
42
46
  private opcodeTallies: Map<string, OpcodeTally> = new Map();
43
47
  private pcTallies: Map<number, PcTally> = new Map();
44
48
 
45
- constructor(private context: AvmContext) {
49
+ private tallyPrintFunction = () => {};
50
+ private tallyInstructionFunction = (_a: number, _b: string, _c: Gas) => {};
51
+
52
+ constructor(private context: AvmContext, private instructionSet: InstructionSet = INSTRUCTION_SET()) {
46
53
  assert(
47
54
  context.machineState.gasLeft.l2Gas <= MAX_L2_GAS_PER_ENQUEUED_CALL,
48
55
  `Cannot allocate more than ${MAX_L2_GAS_PER_ENQUEUED_CALL} to the AVM for execution of an enqueued call`,
49
56
  );
50
57
  this.log = createDebugLogger(`aztec:avm_simulator:core(f:${context.environment.functionSelector.toString()})`);
58
+ if (process.env.LOG_LEVEL === 'debug') {
59
+ this.tallyPrintFunction = this.printOpcodeTallies;
60
+ this.tallyInstructionFunction = this.tallyInstruction;
61
+ }
51
62
  }
52
63
 
53
64
  public static create(
@@ -74,7 +85,8 @@ export class AvmSimulator {
74
85
 
75
86
  const avmMachineState = new AvmMachineState(allocatedGas);
76
87
  const avmContext = new AvmContext(stateManager, avmExecutionEnv, avmMachineState);
77
- return new AvmSimulator(avmContext);
88
+ const instructionSet = INSTRUCTION_SET();
89
+ return new AvmSimulator(avmContext, instructionSet);
78
90
  }
79
91
 
80
92
  /**
@@ -82,7 +94,6 @@ export class AvmSimulator {
82
94
  */
83
95
  public async execute(): Promise<AvmContractCallResult> {
84
96
  const bytecode = await this.context.persistableState.getBytecode(this.context.environment.address);
85
-
86
97
  if (!bytecode) {
87
98
  // revert, consuming all gas
88
99
  const message = `No bytecode found at: ${this.context.environment.address}. Reverting...`;
@@ -129,12 +140,7 @@ export class AvmSimulator {
129
140
  // continuing until the machine state signifies a halt
130
141
  let instrCounter = 0;
131
142
  while (!machineState.getHalted()) {
132
- const [instruction, bytesRead] = decodeInstructionFromBytecode(bytecode, machineState.pc);
133
- assert(
134
- !!instruction,
135
- 'AVM attempted to execute non-existent instruction. This should never happen (invalid bytecode or AVM simulator bug)!',
136
- );
137
-
143
+ const [instruction, bytesRead] = decodeInstructionFromBytecode(bytecode, machineState.pc, this.instructionSet);
138
144
  const instrStartGas = machineState.gasLeft; // Save gas before executing instruction (for profiling)
139
145
  const instrPc = machineState.pc; // Save PC before executing instruction (for profiling)
140
146
 
@@ -147,6 +153,7 @@ export class AvmSimulator {
147
153
  // Normal returns and reverts will return normally here.
148
154
  // "Exceptional halts" will throw.
149
155
  machineState.nextPc = machineState.pc + bytesRead;
156
+
150
157
  await instruction.execute(this.context);
151
158
  if (!instruction.handlesPC()) {
152
159
  // Increment PC if the instruction doesn't handle it itself
@@ -158,7 +165,7 @@ export class AvmSimulator {
158
165
  l2Gas: instrStartGas.l2Gas - machineState.l2GasLeft,
159
166
  daGas: instrStartGas.daGas - machineState.daGasLeft,
160
167
  };
161
- this.tallyInstruction(instrPc, instruction.constructor.name, gasUsed);
168
+ this.tallyInstructionFunction(instrPc, instruction.constructor.name, gasUsed);
162
169
 
163
170
  if (machineState.pc >= bytecode.length) {
164
171
  this.log.warn('Passed end of program');
@@ -172,7 +179,7 @@ export class AvmSimulator {
172
179
  const results = new AvmContractCallResult(reverted, output, machineState.gasLeft, revertReason);
173
180
  this.log.debug(`Context execution results: ${results.toString()}`);
174
181
 
175
- this.printOpcodeTallies();
182
+ this.tallyPrintFunction();
176
183
  // Return results for processing by calling context
177
184
  return results;
178
185
  } catch (err: any) {
@@ -187,7 +194,7 @@ export class AvmSimulator {
187
194
  const results = new AvmContractCallResult(/*reverted=*/ true, /*output=*/ [], machineState.gasLeft, revertReason);
188
195
  this.log.debug(`Context execution results: ${results.toString()}`);
189
196
 
190
- this.printOpcodeTallies();
197
+ this.tallyPrintFunction();
191
198
  // Return results for processing by calling context
192
199
  return results;
193
200
  }