@aztec/simulator 0.0.1-commit.d431d1c → 0.0.1-commit.d58ff9d0

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 (378) hide show
  1. package/README.md +4 -4
  2. package/dest/client.d.ts +1 -3
  3. package/dest/client.d.ts.map +1 -1
  4. package/dest/client.js +0 -2
  5. package/dest/private/acvm/acvm.d.ts +4 -2
  6. package/dest/private/acvm/acvm.d.ts.map +1 -1
  7. package/dest/private/acvm/acvm.js +4 -3
  8. package/dest/private/acvm_native.d.ts +5 -3
  9. package/dest/private/acvm_native.d.ts.map +1 -1
  10. package/dest/private/acvm_native.js +8 -6
  11. package/dest/private/acvm_wasm.d.ts +4 -3
  12. package/dest/private/acvm_wasm.d.ts.map +1 -1
  13. package/dest/private/acvm_wasm.js +7 -5
  14. package/dest/private/circuit_recording/circuit_recorder.d.ts +39 -25
  15. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
  16. package/dest/private/circuit_recording/circuit_recorder.js +70 -72
  17. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +9 -20
  18. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
  19. package/dest/private/circuit_recording/file_circuit_recorder.js +39 -43
  20. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +7 -2
  21. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -1
  22. package/dest/private/circuit_recording/memory_circuit_recorder.js +4 -4
  23. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +1 -1
  24. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -1
  25. package/dest/private/circuit_recording/simulator_recorder_wrapper.js +11 -14
  26. package/dest/private/factory.d.ts +3 -3
  27. package/dest/private/factory.d.ts.map +1 -1
  28. package/dest/private/factory.js +7 -4
  29. package/dest/public/avm/testing/account_proof_fetcher.d.ts +2 -0
  30. package/dest/public/avm/testing/account_proof_fetcher.d.ts.map +1 -0
  31. package/dest/public/avm/testing/account_proof_fetcher.js +152 -0
  32. package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.d.ts +2 -1
  33. package/dest/public/avm/testing/base_avm_simulation_tester.d.ts.map +1 -0
  34. package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.js +18 -3
  35. package/dest/public/avm/testing/utils.d.ts +32 -0
  36. package/dest/public/avm/testing/utils.d.ts.map +1 -0
  37. package/dest/public/avm/{fixtures → testing}/utils.js +4 -34
  38. package/dest/public/avm_simulator.d.ts +28 -0
  39. package/dest/public/avm_simulator.d.ts.map +1 -0
  40. package/dest/public/avm_simulator.js +4 -0
  41. package/dest/public/avm_simulator_pool.d.ts +45 -0
  42. package/dest/public/avm_simulator_pool.d.ts.map +1 -0
  43. package/dest/public/avm_simulator_pool.js +197 -0
  44. package/dest/public/cdb/generated/api_types.d.ts +171 -0
  45. package/dest/public/cdb/generated/api_types.d.ts.map +1 -0
  46. package/dest/public/cdb/generated/api_types.js +314 -0
  47. package/dest/public/cdb/generated/server.d.ts +26 -0
  48. package/dest/public/cdb/generated/server.d.ts.map +1 -0
  49. package/dest/public/cdb/generated/server.js +135 -0
  50. package/dest/public/cdb_ipc_server.d.ts +33 -0
  51. package/dest/public/cdb_ipc_server.d.ts.map +1 -0
  52. package/dest/public/cdb_ipc_server.js +153 -0
  53. package/dest/public/contracts_db_checkpoint.d.ts +2 -2
  54. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -1
  55. package/dest/public/contracts_db_checkpoint.js +1 -1
  56. package/dest/public/executor_metrics.d.ts +1 -1
  57. package/dest/public/executor_metrics.d.ts.map +1 -1
  58. package/dest/public/executor_metrics.js +7 -2
  59. package/dest/public/fixtures/amm_test.js +4 -4
  60. package/dest/public/fixtures/bulk_test.d.ts +1 -1
  61. package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
  62. package/dest/public/fixtures/bulk_test.js +33 -6
  63. package/dest/public/fixtures/custom_bytecode_tester.d.ts +1 -1
  64. package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -1
  65. package/dest/public/fixtures/custom_bytecode_tester.js +2 -2
  66. package/dest/public/fixtures/index.d.ts +2 -4
  67. package/dest/public/fixtures/index.d.ts.map +1 -1
  68. package/dest/public/fixtures/index.js +1 -3
  69. package/dest/public/fixtures/public_processor_test_env.d.ts +30 -0
  70. package/dest/public/fixtures/public_processor_test_env.d.ts.map +1 -0
  71. package/dest/public/fixtures/public_processor_test_env.js +73 -0
  72. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +12 -7
  73. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  74. package/dest/public/fixtures/public_tx_simulation_tester.js +32 -15
  75. package/dest/public/fixtures/simple_contract_data_source.js +1 -1
  76. package/dest/public/fixtures/token_test.js +3 -3
  77. package/dest/public/fixtures/utils.d.ts +2 -2
  78. package/dest/public/fixtures/utils.d.ts.map +1 -1
  79. package/dest/public/fixtures/utils.js +21 -20
  80. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +11 -4
  81. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -1
  82. package/dest/public/fuzzing/avm_fuzzer_simulator.js +24 -10
  83. package/dest/public/fuzzing/avm_simulator_bin.js +11 -8
  84. package/dest/public/index.d.ts +5 -2
  85. package/dest/public/index.d.ts.map +1 -1
  86. package/dest/public/index.js +2 -1
  87. package/dest/public/public_db_sources.d.ts +9 -5
  88. package/dest/public/public_db_sources.d.ts.map +1 -1
  89. package/dest/public/public_db_sources.js +20 -14
  90. package/dest/public/public_processor/guarded_merkle_tree.d.ts +8 -7
  91. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  92. package/dest/public/public_processor/guarded_merkle_tree.js +8 -5
  93. package/dest/public/public_processor/public_processor.d.ts +17 -8
  94. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  95. package/dest/public/public_processor/public_processor.js +119 -77
  96. package/dest/public/public_processor/public_processor_metrics.d.ts +5 -2
  97. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  98. package/dest/public/public_processor/public_processor_metrics.js +28 -4
  99. package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts +17 -0
  100. package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts.map +1 -0
  101. package/dest/public/public_tx_simulator/{dumping_cpp_public_tx_simulator.js → dumping_public_tx_simulator.js} +10 -23
  102. package/dest/public/public_tx_simulator/factories.d.ts +9 -8
  103. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -1
  104. package/dest/public/public_tx_simulator/factories.js +9 -9
  105. package/dest/public/public_tx_simulator/index.d.ts +4 -6
  106. package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
  107. package/dest/public/public_tx_simulator/index.js +2 -4
  108. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +43 -71
  109. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  110. package/dest/public/public_tx_simulator/public_tx_simulator.js +99 -316
  111. package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts +24 -0
  112. package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts.map +1 -0
  113. package/dest/public/public_tx_simulator/public_tx_simulator_base.js +31 -0
  114. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +5 -5
  115. package/dest/public/test_executor_metrics.d.ts +3 -2
  116. package/dest/public/test_executor_metrics.d.ts.map +1 -1
  117. package/dest/public/test_executor_metrics.js +2 -2
  118. package/package.json +22 -19
  119. package/src/client.ts +0 -2
  120. package/src/private/acvm/acvm.ts +4 -3
  121. package/src/private/acvm_native.ts +11 -5
  122. package/src/private/acvm_wasm.ts +11 -4
  123. package/src/private/circuit_recording/circuit_recorder.ts +89 -81
  124. package/src/private/circuit_recording/file_circuit_recorder.ts +45 -50
  125. package/src/private/circuit_recording/memory_circuit_recorder.ts +6 -4
  126. package/src/private/circuit_recording/simulator_recorder_wrapper.ts +9 -15
  127. package/src/private/factory.ts +7 -4
  128. package/src/public/avm/testing/account_proof.json +553 -0
  129. package/src/public/avm/testing/account_proof_fetcher.ts +166 -0
  130. package/src/public/avm/{fixtures → testing}/base_avm_simulation_tester.ts +23 -3
  131. package/src/public/avm/{fixtures → testing}/utils.ts +4 -40
  132. package/src/public/avm_simulator.ts +29 -0
  133. package/src/public/avm_simulator_pool.ts +226 -0
  134. package/src/public/cdb/generated/api_types.ts +457 -0
  135. package/src/public/cdb/generated/server.ts +109 -0
  136. package/src/public/cdb_ipc_server.ts +197 -0
  137. package/src/public/contracts_db_checkpoint.ts +1 -1
  138. package/src/public/executor_metrics.ts +4 -1
  139. package/src/public/fixtures/amm_test.ts +4 -4
  140. package/src/public/fixtures/bulk_test.ts +31 -6
  141. package/src/public/fixtures/custom_bytecode_tester.ts +2 -2
  142. package/src/public/fixtures/index.ts +1 -3
  143. package/src/public/fixtures/public_processor_test_env.ts +88 -0
  144. package/src/public/fixtures/public_tx_simulation_tester.ts +45 -18
  145. package/src/public/fixtures/simple_contract_data_source.ts +1 -1
  146. package/src/public/fixtures/token_test.ts +3 -3
  147. package/src/public/fixtures/utils.ts +23 -24
  148. package/src/public/fuzzing/avm_fuzzer_simulator.ts +26 -11
  149. package/src/public/fuzzing/avm_simulator_bin.ts +14 -6
  150. package/src/public/index.ts +7 -3
  151. package/src/public/public_db_sources.ts +36 -19
  152. package/src/public/public_processor/guarded_merkle_tree.ts +11 -8
  153. package/src/public/public_processor/public_processor.ts +166 -97
  154. package/src/public/public_processor/public_processor_metrics.ts +22 -4
  155. package/src/public/public_tx_simulator/{dumping_cpp_public_tx_simulator.ts → dumping_public_tx_simulator.ts} +17 -31
  156. package/src/public/public_tx_simulator/factories.ts +31 -11
  157. package/src/public/public_tx_simulator/index.ts +6 -5
  158. package/src/public/public_tx_simulator/public_tx_simulator.ts +142 -470
  159. package/src/public/public_tx_simulator/public_tx_simulator_base.ts +37 -0
  160. package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +5 -5
  161. package/src/public/test_executor_metrics.ts +3 -3
  162. package/dest/public/avm/avm_context.d.ts +0 -41
  163. package/dest/public/avm/avm_context.d.ts.map +0 -1
  164. package/dest/public/avm/avm_context.js +0 -44
  165. package/dest/public/avm/avm_contract_call_result.d.ts +0 -32
  166. package/dest/public/avm/avm_contract_call_result.d.ts.map +0 -1
  167. package/dest/public/avm/avm_contract_call_result.js +0 -54
  168. package/dest/public/avm/avm_execution_environment.d.ts +0 -23
  169. package/dest/public/avm/avm_execution_environment.d.ts.map +0 -1
  170. package/dest/public/avm/avm_execution_environment.js +0 -33
  171. package/dest/public/avm/avm_gas.d.ts +0 -44
  172. package/dest/public/avm/avm_gas.d.ts.map +0 -1
  173. package/dest/public/avm/avm_gas.js +0 -195
  174. package/dest/public/avm/avm_machine_state.d.ts +0 -97
  175. package/dest/public/avm/avm_machine_state.d.ts.map +0 -1
  176. package/dest/public/avm/avm_machine_state.js +0 -109
  177. package/dest/public/avm/avm_memory_types.d.ts +0 -275
  178. package/dest/public/avm/avm_memory_types.d.ts.map +0 -1
  179. package/dest/public/avm/avm_memory_types.js +0 -351
  180. package/dest/public/avm/avm_simulator.d.ts +0 -40
  181. package/dest/public/avm/avm_simulator.d.ts.map +0 -1
  182. package/dest/public/avm/avm_simulator.js +0 -191
  183. package/dest/public/avm/avm_simulator_interface.d.ts +0 -9
  184. package/dest/public/avm/avm_simulator_interface.d.ts.map +0 -1
  185. package/dest/public/avm/avm_simulator_interface.js +0 -3
  186. package/dest/public/avm/errors.d.ts +0 -104
  187. package/dest/public/avm/errors.d.ts.map +0 -1
  188. package/dest/public/avm/errors.js +0 -141
  189. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +0 -22
  190. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +0 -1
  191. package/dest/public/avm/fixtures/avm_simulation_tester.js +0 -83
  192. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +0 -1
  193. package/dest/public/avm/fixtures/initializers.d.ts +0 -42
  194. package/dest/public/avm/fixtures/initializers.d.ts.map +0 -1
  195. package/dest/public/avm/fixtures/initializers.js +0 -44
  196. package/dest/public/avm/fixtures/utils.d.ts +0 -39
  197. package/dest/public/avm/fixtures/utils.d.ts.map +0 -1
  198. package/dest/public/avm/index.d.ts +0 -2
  199. package/dest/public/avm/index.d.ts.map +0 -1
  200. package/dest/public/avm/index.js +0 -1
  201. package/dest/public/avm/opcodes/accrued_substate.d.ts +0 -75
  202. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +0 -1
  203. package/dest/public/avm/opcodes/accrued_substate.js +0 -255
  204. package/dest/public/avm/opcodes/addressing_mode.d.ts +0 -31
  205. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +0 -1
  206. package/dest/public/avm/opcodes/addressing_mode.js +0 -94
  207. package/dest/public/avm/opcodes/arithmetic.d.ts +0 -49
  208. package/dest/public/avm/opcodes/arithmetic.d.ts.map +0 -1
  209. package/dest/public/avm/opcodes/arithmetic.js +0 -97
  210. package/dest/public/avm/opcodes/bitwise.d.ts +0 -42
  211. package/dest/public/avm/opcodes/bitwise.d.ts.map +0 -1
  212. package/dest/public/avm/opcodes/bitwise.js +0 -99
  213. package/dest/public/avm/opcodes/comparators.d.ts +0 -25
  214. package/dest/public/avm/opcodes/comparators.d.ts.map +0 -1
  215. package/dest/public/avm/opcodes/comparators.js +0 -43
  216. package/dest/public/avm/opcodes/contract.d.ts +0 -20
  217. package/dest/public/avm/opcodes/contract.d.ts.map +0 -1
  218. package/dest/public/avm/opcodes/contract.js +0 -65
  219. package/dest/public/avm/opcodes/control_flow.d.ts +0 -41
  220. package/dest/public/avm/opcodes/control_flow.d.ts.map +0 -1
  221. package/dest/public/avm/opcodes/control_flow.js +0 -107
  222. package/dest/public/avm/opcodes/conversion.d.ts +0 -18
  223. package/dest/public/avm/opcodes/conversion.d.ts.map +0 -1
  224. package/dest/public/avm/opcodes/conversion.js +0 -333
  225. package/dest/public/avm/opcodes/ec_add.d.ts +0 -19
  226. package/dest/public/avm/opcodes/ec_add.d.ts.map +0 -1
  227. package/dest/public/avm/opcodes/ec_add.js +0 -93
  228. package/dest/public/avm/opcodes/environment_getters.d.ts +0 -28
  229. package/dest/public/avm/opcodes/environment_getters.d.ts.map +0 -1
  230. package/dest/public/avm/opcodes/environment_getters.js +0 -77
  231. package/dest/public/avm/opcodes/external_calls.d.ts +0 -59
  232. package/dest/public/avm/opcodes/external_calls.d.ts.map +0 -1
  233. package/dest/public/avm/opcodes/external_calls.js +0 -210
  234. package/dest/public/avm/opcodes/hashing.d.ts +0 -36
  235. package/dest/public/avm/opcodes/hashing.d.ts.map +0 -1
  236. package/dest/public/avm/opcodes/hashing.js +0 -119
  237. package/dest/public/avm/opcodes/index.d.ts +0 -16
  238. package/dest/public/avm/opcodes/index.d.ts.map +0 -1
  239. package/dest/public/avm/opcodes/index.js +0 -15
  240. package/dest/public/avm/opcodes/instruction.d.ts +0 -74
  241. package/dest/public/avm/opcodes/instruction.d.ts.map +0 -1
  242. package/dest/public/avm/opcodes/instruction.js +0 -95
  243. package/dest/public/avm/opcodes/instruction_impl.d.ts +0 -19
  244. package/dest/public/avm/opcodes/instruction_impl.d.ts.map +0 -1
  245. package/dest/public/avm/opcodes/instruction_impl.js +0 -30
  246. package/dest/public/avm/opcodes/memory.d.ts +0 -74
  247. package/dest/public/avm/opcodes/memory.d.ts.map +0 -1
  248. package/dest/public/avm/opcodes/memory.js +0 -257
  249. package/dest/public/avm/opcodes/misc.d.ts +0 -18
  250. package/dest/public/avm/opcodes/misc.d.ts.map +0 -1
  251. package/dest/public/avm/opcodes/misc.js +0 -73
  252. package/dest/public/avm/opcodes/storage.d.ts +0 -24
  253. package/dest/public/avm/opcodes/storage.d.ts.map +0 -1
  254. package/dest/public/avm/opcodes/storage.js +0 -68
  255. package/dest/public/avm/revert_reason.d.ts +0 -18
  256. package/dest/public/avm/revert_reason.d.ts.map +0 -1
  257. package/dest/public/avm/revert_reason.js +0 -39
  258. package/dest/public/avm/serialization/buffer_cursor.d.ts +0 -26
  259. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +0 -1
  260. package/dest/public/avm/serialization/buffer_cursor.js +0 -99
  261. package/dest/public/avm/serialization/bytecode_serialization.d.ts +0 -17
  262. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +0 -1
  263. package/dest/public/avm/serialization/bytecode_serialization.js +0 -336
  264. package/dest/public/avm/serialization/instruction_serialization.d.ts +0 -114
  265. package/dest/public/avm/serialization/instruction_serialization.d.ts.map +0 -1
  266. package/dest/public/avm/serialization/instruction_serialization.js +0 -261
  267. package/dest/public/avm/test_utils.d.ts +0 -15
  268. package/dest/public/avm/test_utils.d.ts.map +0 -1
  269. package/dest/public/avm/test_utils.js +0 -44
  270. package/dest/public/debug_fn_name.d.ts +0 -18
  271. package/dest/public/debug_fn_name.d.ts.map +0 -1
  272. package/dest/public/debug_fn_name.js +0 -35
  273. package/dest/public/fixtures/custom_bytecode_tests.d.ts +0 -12
  274. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +0 -1
  275. package/dest/public/fixtures/custom_bytecode_tests.js +0 -174
  276. package/dest/public/fixtures/minimal_public_tx.d.ts +0 -4
  277. package/dest/public/fixtures/minimal_public_tx.d.ts.map +0 -1
  278. package/dest/public/fixtures/minimal_public_tx.js +0 -19
  279. package/dest/public/fixtures/opcode_spammer.d.ts +0 -123
  280. package/dest/public/fixtures/opcode_spammer.d.ts.map +0 -1
  281. package/dest/public/fixtures/opcode_spammer.js +0 -1681
  282. package/dest/public/hinting_db_sources.d.ts +0 -80
  283. package/dest/public/hinting_db_sources.d.ts.map +0 -1
  284. package/dest/public/hinting_db_sources.js +0 -355
  285. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +0 -18
  286. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +0 -1
  287. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +0 -98
  288. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +0 -53
  289. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +0 -1
  290. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +0 -132
  291. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +0 -42
  292. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +0 -1
  293. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +0 -86
  294. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +0 -30
  295. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +0 -1
  296. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +0 -171
  297. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +0 -22
  298. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +0 -1
  299. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +0 -31
  300. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +0 -1
  301. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +0 -51
  302. package/dest/public/public_tx_simulator/public_tx_context.d.ts +0 -130
  303. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +0 -1
  304. package/dest/public/public_tx_simulator/public_tx_context.js +0 -300
  305. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +0 -21
  306. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +0 -1
  307. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +0 -415
  308. package/dest/public/side_effect_trace.d.ts +0 -87
  309. package/dest/public/side_effect_trace.d.ts.map +0 -1
  310. package/dest/public/side_effect_trace.js +0 -199
  311. package/dest/public/side_effect_trace_interface.d.ts +0 -22
  312. package/dest/public/side_effect_trace_interface.d.ts.map +0 -1
  313. package/dest/public/side_effect_trace_interface.js +0 -1
  314. package/dest/public/state_manager/index.d.ts +0 -2
  315. package/dest/public/state_manager/index.d.ts.map +0 -1
  316. package/dest/public/state_manager/index.js +0 -1
  317. package/dest/public/state_manager/nullifiers.d.ts +0 -61
  318. package/dest/public/state_manager/nullifiers.d.ts.map +0 -1
  319. package/dest/public/state_manager/nullifiers.js +0 -92
  320. package/dest/public/state_manager/public_storage.d.ts +0 -66
  321. package/dest/public/state_manager/public_storage.d.ts.map +0 -1
  322. package/dest/public/state_manager/public_storage.js +0 -145
  323. package/dest/public/state_manager/state_manager.d.ts +0 -164
  324. package/dest/public/state_manager/state_manager.d.ts.map +0 -1
  325. package/dest/public/state_manager/state_manager.js +0 -395
  326. package/src/public/avm/avm_context.ts +0 -61
  327. package/src/public/avm/avm_contract_call_result.ts +0 -67
  328. package/src/public/avm/avm_execution_environment.ts +0 -46
  329. package/src/public/avm/avm_gas.ts +0 -183
  330. package/src/public/avm/avm_machine_state.ts +0 -169
  331. package/src/public/avm/avm_memory_types.ts +0 -436
  332. package/src/public/avm/avm_simulator.ts +0 -276
  333. package/src/public/avm/avm_simulator_interface.ts +0 -8
  334. package/src/public/avm/errors.ts +0 -177
  335. package/src/public/avm/fixtures/avm_simulation_tester.ts +0 -116
  336. package/src/public/avm/fixtures/initializers.ts +0 -102
  337. package/src/public/avm/index.ts +0 -1
  338. package/src/public/avm/opcodes/accrued_substate.ts +0 -288
  339. package/src/public/avm/opcodes/addressing_mode.ts +0 -111
  340. package/src/public/avm/opcodes/arithmetic.ts +0 -129
  341. package/src/public/avm/opcodes/bitwise.ts +0 -113
  342. package/src/public/avm/opcodes/comparators.ts +0 -55
  343. package/src/public/avm/opcodes/contract.ts +0 -75
  344. package/src/public/avm/opcodes/control_flow.ts +0 -123
  345. package/src/public/avm/opcodes/conversion.ts +0 -104
  346. package/src/public/avm/opcodes/ec_add.ts +0 -105
  347. package/src/public/avm/opcodes/environment_getters.ts +0 -87
  348. package/src/public/avm/opcodes/external_calls.ts +0 -261
  349. package/src/public/avm/opcodes/hashing.ts +0 -151
  350. package/src/public/avm/opcodes/index.ts +0 -15
  351. package/src/public/avm/opcodes/instruction.ts +0 -136
  352. package/src/public/avm/opcodes/instruction_impl.ts +0 -36
  353. package/src/public/avm/opcodes/memory.ts +0 -293
  354. package/src/public/avm/opcodes/misc.ts +0 -102
  355. package/src/public/avm/opcodes/storage.ts +0 -87
  356. package/src/public/avm/revert_reason.ts +0 -58
  357. package/src/public/avm/serialization/buffer_cursor.ts +0 -118
  358. package/src/public/avm/serialization/bytecode_serialization.ts +0 -215
  359. package/src/public/avm/serialization/instruction_serialization.ts +0 -249
  360. package/src/public/avm/test_utils.ts +0 -64
  361. package/src/public/debug_fn_name.ts +0 -50
  362. package/src/public/fixtures/custom_bytecode_tests.ts +0 -228
  363. package/src/public/fixtures/minimal_public_tx.ts +0 -26
  364. package/src/public/fixtures/opcode_spammer.ts +0 -1725
  365. package/src/public/hinting_db_sources.ts +0 -607
  366. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +0 -121
  367. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +0 -208
  368. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +0 -132
  369. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +0 -237
  370. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +0 -105
  371. package/src/public/public_tx_simulator/public_tx_context.ts +0 -477
  372. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +0 -63
  373. package/src/public/side_effect_trace.ts +0 -290
  374. package/src/public/side_effect_trace_interface.ts +0 -28
  375. package/src/public/state_manager/index.ts +0 -1
  376. package/src/public/state_manager/nullifiers.ts +0 -103
  377. package/src/public/state_manager/public_storage.ts +0 -174
  378. package/src/public/state_manager/state_manager.ts +0 -546
@@ -1,6 +1,6 @@
1
1
  var _computedKey;
2
2
  import { SerialQueue } from '@aztec/foundation/queue';
3
- _computedKey = Symbol.dispose;
3
+ _computedKey = Symbol.asyncDispose;
4
4
  /**
5
5
  * Wraps an instance of `MerkleTreeWriteOperations` to allow the sequencer to gate access.
6
6
  * If transactions execution goes past the deadline, the simulator will continue to execute and update the world state
@@ -71,6 +71,9 @@ _computedKey = Symbol.dispose;
71
71
  getRevision() {
72
72
  return this.target.getRevision();
73
73
  }
74
+ getIpcPath() {
75
+ return this.target.getIpcPath();
76
+ }
74
77
  getSiblingPath(treeId, index) {
75
78
  return this.guardAndPush(()=>this.target.getSiblingPath(treeId, index));
76
79
  }
@@ -101,11 +104,11 @@ _computedKey = Symbol.dispose;
101
104
  revertCheckpoint() {
102
105
  return this.guardAndPush(()=>this.target.revertCheckpoint());
103
106
  }
104
- commitAllCheckpoints() {
105
- return this.guardAndPush(()=>this.target.commitAllCheckpoints());
107
+ commitAllCheckpointsTo(depth) {
108
+ return this.guardAndPush(()=>this.target.commitAllCheckpointsTo(depth));
106
109
  }
107
- revertAllCheckpoints() {
108
- return this.guardAndPush(()=>this.target.revertAllCheckpoints());
110
+ revertAllCheckpointsTo(depth) {
111
+ return this.guardAndPush(()=>this.target.revertAllCheckpointsTo(depth));
109
112
  }
110
113
  findSiblingPaths(treeId, values) {
111
114
  return this.guardAndPush(()=>this.target.findSiblingPaths(treeId, values));
@@ -1,9 +1,12 @@
1
+ import { type Logger, type LoggerBindings } from '@aztec/foundation/log';
1
2
  import { DateProvider } from '@aztec/foundation/timer';
2
3
  import { PublicSimulatorConfig } from '@aztec/stdlib/avm';
3
4
  import type { ContractDataSource } from '@aztec/stdlib/contract';
4
5
  import type { MerkleTreeWriteOperations, PublicProcessorLimits, PublicProcessorValidator, SequencerConfig } from '@aztec/stdlib/interfaces/server';
6
+ import { type DebugLog, type DebugLogStore } from '@aztec/stdlib/logs';
5
7
  import { type FailedTx, GlobalVariables, NestedProcessReturnValues, type ProcessedTx, Tx } from '@aztec/stdlib/tx';
6
8
  import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
9
+ import type { AvmSimulator } from '../avm_simulator.js';
7
10
  import { PublicContractsDB } from '../public_db_sources.js';
8
11
  import { type PublicTxSimulatorConfig, type PublicTxSimulatorInterface } from '../public_tx_simulator/index.js';
9
12
  import { GuardedMerkleTreeOperations } from './guarded_merkle_tree.js';
@@ -12,17 +15,21 @@ import { GuardedMerkleTreeOperations } from './guarded_merkle_tree.js';
12
15
  */
13
16
  export declare class PublicProcessorFactory {
14
17
  private contractDataSource;
18
+ private avmSimulator;
15
19
  private dateProvider;
16
20
  protected telemetryClient: TelemetryClient;
17
- constructor(contractDataSource: ContractDataSource, dateProvider?: DateProvider, telemetryClient?: TelemetryClient);
21
+ private log;
22
+ constructor(contractDataSource: ContractDataSource, avmSimulator: AvmSimulator, dateProvider?: DateProvider, telemetryClient?: TelemetryClient, bindings?: LoggerBindings);
18
23
  /**
19
- * Creates a new instance of a PublicProcessor.
24
+ * Creates a new instance of a PublicProcessor. The simulator it drives reads contract data from the fork's
25
+ * contracts DB, scoped by the fork id so AVM requests route to the right state.
26
+ *
20
27
  * @param globalVariables - The global variables for the block being processed.
21
- * @param skipFeeEnforcement - Allows disabling balance checks for fee estimations.
28
+ * @param contractsDB - Optional pre-populated contracts DB; a fresh one is constructed if omitted.
22
29
  * @returns A new instance of a PublicProcessor.
23
30
  */
24
- create(merkleTree: MerkleTreeWriteOperations, globalVariables: GlobalVariables, config: PublicSimulatorConfig): PublicProcessor;
25
- protected createPublicTxSimulator(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, config?: Partial<PublicTxSimulatorConfig>): PublicTxSimulatorInterface;
31
+ create(merkleTree: MerkleTreeWriteOperations, globalVariables: GlobalVariables, config: PublicSimulatorConfig, contractsDB?: PublicContractsDB): PublicProcessor;
32
+ protected createPublicTxSimulator(forkId: number, globalVariables: GlobalVariables, contractsDB: PublicContractsDB, config?: Partial<PublicTxSimulatorConfig>): PublicTxSimulatorInterface;
26
33
  }
27
34
  /**
28
35
  * Converts Txs lifted from the P2P module into ProcessedTx objects by executing
@@ -36,8 +43,9 @@ export declare class PublicProcessor implements Traceable {
36
43
  private dateProvider;
37
44
  private log;
38
45
  private opts;
46
+ private debugLogStore;
39
47
  private metrics;
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'>);
48
+ constructor(globalVariables: GlobalVariables, guardedMerkleTree: GuardedMerkleTreeOperations, contractsDB: PublicContractsDB, publicTxSimulator: PublicTxSimulatorInterface, dateProvider: DateProvider, telemetryClient: TelemetryClient | undefined, log: Logger, opts?: Pick<SequencerConfig, 'fakeProcessingDelayPerTxMs' | 'fakeThrowAfterProcessingTxCount'>, debugLogStore?: DebugLogStore);
41
49
  get tracer(): Tracer;
42
50
  /**
43
51
  * Run each tx through the public circuit and the public kernel circuit if needed.
@@ -46,11 +54,12 @@ export declare class PublicProcessor implements Traceable {
46
54
  * @param validator - Pre-process validator and nullifier cache to use for processing the txs.
47
55
  * @returns The list of processed txs with their circuit simulation outputs.
48
56
  */
49
- process(txs: Iterable<Tx> | AsyncIterable<Tx>, limits?: PublicProcessorLimits, validator?: PublicProcessorValidator): Promise<[ProcessedTx[], FailedTx[], Tx[], NestedProcessReturnValues[], number]>;
57
+ process(txs: Iterable<Tx> | AsyncIterable<Tx>, limits?: PublicProcessorLimits, validator?: PublicProcessorValidator): Promise<[ProcessedTx[], FailedTx[], Tx[], NestedProcessReturnValues[], DebugLog[]]>;
50
58
  private checkWorldStateUnchanged;
51
59
  private processTx;
52
60
  private doTreeInsertionsForPrivateOnlyTx;
53
61
  private processTxWithinDeadline;
62
+ private getProcessingSignal;
54
63
  private performFeePaymentPublicDataWrite;
55
64
  private processPrivateOnlyTx;
56
65
  private processTxWithPublicCalls;
@@ -59,4 +68,4 @@ export declare class PublicProcessor implements Traceable {
59
68
  */
60
69
  private static generateProvingRequest;
61
70
  }
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9wdWJsaWNfcHJvY2Vzc29yL3B1YmxpY19wcm9jZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLFlBQVksRUFBa0MsTUFBTSx5QkFBeUIsQ0FBQztBQUl2RixPQUFPLEVBTUwscUJBQXFCLEVBQ3RCLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUdqRSxPQUFPLEtBQUssRUFDVix5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLHdCQUF3QixFQUN4QixlQUFlLEVBQ2hCLE1BQU0saUNBQWlDLENBQUM7QUFHekMsT0FBTyxFQUNMLEtBQUssUUFBUSxFQUNiLGVBQWUsRUFDZix5QkFBeUIsRUFDekIsS0FBSyxXQUFXLEVBRWhCLEVBQUUsRUFHSCxNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFFTCxLQUFLLGVBQWUsRUFDcEIsS0FBSyxTQUFTLEVBQ2QsS0FBSyxNQUFNLEVBR1osTUFBTSx5QkFBeUIsQ0FBQztBQUtqQyxPQUFPLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0seUJBQXlCLENBQUM7QUFDM0UsT0FBTyxFQUNMLEtBQUssdUJBQXVCLEVBQzVCLEtBQUssMEJBQTBCLEVBRWhDLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHdkU7O0dBRUc7QUFDSCxxQkFBYSxzQkFBc0I7SUFFL0IsT0FBTyxDQUFDLGtCQUFrQjtJQUMxQixPQUFPLENBQUMsWUFBWTtJQUNwQixTQUFTLENBQUMsZUFBZSxFQUFFLGVBQWU7SUFINUMsWUFDVSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFDdEMsWUFBWSxHQUFFLFlBQWlDLEVBQzdDLGVBQWUsR0FBRSxlQUFzQyxFQUMvRDtJQUVKOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUNYLFVBQVUsRUFBRSx5QkFBeUIsRUFDckMsZUFBZSxFQUFFLGVBQWUsRUFDaEMsTUFBTSxFQUFFLHFCQUFxQixHQUM1QixlQUFlLENBY2pCO0lBRUQsU0FBUyxDQUFDLHVCQUF1QixDQUMvQixVQUFVLEVBQUUseUJBQXlCLEVBQ3JDLFdBQVcsRUFBRSxpQkFBaUIsRUFDOUIsZUFBZSxFQUFFLGVBQWUsRUFDaEMsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLHVCQUF1QixDQUFDLEdBQ3hDLDBCQUEwQixDQUU1QjtDQUNGO0FBU0Q7OztHQUdHO0FBQ0gscUJBQWEsZUFBZ0IsWUFBVyxTQUFTO0lBSTdDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsZUFBZTtJQUMxQyxPQUFPLENBQUMsaUJBQWlCO0lBQ3pCLFNBQVMsQ0FBQyxXQUFXLEVBQUUsaUJBQWlCO0lBQ3hDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSwwQkFBMEI7SUFDdkQsT0FBTyxDQUFDLFlBQVk7SUFFcEIsT0FBTyxDQUFDLEdBQUc7SUFDWCxPQUFPLENBQUMsSUFBSTtJQVZkLE9BQU8sQ0FBQyxPQUFPLENBQXlCO0lBRXhDLFlBQ1ksZUFBZSxFQUFFLGVBQWUsRUFDbEMsaUJBQWlCLEVBQUUsMkJBQTJCLEVBQzVDLFdBQVcsRUFBRSxpQkFBaUIsRUFDOUIsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQy9DLFlBQVksRUFBRSxZQUFZLEVBQ2xDLGVBQWUsR0FBRSxlQUFzQyxFQUMvQyxHQUFHLHlDQUE2QyxFQUNoRCxJQUFJLEdBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSw0QkFBNEIsR0FBRyxpQ0FBaUMsQ0FBTSxFQUczRztJQUVELElBQUksTUFBTSxJQUFJLE1BQU0sQ0FFbkI7SUFFRDs7Ozs7O09BTUc7SUFDVSxPQUFPLENBQ2xCLEdBQUcsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsYUFBYSxDQUFDLEVBQUUsQ0FBQyxFQUNyQyxNQUFNLEdBQUUscUJBQTBCLEVBQ2xDLFNBQVMsR0FBRSx3QkFBNkIsR0FDdkMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUseUJBQXlCLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQTZNakY7WUFFYSx3QkFBd0I7WUFpQnhCLFNBQVM7WUEyQlQsZ0NBQWdDO1lBNEJoQyx1QkFBdUI7WUFnRHZCLGdDQUFnQztZQTBCaEMsb0JBQW9CO1lBK0JwQix3QkFBd0I7SUF5Q3RDOztPQUVHO0lBQ0gsT0FBTyxDQUFDLE1BQU0sQ0FBQyxzQkFBc0I7Q0FTdEMifQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9wdWJsaWNfcHJvY2Vzc29yL3B1YmxpY19wcm9jZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRXZGLE9BQU8sRUFBRSxZQUFZLEVBQWtDLE1BQU0seUJBQXlCLENBQUM7QUFJdkYsT0FBTyxFQU1MLHFCQUFxQixFQUN0QixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHakUsT0FBTyxLQUFLLEVBQ1YseUJBQXlCLEVBQ3pCLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsZUFBZSxFQUNoQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxLQUFLLGFBQWEsRUFBcUIsTUFBTSxvQkFBb0IsQ0FBQztBQUcxRixPQUFPLEVBQ0wsS0FBSyxRQUFRLEVBQ2IsZUFBZSxFQUNmLHlCQUF5QixFQUN6QixLQUFLLFdBQVcsRUFFaEIsRUFBRSxFQUdILE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUVMLEtBQUssZUFBZSxFQUNwQixLQUFLLFNBQVMsRUFDZCxLQUFLLE1BQU0sRUFHWixNQUFNLHlCQUF5QixDQUFDO0FBS2pDLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRSxPQUFPLEVBQ0wsS0FBSyx1QkFBdUIsRUFDNUIsS0FBSywwQkFBMEIsRUFFaEMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd2RTs7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
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"public_processor.d.ts","sourceRoot":"","sources":["../../../src/public/public_processor/public_processor.ts"],"names":[],"mappings":"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"}
@@ -376,13 +376,14 @@ import { padArrayEnd } from '@aztec/foundation/collection';
376
376
  import { Fr } from '@aztec/foundation/curves/bn254';
377
377
  import { createLogger } from '@aztec/foundation/log';
378
378
  import { sleep } from '@aztec/foundation/sleep';
379
- import { DateProvider, Timer, elapsed, executeTimeout } from '@aztec/foundation/timer';
379
+ import { DateProvider, Timer, elapsed, execWithSignal } from '@aztec/foundation/timer';
380
380
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
381
381
  import { ContractClassPublishedEvent } from '@aztec/protocol-contracts/class-registry';
382
382
  import { computeFeePayerBalanceLeafSlot, computeFeePayerBalanceStorageSlot } from '@aztec/protocol-contracts/fee-juice';
383
383
  import { AvmCircuitInputs, AvmExecutionHints, PublicDataWrite } from '@aztec/stdlib/avm';
384
384
  import { computeTransactionFee } from '@aztec/stdlib/fees';
385
385
  import { Gas } from '@aztec/stdlib/gas';
386
+ import { NullDebugLogStore } from '@aztec/stdlib/logs';
386
387
  import { ProvingRequestType } from '@aztec/stdlib/proofs';
387
388
  import { MerkleTreeId } from '@aztec/stdlib/trees';
388
389
  import { NestedProcessReturnValues, makeProcessedTxFromPrivateOnlyTx, makeProcessedTxFromTxWithPublicCalls } from '@aztec/stdlib/tx';
@@ -390,33 +391,39 @@ import { Attributes, getTelemetryClient, trackSpan } from '@aztec/telemetry-clie
390
391
  import { ForkCheckpoint } from '@aztec/world-state/native';
391
392
  import { AssertionError } from 'assert';
392
393
  import { PublicContractsDB, PublicTreesDB } from '../public_db_sources.js';
393
- import { TelemetryCppPublicTxSimulator } from '../public_tx_simulator/index.js';
394
+ import { TelemetryPublicTxSimulator } from '../public_tx_simulator/index.js';
394
395
  import { GuardedMerkleTreeOperations } from './guarded_merkle_tree.js';
395
396
  import { PublicProcessorMetrics } from './public_processor_metrics.js';
396
397
  /**
397
398
  * Creates new instances of PublicProcessor given the provided merkle tree db and contract data source.
398
399
  */ export class PublicProcessorFactory {
399
400
  contractDataSource;
401
+ avmSimulator;
400
402
  dateProvider;
401
403
  telemetryClient;
402
- constructor(contractDataSource, dateProvider = new DateProvider(), telemetryClient = getTelemetryClient()){
404
+ log;
405
+ constructor(contractDataSource, avmSimulator, dateProvider = new DateProvider(), telemetryClient = getTelemetryClient(), bindings){
403
406
  this.contractDataSource = contractDataSource;
407
+ this.avmSimulator = avmSimulator;
404
408
  this.dateProvider = dateProvider;
405
409
  this.telemetryClient = telemetryClient;
410
+ this.log = createLogger('simulator:public-processor-factory', bindings);
406
411
  }
407
412
  /**
408
- * Creates a new instance of a PublicProcessor.
413
+ * Creates a new instance of a PublicProcessor. The simulator it drives reads contract data from the fork's
414
+ * contracts DB, scoped by the fork id so AVM requests route to the right state.
415
+ *
409
416
  * @param globalVariables - The global variables for the block being processed.
410
- * @param skipFeeEnforcement - Allows disabling balance checks for fee estimations.
417
+ * @param contractsDB - Optional pre-populated contracts DB; a fresh one is constructed if omitted.
411
418
  * @returns A new instance of a PublicProcessor.
412
- */ create(merkleTree, globalVariables, config) {
413
- const contractsDB = new PublicContractsDB(this.contractDataSource);
419
+ */ create(merkleTree, globalVariables, config, contractsDB = new PublicContractsDB(this.contractDataSource, this.log.getBindings())) {
420
+ const forkId = merkleTree.getRevision().forkId;
414
421
  const guardedFork = new GuardedMerkleTreeOperations(merkleTree);
415
- const publicTxSimulator = this.createPublicTxSimulator(guardedFork, contractsDB, globalVariables, config);
416
- return new PublicProcessor(globalVariables, guardedFork, contractsDB, publicTxSimulator, this.dateProvider, this.telemetryClient);
422
+ const publicTxSimulator = this.createPublicTxSimulator(forkId, globalVariables, contractsDB, config);
423
+ return new PublicProcessor(globalVariables, guardedFork, contractsDB, publicTxSimulator, this.dateProvider, this.telemetryClient, createLogger('simulator:public-processor', this.log.getBindings()));
417
424
  }
418
- createPublicTxSimulator(merkleTree, contractsDB, globalVariables, config) {
419
- return new TelemetryCppPublicTxSimulator(merkleTree, contractsDB, globalVariables, this.telemetryClient, config);
425
+ createPublicTxSimulator(forkId, globalVariables, contractsDB, config) {
426
+ return new TelemetryPublicTxSimulator(this.avmSimulator, globalVariables, contractsDB, forkId, this.telemetryClient, config, this.log.getBindings());
420
427
  }
421
428
  }
422
429
  class PublicProcessorTimeoutError extends Error {
@@ -425,6 +432,12 @@ class PublicProcessorTimeoutError extends Error {
425
432
  this.name = 'PublicProcessorTimeoutError';
426
433
  }
427
434
  }
435
+ class PublicProcessorAbortError extends Error {
436
+ constructor(message = 'Aborted while processing tx'){
437
+ super(message);
438
+ this.name = 'PublicProcessorAbortError';
439
+ }
440
+ }
428
441
  _dec = trackSpan('PublicProcessor.processTx', (tx)=>({
429
442
  [Attributes.TX_HASH]: tx.getTxHash().toString()
430
443
  })), _dec1 = trackSpan('PublicProcessor.processPrivateOnlyTx', (tx)=>({
@@ -443,6 +456,7 @@ _dec = trackSpan('PublicProcessor.processTx', (tx)=>({
443
456
  dateProvider;
444
457
  log;
445
458
  opts;
459
+ debugLogStore;
446
460
  static{
447
461
  ({ e: [_initProto] } = _apply_decs_2203_r(this, [
448
462
  [
@@ -463,7 +477,7 @@ _dec = trackSpan('PublicProcessor.processTx', (tx)=>({
463
477
  ], []));
464
478
  }
465
479
  metrics;
466
- constructor(globalVariables, guardedMerkleTree, contractsDB, publicTxSimulator, dateProvider, telemetryClient = getTelemetryClient(), log = createLogger('simulator:public-processor'), opts = {}){
480
+ constructor(globalVariables, guardedMerkleTree, contractsDB, publicTxSimulator, dateProvider, telemetryClient = getTelemetryClient(), log, opts = {}, debugLogStore = new NullDebugLogStore()){
467
481
  this.globalVariables = globalVariables;
468
482
  this.guardedMerkleTree = guardedMerkleTree;
469
483
  this.contractsDB = contractsDB;
@@ -471,6 +485,7 @@ _dec = trackSpan('PublicProcessor.processTx', (tx)=>({
471
485
  this.dateProvider = dateProvider;
472
486
  this.log = log;
473
487
  this.opts = opts;
488
+ this.debugLogStore = debugLogStore;
474
489
  _initProto(this);
475
490
  this.metrics = new PublicProcessorMetrics(telemetryClient, 'PublicProcessor');
476
491
  }
@@ -484,43 +499,52 @@ _dec = trackSpan('PublicProcessor.processTx', (tx)=>({
484
499
  * @param validator - Pre-process validator and nullifier cache to use for processing the txs.
485
500
  * @returns The list of processed txs with their circuit simulation outputs.
486
501
  */ async process(txs, limits = {}, validator = {}) {
487
- const { maxTransactions, maxBlockSize, deadline, maxBlockGas, maxBlobFields } = limits;
502
+ const { maxTransactions, deadline, maxBlockGas, maxBlobFields, isBuildingProposal, signal } = limits;
488
503
  const { preprocessValidator, nullifierCache } = validator;
489
504
  const result = [];
490
505
  const usedTxs = [];
491
506
  const failed = [];
507
+ const debugLogs = [];
492
508
  const timer = new Timer();
493
509
  let totalSizeInBytes = 0;
494
510
  let returns = [];
495
511
  let totalPublicGas = new Gas(0, 0);
496
512
  let totalBlockGas = new Gas(0, 0);
497
513
  let totalBlobFields = 0;
514
+ let silentlySkippedCount = 0;
515
+ let totalSilentlySkippedDurationMs = 0;
498
516
  for await (const tx of txs){
499
517
  // Only process up to the max tx limit
500
518
  if (maxTransactions !== undefined && result.length >= maxTransactions) {
501
519
  this.log.debug(`Stopping tx processing due to reaching the max tx limit.`);
502
520
  break;
503
521
  }
504
- // Bail if we've hit the deadline
522
+ // Bail if we've hit the deadline or have been interrupted.
505
523
  if (deadline && this.dateProvider.now() > +deadline) {
506
524
  this.log.warn(`Stopping tx processing due to timeout.`);
507
525
  break;
508
526
  }
509
- // Skip this tx if it'd exceed max block size
527
+ if (signal?.aborted) {
528
+ this.log.warn(`Stopping tx processing due to abort signal.`);
529
+ break;
530
+ }
510
531
  const txHash = tx.getTxHash().toString();
511
- const preTxSizeInBytes = tx.getEstimatedPrivateTxEffectsSize();
512
- if (maxBlockSize !== undefined && totalSizeInBytes + preTxSizeInBytes > maxBlockSize) {
513
- this.log.warn(`Skipping processing of tx ${txHash} sized ${preTxSizeInBytes} bytes due to block size limit`, {
532
+ // Skip this tx if its estimated blob fields would exceed the limit.
533
+ // Only done during proposal building: during re-execution we must process the exact txs from the proposal.
534
+ const txBlobFields = tx.getPrivateTxEffectsSizeInFields();
535
+ if (isBuildingProposal && maxBlobFields !== undefined && totalBlobFields + txBlobFields > maxBlobFields) {
536
+ this.log.warn(`Skipping tx ${txHash} with ${txBlobFields} fields from private side effects due to blob fields limit`, {
514
537
  txHash,
515
- sizeInBytes: preTxSizeInBytes,
516
- totalSizeInBytes,
517
- maxBlockSize
538
+ txBlobFields,
539
+ totalBlobFields,
540
+ maxBlobFields
518
541
  });
519
542
  continue;
520
543
  }
521
- // Skip this tx if its gas limit would exceed the block gas limit
544
+ // Skip this tx if its gas limit would exceed the block gas limit (either da or l2).
545
+ // Only done during proposal building: during re-execution we must process the exact txs from the proposal.
522
546
  const txGasLimit = tx.data.constants.txContext.gasSettings.gasLimits;
523
- if (maxBlockGas !== undefined && totalBlockGas.add(txGasLimit).gtAny(maxBlockGas)) {
547
+ if (isBuildingProposal && maxBlockGas !== undefined && totalBlockGas.add(txGasLimit).gtAny(maxBlockGas)) {
524
548
  this.log.warn(`Skipping processing of tx ${txHash} due to block gas limit`, {
525
549
  txHash,
526
550
  txGasLimit,
@@ -542,11 +566,6 @@ _dec = trackSpan('PublicProcessor.processTx', (tx)=>({
542
566
  });
543
567
  returns.push(new NestedProcessReturnValues([]));
544
568
  continue;
545
- } else if (result.result === 'skipped') {
546
- const reason = result.reason.join(', ');
547
- this.log.debug(`Skipping tx ${txHash.toString()} due to pre-process validation: ${reason}`);
548
- returns.push(new NestedProcessReturnValues([]));
549
- continue;
550
569
  } else {
551
570
  this.log.trace(`Tx ${txHash.toString()} is valid before processing.`);
552
571
  }
@@ -560,83 +579,87 @@ _dec = trackSpan('PublicProcessor.processTx', (tx)=>({
560
579
  const startStateReference = await this.guardedMerkleTree.getUnderlyingFork().getStateReference();
561
580
  this.contractsDB.createCheckpoint();
562
581
  try {
563
- const [processedTx, returnValues] = await this.processTx(tx, deadline);
582
+ const [txProcessingTimeMs, [processedTx, returnValues, txDebugLogs]] = await elapsed(()=>this.processTx(tx, deadline, signal));
564
583
  // Inject a fake processing failure after N txs if requested
565
584
  const fakeThrowAfter = this.opts.fakeThrowAfterProcessingTxCount;
566
585
  if (fakeThrowAfter !== undefined && result.length + failed.length + 1 >= fakeThrowAfter) {
567
586
  throw new Error(`Fake error after processing ${fakeThrowAfter} txs`);
568
587
  }
569
588
  const txBlobFields = processedTx.txEffect.getNumBlobFields();
570
- // If the actual size of this tx would exceed block size, skip it
571
589
  const txSize = txBlobFields * Fr.SIZE_IN_BYTES;
572
- if (maxBlockSize !== undefined && totalSizeInBytes + txSize > maxBlockSize) {
573
- this.log.debug(`Skipping processed tx ${txHash} sized ${txSize} due to max block size.`, {
574
- txHash,
575
- sizeInBytes: txSize,
576
- totalSizeInBytes,
577
- maxBlockSize
578
- });
579
- // Need to revert the checkpoint here and don't go any further
580
- await checkpoint.revert();
581
- this.contractsDB.revertCheckpoint();
582
- continue;
583
- }
584
- // If the actual blob fields of this tx would exceed the limit, skip it
590
+ // If the actual blob fields of this tx would exceed the limit, skip it.
585
591
  // Note: maxBlobFields already accounts for block end blob fields and previous blocks in checkpoint.
586
592
  if (maxBlobFields !== undefined && totalBlobFields + txBlobFields > maxBlobFields) {
587
593
  this.log.debug(`Skipping processed tx ${txHash} with ${txBlobFields} blob fields due to max blob fields limit.`, {
588
594
  txHash,
589
595
  txBlobFields,
590
596
  totalBlobFields,
591
- maxBlobFields
597
+ maxBlobFields,
598
+ txProcessingTimeMs
592
599
  });
600
+ silentlySkippedCount += 1;
601
+ totalSilentlySkippedDurationMs += txProcessingTimeMs;
602
+ this.metrics.recordSilentlySkipped(txProcessingTimeMs);
593
603
  // Need to revert the checkpoint here and don't go any further
594
604
  await checkpoint.revert();
595
605
  this.contractsDB.revertCheckpoint();
596
606
  continue;
597
607
  }
608
+ // During re-execution, check if the actual gas used by this tx would push the block over the gas limit.
609
+ // Unlike the proposal-building check (which uses declared gas limits pessimistically before processing),
610
+ // this uses actual gas and stops processing when the limit is exceeded.
611
+ if (!isBuildingProposal && maxBlockGas !== undefined && totalBlockGas.add(processedTx.gasUsed.totalGas).gtAny(maxBlockGas)) {
612
+ this.log.warn(`Stopping re-execution since tx ${txHash} would push block gas over limit`, {
613
+ txHash,
614
+ txGas: processedTx.gasUsed.totalGas,
615
+ totalBlockGas,
616
+ maxBlockGas
617
+ });
618
+ await checkpoint.revert();
619
+ this.contractsDB.revertCheckpoint();
620
+ break;
621
+ }
598
622
  // FIXME(fcarreiro): it's ugly to have to notify the validator of nullifiers.
599
623
  // I'd rather pass the validators the processedTx as well and let them deal with it.
600
624
  nullifierCache?.addNullifiers(processedTx.txEffect.nullifiers.map((n)=>n.toBuffer()));
601
625
  result.push(processedTx);
602
626
  usedTxs.push(tx);
603
627
  returns = returns.concat(returnValues);
628
+ debugLogs.push(...txDebugLogs);
629
+ this.debugLogStore.storeLogs(processedTx.hash.toString(), txDebugLogs);
604
630
  totalPublicGas = totalPublicGas.add(processedTx.gasUsed.publicGas);
605
631
  totalBlockGas = totalBlockGas.add(processedTx.gasUsed.totalGas);
606
632
  totalSizeInBytes += txSize;
607
633
  totalBlobFields += txBlobFields;
634
+ // Commit the tx-level contracts checkpoint on success
635
+ this.contractsDB.commitCheckpoint();
608
636
  } catch (err) {
609
- if (err?.name === 'PublicProcessorTimeoutError') {
610
- this.log.warn(`Stopping tx processing due to timeout.`);
611
- // We hit the transaction execution deadline.
612
- // There may still be a transaction executing on a worker thread (C++ via NAPI).
613
- // Signal cancellation AND WAIT for the simulation to actually stop.
614
- // This is critical because C++ might be in the middle of a slow operation (e.g., pad_trees)
615
- // and won't check the cancellation flag until that operation completes.
616
- // Without waiting, we'd proceed to revert checkpoints while C++ is still writing to state.
617
- // Wait for C++ to stop gracefully.
637
+ if (err?.name === 'PublicProcessorTimeoutError' || err?.name === 'PublicProcessorAbortError') {
638
+ this.log.warn(`Stopping tx processing due to ${err.name === 'PublicProcessorTimeoutError' ? 'timeout' : 'abort'}.`);
639
+ // We hit the transaction execution deadline or an external abort signal.
640
+ // There may still be a simulation in progress.
641
+ // Signal cancellation AND WAIT for the simulation to actually stop. Cancellation is
642
+ // cooperative: the simulator may be mid slow-operation and won't observe the flag until it
643
+ // completes, and without waiting we'd revert checkpoints while it's still writing to state.
618
644
  await this.publicTxSimulator.cancel?.();
619
645
  // Now stop the guarded fork to prevent any further TS-side access to the world state.
620
646
  await this.guardedMerkleTree.stop();
621
647
  // We now know there can't be any further access to world state. The fork is in a state where there is:
622
648
  // 1. At least one outstanding checkpoint that has not been committed (the one created before we processed the tx).
623
649
  // 2. Possible state updates on that checkpoint or any others created during execution.
624
- // First we revert a checkpoint as managed by the ForkCheckpoint. This will revert whatever is the current checkpoint
625
- // which may not be the one originally created by this object. But that is ok, we do this to fulfil the ForkCheckpoint
626
- // lifecycle expectations and ensure it doesn't attempt to commit later on.
627
- await checkpoint.revert();
628
- // Now we want to revert any/all remaining checkpoints, destroying any outstanding state updates.
629
- // This needs to be done directly on the underlying fork as the guarded fork has been stopped.
630
- await this.guardedMerkleTree.getUnderlyingFork().revertAllCheckpoints();
650
+ // Revert all checkpoints at or above this checkpoint's depth (inclusive), destroying any outstanding state
651
+ // updates from this tx and any nested checkpoints created during execution. This preserves any checkpoints
652
+ // created by callers below our depth.
653
+ await checkpoint.revertToCheckpoint();
631
654
  // Revert any contracts added to the DB for the tx.
632
655
  this.contractsDB.revertCheckpoint();
633
656
  // Ensure we're at the same state as when we started processing this tx.
634
657
  await this.checkWorldStateUnchanged(startStateReference, txHash, err);
635
658
  break;
636
659
  }
637
- // Roll back state to start of TX before proceeding to next TX
638
- await checkpoint.revert();
639
- await this.guardedMerkleTree.getUnderlyingFork().revertAllCheckpoints();
660
+ // Roll back state to start of TX before proceeding to next TX.
661
+ // Reverts all checkpoints at or above this checkpoint's depth, preserving any caller checkpoints below.
662
+ await checkpoint.revertToCheckpoint();
640
663
  this.contractsDB.revertCheckpoint();
641
664
  const errorMessage = err instanceof Error || err instanceof AssertionError ? err.message : 'Unknown error';
642
665
  this.log.warn(`Failed to process tx ${txHash.toString()}: ${errorMessage} ${err?.stack}`);
@@ -650,25 +673,30 @@ _dec = trackSpan('PublicProcessor.processTx', (tx)=>({
650
673
  } finally{
651
674
  // Base case is we always commit the checkpoint. Using the ForkCheckpoint means this has no effect if the tx was previously reverted
652
675
  await checkpoint.commit();
653
- this.contractsDB.commitCheckpointOkIfNone();
654
676
  }
655
677
  }
656
678
  const duration = timer.s();
657
679
  const rate = duration > 0 ? totalPublicGas.l2Gas / duration : 0;
658
680
  this.metrics.recordAllTxs(totalPublicGas, rate);
659
- this.log.info(`Processed ${result.length} successful txs and ${failed.length} failed txs in ${duration}s`, {
681
+ const silentlySkippedDurationMs = Math.round(totalSilentlySkippedDurationMs);
682
+ this.log.info(`Processed ${result.length} successful txs and ${failed.length} failed txs ` + `(${silentlySkippedCount} silently skipped, ${silentlySkippedDurationMs}ms wasted) ` + `in ${duration}s`, {
683
+ blockNumber: this.globalVariables.blockNumber,
684
+ successfulCount: result.length,
685
+ failedCount: failed.length,
660
686
  duration,
661
687
  rate,
662
688
  totalPublicGas,
663
689
  totalBlockGas,
664
- totalSizeInBytes
690
+ totalSizeInBytes,
691
+ silentlySkippedCount,
692
+ silentlySkippedDurationMs
665
693
  });
666
694
  return [
667
695
  result,
668
696
  failed,
669
697
  usedTxs,
670
698
  returns,
671
- totalBlobFields
699
+ debugLogs
672
700
  ];
673
701
  }
674
702
  async checkWorldStateUnchanged(startStateReference, txHash, cause) {
@@ -684,8 +712,8 @@ _dec = trackSpan('PublicProcessor.processTx', (tx)=>({
684
712
  });
685
713
  }
686
714
  }
687
- async processTx(tx, deadline) {
688
- const [time, [processedTx, returnValues]] = await elapsed(()=>this.processTxWithinDeadline(tx, deadline));
715
+ async processTx(tx, deadline, signal) {
716
+ const [time, [processedTx, returnValues, debugLogs]] = await elapsed(()=>this.processTxWithinDeadline(tx, deadline, signal));
689
717
  this.log.verbose(!tx.hasPublicCalls() ? `Processed tx ${processedTx.hash} with no public calls in ${time}ms` : `Processed tx ${processedTx.hash} with ${tx.numberOfPublicCalls()} public calls in ${time}ms`, {
690
718
  txHash: processedTx.hash,
691
719
  txFee: processedTx.txEffect.transactionFee.toBigInt(),
@@ -703,7 +731,8 @@ _dec = trackSpan('PublicProcessor.processTx', (tx)=>({
703
731
  });
704
732
  return [
705
733
  processedTx,
706
- returnValues ?? []
734
+ returnValues ?? [],
735
+ debugLogs
707
736
  ];
708
737
  }
709
738
  async doTreeInsertionsForPrivateOnlyTx(processedTx) {
@@ -725,7 +754,7 @@ _dec = trackSpan('PublicProcessor.processTx', (tx)=>({
725
754
  const treeInsertionEnd = process.hrtime.bigint();
726
755
  this.metrics.recordTreeInsertions(Number(treeInsertionEnd - treeInsertionStart) / 1_000);
727
756
  }
728
- /** Processes the given tx within deadline. Returns timeout if deadline is hit. */ async processTxWithinDeadline(tx, deadline) {
757
+ /** Processes the given tx within deadline or until the signal is aborted. */ async processTxWithinDeadline(tx, deadline, signal) {
729
758
  const innerProcessFn = tx.hasPublicCalls() ? ()=>this.processTxWithPublicCalls(tx) : ()=>this.processPrivateOnlyTx(tx);
730
759
  // Fake a delay per tx if instructed (used for tests)
731
760
  const fakeDelayPerTxMs = this.opts.fakeProcessingDelayPerTxMs;
@@ -735,20 +764,31 @@ _dec = trackSpan('PublicProcessor.processTx', (tx)=>({
735
764
  await sleep(fakeDelayPerTxMs);
736
765
  return result;
737
766
  } : innerProcessFn;
738
- if (!deadline) {
767
+ const processingSignal = this.getProcessingSignal(tx, deadline, signal);
768
+ if (!processingSignal) {
739
769
  return await processFn();
740
770
  }
741
- const txHash = tx.getTxHash();
771
+ return await execWithSignal(()=>processFn(), processingSignal, (signal)=>signal.reason?.name === 'TimeoutError' ? new PublicProcessorTimeoutError() : new PublicProcessorAbortError());
772
+ }
773
+ getProcessingSignal(tx, deadline, signal) {
774
+ if (!deadline) {
775
+ return signal;
776
+ }
742
777
  const timeout = +deadline - this.dateProvider.now();
743
778
  if (timeout <= 0) {
744
779
  throw new PublicProcessorTimeoutError();
745
780
  }
781
+ const txHash = tx.getTxHash();
746
782
  this.log.debug(`Processing tx ${txHash.toString()} within ${timeout}ms`, {
747
783
  deadline: deadline.toISOString(),
748
784
  now: new Date(this.dateProvider.now()).toISOString(),
749
785
  txHash
750
786
  });
751
- return await executeTimeout(()=>processFn(), timeout, ()=>new PublicProcessorTimeoutError());
787
+ const timeoutSignal = AbortSignal.timeout(timeout);
788
+ return signal ? AbortSignal.any([
789
+ signal,
790
+ timeoutSignal
791
+ ]) : timeoutSignal;
752
792
  }
753
793
  /**
754
794
  * Creates the public data write for paying the tx fee.
@@ -777,10 +817,11 @@ _dec = trackSpan('PublicProcessor.processTx', (tx)=>({
777
817
  this.metrics.recordClassPublication(...tx.getContractClassLogs().filter((log)=>ContractClassPublishedEvent.isContractClassPublishedEvent(log)).map((log)=>ContractClassPublishedEvent.fromLog(log)));
778
818
  // Fee payment insertion has already been done. Do the rest.
779
819
  await this.doTreeInsertionsForPrivateOnlyTx(processedTx);
780
- await this.contractsDB.addNewContracts(tx);
820
+ this.contractsDB.addNewContracts(tx);
781
821
  return [
782
822
  processedTx,
783
- undefined
823
+ undefined,
824
+ []
784
825
  ];
785
826
  }
786
827
  async processTxWithPublicCalls(tx) {
@@ -802,7 +843,8 @@ _dec = trackSpan('PublicProcessor.processTx', (tx)=>({
802
843
  const processedTx = makeProcessedTxFromTxWithPublicCalls(tx, this.globalVariables, avmProvingRequest, publicTxEffect, gasUsed, revertCode, revertReason);
803
844
  return [
804
845
  processedTx,
805
- appLogicReturnValues
846
+ appLogicReturnValues,
847
+ result.logs ?? []
806
848
  ];
807
849
  }
808
850
  /**
@@ -1,6 +1,6 @@
1
1
  import type { ContractClassPublishedEvent } from '@aztec/protocol-contracts/class-registry';
2
2
  import type { Gas } from '@aztec/stdlib/gas';
3
- import type { TxExecutionPhase } from '@aztec/stdlib/tx';
3
+ import { TxExecutionPhase } from '@aztec/stdlib/tx';
4
4
  import { type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
5
5
  export declare class PublicProcessorMetrics {
6
6
  readonly tracer: Tracer;
@@ -15,6 +15,8 @@ export declare class PublicProcessorMetrics {
15
15
  private gasRate;
16
16
  private txGas;
17
17
  private treeInsertionDuration;
18
+ private silentlySkippedCount;
19
+ private silentlySkippedDuration;
18
20
  constructor(client: TelemetryClient, name?: string);
19
21
  recordPhaseDuration(phaseName: TxExecutionPhase, durationMs: number): void;
20
22
  recordTx(phaseCount: number, durationMs: number, gasUsed: Gas): void;
@@ -23,5 +25,6 @@ export declare class PublicProcessorMetrics {
23
25
  recordRevertedPhase(phaseName: TxExecutionPhase): void;
24
26
  recordClassPublication(...events: ContractClassPublishedEvent[]): void;
25
27
  recordTreeInsertions(durationUs: number): void;
28
+ recordSilentlySkipped(durationMs: number): void;
26
29
  }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvcl9tZXRyaWNzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHVibGljL3B1YmxpY19wcm9jZXNzb3IvcHVibGljX3Byb2Nlc3Nvcl9tZXRyaWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUYsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBS0wsS0FBSyxlQUFlLEVBQ3BCLEtBQUssTUFBTSxFQUVaLE1BQU0seUJBQXlCLENBQUM7QUFFakMscUJBQWEsc0JBQXNCO0lBQ2pDLFNBQWdCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFFL0IsT0FBTyxDQUFDLFVBQVUsQ0FBWTtJQUM5QixPQUFPLENBQUMsT0FBTyxDQUFnQjtJQUMvQixPQUFPLENBQUMsWUFBWSxDQUFnQjtJQUVwQyxPQUFPLENBQUMsYUFBYSxDQUFZO0lBQ2pDLE9BQU8sQ0FBQyxVQUFVLENBQWdCO0lBRWxDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBWTtJQUNwQyxPQUFPLENBQUMsUUFBUSxDQUFRO0lBQ3hCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBWTtJQUNyQyxPQUFPLENBQUMsT0FBTyxDQUFZO0lBQzNCLE9BQU8sQ0FBQyxLQUFLLENBQVk7SUFFekIsT0FBTyxDQUFDLHFCQUFxQixDQUFZO0lBRXpDLFlBQVksTUFBTSxFQUFFLGVBQWUsRUFBRSxJQUFJLFNBQW9CLEVBeUI1RDtJQUVELG1CQUFtQixDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUdsRTtJQUVELFFBQVEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsUUFZNUQ7SUFFRCxZQUFZLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxRQWdCMUM7SUFFRCxjQUFjLFNBSWI7SUFFRCxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLFFBRTlDO0lBRUQsc0JBQXNCLENBQUMsR0FBRyxNQUFNLEVBQUUsMkJBQTJCLEVBQUUsUUFTOUQ7SUFFRCxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsTUFBTSxRQUV0QztDQUNGIn0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvcl9tZXRyaWNzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHVibGljL3B1YmxpY19wcm9jZXNzb3IvcHVibGljX3Byb2Nlc3Nvcl9tZXRyaWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUYsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUtMLEtBQUssZUFBZSxFQUNwQixLQUFLLE1BQU0sRUFHWixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLHFCQUFhLHNCQUFzQjtJQUNqQyxTQUFnQixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBRS9CLE9BQU8sQ0FBQyxVQUFVLENBQVk7SUFDOUIsT0FBTyxDQUFDLE9BQU8sQ0FBZ0I7SUFDL0IsT0FBTyxDQUFDLFlBQVksQ0FBZ0I7SUFFcEMsT0FBTyxDQUFDLGFBQWEsQ0FBWTtJQUNqQyxPQUFPLENBQUMsVUFBVSxDQUFnQjtJQUVsQyxPQUFPLENBQUMsZ0JBQWdCLENBQVk7SUFDcEMsT0FBTyxDQUFDLFFBQVEsQ0FBUTtJQUN4QixPQUFPLENBQUMsaUJBQWlCLENBQVk7SUFDckMsT0FBTyxDQUFDLE9BQU8sQ0FBWTtJQUMzQixPQUFPLENBQUMsS0FBSyxDQUFZO0lBRXpCLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBWTtJQUV6QyxPQUFPLENBQUMsb0JBQW9CLENBQWdCO0lBQzVDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBWTtJQUUzQyxZQUFZLE1BQU0sRUFBRSxlQUFlLEVBQUUsSUFBSSxTQUFvQixFQWtDNUQ7SUFFRCxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFHbEU7SUFFRCxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLFFBWTVEO0lBRUQsWUFBWSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFnQjFDO0lBRUQsY0FBYyxTQUliO0lBRUQsbUJBQW1CLENBQUMsU0FBUyxFQUFFLGdCQUFnQixRQUU5QztJQUVELHNCQUFzQixDQUFDLEdBQUcsTUFBTSxFQUFFLDJCQUEyQixFQUFFLFFBUzlEO0lBRUQsb0JBQW9CLENBQUMsVUFBVSxFQUFFLE1BQU0sUUFFdEM7SUFFRCxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxRQUd2QztDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"public_processor_metrics.d.ts","sourceRoot":"","sources":["../../../src/public/public_processor/public_processor_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AAC5F,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,MAAM,EAEZ,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,sBAAsB;IACjC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAgB;IAEpC,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,UAAU,CAAgB;IAElC,OAAO,CAAC,gBAAgB,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,iBAAiB,CAAY;IACrC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,KAAK,CAAY;IAEzB,OAAO,CAAC,qBAAqB,CAAY;IAEzC,YAAY,MAAM,EAAE,eAAe,EAAE,IAAI,SAAoB,EAyB5D;IAED,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,QAGlE;IAED,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,QAY5D;IAED,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,QAgB1C;IAED,cAAc,SAIb;IAED,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,QAE9C;IAED,sBAAsB,CAAC,GAAG,MAAM,EAAE,2BAA2B,EAAE,QAS9D;IAED,oBAAoB,CAAC,UAAU,EAAE,MAAM,QAEtC;CACF"}
1
+ {"version":3,"file":"public_processor_metrics.d.ts","sourceRoot":"","sources":["../../../src/public/public_processor/public_processor_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AAC5F,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,sBAAsB;IACjC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAgB;IAEpC,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,UAAU,CAAgB;IAElC,OAAO,CAAC,gBAAgB,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,iBAAiB,CAAY;IACrC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,KAAK,CAAY;IAEzB,OAAO,CAAC,qBAAqB,CAAY;IAEzC,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,uBAAuB,CAAY;IAE3C,YAAY,MAAM,EAAE,eAAe,EAAE,IAAI,SAAoB,EAkC5D;IAED,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,QAGlE;IAED,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,QAY5D;IAED,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,QAgB1C;IAED,cAAc,SAIb;IAED,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,QAE9C;IAED,sBAAsB,CAAC,GAAG,MAAM,EAAE,2BAA2B,EAAE,QAS9D;IAED,oBAAoB,CAAC,UAAU,EAAE,MAAM,QAEtC;IAED,qBAAqB,CAAC,UAAU,EAAE,MAAM,QAGvC;CACF"}