@aztec/pxe 0.0.1-commit.2ed92850 → 0.0.1-commit.2f68f620

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 (364) hide show
  1. package/dest/bin/check_oracle_version.js +43 -99
  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 +26 -0
  6. package/dest/bin/oracle_version_helpers.d.ts.map +1 -0
  7. package/dest/bin/oracle_version_helpers.js +93 -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 +62 -0
  11. package/dest/block_synchronizer/block_synchronizer.d.ts +10 -4
  12. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  13. package/dest/block_synchronizer/block_synchronizer.js +39 -13
  14. package/dest/config/index.d.ts +8 -2
  15. package/dest/config/index.d.ts.map +1 -1
  16. package/dest/config/index.js +13 -15
  17. package/dest/config/package_info.js +1 -1
  18. package/dest/contract_function_simulator/contract_function_simulator.d.ts +66 -31
  19. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  20. package/dest/contract_function_simulator/contract_function_simulator.js +216 -77
  21. package/dest/contract_function_simulator/ephemeral_array_service.d.ts +28 -0
  22. package/dest/contract_function_simulator/ephemeral_array_service.d.ts.map +1 -0
  23. package/dest/contract_function_simulator/ephemeral_array_service.js +78 -0
  24. package/dest/contract_function_simulator/execution_note_cache.d.ts +2 -2
  25. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  26. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +7 -11
  27. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  28. package/dest/contract_function_simulator/execution_tagging_index_cache.js +19 -15
  29. package/dest/contract_function_simulator/index.d.ts +14 -2
  30. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  31. package/dest/contract_function_simulator/index.js +11 -0
  32. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +48 -0
  33. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts.map +1 -0
  34. package/dest/contract_function_simulator/noir-structs/bounded_vec.js +45 -0
  35. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts +37 -0
  36. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts.map +1 -0
  37. package/dest/contract_function_simulator/noir-structs/ephemeral_array.js +59 -0
  38. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +3 -4
  39. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  40. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +8 -9
  41. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +13 -3
  42. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  43. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +35 -4
  44. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +2 -2
  45. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  46. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +2 -4
  47. package/dest/contract_function_simulator/noir-structs/note_data.d.ts +27 -0
  48. package/dest/contract_function_simulator/noir-structs/note_data.d.ts.map +1 -0
  49. package/dest/contract_function_simulator/noir-structs/note_data.js +3 -0
  50. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +3 -5
  51. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  52. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +6 -10
  53. package/dest/contract_function_simulator/noir-structs/option.d.ts +61 -0
  54. package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -0
  55. package/dest/contract_function_simulator/noir-structs/option.js +62 -0
  56. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts +11 -0
  57. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts.map +1 -0
  58. package/dest/contract_function_simulator/noir-structs/provided_secret.js +24 -0
  59. package/dest/contract_function_simulator/oracle/interfaces.d.ts +16 -98
  60. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  61. package/dest/contract_function_simulator/oracle/interfaces.js +2 -2
  62. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +2 -2
  63. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  64. package/dest/contract_function_simulator/oracle/note_packing_utils.js +2 -2
  65. package/dest/contract_function_simulator/oracle/oracle.d.ts +75 -46
  66. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  67. package/dest/contract_function_simulator/oracle/oracle.js +471 -275
  68. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +127 -0
  69. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -0
  70. package/dest/contract_function_simulator/oracle/oracle_registry.js +786 -0
  71. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +139 -0
  72. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -0
  73. package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +560 -0
  74. package/dest/contract_function_simulator/oracle/private_execution.js +5 -3
  75. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +68 -96
  76. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  77. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +142 -111
  78. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +156 -78
  79. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  80. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +454 -172
  81. package/dest/contract_function_simulator/pick_notes.d.ts +1 -1
  82. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  83. package/dest/contract_function_simulator/pick_notes.js +20 -3
  84. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +1 -1
  85. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  86. package/dest/contract_function_simulator/proxied_contract_data_source.js +35 -64
  87. package/dest/contract_logging.d.ts +27 -0
  88. package/dest/contract_logging.d.ts.map +1 -0
  89. package/dest/contract_logging.js +38 -0
  90. package/dest/contract_sync/contract_sync_service.d.ts +42 -0
  91. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
  92. package/dest/contract_sync/contract_sync_service.js +135 -0
  93. package/dest/contract_sync/helpers.d.ts +27 -0
  94. package/dest/contract_sync/helpers.d.ts.map +1 -0
  95. package/dest/contract_sync/{index.js → helpers.js} +16 -17
  96. package/dest/debug/pxe_debug_utils.d.ts +19 -10
  97. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  98. package/dest/debug/pxe_debug_utils.js +22 -18
  99. package/dest/entrypoints/client/bundle/index.d.ts +3 -1
  100. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  101. package/dest/entrypoints/client/bundle/index.js +2 -0
  102. package/dest/entrypoints/client/bundle/utils.d.ts +2 -2
  103. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  104. package/dest/entrypoints/client/bundle/utils.js +33 -11
  105. package/dest/entrypoints/client/lazy/index.d.ts +3 -1
  106. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  107. package/dest/entrypoints/client/lazy/index.js +2 -0
  108. package/dest/entrypoints/client/lazy/utils.d.ts +3 -3
  109. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  110. package/dest/entrypoints/client/lazy/utils.js +34 -12
  111. package/dest/entrypoints/pxe_creation_options.d.ts +11 -2
  112. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  113. package/dest/entrypoints/pxe_creation_options.js +3 -1
  114. package/dest/entrypoints/server/index.d.ts +5 -3
  115. package/dest/entrypoints/server/index.d.ts.map +1 -1
  116. package/dest/entrypoints/server/index.js +4 -2
  117. package/dest/entrypoints/server/utils.d.ts +4 -3
  118. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  119. package/dest/entrypoints/server/utils.js +40 -13
  120. package/dest/events/event_service.d.ts +16 -8
  121. package/dest/events/event_service.d.ts.map +1 -1
  122. package/dest/events/event_service.js +46 -14
  123. package/dest/events/private_event_filter_validator.d.ts +3 -2
  124. package/dest/events/private_event_filter_validator.d.ts.map +1 -1
  125. package/dest/events/private_event_filter_validator.js +15 -0
  126. package/dest/hooks/authorize_utility_call.d.ts +41 -0
  127. package/dest/hooks/authorize_utility_call.d.ts.map +1 -0
  128. package/dest/hooks/authorize_utility_call.js +4 -0
  129. package/dest/hooks/execution_hooks.d.ts +42 -0
  130. package/dest/hooks/execution_hooks.d.ts.map +1 -0
  131. package/dest/hooks/execution_hooks.js +9 -0
  132. package/dest/hooks/index.d.ts +4 -0
  133. package/dest/hooks/index.d.ts.map +1 -0
  134. package/dest/hooks/index.js +1 -0
  135. package/dest/job_coordinator/job_coordinator.d.ts +3 -2
  136. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -1
  137. package/dest/job_coordinator/job_coordinator.js +3 -2
  138. package/dest/logs/log_service.d.ts +12 -10
  139. package/dest/logs/log_service.d.ts.map +1 -1
  140. package/dest/logs/log_service.js +134 -90
  141. package/dest/messages/message_context_service.d.ts +17 -0
  142. package/dest/messages/message_context_service.d.ts.map +1 -0
  143. package/dest/messages/message_context_service.js +55 -0
  144. package/dest/notes/note_service.d.ts +29 -8
  145. package/dest/notes/note_service.d.ts.map +1 -1
  146. package/dest/notes/note_service.js +89 -65
  147. package/dest/notes_filter.d.ts +24 -0
  148. package/dest/notes_filter.d.ts.map +1 -0
  149. package/dest/notes_filter.js +4 -0
  150. package/dest/oracle_version.d.ts +4 -3
  151. package/dest/oracle_version.d.ts.map +1 -1
  152. package/dest/oracle_version.js +20 -10
  153. package/dest/private_kernel/batch_planner.d.ts +47 -0
  154. package/dest/private_kernel/batch_planner.d.ts.map +1 -0
  155. package/dest/private_kernel/batch_planner.js +104 -0
  156. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  157. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  158. package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
  159. package/dest/private_kernel/hints/index.d.ts +1 -1
  160. package/dest/private_kernel/hints/index.js +1 -1
  161. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +4 -3
  162. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -1
  163. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +130 -69
  164. package/dest/private_kernel/hints/test_utils.d.ts +122 -0
  165. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
  166. package/dest/private_kernel/hints/test_utils.js +202 -0
  167. package/dest/private_kernel/private_kernel_execution_prover.d.ts +7 -2
  168. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  169. package/dest/private_kernel/private_kernel_execution_prover.js +167 -66
  170. package/dest/private_kernel/private_kernel_oracle.d.ts +15 -11
  171. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  172. package/dest/private_kernel/private_kernel_oracle.js +31 -25
  173. package/dest/pxe.d.ts +120 -24
  174. package/dest/pxe.d.ts.map +1 -1
  175. package/dest/pxe.js +235 -136
  176. package/dest/storage/address_store/address_store.d.ts +1 -1
  177. package/dest/storage/address_store/address_store.d.ts.map +1 -1
  178. package/dest/storage/address_store/address_store.js +12 -11
  179. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -1
  180. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -1
  181. package/dest/storage/anchor_block_store/anchor_block_store.js +9 -2
  182. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts +42 -0
  183. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts.map +1 -0
  184. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.js +93 -0
  185. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +15 -0
  186. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -0
  187. package/dest/storage/backwards_compatibility_tests/schema_tests.js +591 -0
  188. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts +19 -0
  189. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts.map +1 -0
  190. package/dest/storage/backwards_compatibility_tests/store_spy.js +63 -0
  191. package/dest/storage/capsule_store/capsule_service.d.ts +21 -0
  192. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -0
  193. package/dest/storage/capsule_store/capsule_service.js +50 -0
  194. package/dest/storage/capsule_store/capsule_store.d.ts +9 -9
  195. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -1
  196. package/dest/storage/capsule_store/capsule_store.js +42 -36
  197. package/dest/storage/capsule_store/index.d.ts +2 -1
  198. package/dest/storage/capsule_store/index.d.ts.map +1 -1
  199. package/dest/storage/capsule_store/index.js +1 -0
  200. package/dest/storage/contract_store/contract_store.d.ts +42 -15
  201. package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
  202. package/dest/storage/contract_store/contract_store.js +158 -90
  203. package/dest/storage/metadata.d.ts +1 -1
  204. package/dest/storage/metadata.js +1 -1
  205. package/dest/storage/note_store/note_store.d.ts +13 -3
  206. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  207. package/dest/storage/note_store/note_store.js +147 -107
  208. package/dest/storage/open_pxe_stores.d.ts +33 -0
  209. package/dest/storage/open_pxe_stores.d.ts.map +1 -0
  210. package/dest/storage/open_pxe_stores.js +27 -0
  211. package/dest/storage/private_event_store/private_event_store.d.ts +1 -1
  212. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
  213. package/dest/storage/private_event_store/private_event_store.js +87 -61
  214. package/dest/storage/private_event_store/stored_private_event.d.ts +4 -4
  215. package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -1
  216. package/dest/storage/private_event_store/stored_private_event.js +2 -2
  217. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +6 -6
  218. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -1
  219. package/dest/storage/tagging_store/recipient_tagging_store.js +31 -19
  220. package/dest/storage/tagging_store/sender_address_book_store.d.ts +1 -1
  221. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -1
  222. package/dest/storage/tagging_store/sender_address_book_store.js +20 -14
  223. package/dest/storage/tagging_store/sender_tagging_store.d.ts +29 -28
  224. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
  225. package/dest/storage/tagging_store/sender_tagging_store.js +233 -137
  226. package/dest/tagging/get_all_logs_by_tags.d.ts +35 -11
  227. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -1
  228. package/dest/tagging/get_all_logs_by_tags.js +45 -32
  229. package/dest/tagging/index.d.ts +6 -5
  230. package/dest/tagging/index.d.ts.map +1 -1
  231. package/dest/tagging/index.js +4 -3
  232. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts +29 -0
  233. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts.map +1 -0
  234. package/dest/tagging/persist_sender_tagging_index_ranges.js +42 -0
  235. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +56 -0
  236. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -0
  237. package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +163 -0
  238. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +3 -3
  239. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -1
  240. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +2 -2
  241. package/dest/tagging/reconcile_tagging_index_ranges.d.ts +36 -0
  242. package/dest/tagging/reconcile_tagging_index_ranges.d.ts.map +1 -0
  243. package/dest/tagging/reconcile_tagging_index_ranges.js +74 -0
  244. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +5 -10
  245. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
  246. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +32 -14
  247. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +13 -7
  248. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -1
  249. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +41 -10
  250. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +6 -8
  251. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
  252. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +37 -25
  253. package/package.json +29 -17
  254. package/src/bin/check_oracle_version.ts +49 -122
  255. package/src/bin/index.ts +1 -0
  256. package/src/bin/oracle_version_helpers.ts +121 -0
  257. package/src/block_synchronizer/block_stream_source.ts +81 -0
  258. package/src/block_synchronizer/block_synchronizer.ts +54 -28
  259. package/src/config/index.ts +15 -9
  260. package/src/config/package_info.ts +1 -1
  261. package/src/contract_function_simulator/contract_function_simulator.ts +391 -136
  262. package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
  263. package/src/contract_function_simulator/execution_note_cache.ts +1 -1
  264. package/src/contract_function_simulator/execution_tagging_index_cache.ts +19 -18
  265. package/src/contract_function_simulator/index.ts +51 -1
  266. package/src/contract_function_simulator/noir-structs/bounded_vec.ts +55 -0
  267. package/src/contract_function_simulator/noir-structs/ephemeral_array.ts +66 -0
  268. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +9 -8
  269. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +36 -3
  270. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +2 -5
  271. package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
  272. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +4 -9
  273. package/src/contract_function_simulator/noir-structs/option.ts +69 -0
  274. package/src/contract_function_simulator/noir-structs/provided_secret.ts +27 -0
  275. package/src/contract_function_simulator/oracle/interfaces.ts +12 -176
  276. package/src/contract_function_simulator/oracle/note_packing_utils.ts +3 -3
  277. package/src/contract_function_simulator/oracle/oracle.ts +564 -473
  278. package/src/contract_function_simulator/oracle/oracle_registry.ts +585 -0
  279. package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +553 -0
  280. package/src/contract_function_simulator/oracle/private_execution.ts +4 -4
  281. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +174 -210
  282. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +672 -253
  283. package/src/contract_function_simulator/pick_notes.ts +22 -3
  284. package/src/contract_function_simulator/proxied_contract_data_source.ts +41 -64
  285. package/src/contract_logging.ts +52 -0
  286. package/src/contract_sync/contract_sync_service.ts +189 -0
  287. package/src/contract_sync/{index.ts → helpers.ts} +17 -29
  288. package/src/debug/pxe_debug_utils.ts +55 -19
  289. package/src/entrypoints/client/bundle/index.ts +2 -0
  290. package/src/entrypoints/client/bundle/utils.ts +26 -20
  291. package/src/entrypoints/client/lazy/index.ts +2 -0
  292. package/src/entrypoints/client/lazy/utils.ts +28 -21
  293. package/src/entrypoints/pxe_creation_options.ts +16 -1
  294. package/src/entrypoints/server/index.ts +4 -2
  295. package/src/entrypoints/server/utils.ts +37 -32
  296. package/src/events/event_service.ts +70 -24
  297. package/src/events/private_event_filter_validator.ts +21 -1
  298. package/src/hooks/authorize_utility_call.ts +44 -0
  299. package/src/hooks/execution_hooks.ts +48 -0
  300. package/src/hooks/index.ts +7 -0
  301. package/src/job_coordinator/job_coordinator.ts +4 -3
  302. package/src/logs/log_service.ts +170 -153
  303. package/src/messages/message_context_service.ts +62 -0
  304. package/src/notes/note_service.ts +124 -91
  305. package/src/notes_filter.ts +24 -0
  306. package/src/oracle_version.ts +20 -10
  307. package/src/private_kernel/batch_planner.ts +169 -0
  308. package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
  309. package/src/private_kernel/hints/index.ts +1 -1
  310. package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +165 -118
  311. package/src/private_kernel/hints/test_utils.ts +318 -0
  312. package/src/private_kernel/private_kernel_execution_prover.ts +260 -92
  313. package/src/private_kernel/private_kernel_oracle.ts +42 -32
  314. package/src/pxe.ts +429 -186
  315. package/src/storage/address_store/address_store.ts +15 -15
  316. package/src/storage/anchor_block_store/anchor_block_store.ts +9 -1
  317. package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +22 -0
  318. package/src/storage/backwards_compatibility_tests/__snapshots__/AnchorBlockStore.json +3 -0
  319. package/src/storage/backwards_compatibility_tests/__snapshots__/CapsuleStore.json +16 -0
  320. package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +28 -0
  321. package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +52 -0
  322. package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +46 -0
  323. package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +36 -0
  324. package/src/storage/backwards_compatibility_tests/__snapshots__/PrivateEventStore.json +44 -0
  325. package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +18 -0
  326. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderAddressBookStore.json +16 -0
  327. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +22 -0
  328. package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +97 -0
  329. package/src/storage/backwards_compatibility_tests/kv_store_snapshot.ts +122 -0
  330. package/src/storage/backwards_compatibility_tests/schema_tests.ts +712 -0
  331. package/src/storage/backwards_compatibility_tests/store_spy.ts +73 -0
  332. package/src/storage/capsule_store/capsule_service.ts +90 -0
  333. package/src/storage/capsule_store/capsule_store.ts +52 -34
  334. package/src/storage/capsule_store/index.ts +1 -0
  335. package/src/storage/contract_store/contract_store.ts +194 -105
  336. package/src/storage/metadata.ts +1 -1
  337. package/src/storage/note_store/note_store.ts +166 -132
  338. package/src/storage/open_pxe_stores.ts +49 -0
  339. package/src/storage/private_event_store/private_event_store.ts +106 -81
  340. package/src/storage/private_event_store/stored_private_event.ts +3 -3
  341. package/src/storage/tagging_store/recipient_tagging_store.ts +34 -24
  342. package/src/storage/tagging_store/sender_address_book_store.ts +20 -14
  343. package/src/storage/tagging_store/sender_tagging_store.ts +287 -156
  344. package/src/tagging/get_all_logs_by_tags.ts +90 -38
  345. package/src/tagging/index.ts +5 -4
  346. package/src/tagging/persist_sender_tagging_index_ranges.ts +57 -0
  347. package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +240 -0
  348. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +4 -4
  349. package/src/tagging/reconcile_tagging_index_ranges.ts +102 -0
  350. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +54 -19
  351. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +44 -14
  352. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +30 -30
  353. package/dest/contract_sync/index.d.ts +0 -23
  354. package/dest/contract_sync/index.d.ts.map +0 -1
  355. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
  356. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
  357. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +0 -15
  358. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +0 -1
  359. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +0 -99
  360. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +0 -15
  361. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +0 -1
  362. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +0 -32
  363. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +0 -143
  364. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +0 -49
@@ -1,12 +1,12 @@
1
1
  import type { FUNCTION_TREE_HEIGHT } from '@aztec/constants';
2
- import type { Fr } from '@aztec/foundation/curves/bn254';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { toArray } from '@aztec/foundation/iterable';
4
+ import { BufferReader, numToUInt8, serializeToBuffer } from '@aztec/foundation/serialize';
4
5
  import type { MembershipWitness } from '@aztec/foundation/trees';
5
6
  import type { AztecAsyncKVStore, AztecAsyncMap } from '@aztec/kv-store';
6
7
  import {
7
8
  type ContractArtifact,
8
9
  type FunctionAbi,
9
- type FunctionArtifact,
10
10
  type FunctionArtifactWithContractName,
11
11
  FunctionCall,
12
12
  type FunctionDebugMetadata,
@@ -15,11 +15,14 @@ import {
15
15
  contractArtifactFromBuffer,
16
16
  contractArtifactToBuffer,
17
17
  encodeArguments,
18
+ findFunctionAbiBySelector,
19
+ findFunctionArtifactBySelector,
18
20
  getFunctionDebugMetadata,
19
21
  } from '@aztec/stdlib/abi';
20
22
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
21
23
  import {
22
- type ContractClass,
24
+ type ContractClassIdPreimage,
25
+ type ContractClassWithId,
23
26
  type ContractInstanceWithAddress,
24
27
  SerializableContractInstance,
25
28
  getContractClassFromArtifact,
@@ -27,6 +30,68 @@ import {
27
30
 
28
31
  import { PrivateFunctionsTree } from './private_functions_tree.js';
29
32
 
33
+ const VERSION = 1 as const;
34
+
35
+ /**
36
+ * All contract class data except the large packedBytecode.
37
+ * The expensive data from the ContractClass is precomputed and stored in this format to avoid redundant hashing.
38
+ * Since we have to store the artifacts anyway, the final ContractClass is reconstructed by combining this data
39
+ * with the packedBytecode obtained from the former. That way we can have quick class lookups without wasted storage.
40
+ */
41
+ export class SerializableContractClassData {
42
+ public readonly version = VERSION;
43
+ public readonly id: Fr;
44
+ public readonly artifactHash: Fr;
45
+ public readonly privateFunctionsRoot: Fr;
46
+ public readonly publicBytecodeCommitment: Fr;
47
+ public readonly privateFunctions: { selector: FunctionSelector; vkHash: Fr }[];
48
+
49
+ constructor(
50
+ data: ContractClassIdPreimage & {
51
+ id: Fr;
52
+ privateFunctions: { selector: FunctionSelector; vkHash: Fr }[];
53
+ },
54
+ ) {
55
+ this.id = data.id;
56
+ this.artifactHash = data.artifactHash;
57
+ this.privateFunctionsRoot = data.privateFunctionsRoot;
58
+ this.publicBytecodeCommitment = data.publicBytecodeCommitment;
59
+ this.privateFunctions = data.privateFunctions;
60
+ }
61
+
62
+ toBuffer(): Buffer {
63
+ return serializeToBuffer(
64
+ numToUInt8(this.version),
65
+ this.id,
66
+ this.artifactHash,
67
+ this.privateFunctionsRoot,
68
+ this.publicBytecodeCommitment,
69
+ this.privateFunctions.length,
70
+ ...this.privateFunctions.map(fn => serializeToBuffer(fn.selector, fn.vkHash)),
71
+ );
72
+ }
73
+
74
+ static fromBuffer(bufferOrReader: Buffer | BufferReader): SerializableContractClassData {
75
+ const reader = BufferReader.asReader(bufferOrReader);
76
+ const version = reader.readUInt8();
77
+ if (version !== VERSION) {
78
+ throw new Error(`Unexpected contract class data version ${version}`);
79
+ }
80
+ return new SerializableContractClassData({
81
+ id: reader.readObject(Fr),
82
+ artifactHash: reader.readObject(Fr),
83
+ privateFunctionsRoot: reader.readObject(Fr),
84
+ publicBytecodeCommitment: reader.readObject(Fr),
85
+ privateFunctions: reader.readVector({
86
+ fromBuffer: (r: BufferReader) => ({
87
+ selector: r.readObject(FunctionSelector),
88
+ vkHash: r.readObject(Fr),
89
+ }),
90
+ }),
91
+ });
92
+ }
93
+ }
94
+
30
95
  /**
31
96
  * ContractStore serves as a data manager and retriever for Aztec.nr contracts.
32
97
  * It provides methods to obtain contract addresses, function ABI, bytecode, and membership witnesses
@@ -39,71 +104,95 @@ export class ContractStore {
39
104
  // TODO: Update it to be LRU cache so that it doesn't keep all the data all the time.
40
105
  #privateFunctionTrees: Map<string, PrivateFunctionsTree> = new Map();
41
106
 
42
- /** Map from contract address to contract class id */
107
+ /**
108
+ * In-memory cache of deserialized ContractArtifact objects, keyed by class id string.
109
+ * Avoids repeated LMDB reads + JSON.parse + Zod validation on every oracle call.
110
+ * Artifacts are large but immutable after registration — safe to cache for the lifetime of the store.
111
+ */
112
+ // TODO: Update it to be LRU cache so that it doesn't keep all the data all the time.
113
+ #contractArtifactCache: Map<string, ContractArtifact> = new Map();
114
+
115
+ /** Map from contract address to contract class id (avoids KV round-trip on hot path). */
43
116
  #contractClassIdMap: Map<string, Fr> = new Map();
44
117
 
118
+ #store: AztecAsyncKVStore;
45
119
  #contractArtifacts: AztecAsyncMap<string, Buffer>;
120
+ #contractClassData: AztecAsyncMap<string, Buffer>;
46
121
  #contractInstances: AztecAsyncMap<string, Buffer>;
47
122
 
48
123
  constructor(store: AztecAsyncKVStore) {
124
+ this.#store = store;
49
125
  this.#contractArtifacts = store.openMap('contract_artifacts');
126
+ this.#contractClassData = store.openMap('contract_classes');
50
127
  this.#contractInstances = store.openMap('contracts_instances');
51
128
  }
52
129
 
53
130
  // Setters
54
131
 
55
- public async addContractArtifact(id: Fr, contract: ContractArtifact): Promise<void> {
132
+ /**
133
+ * Registers a new contract artifact and its corresponding class data.
134
+ * IMPORTANT: This method does not verify that the provided artifact matches the class data or that the class id matches the artifact.
135
+ * It is the caller's responsibility to ensure the consistency and correctness of the provided data.
136
+ * This is done to avoid redundant, expensive contract class computations
137
+ */
138
+ public async addContractArtifact(
139
+ contract: ContractArtifact,
140
+ contractClassWithIdAndPreimage?: ContractClassWithId & ContractClassIdPreimage,
141
+ ): Promise<Fr> {
142
+ const contractClass = contractClassWithIdAndPreimage ?? (await getContractClassFromArtifact(contract));
143
+ const key = contractClass.id.toString();
144
+
145
+ if (this.#contractArtifactCache.has(key)) {
146
+ return contractClass.id;
147
+ }
148
+
56
149
  const privateFunctions = contract.functions.filter(
57
150
  functionArtifact => functionArtifact.functionType === FunctionType.PRIVATE,
58
151
  );
59
-
60
152
  const privateSelectors = await Promise.all(
61
- privateFunctions.map(async privateFunctionArtifact =>
62
- (
63
- await FunctionSelector.fromNameAndParameters(privateFunctionArtifact.name, privateFunctionArtifact.parameters)
64
- ).toString(),
153
+ privateFunctions.map(async fn =>
154
+ (await FunctionSelector.fromNameAndParameters(fn.name, fn.parameters)).toString(),
65
155
  ),
66
156
  );
67
-
68
157
  if (privateSelectors.length !== new Set(privateSelectors).size) {
69
158
  throw new Error('Repeated function selectors of private functions');
70
159
  }
71
160
 
72
- await this.#contractArtifacts.set(id.toString(), contractArtifactToBuffer(contract));
161
+ this.#contractArtifactCache.set(key, contract);
162
+
163
+ await this.#store.transactionAsync(async () => {
164
+ await this.#contractArtifacts.set(key, contractArtifactToBuffer(contract));
165
+ await this.#contractClassData.set(key, new SerializableContractClassData(contractClass).toBuffer());
166
+ });
167
+
168
+ return contractClass.id;
73
169
  }
74
170
 
75
171
  async addContractInstance(contract: ContractInstanceWithAddress): Promise<void> {
76
- this.#contractClassIdMap.set(contract.address.toString(), contract.currentContractClassId);
172
+ await this.#store.transactionAsync(async () => {
173
+ await this.#contractInstances.set(
174
+ contract.address.toString(),
175
+ new SerializableContractInstance(contract).toBuffer(),
176
+ );
177
+ });
77
178
 
78
- await this.#contractInstances.set(
79
- contract.address.toString(),
80
- new SerializableContractInstance(contract).toBuffer(),
81
- );
179
+ this.#contractClassIdMap.set(contract.address.toString(), contract.currentContractClassId);
82
180
  }
83
181
 
84
182
  // Private getters
85
183
 
86
184
  async #getContractClassId(contractAddress: AztecAddress): Promise<Fr | undefined> {
87
- if (!this.#contractClassIdMap.has(contractAddress.toString())) {
185
+ const key = contractAddress.toString();
186
+ if (!this.#contractClassIdMap.has(key)) {
88
187
  const instance = await this.getContractInstance(contractAddress);
89
188
  if (!instance) {
90
189
  return;
91
190
  }
92
- this.#contractClassIdMap.set(contractAddress.toString(), instance.currentContractClassId);
191
+ this.#contractClassIdMap.set(key, instance.currentContractClassId);
93
192
  }
94
- return this.#contractClassIdMap.get(contractAddress.toString());
193
+ return this.#contractClassIdMap.get(key);
95
194
  }
96
195
 
97
- /**
98
- * Retrieve or create a ContractTree instance based on the provided class id.
99
- * If an existing tree with the same class id is found in the cache, it will be returned.
100
- * Otherwise, a new ContractTree instance will be created using the contract data from the database
101
- * and added to the cache before returning.
102
- *
103
- * @param classId - The class id of the contract for which the ContractTree is required.
104
- * @returns A ContractTree instance associated with the specified contract address.
105
- * @throws An Error if the contract is not found in the ContractDatabase.
106
- */
107
196
  async #getPrivateFunctionTreeForClassId(classId: Fr): Promise<PrivateFunctionsTree | undefined> {
108
197
  if (!this.#privateFunctionTrees.has(classId.toString())) {
109
198
  const artifact = await this.getContractArtifact(classId);
@@ -116,34 +205,61 @@ export class ContractStore {
116
205
  return this.#privateFunctionTrees.get(classId.toString())!;
117
206
  }
118
207
 
119
- async #getContractArtifactByAddress(contractAddress: AztecAddress): Promise<ContractArtifact | undefined> {
120
- const contractClassId = await this.#getContractClassId(contractAddress);
121
- return contractClassId && this.getContractArtifact(contractClassId);
208
+ async #getArtifactByAddress(contractAddress: AztecAddress): Promise<ContractArtifact | undefined> {
209
+ const classId = await this.#getContractClassId(contractAddress);
210
+ return classId && this.getContractArtifact(classId);
122
211
  }
123
212
 
124
213
  // Public getters
125
214
 
126
- async getContractsAddresses(): Promise<AztecAddress[]> {
127
- const keys = await toArray(this.#contractInstances.keysAsync());
128
- return keys.map(AztecAddress.fromString);
215
+ getContractsAddresses(): Promise<AztecAddress[]> {
216
+ return this.#store.transactionAsync(async () => {
217
+ const keys = await toArray(this.#contractInstances.keysAsync());
218
+ return keys.map(AztecAddress.fromString);
219
+ });
129
220
  }
130
221
 
131
- /** Returns a contract instance for a given address. Throws if not found. */
132
- public async getContractInstance(contractAddress: AztecAddress): Promise<ContractInstanceWithAddress | undefined> {
133
- const contract = await this.#contractInstances.getAsync(contractAddress.toString());
134
- return contract && SerializableContractInstance.fromBuffer(contract).withAddress(contractAddress);
222
+ /** Returns a contract instance for a given address. */
223
+ public getContractInstance(contractAddress: AztecAddress): Promise<ContractInstanceWithAddress | undefined> {
224
+ return this.#store.transactionAsync(async () => {
225
+ const contract = await this.#contractInstances.getAsync(contractAddress.toString());
226
+ return contract && SerializableContractInstance.fromBuffer(contract).withAddress(contractAddress);
227
+ });
135
228
  }
136
229
 
230
+ /** Returns the raw contract artifact for a given class id. */
137
231
  public async getContractArtifact(contractClassId: Fr): Promise<ContractArtifact | undefined> {
138
- const contract = await this.#contractArtifacts.getAsync(contractClassId.toString());
139
- // TODO(@spalladino): AztecAsyncMap lies and returns Uint8Arrays instead of Buffers, hence the extra Buffer.from.
140
- return contract && contractArtifactFromBuffer(Buffer.from(contract));
232
+ const key = contractClassId.toString();
233
+ const cached = this.#contractArtifactCache.get(key);
234
+ if (cached) {
235
+ return cached;
236
+ }
237
+ const artifact = await this.#store.transactionAsync(async () => {
238
+ const buf = await this.#contractArtifacts.getAsync(key);
239
+ return buf && contractArtifactFromBuffer(buf);
240
+ });
241
+ if (artifact) {
242
+ this.#contractArtifactCache.set(key, artifact);
243
+ }
244
+ return artifact;
141
245
  }
142
246
 
143
- /** Returns a contract class for a given class id. Throws if not found. */
144
- public async getContractClass(contractClassId: Fr): Promise<ContractClass | undefined> {
247
+ /** Returns a contract class for a given class id. */
248
+ public async getContractClassWithPreimage(
249
+ contractClassId: Fr,
250
+ ): Promise<(ContractClassWithId & ContractClassIdPreimage) | undefined> {
251
+ const key = contractClassId.toString();
252
+ const buf = await this.#store.transactionAsync(() => this.#contractClassData.getAsync(key));
253
+ if (!buf) {
254
+ return undefined;
255
+ }
256
+ const classData = SerializableContractClassData.fromBuffer(buf);
145
257
  const artifact = await this.getContractArtifact(contractClassId);
146
- return artifact && getContractClassFromArtifact(artifact);
258
+ if (!artifact) {
259
+ return undefined;
260
+ }
261
+ const packedBytecode = artifact.functions.find(f => f.name === 'public_dispatch')?.bytecode ?? Buffer.alloc(0);
262
+ return { ...classData, packedBytecode };
147
263
  }
148
264
 
149
265
  public async getContract(
@@ -162,8 +278,6 @@ export class ContractStore {
162
278
 
163
279
  /**
164
280
  * Retrieves the artifact of a specified function within a given contract.
165
- * The function is identified by its selector, which is a unique code generated from the function's signature.
166
- * Throws an error if the contract address or function selector are invalid or not found.
167
281
  *
168
282
  * @param contractAddress - The AztecAddress representing the contract containing the function.
169
283
  * @param selector - The function selector.
@@ -173,9 +287,12 @@ export class ContractStore {
173
287
  contractAddress: AztecAddress,
174
288
  selector: FunctionSelector,
175
289
  ): Promise<FunctionArtifactWithContractName | undefined> {
176
- const artifact = await this.#getContractArtifactByAddress(contractAddress);
177
- const fnArtifact = artifact && (await this.#findFunctionArtifactBySelector(artifact, selector));
178
- return fnArtifact && { ...fnArtifact, contractName: artifact.name };
290
+ const artifact = await this.#getArtifactByAddress(contractAddress);
291
+ if (!artifact) {
292
+ return undefined;
293
+ }
294
+ const fn = await findFunctionArtifactBySelector(artifact, selector);
295
+ return fn && { ...fn, contractName: artifact.name };
179
296
  }
180
297
 
181
298
  public async getFunctionArtifactWithDebugMetadata(
@@ -196,50 +313,48 @@ export class ContractStore {
196
313
  public async getPublicFunctionArtifact(
197
314
  contractAddress: AztecAddress,
198
315
  ): Promise<FunctionArtifactWithContractName | undefined> {
199
- const artifact = await this.#getContractArtifactByAddress(contractAddress);
200
- const fnArtifact = artifact && artifact.functions.find(fn => fn.functionType === FunctionType.PUBLIC);
201
- return fnArtifact && { ...fnArtifact, contractName: artifact.name };
316
+ const artifact = await this.#getArtifactByAddress(contractAddress);
317
+ const fn = artifact && artifact.functions.find(f => f.functionType === FunctionType.PUBLIC);
318
+ return fn && { ...fn, contractName: artifact.name };
202
319
  }
203
320
 
204
321
  public async getFunctionAbi(
205
322
  contractAddress: AztecAddress,
206
323
  selector: FunctionSelector,
207
324
  ): Promise<FunctionAbi | undefined> {
208
- const artifact = await this.#getContractArtifactByAddress(contractAddress);
209
- return artifact && (await this.#findFunctionAbiBySelector(artifact, selector));
325
+ const artifact = await this.#getArtifactByAddress(contractAddress);
326
+ return artifact && (await findFunctionAbiBySelector(artifact, selector));
210
327
  }
211
328
 
212
329
  /**
213
330
  * Retrieves the debug metadata of a specified function within a given contract.
214
- * The function is identified by its selector, which is a unique code generated from the function's signature.
215
- * Returns undefined if the debug metadata for the given function is not found.
216
- * Throws if the contract has not been added to the database.
217
331
  *
218
332
  * @param contractAddress - The AztecAddress representing the contract containing the function.
219
333
  * @param selector - The function selector.
220
- * @returns The corresponding function's artifact as an object.
334
+ * @returns The corresponding function's debug metadata, or undefined.
221
335
  */
222
336
  public async getFunctionDebugMetadata(
223
337
  contractAddress: AztecAddress,
224
338
  selector: FunctionSelector,
225
339
  ): Promise<FunctionDebugMetadata | undefined> {
226
- const artifact = await this.#getContractArtifactByAddress(contractAddress);
227
- const fnArtifact = artifact && (await this.#findFunctionArtifactBySelector(artifact, selector));
228
- return fnArtifact && getFunctionDebugMetadata(artifact, fnArtifact);
340
+ const artifact = await this.#getArtifactByAddress(contractAddress);
341
+ if (!artifact) {
342
+ return undefined;
343
+ }
344
+ const fn = await findFunctionArtifactBySelector(artifact, selector);
345
+ return fn && getFunctionDebugMetadata(artifact, fn);
229
346
  }
230
347
 
231
348
  public async getPublicFunctionDebugMetadata(
232
349
  contractAddress: AztecAddress,
233
350
  ): Promise<FunctionDebugMetadata | undefined> {
234
- const artifact = await this.#getContractArtifactByAddress(contractAddress);
235
- const fnArtifact = artifact && artifact.functions.find(fn => fn.functionType === FunctionType.PUBLIC);
236
- return fnArtifact && getFunctionDebugMetadata(artifact, fnArtifact);
351
+ const artifact = await this.#getArtifactByAddress(contractAddress);
352
+ const fn = artifact && artifact.functions.find(f => f.functionType === FunctionType.PUBLIC);
353
+ return fn && getFunctionDebugMetadata(artifact, fn);
237
354
  }
238
355
 
239
356
  /**
240
357
  * Retrieve the function membership witness for the given contract class and function selector.
241
- * The function membership witness represents a proof that the function belongs to the specified contract.
242
- * Throws an error if the contract address or function selector is unknown.
243
358
  *
244
359
  * @param contractClassId - The id of the class.
245
360
  * @param selector - The function selector.
@@ -254,42 +369,14 @@ export class ContractStore {
254
369
  }
255
370
 
256
371
  public async getDebugContractName(contractAddress: AztecAddress) {
257
- const artifact = await this.#getContractArtifactByAddress(contractAddress);
372
+ const artifact = await this.#getArtifactByAddress(contractAddress);
258
373
  return artifact?.name;
259
374
  }
260
375
 
261
376
  public async getDebugFunctionName(contractAddress: AztecAddress, selector: FunctionSelector) {
262
- const artifact = await this.#getContractArtifactByAddress(contractAddress);
263
- const fnArtifact = artifact && (await this.#findFunctionAbiBySelector(artifact, selector));
264
- return `${artifact?.name ?? contractAddress}:${fnArtifact?.name ?? selector}`;
265
- }
266
-
267
- async #findFunctionArtifactBySelector(
268
- artifact: ContractArtifact,
269
- selector: FunctionSelector,
270
- ): Promise<FunctionArtifact | undefined> {
271
- const functions = artifact.functions;
272
- for (let i = 0; i < functions.length; i++) {
273
- const fn = functions[i];
274
- const fnSelector = await FunctionSelector.fromNameAndParameters(fn.name, fn.parameters);
275
- if (fnSelector.equals(selector)) {
276
- return fn;
277
- }
278
- }
279
- }
280
-
281
- async #findFunctionAbiBySelector(
282
- artifact: ContractArtifact,
283
- selector: FunctionSelector,
284
- ): Promise<FunctionAbi | undefined> {
285
- const functions = [...artifact.functions, ...(artifact.nonDispatchPublicFunctions ?? [])];
286
- for (let i = 0; i < functions.length; i++) {
287
- const fn = functions[i];
288
- const fnSelector = await FunctionSelector.fromNameAndParameters(fn.name, fn.parameters);
289
- if (fnSelector.equals(selector)) {
290
- return fn;
291
- }
292
- }
377
+ const artifact = await this.#getArtifactByAddress(contractAddress);
378
+ const fn = artifact && (await findFunctionAbiBySelector(artifact, selector));
379
+ return `${artifact?.name ?? contractAddress}:${fn?.name ?? selector}`;
293
380
  }
294
381
 
295
382
  public async getFunctionCall(functionName: string, args: any[], to: AztecAddress): Promise<FunctionCall> {
@@ -305,15 +392,17 @@ export class ContractStore {
305
392
  throw new Error(`Unknown function ${functionName} in contract ${contract.name}.`);
306
393
  }
307
394
 
308
- return {
395
+ const selector = await FunctionSelector.fromNameAndParameters(functionDao.name, functionDao.parameters);
396
+
397
+ return FunctionCall.from({
309
398
  name: functionDao.name,
310
- args: encodeArguments(functionDao, args),
311
- selector: await FunctionSelector.fromNameAndParameters(functionDao.name, functionDao.parameters),
312
- type: functionDao.functionType,
313
399
  to,
400
+ selector,
401
+ type: functionDao.functionType,
314
402
  hideMsgSender: false,
315
403
  isStatic: functionDao.isStatic,
404
+ args: encodeArguments(functionDao, args),
316
405
  returnTypes: functionDao.returnTypes,
317
- };
406
+ });
318
407
  }
319
408
  }
@@ -1 +1 @@
1
- export const PXE_DATA_SCHEMA_VERSION = 2;
1
+ export const PXE_DATA_SCHEMA_VERSION = 6;