@aztec/pxe 0.0.1-commit.c31f2472 → 0.0.1-commit.c52d6e7

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 (535) hide show
  1. package/dest/bin/check_oracle_version.js +11 -118
  2. package/dest/bin/index.d.ts +2 -0
  3. package/dest/bin/index.d.ts.map +1 -0
  4. package/dest/bin/index.js +1 -0
  5. package/dest/bin/oracle_version_helpers.d.ts +20 -0
  6. package/dest/bin/oracle_version_helpers.d.ts.map +1 -0
  7. package/dest/bin/oracle_version_helpers.js +25 -0
  8. package/dest/block_synchronizer/block_stream_source.d.ts +10 -0
  9. package/dest/block_synchronizer/block_stream_source.d.ts.map +1 -0
  10. package/dest/block_synchronizer/block_stream_source.js +37 -0
  11. package/dest/block_synchronizer/block_synchronizer.d.ts +22 -14
  12. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  13. package/dest/block_synchronizer/block_synchronizer.js +77 -28
  14. package/dest/config/index.d.ts +9 -2
  15. package/dest/config/index.d.ts.map +1 -1
  16. package/dest/config/index.js +14 -15
  17. package/dest/config/package_info.js +1 -1
  18. package/dest/contract/contract_class_service.d.ts +24 -0
  19. package/dest/contract/contract_class_service.d.ts.map +1 -0
  20. package/dest/contract/contract_class_service.js +36 -0
  21. package/dest/contract/contract_sync_service.d.ts +48 -0
  22. package/dest/contract/contract_sync_service.d.ts.map +1 -0
  23. package/dest/contract/contract_sync_service.js +116 -0
  24. package/dest/contract/helpers.d.ts +7 -0
  25. package/dest/contract/helpers.d.ts.map +1 -0
  26. package/dest/contract/helpers.js +20 -0
  27. package/dest/contract/skip_sync_contracts.d.ts +11 -0
  28. package/dest/contract/skip_sync_contracts.d.ts.map +1 -0
  29. package/dest/contract/skip_sync_contracts.js +18 -0
  30. package/dest/contract_function_simulator/anchored_contract_data.d.ts +36 -0
  31. package/dest/contract_function_simulator/anchored_contract_data.d.ts.map +1 -0
  32. package/dest/contract_function_simulator/anchored_contract_data.js +54 -0
  33. package/dest/contract_function_simulator/contract_function_simulator.d.ts +72 -43
  34. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  35. package/dest/contract_function_simulator/contract_function_simulator.js +264 -111
  36. package/dest/contract_function_simulator/ephemeral_array_service.d.ts +28 -0
  37. package/dest/contract_function_simulator/ephemeral_array_service.d.ts.map +1 -0
  38. package/dest/contract_function_simulator/ephemeral_array_service.js +78 -0
  39. package/dest/contract_function_simulator/execution_note_cache.d.ts +4 -10
  40. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  41. package/dest/contract_function_simulator/execution_note_cache.js +8 -28
  42. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +7 -11
  43. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  44. package/dest/contract_function_simulator/execution_tagging_index_cache.js +19 -15
  45. package/dest/contract_function_simulator/index.d.ts +26 -5
  46. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  47. package/dest/contract_function_simulator/index.js +11 -3
  48. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +29 -0
  49. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts.map +1 -0
  50. package/dest/contract_function_simulator/noir-structs/bounded_vec.js +30 -0
  51. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts +9 -0
  52. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts.map +1 -0
  53. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.js +1 -0
  54. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts +7 -0
  55. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts.map +1 -0
  56. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.js +1 -0
  57. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts +37 -0
  58. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts.map +1 -0
  59. package/dest/contract_function_simulator/noir-structs/ephemeral_array.js +59 -0
  60. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +3 -4
  61. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  62. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +9 -10
  63. package/dest/contract_function_simulator/noir-structs/fact.d.ts +16 -0
  64. package/dest/contract_function_simulator/noir-structs/fact.d.ts.map +1 -0
  65. package/dest/contract_function_simulator/noir-structs/fact.js +6 -0
  66. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts +27 -0
  67. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts.map +1 -0
  68. package/dest/contract_function_simulator/noir-structs/fact_collection.js +31 -0
  69. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +19 -10
  70. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  71. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +12 -24
  72. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +11 -9
  73. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  74. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +2 -63
  75. package/dest/contract_function_simulator/noir-structs/note_data.d.ts +27 -0
  76. package/dest/contract_function_simulator/noir-structs/note_data.d.ts.map +1 -0
  77. package/dest/contract_function_simulator/noir-structs/note_data.js +3 -0
  78. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +3 -5
  79. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  80. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +8 -12
  81. package/dest/contract_function_simulator/noir-structs/option.d.ts +59 -0
  82. package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -0
  83. package/dest/contract_function_simulator/noir-structs/option.js +67 -0
  84. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts +11 -0
  85. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts.map +1 -0
  86. package/dest/contract_function_simulator/noir-structs/origin_block.js +5 -0
  87. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts +11 -0
  88. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts.map +1 -0
  89. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.js +4 -0
  90. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts +8 -0
  91. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts.map +1 -0
  92. package/dest/contract_function_simulator/noir-structs/provided_secret.js +1 -0
  93. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts +28 -0
  94. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts.map +1 -0
  95. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.js +50 -0
  96. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts +19 -0
  97. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts.map +1 -0
  98. package/dest/contract_function_simulator/noir-structs/resolved_tx.js +9 -0
  99. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts +15 -0
  100. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts.map +1 -0
  101. package/dest/contract_function_simulator/noir-structs/tx_effect_data.js +5 -0
  102. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +6 -11
  103. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  104. package/dest/contract_function_simulator/noir-structs/utility_context.js +1 -20
  105. package/dest/contract_function_simulator/oracle/acir_callback.d.ts +21 -0
  106. package/dest/contract_function_simulator/oracle/acir_callback.d.ts.map +1 -0
  107. package/dest/contract_function_simulator/oracle/acir_callback.js +115 -0
  108. package/dest/contract_function_simulator/oracle/index.d.ts +2 -13
  109. package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -1
  110. package/dest/contract_function_simulator/oracle/index.js +1 -1
  111. package/dest/contract_function_simulator/oracle/interfaces.d.ts +15 -98
  112. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  113. package/dest/contract_function_simulator/oracle/interfaces.js +2 -2
  114. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts +39 -0
  115. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts.map +1 -0
  116. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.js +107 -0
  117. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +3 -14
  118. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  119. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -24
  120. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +2 -2
  121. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  122. package/dest/contract_function_simulator/oracle/note_packing_utils.js +2 -2
  123. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +139 -0
  124. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -0
  125. package/dest/contract_function_simulator/oracle/oracle_registry.js +1016 -0
  126. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +274 -0
  127. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -0
  128. package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +1253 -0
  129. package/dest/contract_function_simulator/oracle/private_execution.d.ts +1 -1
  130. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  131. package/dest/contract_function_simulator/oracle/private_execution.js +7 -6
  132. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +82 -97
  133. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  134. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +263 -118
  135. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +217 -88
  136. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  137. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +707 -194
  138. package/dest/contract_function_simulator/pick_notes.d.ts +1 -1
  139. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  140. package/dest/contract_function_simulator/pick_notes.js +20 -3
  141. package/dest/contract_function_simulator/transient_array_service.d.ts +31 -0
  142. package/dest/contract_function_simulator/transient_array_service.d.ts.map +1 -0
  143. package/dest/contract_function_simulator/transient_array_service.js +62 -0
  144. package/dest/contract_logging.d.ts +27 -0
  145. package/dest/contract_logging.d.ts.map +1 -0
  146. package/dest/contract_logging.js +38 -0
  147. package/dest/debug/pxe_debug_utils.d.ts +14 -15
  148. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  149. package/dest/debug/pxe_debug_utils.js +16 -21
  150. package/dest/entrypoints/client/bundle/index.d.ts +4 -1
  151. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  152. package/dest/entrypoints/client/bundle/index.js +3 -0
  153. package/dest/entrypoints/client/bundle/utils.d.ts +2 -2
  154. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  155. package/dest/entrypoints/client/bundle/utils.js +36 -8
  156. package/dest/entrypoints/client/lazy/index.d.ts +4 -1
  157. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  158. package/dest/entrypoints/client/lazy/index.js +3 -0
  159. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  160. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  161. package/dest/entrypoints/client/lazy/utils.js +36 -8
  162. package/dest/entrypoints/client/store.d.ts +14 -0
  163. package/dest/entrypoints/client/store.d.ts.map +1 -0
  164. package/dest/entrypoints/client/store.js +42 -0
  165. package/dest/entrypoints/pxe_creation_options.d.ts +16 -2
  166. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  167. package/dest/entrypoints/pxe_creation_options.js +3 -1
  168. package/dest/entrypoints/server/index.d.ts +8 -3
  169. package/dest/entrypoints/server/index.d.ts.map +1 -1
  170. package/dest/entrypoints/server/index.js +6 -2
  171. package/dest/entrypoints/server/store.d.ts +18 -0
  172. package/dest/entrypoints/server/store.d.ts.map +1 -0
  173. package/dest/entrypoints/server/store.js +28 -0
  174. package/dest/entrypoints/server/utils.d.ts +4 -3
  175. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  176. package/dest/entrypoints/server/utils.js +36 -8
  177. package/dest/error_enriching.d.ts +5 -3
  178. package/dest/error_enriching.d.ts.map +1 -1
  179. package/dest/error_enriching.js +13 -11
  180. package/dest/events/event_service.d.ts +22 -7
  181. package/dest/events/event_service.d.ts.map +1 -1
  182. package/dest/events/event_service.js +52 -20
  183. package/dest/events/private_event_filter_validator.d.ts +3 -2
  184. package/dest/events/private_event_filter_validator.d.ts.map +1 -1
  185. package/dest/events/private_event_filter_validator.js +15 -0
  186. package/dest/hooks/authorize_utility_call.d.ts +41 -0
  187. package/dest/hooks/authorize_utility_call.d.ts.map +1 -0
  188. package/dest/hooks/authorize_utility_call.js +4 -0
  189. package/dest/hooks/execution_hooks.d.ts +62 -0
  190. package/dest/hooks/execution_hooks.d.ts.map +1 -0
  191. package/dest/hooks/execution_hooks.js +9 -0
  192. package/dest/hooks/index.d.ts +5 -0
  193. package/dest/hooks/index.d.ts.map +1 -0
  194. package/dest/hooks/index.js +2 -0
  195. package/dest/hooks/resolve_custom_request.d.ts +23 -0
  196. package/dest/hooks/resolve_custom_request.d.ts.map +1 -0
  197. package/dest/hooks/resolve_custom_request.js +3 -0
  198. package/dest/hooks/resolve_tagging_secret_strategy.d.ts +50 -0
  199. package/dest/hooks/resolve_tagging_secret_strategy.d.ts.map +1 -0
  200. package/dest/hooks/resolve_tagging_secret_strategy.js +3 -0
  201. package/dest/logs/log_service.d.ts +23 -12
  202. package/dest/logs/log_service.d.ts.map +1 -1
  203. package/dest/logs/log_service.js +185 -97
  204. package/dest/messages/tx_resolver_service.d.ts +28 -0
  205. package/dest/messages/tx_resolver_service.d.ts.map +1 -0
  206. package/dest/messages/tx_resolver_service.js +61 -0
  207. package/dest/node/benchmarked_node.d.ts +20 -0
  208. package/dest/node/benchmarked_node.d.ts.map +1 -0
  209. package/dest/node/benchmarked_node.js +94 -0
  210. package/dest/node/caching_aztec_node.d.ts +24 -0
  211. package/dest/node/caching_aztec_node.d.ts.map +1 -0
  212. package/dest/node/caching_aztec_node.js +267 -0
  213. package/dest/notes/note_service.d.ts +36 -9
  214. package/dest/notes/note_service.d.ts.map +1 -1
  215. package/dest/notes/note_service.js +90 -66
  216. package/dest/notes_filter.d.ts +24 -0
  217. package/dest/notes_filter.d.ts.map +1 -0
  218. package/dest/notes_filter.js +4 -0
  219. package/dest/oracle_version.d.ts +4 -3
  220. package/dest/oracle_version.d.ts.map +1 -1
  221. package/dest/oracle_version.js +20 -10
  222. package/dest/private_kernel/batch_planner.d.ts +47 -0
  223. package/dest/private_kernel/batch_planner.d.ts.map +1 -0
  224. package/dest/private_kernel/batch_planner.js +104 -0
  225. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  226. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  227. package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
  228. package/dest/private_kernel/hints/index.d.ts +1 -1
  229. package/dest/private_kernel/hints/index.js +1 -1
  230. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +4 -3
  231. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -1
  232. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +135 -70
  233. package/dest/private_kernel/hints/test_utils.d.ts +122 -0
  234. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
  235. package/dest/private_kernel/hints/test_utils.js +202 -0
  236. package/dest/private_kernel/private_kernel_execution_prover.d.ts +6 -2
  237. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  238. package/dest/private_kernel/private_kernel_execution_prover.js +208 -86
  239. package/dest/private_kernel/private_kernel_oracle.d.ts +17 -11
  240. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  241. package/dest/private_kernel/private_kernel_oracle.js +47 -29
  242. package/dest/pxe.d.ts +228 -66
  243. package/dest/pxe.d.ts.map +1 -1
  244. package/dest/pxe.js +435 -235
  245. package/dest/storage/address_store/address_store.d.ts +1 -1
  246. package/dest/storage/address_store/address_store.d.ts.map +1 -1
  247. package/dest/storage/address_store/address_store.js +12 -11
  248. package/dest/storage/allowed_scopes.d.ts +6 -0
  249. package/dest/storage/allowed_scopes.d.ts.map +1 -0
  250. package/dest/storage/allowed_scopes.js +7 -0
  251. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +12 -1
  252. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -1
  253. package/dest/storage/anchor_block_store/anchor_block_store.js +12 -3
  254. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts +42 -0
  255. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts.map +1 -0
  256. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.js +93 -0
  257. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +15 -0
  258. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -0
  259. package/dest/storage/backwards_compatibility_tests/schema_tests.js +671 -0
  260. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts +19 -0
  261. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts.map +1 -0
  262. package/dest/storage/backwards_compatibility_tests/store_spy.js +63 -0
  263. package/dest/storage/capsule_store/capsule_service.d.ts +21 -0
  264. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -0
  265. package/dest/storage/capsule_store/capsule_service.js +47 -0
  266. package/dest/storage/capsule_store/capsule_store.d.ts +9 -9
  267. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -1
  268. package/dest/storage/capsule_store/capsule_store.js +42 -36
  269. package/dest/storage/capsule_store/index.d.ts +2 -1
  270. package/dest/storage/capsule_store/index.d.ts.map +1 -1
  271. package/dest/storage/capsule_store/index.js +1 -0
  272. package/dest/storage/contract_store/contract_store.d.ts +63 -33
  273. package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
  274. package/dest/storage/contract_store/contract_store.js +193 -136
  275. package/dest/storage/fact_store/fact_service.d.ts +22 -0
  276. package/dest/storage/fact_store/fact_service.d.ts.map +1 -0
  277. package/dest/storage/fact_store/fact_service.js +45 -0
  278. package/dest/storage/fact_store/fact_store.d.ts +95 -0
  279. package/dest/storage/fact_store/fact_store.d.ts.map +1 -0
  280. package/dest/storage/fact_store/fact_store.js +408 -0
  281. package/dest/storage/fact_store/fact_store_keys.d.ts +34 -0
  282. package/dest/storage/fact_store/fact_store_keys.d.ts.map +1 -0
  283. package/dest/storage/fact_store/fact_store_keys.js +50 -0
  284. package/dest/storage/fact_store/index.d.ts +6 -0
  285. package/dest/storage/fact_store/index.d.ts.map +1 -0
  286. package/dest/storage/fact_store/index.js +4 -0
  287. package/dest/storage/fact_store/origin_state.d.ts +59 -0
  288. package/dest/storage/fact_store/origin_state.d.ts.map +1 -0
  289. package/dest/storage/fact_store/origin_state.js +60 -0
  290. package/dest/storage/fact_store/stored_fact.d.ts +32 -0
  291. package/dest/storage/fact_store/stored_fact.d.ts.map +1 -0
  292. package/dest/storage/fact_store/stored_fact.js +64 -0
  293. package/dest/storage/index.d.ts +3 -2
  294. package/dest/storage/index.d.ts.map +1 -1
  295. package/dest/storage/index.js +2 -1
  296. package/dest/storage/metadata.d.ts +2 -2
  297. package/dest/storage/metadata.d.ts.map +1 -1
  298. package/dest/storage/metadata.js +1 -1
  299. package/dest/storage/note_store/note_store.d.ts +48 -29
  300. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  301. package/dest/storage/note_store/note_store.js +270 -199
  302. package/dest/storage/note_store/stored_note.d.ts +3 -8
  303. package/dest/storage/note_store/stored_note.d.ts.map +1 -1
  304. package/dest/storage/note_store/stored_note.js +4 -20
  305. package/dest/storage/open_pxe_stores.d.ts +35 -0
  306. package/dest/storage/open_pxe_stores.d.ts.map +1 -0
  307. package/dest/storage/open_pxe_stores.js +29 -0
  308. package/dest/storage/private_event_store/private_event_store.d.ts +13 -16
  309. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
  310. package/dest/storage/private_event_store/private_event_store.js +144 -119
  311. package/dest/storage/store_identity.d.ts +35 -0
  312. package/dest/storage/store_identity.d.ts.map +1 -0
  313. package/dest/storage/store_identity.js +44 -0
  314. package/dest/storage/tagging_store/index.d.ts +2 -2
  315. package/dest/storage/tagging_store/index.d.ts.map +1 -1
  316. package/dest/storage/tagging_store/index.js +1 -1
  317. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +6 -6
  318. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -1
  319. package/dest/storage/tagging_store/recipient_tagging_store.js +31 -19
  320. package/dest/storage/tagging_store/sender_tagging_store.d.ts +63 -31
  321. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
  322. package/dest/storage/tagging_store/sender_tagging_store.js +291 -143
  323. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts +51 -0
  324. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts.map +1 -0
  325. package/dest/storage/tagging_store/tagging_secret_sources_store.js +105 -0
  326. package/dest/tagging/constants.d.ts +11 -2
  327. package/dest/tagging/constants.d.ts.map +1 -1
  328. package/dest/tagging/constants.js +38 -10
  329. package/dest/tagging/get_all_logs_by_tags.d.ts +55 -10
  330. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -1
  331. package/dest/tagging/get_all_logs_by_tags.js +64 -32
  332. package/dest/tagging/index.d.ts +8 -7
  333. package/dest/tagging/index.d.ts.map +1 -1
  334. package/dest/tagging/index.js +6 -5
  335. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts +29 -0
  336. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts.map +1 -0
  337. package/dest/tagging/persist_sender_tagging_index_ranges.js +42 -0
  338. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +74 -0
  339. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -0
  340. package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +234 -0
  341. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +3 -3
  342. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -1
  343. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +2 -2
  344. package/dest/tagging/reconcile_tagging_index_ranges.d.ts +36 -0
  345. package/dest/tagging/reconcile_tagging_index_ranges.d.ts.map +1 -0
  346. package/dest/tagging/reconcile_tagging_index_ranges.js +74 -0
  347. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +8 -10
  348. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
  349. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +25 -22
  350. package/dest/tagging/sender_sync/utils/classify_pending_txs.d.ts +22 -0
  351. package/dest/tagging/sender_sync/utils/classify_pending_txs.d.ts.map +1 -0
  352. package/dest/tagging/sender_sync/utils/classify_pending_txs.js +61 -0
  353. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +17 -9
  354. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
  355. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +52 -39
  356. package/dest/tagging/sender_sync/utils/resolve_pending_txs.d.ts +29 -0
  357. package/dest/tagging/sender_sync/utils/resolve_pending_txs.d.ts.map +1 -0
  358. package/dest/tagging/sender_sync/utils/resolve_pending_txs.js +41 -0
  359. package/dest/tagging/sender_sync/utils/test_utils.d.ts +16 -0
  360. package/dest/tagging/sender_sync/utils/test_utils.d.ts.map +1 -0
  361. package/dest/tagging/sender_sync/utils/test_utils.js +24 -0
  362. package/dest/tagging/testing/tag_query_test_utils.d.ts +6 -0
  363. package/dest/tagging/testing/tag_query_test_utils.d.ts.map +1 -0
  364. package/dest/tagging/testing/tag_query_test_utils.js +10 -0
  365. package/package.json +29 -17
  366. package/src/bin/check_oracle_version.ts +10 -143
  367. package/src/bin/index.ts +1 -0
  368. package/src/bin/oracle_version_helpers.ts +30 -0
  369. package/src/block_synchronizer/block_stream_source.ts +42 -0
  370. package/src/block_synchronizer/block_synchronizer.ts +90 -38
  371. package/src/config/index.ts +16 -9
  372. package/src/config/package_info.ts +1 -1
  373. package/src/contract/contract_class_service.ts +45 -0
  374. package/src/contract/contract_sync_service.ts +176 -0
  375. package/src/contract/helpers.ts +35 -0
  376. package/src/contract/skip_sync_contracts.ts +23 -0
  377. package/src/contract_function_simulator/anchored_contract_data.ts +74 -0
  378. package/src/contract_function_simulator/contract_function_simulator.ts +465 -177
  379. package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
  380. package/src/contract_function_simulator/execution_note_cache.ts +8 -29
  381. package/src/contract_function_simulator/execution_tagging_index_cache.ts +19 -18
  382. package/src/contract_function_simulator/index.ts +89 -4
  383. package/src/contract_function_simulator/noir-structs/bounded_vec.ts +43 -0
  384. package/src/contract_function_simulator/noir-structs/contract_class_log_data.ts +9 -0
  385. package/src/contract_function_simulator/noir-structs/embedded_curve_point.ts +4 -0
  386. package/src/contract_function_simulator/noir-structs/ephemeral_array.ts +66 -0
  387. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +10 -9
  388. package/src/contract_function_simulator/noir-structs/fact.ts +13 -0
  389. package/src/contract_function_simulator/noir-structs/fact_collection.ts +64 -0
  390. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +27 -20
  391. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +14 -64
  392. package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
  393. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +6 -11
  394. package/src/contract_function_simulator/noir-structs/option.ts +75 -0
  395. package/src/contract_function_simulator/noir-structs/origin_block.ts +8 -0
  396. package/src/contract_function_simulator/noir-structs/pending_tagged_log.ts +12 -0
  397. package/src/contract_function_simulator/noir-structs/provided_secret.ts +5 -0
  398. package/src/contract_function_simulator/noir-structs/resolved_tagging_strategy.ts +66 -0
  399. package/src/contract_function_simulator/noir-structs/resolved_tx.ts +19 -0
  400. package/src/contract_function_simulator/noir-structs/tx_effect_data.ts +16 -0
  401. package/src/contract_function_simulator/noir-structs/utility_context.ts +5 -17
  402. package/src/contract_function_simulator/oracle/acir_callback.ts +154 -0
  403. package/src/contract_function_simulator/oracle/index.ts +1 -15
  404. package/src/contract_function_simulator/oracle/interfaces.ts +11 -176
  405. package/src/contract_function_simulator/oracle/legacy_oracle_registry.ts +147 -0
  406. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +6 -21
  407. package/src/contract_function_simulator/oracle/note_packing_utils.ts +3 -3
  408. package/src/contract_function_simulator/oracle/oracle_registry.ts +710 -0
  409. package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +1067 -0
  410. package/src/contract_function_simulator/oracle/private_execution.ts +6 -7
  411. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +323 -217
  412. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +1047 -276
  413. package/src/contract_function_simulator/pick_notes.ts +22 -3
  414. package/src/contract_function_simulator/transient_array_service.ts +91 -0
  415. package/src/contract_logging.ts +52 -0
  416. package/src/debug/pxe_debug_utils.ts +47 -25
  417. package/src/entrypoints/client/bundle/index.ts +3 -0
  418. package/src/entrypoints/client/bundle/utils.ts +43 -9
  419. package/src/entrypoints/client/lazy/index.ts +3 -0
  420. package/src/entrypoints/client/lazy/utils.ts +43 -9
  421. package/src/entrypoints/client/store.ts +54 -0
  422. package/src/entrypoints/pxe_creation_options.ts +21 -1
  423. package/src/entrypoints/server/index.ts +8 -2
  424. package/src/entrypoints/server/store.ts +47 -0
  425. package/src/entrypoints/server/utils.ts +52 -21
  426. package/src/error_enriching.ts +27 -11
  427. package/src/events/event_service.ts +85 -29
  428. package/src/events/private_event_filter_validator.ts +21 -1
  429. package/src/hooks/authorize_utility_call.ts +44 -0
  430. package/src/hooks/execution_hooks.ts +68 -0
  431. package/src/hooks/index.ts +13 -0
  432. package/src/hooks/resolve_custom_request.ts +24 -0
  433. package/src/hooks/resolve_tagging_secret_strategy.ts +60 -0
  434. package/src/logs/log_service.ts +230 -160
  435. package/src/messages/tx_resolver_service.ts +80 -0
  436. package/src/node/benchmarked_node.ts +140 -0
  437. package/src/node/caching_aztec_node.ts +406 -0
  438. package/src/notes/note_service.ts +131 -92
  439. package/src/notes_filter.ts +24 -0
  440. package/src/oracle_version.ts +20 -10
  441. package/src/private_kernel/batch_planner.ts +168 -0
  442. package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
  443. package/src/private_kernel/hints/index.ts +1 -1
  444. package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +176 -119
  445. package/src/private_kernel/hints/test_utils.ts +318 -0
  446. package/src/private_kernel/private_kernel_execution_prover.ts +341 -120
  447. package/src/private_kernel/private_kernel_oracle.ts +65 -36
  448. package/src/pxe.ts +728 -309
  449. package/src/storage/address_store/address_store.ts +15 -15
  450. package/src/storage/allowed_scopes.ts +14 -0
  451. package/src/storage/anchor_block_store/anchor_block_store.ts +12 -2
  452. package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +22 -0
  453. package/src/storage/backwards_compatibility_tests/__snapshots__/AnchorBlockStore.json +3 -0
  454. package/src/storage/backwards_compatibility_tests/__snapshots__/CapsuleStore.json +16 -0
  455. package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +28 -0
  456. package/src/storage/backwards_compatibility_tests/__snapshots__/FactStore.json +40 -0
  457. package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +52 -0
  458. package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +40 -0
  459. package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +56 -0
  460. package/src/storage/backwards_compatibility_tests/__snapshots__/PrivateEventStore.json +44 -0
  461. package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +26 -0
  462. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +30 -0
  463. package/src/storage/backwards_compatibility_tests/__snapshots__/TaggingSecretSourcesStore.json +30 -0
  464. package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +117 -0
  465. package/src/storage/backwards_compatibility_tests/kv_store_snapshot.ts +122 -0
  466. package/src/storage/backwards_compatibility_tests/schema_tests.ts +803 -0
  467. package/src/storage/backwards_compatibility_tests/store_spy.ts +73 -0
  468. package/src/storage/capsule_store/capsule_service.ts +85 -0
  469. package/src/storage/capsule_store/capsule_store.ts +52 -34
  470. package/src/storage/capsule_store/index.ts +1 -0
  471. package/src/storage/contract_store/contract_store.ts +251 -168
  472. package/src/storage/fact_store/fact_service.ts +69 -0
  473. package/src/storage/fact_store/fact_store.ts +487 -0
  474. package/src/storage/fact_store/fact_store_keys.ts +75 -0
  475. package/src/storage/fact_store/index.ts +15 -0
  476. package/src/storage/fact_store/origin_state.ts +84 -0
  477. package/src/storage/fact_store/stored_fact.ts +80 -0
  478. package/src/storage/index.ts +2 -1
  479. package/src/storage/metadata.ts +1 -1
  480. package/src/storage/note_store/note_store.ts +306 -228
  481. package/src/storage/note_store/stored_note.ts +5 -27
  482. package/src/storage/open_pxe_stores.ts +52 -0
  483. package/src/storage/private_event_store/private_event_store.ts +179 -158
  484. package/src/storage/store_identity.ts +72 -0
  485. package/src/storage/tagging_store/index.ts +1 -1
  486. package/src/storage/tagging_store/recipient_tagging_store.ts +34 -24
  487. package/src/storage/tagging_store/sender_tagging_store.ts +366 -163
  488. package/src/storage/tagging_store/tagging_secret_sources_store.ts +138 -0
  489. package/src/tagging/constants.ts +42 -10
  490. package/src/tagging/get_all_logs_by_tags.ts +124 -36
  491. package/src/tagging/index.ts +12 -6
  492. package/src/tagging/persist_sender_tagging_index_ranges.ts +57 -0
  493. package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +355 -0
  494. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +4 -4
  495. package/src/tagging/reconcile_tagging_index_ranges.ts +102 -0
  496. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +32 -27
  497. package/src/tagging/sender_sync/utils/classify_pending_txs.ts +91 -0
  498. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +55 -49
  499. package/src/tagging/sender_sync/utils/resolve_pending_txs.ts +64 -0
  500. package/src/tagging/sender_sync/utils/test_utils.ts +46 -0
  501. package/src/tagging/testing/tag_query_test_utils.ts +11 -0
  502. package/dest/contract_function_simulator/benchmarked_node.d.ts +0 -9
  503. package/dest/contract_function_simulator/benchmarked_node.d.ts.map +0 -1
  504. package/dest/contract_function_simulator/benchmarked_node.js +0 -77
  505. package/dest/contract_function_simulator/oracle/oracle.d.ts +0 -60
  506. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +0 -1
  507. package/dest/contract_function_simulator/oracle/oracle.js +0 -356
  508. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +0 -6
  509. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +0 -1
  510. package/dest/contract_function_simulator/proxied_contract_data_source.js +0 -80
  511. package/dest/contract_sync/index.d.ts +0 -23
  512. package/dest/contract_sync/index.d.ts.map +0 -1
  513. package/dest/contract_sync/index.js +0 -54
  514. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
  515. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
  516. package/dest/storage/tagging_store/sender_address_book_store.d.ts +0 -14
  517. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +0 -1
  518. package/dest/storage/tagging_store/sender_address_book_store.js +0 -30
  519. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +0 -15
  520. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +0 -1
  521. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +0 -99
  522. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +0 -15
  523. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +0 -1
  524. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +0 -32
  525. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +0 -11
  526. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +0 -1
  527. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +0 -29
  528. package/src/contract_function_simulator/benchmarked_node.ts +0 -103
  529. package/src/contract_function_simulator/oracle/oracle.ts +0 -620
  530. package/src/contract_function_simulator/proxied_contract_data_source.ts +0 -83
  531. package/src/contract_sync/index.ts +0 -98
  532. package/src/storage/tagging_store/sender_address_book_store.ts +0 -42
  533. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +0 -143
  534. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +0 -49
  535. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +0 -36
@@ -1,620 +0,0 @@
1
- import { BlockNumber } from '@aztec/foundation/branded-types';
2
- import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { Point } from '@aztec/foundation/curves/grumpkin';
4
- import {
5
- type ACIRCallback,
6
- type ACVMField,
7
- arrayOfArraysToBoundedVecOfArrays,
8
- bufferToBoundedVec,
9
- fromUintArray,
10
- fromUintBoundedVec,
11
- toACVMField,
12
- } from '@aztec/simulator/client';
13
- import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
14
- import { AztecAddress } from '@aztec/stdlib/aztec-address';
15
- import { BlockHash } from '@aztec/stdlib/block';
16
- import { ContractClassLog, ContractClassLogFields } from '@aztec/stdlib/logs';
17
-
18
- import type { IMiscOracle, IPrivateExecutionOracle, IUtilityExecutionOracle } from './interfaces.js';
19
- import { packAsHintedNote } from './note_packing_utils.js';
20
-
21
- export class UnavailableOracleError extends Error {
22
- constructor(oracleName: string) {
23
- super(`${oracleName} oracles not available with the current handler`);
24
- }
25
- }
26
-
27
- /**
28
- * A data source that has all the apis required by Aztec.nr.
29
- */
30
- export class Oracle {
31
- constructor(private handler: IMiscOracle | IUtilityExecutionOracle | IPrivateExecutionOracle) {}
32
-
33
- private handlerAsMisc(): IMiscOracle {
34
- if (!('isMisc' in this.handler)) {
35
- throw new UnavailableOracleError('Misc');
36
- }
37
-
38
- return this.handler;
39
- }
40
-
41
- private handlerAsUtility(): IUtilityExecutionOracle {
42
- if (!('isUtility' in this.handler)) {
43
- throw new UnavailableOracleError('Utility');
44
- }
45
-
46
- return this.handler;
47
- }
48
-
49
- private handlerAsPrivate(): IPrivateExecutionOracle {
50
- if (!('isPrivate' in this.handler)) {
51
- throw new UnavailableOracleError('Private');
52
- }
53
-
54
- return this.handler;
55
- }
56
-
57
- toACIRCallback(): ACIRCallback {
58
- const excludedProps = [
59
- 'handler',
60
- 'constructor',
61
- 'toACIRCallback',
62
- 'handlerAsMisc',
63
- 'handlerAsUtility',
64
- 'handlerAsPrivate',
65
- ] as const;
66
-
67
- // Get all the oracle function names
68
- const oracleNames = Object.getOwnPropertyNames(Oracle.prototype).filter(
69
- name => !excludedProps.includes(name as (typeof excludedProps)[number]),
70
- );
71
-
72
- // Validate oracle names - these must be prefixed with either "private" or "utility" to indicate their scope
73
- // and must correspond to a function on the Oracle class.
74
- oracleNames.forEach(name => {
75
- if (!name.startsWith('private') && !name.startsWith('utility')) {
76
- throw new Error(
77
- `Oracle function "${name}" must be prefixed with either "private" or "utility" to indicate its scope`,
78
- );
79
- }
80
-
81
- const method = this[name as keyof Omit<Oracle, (typeof excludedProps)[number]>];
82
- if (typeof method !== 'function') {
83
- throw new Error(`Oracle property "${name}" must be a function`);
84
- }
85
- });
86
-
87
- // Build callback object and return it
88
- return oracleNames.reduce((acc, name) => {
89
- const method = this[name as keyof Omit<Oracle, (typeof excludedProps)[number]>];
90
- acc[name] = method.bind(this);
91
- return acc;
92
- }, {} as ACIRCallback);
93
- }
94
-
95
- utilityAssertCompatibleOracleVersion([version]: ACVMField[]) {
96
- this.handlerAsMisc().utilityAssertCompatibleOracleVersion(Fr.fromString(version).toNumber());
97
- return Promise.resolve([]);
98
- }
99
-
100
- utilityGetRandomField(): Promise<ACVMField[]> {
101
- const val = this.handlerAsMisc().utilityGetRandomField();
102
- return Promise.resolve([toACVMField(val)]);
103
- }
104
-
105
- privateStoreInExecutionCache(values: ACVMField[], [hash]: ACVMField[]): Promise<ACVMField[]> {
106
- this.handlerAsPrivate().privateStoreInExecutionCache(values.map(Fr.fromString), Fr.fromString(hash));
107
- return Promise.resolve([]);
108
- }
109
-
110
- async privateLoadFromExecutionCache([returnsHash]: ACVMField[]): Promise<ACVMField[][]> {
111
- const values = await this.handlerAsPrivate().privateLoadFromExecutionCache(Fr.fromString(returnsHash));
112
- return [values.map(toACVMField)];
113
- }
114
-
115
- utilityGetUtilityContext(): Promise<(ACVMField | ACVMField[])[]> {
116
- const context = this.handlerAsUtility().utilityGetUtilityContext();
117
- return Promise.resolve(context.toNoirRepresentation());
118
- }
119
-
120
- async utilityGetKeyValidationRequest([pkMHash]: ACVMField[]): Promise<ACVMField[]> {
121
- const keyValidationRequest = await this.handlerAsUtility().utilityGetKeyValidationRequest(Fr.fromString(pkMHash));
122
-
123
- return keyValidationRequest.toFields().map(toACVMField);
124
- }
125
-
126
- async utilityGetContractInstance([address]: ACVMField[]): Promise<ACVMField[]> {
127
- const instance = await this.handlerAsUtility().utilityGetContractInstance(
128
- AztecAddress.fromField(Fr.fromString(address)),
129
- );
130
-
131
- return [
132
- instance.salt,
133
- instance.deployer,
134
- instance.currentContractClassId,
135
- instance.initializationHash,
136
- ...instance.publicKeys.toFields(),
137
- ].map(toACVMField);
138
- }
139
-
140
- async utilityGetNoteHashMembershipWitness(
141
- [blockHash]: ACVMField[],
142
- [leafValue]: ACVMField[],
143
- ): Promise<(ACVMField | ACVMField[])[]> {
144
- const parsedBlockHash = BlockHash.fromString(blockHash);
145
- const parsedLeafValue = Fr.fromString(leafValue);
146
-
147
- const witness = await this.handlerAsUtility().utilityGetNoteHashMembershipWitness(parsedBlockHash, parsedLeafValue);
148
- if (!witness) {
149
- throw new Error(`Leaf ${leafValue} not found in the note hash tree at block hash ${parsedBlockHash.toString()}.`);
150
- }
151
- return witness.toNoirRepresentation();
152
- }
153
-
154
- async utilityGetArchiveMembershipWitness(
155
- [blockHash]: ACVMField[],
156
- [leafValue]: ACVMField[],
157
- ): Promise<(ACVMField | ACVMField[])[]> {
158
- const parsedBlockHash = BlockHash.fromString(blockHash);
159
- const parsedLeafValue = Fr.fromString(leafValue);
160
-
161
- const witness = await this.handlerAsUtility().utilityGetArchiveMembershipWitness(parsedBlockHash, parsedLeafValue);
162
- if (!witness) {
163
- throw new Error(`Leaf ${leafValue} not found in the archive tree at block hash ${parsedBlockHash.toString()}.`);
164
- }
165
- return witness.toNoirRepresentation();
166
- }
167
-
168
- async utilityGetNullifierMembershipWitness(
169
- [blockHash]: ACVMField[],
170
- [nullifier]: ACVMField[], // nullifier, we try to find the witness for (to prove inclusion)
171
- ): Promise<(ACVMField | ACVMField[])[]> {
172
- const parsedBlockHash = BlockHash.fromString(blockHash);
173
- const parsedNullifier = Fr.fromString(nullifier);
174
-
175
- const witness = await this.handlerAsUtility().utilityGetNullifierMembershipWitness(
176
- parsedBlockHash,
177
- parsedNullifier,
178
- );
179
- if (!witness) {
180
- throw new Error(
181
- `Nullifier witness not found for nullifier ${parsedNullifier} at block hash ${parsedBlockHash.toString()}.`,
182
- );
183
- }
184
- return witness.toNoirRepresentation();
185
- }
186
-
187
- async utilityGetLowNullifierMembershipWitness(
188
- [blockHash]: ACVMField[],
189
- [nullifier]: ACVMField[], // nullifier, we try to find the low nullifier witness for (to prove non-inclusion)
190
- ): Promise<(ACVMField | ACVMField[])[]> {
191
- const parsedBlockHash = BlockHash.fromString(blockHash);
192
- const parsedNullifier = Fr.fromString(nullifier);
193
-
194
- const witness = await this.handlerAsUtility().utilityGetLowNullifierMembershipWitness(
195
- parsedBlockHash,
196
- parsedNullifier,
197
- );
198
- if (!witness) {
199
- throw new Error(
200
- `Low nullifier witness not found for nullifier ${parsedNullifier} at block hash ${parsedBlockHash.toString()}.`,
201
- );
202
- }
203
- return witness.toNoirRepresentation();
204
- }
205
-
206
- async utilityGetPublicDataWitness(
207
- [blockHash]: ACVMField[],
208
- [leafSlot]: ACVMField[],
209
- ): Promise<(ACVMField | ACVMField[])[]> {
210
- const parsedBlockHash = BlockHash.fromString(blockHash);
211
- const parsedLeafSlot = Fr.fromString(leafSlot);
212
-
213
- const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(parsedBlockHash, parsedLeafSlot);
214
- if (!witness) {
215
- throw new Error(
216
- `Public data witness not found for slot ${parsedLeafSlot} at block hash ${parsedBlockHash.toString()}.`,
217
- );
218
- }
219
- return witness.toNoirRepresentation();
220
- }
221
-
222
- async utilityGetBlockHeader([blockNumber]: ACVMField[]): Promise<ACVMField[]> {
223
- const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
224
-
225
- const header = await this.handlerAsUtility().utilityGetBlockHeader(BlockNumber(parsedBlockNumber));
226
- if (!header) {
227
- throw new Error(`Block header not found for block ${parsedBlockNumber}.`);
228
- }
229
- return header.toFields().map(toACVMField);
230
- }
231
-
232
- async utilityGetAuthWitness([messageHash]: ACVMField[]): Promise<ACVMField[][]> {
233
- const messageHashField = Fr.fromString(messageHash);
234
- const witness = await this.handlerAsUtility().utilityGetAuthWitness(messageHashField);
235
- if (!witness) {
236
- throw new Error(`Unknown auth witness for message hash ${messageHashField}`);
237
- }
238
- return [witness.map(toACVMField)];
239
- }
240
-
241
- async utilityGetPublicKeysAndPartialAddress([address]: ACVMField[]): Promise<ACVMField[][]> {
242
- const parsedAddress = AztecAddress.fromField(Fr.fromString(address));
243
- const { publicKeys, partialAddress } =
244
- await this.handlerAsUtility().utilityGetPublicKeysAndPartialAddress(parsedAddress);
245
-
246
- return [[...publicKeys.toFields(), partialAddress].map(toACVMField)];
247
- }
248
-
249
- async utilityGetNotes(
250
- [ownerSome]: ACVMField[],
251
- [ownerValue]: ACVMField[],
252
- [storageSlot]: ACVMField[],
253
- [numSelects]: ACVMField[],
254
- selectByIndexes: ACVMField[],
255
- selectByOffsets: ACVMField[],
256
- selectByLengths: ACVMField[],
257
- selectValues: ACVMField[],
258
- selectComparators: ACVMField[],
259
- sortByIndexes: ACVMField[],
260
- sortByOffsets: ACVMField[],
261
- sortByLengths: ACVMField[],
262
- sortOrder: ACVMField[],
263
- [limit]: ACVMField[],
264
- [offset]: ACVMField[],
265
- [status]: ACVMField[],
266
- [maxNotes]: ACVMField[],
267
- [packedHintedNoteLength]: ACVMField[],
268
- ): Promise<(ACVMField | ACVMField[])[]> {
269
- // Parse Option<AztecAddress>: ownerSome is 0 for None, 1 for Some
270
- const owner = Fr.fromString(ownerSome).toNumber() === 1 ? AztecAddress.fromString(ownerValue) : undefined;
271
- const noteDatas = await this.handlerAsUtility().utilityGetNotes(
272
- owner,
273
- Fr.fromString(storageSlot),
274
- +numSelects,
275
- selectByIndexes.map(s => +s),
276
- selectByOffsets.map(s => +s),
277
- selectByLengths.map(s => +s),
278
- selectValues.map(Fr.fromString),
279
- selectComparators.map(s => +s),
280
- sortByIndexes.map(s => +s),
281
- sortByOffsets.map(s => +s),
282
- sortByLengths.map(s => +s),
283
- sortOrder.map(s => +s),
284
- +limit,
285
- +offset,
286
- +status,
287
- );
288
-
289
- const returnDataAsArrayOfPackedHintedNotes = noteDatas.map(noteData =>
290
- packAsHintedNote({
291
- contractAddress: noteData.contractAddress,
292
- owner: noteData.owner,
293
- randomness: noteData.randomness,
294
- storageSlot: noteData.storageSlot,
295
- noteNonce: noteData.noteNonce,
296
- isPending: noteData.isPending,
297
- note: noteData.note,
298
- }),
299
- );
300
-
301
- // Now we convert each sub-array to an array of ACVMField
302
- const returnDataAsArrayOfACVMFieldArrays = returnDataAsArrayOfPackedHintedNotes.map(subArray =>
303
- subArray.map(toACVMField),
304
- );
305
-
306
- // At last we convert the array of arrays to a bounded vec of arrays
307
- return arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfACVMFieldArrays, +maxNotes, +packedHintedNoteLength);
308
- }
309
-
310
- privateNotifyCreatedNote(
311
- [owner]: ACVMField[],
312
- [storageSlot]: ACVMField[],
313
- [randomness]: ACVMField[],
314
- [noteTypeId]: ACVMField[],
315
- note: ACVMField[],
316
- [noteHash]: ACVMField[],
317
- [counter]: ACVMField[],
318
- ): Promise<ACVMField[]> {
319
- this.handlerAsPrivate().privateNotifyCreatedNote(
320
- AztecAddress.fromString(owner),
321
- Fr.fromString(storageSlot),
322
- Fr.fromString(randomness),
323
- NoteSelector.fromField(Fr.fromString(noteTypeId)),
324
- note.map(Fr.fromString),
325
- Fr.fromString(noteHash),
326
- +counter,
327
- );
328
- return Promise.resolve([]);
329
- }
330
-
331
- async privateNotifyNullifiedNote(
332
- [innerNullifier]: ACVMField[],
333
- [noteHash]: ACVMField[],
334
- [counter]: ACVMField[],
335
- ): Promise<ACVMField[]> {
336
- await this.handlerAsPrivate().privateNotifyNullifiedNote(
337
- Fr.fromString(innerNullifier),
338
- Fr.fromString(noteHash),
339
- +counter,
340
- );
341
- return [];
342
- }
343
-
344
- async privateNotifyCreatedNullifier([innerNullifier]: ACVMField[]): Promise<ACVMField[]> {
345
- await this.handlerAsPrivate().privateNotifyCreatedNullifier(Fr.fromString(innerNullifier));
346
- return [];
347
- }
348
-
349
- async privateIsNullifierPending([innerNullifier]: ACVMField[], [contractAddress]: ACVMField[]): Promise<ACVMField[]> {
350
- const isPending = await this.handlerAsPrivate().privateIsNullifierPending(
351
- Fr.fromString(innerNullifier),
352
- AztecAddress.fromString(contractAddress),
353
- );
354
- return [toACVMField(isPending)];
355
- }
356
-
357
- async utilityCheckNullifierExists([innerNullifier]: ACVMField[]): Promise<ACVMField[]> {
358
- const exists = await this.handlerAsUtility().utilityCheckNullifierExists(Fr.fromString(innerNullifier));
359
- return [toACVMField(exists)];
360
- }
361
-
362
- async utilityGetL1ToL2MembershipWitness(
363
- [contractAddress]: ACVMField[],
364
- [messageHash]: ACVMField[],
365
- [secret]: ACVMField[],
366
- ): Promise<(ACVMField | ACVMField[])[]> {
367
- const message = await this.handlerAsUtility().utilityGetL1ToL2MembershipWitness(
368
- AztecAddress.fromString(contractAddress),
369
- Fr.fromString(messageHash),
370
- Fr.fromString(secret),
371
- );
372
- return message.toNoirRepresentation();
373
- }
374
-
375
- async utilityStorageRead(
376
- [blockHash]: ACVMField[],
377
- [contractAddress]: ACVMField[],
378
- [startStorageSlot]: ACVMField[],
379
- [numberOfElements]: ACVMField[],
380
- ): Promise<ACVMField[][]> {
381
- const values = await this.handlerAsUtility().utilityStorageRead(
382
- BlockHash.fromString(blockHash),
383
- new AztecAddress(Fr.fromString(contractAddress)),
384
- Fr.fromString(startStorageSlot),
385
- +numberOfElements,
386
- );
387
- return [values.map(toACVMField)];
388
- }
389
-
390
- privateNotifyCreatedContractClassLog(
391
- [contractAddress]: ACVMField[],
392
- message: ACVMField[],
393
- [length]: ACVMField[],
394
- [counter]: ACVMField[],
395
- ): Promise<ACVMField[]> {
396
- const logFields = new ContractClassLogFields(message.map(Fr.fromString));
397
- const log = new ContractClassLog(new AztecAddress(Fr.fromString(contractAddress)), logFields, +length);
398
-
399
- this.handlerAsPrivate().privateNotifyCreatedContractClassLog(log, +counter);
400
- return Promise.resolve([]);
401
- }
402
-
403
- utilityDebugLog(
404
- level: ACVMField[],
405
- message: ACVMField[],
406
- _ignoredFieldsSize: ACVMField[],
407
- fields: ACVMField[],
408
- ): Promise<ACVMField[]> {
409
- const levelFr = Fr.fromString(level[0]);
410
- const messageStr = message.map(acvmField => String.fromCharCode(Fr.fromString(acvmField).toNumber())).join('');
411
- const fieldsFr = fields.map(Fr.fromString);
412
- this.handlerAsMisc().utilityDebugLog(levelFr.toNumber(), messageStr, fieldsFr);
413
- return Promise.resolve([]);
414
- }
415
-
416
- // This function's name is directly hardcoded in `circuit_recorder.ts`. Don't forget to update it there if you
417
- // change the name here.
418
- async privateCallPrivateFunction(
419
- [contractAddress]: ACVMField[],
420
- [functionSelector]: ACVMField[],
421
- [argsHash]: ACVMField[],
422
- [sideEffectCounter]: ACVMField[],
423
- [isStaticCall]: ACVMField[],
424
- ): Promise<ACVMField[][]> {
425
- const { endSideEffectCounter, returnsHash } = await this.handlerAsPrivate().privateCallPrivateFunction(
426
- AztecAddress.fromField(Fr.fromString(contractAddress)),
427
- FunctionSelector.fromField(Fr.fromString(functionSelector)),
428
- Fr.fromString(argsHash),
429
- Fr.fromString(sideEffectCounter).toNumber(),
430
- Fr.fromString(isStaticCall).toBool(),
431
- );
432
- return [[endSideEffectCounter, returnsHash].map(toACVMField)];
433
- }
434
-
435
- async privateNotifyEnqueuedPublicFunctionCall(
436
- [contractAddress]: ACVMField[],
437
- [calldataHash]: ACVMField[],
438
- [sideEffectCounter]: ACVMField[],
439
- [isStaticCall]: ACVMField[],
440
- ): Promise<ACVMField[]> {
441
- await this.handlerAsPrivate().privateNotifyEnqueuedPublicFunctionCall(
442
- AztecAddress.fromString(contractAddress),
443
- Fr.fromString(calldataHash),
444
- Fr.fromString(sideEffectCounter).toNumber(),
445
- Fr.fromString(isStaticCall).toBool(),
446
- );
447
- return [];
448
- }
449
-
450
- async privateNotifySetPublicTeardownFunctionCall(
451
- [contractAddress]: ACVMField[],
452
- [calldataHash]: ACVMField[],
453
- [sideEffectCounter]: ACVMField[],
454
- [isStaticCall]: ACVMField[],
455
- ): Promise<ACVMField[]> {
456
- await this.handlerAsPrivate().privateNotifySetPublicTeardownFunctionCall(
457
- AztecAddress.fromString(contractAddress),
458
- Fr.fromString(calldataHash),
459
- Fr.fromString(sideEffectCounter).toNumber(),
460
- Fr.fromString(isStaticCall).toBool(),
461
- );
462
- return [];
463
- }
464
-
465
- async privateNotifySetMinRevertibleSideEffectCounter([minRevertibleSideEffectCounter]: ACVMField[]): Promise<
466
- ACVMField[]
467
- > {
468
- await this.handlerAsPrivate().privateNotifySetMinRevertibleSideEffectCounter(
469
- Fr.fromString(minRevertibleSideEffectCounter).toNumber(),
470
- );
471
- return Promise.resolve([]);
472
- }
473
-
474
- async privateIsSideEffectCounterRevertible([sideEffectCounter]: ACVMField[]): Promise<ACVMField[]> {
475
- const isRevertible = await this.handlerAsPrivate().privateIsSideEffectCounterRevertible(
476
- Fr.fromString(sideEffectCounter).toNumber(),
477
- );
478
- return Promise.resolve([toACVMField(isRevertible)]);
479
- }
480
-
481
- async privateGetNextAppTagAsSender([sender]: ACVMField[], [recipient]: ACVMField[]): Promise<ACVMField[]> {
482
- const tag = await this.handlerAsPrivate().privateGetNextAppTagAsSender(
483
- AztecAddress.fromString(sender),
484
- AztecAddress.fromString(recipient),
485
- );
486
- return [toACVMField(tag.value)];
487
- }
488
-
489
- async utilityFetchTaggedLogs([pendingTaggedLogArrayBaseSlot]: ACVMField[]): Promise<ACVMField[]> {
490
- await this.handlerAsUtility().utilityFetchTaggedLogs(Fr.fromString(pendingTaggedLogArrayBaseSlot));
491
- return [];
492
- }
493
-
494
- async utilityValidateAndStoreEnqueuedNotesAndEvents(
495
- [contractAddress]: ACVMField[],
496
- [noteValidationRequestsArrayBaseSlot]: ACVMField[],
497
- [eventValidationRequestsArrayBaseSlot]: ACVMField[],
498
- ): Promise<ACVMField[]> {
499
- await this.handlerAsUtility().utilityValidateAndStoreEnqueuedNotesAndEvents(
500
- AztecAddress.fromString(contractAddress),
501
- Fr.fromString(noteValidationRequestsArrayBaseSlot),
502
- Fr.fromString(eventValidationRequestsArrayBaseSlot),
503
- );
504
-
505
- return [];
506
- }
507
-
508
- async utilityBulkRetrieveLogs(
509
- [contractAddress]: ACVMField[],
510
- [logRetrievalRequestsArrayBaseSlot]: ACVMField[],
511
- [logRetrievalResponsesArrayBaseSlot]: ACVMField[],
512
- ): Promise<ACVMField[]> {
513
- await this.handlerAsUtility().utilityBulkRetrieveLogs(
514
- AztecAddress.fromString(contractAddress),
515
- Fr.fromString(logRetrievalRequestsArrayBaseSlot),
516
- Fr.fromString(logRetrievalResponsesArrayBaseSlot),
517
- );
518
- return [];
519
- }
520
-
521
- async utilityStoreCapsule(
522
- [contractAddress]: ACVMField[],
523
- [slot]: ACVMField[],
524
- capsule: ACVMField[],
525
- ): Promise<ACVMField[]> {
526
- await this.handlerAsUtility().utilityStoreCapsule(
527
- AztecAddress.fromField(Fr.fromString(contractAddress)),
528
- Fr.fromString(slot),
529
- capsule.map(Fr.fromString),
530
- );
531
- return [];
532
- }
533
-
534
- async utilityLoadCapsule(
535
- [contractAddress]: ACVMField[],
536
- [slot]: ACVMField[],
537
- [tSize]: ACVMField[],
538
- ): Promise<(ACVMField | ACVMField[])[]> {
539
- const values = await this.handlerAsUtility().utilityLoadCapsule(
540
- AztecAddress.fromField(Fr.fromString(contractAddress)),
541
- Fr.fromString(slot),
542
- );
543
-
544
- // We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
545
- // with two fields: `some` (a boolean) and `value` (a field array in this case).
546
- if (values === null) {
547
- // No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
548
- return [toACVMField(0), Array(Fr.fromString(tSize).toNumber()).fill(toACVMField(0))];
549
- } else {
550
- // Data was found so we set `some` to 1 and return it along with `value`.
551
- return [toACVMField(1), values.map(toACVMField)];
552
- }
553
- }
554
-
555
- async utilityDeleteCapsule([contractAddress]: ACVMField[], [slot]: ACVMField[]): Promise<ACVMField[]> {
556
- await this.handlerAsUtility().utilityDeleteCapsule(
557
- AztecAddress.fromField(Fr.fromString(contractAddress)),
558
- Fr.fromString(slot),
559
- );
560
- return [];
561
- }
562
-
563
- async utilityCopyCapsule(
564
- [contractAddress]: ACVMField[],
565
- [srcSlot]: ACVMField[],
566
- [dstSlot]: ACVMField[],
567
- [numEntries]: ACVMField[],
568
- ): Promise<ACVMField[]> {
569
- await this.handlerAsUtility().utilityCopyCapsule(
570
- AztecAddress.fromField(Fr.fromString(contractAddress)),
571
- Fr.fromString(srcSlot),
572
- Fr.fromString(dstSlot),
573
- Fr.fromString(numEntries).toNumber(),
574
- );
575
- return [];
576
- }
577
-
578
- async utilityAes128Decrypt(
579
- ciphertextBVecStorage: ACVMField[],
580
- [ciphertextLength]: ACVMField[],
581
- iv: ACVMField[],
582
- symKey: ACVMField[],
583
- ): Promise<(ACVMField | ACVMField[])[]> {
584
- const ciphertext = fromUintBoundedVec(ciphertextBVecStorage, ciphertextLength, 8);
585
- const ivBuffer = fromUintArray(iv, 8);
586
- const symKeyBuffer = fromUintArray(symKey, 8);
587
-
588
- const plaintext = await this.handlerAsUtility().utilityAes128Decrypt(ciphertext, ivBuffer, symKeyBuffer);
589
- return bufferToBoundedVec(plaintext, ciphertextBVecStorage.length);
590
- }
591
-
592
- async utilityGetSharedSecret(
593
- [address]: ACVMField[],
594
- [ephPKField0]: ACVMField[],
595
- [ephPKField1]: ACVMField[],
596
- [ephPKField2]: ACVMField[],
597
- ): Promise<ACVMField[]> {
598
- const secret = await this.handlerAsUtility().utilityGetSharedSecret(
599
- AztecAddress.fromField(Fr.fromString(address)),
600
- Point.fromFields([ephPKField0, ephPKField1, ephPKField2].map(Fr.fromString)),
601
- );
602
- return secret.toFields().map(toACVMField);
603
- }
604
-
605
- async utilityEmitOffchainEffect(data: ACVMField[]) {
606
- await this.handlerAsPrivate().utilityEmitOffchainEffect(data.map(Fr.fromString));
607
- return [];
608
- }
609
-
610
- async privateGetSenderForTags(): Promise<ACVMField[]> {
611
- const sender = await this.handlerAsPrivate().privateGetSenderForTags();
612
- // Return [1, address] for Some(address), [0, 0] for None
613
- return sender ? [toACVMField(1n), toACVMField(sender)] : [toACVMField(0n), toACVMField(0n)];
614
- }
615
-
616
- async privateSetSenderForTags([senderForTags]: ACVMField[]): Promise<ACVMField[]> {
617
- await this.handlerAsPrivate().privateSetSenderForTags(AztecAddress.fromField(Fr.fromString(senderForTags)));
618
- return [];
619
- }
620
- }
@@ -1,83 +0,0 @@
1
- import { FunctionSelector } from '@aztec/stdlib/abi';
2
- import { AztecAddress } from '@aztec/stdlib/aztec-address';
3
- import type { ContractOverrides } from '@aztec/stdlib/tx';
4
-
5
- import type { ContractStore } from '../storage/contract_store/contract_store.js';
6
-
7
- /*
8
- * Proxy generator for a ContractStore that allows overriding contract instances and artifacts, so
9
- * the contract function simulator can execute different bytecode on certain addresses. An example use case
10
- * would be overriding your own account contract so that valid signatures don't have to be provided while simulating.
11
- */
12
- export class ProxiedContractStoreFactory {
13
- static create(contractStore: ContractStore, overrides?: ContractOverrides) {
14
- if (!overrides) {
15
- return contractStore;
16
- }
17
-
18
- return new Proxy(contractStore, {
19
- get(target, prop: keyof ContractStore) {
20
- switch (prop) {
21
- case 'getContractInstance': {
22
- return async (address: AztecAddress) => {
23
- if (overrides[address.toString()]) {
24
- const { instance } = overrides[address.toString()]!;
25
- instance.address = address;
26
- const realInstance = await target.getContractInstance(address);
27
- if (!realInstance) {
28
- throw new Error(`Contract instance not found for address: ${address}`);
29
- }
30
- instance.currentContractClassId = realInstance.currentContractClassId;
31
- instance.originalContractClassId = realInstance.originalContractClassId;
32
- return instance;
33
- } else {
34
- return target.getContractInstance(address);
35
- }
36
- };
37
- }
38
- case 'getFunctionArtifact': {
39
- return async (contractAddress: AztecAddress, selector: FunctionSelector) => {
40
- if (overrides[contractAddress.toString()]) {
41
- const { artifact } = overrides[contractAddress.toString()]!;
42
- const functions = artifact.functions;
43
- for (let i = 0; i < functions.length; i++) {
44
- const fn = functions[i];
45
- const fnSelector = await FunctionSelector.fromNameAndParameters(fn.name, fn.parameters);
46
- if (fnSelector.equals(selector)) {
47
- return fn;
48
- }
49
- }
50
- } else {
51
- return target.getFunctionArtifact(contractAddress, selector);
52
- }
53
- };
54
- }
55
- case 'getFunctionArtifactWithDebugMetadata': {
56
- return async (contractAddress: AztecAddress, selector: FunctionSelector) => {
57
- if (overrides[contractAddress.toString()]) {
58
- const { artifact } = overrides[contractAddress.toString()]!;
59
- const functions = artifact.functions;
60
- for (let i = 0; i < functions.length; i++) {
61
- const fn = functions[i];
62
- const fnSelector = await FunctionSelector.fromNameAndParameters(fn.name, fn.parameters);
63
- if (fnSelector.equals(selector)) {
64
- return fn;
65
- }
66
- }
67
- } else {
68
- return target.getFunctionArtifactWithDebugMetadata(contractAddress, selector);
69
- }
70
- };
71
- }
72
- default: {
73
- const value = Reflect.get(target, prop);
74
- if (typeof value === 'function') {
75
- return value.bind(target);
76
- }
77
- return value;
78
- }
79
- }
80
- },
81
- });
82
- }
83
- }