@aztec/simulator 0.0.1-commit.24de95ac → 0.0.1-commit.2e2504e2

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 (364) hide show
  1. package/README.md +2 -0
  2. package/dest/client.d.ts +1 -1
  3. package/dest/common/errors.d.ts +2 -2
  4. package/dest/common/errors.d.ts.map +1 -1
  5. package/dest/common/index.d.ts +1 -1
  6. package/dest/common/stats/index.d.ts +1 -1
  7. package/dest/common/stats/stats.d.ts +1 -1
  8. package/dest/private/acvm/acvm.d.ts +4 -2
  9. package/dest/private/acvm/acvm.d.ts.map +1 -1
  10. package/dest/private/acvm/acvm.js +4 -3
  11. package/dest/private/acvm/acvm_types.d.ts +1 -1
  12. package/dest/private/acvm/deserialize.d.ts +2 -2
  13. package/dest/private/acvm/deserialize.d.ts.map +1 -1
  14. package/dest/private/acvm/deserialize.js +1 -1
  15. package/dest/private/acvm/index.d.ts +1 -1
  16. package/dest/private/acvm/serialize.d.ts +2 -2
  17. package/dest/private/acvm/serialize.d.ts.map +1 -1
  18. package/dest/private/acvm/serialize.js +1 -1
  19. package/dest/private/acvm_native.d.ts +5 -3
  20. package/dest/private/acvm_native.d.ts.map +1 -1
  21. package/dest/private/acvm_native.js +8 -6
  22. package/dest/private/acvm_wasm.d.ts +4 -3
  23. package/dest/private/acvm_wasm.d.ts.map +1 -1
  24. package/dest/private/acvm_wasm.js +4 -4
  25. package/dest/private/acvm_wasm_with_blobs.d.ts +1 -1
  26. package/dest/private/acvm_wasm_with_blobs.d.ts.map +1 -1
  27. package/dest/private/circuit_recording/circuit_recorder.d.ts +4 -3
  28. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
  29. package/dest/private/circuit_recording/circuit_recorder.js +21 -18
  30. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +3 -2
  31. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
  32. package/dest/private/circuit_recording/file_circuit_recorder.js +2 -2
  33. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +7 -2
  34. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -1
  35. package/dest/private/circuit_recording/memory_circuit_recorder.js +4 -4
  36. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +1 -1
  37. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -1
  38. package/dest/private/circuit_simulator.d.ts +1 -1
  39. package/dest/private/factory.d.ts +3 -3
  40. package/dest/private/factory.d.ts.map +1 -1
  41. package/dest/private/factory.js +7 -4
  42. package/dest/public/avm/avm_context.d.ts +3 -3
  43. package/dest/public/avm/avm_context.d.ts.map +1 -1
  44. package/dest/public/avm/avm_contract_call_result.d.ts +6 -6
  45. package/dest/public/avm/avm_contract_call_result.d.ts.map +1 -1
  46. package/dest/public/avm/avm_contract_call_result.js +3 -3
  47. package/dest/public/avm/avm_execution_environment.d.ts +9 -8
  48. package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
  49. package/dest/public/avm/avm_execution_environment.js +5 -8
  50. package/dest/public/avm/avm_gas.d.ts +2 -2
  51. package/dest/public/avm/avm_gas.d.ts.map +1 -1
  52. package/dest/public/avm/avm_machine_state.d.ts +7 -6
  53. package/dest/public/avm/avm_machine_state.d.ts.map +1 -1
  54. package/dest/public/avm/avm_machine_state.js +3 -2
  55. package/dest/public/avm/avm_memory_types.d.ts +14 -14
  56. package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
  57. package/dest/public/avm/avm_memory_types.js +4 -1
  58. package/dest/public/avm/avm_simulator.d.ts +5 -3
  59. package/dest/public/avm/avm_simulator.d.ts.map +1 -1
  60. package/dest/public/avm/avm_simulator.js +13 -11
  61. package/dest/public/avm/avm_simulator_interface.d.ts +1 -1
  62. package/dest/public/avm/calldata.d.ts +51 -0
  63. package/dest/public/avm/calldata.d.ts.map +1 -0
  64. package/dest/public/avm/calldata.js +63 -0
  65. package/dest/public/avm/errors.d.ts +8 -2
  66. package/dest/public/avm/errors.d.ts.map +1 -1
  67. package/dest/public/avm/errors.js +14 -2
  68. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +1 -1
  69. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -1
  70. package/dest/public/avm/fixtures/avm_simulation_tester.js +15 -5
  71. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts +2 -2
  72. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +1 -1
  73. package/dest/public/avm/fixtures/base_avm_simulation_tester.js +1 -1
  74. package/dest/public/avm/fixtures/initializers.d.ts +2 -3
  75. package/dest/public/avm/fixtures/initializers.d.ts.map +1 -1
  76. package/dest/public/avm/fixtures/initializers.js +8 -5
  77. package/dest/public/avm/fixtures/utils.d.ts +4 -3
  78. package/dest/public/avm/fixtures/utils.d.ts.map +1 -1
  79. package/dest/public/avm/fixtures/utils.js +3 -2
  80. package/dest/public/avm/index.d.ts +1 -1
  81. package/dest/public/avm/opcodes/accrued_substate.d.ts +16 -17
  82. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
  83. package/dest/public/avm/opcodes/accrued_substate.js +39 -39
  84. package/dest/public/avm/opcodes/addressing_mode.d.ts +1 -1
  85. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +1 -1
  86. package/dest/public/avm/opcodes/addressing_mode.js +2 -2
  87. package/dest/public/avm/opcodes/arithmetic.d.ts +3 -1
  88. package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -1
  89. package/dest/public/avm/opcodes/arithmetic.js +12 -2
  90. package/dest/public/avm/opcodes/bitwise.d.ts +3 -3
  91. package/dest/public/avm/opcodes/bitwise.d.ts.map +1 -1
  92. package/dest/public/avm/opcodes/bitwise.js +5 -5
  93. package/dest/public/avm/opcodes/comparators.d.ts +1 -1
  94. package/dest/public/avm/opcodes/comparators.d.ts.map +1 -1
  95. package/dest/public/avm/opcodes/comparators.js +1 -1
  96. package/dest/public/avm/opcodes/contract.d.ts +3 -3
  97. package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
  98. package/dest/public/avm/opcodes/contract.js +8 -8
  99. package/dest/public/avm/opcodes/control_flow.d.ts +3 -3
  100. package/dest/public/avm/opcodes/control_flow.d.ts.map +1 -1
  101. package/dest/public/avm/opcodes/control_flow.js +4 -4
  102. package/dest/public/avm/opcodes/conversion.d.ts +3 -3
  103. package/dest/public/avm/opcodes/conversion.d.ts.map +1 -1
  104. package/dest/public/avm/opcodes/conversion.js +4 -4
  105. package/dest/public/avm/opcodes/ec_add.d.ts +3 -3
  106. package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
  107. package/dest/public/avm/opcodes/ec_add.js +17 -8
  108. package/dest/public/avm/opcodes/environment_getters.d.ts +5 -5
  109. package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -1
  110. package/dest/public/avm/opcodes/environment_getters.js +6 -6
  111. package/dest/public/avm/opcodes/external_calls.d.ts +9 -9
  112. package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -1
  113. package/dest/public/avm/opcodes/external_calls.js +23 -22
  114. package/dest/public/avm/opcodes/hashing.d.ts +7 -7
  115. package/dest/public/avm/opcodes/hashing.d.ts.map +1 -1
  116. package/dest/public/avm/opcodes/hashing.js +21 -16
  117. package/dest/public/avm/opcodes/index.d.ts +1 -1
  118. package/dest/public/avm/opcodes/instruction.d.ts +2 -2
  119. package/dest/public/avm/opcodes/instruction.d.ts.map +1 -1
  120. package/dest/public/avm/opcodes/instruction_impl.d.ts +4 -4
  121. package/dest/public/avm/opcodes/instruction_impl.d.ts.map +1 -1
  122. package/dest/public/avm/opcodes/instruction_impl.js +4 -4
  123. package/dest/public/avm/opcodes/memory.d.ts +13 -13
  124. package/dest/public/avm/opcodes/memory.d.ts.map +1 -1
  125. package/dest/public/avm/opcodes/memory.js +26 -26
  126. package/dest/public/avm/opcodes/misc.d.ts +3 -3
  127. package/dest/public/avm/opcodes/misc.d.ts.map +1 -1
  128. package/dest/public/avm/opcodes/misc.js +8 -8
  129. package/dest/public/avm/opcodes/storage.d.ts +14 -13
  130. package/dest/public/avm/opcodes/storage.d.ts.map +1 -1
  131. package/dest/public/avm/opcodes/storage.js +34 -24
  132. package/dest/public/avm/revert_reason.d.ts +2 -2
  133. package/dest/public/avm/revert_reason.d.ts.map +1 -1
  134. package/dest/public/avm/revert_reason.js +3 -2
  135. package/dest/public/avm/serialization/buffer_cursor.d.ts +1 -1
  136. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +1 -1
  137. package/dest/public/avm/serialization/bytecode_serialization.d.ts +1 -1
  138. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  139. package/dest/public/avm/serialization/bytecode_serialization.js +9 -6
  140. package/dest/public/avm/serialization/instruction_serialization.d.ts +1 -1
  141. package/dest/public/avm/serialization/instruction_serialization.js +1 -1
  142. package/dest/public/avm/test_utils.d.ts +2 -2
  143. package/dest/public/avm/test_utils.d.ts.map +1 -1
  144. package/dest/public/avm/test_utils.js +1 -1
  145. package/dest/public/contracts_db_checkpoint.d.ts +16 -0
  146. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -0
  147. package/dest/public/contracts_db_checkpoint.js +30 -0
  148. package/dest/public/db_interfaces.d.ts +14 -2
  149. package/dest/public/db_interfaces.d.ts.map +1 -1
  150. package/dest/public/debug_fn_name.d.ts +16 -3
  151. package/dest/public/debug_fn_name.d.ts.map +1 -1
  152. package/dest/public/debug_fn_name.js +31 -3
  153. package/dest/public/executor_metrics.d.ts +3 -2
  154. package/dest/public/executor_metrics.d.ts.map +1 -1
  155. package/dest/public/executor_metrics.js +13 -34
  156. package/dest/public/executor_metrics_interface.d.ts +3 -2
  157. package/dest/public/executor_metrics_interface.d.ts.map +1 -1
  158. package/dest/public/fixtures/amm_test.d.ts +1 -1
  159. package/dest/public/fixtures/amm_test.js +2 -2
  160. package/dest/public/fixtures/bulk_test.d.ts +3 -3
  161. package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
  162. package/dest/public/fixtures/bulk_test.js +5 -69
  163. package/dest/public/fixtures/custom_bytecode_tester.d.ts +29 -7
  164. package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -1
  165. package/dest/public/fixtures/custom_bytecode_tester.js +36 -12
  166. package/dest/public/fixtures/custom_bytecode_tests.d.ts +11 -8
  167. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +1 -1
  168. package/dest/public/fixtures/custom_bytecode_tests.js +83 -18
  169. package/dest/public/fixtures/index.d.ts +4 -2
  170. package/dest/public/fixtures/index.d.ts.map +1 -1
  171. package/dest/public/fixtures/index.js +3 -1
  172. package/dest/public/fixtures/minimal_public_tx.d.ts +2 -8
  173. package/dest/public/fixtures/minimal_public_tx.d.ts.map +1 -1
  174. package/dest/public/fixtures/minimal_public_tx.js +6 -16
  175. package/dest/public/fixtures/opcode_spammer.d.ts +122 -0
  176. package/dest/public/fixtures/opcode_spammer.d.ts.map +1 -0
  177. package/dest/public/fixtures/opcode_spammer.js +1653 -0
  178. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +24 -6
  179. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  180. package/dest/public/fixtures/public_tx_simulation_tester.js +62 -21
  181. package/dest/public/fixtures/simple_contract_data_source.d.ts +5 -4
  182. package/dest/public/fixtures/simple_contract_data_source.d.ts.map +1 -1
  183. package/dest/public/fixtures/simple_contract_data_source.js +4 -4
  184. package/dest/public/fixtures/token_test.d.ts +6 -2
  185. package/dest/public/fixtures/token_test.d.ts.map +1 -1
  186. package/dest/public/fixtures/token_test.js +13 -12
  187. package/dest/public/fixtures/utils.d.ts +2 -2
  188. package/dest/public/fixtures/utils.d.ts.map +1 -1
  189. package/dest/public/fixtures/utils.js +4 -3
  190. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +60 -0
  191. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -0
  192. package/dest/public/fuzzing/avm_fuzzer_simulator.js +171 -0
  193. package/dest/public/fuzzing/avm_simulator_bin.d.ts +2 -0
  194. package/dest/public/fuzzing/avm_simulator_bin.d.ts.map +1 -0
  195. package/dest/public/fuzzing/avm_simulator_bin.js +118 -0
  196. package/dest/public/hinting_db_sources.d.ts +14 -4
  197. package/dest/public/hinting_db_sources.d.ts.map +1 -1
  198. package/dest/public/hinting_db_sources.js +71 -13
  199. package/dest/public/index.d.ts +3 -2
  200. package/dest/public/index.d.ts.map +1 -1
  201. package/dest/public/index.js +1 -1
  202. package/dest/public/public_db_sources.d.ts +25 -65
  203. package/dest/public/public_db_sources.d.ts.map +1 -1
  204. package/dest/public/public_db_sources.js +78 -135
  205. package/dest/public/public_errors.d.ts +1 -1
  206. package/dest/public/public_errors.d.ts.map +1 -1
  207. package/dest/public/public_processor/guarded_merkle_tree.d.ts +6 -4
  208. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  209. package/dest/public/public_processor/guarded_merkle_tree.js +5 -0
  210. package/dest/public/public_processor/public_processor.d.ts +15 -20
  211. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  212. package/dest/public/public_processor/public_processor.js +463 -68
  213. package/dest/public/public_processor/public_processor_metrics.d.ts +2 -2
  214. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  215. package/dest/public/public_processor/public_processor_metrics.js +28 -45
  216. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +19 -0
  217. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -0
  218. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +98 -0
  219. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +35 -23
  220. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +1 -1
  221. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +97 -54
  222. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +42 -0
  223. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +1 -0
  224. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +86 -0
  225. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +30 -0
  226. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +1 -0
  227. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +171 -0
  228. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +23 -0
  229. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +1 -0
  230. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.js +52 -0
  231. package/dest/public/public_tx_simulator/factories.d.ts +14 -0
  232. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -0
  233. package/dest/public/public_tx_simulator/factories.js +28 -0
  234. package/dest/public/public_tx_simulator/index.d.ts +5 -1
  235. package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
  236. package/dest/public/public_tx_simulator/index.js +3 -0
  237. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +14 -7
  238. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +1 -1
  239. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +5 -5
  240. package/dest/public/public_tx_simulator/public_tx_context.d.ts +8 -4
  241. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
  242. package/dest/public/public_tx_simulator/public_tx_context.js +17 -9
  243. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +15 -33
  244. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  245. package/dest/public/public_tx_simulator/public_tx_simulator.js +118 -130
  246. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +25 -2
  247. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts.map +1 -1
  248. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +4 -4
  249. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +1 -1
  250. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +395 -19
  251. package/dest/public/side_effect_errors.d.ts +1 -1
  252. package/dest/public/side_effect_errors.d.ts.map +1 -1
  253. package/dest/public/side_effect_trace.d.ts +5 -5
  254. package/dest/public/side_effect_trace.d.ts.map +1 -1
  255. package/dest/public/side_effect_trace.js +4 -4
  256. package/dest/public/side_effect_trace_interface.d.ts +3 -4
  257. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  258. package/dest/public/state_manager/index.d.ts +1 -1
  259. package/dest/public/state_manager/nullifiers.d.ts +2 -2
  260. package/dest/public/state_manager/nullifiers.d.ts.map +1 -1
  261. package/dest/public/state_manager/public_storage.d.ts +2 -2
  262. package/dest/public/state_manager/public_storage.d.ts.map +1 -1
  263. package/dest/public/state_manager/public_storage.js +1 -1
  264. package/dest/public/state_manager/state_manager.d.ts +16 -12
  265. package/dest/public/state_manager/state_manager.d.ts.map +1 -1
  266. package/dest/public/state_manager/state_manager.js +21 -10
  267. package/dest/public/test_executor_metrics.d.ts +6 -4
  268. package/dest/public/test_executor_metrics.d.ts.map +1 -1
  269. package/dest/public/test_executor_metrics.js +7 -6
  270. package/dest/public/unique_class_ids.d.ts +1 -1
  271. package/dest/public/unique_class_ids.d.ts.map +1 -1
  272. package/dest/public/utils.d.ts +1 -1
  273. package/dest/server.d.ts +1 -1
  274. package/dest/testing.d.ts +1 -1
  275. package/package.json +21 -20
  276. package/src/common/errors.ts +1 -1
  277. package/src/private/acvm/acvm.ts +4 -3
  278. package/src/private/acvm/deserialize.ts +1 -1
  279. package/src/private/acvm/serialize.ts +1 -1
  280. package/src/private/acvm_native.ts +11 -5
  281. package/src/private/acvm_wasm.ts +7 -3
  282. package/src/private/circuit_recording/circuit_recorder.ts +22 -19
  283. package/src/private/circuit_recording/file_circuit_recorder.ts +7 -2
  284. package/src/private/circuit_recording/memory_circuit_recorder.ts +6 -4
  285. package/src/private/factory.ts +7 -4
  286. package/src/public/avm/avm_context.ts +2 -2
  287. package/src/public/avm/avm_contract_call_result.ts +8 -6
  288. package/src/public/avm/avm_execution_environment.ts +13 -10
  289. package/src/public/avm/avm_gas.ts +3 -3
  290. package/src/public/avm/avm_machine_state.ts +7 -6
  291. package/src/public/avm/avm_memory_types.ts +5 -1
  292. package/src/public/avm/avm_simulator.ts +19 -14
  293. package/src/public/avm/calldata.ts +100 -0
  294. package/src/public/avm/errors.ts +17 -3
  295. package/src/public/avm/fixtures/avm_simulation_tester.ts +18 -4
  296. package/src/public/avm/fixtures/base_avm_simulation_tester.ts +1 -1
  297. package/src/public/avm/fixtures/initializers.ts +10 -11
  298. package/src/public/avm/fixtures/utils.ts +3 -2
  299. package/src/public/avm/opcodes/accrued_substate.ts +28 -30
  300. package/src/public/avm/opcodes/addressing_mode.ts +2 -2
  301. package/src/public/avm/opcodes/arithmetic.ts +14 -2
  302. package/src/public/avm/opcodes/bitwise.ts +3 -3
  303. package/src/public/avm/opcodes/comparators.ts +1 -1
  304. package/src/public/avm/opcodes/contract.ts +4 -7
  305. package/src/public/avm/opcodes/control_flow.ts +2 -2
  306. package/src/public/avm/opcodes/conversion.ts +3 -3
  307. package/src/public/avm/opcodes/ec_add.ts +15 -6
  308. package/src/public/avm/opcodes/environment_getters.ts +7 -7
  309. package/src/public/avm/opcodes/external_calls.ts +17 -15
  310. package/src/public/avm/opcodes/hashing.ts +16 -10
  311. package/src/public/avm/opcodes/instruction_impl.ts +2 -2
  312. package/src/public/avm/opcodes/memory.ts +20 -20
  313. package/src/public/avm/opcodes/misc.ts +6 -6
  314. package/src/public/avm/opcodes/storage.ts +30 -22
  315. package/src/public/avm/revert_reason.ts +6 -3
  316. package/src/public/avm/serialization/bytecode_serialization.ts +17 -6
  317. package/src/public/avm/serialization/instruction_serialization.ts +1 -1
  318. package/src/public/avm/test_utils.ts +1 -1
  319. package/src/public/contracts_db_checkpoint.ts +41 -0
  320. package/src/public/db_interfaces.ts +16 -1
  321. package/src/public/debug_fn_name.ts +39 -5
  322. package/src/public/executor_metrics.ts +11 -34
  323. package/src/public/executor_metrics_interface.ts +2 -1
  324. package/src/public/fixtures/amm_test.ts +2 -2
  325. package/src/public/fixtures/bulk_test.ts +9 -9
  326. package/src/public/fixtures/custom_bytecode_tester.ts +54 -20
  327. package/src/public/fixtures/custom_bytecode_tests.ts +111 -18
  328. package/src/public/fixtures/index.ts +7 -1
  329. package/src/public/fixtures/minimal_public_tx.ts +7 -17
  330. package/src/public/fixtures/opcode_spammer.ts +1721 -0
  331. package/src/public/fixtures/public_tx_simulation_tester.ts +85 -21
  332. package/src/public/fixtures/simple_contract_data_source.ts +8 -9
  333. package/src/public/fixtures/token_test.ts +18 -10
  334. package/src/public/fixtures/utils.ts +2 -3
  335. package/src/public/fuzzing/avm_fuzzer_simulator.ts +288 -0
  336. package/src/public/fuzzing/avm_simulator_bin.ts +175 -0
  337. package/src/public/hinting_db_sources.ts +112 -10
  338. package/src/public/index.ts +6 -4
  339. package/src/public/public_db_sources.ts +107 -176
  340. package/src/public/public_processor/guarded_merkle_tree.ts +8 -3
  341. package/src/public/public_processor/public_processor.ts +103 -63
  342. package/src/public/public_processor/public_processor_metrics.ts +16 -44
  343. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +124 -0
  344. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +142 -59
  345. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +134 -0
  346. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +239 -0
  347. package/src/public/public_tx_simulator/dumping_cpp_public_tx_simulator.ts +83 -0
  348. package/src/public/public_tx_simulator/factories.ts +43 -0
  349. package/src/public/public_tx_simulator/index.ts +4 -0
  350. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +10 -14
  351. package/src/public/public_tx_simulator/public_tx_context.ts +22 -9
  352. package/src/public/public_tx_simulator/public_tx_simulator.ts +177 -198
  353. package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +24 -2
  354. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +3 -3
  355. package/src/public/side_effect_trace.ts +6 -3
  356. package/src/public/side_effect_trace_interface.ts +1 -1
  357. package/src/public/state_manager/nullifiers.ts +1 -1
  358. package/src/public/state_manager/public_storage.ts +1 -1
  359. package/src/public/state_manager/state_manager.ts +35 -26
  360. package/src/public/test_executor_metrics.ts +10 -8
  361. package/dest/public/tx_contract_cache.d.ts +0 -41
  362. package/dest/public/tx_contract_cache.d.ts.map +0 -1
  363. package/dest/public/tx_contract_cache.js +0 -49
  364. package/src/public/tx_contract_cache.ts +0 -69
@@ -1,4 +1,4 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { createLogger } from '@aztec/foundation/log';
3
3
  import { Timer } from '@aztec/foundation/timer';
4
4
  import { strict as assert } from 'assert';
@@ -7,6 +7,7 @@ import { AvmContext } from './avm_context.js';
7
7
  import { AvmContractCallResult } from './avm_contract_call_result.js';
8
8
  import { AvmExecutionEnvironment } from './avm_execution_environment.js';
9
9
  import { AvmMachineState } from './avm_machine_state.js';
10
+ import { ReturnDataArray } from './calldata.js';
10
11
  import { AvmRevertReason, InvalidProgramCounterError } from './errors.js';
11
12
  import { revertReasonFromExceptionalHalt, revertReasonFromExplicitRevert } from './revert_reason.js';
12
13
  import { INSTRUCTION_SET, decodeInstructionFromBytecode } from './serialization/bytecode_serialization.js';
@@ -32,7 +33,7 @@ export class AvmSimulator {
32
33
  // This will be used by the CALL opcode to create a new simulator. It is required to
33
34
  // avoid a dependency cycle.
34
35
  context.provideSimulator = AvmSimulator.build;
35
- this.log = createLogger(`simulator:avm(calldata[0]: ${context.environment.calldata[0]})`);
36
+ this.log = createLogger(`simulator:avm(calldata[0]: ${context.environment.calldata.read(0)})`);
36
37
  // Turn on tallying if explicitly enabled or if trace logging
37
38
  if (enableTallying || this.log.isLevelEnabled('trace')) {
38
39
  this.tallyPrintFunction = this.printOpcodeTallies;
@@ -47,8 +48,8 @@ export class AvmSimulator {
47
48
  simulator.log = createLogger(`simulator:avm(f:${fnName})`);
48
49
  return simulator;
49
50
  }
50
- static async create(stateManager, address, sender, transactionFee, globals, isStaticCall, calldata, allocatedGas, clientInitiatedSimulation = false, maxDebugLogMemoryReads) {
51
- const avmExecutionEnv = new AvmExecutionEnvironment(address, sender, /*contractCallDepth=*/ Fr.zero(), transactionFee, globals, isStaticCall, calldata, clientInitiatedSimulation, maxDebugLogMemoryReads);
51
+ static async create(stateManager, address, sender, transactionFee, globals, isStaticCall, calldata, allocatedGas, config) {
52
+ const avmExecutionEnv = new AvmExecutionEnvironment(address, sender, /*contractCallDepth=*/ Fr.zero(), transactionFee, globals, isStaticCall, calldata, config);
52
53
  const avmMachineState = new AvmMachineState(allocatedGas);
53
54
  const avmContext = new AvmContext(stateManager, avmExecutionEnv, avmMachineState);
54
55
  return await AvmSimulator.build(avmContext);
@@ -60,7 +61,7 @@ export class AvmSimulator {
60
61
  // getBytecode returns undefined if bytecode is not found or if the limit of contract calls to unique class IDs is reached.
61
62
  // If it throws an error that reaches this point, it is a bug.
62
63
  if (!bytecode) {
63
- return await this.handleFailureToRetrieveBytecode(`No bytecode found, or limit encountered for max calls to unique contract class IDs. Contract address: ${this.context.environment.address}. Reverting...`);
64
+ return await this.handleFailureToRetrieveBytecode(`No bytecode found. Contract is not deployed, or limit encountered for max calls to unique contract class IDs. Contract address: ${this.context.environment.address}. Reverting...`);
64
65
  }
65
66
  return await this.executeBytecode(bytecode);
66
67
  }
@@ -114,12 +115,12 @@ export class AvmSimulator {
114
115
  this.tallyInstructionFunction(instruction.constructor.name, gasUsed);
115
116
  if (machineState.pc >= bytecode.length) {
116
117
  this.log.warn('Passed end of program');
117
- throw new InvalidProgramCounterError(machineState.pc, /*max=*/ bytecode.length);
118
+ throw new InvalidProgramCounterError(machineState.pc, /*max=*/ bytecode.length - 1);
118
119
  }
119
120
  }
120
121
  const output = machineState.getOutput();
121
122
  const reverted = machineState.getReverted();
122
- const revertReason = reverted ? await revertReasonFromExplicitRevert(output, this.context) : undefined;
123
+ const revertReason = reverted ? await revertReasonFromExplicitRevert(output.bestEffortReadAll(), this.context) : undefined;
123
124
  const results = new AvmContractCallResult(reverted, output, machineState.gasLeft, revertReason, machineState.instrCounter);
124
125
  this.log.debug(`Context execution results: ${results.toString()}`);
125
126
  const totalGasUsed = {
@@ -145,7 +146,7 @@ export class AvmSimulator {
145
146
  daGas: 0
146
147
  };
147
148
  // Note: "exceptional halts" cannot return data, hence [].
148
- const results = new AvmContractCallResult(/*reverted=*/ true, /*output=*/ [], noGasLeft, revertReason, machineState.instrCounter);
149
+ const results = new AvmContractCallResult(/*reverted=*/ true, /*output=*/ new ReturnDataArray([]), noGasLeft, revertReason, machineState.instrCounter);
149
150
  this.log.debug(`Context execution results: ${results.toString()}`);
150
151
  this.tallyPrintFunction();
151
152
  // Return results for processing by calling context
@@ -154,13 +155,14 @@ export class AvmSimulator {
154
155
  }
155
156
  async handleFailureToRetrieveBytecode(message) {
156
157
  // revert, consuming all gas
157
- const fnName = await this.context.persistableState.getPublicFunctionDebugName(this.context.environment);
158
+ const { functionSelector, functionName } = await this.context.persistableState.getPublicFunctionSelectorAndName(this.context.environment);
158
159
  const revertReason = new AvmRevertReason(message, /*failingFunction=*/ {
159
160
  contractAddress: this.context.environment.address,
160
- functionName: fnName
161
+ functionSelector,
162
+ functionName
161
163
  }, /*noirCallStack=*/ []);
162
164
  this.log.warn(message);
163
- return new AvmContractCallResult(/*reverted=*/ true, /*output=*/ [], /*gasLeft=*/ {
165
+ return new AvmContractCallResult(/*reverted=*/ true, /*output=*/ new ReturnDataArray([]), /*gasLeft=*/ {
164
166
  l2Gas: 0,
165
167
  daGas: 0
166
168
  }, revertReason);
@@ -6,4 +6,4 @@ export interface AvmSimulatorInterface {
6
6
  executeBytecode(bytecode: Buffer): Promise<any>;
7
7
  getBytecode(): Buffer | undefined;
8
8
  }
9
- //# sourceMappingURL=avm_simulator_interface.d.ts.map
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX3NpbXVsYXRvcl9pbnRlcmZhY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMvYXZtL2F2bV9zaW11bGF0b3JfaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxXQUFXLHFCQUFxQjtJQUNwQyxPQUFPLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLGVBQWUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoRCxXQUFXLElBQUksTUFBTSxHQUFHLFNBQVMsQ0FBQztDQUNuQyJ9
@@ -0,0 +1,51 @@
1
+ import type { Fr } from '@aztec/foundation/schemas';
2
+ import { TaggedMemory } from './avm_memory_types.js';
3
+ export interface LazyReader {
4
+ bestEffortReadAll(readCap?: number): Fr[];
5
+ readAll(): Fr[];
6
+ read(idx: number): Fr | undefined;
7
+ slice(start: number, end: number): Fr[];
8
+ length(): number;
9
+ }
10
+ export declare class LazyReaderMemory implements LazyReader {
11
+ private memory;
12
+ private offset;
13
+ private size;
14
+ constructor(memory: TaggedMemory, offset: number, size: number);
15
+ bestEffortReadAll(readCap?: number): Fr[];
16
+ read(idx: number): Fr | undefined;
17
+ slice(start: number, end: number): Fr[];
18
+ readAll(): Fr[];
19
+ length(): number;
20
+ }
21
+ export declare class LazyReaderArray implements LazyReader {
22
+ private array;
23
+ constructor(array: Fr[]);
24
+ bestEffortReadAll(readCap?: number): Fr[];
25
+ read(idx: number): Fr | undefined;
26
+ slice(start: number, end: number): Fr[];
27
+ readAll(): Fr[];
28
+ length(): number;
29
+ }
30
+ declare const CallDataBrand: unique symbol;
31
+ declare const ReturnDataBrand: unique symbol;
32
+ export type CallData = LazyReader & {
33
+ readonly [CallDataBrand]: true;
34
+ };
35
+ export type ReturnData = LazyReader & {
36
+ readonly [ReturnDataBrand]: true;
37
+ };
38
+ export declare class CallDataArray extends LazyReaderArray implements CallData {
39
+ readonly [CallDataBrand]: true;
40
+ }
41
+ export declare class CallDataMemory extends LazyReaderMemory implements CallData {
42
+ readonly [CallDataBrand]: true;
43
+ }
44
+ export declare class ReturnDataArray extends LazyReaderArray implements ReturnData {
45
+ readonly [ReturnDataBrand]: true;
46
+ }
47
+ export declare class ReturnDataMemory extends LazyReaderMemory implements ReturnData {
48
+ readonly [ReturnDataBrand]: true;
49
+ }
50
+ export {};
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGRhdGEuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMvYXZtL2NhbGxkYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUtyRCxNQUFNLFdBQVcsVUFBVTtJQUN6QixpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLEdBQUcsRUFBRSxFQUFFLENBQUM7SUFDMUMsT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFDO0lBQ2hCLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUM7SUFDbEMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUN4QyxNQUFNLElBQUksTUFBTSxDQUFDO0NBQ2xCO0FBRUQscUJBQWEsZ0JBQWlCLFlBQVcsVUFBVTtJQUUvQyxPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxNQUFNO0lBQ2QsT0FBTyxDQUFDLElBQUk7SUFIZCxZQUNVLE1BQU0sRUFBRSxZQUFZLEVBQ3BCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsSUFBSSxFQUFFLE1BQU0sRUFDbEI7SUFFRyxpQkFBaUIsQ0FBQyxPQUFPLFNBQStCLEdBQUcsRUFBRSxFQUFFLENBR3JFO0lBRU0sSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FLdkM7SUFFTSxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUk3QztJQUVNLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FFckI7SUFFTSxNQUFNLElBQUksTUFBTSxDQUV0QjtDQUNGO0FBRUQscUJBQWEsZUFBZ0IsWUFBVyxVQUFVO0lBQ3BDLE9BQU8sQ0FBQyxLQUFLO0lBQXpCLFlBQW9CLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBSTtJQUU1QixpQkFBaUIsQ0FBQyxPQUFPLFNBQStCLEdBQUcsRUFBRSxFQUFFLENBRXJFO0lBRU0sSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FFdkM7SUFFTSxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUU3QztJQUVNLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FFckI7SUFFTSxNQUFNLElBQUksTUFBTSxDQUV0QjtDQUNGO0FBR0QsT0FBTyxDQUFDLE1BQU0sYUFBYSxFQUFFLE9BQU8sTUFBTSxDQUFDO0FBQzNDLE9BQU8sQ0FBQyxNQUFNLGVBQWUsRUFBRSxPQUFPLE1BQU0sQ0FBQztBQUU3QyxNQUFNLE1BQU0sUUFBUSxHQUFHLFVBQVUsR0FBRztJQUNsQyxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLENBQUM7Q0FDaEMsQ0FBQztBQUVGLE1BQU0sTUFBTSxVQUFVLEdBQUcsVUFBVSxHQUFHO0lBQ3BDLFFBQVEsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFFLElBQUksQ0FBQztDQUNsQyxDQUFDO0FBRUYscUJBQWEsYUFBYyxTQUFRLGVBQWdCLFlBQVcsUUFBUTtJQUNwRSxTQUFpQixDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksQ0FBQztDQUN4QztBQUVELHFCQUFhLGNBQWUsU0FBUSxnQkFBaUIsWUFBVyxRQUFRO0lBQ3RFLFNBQWlCLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxDQUFDO0NBQ3hDO0FBRUQscUJBQWEsZUFBZ0IsU0FBUSxlQUFnQixZQUFXLFVBQVU7SUFDeEUsU0FBaUIsQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLENBQUM7Q0FDMUM7QUFFRCxxQkFBYSxnQkFBaUIsU0FBUSxnQkFBaUIsWUFBVyxVQUFVO0lBQzFFLFNBQWlCLENBQUMsZUFBZSxDQUFDLEVBQUUsSUFBSSxDQUFDO0NBQzFDIn0=
@@ -0,0 +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"}
@@ -0,0 +1,63 @@
1
+ import { TaggedMemory } from './avm_memory_types.js';
2
+ // Allow reading up to 300 kB of return data when unspecified.
3
+ const DEFAULT_BEST_EFFORT_READ_CAP = 10000;
4
+ export class LazyReaderMemory {
5
+ memory;
6
+ offset;
7
+ size;
8
+ constructor(memory, offset, size){
9
+ this.memory = memory;
10
+ this.offset = offset;
11
+ this.size = size;
12
+ }
13
+ bestEffortReadAll(readCap = DEFAULT_BEST_EFFORT_READ_CAP) {
14
+ const size = Math.min(this.size, readCap, TaggedMemory.MAX_MEMORY_SIZE - this.offset);
15
+ return this.memory.getSlice(this.offset, size).map((word)=>word.toFr());
16
+ }
17
+ read(idx) {
18
+ if (idx >= this.size) {
19
+ return undefined;
20
+ }
21
+ return this.memory.get(this.offset + idx).toFr();
22
+ }
23
+ slice(start, end) {
24
+ const clampedEnd = Math.min(end, this.size);
25
+ const length = Math.max(0, clampedEnd - start);
26
+ return this.memory.getSlice(this.offset + start, length).map((word)=>word.toFr());
27
+ }
28
+ readAll() {
29
+ return this.memory.getSlice(this.offset, this.size).map((word)=>word.toFr());
30
+ }
31
+ length() {
32
+ return this.size;
33
+ }
34
+ }
35
+ export class LazyReaderArray {
36
+ array;
37
+ constructor(array){
38
+ this.array = array;
39
+ }
40
+ bestEffortReadAll(readCap = DEFAULT_BEST_EFFORT_READ_CAP) {
41
+ return this.array.slice(0, readCap);
42
+ }
43
+ read(idx) {
44
+ return this.array[idx];
45
+ }
46
+ slice(start, end) {
47
+ return this.array.slice(start, end);
48
+ }
49
+ readAll() {
50
+ return this.array;
51
+ }
52
+ length() {
53
+ return this.array.length;
54
+ }
55
+ }
56
+ export class CallDataArray extends LazyReaderArray {
57
+ }
58
+ export class CallDataMemory extends LazyReaderMemory {
59
+ }
60
+ export class ReturnDataArray extends LazyReaderArray {
61
+ }
62
+ export class ReturnDataMemory extends LazyReaderMemory {
63
+ }
@@ -1,4 +1,4 @@
1
- import type { Point } from '@aztec/foundation/fields';
1
+ import type { Point } from '@aztec/foundation/curves/grumpkin';
2
2
  import type { FailingFunction, NoirCallStack } from '@aztec/stdlib/errors';
3
3
  import { ExecutionError } from '../../common/errors.js';
4
4
  import { CheckedPublicExecutionError } from '../public_errors.js';
@@ -47,6 +47,8 @@ export declare class InstructionExecutionError extends AvmExecutionError {
47
47
  * Error thrown on failed AVM memory tag check.
48
48
  */
49
49
  export declare class TagCheckError extends AvmExecutionError {
50
+ static forBaseAddress(gotTag: string): TagCheckError;
51
+ static forIndirectAddress(address: number, gotTag: string): TagCheckError;
50
52
  static forOffset(offset: number, gotTag: string, expectedTag: string): TagCheckError;
51
53
  static forTag(gotTag: string, expectedTag: string): TagCheckError;
52
54
  constructor(message: string);
@@ -95,4 +97,8 @@ export declare class StaticCallAlterationError extends InstructionExecutionError
95
97
  export declare class AvmRevertReason extends ExecutionError {
96
98
  constructor(message: string, failingFunction: FailingFunction, noirCallStack: NoirCallStack, options?: ErrorOptions);
97
99
  }
98
- //# sourceMappingURL=errors.d.ts.map
100
+ /**
101
+ * Helper to annotate errors occurring during instruction fetching.
102
+ */
103
+ export declare function duringInstrFetch(error: Error, pc: number): Error;
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHVibGljL2F2bS9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRTs7R0FFRztBQUNILDhCQUFzQixpQkFBa0IsU0FBUSwyQkFBMkI7SUFDekUsWUFBWSxPQUFPLEVBQUUsTUFBTSxFQUcxQjtDQUNGO0FBRUQscUJBQWEsZUFBZ0IsU0FBUSxpQkFBaUI7SUFDcEQsWUFBWSxPQUFPLEVBQUUsTUFBTSxFQUcxQjtDQUNGO0FBRUQ7OztHQUdHO0FBQ0gscUJBQWEsMEJBQTJCLFNBQVEsaUJBQWlCO0lBQy9ELFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUdsQztDQUNGO0FBRUQ7OztHQUdHO0FBQ0gscUJBQWEsa0JBQW1CLFNBQVEsaUJBQWlCO0lBQ3ZELFlBQVksR0FBRyxFQUFFLE1BQU0sRUFHdEI7Q0FDRjtBQUVEOztHQUVHO0FBQ0gscUJBQWEsZUFBZ0IsU0FBUSxpQkFBaUI7SUFDcEQsWUFBWSxHQUFHLEVBQUUsTUFBTSxFQUd0QjtDQUNGO0FBRUQ7O0dBRUc7QUFDSCxxQkFBYSxvQkFBcUIsU0FBUSxpQkFBaUI7SUFDekQsWUFBWSxRQUFRLEVBQUUsTUFBTSxFQUczQjtDQUNGO0FBRUQ7O0dBRUc7QUFDSCxxQkFBYSx5QkFBMEIsU0FBUSxpQkFBaUI7SUFDOUQsWUFBWSxPQUFPLEVBQUUsTUFBTSxFQUcxQjtDQUNGO0FBRUQ7O0dBRUc7QUFDSCxxQkFBYSxhQUFjLFNBQVEsaUJBQWlCO0lBQ2xELE9BQWMsY0FBYyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsYUFBYSxDQUUxRDtJQUNELE9BQWMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLGFBQWEsQ0FFL0U7SUFDRCxPQUFjLFNBQVMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sR0FBRyxhQUFhLENBRTFGO0lBRUQsT0FBYyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxHQUFHLGFBQWEsQ0FFdkU7SUFFRCxZQUFZLE9BQU8sRUFBRSxNQUFNLEVBRzFCO0NBQ0Y7QUFFRDs7O0dBR0c7QUFDSCxxQkFBYSw4QkFBK0IsU0FBUSxpQkFBaUI7SUFDbkUsWUFBWSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBRzlDO0NBQ0Y7QUFFRDs7O0dBR0c7QUFDSCxxQkFBYSwwQkFBMkIsU0FBUSxpQkFBaUI7SUFDL0QsWUFBWSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBR3pDO0NBQ0Y7QUFFRCxvQ0FBb0M7QUFDcEMscUJBQWEsYUFBYyxTQUFRLGlCQUFpQjtJQUNsRCxZQUFZLFVBQVUsRUFBRSxNQUFNLEVBQUUsRUFHL0I7Q0FDRjtBQUVEOztHQUVHO0FBQ0gscUJBQWEseUJBQTBCLFNBQVEsaUJBQWlCO0lBQzlELFlBQVksVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUczQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxxQkFBYSx5QkFBMEIsU0FBUSxpQkFBaUI7SUFDOUQsWUFBWSxXQUFXLEVBQUUsTUFBTSxFQUc5QjtDQUNGO0FBRUQ7O0dBRUc7QUFDSCxxQkFBYSx5QkFBMEIsU0FBUSx5QkFBeUI7SUFDdEUsY0FHQztDQUNGO0FBRUQ7Ozs7R0FJRztBQUNILHFCQUFhLGVBQWdCLFNBQVEsY0FBYztJQUNqRCxZQUFZLE9BQU8sRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxFQUFFLFlBQVksRUFFbEg7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsd0JBQWdCLGdCQUFnQixDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sU0FHeEQifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/public/avm/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE3E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAElE;;GAEG;AACH,8BAAsB,iBAAkB,SAAQ,2BAA2B;gBAC7D,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,eAAgB,SAAQ,iBAAiB;gBACxC,OAAO,EAAE,MAAM;CAI5B;AAED;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,iBAAiB;gBACnD,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAIpC;AAED;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,iBAAiB;gBAC3C,GAAG,EAAE,MAAM;CAIxB;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,iBAAiB;gBACxC,GAAG,EAAE,MAAM;CAIxB;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,iBAAiB;gBAC7C,QAAQ,EAAE,MAAM;CAI7B;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,iBAAiB;gBAClD,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;WACpC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa;WAI7E,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa;gBAI5D,OAAO,EAAE,MAAM;CAI5B;AAED;;;GAGG;AACH,qBAAa,8BAA+B,SAAQ,iBAAiB;gBACvD,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAIhD;AAED;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,iBAAiB;gBACnD,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAI3C;AAED,oCAAoC;AACpC,qBAAa,aAAc,SAAQ,iBAAiB;gBACtC,UAAU,EAAE,MAAM,EAAE;CAIjC;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,iBAAiB;gBAClD,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;CAI7C;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,iBAAiB;gBAClD,WAAW,EAAE,MAAM;CAIhC;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,yBAAyB;;CAKvE;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,cAAc;gBACrC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,YAAY;CAGpH"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/public/avm/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE3E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAElE;;GAEG;AACH,8BAAsB,iBAAkB,SAAQ,2BAA2B;IACzE,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,qBAAa,eAAgB,SAAQ,iBAAiB;IACpD,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,iBAAiB;IAC/D,YAAY,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAGlC;CACF;AAED;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,iBAAiB;IACvD,YAAY,GAAG,EAAE,MAAM,EAGtB;CACF;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,iBAAiB;IACpD,YAAY,GAAG,EAAE,MAAM,EAGtB;CACF;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,iBAAiB;IACzD,YAAY,QAAQ,EAAE,MAAM,EAG3B;CACF;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,iBAAiB;IAC9D,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;IAClD,OAAc,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAE1D;IACD,OAAc,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAE/E;IACD,OAAc,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa,CAE1F;IAED,OAAc,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa,CAEvE;IAED,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED;;;GAGG;AACH,qBAAa,8BAA+B,SAAQ,iBAAiB;IACnE,YAAY,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAG9C;CACF;AAED;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,iBAAiB;IAC/D,YAAY,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAGzC;CACF;AAED,oCAAoC;AACpC,qBAAa,aAAc,SAAQ,iBAAiB;IAClD,YAAY,UAAU,EAAE,MAAM,EAAE,EAG/B;CACF;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,iBAAiB;IAC9D,YAAY,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAG3C;CACF;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,iBAAiB;IAC9D,YAAY,WAAW,EAAE,MAAM,EAG9B;CACF;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,yBAAyB;IACtE,cAGC;CACF;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,cAAc;IACjD,YAAY,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,YAAY,EAElH;CACF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,SAGxD"}
@@ -44,7 +44,7 @@ export class ArithmeticError extends AvmExecutionError {
44
44
  * Error is thrown when the tag has an invalid value.
45
45
  */ export class InvalidTagValueError extends AvmExecutionError {
46
46
  constructor(tagValue){
47
- super(`Tag value ${tagValue} is invalid.`);
47
+ super(`Tag check failed: Tag value ${tagValue} is invalid.`);
48
48
  this.name = 'InvalidTagValueError';
49
49
  }
50
50
  }
@@ -59,6 +59,12 @@ export class ArithmeticError extends AvmExecutionError {
59
59
  /**
60
60
  * Error thrown on failed AVM memory tag check.
61
61
  */ export class TagCheckError extends AvmExecutionError {
62
+ static forBaseAddress(gotTag) {
63
+ return new TagCheckError(`Base address (mem[0]) is not a valid address (has tag ${gotTag})`);
64
+ }
65
+ static forIndirectAddress(address, gotTag) {
66
+ return new TagCheckError(`Address after indirection is not a valid address (address ${address} has tag ${gotTag})`);
67
+ }
62
68
  static forOffset(offset, gotTag, expectedTag) {
63
69
  return new TagCheckError(`Tag mismatch at offset ${offset}, got ${gotTag}, expected ${expectedTag}`);
64
70
  }
@@ -75,7 +81,7 @@ export class ArithmeticError extends AvmExecutionError {
75
81
  * is out of range, i.e, greater than maxUint32.
76
82
  */ export class RelativeAddressOutOfRangeError extends AvmExecutionError {
77
83
  constructor(baseAddr, relOffset){
78
- super(`Address out of range. Base address ${baseAddr}, relative offset ${relOffset}`);
84
+ super(`Relative address out of range. Base address ${baseAddr}, relative offset ${relOffset}`);
79
85
  this.name = 'RelativeAddressOutOfRangeError';
80
86
  }
81
87
  }
@@ -127,3 +133,9 @@ export class ArithmeticError extends AvmExecutionError {
127
133
  super(message, failingFunction, noirCallStack, options);
128
134
  }
129
135
  }
136
+ /**
137
+ * Helper to annotate errors occurring during instruction fetching.
138
+ */ export function duringInstrFetch(error, pc) {
139
+ error.message = `Instruction fetching error at pc ${pc}: ${error.message}`;
140
+ return error;
141
+ }
@@ -19,4 +19,4 @@ export declare class AvmSimulationTester extends BaseAvmSimulationTester {
19
19
  */
20
20
  simulateCall(sender: AztecAddress, address: AztecAddress, fnName: string, args: any[], isStaticCall?: boolean): Promise<AvmContractCallResult>;
21
21
  }
22
- //# sourceMappingURL=avm_simulation_tester.d.ts.map
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX3NpbXVsYXRpb25fdGVzdGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHVibGljL2F2bS9maXh0dXJlcy9hdm1fc2ltdWxhdGlvbl90ZXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFaEUsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUc3RCxPQUFPLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXpGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBR3JGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBVzFFOzs7O0dBSUc7QUFDSCxxQkFBYSxtQkFBb0IsU0FBUSx1QkFBdUI7SUFJNUQsT0FBTyxDQUFDLFlBQVk7SUFIdEIsWUFDRSxrQkFBa0IsRUFBRSx3QkFBd0IsRUFDNUMsV0FBVyxFQUFFLHlCQUF5QixFQUM5QixZQUFZLEVBQUUsNkJBQTZCLEVBR3BEO0lBRUQsT0FBYSxNQUFNLENBQ2pCLGlCQUFpQixFQUFFLHVCQUF1QixHQUN6QyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FnQjlCO0lBRUQ7O09BRUc7SUFDRyxZQUFZLENBQ2hCLE1BQU0sRUFBRSxZQUFZLEVBQ3BCLE9BQU8sRUFBRSxZQUFZLEVBQ3JCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUNYLFlBQVksVUFBUSxHQUNuQixPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FrRGhDO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"avm_simulation_tester.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/fixtures/avm_simulation_tester.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAEzF,OAAO,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AAErF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAW1E;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,uBAAuB;IAI5D,OAAO,CAAC,YAAY;gBAFpB,kBAAkB,EAAE,wBAAwB,EAC5C,WAAW,EAAE,yBAAyB,EAC9B,YAAY,EAAE,6BAA6B;WAKxC,MAAM,CACjB,iBAAiB,EAAE,uBAAuB,GACzC,OAAO,CAAC,mBAAmB,CAAC;IAmB/B;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,EAAE,EACX,YAAY,UAAQ,GACnB,OAAO,CAAC,qBAAqB,CAAC;CAsClC"}
1
+ {"version":3,"file":"avm_simulation_tester.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/fixtures/avm_simulation_tester.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAEzF,OAAO,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AAGrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAW1E;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,uBAAuB;IAI5D,OAAO,CAAC,YAAY;IAHtB,YACE,kBAAkB,EAAE,wBAAwB,EAC5C,WAAW,EAAE,yBAAyB,EAC9B,YAAY,EAAE,6BAA6B,EAGpD;IAED,OAAa,MAAM,CACjB,iBAAiB,EAAE,uBAAuB,GACzC,OAAO,CAAC,mBAAmB,CAAC,CAgB9B;IAED;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,EAAE,EACX,YAAY,UAAQ,GACnB,OAAO,CAAC,qBAAqB,CAAC,CAkDhC;CACF"}
@@ -1,5 +1,6 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { encodeArguments } from '@aztec/stdlib/abi';
3
+ import { PublicSimulatorConfig } from '@aztec/stdlib/avm';
3
4
  import { GasFees } from '@aztec/stdlib/gas';
4
5
  import { GlobalVariables } from '@aztec/stdlib/tx';
5
6
  import { SideEffectTrace } from '../../../public/side_effect_trace.js';
@@ -7,6 +8,7 @@ import { SimpleContractDataSource } from '../../fixtures/simple_contract_data_so
7
8
  import { PublicContractsDB, PublicTreesDB } from '../../public_db_sources.js';
8
9
  import { PublicPersistableStateManager } from '../../state_manager/state_manager.js';
9
10
  import { AvmSimulator } from '../avm_simulator.js';
11
+ import { CallDataArray } from '../calldata.js';
10
12
  import { BaseAvmSimulationTester } from './base_avm_simulation_tester.js';
11
13
  import { initContext, initExecutionEnvironment } from './initializers.js';
12
14
  import { DEFAULT_TIMESTAMP, getContractFunctionAbi, getFunctionSelector, resolveContractAssertionMessage } from './utils.js';
@@ -27,7 +29,7 @@ const DEFAULT_GAS_FEES = new GasFees(2, 3);
27
29
  const contractsDB = new PublicContractsDB(contractDataSource);
28
30
  const trace = new SideEffectTrace();
29
31
  const firstNullifier = new Fr(420000);
30
- const stateManager = PublicPersistableStateManager.create(treesDB, contractsDB, trace, /*doMerkleOperations=*/ false, firstNullifier, DEFAULT_TIMESTAMP);
32
+ const stateManager = PublicPersistableStateManager.create(treesDB, contractsDB, trace, firstNullifier, DEFAULT_TIMESTAMP);
31
33
  return new AvmSimulationTester(contractDataSource, merkleTrees, stateManager);
32
34
  }
33
35
  /**
@@ -47,12 +49,20 @@ const DEFAULT_GAS_FEES = new GasFees(2, 3);
47
49
  const globals = GlobalVariables.empty();
48
50
  globals.timestamp = DEFAULT_TIMESTAMP;
49
51
  globals.gasFees = DEFAULT_GAS_FEES;
52
+ const config = PublicSimulatorConfig.from({
53
+ skipFeeEnforcement: false,
54
+ collectDebugLogs: true,
55
+ collectHints: false,
56
+ collectStatistics: false,
57
+ collectCallMetadata: true
58
+ });
50
59
  const environment = initExecutionEnvironment({
51
- calldata,
60
+ calldata: new CallDataArray(calldata),
52
61
  globals,
53
62
  address,
54
63
  sender,
55
- isStaticCall
64
+ isStaticCall,
65
+ config
56
66
  });
57
67
  const persistableState = await this.stateManager.fork();
58
68
  const context = initContext({
@@ -64,7 +74,7 @@ const DEFAULT_GAS_FEES = new GasFees(2, 3);
64
74
  const result = await simulator.execute();
65
75
  if (result.reverted) {
66
76
  this.logger.error(`Error in ${fnName}:`);
67
- this.logger.error(resolveContractAssertionMessage(fnName, result.revertReason, result.output, contractArtifact));
77
+ this.logger.error(resolveContractAssertionMessage(fnName, result.revertReason, result.output.bestEffortReadAll(), contractArtifact));
68
78
  } else {
69
79
  this.logger.info(`Simulation of function ${fnName} succeeded!`);
70
80
  await this.stateManager.merge(persistableState);
@@ -1,4 +1,4 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import type { ContractArtifact } from '@aztec/stdlib/abi';
3
3
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
  import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
@@ -35,4 +35,4 @@ export declare abstract class BaseAvmSimulationTester {
35
35
  private insertContractAddressNullifier;
36
36
  insertNullifier(contractThatEmitted: AztecAddress, nullifier: Fr): Promise<void>;
37
37
  }
38
- //# sourceMappingURL=base_avm_simulation_tester.d.ts.map
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9hdm1fc2ltdWxhdGlvbl90ZXN0ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wdWJsaWMvYXZtL2ZpeHR1cmVzL2Jhc2VfYXZtX3NpbXVsYXRpb25fdGVzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU1wRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTFFLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHakYsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUc5Rjs7Ozs7Ozs7OztHQVVHO0FBQ0gsOEJBQXNCLHVCQUF1QjtJQUlsQyxrQkFBa0IsRUFBRSx3QkFBd0I7SUFDNUMsV0FBVyxFQUFFLHlCQUF5QjtJQUM3QyxPQUFPLENBQUMsc0JBQXNCO0lBTHpCLE1BQU0seUNBQXlDO0lBRXRELFlBQ1Msa0JBQWtCLEVBQUUsd0JBQXdCLEVBQzVDLFdBQVcsRUFBRSx5QkFBeUIsRUFDckMsc0JBQXNCLEtBQW1CLEVBQy9DO0lBRUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxPQUFPLEtBQThCLGlCQUlyRjtJQUVLLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxpQkFLaEU7SUFFRDs7O09BR0c7SUFDRyx5QkFBeUIsQ0FDN0IsZUFBZSxFQUFFLEdBQUcsRUFBRSxFQUN0QixRQUFRLEVBQUUsWUFBWSxFQUN0QixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsc0JBQXNCLFVBQVEsRUFDOUIsSUFBSSxTQUFJLEVBQ1IsaUJBQWlCLFNBQU8sRUFDeEIsdUJBQXVCLENBQUMsRUFBRSxFQUFFLEdBQzNCLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQWdCdEM7SUFFSyx3QkFBd0IsSUFBSSxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FTckU7SUFFSyxvQkFBb0IsSUFBSSxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FhakU7SUFFSyxnQ0FBZ0MsSUFBSSxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FhN0U7SUFFSyxtQkFBbUIsQ0FBQyxnQkFBZ0IsRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsVUFBUSxpQkFLdEc7WUFFYSw4QkFBOEI7SUFRdEMsZUFBZSxDQUFDLG1CQUFtQixFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsRUFBRSxpQkFHckU7Q0FDRiJ9
@@ -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,0BAA0B,CAAC;AAM9C,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;gBAG7C,kBAAkB,EAAE,wBAAwB,EAC5C,WAAW,EAAE,yBAAyB,EACrC,sBAAsB,KAAmB;IAG7C,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,KAA8B;IAMhF,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;IAOjE;;;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;IAkBjC,wBAAwB,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAWhE,oBAAoB,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAe5D,gCAAgC,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAexE,mBAAmB,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,sBAAsB,UAAQ;YAOzF,8BAA8B;IAQtC,eAAe,CAAC,mBAAmB,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE;CAIvE"}
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,5 +1,5 @@
1
1
  import { CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS } from '@aztec/constants';
2
- import { Fr } from '@aztec/foundation/fields';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { createLogger } from '@aztec/foundation/log';
4
4
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
5
5
  import { getCanonicalAuthRegistry } from '@aztec/protocol-contracts/auth-registry';
@@ -1,4 +1,4 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { GlobalVariables } from '@aztec/stdlib/tx';
3
3
  import type { UInt64 } from '@aztec/stdlib/types';
4
4
  import type { PublicContractsDB, PublicTreesDB } from '../../public_db_sources.js';
@@ -24,7 +24,6 @@ export declare function initPersistableStateManager(overrides?: {
24
24
  trace?: PublicSideEffectTraceInterface;
25
25
  publicStorage?: PublicStorage;
26
26
  nullifiers?: NullifierManager;
27
- doMerkleOperations?: boolean;
28
27
  firstNullifier?: Fr;
29
28
  timestamp?: UInt64;
30
29
  }): PublicPersistableStateManager;
@@ -40,4 +39,4 @@ export declare function initGlobalVariables(overrides?: Partial<GlobalVariables>
40
39
  * Create an empty instance of the Machine State where all values are set to a large enough amount, unless overridden in the overrides object
41
40
  */
42
41
  export declare function initMachineState(overrides?: Partial<AvmMachineState>): AvmMachineState;
43
- //# sourceMappingURL=initializers.d.ts.map
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZXJzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHVibGljL2F2bS9maXh0dXJlcy9pbml0aWFsaXplcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBS3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUlsRCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRixPQUFPLEtBQUssRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSzFEOztHQUVHO0FBQ0gsd0JBQWdCLFdBQVcsQ0FBQyxTQUFTLENBQUMsRUFBRTtJQUN0QyxnQkFBZ0IsQ0FBQyxFQUFFLDZCQUE2QixDQUFDO0lBQ2pELEdBQUcsQ0FBQyxFQUFFLHVCQUF1QixDQUFDO0lBQzlCLFlBQVksQ0FBQyxFQUFFLGVBQWUsQ0FBQztDQUNoQyxHQUFHLFVBQVUsQ0FRYjtBQUVELCtEQUErRDtBQUMvRCx3QkFBZ0IsMkJBQTJCLENBQUMsU0FBUyxDQUFDLEVBQUU7SUFDdEQsT0FBTyxDQUFDLEVBQUUsYUFBYSxDQUFDO0lBQ3hCLFdBQVcsQ0FBQyxFQUFFLGlCQUFpQixDQUFDO0lBQ2hDLEtBQUssQ0FBQyxFQUFFLDhCQUE4QixDQUFDO0lBQ3ZDLGFBQWEsQ0FBQyxFQUFFLGFBQWEsQ0FBQztJQUM5QixVQUFVLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQztJQUM5QixjQUFjLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDcEIsU0FBUyxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ3BCLEdBQUcsNkJBQTZCLENBVWhDO0FBRUQ7O0dBRUc7QUFDSCx3QkFBZ0Isd0JBQXdCLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxDQUFDLHVCQUF1QixDQUFDLEdBQUcsdUJBQXVCLENBVzlHO0FBRUQ7O0dBRUc7QUFDSCx3QkFBZ0IsbUJBQW1CLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxHQUFHLGVBQWUsQ0FXekY7QUFFRDs7R0FFRztBQUNILHdCQUFnQixnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUcsZUFBZSxDQUt0RiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"initializers.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/fixtures/initializers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAIlD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI1D;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,CAAC,EAAE;IACtC,gBAAgB,CAAC,EAAE,6BAA6B,CAAC;IACjD,GAAG,CAAC,EAAE,uBAAuB,CAAC;IAC9B,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC,GAAG,UAAU,CAQb;AAED,+DAA+D;AAC/D,wBAAgB,2BAA2B,CAAC,SAAS,CAAC,EAAE;IACtD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,KAAK,CAAC,EAAE,8BAA8B,CAAC;IACvC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,6BAA6B,CAYhC;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,uBAAuB,CAY9G;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAWzF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAKtF"}
1
+ {"version":3,"file":"initializers.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/fixtures/initializers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAKpD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAIlD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAK1D;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,CAAC,EAAE;IACtC,gBAAgB,CAAC,EAAE,6BAA6B,CAAC;IACjD,GAAG,CAAC,EAAE,uBAAuB,CAAC;IAC9B,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC,GAAG,UAAU,CAQb;AAED,+DAA+D;AAC/D,wBAAgB,2BAA2B,CAAC,SAAS,CAAC,EAAE;IACtD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,KAAK,CAAC,EAAE,8BAA8B,CAAC;IACvC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,6BAA6B,CAUhC;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,uBAAuB,CAW9G;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAWzF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAKtF"}
@@ -1,6 +1,8 @@
1
- import { AVM_MAX_PROCESSABLE_L2_GAS, DEFAULT_MAX_DEBUG_LOG_MEMORY_READS } from '@aztec/constants';
1
+ import { AVM_MAX_PROCESSABLE_L2_GAS } from '@aztec/constants';
2
+ import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
4
  import { EthAddress } from '@aztec/foundation/eth-address';
3
- import { Fr } from '@aztec/foundation/fields';
5
+ import { PublicSimulatorConfig } from '@aztec/stdlib/avm';
4
6
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
5
7
  import { GasFees } from '@aztec/stdlib/gas';
6
8
  import { GlobalVariables } from '@aztec/stdlib/tx';
@@ -10,6 +12,7 @@ import { AvmContext } from '../avm_context.js';
10
12
  import { AvmExecutionEnvironment } from '../avm_execution_environment.js';
11
13
  import { AvmMachineState } from '../avm_machine_state.js';
12
14
  import { AvmSimulator } from '../avm_simulator.js';
15
+ import { CallDataArray } from '../calldata.js';
13
16
  import { DEFAULT_TIMESTAMP } from './utils.js';
14
17
  /**
15
18
  * Create a new AVM context with default values.
@@ -20,17 +23,17 @@ import { DEFAULT_TIMESTAMP } from './utils.js';
20
23
  }
21
24
  /** Creates an empty state manager with mocked host storage. */ export function initPersistableStateManager(overrides) {
22
25
  const treesDB = overrides?.treesDB || mock();
23
- return new PublicPersistableStateManager(treesDB, overrides?.contractsDB || mock(), overrides?.trace || mock(), overrides?.firstNullifier || new Fr(27), overrides?.timestamp || DEFAULT_TIMESTAMP, overrides?.doMerkleOperations || false, overrides?.publicStorage, overrides?.nullifiers);
26
+ return new PublicPersistableStateManager(treesDB, overrides?.contractsDB || mock(), overrides?.trace || mock(), overrides?.firstNullifier || new Fr(27), overrides?.timestamp || DEFAULT_TIMESTAMP, /*doMerkleOperations=*/ false);
24
27
  }
25
28
  /**
26
29
  * Create an empty instance of the Execution Environment where all values are zero, unless overridden in the overrides object
27
30
  */ export function initExecutionEnvironment(overrides) {
28
- return new AvmExecutionEnvironment(overrides?.address ?? AztecAddress.zero(), overrides?.sender ?? AztecAddress.zero(), overrides?.contractCallDepth ?? Fr.zero(), overrides?.transactionFee ?? Fr.zero(), overrides?.globals ?? GlobalVariables.empty(), overrides?.isStaticCall ?? false, overrides?.calldata ?? [], overrides?.clientInitiatedSimulation ?? true, overrides?.maxDebugLogMemoryReads ?? DEFAULT_MAX_DEBUG_LOG_MEMORY_READS);
31
+ return new AvmExecutionEnvironment(overrides?.address ?? AztecAddress.zero(), overrides?.sender ?? AztecAddress.zero(), overrides?.contractCallDepth ?? Fr.zero(), overrides?.transactionFee ?? Fr.zero(), overrides?.globals ?? GlobalVariables.empty(), overrides?.isStaticCall ?? false, overrides?.calldata ?? new CallDataArray([]), overrides?.config ?? PublicSimulatorConfig.empty());
29
32
  }
30
33
  /**
31
34
  * Create an empty instance of the Execution Environment where all values are zero, unless overridden in the overrides object
32
35
  */ export function initGlobalVariables(overrides) {
33
- return new GlobalVariables(overrides?.chainId ?? Fr.zero(), overrides?.version ?? Fr.zero(), overrides?.blockNumber ?? 0, overrides?.slotNumber ?? Fr.zero(), overrides?.timestamp ?? 0n, overrides?.coinbase ?? EthAddress.ZERO, overrides?.feeRecipient ?? AztecAddress.zero(), overrides?.gasFees ?? GasFees.empty());
36
+ return new GlobalVariables(overrides?.chainId ?? Fr.zero(), overrides?.version ?? Fr.zero(), overrides?.blockNumber ?? BlockNumber.ZERO, overrides?.slotNumber ?? SlotNumber.ZERO, overrides?.timestamp ?? 0n, overrides?.coinbase ?? EthAddress.ZERO, overrides?.feeRecipient ?? AztecAddress.zero(), overrides?.gasFees ?? GasFees.empty());
34
37
  }
35
38
  /**
36
39
  * Create an empty instance of the Machine State where all values are set to a large enough amount, unless overridden in the overrides object
@@ -1,4 +1,5 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { BlockNumber } from '@aztec/foundation/branded-types';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
3
  import { type ContractArtifact, type FunctionAbi, type FunctionArtifact, FunctionSelector } from '@aztec/stdlib/abi';
3
4
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
5
  import { type ContractClassPublic, type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
@@ -7,7 +8,7 @@ import { Field, Uint8, Uint32, Uint64 } from '../avm_memory_types.js';
7
8
  import type { AvmRevertReason } from '../errors.js';
8
9
  export declare const PUBLIC_DISPATCH_FN_NAME = "public_dispatch";
9
10
  export declare const DEFAULT_TIMESTAMP: UInt64;
10
- export declare const DEFAULT_BLOCK_NUMBER = 42;
11
+ export declare const DEFAULT_BLOCK_NUMBER: BlockNumber;
11
12
  /**
12
13
  * Create a new object with all the same properties as the original, except for the ones in the overrides object.
13
14
  */
@@ -35,4 +36,4 @@ export declare function createContractClassAndInstance(constructorArgs: any[], d
35
36
  contractInstance: ContractInstanceWithAddress;
36
37
  contractAddressNullifier: Fr;
37
38
  }>;
38
- //# sourceMappingURL=utils.d.ts.map
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wdWJsaWMvYXZtL2ZpeHR1cmVzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUNMLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssV0FBVyxFQUNoQixLQUFLLGdCQUFnQixFQUNyQixnQkFBZ0IsRUFFakIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUNMLEtBQUssbUJBQW1CLEVBQ3hCLEtBQUssMkJBQTJCLEVBRWpDLE1BQU0sd0JBQXdCLENBQUM7QUFLaEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFNbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVwRCxlQUFPLE1BQU0sdUJBQXVCLG9CQUFvQixDQUFDO0FBQ3pELGVBQU8sTUFBTSxpQkFBaUIsRUFBRSxNQUFlLENBQUM7QUFDaEQsZUFBTyxNQUFNLG9CQUFvQixhQUFrQixDQUFDO0FBRXBEOztHQUVHO0FBQ0gsd0JBQWdCLGFBQWEsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUVoRTtBQUVELHdCQUFnQixpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLEtBQUssRUFBRSxDQUV6RDtBQUVELHdCQUFnQixtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUU1RDtBQUVELHdCQUFnQixtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUU1RDtBQUVELHdCQUFnQixrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLEtBQUssRUFBRSxDQUUxRDtBQUVELHdCQUFnQixtQkFBbUIsQ0FDakMsWUFBWSxFQUFFLE1BQU0sRUFDcEIsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQ2pDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUszQjtBQUVELHdCQUFnQiwyQkFBMkIsQ0FDekMsWUFBWSxFQUFFLE1BQU0sRUFDcEIsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQ2pDLGdCQUFnQixHQUFHLFNBQVMsQ0FFOUI7QUFFRCx3QkFBZ0Isc0JBQXNCLENBQ3BDLFlBQVksRUFBRSxNQUFNLEVBQ3BCLGdCQUFnQixFQUFFLGdCQUFnQixHQUNqQyxXQUFXLEdBQUcsU0FBUyxDQUt6QjtBQUVELHdCQUFnQiwrQkFBK0IsQ0FDN0MsWUFBWSxFQUFFLE1BQU0sRUFDcEIsWUFBWSxFQUFFLGVBQWUsRUFDN0IsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUNaLGdCQUFnQixFQUFFLGdCQUFnQixHQUNqQyxNQUFNLEdBQUcsU0FBUyxDQVdwQjtBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFzQiw4QkFBOEIsQ0FDbEQsZUFBZSxFQUFFLEdBQUcsRUFBRSxFQUN0QixRQUFRLEVBQUUsWUFBWSxFQUN0QixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsSUFBSSxTQUFJLEVBQ1IsaUJBQWlCLFNBQU8sRUFDeEIsdUJBQXVCLENBQUMsRUFBRSxFQUFFLEdBQzNCLE9BQU8sQ0FBQztJQUNULGFBQWEsRUFBRSxtQkFBbUIsQ0FBQztJQUNuQyxnQkFBZ0IsRUFBRSwyQkFBMkIsQ0FBQztJQUM5Qyx3QkFBd0IsRUFBRSxFQUFFLENBQUM7Q0FDOUIsQ0FBQyxDQTRCRCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/fixtures/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,gBAAgB,EAEjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAEjC,MAAM,wBAAwB,CAAC;AAKhC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAMlD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,eAAO,MAAM,uBAAuB,oBAAoB,CAAC;AACzD,eAAO,MAAM,iBAAiB,EAAE,MAAe,CAAC;AAChD,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,GAAG,CAEhE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,CAEzD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAE5D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAE5D;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,CAE1D;AAED,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,gBAAgB,GACjC,OAAO,CAAC,gBAAgB,CAAC,CAK3B;AAED,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,gBAAgB,GACjC,gBAAgB,GAAG,SAAS,CAE9B;AAED,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,gBAAgB,GACjC,WAAW,GAAG,SAAS,CAKzB;AAED,wBAAgB,+BAA+B,CAC7C,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,eAAe,EAC7B,MAAM,EAAE,EAAE,EAAE,EACZ,gBAAgB,EAAE,gBAAgB,GACjC,MAAM,GAAG,SAAS,CAWpB;AAED;;;;;;;;;GASG;AACH,wBAAsB,8BAA8B,CAClD,eAAe,EAAE,GAAG,EAAE,EACtB,QAAQ,EAAE,YAAY,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,SAAI,EACR,iBAAiB,SAAO,EACxB,uBAAuB,CAAC,EAAE,EAAE,GAC3B,OAAO,CAAC;IACT,aAAa,EAAE,mBAAmB,CAAC;IACnC,gBAAgB,EAAE,2BAA2B,CAAC;IAC9C,wBAAwB,EAAE,EAAE,CAAC;CAC9B,CAAC,CA4BD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/fixtures/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,gBAAgB,EAEjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAEjC,MAAM,wBAAwB,CAAC;AAKhC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAMlD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,eAAO,MAAM,uBAAuB,oBAAoB,CAAC;AACzD,eAAO,MAAM,iBAAiB,EAAE,MAAe,CAAC;AAChD,eAAO,MAAM,oBAAoB,aAAkB,CAAC;AAEpD;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,GAAG,CAEhE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,CAEzD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAE5D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAE5D;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,CAE1D;AAED,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,gBAAgB,GACjC,OAAO,CAAC,gBAAgB,CAAC,CAK3B;AAED,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,gBAAgB,GACjC,gBAAgB,GAAG,SAAS,CAE9B;AAED,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,gBAAgB,GACjC,WAAW,GAAG,SAAS,CAKzB;AAED,wBAAgB,+BAA+B,CAC7C,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,eAAe,EAC7B,MAAM,EAAE,EAAE,EAAE,EACZ,gBAAgB,EAAE,gBAAgB,GACjC,MAAM,GAAG,SAAS,CAWpB;AAED;;;;;;;;;GASG;AACH,wBAAsB,8BAA8B,CAClD,eAAe,EAAE,GAAG,EAAE,EACtB,QAAQ,EAAE,YAAY,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,SAAI,EACR,iBAAiB,SAAO,EACxB,uBAAuB,CAAC,EAAE,EAAE,GAC3B,OAAO,CAAC;IACT,aAAa,EAAE,mBAAmB,CAAC;IACnC,gBAAgB,EAAE,2BAA2B,CAAC;IAC9C,wBAAwB,EAAE,EAAE,CAAC;CAC9B,CAAC,CA4BD"}
@@ -1,5 +1,6 @@
1
1
  import { CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS } from '@aztec/constants';
2
- import { Fr } from '@aztec/foundation/fields';
2
+ import { BlockNumber } from '@aztec/foundation/branded-types';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
4
  import { FunctionSelector, getAllFunctionAbis } from '@aztec/stdlib/abi';
4
5
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
5
6
  import { computeInitializationHash } from '@aztec/stdlib/contract';
@@ -13,7 +14,7 @@ import { resolveAssertionMessageFromRevertData, traverseCauseChain } from '../..
13
14
  import { Field, Uint8, Uint32, Uint64 } from '../avm_memory_types.js';
14
15
  export const PUBLIC_DISPATCH_FN_NAME = 'public_dispatch';
15
16
  export const DEFAULT_TIMESTAMP = 99833n;
16
- export const DEFAULT_BLOCK_NUMBER = 42;
17
+ export const DEFAULT_BLOCK_NUMBER = BlockNumber(42);
17
18
  /**
18
19
  * Create a new object with all the same properties as the original, except for the ones in the overrides object.
19
20
  */ export function allSameExcept(original, overrides) {
@@ -1,2 +1,2 @@
1
1
  export * from './avm_simulator.js';
2
- //# sourceMappingURL=index.d.ts.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMvYXZtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUMifQ==