@aztec/simulator 3.0.0-devnet.2 → 3.0.0-devnet.2-patch.1

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 (314) hide show
  1. package/dest/client.d.ts +1 -1
  2. package/dest/common/errors.d.ts +2 -8
  3. package/dest/common/errors.d.ts.map +1 -1
  4. package/dest/common/index.d.ts +1 -1
  5. package/dest/common/stats/index.d.ts +1 -1
  6. package/dest/common/stats/stats.d.ts +1 -1
  7. package/dest/private/acvm/acvm.d.ts +1 -1
  8. package/dest/private/acvm/acvm_types.d.ts +1 -1
  9. package/dest/private/acvm/deserialize.d.ts +2 -2
  10. package/dest/private/acvm/deserialize.d.ts.map +1 -1
  11. package/dest/private/acvm/deserialize.js +1 -1
  12. package/dest/private/acvm/index.d.ts +1 -1
  13. package/dest/private/acvm/serialize.d.ts +2 -2
  14. package/dest/private/acvm/serialize.d.ts.map +1 -1
  15. package/dest/private/acvm/serialize.js +1 -1
  16. package/dest/private/acvm_native.d.ts +1 -1
  17. package/dest/private/acvm_native.d.ts.map +1 -1
  18. package/dest/private/acvm_native.js +15 -13
  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 +1 -1
  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 +2 -2
  35. package/dest/public/avm/avm_context.d.ts.map +1 -1
  36. package/dest/public/avm/avm_contract_call_result.d.ts +2 -2
  37. package/dest/public/avm/avm_contract_call_result.d.ts.map +1 -1
  38. package/dest/public/avm/avm_execution_environment.d.ts +5 -5
  39. package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
  40. package/dest/public/avm/avm_execution_environment.js +5 -8
  41. package/dest/public/avm/avm_gas.d.ts +2 -2
  42. package/dest/public/avm/avm_gas.d.ts.map +1 -1
  43. package/dest/public/avm/avm_machine_state.d.ts +2 -2
  44. package/dest/public/avm/avm_machine_state.d.ts.map +1 -1
  45. package/dest/public/avm/avm_memory_types.d.ts +14 -14
  46. package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
  47. package/dest/public/avm/avm_memory_types.js +1 -1
  48. package/dest/public/avm/avm_simulator.d.ts +4 -3
  49. package/dest/public/avm/avm_simulator.d.ts.map +1 -1
  50. package/dest/public/avm/avm_simulator.js +8 -7
  51. package/dest/public/avm/avm_simulator_interface.d.ts +1 -1
  52. package/dest/public/avm/errors.d.ts +8 -2
  53. package/dest/public/avm/errors.d.ts.map +1 -1
  54. package/dest/public/avm/errors.js +14 -2
  55. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +1 -1
  56. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -1
  57. package/dest/public/avm/fixtures/avm_simulation_tester.js +12 -3
  58. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts +2 -2
  59. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +1 -1
  60. package/dest/public/avm/fixtures/base_avm_simulation_tester.js +1 -1
  61. package/dest/public/avm/fixtures/initializers.d.ts +2 -3
  62. package/dest/public/avm/fixtures/initializers.d.ts.map +1 -1
  63. package/dest/public/avm/fixtures/initializers.js +7 -5
  64. package/dest/public/avm/fixtures/utils.d.ts +4 -3
  65. package/dest/public/avm/fixtures/utils.d.ts.map +1 -1
  66. package/dest/public/avm/fixtures/utils.js +3 -2
  67. package/dest/public/avm/index.d.ts +1 -1
  68. package/dest/public/avm/opcodes/accrued_substate.d.ts +1 -1
  69. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
  70. package/dest/public/avm/opcodes/addressing_mode.d.ts +1 -1
  71. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +1 -1
  72. package/dest/public/avm/opcodes/addressing_mode.js +2 -2
  73. package/dest/public/avm/opcodes/arithmetic.d.ts +10 -8
  74. package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -1
  75. package/dest/public/avm/opcodes/arithmetic.js +11 -1
  76. package/dest/public/avm/opcodes/bitwise.d.ts +5 -5
  77. package/dest/public/avm/opcodes/bitwise.d.ts.map +1 -1
  78. package/dest/public/avm/opcodes/comparators.d.ts +4 -4
  79. package/dest/public/avm/opcodes/comparators.d.ts.map +1 -1
  80. package/dest/public/avm/opcodes/contract.d.ts +1 -1
  81. package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
  82. package/dest/public/avm/opcodes/control_flow.d.ts +1 -1
  83. package/dest/public/avm/opcodes/control_flow.d.ts.map +1 -1
  84. package/dest/public/avm/opcodes/conversion.d.ts +1 -1
  85. package/dest/public/avm/opcodes/conversion.d.ts.map +1 -1
  86. package/dest/public/avm/opcodes/ec_add.d.ts +2 -2
  87. package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
  88. package/dest/public/avm/opcodes/ec_add.js +3 -4
  89. package/dest/public/avm/opcodes/environment_getters.d.ts +1 -1
  90. package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -1
  91. package/dest/public/avm/opcodes/external_calls.d.ts +1 -1
  92. package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -1
  93. package/dest/public/avm/opcodes/external_calls.js +0 -1
  94. package/dest/public/avm/opcodes/hashing.d.ts +2 -2
  95. package/dest/public/avm/opcodes/hashing.d.ts.map +1 -1
  96. package/dest/public/avm/opcodes/hashing.js +3 -1
  97. package/dest/public/avm/opcodes/index.d.ts +1 -1
  98. package/dest/public/avm/opcodes/instruction.d.ts +2 -2
  99. package/dest/public/avm/opcodes/instruction.d.ts.map +1 -1
  100. package/dest/public/avm/opcodes/instruction_impl.d.ts +1 -1
  101. package/dest/public/avm/opcodes/instruction_impl.d.ts.map +1 -1
  102. package/dest/public/avm/opcodes/memory.d.ts +2 -2
  103. package/dest/public/avm/opcodes/memory.d.ts.map +1 -1
  104. package/dest/public/avm/opcodes/memory.js +1 -1
  105. package/dest/public/avm/opcodes/misc.d.ts +1 -1
  106. package/dest/public/avm/opcodes/misc.d.ts.map +1 -1
  107. package/dest/public/avm/opcodes/misc.js +4 -4
  108. package/dest/public/avm/opcodes/storage.d.ts +3 -3
  109. package/dest/public/avm/opcodes/storage.d.ts.map +1 -1
  110. package/dest/public/avm/revert_reason.d.ts +2 -2
  111. package/dest/public/avm/revert_reason.d.ts.map +1 -1
  112. package/dest/public/avm/revert_reason.js +3 -2
  113. package/dest/public/avm/serialization/buffer_cursor.d.ts +1 -1
  114. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +1 -1
  115. package/dest/public/avm/serialization/bytecode_serialization.d.ts +1 -1
  116. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  117. package/dest/public/avm/serialization/bytecode_serialization.js +9 -6
  118. package/dest/public/avm/serialization/instruction_serialization.d.ts +1 -1
  119. package/dest/public/avm/serialization/instruction_serialization.js +1 -1
  120. package/dest/public/avm/test_utils.d.ts +2 -2
  121. package/dest/public/avm/test_utils.d.ts.map +1 -1
  122. package/dest/public/avm/test_utils.js +1 -1
  123. package/dest/public/contracts_db_checkpoint.d.ts +16 -0
  124. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -0
  125. package/dest/public/contracts_db_checkpoint.js +30 -0
  126. package/dest/public/db_interfaces.d.ts +14 -2
  127. package/dest/public/db_interfaces.d.ts.map +1 -1
  128. package/dest/public/debug_fn_name.d.ts +15 -2
  129. package/dest/public/debug_fn_name.d.ts.map +1 -1
  130. package/dest/public/debug_fn_name.js +19 -0
  131. package/dest/public/executor_metrics.d.ts +3 -2
  132. package/dest/public/executor_metrics.d.ts.map +1 -1
  133. package/dest/public/executor_metrics.js +1 -1
  134. package/dest/public/executor_metrics_interface.d.ts +3 -2
  135. package/dest/public/executor_metrics_interface.d.ts.map +1 -1
  136. package/dest/public/fixtures/amm_test.d.ts +1 -1
  137. package/dest/public/fixtures/amm_test.js +2 -2
  138. package/dest/public/fixtures/bulk_test.d.ts +1 -1
  139. package/dest/public/fixtures/bulk_test.js +1 -1
  140. package/dest/public/fixtures/custom_bytecode_tester.d.ts +2 -2
  141. package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -1
  142. package/dest/public/fixtures/custom_bytecode_tests.d.ts +2 -1
  143. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +1 -1
  144. package/dest/public/fixtures/custom_bytecode_tests.js +21 -0
  145. package/dest/public/fixtures/index.d.ts +1 -1
  146. package/dest/public/fixtures/minimal_public_tx.d.ts +2 -3
  147. package/dest/public/fixtures/minimal_public_tx.d.ts.map +1 -1
  148. package/dest/public/fixtures/minimal_public_tx.js +2 -2
  149. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +10 -5
  150. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  151. package/dest/public/fixtures/public_tx_simulation_tester.js +28 -14
  152. package/dest/public/fixtures/simple_contract_data_source.d.ts +5 -4
  153. package/dest/public/fixtures/simple_contract_data_source.d.ts.map +1 -1
  154. package/dest/public/fixtures/simple_contract_data_source.js +4 -4
  155. package/dest/public/fixtures/token_test.d.ts +6 -2
  156. package/dest/public/fixtures/token_test.d.ts.map +1 -1
  157. package/dest/public/fixtures/token_test.js +13 -12
  158. package/dest/public/fixtures/utils.d.ts +2 -2
  159. package/dest/public/fixtures/utils.d.ts.map +1 -1
  160. package/dest/public/fixtures/utils.js +4 -4
  161. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +46 -0
  162. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -0
  163. package/dest/public/fuzzing/avm_fuzzer_simulator.js +136 -0
  164. package/dest/public/fuzzing/avm_simulator_bin.d.ts +2 -0
  165. package/dest/public/fuzzing/avm_simulator_bin.d.ts.map +1 -0
  166. package/dest/public/fuzzing/avm_simulator_bin.js +84 -0
  167. package/dest/public/hinting_db_sources.d.ts +13 -4
  168. package/dest/public/hinting_db_sources.d.ts.map +1 -1
  169. package/dest/public/hinting_db_sources.js +66 -13
  170. package/dest/public/index.d.ts +3 -2
  171. package/dest/public/index.d.ts.map +1 -1
  172. package/dest/public/index.js +1 -1
  173. package/dest/public/public_db_sources.d.ts +22 -63
  174. package/dest/public/public_db_sources.d.ts.map +1 -1
  175. package/dest/public/public_db_sources.js +74 -131
  176. package/dest/public/public_errors.d.ts +1 -1
  177. package/dest/public/public_errors.d.ts.map +1 -1
  178. package/dest/public/public_processor/guarded_merkle_tree.d.ts +5 -4
  179. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  180. package/dest/public/public_processor/public_processor.d.ts +11 -18
  181. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  182. package/dest/public/public_processor/public_processor.js +37 -36
  183. package/dest/public/public_processor/public_processor_metrics.d.ts +1 -1
  184. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  185. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +18 -0
  186. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -0
  187. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +94 -0
  188. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +19 -22
  189. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +1 -1
  190. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +54 -50
  191. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +42 -0
  192. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +1 -0
  193. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +86 -0
  194. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +30 -0
  195. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +1 -0
  196. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +170 -0
  197. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +22 -0
  198. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +1 -0
  199. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.js +52 -0
  200. package/dest/public/public_tx_simulator/factories.d.ts +13 -0
  201. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -0
  202. package/dest/public/public_tx_simulator/factories.js +28 -0
  203. package/dest/public/public_tx_simulator/index.d.ts +5 -1
  204. package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
  205. package/dest/public/public_tx_simulator/index.js +3 -0
  206. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +14 -7
  207. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +1 -1
  208. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +5 -5
  209. package/dest/public/public_tx_simulator/public_tx_context.d.ts +6 -3
  210. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
  211. package/dest/public/public_tx_simulator/public_tx_context.js +13 -5
  212. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +11 -31
  213. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  214. package/dest/public/public_tx_simulator/public_tx_simulator.js +109 -126
  215. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +2 -2
  216. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts.map +1 -1
  217. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +4 -4
  218. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +1 -1
  219. package/dest/public/side_effect_errors.d.ts +1 -1
  220. package/dest/public/side_effect_errors.d.ts.map +1 -1
  221. package/dest/public/side_effect_trace.d.ts +2 -3
  222. package/dest/public/side_effect_trace.d.ts.map +1 -1
  223. package/dest/public/side_effect_trace.js +1 -1
  224. package/dest/public/side_effect_trace_interface.d.ts +3 -4
  225. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  226. package/dest/public/state_manager/index.d.ts +1 -1
  227. package/dest/public/state_manager/nullifiers.d.ts +2 -2
  228. package/dest/public/state_manager/nullifiers.d.ts.map +1 -1
  229. package/dest/public/state_manager/public_storage.d.ts +2 -2
  230. package/dest/public/state_manager/public_storage.d.ts.map +1 -1
  231. package/dest/public/state_manager/public_storage.js +1 -1
  232. package/dest/public/state_manager/state_manager.d.ts +9 -11
  233. package/dest/public/state_manager/state_manager.d.ts.map +1 -1
  234. package/dest/public/state_manager/state_manager.js +10 -6
  235. package/dest/public/test_executor_metrics.d.ts +4 -3
  236. package/dest/public/test_executor_metrics.d.ts.map +1 -1
  237. package/dest/public/test_executor_metrics.js +5 -4
  238. package/dest/public/unique_class_ids.d.ts +1 -1
  239. package/dest/public/unique_class_ids.d.ts.map +1 -1
  240. package/dest/public/utils.d.ts +1 -1
  241. package/dest/server.d.ts +1 -1
  242. package/dest/testing.d.ts +1 -1
  243. package/package.json +21 -20
  244. package/src/common/errors.ts +1 -1
  245. package/src/private/acvm/deserialize.ts +1 -1
  246. package/src/private/acvm/serialize.ts +1 -1
  247. package/src/private/acvm_native.ts +17 -9
  248. package/src/private/circuit_recording/circuit_recorder.ts +1 -1
  249. package/src/public/avm/avm_context.ts +1 -1
  250. package/src/public/avm/avm_contract_call_result.ts +1 -1
  251. package/src/public/avm/avm_execution_environment.ts +4 -6
  252. package/src/public/avm/avm_gas.ts +3 -3
  253. package/src/public/avm/avm_machine_state.ts +1 -1
  254. package/src/public/avm/avm_memory_types.ts +1 -1
  255. package/src/public/avm/avm_simulator.ts +11 -9
  256. package/src/public/avm/errors.ts +17 -3
  257. package/src/public/avm/fixtures/avm_simulation_tester.ts +10 -2
  258. package/src/public/avm/fixtures/base_avm_simulation_tester.ts +1 -1
  259. package/src/public/avm/fixtures/initializers.ts +8 -10
  260. package/src/public/avm/fixtures/utils.ts +3 -2
  261. package/src/public/avm/opcodes/addressing_mode.ts +2 -2
  262. package/src/public/avm/opcodes/arithmetic.ts +13 -1
  263. package/src/public/avm/opcodes/ec_add.ts +3 -4
  264. package/src/public/avm/opcodes/external_calls.ts +0 -1
  265. package/src/public/avm/opcodes/hashing.ts +3 -1
  266. package/src/public/avm/opcodes/memory.ts +1 -1
  267. package/src/public/avm/opcodes/misc.ts +4 -4
  268. package/src/public/avm/revert_reason.ts +6 -3
  269. package/src/public/avm/serialization/bytecode_serialization.ts +17 -6
  270. package/src/public/avm/serialization/instruction_serialization.ts +1 -1
  271. package/src/public/avm/test_utils.ts +1 -1
  272. package/src/public/contracts_db_checkpoint.ts +41 -0
  273. package/src/public/db_interfaces.ts +16 -1
  274. package/src/public/debug_fn_name.ts +26 -1
  275. package/src/public/executor_metrics.ts +2 -1
  276. package/src/public/executor_metrics_interface.ts +2 -1
  277. package/src/public/fixtures/amm_test.ts +2 -2
  278. package/src/public/fixtures/bulk_test.ts +1 -1
  279. package/src/public/fixtures/custom_bytecode_tester.ts +1 -1
  280. package/src/public/fixtures/custom_bytecode_tests.ts +24 -0
  281. package/src/public/fixtures/minimal_public_tx.ts +3 -4
  282. package/src/public/fixtures/public_tx_simulation_tester.ts +47 -16
  283. package/src/public/fixtures/simple_contract_data_source.ts +8 -9
  284. package/src/public/fixtures/token_test.ts +18 -10
  285. package/src/public/fixtures/utils.ts +4 -4
  286. package/src/public/fuzzing/avm_fuzzer_simulator.ts +233 -0
  287. package/src/public/fuzzing/avm_simulator_bin.ts +121 -0
  288. package/src/public/hinting_db_sources.ts +108 -10
  289. package/src/public/index.ts +6 -4
  290. package/src/public/public_db_sources.ts +93 -172
  291. package/src/public/public_processor/guarded_merkle_tree.ts +4 -3
  292. package/src/public/public_processor/public_processor.ts +63 -48
  293. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +116 -0
  294. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +84 -57
  295. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +132 -0
  296. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +236 -0
  297. package/src/public/public_tx_simulator/dumping_cpp_public_tx_simulator.ts +81 -0
  298. package/src/public/public_tx_simulator/factories.ts +41 -0
  299. package/src/public/public_tx_simulator/index.ts +4 -0
  300. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +10 -14
  301. package/src/public/public_tx_simulator/public_tx_context.ts +9 -3
  302. package/src/public/public_tx_simulator/public_tx_simulator.ts +161 -193
  303. package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +1 -2
  304. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +3 -3
  305. package/src/public/side_effect_trace.ts +1 -1
  306. package/src/public/side_effect_trace_interface.ts +1 -1
  307. package/src/public/state_manager/nullifiers.ts +1 -1
  308. package/src/public/state_manager/public_storage.ts +1 -1
  309. package/src/public/state_manager/state_manager.ts +14 -14
  310. package/src/public/test_executor_metrics.ts +7 -5
  311. package/dest/public/tx_contract_cache.d.ts +0 -41
  312. package/dest/public/tx_contract_cache.d.ts.map +0 -1
  313. package/dest/public/tx_contract_cache.js +0 -49
  314. package/src/public/tx_contract_cache.ts +0 -69
@@ -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
@@ -25,7 +26,7 @@ export declare class GuardedMerkleTreeOperations implements MerkleTreeWriteOpera
25
26
  getTreeInfo(treeId: MerkleTreeId): Promise<TreeInfo>;
26
27
  getStateReference(): Promise<StateReference>;
27
28
  getInitialHeader(): BlockHeader;
28
- getRevision(): WorldStateRevision;
29
+ getRevision(): WorldStateRevision | WorldStateRevisionWithHandle;
29
30
  getSiblingPath<ID extends MerkleTreeId>(treeId: ID, index: bigint): Promise<SiblingPath<TreeHeights[ID]>>;
30
31
  getPreviousValueIndex<ID extends IndexedTreeId>(treeId: ID, value: bigint): Promise<{
31
32
  index: bigint;
@@ -35,7 +36,7 @@ export declare class GuardedMerkleTreeOperations implements MerkleTreeWriteOpera
35
36
  findLeafIndices<ID extends MerkleTreeId>(treeId: ID, values: MerkleTreeLeafType<ID>[]): Promise<(bigint | undefined)[]>;
36
37
  findLeafIndicesAfter<ID extends MerkleTreeId>(treeId: ID, values: MerkleTreeLeafType<ID>[], startIndex: bigint): Promise<(bigint | undefined)[]>;
37
38
  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)[]>;
39
+ getBlockNumbersForLeafIndices<ID extends MerkleTreeId>(treeId: ID, leafIndices: bigint[]): Promise<(BlockNumber | undefined)[]>;
39
40
  createCheckpoint(): Promise<void>;
40
41
  commitCheckpoint(): Promise<void>;
41
42
  revertCheckpoint(): Promise<void>;
@@ -46,4 +47,4 @@ export declare class GuardedMerkleTreeOperations implements MerkleTreeWriteOpera
46
47
  index: bigint;
47
48
  } | undefined)[]>;
48
49
  }
49
- //# sourceMappingURL=guarded_merkle_tree.d.ts.map
50
+ //# 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":"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"}
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,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'>);
46
41
  get tracer(): Tracer;
47
42
  /**
48
43
  * Run each tx through the public circuit and the public kernel circuit if needed.
@@ -55,15 +50,13 @@ export declare class PublicProcessor implements Traceable {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9wdWJsaWNfcHJvY2Vzc29yL3B1YmxpY19wcm9jZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLFlBQVksRUFBa0MsTUFBTSx5QkFBeUIsQ0FBQztBQUl2RixPQUFPLEVBTUwscUJBQXFCLEVBQ3RCLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUdqRSxPQUFPLEtBQUssRUFDVix5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLHdCQUF3QixFQUN4QixlQUFlLEVBQ2hCLE1BQU0saUNBQWlDLENBQUM7QUFHekMsT0FBTyxFQUNMLEtBQUssUUFBUSxFQUNiLGVBQWUsRUFDZix5QkFBeUIsRUFDekIsS0FBSyxXQUFXLEVBRWhCLEVBQUUsRUFHSCxNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFFTCxLQUFLLGVBQWUsRUFDcEIsS0FBSyxTQUFTLEVBQ2QsS0FBSyxNQUFNLEVBR1osTUFBTSx5QkFBeUIsQ0FBQztBQUtqQyxPQUFPLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0seUJBQXlCLENBQUM7QUFDM0UsT0FBTyxFQUNMLEtBQUssdUJBQXVCLEVBQzVCLEtBQUssMEJBQTBCLEVBRWhDLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHdkU7O0dBRUc7QUFDSCxxQkFBYSxzQkFBc0I7SUFFL0IsT0FBTyxDQUFDLGtCQUFrQjtJQUMxQixPQUFPLENBQUMsWUFBWTtJQUNwQixTQUFTLENBQUMsZUFBZSxFQUFFLGVBQWU7SUFINUMsWUFDVSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFDdEMsWUFBWSxHQUFFLFlBQWlDLEVBQzdDLGVBQWUsR0FBRSxlQUFzQyxFQUMvRDtJQUVKOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUNYLFVBQVUsRUFBRSx5QkFBeUIsRUFDckMsZUFBZSxFQUFFLGVBQWUsRUFDaEMsTUFBTSxFQUFFLHFCQUFxQixHQUM1QixlQUFlLENBY2pCO0lBRUQsU0FBUyxDQUFDLHVCQUF1QixDQUMvQixVQUFVLEVBQUUseUJBQXlCLEVBQ3JDLFdBQVcsRUFBRSxpQkFBaUIsRUFDOUIsZUFBZSxFQUFFLGVBQWUsRUFDaEMsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLHVCQUF1QixDQUFDLEdBQ3hDLDBCQUEwQixDQUU1QjtDQUNGO0FBU0Q7OztHQUdHO0FBQ0gscUJBQWEsZUFBZ0IsWUFBVyxTQUFTO0lBSTdDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsZUFBZTtJQUMxQyxPQUFPLENBQUMsaUJBQWlCO0lBQ3pCLFNBQVMsQ0FBQyxXQUFXLEVBQUUsaUJBQWlCO0lBQ3hDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSwwQkFBMEI7SUFDdkQsT0FBTyxDQUFDLFlBQVk7SUFFcEIsT0FBTyxDQUFDLEdBQUc7SUFDWCxPQUFPLENBQUMsSUFBSTtJQVZkLE9BQU8sQ0FBQyxPQUFPLENBQXlCO0lBRXhDLFlBQ1ksZUFBZSxFQUFFLGVBQWUsRUFDbEMsaUJBQWlCLEVBQUUsMkJBQTJCLEVBQzVDLFdBQVcsRUFBRSxpQkFBaUIsRUFDOUIsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQy9DLFlBQVksRUFBRSxZQUFZLEVBQ2xDLGVBQWUsR0FBRSxlQUFzQyxFQUMvQyxHQUFHLHlDQUE2QyxFQUNoRCxJQUFJLEdBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSw0QkFBNEIsQ0FBTSxFQUd2RTtJQUVELElBQUksTUFBTSxJQUFJLE1BQU0sQ0FFbkI7SUFFRDs7Ozs7O09BTUc7SUFDVSxPQUFPLENBQ2xCLEdBQUcsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsYUFBYSxDQUFDLEVBQUUsQ0FBQyxFQUNyQyxNQUFNLEdBQUUscUJBQTBCLEVBQ2xDLFNBQVMsR0FBRSx3QkFBNkIsR0FDdkMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUseUJBQXlCLEVBQUUsQ0FBQyxDQUFDLENBaU16RTtZQUVhLHdCQUF3QjtZQWlCeEIsU0FBUztZQTJCVCxnQ0FBZ0M7WUE0QmhDLHVCQUF1QjtZQWdEdkIsZ0NBQWdDO1lBMEJoQyxvQkFBb0I7WUErQnBCLHdCQUF3QjtJQXlDdEM7O09BRUc7SUFDSCxPQUFPLENBQUMsTUFBTSxDQUFDLHNCQUFzQjtDQVN0QyJ9
@@ -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,CAAM,EAGvE;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,CAAC,CAAC,CAiMzE;YAEa,wBAAwB;YAiBxB,SAAS;YA2BT,gCAAgC;YA4BhC,uBAAuB;YAgDvB,gCAAgC;YA0BhC,oBAAoB;YA+BpB,wBAAwB;IAyCtC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;CAStC"}
@@ -6,23 +6,24 @@ function _ts_decorate(decorators, target, key, desc) {
6
6
  }
7
7
  import { MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, NULLIFIER_SUBTREE_HEIGHT } from '@aztec/constants';
8
8
  import { padArrayEnd } from '@aztec/foundation/collection';
9
- import { Fr } from '@aztec/foundation/fields';
9
+ import { Fr } from '@aztec/foundation/curves/bn254';
10
10
  import { createLogger } from '@aztec/foundation/log';
11
11
  import { sleep } from '@aztec/foundation/sleep';
12
12
  import { DateProvider, Timer, elapsed, executeTimeout } from '@aztec/foundation/timer';
13
13
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
14
14
  import { ContractClassPublishedEvent } from '@aztec/protocol-contracts/class-registry';
15
15
  import { computeFeePayerBalanceLeafSlot, computeFeePayerBalanceStorageSlot } from '@aztec/protocol-contracts/fee-juice';
16
- import { PublicDataWrite } from '@aztec/stdlib/avm';
16
+ import { AvmCircuitInputs, AvmExecutionHints, PublicDataWrite } from '@aztec/stdlib/avm';
17
17
  import { computeTransactionFee } from '@aztec/stdlib/fees';
18
18
  import { Gas } from '@aztec/stdlib/gas';
19
+ import { ProvingRequestType } from '@aztec/stdlib/proofs';
19
20
  import { MerkleTreeId } from '@aztec/stdlib/trees';
20
- import { NestedProcessReturnValues, Tx, TxExecutionPhase, makeProcessedTxFromPrivateOnlyTx, makeProcessedTxFromTxWithPublicCalls } from '@aztec/stdlib/tx';
21
+ import { NestedProcessReturnValues, Tx, makeProcessedTxFromPrivateOnlyTx, makeProcessedTxFromTxWithPublicCalls } from '@aztec/stdlib/tx';
21
22
  import { Attributes, getTelemetryClient, trackSpan } from '@aztec/telemetry-client';
22
23
  import { ForkCheckpoint } from '@aztec/world-state/native';
23
24
  import { AssertionError } from 'assert';
24
25
  import { PublicContractsDB, PublicTreesDB } from '../public_db_sources.js';
25
- import { TelemetryPublicTxSimulator } from '../public_tx_simulator/index.js';
26
+ import { TelemetryCppPublicTxSimulator } from '../public_tx_simulator/index.js';
26
27
  import { GuardedMerkleTreeOperations } from './guarded_merkle_tree.js';
27
28
  import { PublicProcessorMetrics } from './public_processor_metrics.js';
28
29
  /**
@@ -44,17 +45,11 @@ import { PublicProcessorMetrics } from './public_processor_metrics.js';
44
45
  */ create(merkleTree, globalVariables, config) {
45
46
  const contractsDB = new PublicContractsDB(this.contractDataSource);
46
47
  const guardedFork = new GuardedMerkleTreeOperations(merkleTree);
47
- const publicTxSimulator = this.createPublicTxSimulator(guardedFork, contractsDB, globalVariables, {
48
- proverId: config.proverId,
49
- doMerkleOperations: true,
50
- skipFeeEnforcement: config.skipFeeEnforcement,
51
- clientInitiatedSimulation: config.clientInitiatedSimulation,
52
- maxDebugLogMemoryReads: config.maxDebugLogMemoryReads
53
- });
48
+ const publicTxSimulator = this.createPublicTxSimulator(guardedFork, contractsDB, globalVariables, config);
54
49
  return new PublicProcessor(globalVariables, guardedFork, contractsDB, publicTxSimulator, this.dateProvider, this.telemetryClient);
55
50
  }
56
51
  createPublicTxSimulator(merkleTree, contractsDB, globalVariables, config) {
57
- return new TelemetryPublicTxSimulator(merkleTree, contractsDB, globalVariables, this.telemetryClient, config);
52
+ return new TelemetryCppPublicTxSimulator(merkleTree, contractsDB, globalVariables, this.telemetryClient, config);
58
53
  }
59
54
  }
60
55
  class PublicProcessorTimeoutError extends Error {
@@ -171,10 +166,12 @@ class PublicProcessorTimeoutError extends Error {
171
166
  // Note: We use the underlying fork here not the guarded one, this ensures that it's not impacted by stopping the guarded version
172
167
  const checkpoint = await ForkCheckpoint.new(this.guardedMerkleTree.getUnderlyingFork());
173
168
  const startStateReference = await this.guardedMerkleTree.getUnderlyingFork().getStateReference();
169
+ this.contractsDB.createCheckpoint();
174
170
  try {
175
171
  const [processedTx, returnValues] = await this.processTx(tx, deadline);
172
+ const txBlobFields = processedTx.txEffect.getNumBlobFields();
176
173
  // If the actual size of this tx would exceed block size, skip it
177
- const txSize = processedTx.txEffect.getDASize();
174
+ const txSize = txBlobFields * Fr.SIZE_IN_BYTES;
178
175
  if (maxBlockSize !== undefined && totalSizeInBytes + txSize > maxBlockSize) {
179
176
  this.log.debug(`Skipping processed tx ${txHash} sized ${txSize} due to max block size.`, {
180
177
  txHash,
@@ -184,10 +181,10 @@ class PublicProcessorTimeoutError extends Error {
184
181
  });
185
182
  // Need to revert the checkpoint here and don't go any further
186
183
  await checkpoint.revert();
184
+ this.contractsDB.revertCheckpoint();
187
185
  continue;
188
186
  }
189
187
  // If the actual blob fields of this tx would exceed the limit, skip it
190
- const txBlobFields = processedTx.txEffect.toBlobFields().length;
191
188
  if (maxBlobFields !== undefined && totalBlobFields + txBlobFields > maxBlobFields) {
192
189
  this.log.debug(`Skipping processed tx ${txHash} with ${txBlobFields} blob fields due to max blob fields limit.`, {
193
190
  txHash,
@@ -197,6 +194,7 @@ class PublicProcessorTimeoutError extends Error {
197
194
  });
198
195
  // Need to revert the checkpoint here and don't go any further
199
196
  await checkpoint.revert();
197
+ this.contractsDB.revertCheckpoint();
200
198
  continue;
201
199
  }
202
200
  // FIXME(fcarreiro): it's ugly to have to notify the validator of nullifiers.
@@ -225,6 +223,8 @@ class PublicProcessorTimeoutError extends Error {
225
223
  // Now we want to revert any/all remaining checkpoints, destroying any outstanding state updates.
226
224
  // This needs to be done directly on the underlying fork as the guarded fork has been stopped.
227
225
  await this.guardedMerkleTree.getUnderlyingFork().revertAllCheckpoints();
226
+ // Revert any contracts added to the DB for the tx.
227
+ this.contractsDB.revertCheckpoint();
228
228
  // Ensure we're at the same state as when we started processing this tx.
229
229
  await this.checkWorldStateUnchanged(startStateReference, txHash, err);
230
230
  break;
@@ -232,6 +232,7 @@ class PublicProcessorTimeoutError extends Error {
232
232
  // Roll back state to start of TX before proceeding to next TX
233
233
  await checkpoint.revert();
234
234
  await this.guardedMerkleTree.getUnderlyingFork().revertAllCheckpoints();
235
+ this.contractsDB.revertCheckpoint();
235
236
  const errorMessage = err instanceof Error || err instanceof AssertionError ? err.message : 'Unknown error';
236
237
  this.log.warn(`Failed to process tx ${txHash.toString()}: ${errorMessage} ${err?.stack}`);
237
238
  failed.push({
@@ -244,8 +245,7 @@ class PublicProcessorTimeoutError extends Error {
244
245
  } finally{
245
246
  // Base case is we always commit the checkpoint. Using the ForkCheckpoint means this has no effect if the tx was previously reverted
246
247
  await checkpoint.commit();
247
- // The tx-level contracts cache should not live on to the next tx
248
- this.contractsDB.clearContractsForTx();
248
+ this.contractsDB.commitCheckpointOkIfNone();
249
249
  }
250
250
  }
251
251
  const duration = timer.s();
@@ -371,10 +371,7 @@ class PublicProcessorTimeoutError extends Error {
371
371
  this.metrics.recordClassPublication(...tx.getContractClassLogs().filter((log)=>ContractClassPublishedEvent.isContractClassPublishedEvent(log)).map((log)=>ContractClassPublishedEvent.fromLog(log)));
372
372
  // Fee payment insertion has already been done. Do the rest.
373
373
  await this.doTreeInsertionsForPrivateOnlyTx(processedTx);
374
- // Add any contracts registered/deployed in this private-only tx to the block-level cache
375
- // (add to tx-level cache and then commit to block-level cache)
376
374
  await this.contractsDB.addNewContracts(tx);
377
- this.contractsDB.commitContractsForTx();
378
375
  return [
379
376
  processedTx,
380
377
  undefined
@@ -382,30 +379,34 @@ class PublicProcessorTimeoutError extends Error {
382
379
  }
383
380
  async processTxWithPublicCalls(tx) {
384
381
  const timer = new Timer();
385
- const { avmProvingRequest, gasUsed, revertCode, revertReason, processedPhases } = await this.publicTxSimulator.simulate(tx);
386
- if (!avmProvingRequest) {
387
- this.metrics.recordFailedTx();
388
- throw new Error('Avm proving result was not generated.');
389
- }
390
- processedPhases.forEach((phase)=>{
391
- if (phase.reverted) {
392
- this.metrics.recordRevertedPhase(phase.phase);
393
- } else {
394
- this.metrics.recordPhaseDuration(phase.phase, phase.durationMs ?? 0);
395
- }
396
- });
382
+ const result = await this.publicTxSimulator.simulate(tx);
383
+ // TODO: use the callStackMetadata here to extract more data about public execution
384
+ const { hints, publicInputs, publicTxEffect, gasUsed, revertCode/*callStackMetadata*/ } = result;
397
385
  const contractClassLogs = revertCode.isOK() ? tx.getContractClassLogs() : tx.getSplitContractClassLogs(false);
398
386
  this.metrics.recordClassPublication(...contractClassLogs.filter((log)=>ContractClassPublishedEvent.isContractClassPublishedEvent(log)).map((log)=>ContractClassPublishedEvent.fromLog(log)));
399
- const phaseCount = processedPhases.length;
387
+ // TODO(fcarreiro): remove phase count metric.
400
388
  const durationMs = timer.ms();
401
- this.metrics.recordTx(phaseCount, durationMs, gasUsed.publicGas);
402
- const processedTx = makeProcessedTxFromTxWithPublicCalls(tx, avmProvingRequest, gasUsed, revertCode, revertReason);
403
- const returnValues = processedPhases.find(({ phase })=>phase === TxExecutionPhase.APP_LOGIC)?.returnValues ?? [];
389
+ this.metrics.recordTx(/*phaseCount=*/ 1, durationMs, gasUsed.publicGas);
390
+ // Extract the return values from the call stack metadata.
391
+ const appLogicReturnValues = result.getAppLogicReturnValues();
392
+ // Extract the revert reason from the call stack metadata.
393
+ const revertReason = result.findRevertReason();
394
+ // Create proving request if we have hints and public inputs.
395
+ const avmProvingRequest = hints && publicInputs ? PublicProcessor.generateProvingRequest(publicInputs, hints) : undefined;
396
+ const processedTx = makeProcessedTxFromTxWithPublicCalls(tx, this.globalVariables, avmProvingRequest, publicTxEffect, gasUsed, revertCode, revertReason);
404
397
  return [
405
398
  processedTx,
406
- returnValues
399
+ appLogicReturnValues
407
400
  ];
408
401
  }
402
+ /**
403
+ * Generate the proving request for the AVM circuit.
404
+ */ static generateProvingRequest(publicInputs, hints = AvmExecutionHints.empty()) {
405
+ return {
406
+ type: ProvingRequestType.PUBLIC_VM,
407
+ inputs: new AvmCircuitInputs(hints, publicInputs)
408
+ };
409
+ }
409
410
  }
410
411
  _ts_decorate([
411
412
  trackSpan('PublicProcessor.processTx', (tx)=>({
@@ -24,4 +24,4 @@ export declare class PublicProcessorMetrics {
24
24
  recordClassPublication(...events: ContractClassPublishedEvent[]): void;
25
25
  recordTreeInsertions(durationUs: number): void;
26
26
  }
27
- //# sourceMappingURL=public_processor_metrics.d.ts.map
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvcl9tZXRyaWNzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHVibGljL3B1YmxpY19wcm9jZXNzb3IvcHVibGljX3Byb2Nlc3Nvcl9tZXRyaWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUYsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBS0wsS0FBSyxlQUFlLEVBQ3BCLEtBQUssTUFBTSxFQUdaLE1BQU0seUJBQXlCLENBQUM7QUFFakMscUJBQWEsc0JBQXNCO0lBQ2pDLFNBQWdCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFFL0IsT0FBTyxDQUFDLFVBQVUsQ0FBWTtJQUM5QixPQUFPLENBQUMsT0FBTyxDQUFnQjtJQUMvQixPQUFPLENBQUMsWUFBWSxDQUFnQjtJQUVwQyxPQUFPLENBQUMsYUFBYSxDQUFZO0lBQ2pDLE9BQU8sQ0FBQyxVQUFVLENBQWdCO0lBRWxDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBWTtJQUNwQyxPQUFPLENBQUMsUUFBUSxDQUFRO0lBQ3hCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBWTtJQUNyQyxPQUFPLENBQUMsT0FBTyxDQUFZO0lBQzNCLE9BQU8sQ0FBQyxLQUFLLENBQVk7SUFFekIsT0FBTyxDQUFDLHFCQUFxQixDQUFZO0lBRXpDLFlBQVksTUFBTSxFQUFFLGVBQWUsRUFBRSxJQUFJLFNBQW9CLEVBMEQ1RDtJQUVELG1CQUFtQixDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUdsRTtJQUVELFFBQVEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsUUFZNUQ7SUFFRCxZQUFZLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxRQWdCMUM7SUFFRCxjQUFjLFNBSWI7SUFFRCxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLFFBRTlDO0lBRUQsc0JBQXNCLENBQUMsR0FBRyxNQUFNLEVBQUUsMkJBQTJCLEVBQUUsUUFTOUQ7SUFFRCxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsTUFBTSxRQUV0QztDQUNGIn0=
@@ -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,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;gBAE7B,MAAM,EAAE,eAAe,EAAE,IAAI,SAAoB;IA4D7D,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM;IAKnE,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAc7D,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;IAkB3C,cAAc;IAMd,mBAAmB,CAAC,SAAS,EAAE,gBAAgB;IAI/C,sBAAsB,CAAC,GAAG,MAAM,EAAE,2BAA2B,EAAE;IAW/D,oBAAoB,CAAC,UAAU,EAAE,MAAM;CAGxC"}
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,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,YAAY,MAAM,EAAE,eAAe,EAAE,IAAI,SAAoB,EA0D5D;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"}
@@ -0,0 +1,18 @@
1
+ import type { ContractProvider } from '@aztec/native';
2
+ import type { GlobalVariables } from '@aztec/stdlib/tx';
3
+ import type { PublicContractsDB } from '../public_db_sources.js';
4
+ export declare class ContractProviderForCpp implements ContractProvider {
5
+ private contractsDB;
6
+ private globalVariables;
7
+ private log;
8
+ constructor(contractsDB: PublicContractsDB, globalVariables: GlobalVariables);
9
+ getContractInstance: (address: string) => Promise<Buffer<ArrayBufferLike> | undefined>;
10
+ getContractClass: (classId: string) => Promise<Buffer<ArrayBufferLike> | undefined>;
11
+ addContracts: (contractDeploymentDataBuffer: Buffer<ArrayBufferLike>) => Promise<void>;
12
+ getBytecodeCommitment: (classId: string) => Promise<Buffer<ArrayBufferLike> | undefined>;
13
+ getDebugFunctionName: (address: string, selector: string) => Promise<string | undefined>;
14
+ createCheckpoint: () => Promise<void>;
15
+ commitCheckpoint: () => Promise<void>;
16
+ revertCheckpoint: () => Promise<void>;
17
+ }
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfcHJvdmlkZXJfZm9yX2NwcC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9wdWJsaWNfdHhfc2ltdWxhdG9yL2NvbnRyYWN0X3Byb3ZpZGVyX2Zvcl9jcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLdEQsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFeEQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVqRSxxQkFBYSxzQkFBdUIsWUFBVyxnQkFBZ0I7SUFJM0QsT0FBTyxDQUFDLFdBQVc7SUFDbkIsT0FBTyxDQUFDLGVBQWU7SUFKekIsT0FBTyxDQUFDLEdBQUcsQ0FBK0Q7SUFFMUUsWUFDVSxXQUFXLEVBQUUsaUJBQWlCLEVBQzlCLGVBQWUsRUFBRSxlQUFlLEVBQ3RDO0lBRUcsbUJBQW1CLG9FQWF4QjtJQUVLLGdCQUFnQixvRUFlckI7SUFFSyxZQUFZLDJFQVdqQjtJQUVLLHFCQUFxQixvRUFnQjFCO0lBRUssb0JBQW9CLHFFQWlCekI7SUFFSyxnQkFBZ0Isc0JBR3JCO0lBRUssZ0JBQWdCLHNCQUdyQjtJQUVLLGdCQUFnQixzQkFHckI7Q0FDSCJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract_provider_for_cpp.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/contract_provider_for_cpp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAKtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,qBAAa,sBAAuB,YAAW,gBAAgB;IAI3D,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,eAAe;IAJzB,OAAO,CAAC,GAAG,CAA+D;IAE1E,YACU,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EACtC;IAEG,mBAAmB,oEAaxB;IAEK,gBAAgB,oEAerB;IAEK,YAAY,2EAWjB;IAEK,qBAAqB,oEAgB1B;IAEK,oBAAoB,qEAiBzB;IAEK,gBAAgB,sBAGrB;IAEK,gBAAgB,sBAGrB;IAEK,gBAAgB,sBAGrB;CACH"}
@@ -0,0 +1,94 @@
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+ import { createLogger } from '@aztec/foundation/log';
3
+ import { FunctionSelector } from '@aztec/stdlib/abi';
4
+ import { deserializeFromMessagePack, serializeWithMessagePack } from '@aztec/stdlib/avm';
5
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
6
+ import { ContractDeploymentData } from '@aztec/stdlib/contract';
7
+ export class ContractProviderForCpp {
8
+ contractsDB;
9
+ globalVariables;
10
+ log;
11
+ constructor(contractsDB, globalVariables){
12
+ this.contractsDB = contractsDB;
13
+ this.globalVariables = globalVariables;
14
+ this.log = createLogger('simulator:contract_provider_for_cpp');
15
+ this.getContractInstance = async (address)=>{
16
+ this.log.debug(`Contract provider callback: getContractInstance(${address})`);
17
+ const aztecAddr = AztecAddress.fromString(address);
18
+ const instance = await this.contractsDB.getContractInstance(aztecAddr, this.globalVariables.timestamp);
19
+ if (!instance) {
20
+ this.log.debug(`Contract instance not found: ${address}`);
21
+ return undefined;
22
+ }
23
+ return serializeWithMessagePack(instance);
24
+ };
25
+ this.getContractClass = async (classId)=>{
26
+ this.log.debug(`Contract provider callback: getContractClass(${classId})`);
27
+ // Parse classId string to Fr
28
+ const classIdFr = Fr.fromString(classId);
29
+ // Fetch contract class from the contracts DB
30
+ const contractClass = await this.contractsDB.getContractClass(classIdFr);
31
+ if (!contractClass) {
32
+ this.log.debug(`Contract class not found: ${classId}`);
33
+ return undefined;
34
+ }
35
+ return serializeWithMessagePack(contractClass);
36
+ };
37
+ this.addContracts = async (contractDeploymentDataBuffer)=>{
38
+ this.log.debug(`Contract provider callback: addContracts`);
39
+ const rawData = deserializeFromMessagePack(contractDeploymentDataBuffer);
40
+ // Construct ContractDeploymentData from plain object.
41
+ const contractDeploymentData = ContractDeploymentData.fromPlainObject(rawData);
42
+ // Add contracts to the contracts DB
43
+ this.log.debug(`Calling contractsDB.addContracts`);
44
+ await this.contractsDB.addContracts(contractDeploymentData);
45
+ };
46
+ this.getBytecodeCommitment = async (classId)=>{
47
+ this.log.debug(`Contract provider callback: getBytecodeCommitment(${classId})`);
48
+ // Parse classId string to Fr
49
+ const classIdFr = Fr.fromString(classId);
50
+ // Fetch bytecode commitment from the contracts DB
51
+ const commitment = await this.contractsDB.getBytecodeCommitment(classIdFr);
52
+ if (!commitment) {
53
+ this.log.debug(`Bytecode commitment not found: ${classId}`);
54
+ return undefined;
55
+ }
56
+ // Serialize the Fr to buffer
57
+ return serializeWithMessagePack(commitment);
58
+ };
59
+ this.getDebugFunctionName = async (address, selector)=>{
60
+ this.log.debug(`Contract provider callback: getDebugFunctionName(${address}, ${selector})`);
61
+ // Parse address and selector strings
62
+ const aztecAddr = AztecAddress.fromString(address);
63
+ const selectorFr = Fr.fromString(selector);
64
+ const functionSelector = FunctionSelector.fromField(selectorFr);
65
+ // Fetch debug function name from the contracts DB
66
+ const name = await this.contractsDB.getDebugFunctionName(aztecAddr, functionSelector);
67
+ if (!name) {
68
+ this.log.debug(`Debug function name not found for ${address}:${selector}`);
69
+ return undefined;
70
+ }
71
+ return name;
72
+ };
73
+ this.createCheckpoint = ()=>{
74
+ this.log.debug(`Contract provider callback: createCheckpoint`);
75
+ return Promise.resolve(this.contractsDB.createCheckpoint());
76
+ };
77
+ this.commitCheckpoint = ()=>{
78
+ this.log.debug(`Contract provider callback: commitCheckpoint`);
79
+ return Promise.resolve(this.contractsDB.commitCheckpoint());
80
+ };
81
+ this.revertCheckpoint = ()=>{
82
+ this.log.debug(`Contract provider callback: revertCheckpoint`);
83
+ return Promise.resolve(this.contractsDB.revertCheckpoint());
84
+ };
85
+ }
86
+ getContractInstance;
87
+ getContractClass;
88
+ addContracts;
89
+ getBytecodeCommitment;
90
+ getDebugFunctionName;
91
+ createCheckpoint;
92
+ commitCheckpoint;
93
+ revertCheckpoint;
94
+ }
@@ -1,41 +1,38 @@
1
1
  import { type Logger } from '@aztec/foundation/log';
2
+ import { type PublicSimulatorConfig, PublicTxResult } from '@aztec/stdlib/avm';
2
3
  import type { MerkleTreeWriteOperations } from '@aztec/stdlib/trees';
3
4
  import type { GlobalVariables, Tx } from '@aztec/stdlib/tx';
5
+ import { type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
4
6
  import type { ExecutorMetricsInterface } from '../executor_metrics_interface.js';
5
7
  import type { PublicContractsDB } from '../public_db_sources.js';
6
- import { type PublicTxResult, PublicTxSimulator, type PublicTxSimulatorConfig } from './public_tx_simulator.js';
8
+ import { PublicTxSimulator } from './public_tx_simulator.js';
7
9
  import type { MeasuredPublicTxSimulatorInterface, PublicTxSimulatorInterface } from './public_tx_simulator_interface.js';
8
10
  /**
9
- * C++ implementation of PublicTxSimulator using pre-collected hints.
10
- * This implementation runs TS simulation first to collect all hints,
11
- * then passes the complete AvmCircuitInputs (hints + public inputs)
12
- * to C++ to run hinted simulation.
11
+ * C++ implementation of PublicTxSimulator using the C++ simulator.
12
+ * The C++ simulator accesses the world state directly/natively within C++.
13
+ * For contract DB accesses, it makes callbacks through NAPI back to the TS PublicContractsDB cache.
13
14
  */
14
- export declare class CppPublicTxSimulatorHintedDbs extends PublicTxSimulator implements PublicTxSimulatorInterface {
15
+ export declare class CppPublicTxSimulator extends PublicTxSimulator implements PublicTxSimulatorInterface {
15
16
  protected log: Logger;
16
- constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, config?: Partial<PublicTxSimulatorConfig>);
17
+ constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, config?: Partial<PublicSimulatorConfig>);
17
18
  /**
18
- * Simulate a transaction's public portion using the C++ vm2 simulator with hinted DBs.
19
- *
20
- * This implementation:
21
- * 1. Runs the full TypeScript simulation to generate AvmCircuitInputs (hints + public inputs)
22
- * 2. Passes the complete AvmCircuitInputs to C++ to run hinted simulation
19
+ * Simulate a transaction's public portion using the C++ avvm simulator.
23
20
  *
24
21
  * @param tx - The transaction to simulate.
25
22
  * @returns The result of the transaction's public execution.
26
23
  */
27
24
  simulate(tx: Tx): Promise<PublicTxResult>;
28
25
  }
29
- /**
30
- * Class to record metrics for simulation.
31
- *
32
- * Note(dbanks12): We might not be able to collect all the same metrics in C++ as we do in TS!
33
- * Unless we move some of the metrics collection to C++, we don't have inner functions exposed
34
- * to TS for tracking.
35
- */
36
- export declare class MeasuredCppPublicTxSimulatorHintedDbs extends CppPublicTxSimulatorHintedDbs implements MeasuredPublicTxSimulatorInterface {
26
+ export declare class MeasuredCppPublicTxSimulator extends CppPublicTxSimulator implements MeasuredPublicTxSimulatorInterface {
37
27
  protected readonly metrics: ExecutorMetricsInterface;
38
- constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, metrics: ExecutorMetricsInterface, config?: Partial<PublicTxSimulatorConfig>);
28
+ constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, metrics: ExecutorMetricsInterface, config?: Partial<PublicSimulatorConfig>);
39
29
  simulate(tx: Tx, txLabel?: string): Promise<PublicTxResult>;
40
30
  }
41
- //# sourceMappingURL=cpp_public_tx_simulator.d.ts.map
31
+ /**
32
+ * A C++ public tx simulator that tracks runtime/production metrics with telemetry.
33
+ */
34
+ export declare class TelemetryCppPublicTxSimulator extends MeasuredCppPublicTxSimulator {
35
+ readonly tracer: Tracer;
36
+ constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, telemetryClient?: TelemetryClient, config?: Partial<PublicSimulatorConfig>);
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BwX3B1YmxpY190eF9zaW11bGF0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMvcHVibGljX3R4X3NpbXVsYXRvci9jcHBfcHVibGljX3R4X3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQTBCLE1BQU0sdUJBQXVCLENBQUM7QUFHNUUsT0FBTyxFQUdMLEtBQUsscUJBQXFCLEVBQzFCLGNBQWMsRUFFZixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVELE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBRSxLQUFLLE1BQU0sRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUtoRyxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pGLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxLQUFLLEVBQ1Ysa0NBQWtDLEVBQ2xDLDBCQUEwQixFQUMzQixNQUFNLG9DQUFvQyxDQUFDO0FBRTVDOzs7O0dBSUc7QUFDSCxxQkFBYSxvQkFBcUIsU0FBUSxpQkFBa0IsWUFBVywwQkFBMEI7SUFDL0YsVUFBbUIsR0FBRyxFQUFFLE1BQU0sQ0FBQztJQUUvQixZQUNFLFVBQVUsRUFBRSx5QkFBeUIsRUFDckMsV0FBVyxFQUFFLGlCQUFpQixFQUM5QixlQUFlLEVBQUUsZUFBZSxFQUNoQyxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUMscUJBQXFCLENBQUMsRUFJeEM7SUFFRDs7Ozs7T0FLRztJQUNtQixRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLENBMEQ5RDtDQUNGO0FBRUQscUJBQWEsNEJBQTZCLFNBQVEsb0JBQXFCLFlBQVcsa0NBQWtDO0lBS2hILFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLHdCQUF3QjtJQUp0RCxZQUNFLFVBQVUsRUFBRSx5QkFBeUIsRUFDckMsV0FBVyxFQUFFLGlCQUFpQixFQUM5QixlQUFlLEVBQUUsZUFBZSxFQUNiLE9BQU8sRUFBRSx3QkFBd0IsRUFDcEQsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEVBR3hDO0lBRXFCLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRSxNQUFzQixHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FTL0Y7Q0FDRjtBQUVEOztHQUVHO0FBQ0gscUJBQWEsNkJBQThCLFNBQVEsNEJBQTRCO0lBRTdFLFNBQWdCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFFL0IsWUFDRSxVQUFVLEVBQUUseUJBQXlCLEVBQ3JDLFdBQVcsRUFBRSxpQkFBaUIsRUFDOUIsZUFBZSxFQUFFLGVBQWUsRUFDaEMsZUFBZSxHQUFFLGVBQXNDLEVBQ3ZELE1BQU0sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxFQUt4QztDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"cpp_public_tx_simulator.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/cpp_public_tx_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAIlE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,KAAK,cAAc,EAAE,iBAAiB,EAAE,KAAK,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAChH,OAAO,KAAK,EACV,kCAAkC,EAClC,0BAA0B,EAC3B,MAAM,oCAAoC,CAAC;AAE5C;;;;;GAKG;AACH,qBAAa,6BAA8B,SAAQ,iBAAkB,YAAW,0BAA0B;IACxG,UAAmB,GAAG,EAAE,MAAM,CAAC;gBAG7B,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EAChC,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC;IAM3C;;;;;;;;;OASG;IACmB,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;CAkDhE;AAED;;;;;;GAMG;AACH,qBAAa,qCACX,SAAQ,6BACR,YAAW,kCAAkC;IAM3C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,wBAAwB;gBAHpD,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EACb,OAAO,EAAE,wBAAwB,EACpD,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC;IAKrB,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC,cAAc,CAAC;CAUjG"}
1
+ {"version":3,"file":"cpp_public_tx_simulator.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/cpp_public_tx_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAA0B,MAAM,uBAAuB,CAAC;AAG5E,OAAO,EAGL,KAAK,qBAAqB,EAC1B,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,MAAM,EAAsB,MAAM,yBAAyB,CAAC;AAKhG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EACV,kCAAkC,EAClC,0BAA0B,EAC3B,MAAM,oCAAoC,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,iBAAkB,YAAW,0BAA0B;IAC/F,UAAmB,GAAG,EAAE,MAAM,CAAC;IAE/B,YACE,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EAChC,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,EAIxC;IAED;;;;;OAKG;IACmB,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CA0D9D;CACF;AAED,qBAAa,4BAA6B,SAAQ,oBAAqB,YAAW,kCAAkC;IAKhH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,wBAAwB;IAJtD,YACE,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EACb,OAAO,EAAE,wBAAwB,EACpD,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,EAGxC;IAEqB,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC,cAAc,CAAC,CAS/F;CACF;AAED;;GAEG;AACH,qBAAa,6BAA8B,SAAQ,4BAA4B;IAE7E,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,YACE,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EAChC,eAAe,GAAE,eAAsC,EACvD,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,EAKxC;CACF"}