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

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 (350) 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 +1 -1
  9. package/dest/private/acvm/acvm_types.d.ts +1 -1
  10. package/dest/private/acvm/deserialize.d.ts +2 -2
  11. package/dest/private/acvm/deserialize.d.ts.map +1 -1
  12. package/dest/private/acvm/deserialize.js +1 -1
  13. package/dest/private/acvm/index.d.ts +1 -1
  14. package/dest/private/acvm/serialize.d.ts +2 -2
  15. package/dest/private/acvm/serialize.d.ts.map +1 -1
  16. package/dest/private/acvm/serialize.js +1 -1
  17. package/dest/private/acvm_native.d.ts +1 -1
  18. package/dest/private/acvm_native.d.ts.map +1 -1
  19. package/dest/private/acvm_wasm.d.ts +1 -1
  20. package/dest/private/acvm_wasm.d.ts.map +1 -1
  21. package/dest/private/acvm_wasm_with_blobs.d.ts +1 -1
  22. package/dest/private/acvm_wasm_with_blobs.d.ts.map +1 -1
  23. package/dest/private/circuit_recording/circuit_recorder.d.ts +1 -1
  24. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
  25. package/dest/private/circuit_recording/circuit_recorder.js +16 -15
  26. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +1 -1
  27. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
  28. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +1 -1
  29. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -1
  30. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +1 -1
  31. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -1
  32. package/dest/private/circuit_simulator.d.ts +1 -1
  33. package/dest/private/factory.d.ts +1 -1
  34. package/dest/public/avm/avm_context.d.ts +3 -3
  35. package/dest/public/avm/avm_context.d.ts.map +1 -1
  36. package/dest/public/avm/avm_contract_call_result.d.ts +6 -6
  37. package/dest/public/avm/avm_contract_call_result.d.ts.map +1 -1
  38. package/dest/public/avm/avm_contract_call_result.js +3 -3
  39. package/dest/public/avm/avm_execution_environment.d.ts +9 -8
  40. package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
  41. package/dest/public/avm/avm_execution_environment.js +5 -8
  42. package/dest/public/avm/avm_gas.d.ts +2 -2
  43. package/dest/public/avm/avm_gas.d.ts.map +1 -1
  44. package/dest/public/avm/avm_machine_state.d.ts +7 -6
  45. package/dest/public/avm/avm_machine_state.d.ts.map +1 -1
  46. package/dest/public/avm/avm_machine_state.js +3 -2
  47. package/dest/public/avm/avm_memory_types.d.ts +14 -14
  48. package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
  49. package/dest/public/avm/avm_memory_types.js +4 -1
  50. package/dest/public/avm/avm_simulator.d.ts +5 -3
  51. package/dest/public/avm/avm_simulator.d.ts.map +1 -1
  52. package/dest/public/avm/avm_simulator.js +13 -11
  53. package/dest/public/avm/avm_simulator_interface.d.ts +1 -1
  54. package/dest/public/avm/calldata.d.ts +51 -0
  55. package/dest/public/avm/calldata.d.ts.map +1 -0
  56. package/dest/public/avm/calldata.js +63 -0
  57. package/dest/public/avm/errors.d.ts +8 -2
  58. package/dest/public/avm/errors.d.ts.map +1 -1
  59. package/dest/public/avm/errors.js +14 -2
  60. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +1 -1
  61. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -1
  62. package/dest/public/avm/fixtures/avm_simulation_tester.js +15 -5
  63. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts +2 -2
  64. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +1 -1
  65. package/dest/public/avm/fixtures/base_avm_simulation_tester.js +1 -1
  66. package/dest/public/avm/fixtures/initializers.d.ts +2 -3
  67. package/dest/public/avm/fixtures/initializers.d.ts.map +1 -1
  68. package/dest/public/avm/fixtures/initializers.js +8 -5
  69. package/dest/public/avm/fixtures/utils.d.ts +4 -3
  70. package/dest/public/avm/fixtures/utils.d.ts.map +1 -1
  71. package/dest/public/avm/fixtures/utils.js +3 -2
  72. package/dest/public/avm/index.d.ts +1 -1
  73. package/dest/public/avm/opcodes/accrued_substate.d.ts +15 -15
  74. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
  75. package/dest/public/avm/opcodes/accrued_substate.js +33 -29
  76. package/dest/public/avm/opcodes/addressing_mode.d.ts +1 -1
  77. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +1 -1
  78. package/dest/public/avm/opcodes/addressing_mode.js +2 -2
  79. package/dest/public/avm/opcodes/arithmetic.d.ts +3 -1
  80. package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -1
  81. package/dest/public/avm/opcodes/arithmetic.js +12 -2
  82. package/dest/public/avm/opcodes/bitwise.d.ts +3 -3
  83. package/dest/public/avm/opcodes/bitwise.d.ts.map +1 -1
  84. package/dest/public/avm/opcodes/bitwise.js +5 -5
  85. package/dest/public/avm/opcodes/comparators.d.ts +1 -1
  86. package/dest/public/avm/opcodes/comparators.d.ts.map +1 -1
  87. package/dest/public/avm/opcodes/comparators.js +1 -1
  88. package/dest/public/avm/opcodes/contract.d.ts +3 -3
  89. package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
  90. package/dest/public/avm/opcodes/contract.js +8 -8
  91. package/dest/public/avm/opcodes/control_flow.d.ts +3 -3
  92. package/dest/public/avm/opcodes/control_flow.d.ts.map +1 -1
  93. package/dest/public/avm/opcodes/control_flow.js +4 -4
  94. package/dest/public/avm/opcodes/conversion.d.ts +3 -3
  95. package/dest/public/avm/opcodes/conversion.d.ts.map +1 -1
  96. package/dest/public/avm/opcodes/conversion.js +4 -4
  97. package/dest/public/avm/opcodes/ec_add.d.ts +3 -3
  98. package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
  99. package/dest/public/avm/opcodes/ec_add.js +17 -8
  100. package/dest/public/avm/opcodes/environment_getters.d.ts +5 -5
  101. package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -1
  102. package/dest/public/avm/opcodes/environment_getters.js +6 -6
  103. package/dest/public/avm/opcodes/external_calls.d.ts +9 -9
  104. package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -1
  105. package/dest/public/avm/opcodes/external_calls.js +23 -22
  106. package/dest/public/avm/opcodes/hashing.d.ts +7 -7
  107. package/dest/public/avm/opcodes/hashing.d.ts.map +1 -1
  108. package/dest/public/avm/opcodes/hashing.js +21 -16
  109. package/dest/public/avm/opcodes/index.d.ts +1 -1
  110. package/dest/public/avm/opcodes/instruction.d.ts +2 -2
  111. package/dest/public/avm/opcodes/instruction.d.ts.map +1 -1
  112. package/dest/public/avm/opcodes/instruction_impl.d.ts +4 -4
  113. package/dest/public/avm/opcodes/instruction_impl.d.ts.map +1 -1
  114. package/dest/public/avm/opcodes/instruction_impl.js +4 -4
  115. package/dest/public/avm/opcodes/memory.d.ts +13 -13
  116. package/dest/public/avm/opcodes/memory.d.ts.map +1 -1
  117. package/dest/public/avm/opcodes/memory.js +26 -26
  118. package/dest/public/avm/opcodes/misc.d.ts +3 -3
  119. package/dest/public/avm/opcodes/misc.d.ts.map +1 -1
  120. package/dest/public/avm/opcodes/misc.js +8 -8
  121. package/dest/public/avm/opcodes/storage.d.ts +14 -13
  122. package/dest/public/avm/opcodes/storage.d.ts.map +1 -1
  123. package/dest/public/avm/opcodes/storage.js +34 -24
  124. package/dest/public/avm/revert_reason.d.ts +2 -2
  125. package/dest/public/avm/revert_reason.d.ts.map +1 -1
  126. package/dest/public/avm/revert_reason.js +3 -2
  127. package/dest/public/avm/serialization/buffer_cursor.d.ts +1 -1
  128. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +1 -1
  129. package/dest/public/avm/serialization/bytecode_serialization.d.ts +1 -1
  130. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  131. package/dest/public/avm/serialization/bytecode_serialization.js +9 -6
  132. package/dest/public/avm/serialization/instruction_serialization.d.ts +1 -1
  133. package/dest/public/avm/serialization/instruction_serialization.js +1 -1
  134. package/dest/public/avm/test_utils.d.ts +2 -2
  135. package/dest/public/avm/test_utils.d.ts.map +1 -1
  136. package/dest/public/avm/test_utils.js +1 -1
  137. package/dest/public/contracts_db_checkpoint.d.ts +16 -0
  138. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -0
  139. package/dest/public/contracts_db_checkpoint.js +30 -0
  140. package/dest/public/db_interfaces.d.ts +14 -2
  141. package/dest/public/db_interfaces.d.ts.map +1 -1
  142. package/dest/public/debug_fn_name.d.ts +16 -3
  143. package/dest/public/debug_fn_name.d.ts.map +1 -1
  144. package/dest/public/debug_fn_name.js +31 -3
  145. package/dest/public/executor_metrics.d.ts +3 -2
  146. package/dest/public/executor_metrics.d.ts.map +1 -1
  147. package/dest/public/executor_metrics.js +9 -35
  148. package/dest/public/executor_metrics_interface.d.ts +3 -2
  149. package/dest/public/executor_metrics_interface.d.ts.map +1 -1
  150. package/dest/public/fixtures/amm_test.d.ts +1 -1
  151. package/dest/public/fixtures/amm_test.js +2 -2
  152. package/dest/public/fixtures/bulk_test.d.ts +3 -3
  153. package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
  154. package/dest/public/fixtures/bulk_test.js +5 -69
  155. package/dest/public/fixtures/custom_bytecode_tester.d.ts +29 -7
  156. package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -1
  157. package/dest/public/fixtures/custom_bytecode_tester.js +36 -12
  158. package/dest/public/fixtures/custom_bytecode_tests.d.ts +11 -8
  159. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +1 -1
  160. package/dest/public/fixtures/custom_bytecode_tests.js +83 -18
  161. package/dest/public/fixtures/index.d.ts +4 -2
  162. package/dest/public/fixtures/index.d.ts.map +1 -1
  163. package/dest/public/fixtures/index.js +3 -1
  164. package/dest/public/fixtures/minimal_public_tx.d.ts +2 -8
  165. package/dest/public/fixtures/minimal_public_tx.d.ts.map +1 -1
  166. package/dest/public/fixtures/minimal_public_tx.js +6 -16
  167. package/dest/public/fixtures/opcode_spammer.d.ts +123 -0
  168. package/dest/public/fixtures/opcode_spammer.d.ts.map +1 -0
  169. package/dest/public/fixtures/opcode_spammer.js +1693 -0
  170. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +24 -6
  171. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  172. package/dest/public/fixtures/public_tx_simulation_tester.js +62 -21
  173. package/dest/public/fixtures/simple_contract_data_source.d.ts +5 -4
  174. package/dest/public/fixtures/simple_contract_data_source.d.ts.map +1 -1
  175. package/dest/public/fixtures/simple_contract_data_source.js +4 -4
  176. package/dest/public/fixtures/token_test.d.ts +6 -2
  177. package/dest/public/fixtures/token_test.d.ts.map +1 -1
  178. package/dest/public/fixtures/token_test.js +13 -12
  179. package/dest/public/fixtures/utils.d.ts +2 -2
  180. package/dest/public/fixtures/utils.d.ts.map +1 -1
  181. package/dest/public/fixtures/utils.js +4 -3
  182. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +60 -0
  183. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -0
  184. package/dest/public/fuzzing/avm_fuzzer_simulator.js +171 -0
  185. package/dest/public/fuzzing/avm_simulator_bin.d.ts +2 -0
  186. package/dest/public/fuzzing/avm_simulator_bin.d.ts.map +1 -0
  187. package/dest/public/fuzzing/avm_simulator_bin.js +118 -0
  188. package/dest/public/hinting_db_sources.d.ts +14 -4
  189. package/dest/public/hinting_db_sources.d.ts.map +1 -1
  190. package/dest/public/hinting_db_sources.js +71 -13
  191. package/dest/public/index.d.ts +3 -2
  192. package/dest/public/index.d.ts.map +1 -1
  193. package/dest/public/index.js +1 -1
  194. package/dest/public/public_db_sources.d.ts +22 -63
  195. package/dest/public/public_db_sources.d.ts.map +1 -1
  196. package/dest/public/public_db_sources.js +74 -131
  197. package/dest/public/public_errors.d.ts +1 -1
  198. package/dest/public/public_errors.d.ts.map +1 -1
  199. package/dest/public/public_processor/guarded_merkle_tree.d.ts +6 -4
  200. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  201. package/dest/public/public_processor/guarded_merkle_tree.js +5 -0
  202. package/dest/public/public_processor/public_processor.d.ts +12 -19
  203. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  204. package/dest/public/public_processor/public_processor.js +456 -64
  205. package/dest/public/public_processor/public_processor_metrics.d.ts +1 -1
  206. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  207. package/dest/public/public_processor/public_processor_metrics.js +12 -45
  208. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +18 -0
  209. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -0
  210. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +98 -0
  211. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +34 -22
  212. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +1 -1
  213. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +93 -50
  214. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +42 -0
  215. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +1 -0
  216. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +86 -0
  217. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +30 -0
  218. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +1 -0
  219. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +171 -0
  220. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +22 -0
  221. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +1 -0
  222. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.js +52 -0
  223. package/dest/public/public_tx_simulator/factories.d.ts +13 -0
  224. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -0
  225. package/dest/public/public_tx_simulator/factories.js +28 -0
  226. package/dest/public/public_tx_simulator/index.d.ts +5 -1
  227. package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
  228. package/dest/public/public_tx_simulator/index.js +3 -0
  229. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +14 -7
  230. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +1 -1
  231. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +5 -5
  232. package/dest/public/public_tx_simulator/public_tx_context.d.ts +6 -3
  233. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
  234. package/dest/public/public_tx_simulator/public_tx_context.js +13 -5
  235. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +13 -32
  236. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  237. package/dest/public/public_tx_simulator/public_tx_simulator.js +115 -129
  238. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +25 -2
  239. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts.map +1 -1
  240. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +4 -4
  241. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +1 -1
  242. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +395 -19
  243. package/dest/public/side_effect_errors.d.ts +1 -1
  244. package/dest/public/side_effect_errors.d.ts.map +1 -1
  245. package/dest/public/side_effect_trace.d.ts +2 -2
  246. package/dest/public/side_effect_trace.d.ts.map +1 -1
  247. package/dest/public/side_effect_trace.js +1 -1
  248. package/dest/public/side_effect_trace_interface.d.ts +3 -4
  249. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  250. package/dest/public/state_manager/index.d.ts +1 -1
  251. package/dest/public/state_manager/nullifiers.d.ts +2 -2
  252. package/dest/public/state_manager/nullifiers.d.ts.map +1 -1
  253. package/dest/public/state_manager/public_storage.d.ts +2 -2
  254. package/dest/public/state_manager/public_storage.d.ts.map +1 -1
  255. package/dest/public/state_manager/public_storage.js +1 -1
  256. package/dest/public/state_manager/state_manager.d.ts +9 -11
  257. package/dest/public/state_manager/state_manager.d.ts.map +1 -1
  258. package/dest/public/state_manager/state_manager.js +12 -8
  259. package/dest/public/test_executor_metrics.d.ts +4 -3
  260. package/dest/public/test_executor_metrics.d.ts.map +1 -1
  261. package/dest/public/test_executor_metrics.js +5 -4
  262. package/dest/public/unique_class_ids.d.ts +1 -1
  263. package/dest/public/unique_class_ids.d.ts.map +1 -1
  264. package/dest/public/utils.d.ts +1 -1
  265. package/dest/server.d.ts +1 -1
  266. package/dest/testing.d.ts +1 -1
  267. package/package.json +21 -20
  268. package/src/common/errors.ts +1 -1
  269. package/src/private/acvm/deserialize.ts +1 -1
  270. package/src/private/acvm/serialize.ts +1 -1
  271. package/src/private/circuit_recording/circuit_recorder.ts +17 -16
  272. package/src/public/avm/avm_context.ts +2 -2
  273. package/src/public/avm/avm_contract_call_result.ts +8 -6
  274. package/src/public/avm/avm_execution_environment.ts +13 -10
  275. package/src/public/avm/avm_gas.ts +3 -3
  276. package/src/public/avm/avm_machine_state.ts +7 -6
  277. package/src/public/avm/avm_memory_types.ts +5 -1
  278. package/src/public/avm/avm_simulator.ts +19 -14
  279. package/src/public/avm/calldata.ts +100 -0
  280. package/src/public/avm/errors.ts +17 -3
  281. package/src/public/avm/fixtures/avm_simulation_tester.ts +18 -4
  282. package/src/public/avm/fixtures/base_avm_simulation_tester.ts +1 -1
  283. package/src/public/avm/fixtures/initializers.ts +10 -11
  284. package/src/public/avm/fixtures/utils.ts +3 -2
  285. package/src/public/avm/opcodes/accrued_substate.ts +21 -15
  286. package/src/public/avm/opcodes/addressing_mode.ts +2 -2
  287. package/src/public/avm/opcodes/arithmetic.ts +14 -2
  288. package/src/public/avm/opcodes/bitwise.ts +3 -3
  289. package/src/public/avm/opcodes/comparators.ts +1 -1
  290. package/src/public/avm/opcodes/contract.ts +4 -7
  291. package/src/public/avm/opcodes/control_flow.ts +2 -2
  292. package/src/public/avm/opcodes/conversion.ts +3 -3
  293. package/src/public/avm/opcodes/ec_add.ts +15 -6
  294. package/src/public/avm/opcodes/environment_getters.ts +7 -7
  295. package/src/public/avm/opcodes/external_calls.ts +17 -15
  296. package/src/public/avm/opcodes/hashing.ts +16 -10
  297. package/src/public/avm/opcodes/instruction_impl.ts +2 -2
  298. package/src/public/avm/opcodes/memory.ts +20 -20
  299. package/src/public/avm/opcodes/misc.ts +6 -6
  300. package/src/public/avm/opcodes/storage.ts +30 -22
  301. package/src/public/avm/revert_reason.ts +6 -3
  302. package/src/public/avm/serialization/bytecode_serialization.ts +17 -6
  303. package/src/public/avm/serialization/instruction_serialization.ts +1 -1
  304. package/src/public/avm/test_utils.ts +1 -1
  305. package/src/public/contracts_db_checkpoint.ts +41 -0
  306. package/src/public/db_interfaces.ts +16 -1
  307. package/src/public/debug_fn_name.ts +39 -5
  308. package/src/public/executor_metrics.ts +9 -35
  309. package/src/public/executor_metrics_interface.ts +2 -1
  310. package/src/public/fixtures/amm_test.ts +2 -2
  311. package/src/public/fixtures/bulk_test.ts +9 -9
  312. package/src/public/fixtures/custom_bytecode_tester.ts +54 -20
  313. package/src/public/fixtures/custom_bytecode_tests.ts +111 -18
  314. package/src/public/fixtures/index.ts +7 -1
  315. package/src/public/fixtures/minimal_public_tx.ts +7 -17
  316. package/src/public/fixtures/opcode_spammer.ts +1754 -0
  317. package/src/public/fixtures/public_tx_simulation_tester.ts +85 -21
  318. package/src/public/fixtures/simple_contract_data_source.ts +8 -9
  319. package/src/public/fixtures/token_test.ts +18 -10
  320. package/src/public/fixtures/utils.ts +2 -3
  321. package/src/public/fuzzing/avm_fuzzer_simulator.ts +288 -0
  322. package/src/public/fuzzing/avm_simulator_bin.ts +175 -0
  323. package/src/public/hinting_db_sources.ts +112 -10
  324. package/src/public/index.ts +6 -4
  325. package/src/public/public_db_sources.ts +93 -172
  326. package/src/public/public_processor/guarded_merkle_tree.ts +8 -3
  327. package/src/public/public_processor/public_processor.ts +86 -59
  328. package/src/public/public_processor/public_processor_metrics.ts +11 -45
  329. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +121 -0
  330. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +137 -57
  331. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +132 -0
  332. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +237 -0
  333. package/src/public/public_tx_simulator/dumping_cpp_public_tx_simulator.ts +81 -0
  334. package/src/public/public_tx_simulator/factories.ts +41 -0
  335. package/src/public/public_tx_simulator/index.ts +4 -0
  336. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +10 -14
  337. package/src/public/public_tx_simulator/public_tx_context.ts +9 -3
  338. package/src/public/public_tx_simulator/public_tx_simulator.ts +171 -196
  339. package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +24 -2
  340. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +3 -3
  341. package/src/public/side_effect_trace.ts +1 -1
  342. package/src/public/side_effect_trace_interface.ts +1 -1
  343. package/src/public/state_manager/nullifiers.ts +1 -1
  344. package/src/public/state_manager/public_storage.ts +1 -1
  345. package/src/public/state_manager/state_manager.ts +16 -30
  346. package/src/public/test_executor_metrics.ts +7 -5
  347. package/dest/public/tx_contract_cache.d.ts +0 -41
  348. package/dest/public/tx_contract_cache.d.ts.map +0 -1
  349. package/dest/public/tx_contract_cache.js +0 -49
  350. package/src/public/tx_contract_cache.ts +0 -69
@@ -1,11 +1,11 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { strict as assert } from 'assert';
3
3
  import { Field, TaggedMemory, TypeTag, Uint32 } from '../avm_memory_types.js';
4
4
  import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
5
5
  import { Addressing } from './addressing_mode.js';
6
6
  import { Instruction } from './instruction.js';
7
7
  export class Set extends Instruction {
8
- indirect;
8
+ addressingMode;
9
9
  dstOffset;
10
10
  inTag;
11
11
  value;
@@ -54,8 +54,8 @@ export class Set extends Instruction {
54
54
  OperandType.TAG,
55
55
  OperandType.FF
56
56
  ];
57
- constructor(indirect, dstOffset, inTag, value){
58
- super(), this.indirect = indirect, this.dstOffset = dstOffset, this.inTag = inTag, this.value = value;
57
+ constructor(addressingMode, dstOffset, inTag, value){
58
+ super(), this.addressingMode = addressingMode, this.dstOffset = dstOffset, this.inTag = inTag, this.value = value;
59
59
  assert(this.value >= 0, `Value ${this.value} is negative`);
60
60
  assert(this.value < Fr.MODULUS, `Value ${this.value} is larger than Fr.MODULUS`);
61
61
  }
@@ -63,7 +63,7 @@ export class Set extends Instruction {
63
63
  // Constructor ensured that this.inTag is a valid tag
64
64
  const res = TaggedMemory.buildFromTagTruncating(this.value, this.inTag);
65
65
  const memory = context.machineState.memory;
66
- const addressing = Addressing.fromWire(this.indirect);
66
+ const addressing = Addressing.fromWire(this.addressingMode);
67
67
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
68
68
  const operands = [
69
69
  this.dstOffset
@@ -73,7 +73,7 @@ export class Set extends Instruction {
73
73
  }
74
74
  }
75
75
  export class Cast extends Instruction {
76
- indirect;
76
+ addressingMode;
77
77
  srcOffset;
78
78
  dstOffset;
79
79
  dstTag;
@@ -93,12 +93,12 @@ export class Cast extends Instruction {
93
93
  OperandType.UINT16,
94
94
  OperandType.TAG
95
95
  ];
96
- constructor(indirect, srcOffset, dstOffset, dstTag){
97
- super(), this.indirect = indirect, this.srcOffset = srcOffset, this.dstOffset = dstOffset, this.dstTag = dstTag;
96
+ constructor(addressingMode, srcOffset, dstOffset, dstTag){
97
+ super(), this.addressingMode = addressingMode, this.srcOffset = srcOffset, this.dstOffset = dstOffset, this.dstTag = dstTag;
98
98
  }
99
99
  async execute(context) {
100
100
  const memory = context.machineState.memory;
101
- const addressing = Addressing.fromWire(this.indirect);
101
+ const addressing = Addressing.fromWire(this.addressingMode);
102
102
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
103
103
  const operands = [
104
104
  this.srcOffset,
@@ -112,7 +112,7 @@ export class Cast extends Instruction {
112
112
  }
113
113
  }
114
114
  export class Mov extends Instruction {
115
- indirect;
115
+ addressingMode;
116
116
  srcOffset;
117
117
  dstOffset;
118
118
  static type = 'MOV';
@@ -130,12 +130,12 @@ export class Mov extends Instruction {
130
130
  OperandType.UINT16,
131
131
  OperandType.UINT16
132
132
  ];
133
- constructor(indirect, srcOffset, dstOffset){
134
- super(), this.indirect = indirect, this.srcOffset = srcOffset, this.dstOffset = dstOffset;
133
+ constructor(addressingMode, srcOffset, dstOffset){
134
+ super(), this.addressingMode = addressingMode, this.srcOffset = srcOffset, this.dstOffset = dstOffset;
135
135
  }
136
136
  async execute(context) {
137
137
  const memory = context.machineState.memory;
138
- const addressing = Addressing.fromWire(this.indirect);
138
+ const addressing = Addressing.fromWire(this.addressingMode);
139
139
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
140
140
  const operands = [
141
141
  this.srcOffset,
@@ -147,7 +147,7 @@ export class Mov extends Instruction {
147
147
  }
148
148
  }
149
149
  export class CalldataCopy extends Instruction {
150
- indirect;
150
+ addressingMode;
151
151
  copySizeOffset;
152
152
  cdStartOffset;
153
153
  dstOffset;
@@ -161,12 +161,12 @@ export class CalldataCopy extends Instruction {
161
161
  OperandType.UINT16,
162
162
  OperandType.UINT16
163
163
  ];
164
- constructor(indirect, copySizeOffset, cdStartOffset, dstOffset){
165
- super(), this.indirect = indirect, this.copySizeOffset = copySizeOffset, this.cdStartOffset = cdStartOffset, this.dstOffset = dstOffset;
164
+ constructor(addressingMode, copySizeOffset, cdStartOffset, dstOffset){
165
+ super(), this.addressingMode = addressingMode, this.copySizeOffset = copySizeOffset, this.cdStartOffset = cdStartOffset, this.dstOffset = dstOffset;
166
166
  }
167
167
  async execute(context) {
168
168
  const memory = context.machineState.memory;
169
- const addressing = Addressing.fromWire(this.indirect);
169
+ const addressing = Addressing.fromWire(this.addressingMode);
170
170
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
171
171
  const operands = [
172
172
  this.copySizeOffset,
@@ -189,7 +189,7 @@ export class CalldataCopy extends Instruction {
189
189
  }
190
190
  }
191
191
  export class ReturndataSize extends Instruction {
192
- indirect;
192
+ addressingMode;
193
193
  dstOffset;
194
194
  static type = 'RETURNDATASIZE';
195
195
  static opcode = Opcode.RETURNDATASIZE;
@@ -199,22 +199,22 @@ export class ReturndataSize extends Instruction {
199
199
  OperandType.UINT8,
200
200
  OperandType.UINT16
201
201
  ];
202
- constructor(indirect, dstOffset){
203
- super(), this.indirect = indirect, this.dstOffset = dstOffset;
202
+ constructor(addressingMode, dstOffset){
203
+ super(), this.addressingMode = addressingMode, this.dstOffset = dstOffset;
204
204
  }
205
205
  async execute(context) {
206
206
  const memory = context.machineState.memory;
207
- const addressing = Addressing.fromWire(this.indirect);
207
+ const addressing = Addressing.fromWire(this.addressingMode);
208
208
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
209
209
  const operands = [
210
210
  this.dstOffset
211
211
  ];
212
212
  const [dstOffset] = addressing.resolve(operands, memory);
213
- memory.set(dstOffset, new Uint32(context.machineState.nestedReturndata.length));
213
+ memory.set(dstOffset, new Uint32(context.machineState.nestedReturndata.length()));
214
214
  }
215
215
  }
216
216
  export class ReturndataCopy extends Instruction {
217
- indirect;
217
+ addressingMode;
218
218
  copySizeOffset;
219
219
  rdStartOffset;
220
220
  dstOffset;
@@ -228,12 +228,12 @@ export class ReturndataCopy extends Instruction {
228
228
  OperandType.UINT16,
229
229
  OperandType.UINT16
230
230
  ];
231
- constructor(indirect, copySizeOffset, rdStartOffset, dstOffset){
232
- super(), this.indirect = indirect, this.copySizeOffset = copySizeOffset, this.rdStartOffset = rdStartOffset, this.dstOffset = dstOffset;
231
+ constructor(addressingMode, copySizeOffset, rdStartOffset, dstOffset){
232
+ super(), this.addressingMode = addressingMode, this.copySizeOffset = copySizeOffset, this.rdStartOffset = rdStartOffset, this.dstOffset = dstOffset;
233
233
  }
234
234
  async execute(context) {
235
235
  const memory = context.machineState.memory;
236
- const addressing = Addressing.fromWire(this.indirect);
236
+ const addressing = Addressing.fromWire(this.addressingMode);
237
237
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
238
238
  const operands = [
239
239
  this.copySizeOffset,
@@ -2,7 +2,7 @@ import type { AvmContext } from '../avm_context.js';
2
2
  import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
3
3
  import { Instruction } from './instruction.js';
4
4
  export declare class DebugLog extends Instruction {
5
- private indirect;
5
+ private addressingMode;
6
6
  private levelOffset;
7
7
  private messageOffset;
8
8
  private fieldsOffset;
@@ -12,7 +12,7 @@ export declare class DebugLog extends Instruction {
12
12
  static readonly opcode: Opcode;
13
13
  static readonly logger: import("@aztec/foundation/log").Logger;
14
14
  static readonly wireFormat: OperandType[];
15
- constructor(indirect: number, levelOffset: number, messageOffset: number, fieldsOffset: number, fieldsSizeOffset: number, messageSize: number);
15
+ constructor(addressingMode: number, levelOffset: number, messageOffset: number, fieldsOffset: number, fieldsSizeOffset: number, messageSize: number);
16
16
  execute(context: AvmContext): Promise<void>;
17
17
  }
18
- //# sourceMappingURL=misc.d.ts.map
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzYy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vb3Bjb2Rlcy9taXNjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFcEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLHFCQUFhLFFBQVMsU0FBUSxXQUFXO0lBaUJyQyxPQUFPLENBQUMsY0FBYztJQUN0QixPQUFPLENBQUMsV0FBVztJQUNuQixPQUFPLENBQUMsYUFBYTtJQUNyQixPQUFPLENBQUMsWUFBWTtJQUNwQixPQUFPLENBQUMsZ0JBQWdCO0lBQ3hCLE9BQU8sQ0FBQyxXQUFXO0lBckJyQixNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBYztJQUNqQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQW1CO0lBQ2pELE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSx5Q0FBMkM7SUFHakUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLENBUXZDO0lBRUYsWUFDVSxjQUFjLEVBQUUsTUFBTSxFQUN0QixXQUFXLEVBQUUsTUFBTSxFQUNuQixhQUFhLEVBQUUsTUFBTSxFQUNyQixZQUFZLEVBQUUsTUFBTSxFQUNwQixnQkFBZ0IsRUFBRSxNQUFNLEVBQ3hCLFdBQVcsRUFBRSxNQUFNLEVBRzVCO0lBRVksT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWlFdkQ7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/misc.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,QAAS,SAAQ,WAAW;IAiBrC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,WAAW;IArBrB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAc;IACjC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAmB;IACjD,MAAM,CAAC,QAAQ,CAAC,MAAM,yCAA2C;IAGjE,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAQvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM;IAKhB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAkEzD"}
1
+ {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/misc.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,QAAS,SAAQ,WAAW;IAiBrC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,WAAW;IArBrB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAc;IACjC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAmB;IACjD,MAAM,CAAC,QAAQ,CAAC,MAAM,yCAA2C;IAGjE,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAQvC;IAEF,YACU,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM,EAG5B;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiEvD;CACF"}
@@ -4,7 +4,7 @@ import { Opcode, OperandType } from '../serialization/instruction_serialization.
4
4
  import { Addressing } from './addressing_mode.js';
5
5
  import { Instruction } from './instruction.js';
6
6
  export class DebugLog extends Instruction {
7
- indirect;
7
+ addressingMode;
8
8
  levelOffset;
9
9
  messageOffset;
10
10
  fieldsOffset;
@@ -23,12 +23,12 @@ export class DebugLog extends Instruction {
23
23
  OperandType.UINT16,
24
24
  OperandType.UINT16
25
25
  ];
26
- constructor(indirect, levelOffset, messageOffset, fieldsOffset, fieldsSizeOffset, messageSize){
27
- super(), this.indirect = indirect, this.levelOffset = levelOffset, this.messageOffset = messageOffset, this.fieldsOffset = fieldsOffset, this.fieldsSizeOffset = fieldsSizeOffset, this.messageSize = messageSize;
26
+ constructor(addressingMode, levelOffset, messageOffset, fieldsOffset, fieldsSizeOffset, messageSize){
27
+ super(), this.addressingMode = addressingMode, this.levelOffset = levelOffset, this.messageOffset = messageOffset, this.fieldsOffset = fieldsOffset, this.fieldsSizeOffset = fieldsSizeOffset, this.messageSize = messageSize;
28
28
  }
29
29
  async execute(context) {
30
30
  const memory = context.machineState.memory;
31
- const addressing = Addressing.fromWire(this.indirect);
31
+ const addressing = Addressing.fromWire(this.addressingMode);
32
32
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
33
33
  const operands = [
34
34
  this.levelOffset,
@@ -37,18 +37,18 @@ export class DebugLog extends Instruction {
37
37
  this.fieldsSizeOffset
38
38
  ];
39
39
  const [levelOffset, messageOffset, fieldsOffset, fieldsSizeOffset] = addressing.resolve(operands, memory);
40
- // DebugLog is a no-op except when doing client-initiated simulation.
40
+ // DebugLog is a no-op except unless the config is set to collect debug logs.
41
41
  // Note that we still do address resolution and basic tag-checking (above)
42
42
  // To avoid a special-case in the witness generator and circuit.
43
- if (context.environment.clientInitiatedSimulation) {
43
+ if (context.environment.config.collectDebugLogs) {
44
44
  memory.checkTag(TypeTag.UINT8, levelOffset);
45
45
  const levelNumber = memory.get(levelOffset).toNumber();
46
46
  memory.checkTag(TypeTag.UINT32, fieldsSizeOffset);
47
47
  const fieldsSize = memory.get(fieldsSizeOffset).toNumber();
48
48
  const memoryReads = 1 /* level */ + 1 /* fieldsSize */ + this.messageSize /* message */ + fieldsSize; /* fields */
49
- if (context.persistableState.getDebugLogMemoryReads() + memoryReads > context.environment.maxDebugLogMemoryReads) {
49
+ if (context.persistableState.getDebugLogMemoryReads() + memoryReads > context.environment.config.collectionLimits.maxDebugLogMemoryReads) {
50
50
  // Regular error on purpose: this is not a recoverable error.
51
- throw new Error(`Max debug log memory reads exceeded: ${context.persistableState.getDebugLogMemoryReads() + memoryReads} > ${context.environment.maxDebugLogMemoryReads}`);
51
+ throw new Error(`Max debug log memory reads exceeded: ${context.persistableState.getDebugLogMemoryReads() + memoryReads} > ${context.environment.config.collectionLimits.maxDebugLogMemoryReads}`);
52
52
  }
53
53
  context.persistableState.writeDebugLogMemoryReads(memoryReads);
54
54
  const rawMessage = memory.getSlice(messageOffset, this.messageSize);
@@ -1,24 +1,25 @@
1
1
  import type { AvmContext } from '../avm_context.js';
2
2
  import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
3
3
  import { Instruction } from './instruction.js';
4
- declare abstract class BaseStorageInstruction extends Instruction {
5
- protected indirect: number;
6
- protected aOffset: number;
7
- protected bOffset: number;
8
- static readonly wireFormat: OperandType[];
9
- constructor(indirect: number, aOffset: number, bOffset: number);
10
- }
11
- export declare class SStore extends BaseStorageInstruction {
4
+ export declare class SStore extends Instruction {
5
+ private addressingMode;
6
+ private srcOffset;
7
+ private slotOffset;
12
8
  static readonly type: string;
13
9
  static readonly opcode = Opcode.SSTORE;
14
- constructor(indirect: number, srcOffset: number, slotOffset: number);
10
+ static readonly wireFormat: OperandType[];
11
+ constructor(addressingMode: number, srcOffset: number, slotOffset: number);
15
12
  execute(context: AvmContext): Promise<void>;
16
13
  }
17
- export declare class SLoad extends BaseStorageInstruction {
14
+ export declare class SLoad extends Instruction {
15
+ private addressingMode;
16
+ private slotOffset;
17
+ private contractAddressOffset;
18
+ private dstOffset;
18
19
  static readonly type: string;
19
20
  static readonly opcode = Opcode.SLOAD;
20
- constructor(indirect: number, slotOffset: number, dstOffset: number);
21
+ static readonly wireFormat: OperandType[];
22
+ constructor(addressingMode: number, slotOffset: number, contractAddressOffset: number, dstOffset: number);
21
23
  execute(context: AvmContext): Promise<void>;
22
24
  }
23
- export {};
24
- //# sourceMappingURL=storage.d.ts.map
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vb3Bjb2Rlcy9zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFcEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLHFCQUFhLE1BQU8sU0FBUSxXQUFXO0lBWW5DLE9BQU8sQ0FBQyxjQUFjO0lBQ3RCLE9BQU8sQ0FBQyxTQUFTO0lBQ2pCLE9BQU8sQ0FBQyxVQUFVO0lBYnBCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBWTtJQUN4QyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0saUJBQWlCO0lBRXZDLGdCQUF1QixVQUFVLEVBQUUsV0FBVyxFQUFFLENBSzlDO0lBRUYsWUFDVSxjQUFjLEVBQUUsTUFBTSxFQUN0QixTQUFTLEVBQUUsTUFBTSxFQUNqQixVQUFVLEVBQUUsTUFBTSxFQUczQjtJQUVZLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0EwQnZEO0NBQ0Y7QUFFRCxxQkFBYSxLQUFNLFNBQVEsV0FBVztJQWFsQyxPQUFPLENBQUMsY0FBYztJQUN0QixPQUFPLENBQUMsVUFBVTtJQUNsQixPQUFPLENBQUMscUJBQXFCO0lBQzdCLE9BQU8sQ0FBQyxTQUFTO0lBZm5CLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBVztJQUN2QyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sZ0JBQWdCO0lBRXRDLGdCQUF1QixVQUFVLEVBQUUsV0FBVyxFQUFFLENBTTlDO0lBRUYsWUFDVSxjQUFjLEVBQUUsTUFBTSxFQUN0QixVQUFVLEVBQUUsTUFBTSxFQUNsQixxQkFBcUIsRUFBRSxNQUFNLEVBQzdCLFNBQVMsRUFBRSxNQUFNLEVBRzFCO0lBRVksT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWlCdkQ7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,uBAAe,sBAAuB,SAAQ,WAAW;IAUrD,SAAS,CAAC,QAAQ,EAAE,MAAM;IAC1B,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,OAAO,EAAE,MAAM;IAV3B,gBAAuB,UAAU,EAAE,WAAW,EAAE,CAK9C;gBAGU,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,MAAO,SAAQ,sBAAsB;IAChD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAY;IACxC,MAAM,CAAC,QAAQ,CAAC,MAAM,iBAAiB;gBAE3B,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAItD,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CA2BzD;AAED,qBAAa,KAAM,SAAQ,sBAAsB;IAC/C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAW;IACvC,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB;gBAE1B,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAItD,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBzD"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,MAAO,SAAQ,WAAW;IAYnC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,UAAU;IAbpB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAY;IACxC,MAAM,CAAC,QAAQ,CAAC,MAAM,iBAAiB;IAEvC,gBAAuB,UAAU,EAAE,WAAW,EAAE,CAK9C;IAEF,YACU,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAG3B;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BvD;CACF;AAED,qBAAa,KAAM,SAAQ,WAAW;IAalC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,SAAS;IAfnB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAW;IACvC,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB;IAEtC,gBAAuB,UAAU,EAAE,WAAW,EAAE,CAM9C;IAEF,YACU,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,qBAAqB,EAAE,MAAM,EAC7B,SAAS,EAAE,MAAM,EAG1B;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBvD;CACF"}
@@ -3,10 +3,12 @@ import { StaticCallAlterationError } from '../errors.js';
3
3
  import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
4
4
  import { Addressing } from './addressing_mode.js';
5
5
  import { Instruction } from './instruction.js';
6
- class BaseStorageInstruction extends Instruction {
7
- indirect;
8
- aOffset;
9
- bOffset;
6
+ export class SStore extends Instruction {
7
+ addressingMode;
8
+ srcOffset;
9
+ slotOffset;
10
+ static type = 'SSTORE';
11
+ static opcode = Opcode.SSTORE;
10
12
  // Informs (de)serialization. See Instruction.deserialize.
11
13
  static wireFormat = [
12
14
  OperandType.UINT8,
@@ -14,26 +16,19 @@ class BaseStorageInstruction extends Instruction {
14
16
  OperandType.UINT16,
15
17
  OperandType.UINT16
16
18
  ];
17
- constructor(indirect, aOffset, bOffset){
18
- super(), this.indirect = indirect, this.aOffset = aOffset, this.bOffset = bOffset;
19
- }
20
- }
21
- export class SStore extends BaseStorageInstruction {
22
- static type = 'SSTORE';
23
- static opcode = Opcode.SSTORE;
24
- constructor(indirect, srcOffset, slotOffset){
25
- super(indirect, srcOffset, slotOffset);
19
+ constructor(addressingMode, srcOffset, slotOffset){
20
+ super(), this.addressingMode = addressingMode, this.srcOffset = srcOffset, this.slotOffset = slotOffset;
26
21
  }
27
22
  async execute(context) {
28
23
  if (context.environment.isStaticCall) {
29
24
  throw new StaticCallAlterationError();
30
25
  }
31
26
  const memory = context.machineState.memory;
32
- const addressing = Addressing.fromWire(this.indirect);
27
+ const addressing = Addressing.fromWire(this.addressingMode);
33
28
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
34
29
  const operands = [
35
- this.aOffset,
36
- this.bOffset
30
+ this.srcOffset,
31
+ this.slotOffset
37
32
  ];
38
33
  const [srcOffset, slotOffset] = addressing.resolve(operands, memory);
39
34
  // We read before tag checking since it's needed for gas cost calculation
@@ -45,24 +40,39 @@ export class SStore extends BaseStorageInstruction {
45
40
  await context.persistableState.writeStorage(context.environment.address, slot, value);
46
41
  }
47
42
  }
48
- export class SLoad extends BaseStorageInstruction {
43
+ export class SLoad extends Instruction {
44
+ addressingMode;
45
+ slotOffset;
46
+ contractAddressOffset;
47
+ dstOffset;
49
48
  static type = 'SLOAD';
50
49
  static opcode = Opcode.SLOAD;
51
- constructor(indirect, slotOffset, dstOffset){
52
- super(indirect, slotOffset, dstOffset);
50
+ // Informs (de)serialization. See Instruction.deserialize.
51
+ static wireFormat = [
52
+ OperandType.UINT8,
53
+ OperandType.UINT8,
54
+ OperandType.UINT16,
55
+ OperandType.UINT16,
56
+ OperandType.UINT16
57
+ ];
58
+ constructor(addressingMode, slotOffset, contractAddressOffset, dstOffset){
59
+ super(), this.addressingMode = addressingMode, this.slotOffset = slotOffset, this.contractAddressOffset = contractAddressOffset, this.dstOffset = dstOffset;
53
60
  }
54
61
  async execute(context) {
55
62
  const memory = context.machineState.memory;
56
- const addressing = Addressing.fromWire(this.indirect);
63
+ const addressing = Addressing.fromWire(this.addressingMode);
57
64
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
58
65
  const operands = [
59
- this.aOffset,
60
- this.bOffset
66
+ this.slotOffset,
67
+ this.contractAddressOffset,
68
+ this.dstOffset
61
69
  ];
62
- const [slotOffset, dstOffset] = addressing.resolve(operands, memory);
70
+ const [slotOffset, contractAddressOffset, dstOffset] = addressing.resolve(operands, memory);
63
71
  memory.checkTag(TypeTag.FIELD, slotOffset);
72
+ memory.checkTag(TypeTag.FIELD, contractAddressOffset);
64
73
  const slot = memory.get(slotOffset).toFr();
65
- const value = await context.persistableState.readStorage(context.environment.address, slot);
74
+ const contractAddress = memory.get(contractAddressOffset).toAztecAddress();
75
+ const value = await context.persistableState.readStorage(contractAddress, slot);
66
76
  memory.set(dstOffset, new Field(value));
67
77
  }
68
78
  }
@@ -1,4 +1,4 @@
1
- import type { Fr } from '@aztec/foundation/fields';
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import type { AvmContext } from './avm_context.js';
3
3
  import { type AvmExecutionError, AvmRevertReason } from './errors.js';
4
4
  /**
@@ -15,4 +15,4 @@ export declare function revertReasonFromExceptionalHalt(haltingError: AvmExecuti
15
15
  * @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
16
16
  */
17
17
  export declare function revertReasonFromExplicitRevert(revertData: Fr[], context: AvmContext): Promise<AvmRevertReason>;
18
- //# sourceMappingURL=revert_reason.d.ts.map
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2ZXJ0X3JlYXNvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vcmV2ZXJ0X3JlYXNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsS0FBSyxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFpQ3RFOzs7OztHQUtHO0FBQ0gsd0JBQXNCLCtCQUErQixDQUNuRCxZQUFZLEVBQUUsaUJBQWlCLEVBQy9CLE9BQU8sRUFBRSxVQUFVLEdBQ2xCLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FFMUI7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFzQiw4QkFBOEIsQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBRXBIIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"revert_reason.d.ts","sourceRoot":"","sources":["../../../src/public/avm/revert_reason.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,KAAK,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA8BtE;;;;;GAKG;AACH,wBAAsB,+BAA+B,CACnD,YAAY,EAAE,iBAAiB,EAC/B,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,eAAe,CAAC,CAE1B;AAED;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAEpH"}
1
+ {"version":3,"file":"revert_reason.d.ts","sourceRoot":"","sources":["../../../src/public/avm/revert_reason.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,KAAK,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAiCtE;;;;;GAKG;AACH,wBAAsB,+BAA+B,CACnD,YAAY,EAAE,iBAAiB,EAC/B,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,eAAe,CAAC,CAE1B;AAED;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAEpH"}
@@ -9,10 +9,11 @@ async function createRevertReason(message, revertData, context) {
9
9
  nestedError = context.machineState.collectedRevertInfo.recursiveRevertReason;
10
10
  message = context.machineState.collectedRevertInfo.recursiveRevertReason.message;
11
11
  }
12
- const fnName = await context.persistableState.getPublicFunctionDebugName(context.environment);
12
+ const { functionSelector, functionName } = await context.persistableState.getPublicFunctionSelectorAndName(context.environment);
13
13
  return new AvmRevertReason(message, /*failingFunction=*/ {
14
14
  contractAddress: context.environment.address,
15
- functionName: fnName
15
+ functionSelector,
16
+ functionName
16
17
  }, /*noirCallStack=*/ [
17
18
  ...internalCallStack,
18
19
  context.machineState.pc
@@ -23,4 +23,4 @@ export declare class BufferCursor {
23
23
  writeBigInt64LE(v: bigint): number;
24
24
  writeBigInt64BE(v: bigint): number;
25
25
  }
26
- //# sourceMappingURL=buffer_cursor.d.ts.map
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVmZmVyX2N1cnNvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vc2VyaWFsaXphdGlvbi9idWZmZXJfY3Vyc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLHFCQUFhLFlBQVk7SUFFckIsT0FBTyxDQUFDLE9BQU87SUFDZixPQUFPLENBQUMsU0FBUztJQUZuQixZQUNVLE9BQU8sRUFBRSxNQUFNLEVBQ2YsU0FBUyxHQUFFLE1BQVUsRUFDM0I7SUFFRyxRQUFRLElBQUksTUFBTSxDQUV4QjtJQUVNLE1BQU0sSUFBSSxNQUFNLENBRXRCO0lBRU0sR0FBRyxJQUFJLE9BQU8sQ0FFcEI7SUFFTSxnQkFBZ0IsSUFBSSxNQUFNLENBRWhDO0lBRU0sT0FBTyxDQUFDLENBQUMsRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUU5QjtJQUVNLFNBQVMsSUFBSSxNQUFNLENBR3pCO0lBRU0sU0FBUyxJQUFJLE1BQU0sQ0FJekI7SUFFTSxZQUFZLElBQUksTUFBTSxDQUk1QjtJQUVNLFlBQVksSUFBSSxNQUFNLENBSTVCO0lBRU0sWUFBWSxJQUFJLE1BQU0sQ0FJNUI7SUFFTSxZQUFZLElBQUksTUFBTSxDQUk1QjtJQUVNLGNBQWMsSUFBSSxNQUFNLENBSTlCO0lBRU0sY0FBYyxJQUFJLE1BQU0sQ0FJOUI7SUFFTSxVQUFVLENBQUMsQ0FBQyxFQUFFLE1BQU0sVUFJMUI7SUFFTSxhQUFhLENBQUMsQ0FBQyxFQUFFLE1BQU0sVUFJN0I7SUFFTSxhQUFhLENBQUMsQ0FBQyxFQUFFLE1BQU0sVUFJN0I7SUFFTSxhQUFhLENBQUMsQ0FBQyxFQUFFLE1BQU0sVUFJN0I7SUFFTSxhQUFhLENBQUMsQ0FBQyxFQUFFLE1BQU0sVUFJN0I7SUFFTSxlQUFlLENBQUMsQ0FBQyxFQUFFLE1BQU0sVUFJL0I7SUFFTSxlQUFlLENBQUMsQ0FBQyxFQUFFLE1BQU0sVUFJL0I7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"buffer_cursor.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/serialization/buffer_cursor.ts"],"names":[],"mappings":"AAGA,qBAAa,YAAY;IAErB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,SAAS;gBADT,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,MAAU;IAGxB,QAAQ,IAAI,MAAM;IAIlB,MAAM,IAAI,MAAM;IAIhB,GAAG,IAAI,OAAO;IAId,gBAAgB,IAAI,MAAM;IAI1B,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAIxB,SAAS,IAAI,MAAM;IAKnB,SAAS,IAAI,MAAM;IAMnB,YAAY,IAAI,MAAM;IAMtB,YAAY,IAAI,MAAM;IAMtB,YAAY,IAAI,MAAM;IAMtB,YAAY,IAAI,MAAM;IAMtB,cAAc,IAAI,MAAM;IAMxB,cAAc,IAAI,MAAM;IAMxB,UAAU,CAAC,CAAC,EAAE,MAAM;IAMpB,aAAa,CAAC,CAAC,EAAE,MAAM;IAMvB,aAAa,CAAC,CAAC,EAAE,MAAM;IAMvB,aAAa,CAAC,CAAC,EAAE,MAAM;IAMvB,aAAa,CAAC,CAAC,EAAE,MAAM;IAMvB,eAAe,CAAC,CAAC,EAAE,MAAM;IAMzB,eAAe,CAAC,CAAC,EAAE,MAAM;CAKjC"}
1
+ {"version":3,"file":"buffer_cursor.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/serialization/buffer_cursor.ts"],"names":[],"mappings":"AAGA,qBAAa,YAAY;IAErB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,SAAS;IAFnB,YACU,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,MAAU,EAC3B;IAEG,QAAQ,IAAI,MAAM,CAExB;IAEM,MAAM,IAAI,MAAM,CAEtB;IAEM,GAAG,IAAI,OAAO,CAEpB;IAEM,gBAAgB,IAAI,MAAM,CAEhC;IAEM,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAE9B;IAEM,SAAS,IAAI,MAAM,CAGzB;IAEM,SAAS,IAAI,MAAM,CAIzB;IAEM,YAAY,IAAI,MAAM,CAI5B;IAEM,YAAY,IAAI,MAAM,CAI5B;IAEM,YAAY,IAAI,MAAM,CAI5B;IAEM,YAAY,IAAI,MAAM,CAI5B;IAEM,cAAc,IAAI,MAAM,CAI9B;IAEM,cAAc,IAAI,MAAM,CAI9B;IAEM,UAAU,CAAC,CAAC,EAAE,MAAM,UAI1B;IAEM,aAAa,CAAC,CAAC,EAAE,MAAM,UAI7B;IAEM,aAAa,CAAC,CAAC,EAAE,MAAM,UAI7B;IAEM,aAAa,CAAC,CAAC,EAAE,MAAM,UAI7B;IAEM,aAAa,CAAC,CAAC,EAAE,MAAM,UAI7B;IAEM,eAAe,CAAC,CAAC,EAAE,MAAM,UAI/B;IAEM,eAAe,CAAC,CAAC,EAAE,MAAM,UAI/B;CACF"}
@@ -14,4 +14,4 @@ export declare const INSTRUCTION_SET: Map<Opcode, InstructionDeserializer>;
14
14
  export declare function encodeToBytecode(instructions: Bufferable[]): Buffer;
15
15
  export declare function decodeFromBytecode(bytecode: Buffer, instructionSet?: InstructionSet): Instruction[];
16
16
  export declare function decodeInstructionFromBytecode(bytecode: Buffer, pc: number, instructionSet?: InstructionSet): [Instruction, number];
17
- //# sourceMappingURL=bytecode_serialization.d.ts.map
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZWNvZGVfc2VyaWFsaXphdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vc2VyaWFsaXphdGlvbi9ieXRlY29kZV9zZXJpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLFVBQVUsRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQVVqRixPQUFPLEVBZ0JMLFdBQVcsRUFnQ1osTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFvQixNQUFNLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUxRSxNQUFNLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxHQUFHLE1BQU0sS0FBSyxXQUFXLENBQUM7QUFFbEYsTUFBTSxXQUFXLGNBQWM7SUFDN0IsV0FBVyxFQUFFLHVCQUF1QixDQUFDO0NBQ3RDO0FBRUQsTUFBTSxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLHVCQUF1QixDQUFDLENBQUM7QUFDbEUsZUFBTyxNQUFNLGVBQWUsc0NBb0YxQixDQUFDO0FBRUg7O0dBRUc7QUFDSCx3QkFBZ0IsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FFbkU7QUFHRCx3QkFBZ0Isa0JBQWtCLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxjQUFjLEdBQUUsY0FBZ0MsR0FBRyxXQUFXLEVBQUUsQ0FTcEg7QUFHRCx3QkFBZ0IsNkJBQTZCLENBQzNDLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLEVBQUUsRUFBRSxNQUFNLEVBQ1YsY0FBYyxHQUFFLGNBQWdDLEdBQy9DLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQW1DdkIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"bytecode_serialization.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/serialization/bytecode_serialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,6BAA6B,CAAC;AAGjF,OAAO,EAgBL,WAAW,EAgCZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAoB,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAE1E,MAAM,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,KAAK,WAAW,CAAC;AAElF,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,uBAAuB,CAAC;CACtC;AAED,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;AAClE,eAAO,MAAM,eAAe,sCAoF1B,CAAC;AAEH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,MAAM,CAEnE;AAGD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,GAAE,cAAgC,GAAG,WAAW,EAAE,CASpH;AAGD,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,EACV,cAAc,GAAE,cAAgC,GAC/C,CAAC,WAAW,EAAE,MAAM,CAAC,CA+BvB"}
1
+ {"version":3,"file":"bytecode_serialization.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/serialization/bytecode_serialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,6BAA6B,CAAC;AAUjF,OAAO,EAgBL,WAAW,EAgCZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAoB,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAE1E,MAAM,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,KAAK,WAAW,CAAC;AAElF,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,uBAAuB,CAAC;CACtC;AAED,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;AAClE,eAAO,MAAM,eAAe,sCAoF1B,CAAC;AAEH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,MAAM,CAEnE;AAGD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,GAAE,cAAgC,GAAG,WAAW,EAAE,CASpH;AAGD,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,EACV,cAAc,GAAE,cAAgC,GAC/C,CAAC,WAAW,EAAE,MAAM,CAAC,CAmCvB"}
@@ -1,5 +1,5 @@
1
1
  import { serializeToBuffer } from '@aztec/foundation/serialize';
2
- import { AvmExecutionError, AvmParsingError, InvalidOpcodeError, InvalidProgramCounterError } from '../errors.js';
2
+ import { AvmExecutionError, AvmParsingError, InvalidOpcodeError, InvalidProgramCounterError, InvalidTagValueError, duringInstrFetch } from '../errors.js';
3
3
  import { Add, And, Call, CalldataCopy, Cast, DebugLog, Div, EcAdd, EmitNoteHash, EmitNullifier, EmitUnencryptedLog, Eq, FieldDiv, GetContractInstance, GetEnvVar, Instruction, InternalCall, InternalReturn, Jump, JumpI, KeccakF1600, L1ToL2MessageExists, Lt, Lte, Mov, Mul, Not, NoteHashExists, NullifierExists, Or, Poseidon2, Return, ReturndataCopy, ReturndataSize, Revert, SLoad, SStore, SendL2ToL1Message, Set, Sha256Compression, Shl, Shr, StaticCall, Sub, SuccessCopy, ToRadixBE, Xor } from '../opcodes/index.js';
4
4
  import { BufferCursor } from './buffer_cursor.js';
5
5
  import { MAX_OPCODE_VALUE, Opcode } from './instruction_serialization.js';
@@ -304,14 +304,14 @@ export function decodeFromBytecode(bytecode, instructionSet = INSTRUCTION_SET) {
304
304
  // Returns the instruction and the number of bytes consumed.
305
305
  export function decodeInstructionFromBytecode(bytecode, pc, instructionSet = INSTRUCTION_SET) {
306
306
  if (pc >= bytecode.length) {
307
- throw new InvalidProgramCounterError(pc, bytecode.length);
307
+ throw new InvalidProgramCounterError(pc, bytecode.length - 1);
308
308
  }
309
309
  try {
310
310
  const cursor = new BufferCursor(bytecode, pc);
311
311
  const startingPosition = cursor.position();
312
312
  const opcode = cursor.bufferAtPosition().readUint8(); // peek.
313
313
  if (opcode > MAX_OPCODE_VALUE) {
314
- throw new InvalidOpcodeError(`Opcode ${opcode} (0x${opcode.toString(16)}) value is not in the range of valid opcodes.`);
314
+ throw new InvalidOpcodeError(`Opcode ${opcode} (0x${opcode.toString(16)}) value is not in the range of valid opcodes (at PC ${pc}).`);
315
315
  }
316
316
  const instructionDeserializerOrUndef = instructionSet.get(opcode);
317
317
  if (instructionDeserializerOrUndef === undefined) {
@@ -324,10 +324,13 @@ export function decodeInstructionFromBytecode(bytecode, pc, instructionSet = INS
324
324
  cursor.position() - startingPosition
325
325
  ];
326
326
  } catch (error) {
327
- if (error instanceof InvalidOpcodeError || error instanceof AvmExecutionError) {
328
- throw error;
327
+ if (error instanceof InvalidTagValueError || error instanceof InvalidOpcodeError) {
328
+ throw duringInstrFetch(error, pc);
329
+ } else if (error instanceof AvmExecutionError) {
330
+ throw new AvmParsingError(`Instruction parsing error at pc ${pc}: ${error.message}`);
329
331
  } else {
330
- throw new AvmParsingError(`${error}`);
332
+ const msg = error instanceof Error ? `: ${error.message}` : '';
333
+ throw new AvmParsingError(`Instruction fetching error at pc ${pc}${msg}`);
331
334
  }
332
335
  }
333
336
  }
@@ -111,4 +111,4 @@ export declare function deserialize(cursor: BufferCursor | Buffer, operands: Ope
111
111
  */
112
112
  export declare function serializeAs(operands: OperandType[], opcode: Opcode, cls: any): Buffer;
113
113
  export {};
114
- //# sourceMappingURL=instruction_serialization.d.ts.map
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb25fc2VyaWFsaXphdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vc2VyaWFsaXphdGlvbi9pbnN0cnVjdGlvbl9zZXJpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRDs7O0dBR0c7QUFDSCxvQkFBWSxNQUFNO0lBRWhCLEtBQUssSUFBQTtJQUNMLE1BQU0sSUFBQTtJQUNOLEtBQUssSUFBQTtJQUNMLE1BQU0sSUFBQTtJQUNOLEtBQUssSUFBQTtJQUNMLE1BQU0sSUFBQTtJQUNOLEtBQUssSUFBQTtJQUNMLE1BQU0sSUFBQTtJQUNOLE1BQU0sSUFBQTtJQUNOLE9BQU8sSUFBQTtJQUNQLElBQUksS0FBQTtJQUNKLEtBQUssS0FBQTtJQUNMLElBQUksS0FBQTtJQUNKLEtBQUssS0FBQTtJQUNMLEtBQUssS0FBQTtJQUNMLE1BQU0sS0FBQTtJQUNOLEtBQUssS0FBQTtJQUNMLE1BQU0sS0FBQTtJQUNOLElBQUksS0FBQTtJQUNKLEtBQUssS0FBQTtJQUNMLEtBQUssS0FBQTtJQUNMLE1BQU0sS0FBQTtJQUNOLEtBQUssS0FBQTtJQUNMLE1BQU0sS0FBQTtJQUNOLEtBQUssS0FBQTtJQUNMLE1BQU0sS0FBQTtJQUNOLEtBQUssS0FBQTtJQUNMLE1BQU0sS0FBQTtJQUNOLE1BQU0sS0FBQTtJQUNOLE9BQU8sS0FBQTtJQUVQLFlBQVksS0FBQTtJQUNaLFlBQVksS0FBQTtJQUNaLFdBQVcsS0FBQTtJQUNYLGNBQWMsS0FBQTtJQUNkLGNBQWMsS0FBQTtJQUVkLE9BQU8sS0FBQTtJQUNQLFFBQVEsS0FBQTtJQUNSLFlBQVksS0FBQTtJQUNaLGNBQWMsS0FBQTtJQUVkLEtBQUssS0FBQTtJQUNMLE1BQU0sS0FBQTtJQUNOLE1BQU0sS0FBQTtJQUNOLE1BQU0sS0FBQTtJQUNOLE9BQU8sS0FBQTtJQUNQLE1BQU0sS0FBQTtJQUNOLEtBQUssS0FBQTtJQUNMLE1BQU0sS0FBQTtJQUVOLEtBQUssS0FBQTtJQUNMLE1BQU0sS0FBQTtJQUNOLGNBQWMsS0FBQTtJQUNkLFlBQVksS0FBQTtJQUNaLGVBQWUsS0FBQTtJQUNmLGFBQWEsS0FBQTtJQUNiLGVBQWUsS0FBQTtJQUNmLG1CQUFtQixLQUFBO0lBQ25CLGtCQUFrQixLQUFBO0lBQ2xCLGFBQWEsS0FBQTtJQUViLElBQUksS0FBQTtJQUNKLFVBQVUsS0FBQTtJQUNWLE1BQU0sS0FBQTtJQUNOLFFBQVEsS0FBQTtJQUNSLFNBQVMsS0FBQTtJQUVULFFBQVEsS0FBQTtJQUVSLFNBQVMsS0FBQTtJQUNULGlCQUFpQixLQUFBO0lBQ2pCLFdBQVcsS0FBQTtJQUNYLEtBQUssS0FBQTtJQUVMLFNBQVMsS0FBQTtDQUNWO0FBRUQsZUFBTyxNQUFNLGdCQUFnQixRQUk1QixDQUFDO0FBSUYsb0JBQVksV0FBVztJQUNyQixLQUFLLElBQUE7SUFDTCxNQUFNLElBQUE7SUFDTixNQUFNLElBQUE7SUFDTixNQUFNLElBQUE7SUFDTixPQUFPLElBQUE7SUFDUCxFQUFFLElBQUE7SUFDRixHQUFHLElBQUE7Q0FDSjtBQUdELEtBQUssaUJBQWlCLEdBQUcsTUFBTSxHQUFHLE1BQU0sQ0FBQztBQWdCekM7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLGNBQWMsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLE1BQU0sQ0FHL0Q7QUFrREQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IsV0FBVyxDQUFDLE1BQU0sRUFBRSxZQUFZLEdBQUcsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsR0FBRyxpQkFBaUIsRUFBRSxDQXlCdkc7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCx3QkFBZ0IsV0FBVyxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsTUFBTSxDQW1CckYifQ==
@@ -1,4 +1,4 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { strict as assert } from 'assert';
3
3
  import { TaggedMemory } from '../avm_memory_types.js';
4
4
  import { BufferCursor } from './buffer_cursor.js';
@@ -1,4 +1,4 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import type { ContractClassPublic, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
3
3
  import type { PublicContractsDB, PublicTreesDB } from '../public_db_sources.js';
4
4
  import type { PublicSideEffectTraceInterface } from '../side_effect_trace_interface.js';
@@ -12,4 +12,4 @@ export declare function mockGetL1ToL2LeafValue(worldStateDB: PublicTreesDB, leaf
12
12
  export declare function mockGetContractInstance(contractsDB: PublicContractsDB, contractInstance: ContractInstanceWithAddress): void;
13
13
  export declare function mockGetContractClass(contractsDB: PublicContractsDB, contractClass: ContractClassPublic): void;
14
14
  export declare function mockGetBytecodeCommitment(contractsDB: PublicContractsDB, commitment: Fr): void;
15
- //# sourceMappingURL=test_utils.d.ts.map
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF91dGlscy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vdGVzdF91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUsvRixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRixPQUFPLEtBQUssRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXhGLHdCQUFnQixhQUFhLENBQUMsS0FBSyxFQUFFLDhCQUE4QixFQUFFLFdBQVcsQ0FBQyxFQUFFLDhCQUE4QixRQUloSDtBQUVELHdCQUFnQixlQUFlLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsRUFBRSxRQUVyRTtBQUVELHdCQUFnQixpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsOEJBQThCLEVBQUUsS0FBSyxFQUFFLE1BQU0sUUFFM0Y7QUFFRCx3QkFBZ0Isc0JBQXNCLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsUUFJakc7QUFFRCx3QkFBZ0IsZUFBZSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLFFBUTFGO0FBRUQsd0JBQWdCLHdCQUF3QixDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFFLFFBRXhHO0FBRUQsd0JBQWdCLHNCQUFzQixDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLFFBUWhHO0FBRUQsd0JBQWdCLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSwyQkFBMkIsUUFFcEg7QUFFRCx3QkFBZ0Isb0JBQW9CLENBQUMsV0FBVyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxtQkFBbUIsUUFFdEc7QUFFRCx3QkFBZ0IseUJBQXlCLENBQUMsV0FBVyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxFQUFFLFFBRXZGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"test_utils.d.ts","sourceRoot":"","sources":["../../../src/public/avm/test_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAK/F,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAExF,wBAAgB,aAAa,CAAC,KAAK,EAAE,8BAA8B,EAAE,WAAW,CAAC,EAAE,8BAA8B,QAIhH;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,QAErE;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,8BAA8B,EAAE,KAAK,EAAE,MAAM,QAE3F;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,QAIjG;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,QAQ1F;AAED,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,EAAE,QAExG;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,QAQhG;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,2BAA2B,QAEpH;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,mBAAmB,QAEtG;AAED,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,EAAE,QAEvF"}
1
+ {"version":3,"file":"test_utils.d.ts","sourceRoot":"","sources":["../../../src/public/avm/test_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAK/F,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAExF,wBAAgB,aAAa,CAAC,KAAK,EAAE,8BAA8B,EAAE,WAAW,CAAC,EAAE,8BAA8B,QAIhH;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,QAErE;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,8BAA8B,EAAE,KAAK,EAAE,MAAM,QAE3F;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,QAIjG;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,QAQ1F;AAED,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,EAAE,QAExG;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,QAQhG;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,2BAA2B,QAEpH;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,mBAAmB,QAEtG;AAED,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,EAAE,QAEvF"}
@@ -1,4 +1,4 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { mock } from 'jest-mock-extended';
3
3
  export function mockTraceFork(trace, nestedTrace) {
4
4
  trace.fork.mockReturnValue(nestedTrace ?? mock());
@@ -0,0 +1,16 @@
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
3
+ import type { ContractClassPublic, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
4
+ export declare class ContractsDbCheckpoint {
5
+ private instances;
6
+ private classes;
7
+ private bytecodeCommitments;
8
+ addInstance(address: AztecAddress, instance: ContractInstanceWithAddress): void;
9
+ addClass(classId: Fr, contractClass: ContractClassPublic): void;
10
+ addBytecodeCommitment(classId: Fr, commitment: Fr): void;
11
+ getInstance(address: AztecAddress): ContractInstanceWithAddress | undefined;
12
+ getClass(classId: Fr): ContractClassPublic | undefined;
13
+ getBytecodeCommitment(classId: Fr): Fr | undefined;
14
+ deepCopy(): ContractsDbCheckpoint;
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RzX2RiX2NoZWNrcG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvY29udHJhY3RzX2RiX2NoZWNrcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUvRixxQkFBYSxxQkFBcUI7SUFDaEMsT0FBTyxDQUFDLFNBQVMsQ0FBdUQ7SUFDeEUsT0FBTyxDQUFDLE9BQU8sQ0FBK0M7SUFDOUQsT0FBTyxDQUFDLG1CQUFtQixDQUE4QjtJQUVsRCxXQUFXLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsMkJBQTJCLEdBQUcsSUFBSSxDQUVyRjtJQUVNLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsR0FBRyxJQUFJLENBRXJFO0lBRU0scUJBQXFCLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FFOUQ7SUFFTSxXQUFXLENBQUMsT0FBTyxFQUFFLFlBQVksR0FBRywyQkFBMkIsR0FBRyxTQUFTLENBRWpGO0lBRU0sUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsbUJBQW1CLEdBQUcsU0FBUyxDQUU1RDtJQUVNLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FFeEQ7SUFFTSxRQUFRLElBQUkscUJBQXFCLENBTXZDO0NBQ0YifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts_db_checkpoint.d.ts","sourceRoot":"","sources":["../../src/public/contracts_db_checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE/F,qBAAa,qBAAqB;IAChC,OAAO,CAAC,SAAS,CAAuD;IACxE,OAAO,CAAC,OAAO,CAA+C;IAC9D,OAAO,CAAC,mBAAmB,CAA8B;IAElD,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,2BAA2B,GAAG,IAAI,CAErF;IAEM,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,mBAAmB,GAAG,IAAI,CAErE;IAEM,qBAAqB,CAAC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,GAAG,IAAI,CAE9D;IAEM,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,2BAA2B,GAAG,SAAS,CAEjF;IAEM,QAAQ,CAAC,OAAO,EAAE,EAAE,GAAG,mBAAmB,GAAG,SAAS,CAE5D;IAEM,qBAAqB,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,SAAS,CAExD;IAEM,QAAQ,IAAI,qBAAqB,CAMvC;CACF"}
@@ -0,0 +1,30 @@
1
+ export class ContractsDbCheckpoint {
2
+ instances = new Map();
3
+ classes = new Map();
4
+ bytecodeCommitments = new Map();
5
+ addInstance(address, instance) {
6
+ this.instances.set(address.toString(), instance);
7
+ }
8
+ addClass(classId, contractClass) {
9
+ this.classes.set(classId.toString(), contractClass);
10
+ }
11
+ addBytecodeCommitment(classId, commitment) {
12
+ this.bytecodeCommitments.set(classId.toString(), commitment);
13
+ }
14
+ getInstance(address) {
15
+ return this.instances.get(address.toString());
16
+ }
17
+ getClass(classId) {
18
+ return this.classes.get(classId.toString());
19
+ }
20
+ getBytecodeCommitment(classId) {
21
+ return this.bytecodeCommitments.get(classId.toString());
22
+ }
23
+ deepCopy() {
24
+ const copy = new ContractsDbCheckpoint();
25
+ this.instances.forEach((value, key)=>copy.instances.set(key, value));
26
+ this.classes.forEach((value, key)=>copy.classes.set(key, value));
27
+ this.bytecodeCommitments.forEach((value, key)=>copy.bytecodeCommitments.set(key, value));
28
+ return copy;
29
+ }
30
+ }