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

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,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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"}
@@ -1,147 +1,81 @@
1
1
  import { L1_TO_L2_MSG_TREE_LEAF_COUNT, NOTE_HASH_TREE_LEAF_COUNT, NULLIFIER_SUBTREE_HEIGHT, PUBLIC_DATA_SUBTREE_HEIGHT } from '@aztec/constants';
2
- import { Fr } from '@aztec/foundation/fields';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { createLogger } from '@aztec/foundation/log';
4
4
  import { Timer } from '@aztec/foundation/timer';
5
5
  import { ContractClassPublishedEvent } from '@aztec/protocol-contracts/class-registry';
6
6
  import { ContractInstancePublishedEvent } from '@aztec/protocol-contracts/instance-registry';
7
7
  import { PublicDataWrite } from '@aztec/stdlib/avm';
8
- import { computePublicBytecodeCommitment } from '@aztec/stdlib/contract';
8
+ import { AllContractDeploymentData, computePublicBytecodeCommitment } from '@aztec/stdlib/contract';
9
9
  import { computePublicDataTreeLeafSlot } from '@aztec/stdlib/hash';
10
10
  import { MerkleTreeId, NullifierLeaf, PublicDataTreeLeaf, getTreeName } from '@aztec/stdlib/trees';
11
11
  import { TreeSnapshots } from '@aztec/stdlib/tx';
12
12
  import { strict as assert } from 'assert';
13
+ import { ContractsDbCheckpoint } from './contracts_db_checkpoint.js';
13
14
  import { L1ToL2MessageIndexOutOfRangeError, NoteHashIndexOutOfRangeError } from './side_effect_errors.js';
14
- import { TxContractCache } from './tx_contract_cache.js';
15
15
  /**
16
16
  * Implements the PublicContractsDBInterface using a ContractDataSource.
17
- * Progressively records contracts in transaction as they are processed in a block.
18
- * Separates block-level contract information (from processed/included txs) from the
19
- * current tx's contract information (which may be cleared on tx revert/death).
17
+ * Uses a stack-based checkpoint model for managing contract state.
20
18
  */ export class PublicContractsDB {
21
19
  dataSource;
22
- // Two caching layers for contract classes and instances.
23
- // Tx-level cache:
24
- // - The current tx's new contract information is cached
25
- // in currentTxNonRevertibleCache and currentTxRevertibleCache.
26
- // Block-level cache:
27
- // - Contract information from earlier in the block, usable by later txs.
28
- // When a tx succeeds, that tx's caches are merged into the block cache and cleared.
29
- currentTxNonRevertibleCache;
30
- currentTxRevertibleCache;
31
- blockCache;
32
- // Separate flat cache for bytecode commitments.
33
- bytecodeCommitmentCache;
20
+ contractStateStack;
34
21
  log;
35
22
  constructor(dataSource){
36
23
  this.dataSource = dataSource;
37
- this.currentTxNonRevertibleCache = new TxContractCache();
38
- this.currentTxRevertibleCache = new TxContractCache();
39
- this.blockCache = new TxContractCache();
40
- this.bytecodeCommitmentCache = new Map();
24
+ this.contractStateStack = [
25
+ new ContractsDbCheckpoint()
26
+ ];
41
27
  this.log = createLogger('simulator:contracts-data-source');
42
28
  }
43
- /**
44
- * Add new contracts from a transaction
45
- * @param tx - The transaction to add contracts from.
46
- */ async addNewContracts(tx) {
47
- await this.addNonRevertibleContractClasses(tx);
48
- await this.addRevertibleContractClasses(tx);
49
- this.addNonRevertibleContractInstances(tx);
50
- this.addRevertibleContractInstances(tx);
51
- }
52
- /**
53
- * Add non revertible contracts from a transaction
54
- * @param tx - The transaction to add non revertible contracts from.
55
- */ async addNewNonRevertibleContracts(tx) {
56
- await this.addNonRevertibleContractClasses(tx);
57
- this.addNonRevertibleContractInstances(tx);
58
- }
59
- /**
60
- * Add revertible contracts from a transaction
61
- * @param tx - The transaction to add revertible contracts from.
62
- */ async addNewRevertibleContracts(tx) {
63
- await this.addRevertibleContractClasses(tx);
64
- this.addRevertibleContractInstances(tx);
65
- }
66
- /**
67
- * Add non-revertible contract classes from a transaction
68
- * For private-only txs, this will be all contract classes (found in tx.data.forPublic)
69
- * @param tx - The transaction to add non-revertible contract classes from.
70
- */ async addNonRevertibleContractClasses(tx) {
71
- const siloedContractClassLogs = tx.data.forPublic ? tx.getSplitContractClassLogs(false) : tx.getContractClassLogs();
72
- await this.addContractClassesFromLogs(siloedContractClassLogs, this.currentTxNonRevertibleCache, 'non-revertible');
29
+ async addContracts(contractDeploymentData) {
30
+ const currentState = this.getCurrentState();
31
+ await this.addContractClassesFromEvents(ContractClassPublishedEvent.extractContractClassEvents(contractDeploymentData.getContractClassLogs()), currentState);
32
+ this.addContractInstancesFromEvents(ContractInstancePublishedEvent.extractContractInstanceEvents(contractDeploymentData.getPrivateLogs()), currentState);
73
33
  }
74
- /**
75
- * Add revertible contract classes from a transaction
76
- * None for private-only txs.
77
- * @param tx - The transaction to add revertible contract classes from.
78
- */ async addRevertibleContractClasses(tx) {
79
- const siloedContractClassLogs = tx.data.forPublic ? tx.getSplitContractClassLogs(true) : [];
80
- await this.addContractClassesFromLogs(siloedContractClassLogs, this.currentTxRevertibleCache, 'revertible');
81
- }
82
- /**
83
- * Add non-revertible contract instances from a transaction
84
- * For private-only txs, this will be all contract instances (found in tx.data.forRollup)
85
- * @param tx - The transaction to add non-revertible contract instances from.
86
- */ addNonRevertibleContractInstances(tx) {
87
- const contractInstanceLogs = tx.data.forPublic ? tx.data.forPublic.nonRevertibleAccumulatedData.privateLogs.filter((l)=>!l.isEmpty()) : tx.data.forRollup.end.privateLogs.filter((l)=>!l.isEmpty());
88
- this.addContractInstancesFromLogs(contractInstanceLogs, this.currentTxNonRevertibleCache, 'non-revertible');
34
+ async addNewContracts(tx) {
35
+ const contractDeploymentData = AllContractDeploymentData.fromTx(tx);
36
+ await this.addContracts(contractDeploymentData.getNonRevertibleContractDeploymentData());
37
+ await this.addContracts(contractDeploymentData.getRevertibleContractDeploymentData());
89
38
  }
90
39
  /**
91
- * Add revertible contract instances from a transaction
92
- * None for private-only txs.
93
- * @param tx - The transaction to add revertible contract instances from.
94
- */ addRevertibleContractInstances(tx) {
95
- const contractInstanceLogs = tx.data.forPublic ? tx.data.forPublic.revertibleAccumulatedData.privateLogs.filter((l)=>!l.isEmpty()) : [];
96
- this.addContractInstancesFromLogs(contractInstanceLogs, this.currentTxRevertibleCache, 'revertible');
97
- }
98
- /**
99
- * Given a tx's siloed contract class logs, add the contract classes to the cache
100
- * @param siloedContractClassLogs - Contract class logs to process
101
- * @param cache - The cache to store the contract classes in
102
- * @param cacheType - Type of cache (for logging)
103
- */ async addContractClassesFromLogs(siloedContractClassLogs, cache, cacheType) {
104
- const contractClassEvents = siloedContractClassLogs.filter((log)=>ContractClassPublishedEvent.isContractClassPublishedEvent(log)).map((log)=>ContractClassPublishedEvent.fromLog(log));
105
- // Cache contract classes
106
- await Promise.all(contractClassEvents.map(async (event)=>{
107
- this.log.debug(`Adding class ${event.contractClassId.toString()} to contract's ${cacheType} tx cache`);
108
- const contractClass = await event.toContractClassPublic();
109
- cache.addClass(event.contractClassId, contractClass);
110
- }));
40
+ * Creates a new checkpoint, copying the current state for upcoming modifications,
41
+ * and enabling rollbacks to current state in case of a revert.
42
+ */ createCheckpoint() {
43
+ const currentState = this.getCurrentState();
44
+ const newState = currentState.deepCopy();
45
+ this.contractStateStack.push(newState);
111
46
  }
112
47
  /**
113
- * Given a tx's contract instance logs, add the contract instances to the cache
114
- * @param contractInstanceLogs - Contract instance logs to process
115
- * @param cache - The cache to store the contract instances in
116
- * @param cacheType - Type of cache (for logging)
117
- */ addContractInstancesFromLogs(contractInstanceLogs, cache, cacheType) {
118
- const contractInstanceEvents = contractInstanceLogs.filter((log)=>ContractInstancePublishedEvent.isContractInstancePublishedEvent(log)).map((log)=>ContractInstancePublishedEvent.fromLog(log));
119
- // Cache contract instances
120
- contractInstanceEvents.forEach((e)=>{
121
- this.log.debug(`Adding instance ${e.address.toString()} with class ${e.contractClassId.toString()} to ${cacheType} tx contract cache`);
122
- cache.addInstance(e.address, e.toContractInstance());
123
- });
48
+ * Commits the current checkpoint, accepting its state latest.
49
+ */ commitCheckpoint() {
50
+ if (this.contractStateStack.length <= 1) {
51
+ throw new Error('No checkpoint to commit');
52
+ }
53
+ const topState = this.contractStateStack.pop();
54
+ this.contractStateStack[this.contractStateStack.length - 1] = topState;
124
55
  }
125
56
  /**
126
- * Clear new contracts from the current tx's cache
127
- */ clearContractsForTx() {
128
- this.currentTxRevertibleCache.clear();
129
- this.currentTxRevertibleCache.clear();
130
- this.currentTxNonRevertibleCache.clear();
57
+ * Commits the current checkpoint, not erroring if there is no checkpoint
58
+ * to commit. This is useful to do a sanity commit at the end of tx execution,
59
+ * doing nothing if the checkpoint was already reverted, but truly committing
60
+ * otherwise.
61
+ */ commitCheckpointOkIfNone() {
62
+ if (this.contractStateStack.length <= 1) {
63
+ return;
64
+ }
65
+ const topState = this.contractStateStack.pop();
66
+ this.contractStateStack[this.contractStateStack.length - 1] = topState;
131
67
  }
132
68
  /**
133
- * Commits the current transaction's cached contracts to the block-level cache.
134
- * Then, clears the tx cache.
135
- */ commitContractsForTx(onlyNonRevertibles = false) {
136
- // Merge non-revertible tx cache into block cache
137
- this.blockCache.mergeFrom(this.currentTxNonRevertibleCache);
138
- if (!onlyNonRevertibles) {
139
- // Merge revertible tx cache into block cache
140
- this.blockCache.mergeFrom(this.currentTxRevertibleCache);
69
+ * Reverts the current checkpoint, discarding its state and rolling back
70
+ * to the state as of the latest checkpoint.
71
+ */ revertCheckpoint() {
72
+ if (this.contractStateStack.length <= 1) {
73
+ throw new Error('No checkpoint to revert');
141
74
  }
142
- // Clear the tx's caches
143
- this.currentTxNonRevertibleCache.clear();
144
- this.currentTxRevertibleCache.clear();
75
+ this.contractStateStack.pop();
76
+ }
77
+ getCurrentState() {
78
+ return this.contractStateStack[this.contractStateStack.length - 1];
145
79
  }
146
80
  // TODO(fcarreiro/alvaro): This method currently needs a blockNumber. Since this class
147
81
  // is only ever used for a given block, it should be possible to construct it with the
@@ -153,38 +87,47 @@ import { TxContractCache } from './tx_contract_cache.js';
153
87
  // Note: Block number got changed to timestamp so this comment ^ is outdated. Keeping
154
88
  // the comment as is as I am not part of the AVM cabal.
155
89
  async getContractInstance(address, timestamp) {
156
- // Check caches in order: tx revertible -> tx non-revertible -> block -> data source
157
- return this.currentTxRevertibleCache.getInstance(address) ?? this.currentTxNonRevertibleCache.getInstance(address) ?? this.blockCache.getInstance(address) ?? await this.dataSource.getContract(address, timestamp);
90
+ const currentState = this.getCurrentState();
91
+ return currentState.getInstance(address) ?? await this.dataSource.getContract(address, timestamp);
158
92
  }
159
93
  async getContractClass(contractClassId) {
160
- // Check caches in order: tx revertible -> tx non-revertible -> block -> data source
161
- return this.currentTxRevertibleCache.getClass(contractClassId) ?? this.currentTxNonRevertibleCache.getClass(contractClassId) ?? this.blockCache.getClass(contractClassId) ?? await this.dataSource.getContractClass(contractClassId);
94
+ const currentState = this.getCurrentState();
95
+ return currentState.getClass(contractClassId) ?? await this.dataSource.getContractClass(contractClassId);
162
96
  }
163
97
  async getBytecodeCommitment(contractClassId) {
164
- // Try and retrieve from cache
165
- const key = contractClassId.toString();
166
- const result = this.bytecodeCommitmentCache.get(key);
167
- if (result !== undefined) {
168
- return result;
169
- }
170
- // Now try from the store
171
- const fromStore = await this.dataSource.getBytecodeCommitment(contractClassId);
172
- if (fromStore !== undefined) {
173
- this.bytecodeCommitmentCache.set(key, fromStore);
174
- return fromStore;
98
+ const currentState = this.getCurrentState();
99
+ const commitment = currentState.getBytecodeCommitment(contractClassId) ?? await this.dataSource.getBytecodeCommitment(contractClassId);
100
+ if (commitment !== undefined) {
101
+ return commitment;
175
102
  }
176
- // Not in either the store or the cache, build it here and cache
103
+ // Not in the current state or the store, compute it here
104
+ // Get the contract class
177
105
  const contractClass = await this.getContractClass(contractClassId);
178
106
  if (contractClass === undefined) {
107
+ // cannot compute bytecode commitment if contract class is not found
179
108
  return undefined;
180
109
  }
181
110
  const value = await computePublicBytecodeCommitment(contractClass.packedBytecode);
182
- this.bytecodeCommitmentCache.set(key, value);
111
+ // Add to cache (current checkpoint state) so we don't compute again
112
+ currentState.addBytecodeCommitment(contractClassId, value);
183
113
  return value;
184
114
  }
185
115
  async getDebugFunctionName(address, selector) {
186
116
  return await this.dataSource.getDebugFunctionName(address, selector);
187
117
  }
118
+ async addContractClassesFromEvents(contractClassEvents, state) {
119
+ await Promise.all(contractClassEvents.map(async (event)=>{
120
+ this.log.debug(`Adding class ${event.contractClassId.toString()} to contract state`);
121
+ const contractClass = await event.toContractClassPublic();
122
+ state.addClass(event.contractClassId, contractClass);
123
+ }));
124
+ }
125
+ addContractInstancesFromEvents(contractInstanceEvents, state) {
126
+ contractInstanceEvents.forEach((e)=>{
127
+ this.log.debug(`Adding instance ${e.address.toString()} with class ${e.contractClassId.toString()} to contract state`);
128
+ state.addInstance(e.address, e.toContractInstance());
129
+ });
130
+ }
188
131
  }
189
132
  /**
190
133
  * A high-level class that provides access to the merkle trees.
@@ -9,4 +9,4 @@
9
9
  export declare abstract class CheckedPublicExecutionError extends Error {
10
10
  constructor(message: string);
11
11
  }
12
- //# sourceMappingURL=public_errors.d.ts.map
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2Vycm9ycy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy9wdWJsaWNfZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFDSCw4QkFBc0IsMkJBQTRCLFNBQVEsS0FBSztJQUM3RCxZQUFZLE9BQU8sRUFBRSxNQUFNLEVBRzFCO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"public_errors.d.ts","sourceRoot":"","sources":["../../src/public/public_errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,8BAAsB,2BAA4B,SAAQ,KAAK;gBACjD,OAAO,EAAE,MAAM;CAI5B"}
1
+ {"version":3,"file":"public_errors.d.ts","sourceRoot":"","sources":["../../src/public/public_errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,8BAAsB,2BAA4B,SAAQ,KAAK;IAC7D,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF"}
@@ -1,7 +1,8 @@
1
+ import type { BlockNumber } from '@aztec/foundation/branded-types';
1
2
  import type { IndexedTreeLeafPreimage, SiblingPath } from '@aztec/foundation/trees';
2
3
  import type { BatchInsertionResult, IndexedTreeId, MerkleTreeId, MerkleTreeLeafType, MerkleTreeWriteOperations, SequentialInsertionResult, TreeHeights, TreeInfo } from '@aztec/stdlib/trees';
3
4
  import type { BlockHeader, StateReference } from '@aztec/stdlib/tx';
4
- import type { WorldStateRevision } from '@aztec/stdlib/world-state';
5
+ import type { WorldStateRevision, WorldStateRevisionWithHandle } from '@aztec/stdlib/world-state';
5
6
  /**
6
7
  * Wraps an instance of `MerkleTreeWriteOperations` to allow the sequencer to gate access.
7
8
  * If transactions execution goes past the deadline, the simulator will continue to execute and update the world state
@@ -22,10 +23,11 @@ export declare class GuardedMerkleTreeOperations implements MerkleTreeWriteOpera
22
23
  batchInsert<TreeHeight extends number, SubtreeSiblingPathHeight extends number, ID extends IndexedTreeId>(treeId: ID, leaves: Buffer[], subtreeHeight: number): Promise<BatchInsertionResult<TreeHeight, SubtreeSiblingPathHeight>>;
23
24
  sequentialInsert<TreeHeight extends number, ID extends IndexedTreeId>(treeId: ID, leaves: Buffer[]): Promise<SequentialInsertionResult<TreeHeight>>;
24
25
  close(): Promise<void>;
26
+ [Symbol.dispose](): Promise<void>;
25
27
  getTreeInfo(treeId: MerkleTreeId): Promise<TreeInfo>;
26
28
  getStateReference(): Promise<StateReference>;
27
29
  getInitialHeader(): BlockHeader;
28
- getRevision(): WorldStateRevision;
30
+ getRevision(): WorldStateRevision | WorldStateRevisionWithHandle;
29
31
  getSiblingPath<ID extends MerkleTreeId>(treeId: ID, index: bigint): Promise<SiblingPath<TreeHeights[ID]>>;
30
32
  getPreviousValueIndex<ID extends IndexedTreeId>(treeId: ID, value: bigint): Promise<{
31
33
  index: bigint;
@@ -35,7 +37,7 @@ export declare class GuardedMerkleTreeOperations implements MerkleTreeWriteOpera
35
37
  findLeafIndices<ID extends MerkleTreeId>(treeId: ID, values: MerkleTreeLeafType<ID>[]): Promise<(bigint | undefined)[]>;
36
38
  findLeafIndicesAfter<ID extends MerkleTreeId>(treeId: ID, values: MerkleTreeLeafType<ID>[], startIndex: bigint): Promise<(bigint | undefined)[]>;
37
39
  getLeafValue<ID extends MerkleTreeId>(treeId: ID, index: bigint): Promise<MerkleTreeLeafType<typeof treeId> | undefined>;
38
- getBlockNumbersForLeafIndices<ID extends MerkleTreeId>(treeId: ID, leafIndices: bigint[]): Promise<(bigint | undefined)[]>;
40
+ getBlockNumbersForLeafIndices<ID extends MerkleTreeId>(treeId: ID, leafIndices: bigint[]): Promise<(BlockNumber | undefined)[]>;
39
41
  createCheckpoint(): Promise<void>;
40
42
  commitCheckpoint(): Promise<void>;
41
43
  revertCheckpoint(): Promise<void>;
@@ -46,4 +48,4 @@ export declare class GuardedMerkleTreeOperations implements MerkleTreeWriteOpera
46
48
  index: bigint;
47
49
  } | undefined)[]>;
48
50
  }
49
- //# sourceMappingURL=guarded_merkle_tree.d.ts.map
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VhcmRlZF9tZXJrbGVfdHJlZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9wdWJsaWNfcHJvY2Vzc29yL2d1YXJkZWRfbWVya2xlX3RyZWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbkUsT0FBTyxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEYsT0FBTyxLQUFLLEVBQ1Ysb0JBQW9CLEVBQ3BCLGFBQWEsRUFDYixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsV0FBVyxFQUNYLFFBQVEsRUFDVCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWxHOzs7OztHQUtHO0FBRUgscUJBQWEsMkJBQTRCLFlBQVcseUJBQXlCO0lBSS9ELE9BQU8sQ0FBQyxNQUFNO0lBSDFCLE9BQU8sQ0FBQyxTQUFTLENBQVM7SUFDMUIsT0FBTyxDQUFDLFdBQVcsQ0FBcUI7SUFFeEMsWUFBb0IsTUFBTSxFQUFFLHlCQUF5QixFQUVwRDtJQUVELE9BQU8sQ0FBQyxLQUFLO0lBT2IsT0FBTyxDQUFDLFlBQVk7SUFRYixpQkFBaUIsSUFBSSx5QkFBeUIsQ0FFcEQ7SUFHSyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQU0xQjtJQUdELFlBQVksQ0FBQyxFQUFFLFNBQVMsWUFBWSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxD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
@@ -1 +1 @@
1
- {"version":3,"file":"guarded_merkle_tree.d.ts","sourceRoot":"","sources":["../../../src/public/public_processor/guarded_merkle_tree.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,EACzB,WAAW,EACX,QAAQ,EACT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE;;;;;GAKG;AAEH,qBAAa,2BAA4B,YAAW,yBAAyB;IAI/D,OAAO,CAAC,MAAM;IAH1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAqB;gBAEpB,MAAM,EAAE,yBAAyB;IAIrD,OAAO,CAAC,KAAK;IAOb,OAAO,CAAC,YAAY;IAQb,iBAAiB,IAAI,yBAAyB;IAK/C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B,YAAY,CAAC,EAAE,SAAS,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlG,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAGjD,WAAW,CAAC,UAAU,SAAS,MAAM,EAAE,wBAAwB,SAAS,MAAM,EAAE,EAAE,SAAS,aAAa,EACtG,MAAM,EAAE,EAAE,EACV,MAAM,EAAE,MAAM,EAAE,EAChB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,oBAAoB,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;IAGtE,gBAAgB,CAAC,UAAU,SAAS,MAAM,EAAE,EAAE,SAAS,aAAa,EAClE,MAAM,EAAE,EAAE,EACV,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAGjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAGtB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;IAGpD,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAG5C,gBAAgB,IAAI,WAAW;IAGxB,WAAW,IAAI,kBAAkB;IAGxC,cAAc,CAAC,EAAE,SAAS,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAGzG,qBAAqB,CAAC,EAAE,SAAS,aAAa,EAC5C,MAAM,EAAE,EAAE,EACV,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;IAGlE,eAAe,CAAC,EAAE,SAAS,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAGlH,eAAe,CAAC,EAAE,SAAS,YAAY,EACrC,MAAM,EAAE,EAAE,EACV,MAAM,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAAE,GAC/B,OAAO,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAGlC,oBAAoB,CAAC,EAAE,SAAS,YAAY,EAC1C,MAAM,EAAE,EAAE,EACV,MAAM,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAChC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAGlC,YAAY,CAAC,EAAE,SAAS,YAAY,EAClC,MAAM,EAAE,EAAE,EACV,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,CAAC,OAAO,MAAM,CAAC,GAAG,SAAS,CAAC;IAGzD,6BAA6B,CAAC,EAAE,SAAS,YAAY,EACnD,MAAM,EAAE,EAAE,EACV,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAGlC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAGjC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAGjC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAGjC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAGrC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAGrC,gBAAgB,CAAC,EAAE,SAAS,YAAY,EACtC,MAAM,EAAE,EAAE,EACV,MAAM,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAAE,GAC/B,OAAO,CAAC,CAAC;QAAE,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,EAAE,CAAC;CAGlF"}
1
+ {"version":3,"file":"guarded_merkle_tree.d.ts","sourceRoot":"","sources":["../../../src/public/public_processor/guarded_merkle_tree.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
+ var _computedKey;
1
2
  import { SerialQueue } from '@aztec/foundation/queue';
3
+ _computedKey = Symbol.dispose;
2
4
  /**
3
5
  * Wraps an instance of `MerkleTreeWriteOperations` to allow the sequencer to gate access.
4
6
  * If transactions execution goes past the deadline, the simulator will continue to execute and update the world state
@@ -54,6 +56,9 @@ import { SerialQueue } from '@aztec/foundation/queue';
54
56
  close() {
55
57
  return this.guardAndPush(()=>this.target.close());
56
58
  }
59
+ async [_computedKey]() {
60
+ await this.close();
61
+ }
57
62
  getTreeInfo(treeId) {
58
63
  return this.guardAndPush(()=>this.target.getTreeInfo(treeId));
59
64
  }
@@ -1,11 +1,11 @@
1
- import { Fr } from '@aztec/foundation/fields';
2
1
  import { DateProvider } from '@aztec/foundation/timer';
2
+ import { PublicSimulatorConfig } from '@aztec/stdlib/avm';
3
3
  import type { ContractDataSource } from '@aztec/stdlib/contract';
4
4
  import type { MerkleTreeWriteOperations, PublicProcessorLimits, PublicProcessorValidator, SequencerConfig } from '@aztec/stdlib/interfaces/server';
5
5
  import { type FailedTx, GlobalVariables, NestedProcessReturnValues, type ProcessedTx, Tx } from '@aztec/stdlib/tx';
6
6
  import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
7
7
  import { PublicContractsDB } from '../public_db_sources.js';
8
- import { type PublicTxSimulator, type PublicTxSimulatorConfig } from '../public_tx_simulator/index.js';
8
+ import { type PublicTxSimulatorConfig, type PublicTxSimulatorInterface } from '../public_tx_simulator/index.js';
9
9
  import { GuardedMerkleTreeOperations } from './guarded_merkle_tree.js';
10
10
  /**
11
11
  * Creates new instances of PublicProcessor given the provided merkle tree db and contract data source.
@@ -21,13 +21,8 @@ export declare class PublicProcessorFactory {
21
21
  * @param skipFeeEnforcement - Allows disabling balance checks for fee estimations.
22
22
  * @returns A new instance of a PublicProcessor.
23
23
  */
24
- create(merkleTree: MerkleTreeWriteOperations, globalVariables: GlobalVariables, config: {
25
- skipFeeEnforcement: boolean;
26
- clientInitiatedSimulation: boolean;
27
- proverId?: Fr;
28
- maxDebugLogMemoryReads?: number;
29
- }): PublicProcessor;
30
- protected createPublicTxSimulator(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, config?: Partial<PublicTxSimulatorConfig>): PublicTxSimulator;
24
+ create(merkleTree: MerkleTreeWriteOperations, globalVariables: GlobalVariables, config: PublicSimulatorConfig): PublicProcessor;
25
+ protected createPublicTxSimulator(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, config?: Partial<PublicTxSimulatorConfig>): PublicTxSimulatorInterface;
31
26
  }
32
27
  /**
33
28
  * Converts Txs lifted from the P2P module into ProcessedTx objects by executing
@@ -37,12 +32,12 @@ export declare class PublicProcessor implements Traceable {
37
32
  protected globalVariables: GlobalVariables;
38
33
  private guardedMerkleTree;
39
34
  protected contractsDB: PublicContractsDB;
40
- protected publicTxSimulator: PublicTxSimulator;
35
+ protected publicTxSimulator: PublicTxSimulatorInterface;
41
36
  private dateProvider;
42
37
  private log;
43
38
  private opts;
44
39
  private metrics;
45
- constructor(globalVariables: GlobalVariables, guardedMerkleTree: GuardedMerkleTreeOperations, contractsDB: PublicContractsDB, publicTxSimulator: PublicTxSimulator, dateProvider: DateProvider, telemetryClient?: TelemetryClient, log?: import("@aztec/foundation/log").Logger, opts?: Pick<SequencerConfig, 'fakeProcessingDelayPerTxMs'>);
40
+ constructor(globalVariables: GlobalVariables, guardedMerkleTree: GuardedMerkleTreeOperations, contractsDB: PublicContractsDB, publicTxSimulator: PublicTxSimulatorInterface, dateProvider: DateProvider, telemetryClient?: TelemetryClient, log?: import("@aztec/foundation/log").Logger, opts?: Pick<SequencerConfig, 'fakeProcessingDelayPerTxMs' | 'fakeThrowAfterProcessingTxCount'>);
46
41
  get tracer(): Tracer;
47
42
  /**
48
43
  * Run each tx through the public circuit and the public kernel circuit if needed.
@@ -51,19 +46,17 @@ export declare class PublicProcessor implements Traceable {
51
46
  * @param validator - Pre-process validator and nullifier cache to use for processing the txs.
52
47
  * @returns The list of processed txs with their circuit simulation outputs.
53
48
  */
54
- process(txs: Iterable<Tx> | AsyncIterable<Tx>, limits?: PublicProcessorLimits, validator?: PublicProcessorValidator): Promise<[ProcessedTx[], FailedTx[], Tx[], NestedProcessReturnValues[]]>;
49
+ process(txs: Iterable<Tx> | AsyncIterable<Tx>, limits?: PublicProcessorLimits, validator?: PublicProcessorValidator): Promise<[ProcessedTx[], FailedTx[], Tx[], NestedProcessReturnValues[], number]>;
55
50
  private checkWorldStateUnchanged;
56
51
  private processTx;
57
52
  private doTreeInsertionsForPrivateOnlyTx;
58
- /** Processes the given tx within deadline. Returns timeout if deadline is hit. */
59
53
  private processTxWithinDeadline;
60
- /**
61
- * Creates the public data write for paying the tx fee.
62
- * This is used in private only txs, since for txs with public calls
63
- * the avm handles the fee payment itself.
64
- */
65
54
  private performFeePaymentPublicDataWrite;
66
55
  private processPrivateOnlyTx;
67
56
  private processTxWithPublicCalls;
57
+ /**
58
+ * Generate the proving request for the AVM circuit.
59
+ */
60
+ private static generateProvingRequest;
68
61
  }
69
- //# sourceMappingURL=public_processor.d.ts.map
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9wdWJsaWNfcHJvY2Vzc29yL3B1YmxpY19wcm9jZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLFlBQVksRUFBa0MsTUFBTSx5QkFBeUIsQ0FBQztBQUl2RixPQUFPLEVBTUwscUJBQXFCLEVBQ3RCLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUdqRSxPQUFPLEtBQUssRUFDVix5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLHdCQUF3QixFQUN4QixlQUFlLEVBQ2hCLE1BQU0saUNBQWlDLENBQUM7QUFHekMsT0FBTyxFQUNMLEtBQUssUUFBUSxFQUNiLGVBQWUsRUFDZix5QkFBeUIsRUFDekIsS0FBSyxXQUFXLEVBRWhCLEVBQUUsRUFHSCxNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFFTCxLQUFLLGVBQWUsRUFDcEIsS0FBSyxTQUFTLEVBQ2QsS0FBSyxNQUFNLEVBR1osTUFBTSx5QkFBeUIsQ0FBQztBQUtqQyxPQUFPLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0seUJBQXlCLENBQUM7QUFDM0UsT0FBTyxFQUNMLEtBQUssdUJBQXVCLEVBQzVCLEtBQUssMEJBQTBCLEVBRWhDLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHdkU7O0dBRUc7QUFDSCxxQkFBYSxzQkFBc0I7SUFFL0IsT0FBTyxDQUFDLGtCQUFrQjtJQUMxQixPQUFPLENBQUMsWUFBWTtJQUNwQixTQUFTLENBQUMsZUFBZSxFQUFFLGVBQWU7SUFINUMsWUFDVSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFDdEMsWUFBWSxHQUFFLFlBQWlDLEVBQzdDLGVBQWUsR0FBRSxlQUFzQyxFQUMvRDtJQUVKOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUNYLFVBQVUsRUFBRSx5QkFBeUIsRUFDckMsZUFBZSxFQUFFLGVBQWUsRUFDaEMsTUFBTSxFQUFFLHFCQUFxQixHQUM1QixlQUFlLENBY2pCO0lBRUQsU0FBUyxDQUFDLHVCQUF1QixDQUMvQixVQUFVLEVBQUUseUJBQXlCLEVBQ3JDLFdBQVcsRUFBRSxpQkFBaUIsRUFDOUIsZUFBZSxFQUFFLGVBQWUsRUFDaEMsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLHVCQUF1QixDQUFDLEdBQ3hDLDBCQUEwQixDQUU1QjtDQUNGO0FBU0Q7OztHQUdHO0FBQ0gscUJBQWEsZUFBZ0IsWUFBVyxTQUFTO0lBSTdDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsZUFBZTtJQUMxQyxPQUFPLENBQUMsaUJBQWlCO0lBQ3pCLFNBQVMsQ0FBQyxXQUFXLEVBQUUsaUJBQWlCO0lBQ3hDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSwwQkFBMEI7SUFDdkQsT0FBTyxDQUFDLFlBQVk7SUFFcEIsT0FBTyxDQUFDLEdBQUc7SUFDWCxPQUFPLENBQUMsSUFBSTtJQVZkLE9BQU8sQ0FBQyxPQUFPLENBQXlCO0lBRXhDLFlBQ1ksZUFBZSxFQUFFLGVBQWUsRUFDbEMsaUJBQWlCLEVBQUUsMkJBQTJCLEVBQzVDLFdBQVcsRUFBRSxpQkFBaUIsRUFDOUIsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQy9DLFlBQVksRUFBRSxZQUFZLEVBQ2xDLGVBQWUsR0FBRSxlQUFzQyxFQUMvQyxHQUFHLHlDQUE2QyxFQUNoRCxJQUFJLEdBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSw0QkFBNEIsR0FBRyxpQ0FBaUMsQ0FBTSxFQUczRztJQUVELElBQUksTUFBTSxJQUFJLE1BQU0sQ0FFbkI7SUFFRDs7Ozs7O09BTUc7SUFDVSxPQUFPLENBQ2xCLEdBQUcsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsYUFBYSxDQUFDLEVBQUUsQ0FBQyxFQUNyQyxNQUFNLEdBQUUscUJBQTBCLEVBQ2xDLFNBQVMsR0FBRSx3QkFBNkIsR0FDdkMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUseUJBQXlCLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQTZNakY7WUFFYSx3QkFBd0I7WUFpQnhCLFNBQVM7WUEyQlQsZ0NBQWdDO1lBNEJoQyx1QkFBdUI7WUFnRHZCLGdDQUFnQztZQTBCaEMsb0JBQW9CO1lBK0JwQix3QkFBd0I7SUF5Q3RDOztPQUVHO0lBQ0gsT0FBTyxDQUFDLE1BQU0sQ0FBQyxzQkFBc0I7Q0FTdEMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"public_processor.d.ts","sourceRoot":"","sources":["../../../src/public/public_processor/public_processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAkC,MAAM,yBAAyB,CAAC;AAMvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGjE,OAAO,KAAK,EACV,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,eAAe,EAChB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,KAAK,QAAQ,EACb,eAAe,EACf,yBAAyB,EACzB,KAAK,WAAW,EAEhB,EAAE,EAIH,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EAAE,iBAAiB,EAAiB,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAE7B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAGvE;;GAEG;AACH,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,YAAY;IACpB,SAAS,CAAC,eAAe,EAAE,eAAe;gBAFlC,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,GAAE,YAAiC,EAC7C,eAAe,GAAE,eAAsC;IAGnE;;;;;OAKG;IACI,MAAM,CACX,UAAU,EAAE,yBAAyB,EACrC,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE;QACN,kBAAkB,EAAE,OAAO,CAAC;QAC5B,yBAAyB,EAAE,OAAO,CAAC;QACnC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACd,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,GACA,eAAe;IAsBlB,SAAS,CAAC,uBAAuB,CAC/B,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EAChC,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GACxC,iBAAiB;CAGrB;AASD;;;GAGG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAI7C,SAAS,CAAC,eAAe,EAAE,eAAe;IAC1C,OAAO,CAAC,iBAAiB;IACzB,SAAS,CAAC,WAAW,EAAE,iBAAiB;IACxC,SAAS,CAAC,iBAAiB,EAAE,iBAAiB;IAC9C,OAAO,CAAC,YAAY;IAEpB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,IAAI;IAVd,OAAO,CAAC,OAAO,CAAyB;gBAG5B,eAAe,EAAE,eAAe,EAClC,iBAAiB,EAAE,2BAA2B,EAC5C,WAAW,EAAE,iBAAiB,EAC9B,iBAAiB,EAAE,iBAAiB,EACtC,YAAY,EAAE,YAAY,EAClC,eAAe,GAAE,eAAsC,EAC/C,GAAG,yCAA6C,EAChD,IAAI,GAAE,IAAI,CAAC,eAAe,EAAE,4BAA4B,CAAM;IAKxE,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;;OAMG;IACU,OAAO,CAClB,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,EACrC,MAAM,GAAE,qBAA0B,EAClC,SAAS,GAAE,wBAA6B,GACvC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,yBAAyB,EAAE,CAAC,CAAC;YA4L5D,wBAAwB;YAiBxB,SAAS;YA2BT,gCAAgC;IA2B9C,kFAAkF;YACpE,uBAAuB;IA2CrC;;;;OAIG;YACW,gCAAgC;YA0BhC,oBAAoB;YAkCpB,wBAAwB;CAsCvC"}
1
+ {"version":3,"file":"public_processor.d.ts","sourceRoot":"","sources":["../../../src/public/public_processor/public_processor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAkC,MAAM,yBAAyB,CAAC;AAIvF,OAAO,EAML,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGjE,OAAO,KAAK,EACV,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,eAAe,EAChB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACL,KAAK,QAAQ,EACb,eAAe,EACf,yBAAyB,EACzB,KAAK,WAAW,EAEhB,EAAE,EAGH,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EAAE,iBAAiB,EAAiB,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAEhC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAGvE;;GAEG;AACH,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,YAAY;IACpB,SAAS,CAAC,eAAe,EAAE,eAAe;IAH5C,YACU,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,GAAE,YAAiC,EAC7C,eAAe,GAAE,eAAsC,EAC/D;IAEJ;;;;;OAKG;IACI,MAAM,CACX,UAAU,EAAE,yBAAyB,EACrC,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,qBAAqB,GAC5B,eAAe,CAcjB;IAED,SAAS,CAAC,uBAAuB,CAC/B,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EAChC,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GACxC,0BAA0B,CAE5B;CACF;AASD;;;GAGG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAI7C,SAAS,CAAC,eAAe,EAAE,eAAe;IAC1C,OAAO,CAAC,iBAAiB;IACzB,SAAS,CAAC,WAAW,EAAE,iBAAiB;IACxC,SAAS,CAAC,iBAAiB,EAAE,0BAA0B;IACvD,OAAO,CAAC,YAAY;IAEpB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,IAAI;IAVd,OAAO,CAAC,OAAO,CAAyB;IAExC,YACY,eAAe,EAAE,eAAe,EAClC,iBAAiB,EAAE,2BAA2B,EAC5C,WAAW,EAAE,iBAAiB,EAC9B,iBAAiB,EAAE,0BAA0B,EAC/C,YAAY,EAAE,YAAY,EAClC,eAAe,GAAE,eAAsC,EAC/C,GAAG,yCAA6C,EAChD,IAAI,GAAE,IAAI,CAAC,eAAe,EAAE,4BAA4B,GAAG,iCAAiC,CAAM,EAG3G;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;;OAMG;IACU,OAAO,CAClB,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,EACrC,MAAM,GAAE,qBAA0B,EAClC,SAAS,GAAE,wBAA6B,GACvC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,yBAAyB,EAAE,EAAE,MAAM,CAAC,CAAC,CA6MjF;YAEa,wBAAwB;YAiBxB,SAAS;YA2BT,gCAAgC;YA4BhC,uBAAuB;YAgDvB,gCAAgC;YA0BhC,oBAAoB;YA+BpB,wBAAwB;IAyCtC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;CAStC"}