@aztec/simulator 0.0.1-commit.2ed92850 → 0.0.1-commit.3100065

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 (179) hide show
  1. package/README.md +4 -4
  2. package/dest/client.d.ts +1 -3
  3. package/dest/client.d.ts.map +1 -1
  4. package/dest/client.js +0 -2
  5. package/dest/private/acvm/acvm.d.ts +4 -2
  6. package/dest/private/acvm/acvm.d.ts.map +1 -1
  7. package/dest/private/acvm/acvm.js +4 -3
  8. package/dest/private/acvm_native.d.ts +5 -3
  9. package/dest/private/acvm_native.d.ts.map +1 -1
  10. package/dest/private/acvm_native.js +8 -6
  11. package/dest/private/acvm_wasm.d.ts +4 -3
  12. package/dest/private/acvm_wasm.d.ts.map +1 -1
  13. package/dest/private/acvm_wasm.js +7 -5
  14. package/dest/private/circuit_recording/circuit_recorder.d.ts +39 -25
  15. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
  16. package/dest/private/circuit_recording/circuit_recorder.js +70 -72
  17. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +9 -20
  18. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
  19. package/dest/private/circuit_recording/file_circuit_recorder.js +39 -43
  20. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +7 -2
  21. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -1
  22. package/dest/private/circuit_recording/memory_circuit_recorder.js +4 -4
  23. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +1 -1
  24. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -1
  25. package/dest/private/circuit_recording/simulator_recorder_wrapper.js +11 -14
  26. package/dest/private/factory.d.ts +3 -3
  27. package/dest/private/factory.d.ts.map +1 -1
  28. package/dest/private/factory.js +7 -4
  29. package/dest/public/avm/avm_gas.js +3 -3
  30. package/dest/public/avm/avm_simulator.js +1 -1
  31. package/dest/public/avm/calldata.d.ts +1 -1
  32. package/dest/public/avm/calldata.d.ts.map +1 -1
  33. package/dest/public/avm/calldata.js +3 -2
  34. package/dest/public/avm/fixtures/account_proof_fetcher.d.ts +2 -0
  35. package/dest/public/avm/fixtures/account_proof_fetcher.d.ts.map +1 -0
  36. package/dest/public/avm/fixtures/account_proof_fetcher.js +152 -0
  37. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts +2 -1
  38. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +1 -1
  39. package/dest/public/avm/fixtures/base_avm_simulation_tester.js +18 -3
  40. package/dest/public/avm/fixtures/utils.d.ts +1 -1
  41. package/dest/public/avm/fixtures/utils.d.ts.map +1 -1
  42. package/dest/public/avm/fixtures/utils.js +4 -1
  43. package/dest/public/avm/opcodes/accrued_substate.d.ts +4 -5
  44. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
  45. package/dest/public/avm/opcodes/accrued_substate.js +11 -16
  46. package/dest/public/avm/opcodes/contract.d.ts +3 -2
  47. package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
  48. package/dest/public/avm/opcodes/contract.js +5 -1
  49. package/dest/public/avm/opcodes/ec_add.d.ts +2 -4
  50. package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
  51. package/dest/public/avm/opcodes/ec_add.js +13 -27
  52. package/dest/public/avm/serialization/bytecode_serialization.js +3 -3
  53. package/dest/public/avm/serialization/instruction_serialization.d.ts +2 -2
  54. package/dest/public/avm/serialization/instruction_serialization.d.ts.map +1 -1
  55. package/dest/public/avm/serialization/instruction_serialization.js +1 -1
  56. package/dest/public/contracts_db_checkpoint.d.ts +2 -2
  57. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -1
  58. package/dest/public/contracts_db_checkpoint.js +1 -1
  59. package/dest/public/executor_metrics.d.ts +1 -1
  60. package/dest/public/executor_metrics.d.ts.map +1 -1
  61. package/dest/public/executor_metrics.js +7 -2
  62. package/dest/public/fixtures/amm_test.js +4 -4
  63. package/dest/public/fixtures/bulk_test.d.ts +1 -1
  64. package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
  65. package/dest/public/fixtures/bulk_test.js +33 -6
  66. package/dest/public/fixtures/custom_bytecode_tester.d.ts +1 -1
  67. package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -1
  68. package/dest/public/fixtures/custom_bytecode_tester.js +2 -2
  69. package/dest/public/fixtures/custom_bytecode_tests.d.ts +8 -1
  70. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +1 -1
  71. package/dest/public/fixtures/custom_bytecode_tests.js +91 -2
  72. package/dest/public/fixtures/opcode_spammer.d.ts +3 -4
  73. package/dest/public/fixtures/opcode_spammer.d.ts.map +1 -1
  74. package/dest/public/fixtures/opcode_spammer.js +18 -66
  75. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +6 -5
  76. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  77. package/dest/public/fixtures/public_tx_simulation_tester.js +38 -9
  78. package/dest/public/fixtures/token_test.js +3 -3
  79. package/dest/public/fixtures/utils.d.ts +2 -2
  80. package/dest/public/fixtures/utils.d.ts.map +1 -1
  81. package/dest/public/fixtures/utils.js +21 -20
  82. package/dest/public/hinting_db_sources.d.ts +5 -5
  83. package/dest/public/hinting_db_sources.d.ts.map +1 -1
  84. package/dest/public/hinting_db_sources.js +8 -7
  85. package/dest/public/public_db_sources.d.ts +9 -5
  86. package/dest/public/public_db_sources.d.ts.map +1 -1
  87. package/dest/public/public_db_sources.js +20 -14
  88. package/dest/public/public_processor/guarded_merkle_tree.d.ts +5 -5
  89. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  90. package/dest/public/public_processor/guarded_merkle_tree.js +5 -5
  91. package/dest/public/public_processor/public_processor.d.ts +11 -6
  92. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  93. package/dest/public/public_processor/public_processor.js +125 -68
  94. package/dest/public/public_processor/public_processor_metrics.d.ts +5 -2
  95. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  96. package/dest/public/public_processor/public_processor_metrics.js +28 -4
  97. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +3 -2
  98. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -1
  99. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +7 -6
  100. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +5 -5
  101. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +1 -1
  102. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +10 -11
  103. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +4 -4
  104. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +1 -1
  105. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +7 -7
  106. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +4 -4
  107. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +1 -1
  108. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +6 -6
  109. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +3 -2
  110. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +1 -1
  111. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.js +2 -2
  112. package/dest/public/public_tx_simulator/factories.d.ts +3 -2
  113. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -1
  114. package/dest/public/public_tx_simulator/factories.js +4 -4
  115. package/dest/public/public_tx_simulator/public_tx_context.d.ts +10 -5
  116. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
  117. package/dest/public/public_tx_simulator/public_tx_context.js +16 -18
  118. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +9 -4
  119. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  120. package/dest/public/public_tx_simulator/public_tx_simulator.js +19 -12
  121. package/dest/public/side_effect_trace.d.ts +4 -4
  122. package/dest/public/side_effect_trace.d.ts.map +1 -1
  123. package/dest/public/side_effect_trace.js +3 -3
  124. package/dest/public/state_manager/state_manager.d.ts +10 -4
  125. package/dest/public/state_manager/state_manager.d.ts.map +1 -1
  126. package/dest/public/state_manager/state_manager.js +13 -6
  127. package/dest/public/test_executor_metrics.d.ts +8 -2
  128. package/dest/public/test_executor_metrics.d.ts.map +1 -1
  129. package/dest/public/test_executor_metrics.js +24 -2
  130. package/package.json +16 -16
  131. package/src/client.ts +0 -2
  132. package/src/private/acvm/acvm.ts +4 -3
  133. package/src/private/acvm_native.ts +11 -5
  134. package/src/private/acvm_wasm.ts +11 -4
  135. package/src/private/circuit_recording/circuit_recorder.ts +89 -81
  136. package/src/private/circuit_recording/file_circuit_recorder.ts +45 -50
  137. package/src/private/circuit_recording/memory_circuit_recorder.ts +6 -4
  138. package/src/private/circuit_recording/simulator_recorder_wrapper.ts +9 -15
  139. package/src/private/factory.ts +7 -4
  140. package/src/public/avm/avm_gas.ts +2 -2
  141. package/src/public/avm/avm_simulator.ts +1 -1
  142. package/src/public/avm/calldata.ts +3 -2
  143. package/src/public/avm/fixtures/account_proof.json +553 -0
  144. package/src/public/avm/fixtures/account_proof_fetcher.ts +166 -0
  145. package/src/public/avm/fixtures/base_avm_simulation_tester.ts +23 -3
  146. package/src/public/avm/fixtures/utils.ts +4 -1
  147. package/src/public/avm/opcodes/accrued_substate.ts +10 -19
  148. package/src/public/avm/opcodes/contract.ts +5 -1
  149. package/src/public/avm/opcodes/ec_add.ts +12 -31
  150. package/src/public/avm/opcodes/external_calls.ts +1 -1
  151. package/src/public/avm/serialization/bytecode_serialization.ts +2 -2
  152. package/src/public/avm/serialization/instruction_serialization.ts +1 -1
  153. package/src/public/contracts_db_checkpoint.ts +1 -1
  154. package/src/public/executor_metrics.ts +4 -1
  155. package/src/public/fixtures/amm_test.ts +4 -4
  156. package/src/public/fixtures/bulk_test.ts +31 -6
  157. package/src/public/fixtures/custom_bytecode_tester.ts +2 -2
  158. package/src/public/fixtures/custom_bytecode_tests.ts +209 -2
  159. package/src/public/fixtures/opcode_spammer.ts +22 -63
  160. package/src/public/fixtures/public_tx_simulation_tester.ts +45 -5
  161. package/src/public/fixtures/token_test.ts +3 -3
  162. package/src/public/fixtures/utils.ts +23 -24
  163. package/src/public/fuzzing/avm_fuzzer_simulator.ts +1 -1
  164. package/src/public/hinting_db_sources.ts +10 -7
  165. package/src/public/public_db_sources.ts +36 -19
  166. package/src/public/public_processor/guarded_merkle_tree.ts +6 -6
  167. package/src/public/public_processor/public_processor.ts +173 -90
  168. package/src/public/public_processor/public_processor_metrics.ts +22 -4
  169. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +11 -7
  170. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +10 -8
  171. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +7 -5
  172. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +7 -5
  173. package/src/public/public_tx_simulator/dumping_cpp_public_tx_simulator.ts +3 -1
  174. package/src/public/public_tx_simulator/factories.ts +6 -3
  175. package/src/public/public_tx_simulator/public_tx_context.ts +21 -16
  176. package/src/public/public_tx_simulator/public_tx_simulator.ts +20 -12
  177. package/src/public/side_effect_trace.ts +5 -2
  178. package/src/public/state_manager/state_manager.ts +28 -5
  179. package/src/public/test_executor_metrics.ts +27 -3
@@ -1,31 +1,20 @@
1
- import type { ACVMWitness } from '../acvm/acvm_types.js';
1
+ import type { Logger } from '@aztec/foundation/log';
2
2
  import { CircuitRecorder, type CircuitRecording } from './circuit_recorder.js';
3
3
  export declare class FileCircuitRecorder extends CircuitRecorder {
4
4
  #private;
5
5
  private readonly recordDir;
6
- recording?: CircuitRecording & {
7
- filePath: string;
8
- isFirstCall: boolean;
9
- };
10
- constructor(recordDir: string);
11
- start(input: ACVMWitness, circuitBytecode: Buffer, circuitName: string, functionName?: string): Promise<void>;
6
+ constructor(recordDir: string, logger?: Logger);
7
+ protected onStart(recording: CircuitRecording): Promise<void>;
12
8
  /**
13
9
  * Records a single oracle/foreign call with its inputs and outputs.
14
10
  * @param name - Name of the call
15
11
  * @param inputs - Input arguments
16
12
  * @param outputs - Output results
17
13
  */
18
- recordCall(name: string, inputs: unknown[], outputs: unknown, time: number, stackDepth: number): Promise<import("./circuit_recorder.js").OracleCall>;
19
- /**
20
- * Finalizes the recording file by adding closing brackets. Without calling this method, the recording file is
21
- * incomplete and it fails to parse.
22
- */
23
- finish(): Promise<CircuitRecording>;
24
- /**
25
- * Finalizes the recording file by adding the error and closing brackets. Without calling this method or `finish`,
26
- * the recording file is incomplete and it fails to parse.
27
- * @param error - The error that occurred during circuit execution
28
- */
29
- finishWithError(error: unknown): Promise<CircuitRecording>;
14
+ recordCall(name: string, inputs: unknown[], outputs: unknown, time: number): Promise<import("./circuit_recorder.js").OracleCall>;
15
+ /** Closes the recording file with the trailing brackets so the JSON parses. */
16
+ protected onFinish(recording: CircuitRecording): Promise<void>;
17
+ /** Closes the recording file with the execution error and trailing brackets so the JSON parses. */
18
+ protected onError(recording: CircuitRecording, error: unknown): Promise<void>;
30
19
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZV9jaXJjdWl0X3JlY29yZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJpdmF0ZS9jaXJjdWl0X3JlY29yZGluZy9maWxlX2NpcmN1aXRfcmVjb3JkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFL0UscUJBQWEsbUJBQW9CLFNBQVEsZUFBZTs7SUFHMUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTO0lBRjlCLFNBQVMsQ0FBQyxFQUFFLGdCQUFnQixHQUFHO1FBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQztRQUFDLFdBQVcsRUFBRSxPQUFPLENBQUE7S0FBRSxDQUFDO0lBRWxGLFlBQTZCLFNBQVMsRUFBRSxNQUFNLEVBRTdDO0lBRWMsS0FBSyxDQUNsQixLQUFLLEVBQUUsV0FBVyxFQUNsQixlQUFlLEVBQUUsTUFBTSxFQUN2QixXQUFXLEVBQUUsTUFBTSxFQUNuQixZQUFZLEdBQUUsTUFBZSxpQkFnQzlCO0lBcUNEOzs7OztPQUtHO0lBQ1ksVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSx1REFVNUc7SUFFRDs7O09BR0c7SUFDWSxNQUFNLElBQUksT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBV2pEO0lBRUQ7Ozs7T0FJRztJQUNZLGVBQWUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQWF4RTtDQUNGIn0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZV9jaXJjdWl0X3JlY29yZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJpdmF0ZS9jaXJjdWl0X3JlY29yZGluZy9maWxlX2NpcmN1aXRfcmVjb3JkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFLcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFLL0UscUJBQWEsbUJBQW9CLFNBQVEsZUFBZTs7SUFJcEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTO0lBRDVCLFlBQ21CLFNBQVMsRUFBRSxNQUFNLEVBQ2xDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFHaEI7SUFFRCxVQUF5QixPQUFPLENBQUMsU0FBUyxFQUFFLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0E2QjNFO0lBcUNEOzs7OztPQUtHO0lBQ1ksVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sdURBY3hGO0lBRUQsK0VBQStFO0lBQy9FLFVBQXlCLFFBQVEsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVU1RTtJQUVELG1HQUFtRztJQUNuRyxVQUF5QixPQUFPLENBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVkzRjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"file_circuit_recorder.d.ts","sourceRoot":"","sources":["../../../src/private/circuit_recording/file_circuit_recorder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE/E,qBAAa,mBAAoB,SAAQ,eAAe;;IAG1C,OAAO,CAAC,QAAQ,CAAC,SAAS;IAF9B,SAAS,CAAC,EAAE,gBAAgB,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC;IAElF,YAA6B,SAAS,EAAE,MAAM,EAE7C;IAEc,KAAK,CAClB,KAAK,EAAE,WAAW,EAClB,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,YAAY,GAAE,MAAe,iBAgC9B;IAqCD;;;;;OAKG;IACY,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,uDAU5G;IAED;;;OAGG;IACY,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAWjD;IAED;;;;OAIG;IACY,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAaxE;CACF"}
1
+ {"version":3,"file":"file_circuit_recorder.d.ts","sourceRoot":"","sources":["../../../src/private/circuit_recording/file_circuit_recorder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAKpD,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAK/E,qBAAa,mBAAoB,SAAQ,eAAe;;IAIpD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAD5B,YACmB,SAAS,EAAE,MAAM,EAClC,MAAM,CAAC,EAAE,MAAM,EAGhB;IAED,UAAyB,OAAO,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B3E;IAqCD;;;;;OAKG;IACY,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,uDAcxF;IAED,+EAA+E;IAC/E,UAAyB,QAAQ,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAU5E;IAED,mGAAmG;IACnG,UAAyB,OAAO,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAY3F;CACF"}
@@ -3,17 +3,15 @@ import path from 'path';
3
3
  import { CircuitRecorder } from './circuit_recorder.js';
4
4
  export class FileCircuitRecorder extends CircuitRecorder {
5
5
  recordDir;
6
- constructor(recordDir){
7
- super(), this.recordDir = recordDir;
6
+ #fileState;
7
+ constructor(recordDir, logger){
8
+ super(logger), this.recordDir = recordDir, this.#fileState = new WeakMap();
8
9
  }
9
- async start(input, circuitBytecode, circuitName, functionName = 'main') {
10
- await super.start(input, circuitBytecode, circuitName, functionName);
10
+ async onStart(recording) {
11
11
  const recordingStringWithoutClosingBracket = JSON.stringify({
12
- ...this.recording,
13
- isFirstCall: undefined,
12
+ ...recording,
14
13
  parent: undefined,
15
- oracleCalls: undefined,
16
- filePath: undefined
14
+ oracleCalls: undefined
17
15
  }, null, 2).slice(0, -2);
18
16
  try {
19
17
  // Check if the recording directory exists and is a directory
@@ -31,8 +29,11 @@ export class FileCircuitRecorder extends CircuitRecorder {
31
29
  throw err;
32
30
  }
33
31
  }
34
- this.recording.isFirstCall = true;
35
- this.recording.filePath = await FileCircuitRecorder.#computeFilePathAndStoreInitialRecording(this.recordDir, this.recording.circuitName, this.recording.functionName, recordingStringWithoutClosingBracket);
32
+ const filePath = await FileCircuitRecorder.#computeFilePathAndStoreInitialRecording(this.recordDir, recording.circuitName, recording.functionName, recordingStringWithoutClosingBracket);
33
+ this.#fileState.set(recording, {
34
+ filePath,
35
+ isFirstCall: true
36
+ });
36
37
  }
37
38
  /**
38
39
  * Computes a unique file path for the recording by trying different counter values.
@@ -67,55 +68,50 @@ export class FileCircuitRecorder extends CircuitRecorder {
67
68
  * @param name - Name of the call
68
69
  * @param inputs - Input arguments
69
70
  * @param outputs - Output results
70
- */ async recordCall(name, inputs, outputs, time, stackDepth) {
71
- const entry = await super.recordCall(name, inputs, outputs, time, stackDepth);
72
- try {
73
- const prefix = this.recording.isFirstCall ? ' ' : ' ,';
74
- this.recording.isFirstCall = false;
75
- await fs.appendFile(this.recording.filePath, prefix + JSON.stringify(entry) + '\n');
76
- } catch (err) {
77
- this.logger.error('Failed to log circuit call', {
78
- error: err
79
- });
71
+ */ async recordCall(name, inputs, outputs, time) {
72
+ const entry = await super.recordCall(name, inputs, outputs, time);
73
+ const recording = this.currentRecording();
74
+ const state = recording && this.#fileState.get(recording);
75
+ if (state) {
76
+ try {
77
+ const prefix = state.isFirstCall ? ' ' : ' ,';
78
+ state.isFirstCall = false;
79
+ await fs.appendFile(state.filePath, prefix + JSON.stringify(entry) + '\n');
80
+ } catch (err) {
81
+ this.logger.error('Failed to log circuit call', {
82
+ error: err
83
+ });
84
+ }
80
85
  }
81
86
  return entry;
82
87
  }
83
- /**
84
- * Finalizes the recording file by adding closing brackets. Without calling this method, the recording file is
85
- * incomplete and it fails to parse.
86
- */ async finish() {
87
- // Finish sets the recording to undefined if we are at the topmost circuit,
88
- // so we save the current file path before that
89
- const filePath = this.recording.filePath;
90
- const result = await super.finish();
88
+ /** Closes the recording file with the trailing brackets so the JSON parses. */ async onFinish(recording) {
89
+ const state = this.#fileState.get(recording);
90
+ if (!state) {
91
+ return;
92
+ }
91
93
  try {
92
- await fs.appendFile(filePath, ' ]\n}\n');
94
+ await fs.appendFile(state.filePath, ' ]\n}\n');
93
95
  } catch (err) {
94
96
  this.logger.error('Failed to finalize recording file', {
95
97
  error: err
96
98
  });
97
99
  }
98
- return result;
99
100
  }
100
- /**
101
- * Finalizes the recording file by adding the error and closing brackets. Without calling this method or `finish`,
102
- * the recording file is incomplete and it fails to parse.
103
- * @param error - The error that occurred during circuit execution
104
- */ async finishWithError(error) {
105
- // Finish sets the recording to undefined if we are at the topmost circuit,
106
- // so we save the current file path before that
107
- const filePath = this.recording.filePath;
108
- const result = await super.finishWithError(error);
101
+ /** Closes the recording file with the execution error and trailing brackets so the JSON parses. */ async onError(recording, error) {
102
+ const state = this.#fileState.get(recording);
103
+ if (!state) {
104
+ return;
105
+ }
109
106
  try {
110
- await fs.appendFile(filePath, ' ],\n');
111
- await fs.appendFile(filePath, ` "error": ${JSON.stringify(error)}\n`);
112
- await fs.appendFile(filePath, '}\n');
107
+ await fs.appendFile(state.filePath, ' ],\n');
108
+ await fs.appendFile(state.filePath, ` "error": ${JSON.stringify(error)}\n`);
109
+ await fs.appendFile(state.filePath, '}\n');
113
110
  } catch (err) {
114
111
  this.logger.error('Failed to finalize recording file with error', {
115
112
  error: err
116
113
  });
117
114
  }
118
- return result;
119
115
  }
120
116
  }
121
117
  /**
@@ -1,5 +1,10 @@
1
+ import type { Logger } from '@aztec/foundation/log';
1
2
  import { CircuitRecorder } from './circuit_recorder.js';
3
+ /**
4
+ * In memory circuit recorder uses the default implementation. This is kept
5
+ * while we decide the fate of the FileCircuitRecorder.
6
+ */
2
7
  export declare class MemoryCircuitRecorder extends CircuitRecorder {
3
- constructor();
8
+ constructor(logger?: Logger);
4
9
  }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5X2NpcmN1aXRfcmVjb3JkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcml2YXRlL2NpcmN1aXRfcmVjb3JkaW5nL21lbW9yeV9jaXJjdWl0X3JlY29yZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQU14RCxxQkFBYSxxQkFBc0IsU0FBUSxlQUFlO0lBQ3hELGNBRUM7Q0FDRiJ9
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5X2NpcmN1aXRfcmVjb3JkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcml2YXRlL2NpcmN1aXRfcmVjb3JkaW5nL21lbW9yeV9jaXJjdWl0X3JlY29yZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXBELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RDs7O0dBR0c7QUFDSCxxQkFBYSxxQkFBc0IsU0FBUSxlQUFlO0lBQ3hELFlBQVksTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUUxQjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"memory_circuit_recorder.d.ts","sourceRoot":"","sources":["../../../src/private/circuit_recording/memory_circuit_recorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMxD,qBAAa,qBAAsB,SAAQ,eAAe;IACxD,cAEC;CACF"}
1
+ {"version":3,"file":"memory_circuit_recorder.d.ts","sourceRoot":"","sources":["../../../src/private/circuit_recording/memory_circuit_recorder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,eAAe;IACxD,YAAY,MAAM,CAAC,EAAE,MAAM,EAE1B;CACF"}
@@ -1,9 +1,9 @@
1
1
  import { CircuitRecorder } from './circuit_recorder.js';
2
- /*
2
+ /**
3
3
  * In memory circuit recorder uses the default implementation. This is kept
4
- * while we decide the fate of the FileCircuitRecorder
4
+ * while we decide the fate of the FileCircuitRecorder.
5
5
  */ export class MemoryCircuitRecorder extends CircuitRecorder {
6
- constructor(){
7
- super();
6
+ constructor(logger){
7
+ super(logger);
8
8
  }
9
9
  }
@@ -18,4 +18,4 @@ export declare class SimulatorRecorderWrapper implements CircuitSimulator {
18
18
  executeProtocolCircuit(input: ACVMWitness, artifact: NoirCompiledCircuitWithName, callback: ForeignCallHandler | undefined): Promise<ACVMSuccess>;
19
19
  executeUserCircuit(input: ACVMWitness, artifact: FunctionArtifactWithContractName, callback: ACIRCallback): Promise<ACIRExecutionResult>;
20
20
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltdWxhdG9yX3JlY29yZGVyX3dyYXBwZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcml2YXRlL2NpcmN1aXRfcmVjb3JkaW5nL3NpbXVsYXRvcl9yZWNvcmRlcl93cmFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXRFLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBcUIsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTdEOzs7R0FHRztBQUNILHFCQUFhLHdCQUF5QixZQUFXLGdCQUFnQjs7SUFFN0QsT0FBTyxDQUFDLFNBQVM7SUFDakIsT0FBTyxDQUFDLFFBQVE7SUFGbEIsWUFDVSxTQUFTLEVBQUUsZ0JBQWdCLEVBQzNCLFFBQVEsRUFBRSxlQUFlLEVBQy9CO0lBRUosc0JBQXNCLENBQ3BCLEtBQUssRUFBRSxXQUFXLEVBQ2xCLFFBQVEsRUFBRSwyQkFBMkIsRUFDckMsUUFBUSxFQUFFLGtCQUFrQixHQUFHLFNBQVMsR0FDdkMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQVd0QjtJQUVELGtCQUFrQixDQUNoQixLQUFLLEVBQUUsV0FBVyxFQUNsQixRQUFRLEVBQUUsZ0NBQWdDLEVBQzFDLFFBQVEsRUFBRSxZQUFZLEdBQ3JCLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQVM5QjtDQXdDRiJ9
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltdWxhdG9yX3JlY29yZGVyX3dyYXBwZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcml2YXRlL2NpcmN1aXRfcmVjb3JkaW5nL3NpbXVsYXRvcl9yZWNvcmRlcl93cmFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXRFLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBcUIsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTdEOzs7R0FHRztBQUNILHFCQUFhLHdCQUF5QixZQUFXLGdCQUFnQjs7SUFFN0QsT0FBTyxDQUFDLFNBQVM7SUFDakIsT0FBTyxDQUFDLFFBQVE7SUFGbEIsWUFDVSxTQUFTLEVBQUUsZ0JBQWdCLEVBQzNCLFFBQVEsRUFBRSxlQUFlLEVBQy9CO0lBRUosc0JBQXNCLENBQ3BCLEtBQUssRUFBRSxXQUFXLEVBQ2xCLFFBQVEsRUFBRSwyQkFBMkIsRUFDckMsUUFBUSxFQUFFLGtCQUFrQixHQUFHLFNBQVMsR0FDdkMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQVd0QjtJQUVELGtCQUFrQixDQUNoQixLQUFLLEVBQUUsV0FBVyxFQUNsQixRQUFRLEVBQUUsZ0NBQWdDLEVBQzFDLFFBQVEsRUFBRSxZQUFZLEdBQ3JCLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQVM5QjtDQWtDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"simulator_recorder_wrapper.d.ts","sourceRoot":"","sources":["../../../src/private/circuit_recording/simulator_recorder_wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,KAAK,EAAE,YAAY,EAAqB,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;GAGG;AACH,qBAAa,wBAAyB,YAAW,gBAAgB;;IAE7D,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ;IAFlB,YACU,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,eAAe,EAC/B;IAEJ,sBAAsB,CACpB,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,2BAA2B,EACrC,QAAQ,EAAE,kBAAkB,GAAG,SAAS,GACvC,OAAO,CAAC,WAAW,CAAC,CAWtB;IAED,kBAAkB,CAChB,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,gCAAgC,EAC1C,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,mBAAmB,CAAC,CAS9B;CAwCF"}
1
+ {"version":3,"file":"simulator_recorder_wrapper.d.ts","sourceRoot":"","sources":["../../../src/private/circuit_recording/simulator_recorder_wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,KAAK,EAAE,YAAY,EAAqB,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;GAGG;AACH,qBAAa,wBAAyB,YAAW,gBAAgB;;IAE7D,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ;IAFlB,YACU,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,eAAe,EAC/B;IAEJ,sBAAsB,CACpB,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,2BAA2B,EACrC,QAAQ,EAAE,kBAAkB,GAAG,SAAS,GACvC,OAAO,CAAC,WAAW,CAAC,CAWtB;IAED,kBAAkB,CAChB,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,gCAAgC,EAC1C,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,mBAAmB,CAAC,CAS9B;CAkCF"}
@@ -16,21 +16,18 @@
16
16
  return this.#simulate((wrappedCallback)=>this.simulator.executeUserCircuit(input, artifact, wrappedCallback), input, artifact.bytecode, artifact.contractName, artifact.name, callback);
17
17
  }
18
18
  async #simulate(simulateFn, input, bytecode, contractName, functionName, callback) {
19
- // Start recording circuit execution
20
- await this.recorder.start(input, bytecode, contractName, functionName);
21
- // If callback was provided, we wrap it in a circuit recorder callback wrapper
19
+ // If a callback was provided, we wrap it so that its oracle calls are recorded. The wrapped callback reads the
20
+ // active recording lazily, so it picks up the recording opened by record() below.
22
21
  const wrappedCallback = this.recorder.wrapCallback(callback);
23
- let result;
24
- try {
25
- result = await simulateFn(wrappedCallback);
26
- } catch (error) {
27
- // If an error occurs, we finalize the recording file with the error
28
- await this.recorder.finishWithError(error);
29
- throw error;
30
- }
31
- // Witness generation is complete so we finish the circuit recorder
32
- const recording = await this.recorder.finish();
33
- result.oracles = recording.oracleCalls?.reduce((acc, { time, name })=>{
22
+ // record() opens a recording for this circuit, runs the simulation within it, and finalizes it. A simulation
23
+ // failure is re-thrown unchanged, so recorder bookkeeping never masks the underlying error.
24
+ const { result, recording } = await this.recorder.record({
25
+ input,
26
+ bytecode,
27
+ circuitName: contractName,
28
+ functionName
29
+ }, ()=>simulateFn(wrappedCallback));
30
+ result.oracles = recording.oracleCalls.reduce((acc, { time, name })=>{
34
31
  if (!acc[name]) {
35
32
  acc[name] = {
36
33
  times: []
@@ -1,4 +1,4 @@
1
- import { type Logger } from '@aztec/foundation/log';
1
+ import { type Logger, type LoggerBindings } from '@aztec/foundation/log';
2
2
  import type { CircuitSimulator } from './circuit_simulator.js';
3
3
  export type SimulatorConfig = {
4
4
  acvmBinaryPath?: string;
@@ -8,5 +8,5 @@ export declare function getSimulatorConfigFromEnv(): {
8
8
  acvmWorkingDirectory: string | undefined;
9
9
  acvmBinaryPath: string | undefined;
10
10
  };
11
- export declare function createSimulator(config: SimulatorConfig, logger?: Logger): Promise<CircuitSimulator>;
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByaXZhdGUvZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFNbEUsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUvRCxNQUFNLE1BQU0sZUFBZSxHQUFHO0lBQzVCLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN4QixvQkFBb0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUMvQixDQUFDO0FBRUYsd0JBQWdCLHlCQUF5Qjs7O0VBTXhDO0FBRUQsd0JBQXNCLGVBQWUsQ0FDbkMsTUFBTSxFQUFFLGVBQWUsRUFDdkIsTUFBTSxHQUFFLE1BQWtDLEdBQ3pDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQWEzQiJ9
11
+ export declare function createSimulator(config: SimulatorConfig, loggerOrBindings?: Logger | LoggerBindings): Promise<CircuitSimulator>;
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByaXZhdGUvZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQUUsS0FBSyxjQUFjLEVBQWlCLE1BQU0sdUJBQXVCLENBQUM7QUFNeEYsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUvRCxNQUFNLE1BQU0sZUFBZSxHQUFHO0lBQzVCLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN4QixvQkFBb0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUMvQixDQUFDO0FBRUYsd0JBQWdCLHlCQUF5Qjs7O0VBTXhDO0FBRUQsd0JBQXNCLGVBQWUsQ0FDbkMsTUFBTSxFQUFFLGVBQWUsRUFDdkIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEdBQUcsY0FBYyxHQUN6QyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FnQjNCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/private/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAMlE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,wBAAgB,yBAAyB;;;EAMxC;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,MAAM,GAAE,MAAkC,GACzC,OAAO,CAAC,gBAAgB,CAAC,CAa3B"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/private/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,cAAc,EAAiB,MAAM,uBAAuB,CAAC;AAMxF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,wBAAgB,yBAAyB;;;EAMxC;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,gBAAgB,CAAC,EAAE,MAAM,GAAG,cAAc,GACzC,OAAO,CAAC,gBAAgB,CAAC,CAgB3B"}
@@ -1,4 +1,4 @@
1
- import { createLogger } from '@aztec/foundation/log';
1
+ import { resolveLogger } from '@aztec/foundation/log';
2
2
  import { promises as fs } from 'fs';
3
3
  import { NativeACVMSimulator } from './acvm_native.js';
4
4
  import { WASMSimulator } from './acvm_wasm.js';
@@ -9,7 +9,8 @@ export function getSimulatorConfigFromEnv() {
9
9
  acvmBinaryPath: ACVM_BINARY_PATH ? ACVM_BINARY_PATH : undefined
10
10
  };
11
11
  }
12
- export async function createSimulator(config, logger = createLogger('simulator')) {
12
+ export async function createSimulator(config, loggerOrBindings) {
13
+ const logger = resolveLogger('simulator', loggerOrBindings);
13
14
  if (config.acvmBinaryPath && config.acvmWorkingDirectory) {
14
15
  try {
15
16
  await fs.access(config.acvmBinaryPath, fs.constants.R_OK);
@@ -17,11 +18,13 @@ export async function createSimulator(config, logger = createLogger('simulator')
17
18
  recursive: true
18
19
  });
19
20
  logger.info(`Using native ACVM at ${config.acvmBinaryPath} and working directory ${config.acvmWorkingDirectory}`);
20
- return new NativeACVMSimulator(config.acvmWorkingDirectory, config.acvmBinaryPath);
21
+ const acvmLogger = logger.createChild('acvm-native');
22
+ return new NativeACVMSimulator(config.acvmWorkingDirectory, config.acvmBinaryPath, undefined, acvmLogger);
21
23
  } catch {
22
24
  logger.warn(`Failed to access ACVM at ${config.acvmBinaryPath}, falling back to WASM`);
23
25
  }
24
26
  }
25
27
  logger.info('Using WASM ACVM simulation');
26
- return new WASMSimulator();
28
+ const wasmLogger = logger.createChild('wasm');
29
+ return new WASMSimulator(wasmLogger);
27
30
  }
@@ -101,7 +101,7 @@ function makeCost(l2Gas, daGas) {
101
101
  [Opcode.NULLIFIEREXISTS]: makeCost(c.AVM_NULLIFIEREXISTS_BASE_L2_GAS, 0),
102
102
  [Opcode.EMITNULLIFIER]: makeCost(c.AVM_EMITNULLIFIER_BASE_L2_GAS, c.AVM_EMITNULLIFIER_BASE_DA_GAS),
103
103
  [Opcode.L1TOL2MSGEXISTS]: makeCost(c.AVM_L1TOL2MSGEXISTS_BASE_L2_GAS, 0),
104
- [Opcode.EMITUNENCRYPTEDLOG]: makeCost(c.AVM_EMITUNENCRYPTEDLOG_BASE_L2_GAS, c.AVM_EMITUNENCRYPTEDLOG_BASE_DA_GAS),
104
+ [Opcode.EMITPUBLICLOG]: makeCost(c.AVM_EMITPUBLICLOG_BASE_L2_GAS, c.AVM_EMITPUBLICLOG_BASE_DA_GAS),
105
105
  [Opcode.SENDL2TOL1MSG]: makeCost(c.AVM_SENDL2TOL1MSG_BASE_L2_GAS, c.AVM_SENDL2TOL1MSG_BASE_DA_GAS),
106
106
  [Opcode.GETCONTRACTINSTANCE]: makeCost(c.AVM_GETCONTRACTINSTANCE_BASE_L2_GAS, 0),
107
107
  [Opcode.CALL]: makeCost(c.AVM_CALL_BASE_L2_GAS, 0),
@@ -127,8 +127,8 @@ const DYNAMIC_GAS_COSTS = new Map([
127
127
  ],
128
128
  // TODO: Call and static call based on bytecode length
129
129
  [
130
- Opcode.EMITUNENCRYPTEDLOG,
131
- makeCost(c.AVM_EMITUNENCRYPTEDLOG_DYN_L2_GAS, c.AVM_EMITUNENCRYPTEDLOG_DYN_DA_GAS)
130
+ Opcode.EMITPUBLICLOG,
131
+ makeCost(c.AVM_EMITPUBLICLOG_DYN_L2_GAS, c.AVM_EMITPUBLICLOG_DYN_DA_GAS)
132
132
  ],
133
133
  [
134
134
  Opcode.TORADIXBE,
@@ -45,7 +45,7 @@ export class AvmSimulator {
45
45
  static async build(context) {
46
46
  const simulator = new AvmSimulator(context);
47
47
  const fnName = await context.persistableState.getPublicFunctionDebugName(context.environment);
48
- simulator.log = createLogger(`simulator:avm(f:${fnName})`);
48
+ simulator.log = createLogger(`simulator:avm(f:${fnName.slice(0, 128)})`);
49
49
  return simulator;
50
50
  }
51
51
  static async create(stateManager, address, sender, transactionFee, globals, isStaticCall, calldata, allocatedGas, config) {
@@ -48,4 +48,4 @@ export declare class ReturnDataMemory extends LazyReaderMemory implements Return
48
48
  readonly [ReturnDataBrand]: true;
49
49
  }
50
50
  export {};
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGRhdGEuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMvYXZtL2NhbGxkYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUtyRCxNQUFNLFdBQVcsVUFBVTtJQUN6QixpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLEdBQUcsRUFBRSxFQUFFLENBQUM7SUFDMUMsT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFDO0lBQ2hCLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUM7SUFDbEMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUN4QyxNQUFNLElBQUksTUFBTSxDQUFDO0NBQ2xCO0FBRUQscUJBQWEsZ0JBQWlCLFlBQVcsVUFBVTtJQUUvQyxPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxNQUFNO0lBQ2QsT0FBTyxDQUFDLElBQUk7SUFIZCxZQUNVLE1BQU0sRUFBRSxZQUFZLEVBQ3BCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsSUFBSSxFQUFFLE1BQU0sRUFDbEI7SUFFRyxpQkFBaUIsQ0FBQyxPQUFPLFNBQStCLEdBQUcsRUFBRSxFQUFFLENBR3JFO0lBRU0sSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FLdkM7SUFFTSxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUk3QztJQUVNLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FFckI7SUFFTSxNQUFNLElBQUksTUFBTSxDQUV0QjtDQUNGO0FBRUQscUJBQWEsZUFBZ0IsWUFBVyxVQUFVO0lBQ3BDLE9BQU8sQ0FBQyxLQUFLO0lBQXpCLFlBQW9CLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBSTtJQUU1QixpQkFBaUIsQ0FBQyxPQUFPLFNBQStCLEdBQUcsRUFBRSxFQUFFLENBRXJFO0lBRU0sSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FFdkM7SUFFTSxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUU3QztJQUVNLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FFckI7SUFFTSxNQUFNLElBQUksTUFBTSxDQUV0QjtDQUNGO0FBR0QsT0FBTyxDQUFDLE1BQU0sYUFBYSxFQUFFLE9BQU8sTUFBTSxDQUFDO0FBQzNDLE9BQU8sQ0FBQyxNQUFNLGVBQWUsRUFBRSxPQUFPLE1BQU0sQ0FBQztBQUU3QyxNQUFNLE1BQU0sUUFBUSxHQUFHLFVBQVUsR0FBRztJQUNsQyxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLENBQUM7Q0FDaEMsQ0FBQztBQUVGLE1BQU0sTUFBTSxVQUFVLEdBQUcsVUFBVSxHQUFHO0lBQ3BDLFFBQVEsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFFLElBQUksQ0FBQztDQUNsQyxDQUFDO0FBRUYscUJBQWEsYUFBYyxTQUFRLGVBQWdCLFlBQVcsUUFBUTtJQUNwRSxTQUFpQixDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksQ0FBQztDQUN4QztBQUVELHFCQUFhLGNBQWUsU0FBUSxnQkFBaUIsWUFBVyxRQUFRO0lBQ3RFLFNBQWlCLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxDQUFDO0NBQ3hDO0FBRUQscUJBQWEsZUFBZ0IsU0FBUSxlQUFnQixZQUFXLFVBQVU7SUFDeEUsU0FBaUIsQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLENBQUM7Q0FDMUM7QUFFRCxxQkFBYSxnQkFBaUIsU0FBUSxnQkFBaUIsWUFBVyxVQUFVO0lBQzFFLFNBQWlCLENBQUMsZUFBZSxDQUFDLEVBQUUsSUFBSSxDQUFDO0NBQzFDIn0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGRhdGEuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMvYXZtL2NhbGxkYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUtyRCxNQUFNLFdBQVcsVUFBVTtJQUN6QixpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLEdBQUcsRUFBRSxFQUFFLENBQUM7SUFDMUMsT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFDO0lBQ2hCLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUM7SUFDbEMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUN4QyxNQUFNLElBQUksTUFBTSxDQUFDO0NBQ2xCO0FBRUQscUJBQWEsZ0JBQWlCLFlBQVcsVUFBVTtJQUUvQyxPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxNQUFNO0lBQ2QsT0FBTyxDQUFDLElBQUk7SUFIZCxZQUNVLE1BQU0sRUFBRSxZQUFZLEVBQ3BCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsSUFBSSxFQUFFLE1BQU0sRUFDbEI7SUFFRyxpQkFBaUIsQ0FBQyxPQUFPLFNBQStCLEdBQUcsRUFBRSxFQUFFLENBR3JFO0lBRU0sSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FLdkM7SUFFTSxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUk3QztJQUVNLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FHckI7SUFFTSxNQUFNLElBQUksTUFBTSxDQUV0QjtDQUNGO0FBRUQscUJBQWEsZUFBZ0IsWUFBVyxVQUFVO0lBQ3BDLE9BQU8sQ0FBQyxLQUFLO0lBQXpCLFlBQW9CLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBSTtJQUU1QixpQkFBaUIsQ0FBQyxPQUFPLFNBQStCLEdBQUcsRUFBRSxFQUFFLENBRXJFO0lBRU0sSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FFdkM7SUFFTSxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUU3QztJQUVNLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FFckI7SUFFTSxNQUFNLElBQUksTUFBTSxDQUV0QjtDQUNGO0FBR0QsT0FBTyxDQUFDLE1BQU0sYUFBYSxFQUFFLE9BQU8sTUFBTSxDQUFDO0FBQzNDLE9BQU8sQ0FBQyxNQUFNLGVBQWUsRUFBRSxPQUFPLE1BQU0sQ0FBQztBQUU3QyxNQUFNLE1BQU0sUUFBUSxHQUFHLFVBQVUsR0FBRztJQUNsQyxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLENBQUM7Q0FDaEMsQ0FBQztBQUVGLE1BQU0sTUFBTSxVQUFVLEdBQUcsVUFBVSxHQUFHO0lBQ3BDLFFBQVEsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFFLElBQUksQ0FBQztDQUNsQyxDQUFDO0FBRUYscUJBQWEsYUFBYyxTQUFRLGVBQWdCLFlBQVcsUUFBUTtJQUNwRSxTQUFpQixDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksQ0FBQztDQUN4QztBQUVELHFCQUFhLGNBQWUsU0FBUSxnQkFBaUIsWUFBVyxRQUFRO0lBQ3RFLFNBQWlCLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxDQUFDO0NBQ3hDO0FBRUQscUJBQWEsZUFBZ0IsU0FBUSxlQUFnQixZQUFXLFVBQVU7SUFDeEUsU0FBaUIsQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLENBQUM7Q0FDMUM7QUFFRCxxQkFBYSxnQkFBaUIsU0FBUSxnQkFBaUIsWUFBVyxVQUFVO0lBQzFFLFNBQWlCLENBQUMsZUFBZSxDQUFDLEVBQUUsSUFBSSxDQUFDO0NBQzFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"calldata.d.ts","sourceRoot":"","sources":["../../../src/public/avm/calldata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAKrD,MAAM,WAAW,UAAU;IACzB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,CAAC;IAC1C,OAAO,IAAI,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,GAAG,SAAS,CAAC;IAClC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,CAAC;IACxC,MAAM,IAAI,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAiB,YAAW,UAAU;IAE/C,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,IAAI;IAHd,YACU,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAClB;IAEG,iBAAiB,CAAC,OAAO,SAA+B,GAAG,EAAE,EAAE,CAGrE;IAEM,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,GAAG,SAAS,CAKvC;IAEM,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,CAI7C;IAEM,OAAO,IAAI,EAAE,EAAE,CAErB;IAEM,MAAM,IAAI,MAAM,CAEtB;CACF;AAED,qBAAa,eAAgB,YAAW,UAAU;IACpC,OAAO,CAAC,KAAK;IAAzB,YAAoB,KAAK,EAAE,EAAE,EAAE,EAAI;IAE5B,iBAAiB,CAAC,OAAO,SAA+B,GAAG,EAAE,EAAE,CAErE;IAEM,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,GAAG,SAAS,CAEvC;IAEM,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,CAE7C;IAEM,OAAO,IAAI,EAAE,EAAE,CAErB;IAEM,MAAM,IAAI,MAAM,CAEtB;CACF;AAGD,OAAO,CAAC,MAAM,aAAa,EAAE,OAAO,MAAM,CAAC;AAC3C,OAAO,CAAC,MAAM,eAAe,EAAE,OAAO,MAAM,CAAC;AAE7C,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG;IAClC,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG;IACpC,QAAQ,CAAC,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC;CAClC,CAAC;AAEF,qBAAa,aAAc,SAAQ,eAAgB,YAAW,QAAQ;IACpE,SAAiB,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;CACxC;AAED,qBAAa,cAAe,SAAQ,gBAAiB,YAAW,QAAQ;IACtE,SAAiB,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;CACxC;AAED,qBAAa,eAAgB,SAAQ,eAAgB,YAAW,UAAU;IACxE,SAAiB,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC;CAC1C;AAED,qBAAa,gBAAiB,SAAQ,gBAAiB,YAAW,UAAU;IAC1E,SAAiB,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC;CAC1C"}
1
+ {"version":3,"file":"calldata.d.ts","sourceRoot":"","sources":["../../../src/public/avm/calldata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAKrD,MAAM,WAAW,UAAU;IACzB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,CAAC;IAC1C,OAAO,IAAI,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,GAAG,SAAS,CAAC;IAClC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,CAAC;IACxC,MAAM,IAAI,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAiB,YAAW,UAAU;IAE/C,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,IAAI;IAHd,YACU,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAClB;IAEG,iBAAiB,CAAC,OAAO,SAA+B,GAAG,EAAE,EAAE,CAGrE;IAEM,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,GAAG,SAAS,CAKvC;IAEM,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,CAI7C;IAEM,OAAO,IAAI,EAAE,EAAE,CAGrB;IAEM,MAAM,IAAI,MAAM,CAEtB;CACF;AAED,qBAAa,eAAgB,YAAW,UAAU;IACpC,OAAO,CAAC,KAAK;IAAzB,YAAoB,KAAK,EAAE,EAAE,EAAE,EAAI;IAE5B,iBAAiB,CAAC,OAAO,SAA+B,GAAG,EAAE,EAAE,CAErE;IAEM,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,GAAG,SAAS,CAEvC;IAEM,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,CAE7C;IAEM,OAAO,IAAI,EAAE,EAAE,CAErB;IAEM,MAAM,IAAI,MAAM,CAEtB;CACF;AAGD,OAAO,CAAC,MAAM,aAAa,EAAE,OAAO,MAAM,CAAC;AAC3C,OAAO,CAAC,MAAM,eAAe,EAAE,OAAO,MAAM,CAAC;AAE7C,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG;IAClC,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG;IACpC,QAAQ,CAAC,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC;CAClC,CAAC;AAEF,qBAAa,aAAc,SAAQ,eAAgB,YAAW,QAAQ;IACpE,SAAiB,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;CACxC;AAED,qBAAa,cAAe,SAAQ,gBAAiB,YAAW,QAAQ;IACtE,SAAiB,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;CACxC;AAED,qBAAa,eAAgB,SAAQ,eAAgB,YAAW,UAAU;IACxE,SAAiB,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC;CAC1C;AAED,qBAAa,gBAAiB,SAAQ,gBAAiB,YAAW,UAAU;IAC1E,SAAiB,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC;CAC1C"}
@@ -21,12 +21,13 @@ export class LazyReaderMemory {
21
21
  return this.memory.get(this.offset + idx).toFr();
22
22
  }
23
23
  slice(start, end) {
24
- const clampedEnd = Math.min(end, this.size);
24
+ const clampedEnd = Math.min(end, this.size, TaggedMemory.MAX_MEMORY_SIZE - this.offset);
25
25
  const length = Math.max(0, clampedEnd - start);
26
26
  return this.memory.getSlice(this.offset + start, length).map((word)=>word.toFr());
27
27
  }
28
28
  readAll() {
29
- return this.memory.getSlice(this.offset, this.size).map((word)=>word.toFr());
29
+ const size = Math.min(this.size, TaggedMemory.MAX_MEMORY_SIZE - this.offset);
30
+ return this.memory.getSlice(this.offset, size).map((word)=>word.toFr());
30
31
  }
31
32
  length() {
32
33
  return this.size;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudF9wcm9vZl9mZXRjaGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHVibGljL2F2bS9maXh0dXJlcy9hY2NvdW50X3Byb29mX2ZldGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account_proof_fetcher.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/fixtures/account_proof_fetcher.ts"],"names":[],"mappings":""}
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Fetches an account proof from the Ethereum mainnet and saves it as account_proof.json.
3
+ * This script is not using any Aztec library code, so it's easily portable.
4
+ */ import fs from 'fs';
5
+ import { dirname, join } from 'path';
6
+ import { fileURLToPath } from 'url';
7
+ import { createPublicClient, fromRlp, hexToBytes, http } from 'viem';
8
+ import { mainnet } from 'viem/chains';
9
+ const __dirname = dirname(fileURLToPath(import.meta.url));
10
+ const RPC_URL = process.env.RPC_URL;
11
+ const ADDRESS = process.env.ADDRESS || '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045';
12
+ const BLOCK_TAG = process.env.BLOCK_NUMBER ? BigInt(process.env.BLOCK_NUMBER) : 'latest';
13
+ const MAX_ACCOUNT_PATH = 15;
14
+ function padTo(arr, len) {
15
+ return [
16
+ ...arr,
17
+ ...Array(len - arr.length).fill(0)
18
+ ].slice(0, len);
19
+ }
20
+ function toBytes(hex) {
21
+ return Array.from(hexToBytes(hex));
22
+ }
23
+ function bytesToU64s(bytes) {
24
+ const paddedBytes = padTo(bytes, 32);
25
+ return Array.from({
26
+ length: 4
27
+ }, (_, i)=>{
28
+ let val = 0n;
29
+ for(let j = 0; j < 8; j++){
30
+ val += BigInt(paddedBytes[i * 8 + j]) << BigInt(j * 8);
31
+ }
32
+ return val.toString();
33
+ });
34
+ }
35
+ function toBytesAndLen(val) {
36
+ if (val === 0n || val === 0) {
37
+ return {
38
+ bytes: [
39
+ 0
40
+ ],
41
+ length: 0
42
+ };
43
+ }
44
+ let hex = val.toString(16);
45
+ if (hex.length % 2) {
46
+ hex = '0' + hex;
47
+ }
48
+ const bytes = toBytes(`0x${hex}`);
49
+ return {
50
+ bytes,
51
+ length: bytes.length
52
+ };
53
+ }
54
+ function parseNode(rlp) {
55
+ // Should be safe when working with branches and extensions without embedded children.
56
+ const decoded = fromRlp(rlp);
57
+ const node = {
58
+ rows: Array(16).fill(0).map(()=>Array(32).fill(0)),
59
+ row_exist: Array(16).fill(false),
60
+ node_type: 0
61
+ };
62
+ if (decoded.length === 17) {
63
+ for(let i = 0; i < 16; i++){
64
+ if (decoded[i] !== '0x') {
65
+ node.row_exist[i] = true;
66
+ node.rows[i] = padTo(toBytes(decoded[i]), 32);
67
+ }
68
+ }
69
+ } else if (decoded.length === 2) {
70
+ const keyBytes = toBytes(decoded[0]);
71
+ const prefix = keyBytes[0];
72
+ if (prefix >> 4 >= 2) {
73
+ throw new Error('Unsupported: leaf node in proof path');
74
+ }
75
+ node.node_type = 1;
76
+ // Extension header format expected by the noir code: check out storage_proof types.nr.
77
+ node.rows[0][0] = prefix >> 4;
78
+ node.rows[0][8] = prefix & 0x0f;
79
+ node.rows[0][16] = keyBytes.length - 1;
80
+ for(let i = 1; i < keyBytes.length && i < 32; i++){
81
+ node.rows[1][i - 1] = keyBytes[i];
82
+ }
83
+ node.rows[2] = padTo(toBytes(decoded[1]), 32);
84
+ node.row_exist[0] = node.row_exist[1] = node.row_exist[2] = true;
85
+ }
86
+ return node;
87
+ }
88
+ function parseProof(proof, maxLen) {
89
+ const nodes = proof.slice(0, -1).slice(0, maxLen).map(parseNode);
90
+ while(nodes.length < maxLen){
91
+ nodes.push({
92
+ rows: Array(16).fill(0).map(()=>Array(32).fill(0)),
93
+ row_exist: Array(16).fill(false),
94
+ node_type: 0
95
+ });
96
+ }
97
+ return nodes;
98
+ }
99
+ function nodeToLibFormat(node) {
100
+ return {
101
+ rows: node.rows.map(bytesToU64s),
102
+ row_exist: node.row_exist,
103
+ node_type: String(node.node_type)
104
+ };
105
+ }
106
+ async function main() {
107
+ if (!RPC_URL) {
108
+ throw new Error('RPC_URL is not set');
109
+ }
110
+ console.log(`Fetching account proof for ${ADDRESS}`);
111
+ const client = createPublicClient({
112
+ chain: mainnet,
113
+ transport: http(RPC_URL)
114
+ });
115
+ const [blockNumber, proof, block] = await Promise.all([
116
+ client.getBlockNumber(),
117
+ client.getProof({
118
+ address: ADDRESS,
119
+ storageKeys: [],
120
+ blockNumber: BLOCK_TAG === 'latest' ? undefined : BLOCK_TAG
121
+ }),
122
+ client.getBlock({
123
+ blockNumber: BLOCK_TAG === 'latest' ? undefined : BLOCK_TAG
124
+ })
125
+ ]);
126
+ console.log(`Block: ${blockNumber}, Account nodes: ${proof.accountProof.length}`);
127
+ // The -1 is because the last node in the proof is the leaf, which is excluded from path verification.
128
+ const accountPathLen = proof.accountProof.length - 1;
129
+ if (accountPathLen > MAX_ACCOUNT_PATH) {
130
+ throw new Error(`Account proof path length ${accountPathLen} exceeds MAX_ACCOUNT_PATH ${MAX_ACCOUNT_PATH}. Increase the limit.`);
131
+ }
132
+ const nonce = toBytesAndLen(proof.nonce);
133
+ const balance = toBytesAndLen(proof.balance);
134
+ const data = {
135
+ block_number: String(blockNumber),
136
+ node_length: String(accountPathLen),
137
+ root: bytesToU64s(toBytes(block.stateRoot)),
138
+ nodes: parseProof(proof.accountProof, MAX_ACCOUNT_PATH).map(nodeToLibFormat),
139
+ account: {
140
+ address: toBytes(ADDRESS).map(String),
141
+ balance: padTo(balance.bytes, 32).map(String),
142
+ balance_length: String(balance.length),
143
+ code_hash: bytesToU64s(toBytes(proof.codeHash)),
144
+ nonce: padTo(nonce.bytes, 8).map(String),
145
+ nonce_length: String(nonce.length),
146
+ storage_hash: bytesToU64s(toBytes(proof.storageHash))
147
+ }
148
+ };
149
+ fs.writeFileSync(join(__dirname, 'account_proof.json'), JSON.stringify(data, null, 2));
150
+ console.log('account_proof.json generated');
151
+ }
152
+ main().catch(console.error);
@@ -30,9 +30,10 @@ export declare abstract class BaseAvmSimulationTester {
30
30
  registerAndDeployContract(constructorArgs: any[], deployer: AztecAddress, contractArtifact: ContractArtifact, skipNullifierInsertion?: boolean, seed?: number, contractClassSeed?: number, originalContractClassId?: Fr): Promise<ContractInstanceWithAddress>;
31
31
  registerFeeJuiceContract(): Promise<ContractInstanceWithAddress>;
32
32
  registerAuthContract(): Promise<ContractInstanceWithAddress>;
33
+ registerClassRegistryContract(): Promise<ContractInstanceWithAddress>;
33
34
  registerInstanceRegistryContract(): Promise<ContractInstanceWithAddress>;
34
35
  addContractInstance(contractInstance: ContractInstanceWithAddress, skipNullifierInsertion?: boolean): Promise<void>;
35
36
  private insertContractAddressNullifier;
36
37
  insertNullifier(contractThatEmitted: AztecAddress, nullifier: Fr): Promise<void>;
37
38
  }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9hdm1fc2ltdWxhdGlvbl90ZXN0ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wdWJsaWMvYXZtL2ZpeHR1cmVzL2Jhc2VfYXZtX3NpbXVsYXRpb25fdGVzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU1wRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTFFLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHakYsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUc5Rjs7Ozs7Ozs7OztHQVVHO0FBQ0gsOEJBQXNCLHVCQUF1QjtJQUlsQyxrQkFBa0IsRUFBRSx3QkFBd0I7SUFDNUMsV0FBVyxFQUFFLHlCQUF5QjtJQUM3QyxPQUFPLENBQUMsc0JBQXNCO0lBTHpCLE1BQU0seUNBQXlDO0lBRXRELFlBQ1Msa0JBQWtCLEVBQUUsd0JBQXdCLEVBQzVDLFdBQVcsRUFBRSx5QkFBeUIsRUFDckMsc0JBQXNCLEtBQW1CLEVBQy9DO0lBRUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxPQUFPLEtBQThCLGlCQUlyRjtJQUVLLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxpQkFLaEU7SUFFRDs7O09BR0c7SUFDRyx5QkFBeUIsQ0FDN0IsZUFBZSxFQUFFLEdBQUcsRUFBRSxFQUN0QixRQUFRLEVBQUUsWUFBWSxFQUN0QixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsc0JBQXNCLFVBQVEsRUFDOUIsSUFBSSxTQUFJLEVBQ1IsaUJBQWlCLFNBQU8sRUFDeEIsdUJBQXVCLENBQUMsRUFBRSxFQUFFLEdBQzNCLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQWdCdEM7SUFFSyx3QkFBd0IsSUFBSSxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FTckU7SUFFSyxvQkFBb0IsSUFBSSxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FhakU7SUFFSyxnQ0FBZ0MsSUFBSSxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FhN0U7SUFFSyxtQkFBbUIsQ0FBQyxnQkFBZ0IsRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsVUFBUSxpQkFLdEc7WUFFYSw4QkFBOEI7SUFRdEMsZUFBZSxDQUFDLG1CQUFtQixFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsRUFBRSxpQkFHckU7Q0FDRiJ9
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9hdm1fc2ltdWxhdGlvbl90ZXN0ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wdWJsaWMvYXZtL2ZpeHR1cmVzL2Jhc2VfYXZtX3NpbXVsYXRpb25fdGVzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU9wRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTFFLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHakYsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUc5Rjs7Ozs7Ozs7OztHQVVHO0FBQ0gsOEJBQXNCLHVCQUF1QjtJQUlsQyxrQkFBa0IsRUFBRSx3QkFBd0I7SUFDNUMsV0FBVyxFQUFFLHlCQUF5QjtJQUM3QyxPQUFPLENBQUMsc0JBQXNCO0lBTHpCLE1BQU0seUNBQXlDO0lBRXRELFlBQ1Msa0JBQWtCLEVBQUUsd0JBQXdCLEVBQzVDLFdBQVcsRUFBRSx5QkFBeUIsRUFDckMsc0JBQXNCLEtBQW1CLEVBQy9DO0lBRUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxPQUFPLEtBQThCLGlCQUlyRjtJQUVLLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxpQkFLaEU7SUFFRDs7O09BR0c7SUFDRyx5QkFBeUIsQ0FDN0IsZUFBZSxFQUFFLEdBQUcsRUFBRSxFQUN0QixRQUFRLEVBQUUsWUFBWSxFQUN0QixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsc0JBQXNCLFVBQVEsRUFDOUIsSUFBSSxTQUFJLEVBQ1IsaUJBQWlCLFNBQU8sRUFDeEIsdUJBQXVCLENBQUMsRUFBRSxFQUFFLEdBQzNCLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQWdCdEM7SUFFSyx3QkFBd0IsSUFBSSxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FTckU7SUFFSyxvQkFBb0IsSUFBSSxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FpQmpFO0lBRUssNkJBQTZCLElBQUksT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBYTFFO0lBRUssZ0NBQWdDLElBQUksT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBYTdFO0lBRUssbUJBQW1CLENBQUMsZ0JBQWdCLEVBQUUsMkJBQTJCLEVBQUUsc0JBQXNCLFVBQVEsaUJBS3RHO1lBRWEsOEJBQThCO0lBUXRDLGVBQWUsQ0FBQyxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLEVBQUUsaUJBR3JFO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"base_avm_simulation_tester.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/fixtures/base_avm_simulation_tester.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAMpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAGjF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAG9F;;;;;;;;;;GAUG;AACH,8BAAsB,uBAAuB;IAIlC,kBAAkB,EAAE,wBAAwB;IAC5C,WAAW,EAAE,yBAAyB;IAC7C,OAAO,CAAC,sBAAsB;IALzB,MAAM,yCAAyC;IAEtD,YACS,kBAAkB,EAAE,wBAAwB,EAC5C,WAAW,EAAE,yBAAyB,EACrC,sBAAsB,KAAmB,EAC/C;IAEE,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,KAA8B,iBAIrF;IAEK,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,iBAKhE;IAED;;;OAGG;IACG,yBAAyB,CAC7B,eAAe,EAAE,GAAG,EAAE,EACtB,QAAQ,EAAE,YAAY,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,sBAAsB,UAAQ,EAC9B,IAAI,SAAI,EACR,iBAAiB,SAAO,EACxB,uBAAuB,CAAC,EAAE,EAAE,GAC3B,OAAO,CAAC,2BAA2B,CAAC,CAgBtC;IAEK,wBAAwB,IAAI,OAAO,CAAC,2BAA2B,CAAC,CASrE;IAEK,oBAAoB,IAAI,OAAO,CAAC,2BAA2B,CAAC,CAajE;IAEK,gCAAgC,IAAI,OAAO,CAAC,2BAA2B,CAAC,CAa7E;IAEK,mBAAmB,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,sBAAsB,UAAQ,iBAKtG;YAEa,8BAA8B;IAQtC,eAAe,CAAC,mBAAmB,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,iBAGrE;CACF"}
1
+ {"version":3,"file":"base_avm_simulation_tester.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/fixtures/base_avm_simulation_tester.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAOpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAGjF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAG9F;;;;;;;;;;GAUG;AACH,8BAAsB,uBAAuB;IAIlC,kBAAkB,EAAE,wBAAwB;IAC5C,WAAW,EAAE,yBAAyB;IAC7C,OAAO,CAAC,sBAAsB;IALzB,MAAM,yCAAyC;IAEtD,YACS,kBAAkB,EAAE,wBAAwB,EAC5C,WAAW,EAAE,yBAAyB,EACrC,sBAAsB,KAAmB,EAC/C;IAEE,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,KAA8B,iBAIrF;IAEK,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,iBAKhE;IAED;;;OAGG;IACG,yBAAyB,CAC7B,eAAe,EAAE,GAAG,EAAE,EACtB,QAAQ,EAAE,YAAY,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,sBAAsB,UAAQ,EAC9B,IAAI,SAAI,EACR,iBAAiB,SAAO,EACxB,uBAAuB,CAAC,EAAE,EAAE,GAC3B,OAAO,CAAC,2BAA2B,CAAC,CAgBtC;IAEK,wBAAwB,IAAI,OAAO,CAAC,2BAA2B,CAAC,CASrE;IAEK,oBAAoB,IAAI,OAAO,CAAC,2BAA2B,CAAC,CAiBjE;IAEK,6BAA6B,IAAI,OAAO,CAAC,2BAA2B,CAAC,CAa1E;IAEK,gCAAgC,IAAI,OAAO,CAAC,2BAA2B,CAAC,CAa7E;IAEK,mBAAmB,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,sBAAsB,UAAQ,iBAKtG;YAEa,8BAA8B;IAQtC,eAAe,CAAC,mBAAmB,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,iBAGrE;CACF"}