@aztec/simulator 0.0.1-commit.b655e406 → 0.0.1-commit.c7c42ec

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 (319) hide show
  1. package/dest/client.d.ts +1 -1
  2. package/dest/common/errors.d.ts +2 -8
  3. package/dest/common/errors.d.ts.map +1 -1
  4. package/dest/common/index.d.ts +1 -1
  5. package/dest/common/stats/index.d.ts +1 -1
  6. package/dest/common/stats/stats.d.ts +1 -1
  7. package/dest/private/acvm/acvm.d.ts +1 -1
  8. package/dest/private/acvm/acvm_types.d.ts +1 -1
  9. package/dest/private/acvm/deserialize.d.ts +2 -2
  10. package/dest/private/acvm/deserialize.d.ts.map +1 -1
  11. package/dest/private/acvm/deserialize.js +1 -1
  12. package/dest/private/acvm/index.d.ts +1 -1
  13. package/dest/private/acvm/serialize.d.ts +2 -2
  14. package/dest/private/acvm/serialize.d.ts.map +1 -1
  15. package/dest/private/acvm/serialize.js +1 -1
  16. package/dest/private/acvm_native.d.ts +1 -1
  17. package/dest/private/acvm_native.d.ts.map +1 -1
  18. package/dest/private/acvm_wasm.d.ts +1 -1
  19. package/dest/private/acvm_wasm.d.ts.map +1 -1
  20. package/dest/private/acvm_wasm_with_blobs.d.ts +1 -1
  21. package/dest/private/acvm_wasm_with_blobs.d.ts.map +1 -1
  22. package/dest/private/circuit_recording/circuit_recorder.d.ts +1 -1
  23. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
  24. package/dest/private/circuit_recording/circuit_recorder.js +1 -1
  25. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +1 -1
  26. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
  27. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +1 -1
  28. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -1
  29. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +1 -1
  30. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -1
  31. package/dest/private/circuit_simulator.d.ts +1 -1
  32. package/dest/private/factory.d.ts +1 -1
  33. package/dest/public/avm/avm_context.d.ts +2 -2
  34. package/dest/public/avm/avm_context.d.ts.map +1 -1
  35. package/dest/public/avm/avm_contract_call_result.d.ts +2 -2
  36. package/dest/public/avm/avm_contract_call_result.d.ts.map +1 -1
  37. package/dest/public/avm/avm_execution_environment.d.ts +5 -5
  38. package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
  39. package/dest/public/avm/avm_execution_environment.js +5 -8
  40. package/dest/public/avm/avm_gas.d.ts +2 -2
  41. package/dest/public/avm/avm_gas.d.ts.map +1 -1
  42. package/dest/public/avm/avm_machine_state.d.ts +2 -2
  43. package/dest/public/avm/avm_machine_state.d.ts.map +1 -1
  44. package/dest/public/avm/avm_memory_types.d.ts +14 -14
  45. package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
  46. package/dest/public/avm/avm_memory_types.js +1 -1
  47. package/dest/public/avm/avm_simulator.d.ts +4 -3
  48. package/dest/public/avm/avm_simulator.d.ts.map +1 -1
  49. package/dest/public/avm/avm_simulator.js +8 -7
  50. package/dest/public/avm/avm_simulator_interface.d.ts +1 -1
  51. package/dest/public/avm/errors.d.ts +8 -2
  52. package/dest/public/avm/errors.d.ts.map +1 -1
  53. package/dest/public/avm/errors.js +14 -2
  54. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +1 -1
  55. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -1
  56. package/dest/public/avm/fixtures/avm_simulation_tester.js +12 -3
  57. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts +2 -2
  58. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +1 -1
  59. package/dest/public/avm/fixtures/base_avm_simulation_tester.js +1 -1
  60. package/dest/public/avm/fixtures/initializers.d.ts +2 -3
  61. package/dest/public/avm/fixtures/initializers.d.ts.map +1 -1
  62. package/dest/public/avm/fixtures/initializers.js +7 -5
  63. package/dest/public/avm/fixtures/utils.d.ts +4 -3
  64. package/dest/public/avm/fixtures/utils.d.ts.map +1 -1
  65. package/dest/public/avm/fixtures/utils.js +3 -2
  66. package/dest/public/avm/index.d.ts +1 -1
  67. package/dest/public/avm/opcodes/accrued_substate.d.ts +1 -1
  68. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
  69. package/dest/public/avm/opcodes/addressing_mode.d.ts +1 -1
  70. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +1 -1
  71. package/dest/public/avm/opcodes/addressing_mode.js +2 -2
  72. package/dest/public/avm/opcodes/arithmetic.d.ts +10 -8
  73. package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -1
  74. package/dest/public/avm/opcodes/arithmetic.js +11 -1
  75. package/dest/public/avm/opcodes/bitwise.d.ts +5 -5
  76. package/dest/public/avm/opcodes/bitwise.d.ts.map +1 -1
  77. package/dest/public/avm/opcodes/comparators.d.ts +4 -4
  78. package/dest/public/avm/opcodes/comparators.d.ts.map +1 -1
  79. package/dest/public/avm/opcodes/contract.d.ts +1 -1
  80. package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
  81. package/dest/public/avm/opcodes/control_flow.d.ts +1 -1
  82. package/dest/public/avm/opcodes/control_flow.d.ts.map +1 -1
  83. package/dest/public/avm/opcodes/conversion.d.ts +1 -1
  84. package/dest/public/avm/opcodes/conversion.d.ts.map +1 -1
  85. package/dest/public/avm/opcodes/ec_add.d.ts +2 -2
  86. package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
  87. package/dest/public/avm/opcodes/ec_add.js +2 -2
  88. package/dest/public/avm/opcodes/environment_getters.d.ts +1 -1
  89. package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -1
  90. package/dest/public/avm/opcodes/external_calls.d.ts +1 -1
  91. package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -1
  92. package/dest/public/avm/opcodes/hashing.d.ts +2 -2
  93. package/dest/public/avm/opcodes/hashing.d.ts.map +1 -1
  94. package/dest/public/avm/opcodes/hashing.js +9 -4
  95. package/dest/public/avm/opcodes/index.d.ts +1 -1
  96. package/dest/public/avm/opcodes/instruction.d.ts +2 -2
  97. package/dest/public/avm/opcodes/instruction.d.ts.map +1 -1
  98. package/dest/public/avm/opcodes/instruction_impl.d.ts +1 -1
  99. package/dest/public/avm/opcodes/instruction_impl.d.ts.map +1 -1
  100. package/dest/public/avm/opcodes/memory.d.ts +2 -2
  101. package/dest/public/avm/opcodes/memory.d.ts.map +1 -1
  102. package/dest/public/avm/opcodes/memory.js +1 -1
  103. package/dest/public/avm/opcodes/misc.d.ts +1 -1
  104. package/dest/public/avm/opcodes/misc.d.ts.map +1 -1
  105. package/dest/public/avm/opcodes/misc.js +4 -4
  106. package/dest/public/avm/opcodes/storage.d.ts +3 -3
  107. package/dest/public/avm/opcodes/storage.d.ts.map +1 -1
  108. package/dest/public/avm/revert_reason.d.ts +2 -2
  109. package/dest/public/avm/revert_reason.d.ts.map +1 -1
  110. package/dest/public/avm/revert_reason.js +3 -2
  111. package/dest/public/avm/serialization/buffer_cursor.d.ts +1 -1
  112. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +1 -1
  113. package/dest/public/avm/serialization/bytecode_serialization.d.ts +1 -1
  114. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  115. package/dest/public/avm/serialization/bytecode_serialization.js +9 -6
  116. package/dest/public/avm/serialization/instruction_serialization.d.ts +1 -1
  117. package/dest/public/avm/serialization/instruction_serialization.js +1 -1
  118. package/dest/public/avm/test_utils.d.ts +2 -2
  119. package/dest/public/avm/test_utils.d.ts.map +1 -1
  120. package/dest/public/avm/test_utils.js +1 -1
  121. package/dest/public/contracts_db_checkpoint.d.ts +16 -0
  122. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -0
  123. package/dest/public/contracts_db_checkpoint.js +30 -0
  124. package/dest/public/db_interfaces.d.ts +14 -2
  125. package/dest/public/db_interfaces.d.ts.map +1 -1
  126. package/dest/public/debug_fn_name.d.ts +15 -2
  127. package/dest/public/debug_fn_name.d.ts.map +1 -1
  128. package/dest/public/debug_fn_name.js +28 -2
  129. package/dest/public/executor_metrics.d.ts +3 -2
  130. package/dest/public/executor_metrics.d.ts.map +1 -1
  131. package/dest/public/executor_metrics.js +1 -1
  132. package/dest/public/executor_metrics_interface.d.ts +3 -2
  133. package/dest/public/executor_metrics_interface.d.ts.map +1 -1
  134. package/dest/public/fixtures/amm_test.d.ts +1 -1
  135. package/dest/public/fixtures/amm_test.js +2 -2
  136. package/dest/public/fixtures/bulk_test.d.ts +1 -1
  137. package/dest/public/fixtures/bulk_test.js +4 -52
  138. package/dest/public/fixtures/custom_bytecode_tester.d.ts +29 -7
  139. package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -1
  140. package/dest/public/fixtures/custom_bytecode_tester.js +36 -12
  141. package/dest/public/fixtures/custom_bytecode_tests.d.ts +4 -1
  142. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +1 -1
  143. package/dest/public/fixtures/custom_bytecode_tests.js +74 -9
  144. package/dest/public/fixtures/index.d.ts +4 -2
  145. package/dest/public/fixtures/index.d.ts.map +1 -1
  146. package/dest/public/fixtures/index.js +3 -1
  147. package/dest/public/fixtures/minimal_public_tx.d.ts +2 -8
  148. package/dest/public/fixtures/minimal_public_tx.d.ts.map +1 -1
  149. package/dest/public/fixtures/minimal_public_tx.js +4 -14
  150. package/dest/public/fixtures/opcode_spammer.d.ts +123 -0
  151. package/dest/public/fixtures/opcode_spammer.d.ts.map +1 -0
  152. package/dest/public/fixtures/opcode_spammer.js +1681 -0
  153. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +24 -6
  154. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  155. package/dest/public/fixtures/public_tx_simulation_tester.js +62 -21
  156. package/dest/public/fixtures/simple_contract_data_source.d.ts +5 -4
  157. package/dest/public/fixtures/simple_contract_data_source.d.ts.map +1 -1
  158. package/dest/public/fixtures/simple_contract_data_source.js +4 -4
  159. package/dest/public/fixtures/token_test.d.ts +6 -2
  160. package/dest/public/fixtures/token_test.d.ts.map +1 -1
  161. package/dest/public/fixtures/token_test.js +13 -12
  162. package/dest/public/fixtures/utils.d.ts +2 -2
  163. package/dest/public/fixtures/utils.d.ts.map +1 -1
  164. package/dest/public/fixtures/utils.js +4 -3
  165. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +46 -0
  166. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -0
  167. package/dest/public/fuzzing/avm_fuzzer_simulator.js +139 -0
  168. package/dest/public/fuzzing/avm_simulator_bin.d.ts +2 -0
  169. package/dest/public/fuzzing/avm_simulator_bin.d.ts.map +1 -0
  170. package/dest/public/fuzzing/avm_simulator_bin.js +100 -0
  171. package/dest/public/hinting_db_sources.d.ts +14 -4
  172. package/dest/public/hinting_db_sources.d.ts.map +1 -1
  173. package/dest/public/hinting_db_sources.js +69 -13
  174. package/dest/public/index.d.ts +3 -2
  175. package/dest/public/index.d.ts.map +1 -1
  176. package/dest/public/index.js +1 -1
  177. package/dest/public/public_db_sources.d.ts +22 -63
  178. package/dest/public/public_db_sources.d.ts.map +1 -1
  179. package/dest/public/public_db_sources.js +74 -131
  180. package/dest/public/public_errors.d.ts +1 -1
  181. package/dest/public/public_errors.d.ts.map +1 -1
  182. package/dest/public/public_processor/guarded_merkle_tree.d.ts +6 -4
  183. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  184. package/dest/public/public_processor/guarded_merkle_tree.js +3 -0
  185. package/dest/public/public_processor/public_processor.d.ts +11 -18
  186. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  187. package/dest/public/public_processor/public_processor.js +54 -43
  188. package/dest/public/public_processor/public_processor_metrics.d.ts +1 -1
  189. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  190. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +18 -0
  191. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -0
  192. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +98 -0
  193. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +34 -22
  194. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +1 -1
  195. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +92 -50
  196. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +42 -0
  197. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +1 -0
  198. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +86 -0
  199. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +30 -0
  200. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +1 -0
  201. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +171 -0
  202. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +22 -0
  203. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +1 -0
  204. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.js +52 -0
  205. package/dest/public/public_tx_simulator/factories.d.ts +13 -0
  206. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -0
  207. package/dest/public/public_tx_simulator/factories.js +28 -0
  208. package/dest/public/public_tx_simulator/index.d.ts +5 -1
  209. package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
  210. package/dest/public/public_tx_simulator/index.js +3 -0
  211. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +14 -7
  212. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +1 -1
  213. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +5 -5
  214. package/dest/public/public_tx_simulator/public_tx_context.d.ts +6 -3
  215. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
  216. package/dest/public/public_tx_simulator/public_tx_context.js +13 -5
  217. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +11 -31
  218. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  219. package/dest/public/public_tx_simulator/public_tx_simulator.js +109 -126
  220. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +25 -2
  221. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts.map +1 -1
  222. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +4 -4
  223. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +1 -1
  224. package/dest/public/side_effect_errors.d.ts +1 -1
  225. package/dest/public/side_effect_errors.d.ts.map +1 -1
  226. package/dest/public/side_effect_trace.d.ts +2 -3
  227. package/dest/public/side_effect_trace.d.ts.map +1 -1
  228. package/dest/public/side_effect_trace.js +1 -1
  229. package/dest/public/side_effect_trace_interface.d.ts +3 -4
  230. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  231. package/dest/public/state_manager/index.d.ts +1 -1
  232. package/dest/public/state_manager/nullifiers.d.ts +2 -2
  233. package/dest/public/state_manager/nullifiers.d.ts.map +1 -1
  234. package/dest/public/state_manager/public_storage.d.ts +2 -2
  235. package/dest/public/state_manager/public_storage.d.ts.map +1 -1
  236. package/dest/public/state_manager/public_storage.js +1 -1
  237. package/dest/public/state_manager/state_manager.d.ts +9 -11
  238. package/dest/public/state_manager/state_manager.d.ts.map +1 -1
  239. package/dest/public/state_manager/state_manager.js +10 -6
  240. package/dest/public/test_executor_metrics.d.ts +4 -3
  241. package/dest/public/test_executor_metrics.d.ts.map +1 -1
  242. package/dest/public/test_executor_metrics.js +5 -4
  243. package/dest/public/unique_class_ids.d.ts +1 -1
  244. package/dest/public/unique_class_ids.d.ts.map +1 -1
  245. package/dest/public/utils.d.ts +1 -1
  246. package/dest/server.d.ts +1 -1
  247. package/dest/testing.d.ts +1 -1
  248. package/package.json +21 -20
  249. package/src/common/errors.ts +1 -1
  250. package/src/private/acvm/deserialize.ts +1 -1
  251. package/src/private/acvm/serialize.ts +1 -1
  252. package/src/private/circuit_recording/circuit_recorder.ts +1 -1
  253. package/src/public/avm/avm_context.ts +1 -1
  254. package/src/public/avm/avm_contract_call_result.ts +1 -1
  255. package/src/public/avm/avm_execution_environment.ts +4 -6
  256. package/src/public/avm/avm_gas.ts +3 -3
  257. package/src/public/avm/avm_machine_state.ts +1 -1
  258. package/src/public/avm/avm_memory_types.ts +1 -1
  259. package/src/public/avm/avm_simulator.ts +11 -9
  260. package/src/public/avm/errors.ts +17 -3
  261. package/src/public/avm/fixtures/avm_simulation_tester.ts +10 -2
  262. package/src/public/avm/fixtures/base_avm_simulation_tester.ts +1 -1
  263. package/src/public/avm/fixtures/initializers.ts +8 -10
  264. package/src/public/avm/fixtures/utils.ts +3 -2
  265. package/src/public/avm/opcodes/addressing_mode.ts +2 -2
  266. package/src/public/avm/opcodes/arithmetic.ts +13 -1
  267. package/src/public/avm/opcodes/ec_add.ts +2 -2
  268. package/src/public/avm/opcodes/hashing.ts +10 -4
  269. package/src/public/avm/opcodes/memory.ts +1 -1
  270. package/src/public/avm/opcodes/misc.ts +4 -4
  271. package/src/public/avm/revert_reason.ts +6 -3
  272. package/src/public/avm/serialization/bytecode_serialization.ts +17 -6
  273. package/src/public/avm/serialization/instruction_serialization.ts +1 -1
  274. package/src/public/avm/test_utils.ts +1 -1
  275. package/src/public/contracts_db_checkpoint.ts +41 -0
  276. package/src/public/db_interfaces.ts +16 -1
  277. package/src/public/debug_fn_name.ts +35 -3
  278. package/src/public/executor_metrics.ts +2 -1
  279. package/src/public/executor_metrics_interface.ts +2 -1
  280. package/src/public/fixtures/amm_test.ts +2 -2
  281. package/src/public/fixtures/bulk_test.ts +7 -7
  282. package/src/public/fixtures/custom_bytecode_tester.ts +54 -20
  283. package/src/public/fixtures/custom_bytecode_tests.ts +93 -9
  284. package/src/public/fixtures/index.ts +7 -1
  285. package/src/public/fixtures/minimal_public_tx.ts +5 -15
  286. package/src/public/fixtures/opcode_spammer.ts +1638 -0
  287. package/src/public/fixtures/public_tx_simulation_tester.ts +85 -21
  288. package/src/public/fixtures/simple_contract_data_source.ts +8 -9
  289. package/src/public/fixtures/token_test.ts +18 -10
  290. package/src/public/fixtures/utils.ts +2 -3
  291. package/src/public/fuzzing/avm_fuzzer_simulator.ts +240 -0
  292. package/src/public/fuzzing/avm_simulator_bin.ts +140 -0
  293. package/src/public/hinting_db_sources.ts +112 -10
  294. package/src/public/index.ts +6 -4
  295. package/src/public/public_db_sources.ts +93 -172
  296. package/src/public/public_processor/guarded_merkle_tree.ts +8 -3
  297. package/src/public/public_processor/public_processor.ts +83 -57
  298. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +121 -0
  299. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +129 -57
  300. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +132 -0
  301. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +237 -0
  302. package/src/public/public_tx_simulator/dumping_cpp_public_tx_simulator.ts +81 -0
  303. package/src/public/public_tx_simulator/factories.ts +41 -0
  304. package/src/public/public_tx_simulator/index.ts +4 -0
  305. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +10 -14
  306. package/src/public/public_tx_simulator/public_tx_context.ts +9 -3
  307. package/src/public/public_tx_simulator/public_tx_simulator.ts +161 -193
  308. package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +24 -2
  309. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +3 -3
  310. package/src/public/side_effect_trace.ts +1 -1
  311. package/src/public/side_effect_trace_interface.ts +1 -1
  312. package/src/public/state_manager/nullifiers.ts +1 -1
  313. package/src/public/state_manager/public_storage.ts +1 -1
  314. package/src/public/state_manager/state_manager.ts +14 -14
  315. package/src/public/test_executor_metrics.ts +7 -5
  316. package/dest/public/tx_contract_cache.d.ts +0 -41
  317. package/dest/public/tx_contract_cache.d.ts.map +0 -1
  318. package/dest/public/tx_contract_cache.js +0 -49
  319. package/src/public/tx_contract_cache.ts +0 -69
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX3NpbXVsYXRvcl9iaW4uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMvZnV6emluZy9hdm1fc2ltdWxhdG9yX2Jpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avm_simulator_bin.d.ts","sourceRoot":"","sources":["../../../src/public/fuzzing/avm_simulator_bin.ts"],"names":[],"mappings":""}
@@ -0,0 +1,100 @@
1
+ import { EthAddress } from '@aztec/foundation/eth-address';
2
+ import { deserializeFromMessagePack, serializeWithMessagePack } from '@aztec/stdlib/avm';
3
+ import { TreeSnapshots } from '@aztec/stdlib/tx';
4
+ import { NativeWorldStateService } from '@aztec/world-state';
5
+ import { writeSync } from 'fs';
6
+ import { createInterface } from 'readline';
7
+ import { AvmFuzzerSimulator, FuzzerSimulationRequest } from './avm_fuzzer_simulator.js';
8
+ // This cache holds opened world states to avoid reopening them for each invocation.
9
+ // It's a map so that in the future we could support multiple world states (if we had multiple fuzzers).
10
+ const worldStateCache = new Map();
11
+ async function openExistingWorldState(dataDir, mapSizeKb) {
12
+ const cached = worldStateCache.get(dataDir);
13
+ if (cached) {
14
+ return cached;
15
+ }
16
+ const ws = await NativeWorldStateService.new(EthAddress.ZERO, dataDir, {
17
+ archiveTreeMapSizeKb: mapSizeKb,
18
+ nullifierTreeMapSizeKb: mapSizeKb,
19
+ noteHashTreeMapSizeKb: mapSizeKb,
20
+ messageTreeMapSizeKb: mapSizeKb,
21
+ publicDataTreeMapSizeKb: mapSizeKb
22
+ });
23
+ worldStateCache.set(dataDir, ws);
24
+ return ws;
25
+ }
26
+ async function simulateWithFuzzer(dataDir, mapSizeKb, txHint, globals, rawContractClasses, rawContractInstances) {
27
+ const worldStateService = await openExistingWorldState(dataDir, mapSizeKb);
28
+ const simulator = await AvmFuzzerSimulator.create(worldStateService, globals);
29
+ // Register contract classes from C++
30
+ for (const rawClass of rawContractClasses){
31
+ await simulator.addContractClassFromCpp(rawClass);
32
+ }
33
+ // Register contract instances from C++
34
+ for (const [rawAddress, rawInstance] of rawContractInstances){
35
+ await simulator.addContractInstanceFromCpp(rawAddress, rawInstance);
36
+ }
37
+ const result = await simulator.simulate(txHint);
38
+ const output = result.getAppLogicReturnValues().flatMap((rv)=>rv?.values?.filter((v)=>v != null) ?? []);
39
+ return {
40
+ reverted: !result.revertCode.isOK(),
41
+ output,
42
+ revertReason: result.findRevertReason()?.message,
43
+ publicInputs: result.publicInputs
44
+ };
45
+ }
46
+ async function execute(base64Line) {
47
+ try {
48
+ // Decode base64 and deserialize the entire request from msgpack
49
+ const buffer = Buffer.from(base64Line.trim(), 'base64');
50
+ const rawRequest = deserializeFromMessagePack(buffer);
51
+ const request = FuzzerSimulationRequest.fromPlainObject(rawRequest);
52
+ // Run the TS simulation
53
+ const result = await simulateWithFuzzer(request.wsDataDir, request.wsMapSizeKb, request.tx, request.globals, request.contractClasses, request.contractInstances);
54
+ // Serialize the result to msgpack and encode it in base64 for output
55
+ const resultBuffer = serializeWithMessagePack({
56
+ reverted: result.reverted,
57
+ output: result.output,
58
+ revertReason: result.revertReason ?? '',
59
+ endTreeSnapshots: result.publicInputs.endTreeSnapshots
60
+ });
61
+ writeSync(process.stdout.fd, resultBuffer.toString('base64') + '\n');
62
+ } catch (error) {
63
+ // If we error, treat as reverted
64
+ const errorResult = serializeWithMessagePack({
65
+ reverted: true,
66
+ output: [],
67
+ revertReason: `Unexpected Error ${error.message}`,
68
+ endTreeSnapshots: TreeSnapshots.empty()
69
+ });
70
+ writeSync(process.stdout.fd, errorResult.toString('base64') + '\n');
71
+ }
72
+ }
73
+ function mainLoop() {
74
+ const rl = createInterface({
75
+ input: process.stdin,
76
+ terminal: false
77
+ });
78
+ // Process lines sequentially to avoid race conditions in responses
79
+ const lineQueue = [];
80
+ let processing = false;
81
+ async function processQueue() {
82
+ if (processing || lineQueue.length === 0) {
83
+ return;
84
+ }
85
+ processing = true;
86
+ while(lineQueue.length > 0){
87
+ const line = lineQueue.shift();
88
+ await execute(line);
89
+ }
90
+ processing = false;
91
+ }
92
+ rl.on('line', (line)=>{
93
+ if (line.trim()) {
94
+ lineQueue.push(line);
95
+ void processQueue();
96
+ }
97
+ });
98
+ rl.on('close', ()=>process.exit(0));
99
+ }
100
+ void mainLoop();
@@ -1,4 +1,5 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import type { BlockNumber } from '@aztec/foundation/branded-types';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
3
  import type { IndexedTreeLeafPreimage, SiblingPath } from '@aztec/foundation/trees';
3
4
  import type { FunctionSelector } from '@aztec/stdlib/abi';
4
5
  import { type AvmExecutionHints } from '@aztec/stdlib/avm';
@@ -14,12 +15,20 @@ import type { PublicContractsDBInterface } from './db_interfaces.js';
14
15
  export declare class HintingPublicContractsDB implements PublicContractsDBInterface {
15
16
  private readonly db;
16
17
  private hints;
17
- private contractClassIds;
18
+ private static readonly log;
19
+ private checkpointActionCounter;
20
+ private nextCheckpointId;
21
+ private checkpointStack;
18
22
  constructor(db: PublicContractsDBInterface, hints: AvmExecutionHints);
19
23
  getContractInstance(address: AztecAddress, timestamp: UInt64): Promise<ContractInstanceWithAddress | undefined>;
20
24
  getContractClass(contractClassId: Fr): Promise<ContractClassPublic | undefined>;
21
25
  getBytecodeCommitment(contractClassId: Fr): Promise<Fr | undefined>;
22
26
  getDebugFunctionName(contractAddress: AztecAddress, selector: FunctionSelector): Promise<string | undefined>;
27
+ createCheckpoint(): void;
28
+ commitCheckpoint(): void;
29
+ revertCheckpoint(): void;
30
+ private getHintKey;
31
+ private getCurrentCheckpointId;
23
32
  }
24
33
  /**
25
34
  * A low-level merkle DB that collects hints.
@@ -59,12 +68,13 @@ export declare class HintingMerkleWriteOperations implements MerkleTreeWriteOper
59
68
  updateArchive(header: any): Promise<void>;
60
69
  batchInsert<TreeHeight extends number, SubtreeSiblingPathHeight extends number, ID extends IndexedTreeId>(treeId: ID, leaves: Buffer[], subtreeHeight: number): Promise<BatchInsertionResult<TreeHeight, SubtreeSiblingPathHeight>>;
61
70
  close(): Promise<void>;
71
+ [Symbol.dispose](): Promise<void>;
62
72
  findLeafIndices<ID extends MerkleTreeId>(treeId: ID, values: MerkleTreeLeafType<ID>[]): Promise<(bigint | undefined)[]>;
63
73
  findSiblingPaths<ID extends MerkleTreeId>(treeId: ID, values: MerkleTreeLeafType<ID>[]): Promise<({
64
74
  path: SiblingPath<TreeHeights[ID]>;
65
75
  index: bigint;
66
76
  } | undefined)[]>;
67
77
  findLeafIndicesAfter<ID extends MerkleTreeId>(treeId: ID, values: MerkleTreeLeafType<ID>[], startIndex: bigint): Promise<(bigint | undefined)[]>;
68
- getBlockNumbersForLeafIndices<ID extends MerkleTreeId>(treeId: ID, leafIndices: bigint[]): Promise<(bigint | undefined)[]>;
78
+ getBlockNumbersForLeafIndices<ID extends MerkleTreeId>(treeId: ID, leafIndices: bigint[]): Promise<(BlockNumber | undefined)[]>;
69
79
  }
70
- //# sourceMappingURL=hinting_db_sources.d.ts.map
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludGluZ19kYl9zb3VyY2VzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL2hpbnRpbmdfZGJfc291cmNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEYsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBV0wsS0FBSyxpQkFBaUIsRUFTdkIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9GLE9BQU8sRUFFTCxLQUFLLG9CQUFvQixFQUN6QixLQUFLLGFBQWEsRUFDbEIsWUFBWSxFQUNaLEtBQUssa0JBQWtCLEVBQ3ZCLEtBQUsseUJBQXlCLEVBSzlCLEtBQUsseUJBQXlCLEVBQzlCLEtBQUssV0FBVyxFQUdqQixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJcEUsT0FBTyxLQUFLLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRTs7R0FFRztBQUNILHFCQUFhLHdCQUF5QixZQUFXLDBCQUEwQjtJQVF2RSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7SUFDbkIsT0FBTyxDQUFDLEtBQUs7SUFSZixPQUFPLENB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
@@ -1 +1 @@
1
- {"version":3,"file":"hinting_db_sources.d.ts","sourceRoot":"","sources":["../../src/public/hinting_db_sources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hinting_db_sources.d.ts","sourceRoot":"","sources":["../../src/public/hinting_db_sources.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { sha256Trunc } from '@aztec/foundation/crypto';
2
- import { Fr } from '@aztec/foundation/fields';
1
+ import { sha256Trunc } from '@aztec/foundation/crypto/sha256';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { createLogger } from '@aztec/foundation/log';
4
- import { AvmAppendLeavesHint, AvmBytecodeCommitmentHint, AvmCommitCheckpointHint, AvmContractClassHint, AvmContractInstanceHint, AvmCreateCheckpointHint, AvmGetLeafPreimageHintNullifierTree, AvmGetLeafPreimageHintPublicDataTree, AvmGetLeafValueHint, AvmGetPreviousValueIndexHint, AvmGetSiblingPathHint, AvmRevertCheckpointHint, AvmSequentialInsertHintNullifierTree, AvmSequentialInsertHintPublicDataTree } from '@aztec/stdlib/avm';
4
+ import { AvmAppendLeavesHint, AvmBytecodeCommitmentHint, AvmCommitCheckpointHint, AvmContractClassHint, AvmContractDbCommitCheckpointHint, AvmContractDbCreateCheckpointHint, AvmContractDbRevertCheckpointHint, AvmContractInstanceHint, AvmCreateCheckpointHint, AvmDebugFunctionNameHint, AvmGetLeafPreimageHintNullifierTree, AvmGetLeafPreimageHintPublicDataTree, AvmGetLeafValueHint, AvmGetPreviousValueIndexHint, AvmGetSiblingPathHint, AvmRevertCheckpointHint, AvmSequentialInsertHintNullifierTree, AvmSequentialInsertHintPublicDataTree } from '@aztec/stdlib/avm';
5
5
  import { AppendOnlyTreeSnapshot, MerkleTreeId, NullifierLeaf, PublicDataTreeLeaf, getTreeName, merkleTreeIds } from '@aztec/stdlib/trees';
6
6
  import { TreeSnapshots } from '@aztec/stdlib/tx';
7
7
  import { strict as assert } from 'assert';
@@ -10,38 +10,91 @@ import { strict as assert } from 'assert';
10
10
  */ export class HintingPublicContractsDB {
11
11
  db;
12
12
  hints;
13
- // We deduplicate contract classes because they include the whole bytecode.
14
- contractClassIds;
13
+ static log = createLogger('simulator:hinting-public-contracts-db');
14
+ checkpointActionCounter;
15
+ nextCheckpointId;
16
+ checkpointStack;
15
17
  constructor(db, hints){
16
18
  this.db = db;
17
19
  this.hints = hints;
18
- this.contractClassIds = new Set();
20
+ this.checkpointActionCounter = 0;
21
+ this.nextCheckpointId = 1;
22
+ this.checkpointStack = [
23
+ 0
24
+ ];
19
25
  }
20
26
  async getContractInstance(address, timestamp) {
21
27
  const instance = await this.db.getContractInstance(address, timestamp);
22
28
  if (instance) {
23
- // We don't need to hint the block number because it doesn't change.
24
- this.hints.contractInstances.push(new AvmContractInstanceHint(instance.address, instance.salt, instance.deployer, instance.currentContractClassId, instance.originalContractClassId, instance.initializationHash, instance.publicKeys));
29
+ const hintKey = this.getHintKey();
30
+ this.hints.contractInstances.push(new AvmContractInstanceHint(hintKey, instance.address, instance.salt, instance.deployer, instance.currentContractClassId, instance.originalContractClassId, instance.initializationHash, instance.publicKeys));
31
+ HintingPublicContractsDB.log.trace(`[getContractInstance:${hintKey}] Added contract instance ${instance.address.toString()} to hints.`);
25
32
  }
26
33
  return instance;
27
34
  }
28
35
  async getContractClass(contractClassId) {
29
36
  const contractClass = await this.db.getContractClass(contractClassId);
30
- if (contractClass && !this.contractClassIds.has(contractClassId.toBigInt())) {
31
- this.contractClassIds.add(contractClassId.toBigInt());
32
- this.hints.contractClasses.push(new AvmContractClassHint(contractClass.id, contractClass.artifactHash, contractClass.privateFunctionsRoot, contractClass.packedBytecode));
37
+ if (contractClass) {
38
+ const hintKey = this.getHintKey();
39
+ this.hints.contractClasses.push(new AvmContractClassHint(hintKey, contractClass.id, contractClass.artifactHash, contractClass.privateFunctionsRoot, contractClass.packedBytecode));
40
+ HintingPublicContractsDB.log.trace(`[getContractClass:${hintKey}] Added contract class ${contractClassId.toString()} to hints.`);
33
41
  }
34
42
  return contractClass;
35
43
  }
36
44
  async getBytecodeCommitment(contractClassId) {
37
45
  const commitment = await this.db.getBytecodeCommitment(contractClassId);
38
46
  if (commitment) {
39
- this.hints.bytecodeCommitments.push(new AvmBytecodeCommitmentHint(contractClassId, commitment));
47
+ const hintKey = this.getHintKey();
48
+ this.hints.bytecodeCommitments.push(new AvmBytecodeCommitmentHint(hintKey, contractClassId, commitment));
49
+ HintingPublicContractsDB.log.trace(`[getBytecodeCommitment:${hintKey}] Added bytecode commitment ${commitment.toString()} to hints for contract class ${contractClassId.toString()}.`);
40
50
  }
41
51
  return commitment;
42
52
  }
43
53
  async getDebugFunctionName(contractAddress, selector) {
44
- return await this.db.getDebugFunctionName(contractAddress, selector);
54
+ const name = await this.db.getDebugFunctionName(contractAddress, selector);
55
+ if (name) {
56
+ HintingPublicContractsDB.log.debug(`[getDebugFunctionName] Adding debug function name ${name} to hints for contract ${contractAddress.toString()} and selector ${selector.toString()}.`);
57
+ // We hint selector as a field to make things way simpler in C++.
58
+ this.hints.debugFunctionNames.push(new AvmDebugFunctionNameHint(contractAddress, selector.toField(), name));
59
+ }
60
+ return name;
61
+ }
62
+ createCheckpoint() {
63
+ const hintKey = this.getHintKey();
64
+ this.checkpointActionCounter++;
65
+ const oldCheckpointId = this.getCurrentCheckpointId();
66
+ this.db.createCheckpoint();
67
+ const newCheckpointId = this.nextCheckpointId++;
68
+ this.checkpointStack.push(newCheckpointId);
69
+ this.hints.contractDbCreateCheckpointHints.push(new AvmContractDbCreateCheckpointHint(hintKey, oldCheckpointId, newCheckpointId));
70
+ HintingPublicContractsDB.log.trace(`[createCheckpoint:${hintKey}] Checkpoint evolved ${oldCheckpointId} -> ${newCheckpointId}.`);
71
+ }
72
+ commitCheckpoint() {
73
+ const hintKey = this.getHintKey();
74
+ this.checkpointActionCounter++;
75
+ const oldCheckpointId = this.getCurrentCheckpointId();
76
+ this.db.commitCheckpoint();
77
+ this.checkpointStack.pop();
78
+ const newCheckpointId = this.getCurrentCheckpointId();
79
+ this.hints.contractDbCommitCheckpointHints.push(new AvmContractDbCommitCheckpointHint(hintKey, oldCheckpointId, newCheckpointId));
80
+ HintingPublicContractsDB.log.trace(`[commitCheckpoint:${hintKey}] Checkpoint evolved ${oldCheckpointId} -> ${newCheckpointId}.`);
81
+ }
82
+ revertCheckpoint() {
83
+ const hintKey = this.getHintKey();
84
+ this.checkpointActionCounter++;
85
+ const oldCheckpointId = this.getCurrentCheckpointId();
86
+ this.db.revertCheckpoint();
87
+ this.checkpointStack.pop();
88
+ const newCheckpointId = this.getCurrentCheckpointId();
89
+ this.hints.contractDbRevertCheckpointHints.push(new AvmContractDbRevertCheckpointHint(hintKey, oldCheckpointId, newCheckpointId));
90
+ HintingPublicContractsDB.log.trace(`[revertCheckpoint:${hintKey}] Checkpoint evolved ${oldCheckpointId} -> ${newCheckpointId}.`);
91
+ }
92
+ // Private methods.
93
+ getHintKey() {
94
+ return this.checkpointActionCounter;
95
+ }
96
+ getCurrentCheckpointId() {
97
+ return this.checkpointStack[this.checkpointStack.length - 1];
45
98
  }
46
99
  }
47
100
  /**
@@ -282,6 +335,9 @@ import { strict as assert } from 'assert';
282
335
  async close() {
283
336
  return await this.db.close();
284
337
  }
338
+ async [Symbol.dispose]() {
339
+ await this.close();
340
+ }
285
341
  async findLeafIndices(treeId, values) {
286
342
  return await this.db.findLeafIndices(treeId, values);
287
343
  }
@@ -1,6 +1,7 @@
1
1
  export { PublicContractsDB } from './public_db_sources.js';
2
2
  export { GuardedMerkleTreeOperations } from './public_processor/guarded_merkle_tree.js';
3
3
  export { PublicProcessor, PublicProcessorFactory } from './public_processor/public_processor.js';
4
- export { PublicTxSimulator, type PublicTxSimulatorConfig, TelemetryPublicTxSimulator, type PublicTxResult, } from './public_tx_simulator/index.js';
4
+ export { CppPublicTxSimulator, createPublicTxSimulatorForBlockBuilding, DumpingCppPublicTxSimulator, type PublicTxSimulatorInterface, TelemetryCppPublicTxSimulator, } from './public_tx_simulator/index.js';
5
+ export type { PublicTxResult, PublicSimulatorConfig as PublicTxSimulatorConfig } from '@aztec/stdlib/avm';
5
6
  export { getCallRequestsWithCalldataByPhase } from './utils.js';
6
- //# sourceMappingURL=index.d.ts.map
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDeEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pHLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsdUNBQXVDLEVBQ3ZDLDJCQUEyQixFQUMzQixLQUFLLDBCQUEwQixFQUMvQiw2QkFBNkIsR0FDOUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxZQUFZLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixJQUFJLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUcsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sWUFBWSxDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/public/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AACjG,OAAO,EACL,iBAAiB,EACjB,KAAK,uBAAuB,EAC5B,0BAA0B,EAC1B,KAAK,cAAc,GACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/public/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AACjG,OAAO,EACL,oBAAoB,EACpB,uCAAuC,EACvC,2BAA2B,EAC3B,KAAK,0BAA0B,EAC/B,6BAA6B,GAC9B,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,qBAAqB,IAAI,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC1G,OAAO,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export { PublicContractsDB } from './public_db_sources.js';
2
2
  export { GuardedMerkleTreeOperations } from './public_processor/guarded_merkle_tree.js';
3
3
  export { PublicProcessor, PublicProcessorFactory } from './public_processor/public_processor.js';
4
- export { PublicTxSimulator, TelemetryPublicTxSimulator } from './public_tx_simulator/index.js';
4
+ export { CppPublicTxSimulator, createPublicTxSimulatorForBlockBuilding, DumpingCppPublicTxSimulator, TelemetryCppPublicTxSimulator } from './public_tx_simulator/index.js';
5
5
  export { getCallRequestsWithCalldataByPhase } from './utils.js';
@@ -1,7 +1,7 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import type { FunctionSelector } from '@aztec/stdlib/abi';
3
3
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
- import { type ContractClassPublic, type ContractDataSource, type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
4
+ import { type ContractClassPublic, type ContractDataSource, type ContractDeploymentData, type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
5
5
  import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
6
6
  import { MerkleTreeId } from '@aztec/stdlib/trees';
7
7
  import { TreeSnapshots, type Tx } from '@aztec/stdlib/tx';
@@ -9,84 +9,43 @@ import type { UInt64 } from '@aztec/stdlib/types';
9
9
  import type { PublicContractsDBInterface, PublicStateDBInterface } from './db_interfaces.js';
10
10
  /**
11
11
  * Implements the PublicContractsDBInterface using a ContractDataSource.
12
- * Progressively records contracts in transaction as they are processed in a block.
13
- * Separates block-level contract information (from processed/included txs) from the
14
- * current tx's contract information (which may be cleared on tx revert/death).
12
+ * Uses a stack-based checkpoint model for managing contract state.
15
13
  */
16
14
  export declare class PublicContractsDB implements PublicContractsDBInterface {
17
15
  private dataSource;
18
- private currentTxNonRevertibleCache;
19
- private currentTxRevertibleCache;
20
- private blockCache;
21
- private bytecodeCommitmentCache;
16
+ private contractStateStack;
22
17
  private log;
23
18
  constructor(dataSource: ContractDataSource);
24
- /**
25
- * Add new contracts from a transaction
26
- * @param tx - The transaction to add contracts from.
27
- */
19
+ addContracts(contractDeploymentData: ContractDeploymentData): Promise<void>;
28
20
  addNewContracts(tx: Tx): Promise<void>;
29
21
  /**
30
- * Add non revertible contracts from a transaction
31
- * @param tx - The transaction to add non revertible contracts from.
32
- */
33
- addNewNonRevertibleContracts(tx: Tx): Promise<void>;
34
- /**
35
- * Add revertible contracts from a transaction
36
- * @param tx - The transaction to add revertible contracts from.
37
- */
38
- addNewRevertibleContracts(tx: Tx): Promise<void>;
39
- /**
40
- * Add non-revertible contract classes from a transaction
41
- * For private-only txs, this will be all contract classes (found in tx.data.forPublic)
42
- * @param tx - The transaction to add non-revertible contract classes from.
43
- */
44
- private addNonRevertibleContractClasses;
45
- /**
46
- * Add revertible contract classes from a transaction
47
- * None for private-only txs.
48
- * @param tx - The transaction to add revertible contract classes from.
49
- */
50
- private addRevertibleContractClasses;
51
- /**
52
- * Add non-revertible contract instances from a transaction
53
- * For private-only txs, this will be all contract instances (found in tx.data.forRollup)
54
- * @param tx - The transaction to add non-revertible contract instances from.
55
- */
56
- private addNonRevertibleContractInstances;
57
- /**
58
- * Add revertible contract instances from a transaction
59
- * None for private-only txs.
60
- * @param tx - The transaction to add revertible contract instances from.
61
- */
62
- private addRevertibleContractInstances;
63
- /**
64
- * Given a tx's siloed contract class logs, add the contract classes to the cache
65
- * @param siloedContractClassLogs - Contract class logs to process
66
- * @param cache - The cache to store the contract classes in
67
- * @param cacheType - Type of cache (for logging)
22
+ * Creates a new checkpoint, copying the current state for upcoming modifications,
23
+ * and enabling rollbacks to current state in case of a revert.
68
24
  */
69
- private addContractClassesFromLogs;
25
+ createCheckpoint(): void;
70
26
  /**
71
- * Given a tx's contract instance logs, add the contract instances to the cache
72
- * @param contractInstanceLogs - Contract instance logs to process
73
- * @param cache - The cache to store the contract instances in
74
- * @param cacheType - Type of cache (for logging)
27
+ * Commits the current checkpoint, accepting its state latest.
75
28
  */
76
- private addContractInstancesFromLogs;
29
+ commitCheckpoint(): void;
77
30
  /**
78
- * Clear new contracts from the current tx's cache
31
+ * Commits the current checkpoint, not erroring if there is no checkpoint
32
+ * to commit. This is useful to do a sanity commit at the end of tx execution,
33
+ * doing nothing if the checkpoint was already reverted, but truly committing
34
+ * otherwise.
79
35
  */
80
- clearContractsForTx(): void;
36
+ commitCheckpointOkIfNone(): void;
81
37
  /**
82
- * Commits the current transaction's cached contracts to the block-level cache.
83
- * Then, clears the tx cache.
38
+ * Reverts the current checkpoint, discarding its state and rolling back
39
+ * to the state as of the latest checkpoint.
84
40
  */
85
- commitContractsForTx(onlyNonRevertibles?: boolean): void;
41
+ revertCheckpoint(): void;
42
+ private getCurrentState;
86
43
  getContractInstance(address: AztecAddress, timestamp: UInt64): Promise<ContractInstanceWithAddress | undefined>;
87
44
  getContractClass(contractClassId: Fr): Promise<ContractClassPublic | undefined>;
88
45
  getBytecodeCommitment(contractClassId: Fr): Promise<Fr | undefined>;
89
46
  getDebugFunctionName(address: AztecAddress, selector: FunctionSelector): Promise<string | undefined>;
47
+ private addContractClassesFromEvents;
48
+ private addContractInstancesFromEvents;
90
49
  }
91
50
  /**
92
51
  * A high-level class that provides access to the merkle trees.
@@ -117,4 +76,4 @@ export declare class PublicTreesDB implements PublicStateDBInterface {
117
76
  revertCheckpoint(): Promise<void>;
118
77
  getTreeSnapshots(): Promise<TreeSnapshots>;
119
78
  }
120
- //# sourceMappingURL=public_db_sources.d.ts.map
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2RiX3NvdXJjZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvcHVibGljX2RiX3NvdXJjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBS3BELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUVMLEtBQUssbUJBQW1CLEVBQ3hCLEtBQUssa0JBQWtCLEVBQ3ZCLEtBQUssc0JBQXNCLEVBQzNCLEtBQUssMkJBQTJCLEVBRWpDLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRixPQUFPLEVBQ0wsWUFBWSxFQUtiLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBS2xELE9BQU8sS0FBSyxFQUFFLDBCQUEwQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHN0Y7OztHQUdHO0FBQ0gscUJBQWEsaUJBQWtCLFlBQVcsMEJBQTBCO0lBS3RELE9BQU8sQ0FBQyxVQUFVO0lBSjlCLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBMEQ7SUFFcEYsT0FBTyxDQUFDLEdBQUcsQ0FBbUQ7SUFFOUQsWUFBb0IsVUFBVSxFQUFFLGtCQUFrQixFQUFJO0lBRXpDLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxzQkFBc0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBWXZGO0lBRVksZUFBZSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUlsRDtJQUVEOzs7T0FHRztJQUNJLGdCQUFnQixJQUFJLElBQUksQ0FJOUI7SUFFRDs7T0FFRztJQUNJLGdCQUFnQixJQUFJLElBQUksQ0FNOUI7SUFFRDs7Ozs7T0FLRztJQUNJLHdCQUF3QixJQUFJLElBQUksQ0FNdEM7SUFFRDs7O09BR0c7SUFDSSxnQkFBZ0IsSUFBSSxJQUFJLENBSzlCO0lBRUQsT0FBTyxDQUFDLGVBQWU7SUFhVixtQkFBbUIsQ0FDOUIsT0FBTyxFQUFFLFlBQVksRUFDckIsU0FBUyxFQUFFLE1BQU0sR0FDaEIsT0FBTyxDQUFDLDJCQUEyQixHQUFHLFNBQVMsQ0FBQyxDQUdsRDtJQUVZLGdCQUFnQixDQUFDLGVBQWUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQyxDQUczRjtJQUVZLHFCQUFxQixDQUFDLGVBQWUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FxQi9FO0lBRVksb0JBQW9CLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FFaEg7WUFFYSw0QkFBNEI7SUFhMUMsT0FBTyxDQUFDLDhCQUE4QjtDQVd2QztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gscUJBQWEsYUFBYyxZQUFXLHNCQUFzQjtJQUc5QyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7SUFGL0IsT0FBTyxDQUFDLE1BQU0sQ0FBNkM7SUFFM0QsWUFBNkIsRUFBRSxFQUFFLHlCQUF5QixFQUFJO0lBRWpELFdBQVcsQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQXlCdEU7SUFFWSxZQUFZLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVd2RjtJQUVZLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQWdCOUQ7SUFFWSxXQUFXLENBQUMsU0FBUyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLENBZ0J2RDtJQUVZLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FTdEQ7SUFFWSxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FrQmpFO0lBRVksY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVM5RDtJQUVZLE9BQU8sQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWlDaEY7SUFFWSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBRTdDO0lBRVksZ0JBQWdCLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUU3QztJQUVZLGdCQUFnQixJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFN0M7SUFFWSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLENBUXREO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"public_db_sources.d.ts","sourceRoot":"","sources":["../../src/public/public_db_sources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public_db_sources.d.ts","sourceRoot":"","sources":["../../src/public/public_db_sources.ts"],"names":[],"mappings":"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"}