@aztec/simulator 0.0.1-commit.21caa21 → 0.0.1-commit.29c6b1a3

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 (295) hide show
  1. package/README.md +2 -0
  2. package/dest/common/errors.d.ts +8 -2
  3. package/dest/common/errors.d.ts.map +1 -1
  4. package/dest/private/acvm/deserialize.d.ts +2 -2
  5. package/dest/private/acvm/deserialize.d.ts.map +1 -1
  6. package/dest/private/acvm/deserialize.js +1 -1
  7. package/dest/private/acvm/serialize.d.ts +2 -2
  8. package/dest/private/acvm/serialize.d.ts.map +1 -1
  9. package/dest/private/acvm/serialize.js +1 -1
  10. package/dest/private/circuit_recording/circuit_recorder.d.ts +1 -1
  11. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
  12. package/dest/private/circuit_recording/circuit_recorder.js +16 -15
  13. package/dest/public/avm/avm_context.d.ts +3 -3
  14. package/dest/public/avm/avm_context.d.ts.map +1 -1
  15. package/dest/public/avm/avm_contract_call_result.d.ts +6 -6
  16. package/dest/public/avm/avm_contract_call_result.d.ts.map +1 -1
  17. package/dest/public/avm/avm_contract_call_result.js +3 -3
  18. package/dest/public/avm/avm_execution_environment.d.ts +7 -6
  19. package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
  20. package/dest/public/avm/avm_execution_environment.js +1 -1
  21. package/dest/public/avm/avm_gas.d.ts +1 -1
  22. package/dest/public/avm/avm_gas.d.ts.map +1 -1
  23. package/dest/public/avm/avm_machine_state.d.ts +7 -6
  24. package/dest/public/avm/avm_machine_state.d.ts.map +1 -1
  25. package/dest/public/avm/avm_machine_state.js +3 -2
  26. package/dest/public/avm/avm_memory_types.d.ts +2 -2
  27. package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
  28. package/dest/public/avm/avm_memory_types.js +4 -1
  29. package/dest/public/avm/avm_simulator.d.ts +4 -3
  30. package/dest/public/avm/avm_simulator.d.ts.map +1 -1
  31. package/dest/public/avm/avm_simulator.js +11 -9
  32. package/dest/public/avm/calldata.d.ts +51 -0
  33. package/dest/public/avm/calldata.d.ts.map +1 -0
  34. package/dest/public/avm/calldata.js +63 -0
  35. package/dest/public/avm/errors.d.ts +8 -2
  36. package/dest/public/avm/errors.d.ts.map +1 -1
  37. package/dest/public/avm/errors.js +14 -2
  38. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +1 -1
  39. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -1
  40. package/dest/public/avm/fixtures/avm_simulation_tester.js +4 -3
  41. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts +2 -2
  42. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +1 -1
  43. package/dest/public/avm/fixtures/base_avm_simulation_tester.js +1 -1
  44. package/dest/public/avm/fixtures/initializers.d.ts +2 -2
  45. package/dest/public/avm/fixtures/initializers.d.ts.map +1 -1
  46. package/dest/public/avm/fixtures/initializers.js +5 -4
  47. package/dest/public/avm/fixtures/utils.d.ts +4 -3
  48. package/dest/public/avm/fixtures/utils.d.ts.map +1 -1
  49. package/dest/public/avm/fixtures/utils.js +3 -2
  50. package/dest/public/avm/opcodes/accrued_substate.d.ts +16 -17
  51. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
  52. package/dest/public/avm/opcodes/accrued_substate.js +39 -39
  53. package/dest/public/avm/opcodes/addressing_mode.js +2 -2
  54. package/dest/public/avm/opcodes/arithmetic.d.ts +10 -8
  55. package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -1
  56. package/dest/public/avm/opcodes/arithmetic.js +12 -2
  57. package/dest/public/avm/opcodes/bitwise.d.ts +7 -7
  58. package/dest/public/avm/opcodes/bitwise.d.ts.map +1 -1
  59. package/dest/public/avm/opcodes/bitwise.js +5 -5
  60. package/dest/public/avm/opcodes/comparators.d.ts +4 -4
  61. package/dest/public/avm/opcodes/comparators.d.ts.map +1 -1
  62. package/dest/public/avm/opcodes/comparators.js +1 -1
  63. package/dest/public/avm/opcodes/contract.d.ts +3 -3
  64. package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
  65. package/dest/public/avm/opcodes/contract.js +8 -8
  66. package/dest/public/avm/opcodes/control_flow.d.ts +3 -3
  67. package/dest/public/avm/opcodes/control_flow.d.ts.map +1 -1
  68. package/dest/public/avm/opcodes/control_flow.js +4 -4
  69. package/dest/public/avm/opcodes/conversion.d.ts +3 -3
  70. package/dest/public/avm/opcodes/conversion.d.ts.map +1 -1
  71. package/dest/public/avm/opcodes/conversion.js +4 -4
  72. package/dest/public/avm/opcodes/ec_add.d.ts +4 -4
  73. package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
  74. package/dest/public/avm/opcodes/ec_add.js +17 -8
  75. package/dest/public/avm/opcodes/environment_getters.d.ts +5 -5
  76. package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -1
  77. package/dest/public/avm/opcodes/environment_getters.js +6 -6
  78. package/dest/public/avm/opcodes/external_calls.d.ts +9 -9
  79. package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -1
  80. package/dest/public/avm/opcodes/external_calls.js +23 -22
  81. package/dest/public/avm/opcodes/hashing.d.ts +8 -8
  82. package/dest/public/avm/opcodes/hashing.d.ts.map +1 -1
  83. package/dest/public/avm/opcodes/hashing.js +21 -16
  84. package/dest/public/avm/opcodes/instruction_impl.d.ts +4 -4
  85. package/dest/public/avm/opcodes/instruction_impl.d.ts.map +1 -1
  86. package/dest/public/avm/opcodes/instruction_impl.js +4 -4
  87. package/dest/public/avm/opcodes/memory.d.ts +14 -14
  88. package/dest/public/avm/opcodes/memory.d.ts.map +1 -1
  89. package/dest/public/avm/opcodes/memory.js +26 -26
  90. package/dest/public/avm/opcodes/misc.d.ts +3 -3
  91. package/dest/public/avm/opcodes/misc.d.ts.map +1 -1
  92. package/dest/public/avm/opcodes/misc.js +6 -6
  93. package/dest/public/avm/opcodes/storage.d.ts +16 -15
  94. package/dest/public/avm/opcodes/storage.d.ts.map +1 -1
  95. package/dest/public/avm/opcodes/storage.js +34 -24
  96. package/dest/public/avm/revert_reason.d.ts +2 -2
  97. package/dest/public/avm/revert_reason.d.ts.map +1 -1
  98. package/dest/public/avm/revert_reason.js +3 -2
  99. package/dest/public/avm/serialization/bytecode_serialization.d.ts +1 -1
  100. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  101. package/dest/public/avm/serialization/bytecode_serialization.js +9 -6
  102. package/dest/public/avm/serialization/instruction_serialization.js +1 -1
  103. package/dest/public/avm/test_utils.d.ts +2 -2
  104. package/dest/public/avm/test_utils.d.ts.map +1 -1
  105. package/dest/public/avm/test_utils.js +1 -1
  106. package/dest/public/contracts_db_checkpoint.d.ts +2 -2
  107. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -1
  108. package/dest/public/db_interfaces.d.ts +2 -2
  109. package/dest/public/db_interfaces.d.ts.map +1 -1
  110. package/dest/public/debug_fn_name.d.ts +16 -3
  111. package/dest/public/debug_fn_name.d.ts.map +1 -1
  112. package/dest/public/debug_fn_name.js +31 -3
  113. package/dest/public/executor_metrics.d.ts +1 -1
  114. package/dest/public/executor_metrics.d.ts.map +1 -1
  115. package/dest/public/executor_metrics.js +8 -34
  116. package/dest/public/fixtures/amm_test.js +2 -2
  117. package/dest/public/fixtures/bulk_test.d.ts +3 -3
  118. package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
  119. package/dest/public/fixtures/bulk_test.js +5 -69
  120. package/dest/public/fixtures/custom_bytecode_tester.d.ts +28 -6
  121. package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -1
  122. package/dest/public/fixtures/custom_bytecode_tester.js +36 -12
  123. package/dest/public/fixtures/custom_bytecode_tests.d.ts +11 -8
  124. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +1 -1
  125. package/dest/public/fixtures/custom_bytecode_tests.js +83 -18
  126. package/dest/public/fixtures/index.d.ts +4 -2
  127. package/dest/public/fixtures/index.d.ts.map +1 -1
  128. package/dest/public/fixtures/index.js +3 -1
  129. package/dest/public/fixtures/minimal_public_tx.d.ts +2 -7
  130. package/dest/public/fixtures/minimal_public_tx.d.ts.map +1 -1
  131. package/dest/public/fixtures/minimal_public_tx.js +4 -14
  132. package/dest/public/fixtures/opcode_spammer.d.ts +122 -0
  133. package/dest/public/fixtures/opcode_spammer.d.ts.map +1 -0
  134. package/dest/public/fixtures/opcode_spammer.js +1653 -0
  135. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +22 -3
  136. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  137. package/dest/public/fixtures/public_tx_simulation_tester.js +50 -13
  138. package/dest/public/fixtures/simple_contract_data_source.d.ts +5 -4
  139. package/dest/public/fixtures/simple_contract_data_source.d.ts.map +1 -1
  140. package/dest/public/fixtures/simple_contract_data_source.js +4 -4
  141. package/dest/public/fixtures/token_test.d.ts +6 -2
  142. package/dest/public/fixtures/token_test.d.ts.map +1 -1
  143. package/dest/public/fixtures/token_test.js +13 -11
  144. package/dest/public/fixtures/utils.d.ts +2 -2
  145. package/dest/public/fixtures/utils.d.ts.map +1 -1
  146. package/dest/public/fixtures/utils.js +4 -3
  147. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +60 -0
  148. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -0
  149. package/dest/public/fuzzing/avm_fuzzer_simulator.js +171 -0
  150. package/dest/public/fuzzing/avm_simulator_bin.d.ts +2 -0
  151. package/dest/public/fuzzing/avm_simulator_bin.d.ts.map +1 -0
  152. package/dest/public/fuzzing/avm_simulator_bin.js +118 -0
  153. package/dest/public/hinting_db_sources.d.ts +5 -3
  154. package/dest/public/hinting_db_sources.d.ts.map +1 -1
  155. package/dest/public/hinting_db_sources.js +7 -2
  156. package/dest/public/index.d.ts +2 -2
  157. package/dest/public/index.d.ts.map +1 -1
  158. package/dest/public/index.js +1 -1
  159. package/dest/public/public_db_sources.d.ts +2 -2
  160. package/dest/public/public_db_sources.d.ts.map +1 -1
  161. package/dest/public/public_db_sources.js +1 -1
  162. package/dest/public/public_processor/guarded_merkle_tree.d.ts +4 -2
  163. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  164. package/dest/public/public_processor/guarded_merkle_tree.js +5 -0
  165. package/dest/public/public_processor/public_processor.d.ts +6 -6
  166. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  167. package/dest/public/public_processor/public_processor.js +437 -43
  168. package/dest/public/public_processor/public_processor_metrics.d.ts +1 -1
  169. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  170. package/dest/public/public_processor/public_processor_metrics.js +12 -45
  171. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +1 -13
  172. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -1
  173. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +18 -53
  174. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +21 -34
  175. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +1 -1
  176. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +61 -139
  177. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +42 -0
  178. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +1 -0
  179. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +86 -0
  180. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +30 -0
  181. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +1 -0
  182. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +171 -0
  183. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +22 -0
  184. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +1 -0
  185. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.js +52 -0
  186. package/dest/public/public_tx_simulator/factories.d.ts +13 -0
  187. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -0
  188. package/dest/public/public_tx_simulator/factories.js +28 -0
  189. package/dest/public/public_tx_simulator/index.d.ts +4 -1
  190. package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
  191. package/dest/public/public_tx_simulator/index.js +3 -0
  192. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +3 -3
  193. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +1 -1
  194. package/dest/public/public_tx_simulator/public_tx_context.d.ts +2 -2
  195. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
  196. package/dest/public/public_tx_simulator/public_tx_context.js +1 -1
  197. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +6 -5
  198. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  199. package/dest/public/public_tx_simulator/public_tx_simulator.js +20 -11
  200. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +24 -1
  201. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts.map +1 -1
  202. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +2 -2
  203. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +1 -1
  204. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +395 -19
  205. package/dest/public/side_effect_trace.d.ts +3 -2
  206. package/dest/public/side_effect_trace.d.ts.map +1 -1
  207. package/dest/public/side_effect_trace.js +1 -1
  208. package/dest/public/side_effect_trace_interface.d.ts +2 -2
  209. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  210. package/dest/public/state_manager/nullifiers.d.ts +2 -2
  211. package/dest/public/state_manager/nullifiers.d.ts.map +1 -1
  212. package/dest/public/state_manager/public_storage.d.ts +2 -2
  213. package/dest/public/state_manager/public_storage.d.ts.map +1 -1
  214. package/dest/public/state_manager/public_storage.js +1 -1
  215. package/dest/public/state_manager/state_manager.d.ts +13 -2
  216. package/dest/public/state_manager/state_manager.d.ts.map +1 -1
  217. package/dest/public/state_manager/state_manager.js +14 -4
  218. package/package.json +20 -20
  219. package/src/common/errors.ts +1 -1
  220. package/src/private/acvm/deserialize.ts +1 -1
  221. package/src/private/acvm/serialize.ts +1 -1
  222. package/src/private/circuit_recording/circuit_recorder.ts +17 -16
  223. package/src/public/avm/avm_context.ts +2 -2
  224. package/src/public/avm/avm_contract_call_result.ts +8 -6
  225. package/src/public/avm/avm_execution_environment.ts +10 -5
  226. package/src/public/avm/avm_gas.ts +3 -3
  227. package/src/public/avm/avm_machine_state.ts +7 -6
  228. package/src/public/avm/avm_memory_types.ts +5 -1
  229. package/src/public/avm/avm_simulator.ts +16 -10
  230. package/src/public/avm/calldata.ts +100 -0
  231. package/src/public/avm/errors.ts +17 -3
  232. package/src/public/avm/fixtures/avm_simulation_tester.ts +9 -3
  233. package/src/public/avm/fixtures/base_avm_simulation_tester.ts +1 -1
  234. package/src/public/avm/fixtures/initializers.ts +5 -4
  235. package/src/public/avm/fixtures/utils.ts +3 -2
  236. package/src/public/avm/opcodes/accrued_substate.ts +28 -30
  237. package/src/public/avm/opcodes/addressing_mode.ts +2 -2
  238. package/src/public/avm/opcodes/arithmetic.ts +14 -2
  239. package/src/public/avm/opcodes/bitwise.ts +3 -3
  240. package/src/public/avm/opcodes/comparators.ts +1 -1
  241. package/src/public/avm/opcodes/contract.ts +4 -7
  242. package/src/public/avm/opcodes/control_flow.ts +2 -2
  243. package/src/public/avm/opcodes/conversion.ts +3 -3
  244. package/src/public/avm/opcodes/ec_add.ts +15 -6
  245. package/src/public/avm/opcodes/environment_getters.ts +7 -7
  246. package/src/public/avm/opcodes/external_calls.ts +17 -15
  247. package/src/public/avm/opcodes/hashing.ts +16 -10
  248. package/src/public/avm/opcodes/instruction_impl.ts +2 -2
  249. package/src/public/avm/opcodes/memory.ts +20 -20
  250. package/src/public/avm/opcodes/misc.ts +4 -4
  251. package/src/public/avm/opcodes/storage.ts +30 -22
  252. package/src/public/avm/revert_reason.ts +6 -3
  253. package/src/public/avm/serialization/bytecode_serialization.ts +17 -6
  254. package/src/public/avm/serialization/instruction_serialization.ts +1 -1
  255. package/src/public/avm/test_utils.ts +1 -1
  256. package/src/public/contracts_db_checkpoint.ts +1 -1
  257. package/src/public/db_interfaces.ts +1 -1
  258. package/src/public/debug_fn_name.ts +39 -5
  259. package/src/public/executor_metrics.ts +7 -34
  260. package/src/public/fixtures/amm_test.ts +2 -2
  261. package/src/public/fixtures/bulk_test.ts +9 -9
  262. package/src/public/fixtures/custom_bytecode_tester.ts +53 -19
  263. package/src/public/fixtures/custom_bytecode_tests.ts +111 -18
  264. package/src/public/fixtures/index.ts +7 -1
  265. package/src/public/fixtures/minimal_public_tx.ts +6 -15
  266. package/src/public/fixtures/opcode_spammer.ts +1721 -0
  267. package/src/public/fixtures/public_tx_simulation_tester.ts +69 -13
  268. package/src/public/fixtures/simple_contract_data_source.ts +8 -9
  269. package/src/public/fixtures/token_test.ts +18 -9
  270. package/src/public/fixtures/utils.ts +2 -3
  271. package/src/public/fuzzing/avm_fuzzer_simulator.ts +288 -0
  272. package/src/public/fuzzing/avm_simulator_bin.ts +175 -0
  273. package/src/public/hinting_db_sources.ts +8 -3
  274. package/src/public/index.ts +7 -1
  275. package/src/public/public_db_sources.ts +1 -1
  276. package/src/public/public_processor/guarded_merkle_tree.ts +6 -1
  277. package/src/public/public_processor/public_processor.ts +46 -29
  278. package/src/public/public_processor/public_processor_metrics.ts +11 -45
  279. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +19 -60
  280. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +76 -174
  281. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +132 -0
  282. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +237 -0
  283. package/src/public/public_tx_simulator/dumping_cpp_public_tx_simulator.ts +81 -0
  284. package/src/public/public_tx_simulator/factories.ts +41 -0
  285. package/src/public/public_tx_simulator/index.ts +3 -0
  286. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +1 -1
  287. package/src/public/public_tx_simulator/public_tx_context.ts +1 -1
  288. package/src/public/public_tx_simulator/public_tx_simulator.ts +36 -14
  289. package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +23 -0
  290. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +1 -1
  291. package/src/public/side_effect_trace.ts +1 -1
  292. package/src/public/side_effect_trace_interface.ts +1 -1
  293. package/src/public/state_manager/nullifiers.ts +1 -1
  294. package/src/public/state_manager/public_storage.ts +1 -1
  295. package/src/public/state_manager/state_manager.ts +20 -19
@@ -1,16 +1,10 @@
1
- import {
2
- CANONICAL_AUTH_REGISTRY_ADDRESS,
3
- CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS,
4
- CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS,
5
- FEE_JUICE_ADDRESS,
6
- MULTI_CALL_ENTRYPOINT_ADDRESS,
7
- ROUTER_ADDRESS,
8
- } from '@aztec/constants';
9
- import { poseidon2Hash } from '@aztec/foundation/crypto';
10
- import { Fr } from '@aztec/foundation/fields';
1
+ import { CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS, MAX_PROTOCOL_CONTRACTS } from '@aztec/constants';
2
+ import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
11
4
  import { jsonStringify } from '@aztec/foundation/json-rpc';
12
5
  import { type LogLevel, createLogger } from '@aztec/foundation/log';
13
6
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
7
+ import { FunctionSelector } from '@aztec/stdlib/abi';
14
8
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
15
9
  import type { ContractClassPublicWithCommitment, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
16
10
  import { SerializableContractInstance } from '@aztec/stdlib/contract';
@@ -26,7 +20,7 @@ import { strict as assert } from 'assert';
26
20
 
27
21
  import type { AvmExecutionEnvironment } from '../avm/avm_execution_environment.js';
28
22
  import type { PublicContractsDBInterface } from '../db_interfaces.js';
29
- import { getPublicFunctionDebugName } from '../debug_fn_name.js';
23
+ import { getPublicFunctionDebugName, getPublicFunctionSelectorAndName } from '../debug_fn_name.js';
30
24
  import type { PublicTreesDB } from '../public_db_sources.js';
31
25
  import {
32
26
  L1ToL2MessageIndexOutOfRangeError,
@@ -239,7 +233,15 @@ export class PublicPersistableStateManager {
239
233
  public async checkNullifierExists(contractAddress: AztecAddress, nullifier: Fr): Promise<boolean> {
240
234
  this.log.trace(`Checking existence of nullifier (address=${contractAddress}, nullifier=${nullifier})`);
241
235
  const siloedNullifier = await siloNullifier(contractAddress, nullifier);
236
+ return this.checkSiloedNullifierExists(siloedNullifier);
237
+ }
242
238
 
239
+ /**
240
+ * Check if a siloed nullifier exists.
241
+ * @param siloedNullifier - the siloed nullifier to check
242
+ * @returns exists - whether the nullifier exists in the nullifier set
243
+ */
244
+ public async checkSiloedNullifierExists(siloedNullifier: Fr): Promise<boolean> {
243
245
  if (this.doMerkleOperations) {
244
246
  const exists = await this.treesDB.checkNullifierExists(siloedNullifier);
245
247
  this.log.trace(`Checked siloed nullifier ${siloedNullifier} (exists=${exists})`);
@@ -532,6 +534,12 @@ export class PublicPersistableStateManager {
532
534
  return await getPublicFunctionDebugName(this.contractsDB, avmEnvironment.address, avmEnvironment.calldata);
533
535
  }
534
536
 
537
+ public async getPublicFunctionSelectorAndName(
538
+ avmEnvironment: AvmExecutionEnvironment,
539
+ ): Promise<{ functionSelector?: FunctionSelector; functionName?: string }> {
540
+ return await getPublicFunctionSelectorAndName(this.contractsDB, avmEnvironment.address, avmEnvironment.calldata);
541
+ }
542
+
535
543
  public async padTree(treeId: MerkleTreeId, leavesToInsert: number): Promise<void> {
536
544
  await this.treesDB.padTree(treeId, leavesToInsert);
537
545
  }
@@ -542,12 +550,5 @@ export class PublicPersistableStateManager {
542
550
  }
543
551
 
544
552
  function contractAddressIsCanonical(contractAddress: AztecAddress): boolean {
545
- return (
546
- contractAddress.equals(AztecAddress.fromNumber(CANONICAL_AUTH_REGISTRY_ADDRESS)) ||
547
- contractAddress.equals(AztecAddress.fromNumber(CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS)) ||
548
- contractAddress.equals(AztecAddress.fromNumber(CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS)) ||
549
- contractAddress.equals(AztecAddress.fromNumber(MULTI_CALL_ENTRYPOINT_ADDRESS)) ||
550
- contractAddress.equals(AztecAddress.fromNumber(FEE_JUICE_ADDRESS)) ||
551
- contractAddress.equals(AztecAddress.fromNumber(ROUTER_ADDRESS))
552
- );
553
+ return contractAddress.toBigInt() >= 1 && contractAddress.toBigInt() <= MAX_PROTOCOL_CONTRACTS;
553
554
  }