@aztec/pxe 0.0.1-commit.24de95ac → 0.0.1-commit.2606882

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 (521) hide show
  1. package/dest/bin/check_oracle_version.d.ts +1 -1
  2. package/dest/bin/check_oracle_version.js +54 -20
  3. package/dest/bin/index.d.ts +2 -0
  4. package/dest/bin/index.d.ts.map +1 -0
  5. package/dest/bin/index.js +1 -0
  6. package/dest/bin/oracle_version_helpers.d.ts +26 -0
  7. package/dest/bin/oracle_version_helpers.d.ts.map +1 -0
  8. package/dest/bin/oracle_version_helpers.js +93 -0
  9. package/dest/block_synchronizer/block_stream_source.d.ts +10 -0
  10. package/dest/block_synchronizer/block_stream_source.d.ts.map +1 -0
  11. package/dest/block_synchronizer/block_stream_source.js +62 -0
  12. package/dest/block_synchronizer/block_synchronizer.d.ts +49 -0
  13. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
  14. package/dest/block_synchronizer/block_synchronizer.js +173 -0
  15. package/dest/block_synchronizer/index.d.ts +2 -0
  16. package/dest/block_synchronizer/index.d.ts.map +1 -0
  17. package/dest/block_synchronizer/index.js +1 -0
  18. package/dest/config/index.d.ts +13 -13
  19. package/dest/config/index.d.ts.map +1 -1
  20. package/dest/config/index.js +24 -15
  21. package/dest/config/package_info.d.ts +1 -1
  22. package/dest/config/package_info.js +1 -1
  23. package/dest/contract_function_simulator/benchmarked_node.d.ts +9 -0
  24. package/dest/contract_function_simulator/benchmarked_node.d.ts.map +1 -0
  25. package/dest/contract_function_simulator/benchmarked_node.js +77 -0
  26. package/dest/contract_function_simulator/contract_function_simulator.d.ts +89 -26
  27. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  28. package/dest/contract_function_simulator/contract_function_simulator.js +267 -88
  29. package/dest/contract_function_simulator/ephemeral_array_service.d.ts +28 -0
  30. package/dest/contract_function_simulator/ephemeral_array_service.d.ts.map +1 -0
  31. package/dest/contract_function_simulator/ephemeral_array_service.js +78 -0
  32. package/dest/contract_function_simulator/execution_note_cache.d.ts +26 -15
  33. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  34. package/dest/contract_function_simulator/execution_note_cache.js +59 -34
  35. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +7 -11
  36. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  37. package/dest/contract_function_simulator/execution_tagging_index_cache.js +19 -15
  38. package/dest/contract_function_simulator/hashed_values_cache.d.ts +2 -2
  39. package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -1
  40. package/dest/contract_function_simulator/index.d.ts +15 -3
  41. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  42. package/dest/contract_function_simulator/index.js +12 -1
  43. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +48 -0
  44. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts.map +1 -0
  45. package/dest/contract_function_simulator/noir-structs/bounded_vec.js +45 -0
  46. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts +37 -0
  47. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts.map +1 -0
  48. package/dest/contract_function_simulator/noir-structs/ephemeral_array.js +59 -0
  49. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +6 -6
  50. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  51. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +12 -10
  52. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +16 -5
  53. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  54. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +39 -7
  55. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +4 -4
  56. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  57. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +3 -5
  58. package/dest/contract_function_simulator/noir-structs/note_data.d.ts +27 -0
  59. package/dest/contract_function_simulator/noir-structs/note_data.d.ts.map +1 -0
  60. package/dest/contract_function_simulator/noir-structs/note_data.js +3 -0
  61. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +7 -7
  62. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  63. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +15 -10
  64. package/dest/contract_function_simulator/noir-structs/option.d.ts +61 -0
  65. package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -0
  66. package/dest/contract_function_simulator/noir-structs/option.js +62 -0
  67. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts +11 -0
  68. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts.map +1 -0
  69. package/dest/contract_function_simulator/noir-structs/provided_secret.js +24 -0
  70. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +4 -10
  71. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  72. package/dest/contract_function_simulator/noir-structs/utility_context.js +7 -18
  73. package/dest/contract_function_simulator/oracle/index.d.ts +1 -1
  74. package/dest/contract_function_simulator/oracle/interfaces.d.ts +16 -88
  75. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  76. package/dest/contract_function_simulator/oracle/interfaces.js +2 -2
  77. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +2 -2
  78. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  79. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -1
  80. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +14 -8
  81. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  82. package/dest/contract_function_simulator/oracle/note_packing_utils.js +17 -12
  83. package/dest/contract_function_simulator/oracle/oracle.d.ts +75 -43
  84. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  85. package/dest/contract_function_simulator/oracle/oracle.js +475 -251
  86. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +127 -0
  87. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -0
  88. package/dest/contract_function_simulator/oracle/oracle_registry.js +786 -0
  89. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +139 -0
  90. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -0
  91. package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +560 -0
  92. package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -27
  93. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  94. package/dest/contract_function_simulator/oracle/private_execution.js +6 -40
  95. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +78 -102
  96. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  97. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +177 -137
  98. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +189 -60
  99. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  100. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +507 -118
  101. package/dest/contract_function_simulator/pick_notes.d.ts +2 -2
  102. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  103. package/dest/contract_function_simulator/pick_notes.js +21 -4
  104. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
  105. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  106. package/dest/contract_function_simulator/proxied_contract_data_source.js +39 -50
  107. package/dest/contract_logging.d.ts +27 -0
  108. package/dest/contract_logging.d.ts.map +1 -0
  109. package/dest/contract_logging.js +38 -0
  110. package/dest/contract_sync/contract_sync_service.d.ts +42 -0
  111. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
  112. package/dest/contract_sync/contract_sync_service.js +135 -0
  113. package/dest/contract_sync/helpers.d.ts +27 -0
  114. package/dest/contract_sync/helpers.d.ts.map +1 -0
  115. package/dest/contract_sync/helpers.js +53 -0
  116. package/dest/debug/pxe_debug_utils.d.ts +40 -0
  117. package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
  118. package/dest/debug/pxe_debug_utils.js +42 -0
  119. package/dest/entrypoints/client/bundle/index.d.ts +3 -2
  120. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  121. package/dest/entrypoints/client/bundle/index.js +2 -1
  122. package/dest/entrypoints/client/bundle/utils.d.ts +2 -2
  123. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  124. package/dest/entrypoints/client/bundle/utils.js +43 -12
  125. package/dest/entrypoints/client/lazy/index.d.ts +3 -2
  126. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  127. package/dest/entrypoints/client/lazy/index.js +2 -1
  128. package/dest/entrypoints/client/lazy/utils.d.ts +3 -3
  129. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  130. package/dest/entrypoints/client/lazy/utils.js +44 -13
  131. package/dest/entrypoints/pxe_creation_options.d.ts +15 -3
  132. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  133. package/dest/entrypoints/pxe_creation_options.js +3 -1
  134. package/dest/entrypoints/server/index.d.ts +7 -3
  135. package/dest/entrypoints/server/index.d.ts.map +1 -1
  136. package/dest/entrypoints/server/index.js +6 -2
  137. package/dest/entrypoints/server/utils.d.ts +4 -3
  138. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  139. package/dest/entrypoints/server/utils.js +50 -30
  140. package/dest/error_enriching.d.ts +4 -4
  141. package/dest/error_enriching.d.ts.map +1 -1
  142. package/dest/error_enriching.js +6 -6
  143. package/dest/events/event_service.d.ts +24 -0
  144. package/dest/events/event_service.d.ts.map +1 -0
  145. package/dest/events/event_service.js +77 -0
  146. package/dest/events/index.d.ts +2 -0
  147. package/dest/events/index.d.ts.map +1 -0
  148. package/dest/events/index.js +1 -0
  149. package/dest/events/private_event_filter_validator.d.ts +10 -0
  150. package/dest/events/private_event_filter_validator.d.ts.map +1 -0
  151. package/dest/events/private_event_filter_validator.js +53 -0
  152. package/dest/hooks/authorize_utility_call.d.ts +41 -0
  153. package/dest/hooks/authorize_utility_call.d.ts.map +1 -0
  154. package/dest/hooks/authorize_utility_call.js +4 -0
  155. package/dest/hooks/execution_hooks.d.ts +42 -0
  156. package/dest/hooks/execution_hooks.d.ts.map +1 -0
  157. package/dest/hooks/execution_hooks.js +9 -0
  158. package/dest/hooks/index.d.ts +4 -0
  159. package/dest/hooks/index.d.ts.map +1 -0
  160. package/dest/hooks/index.js +1 -0
  161. package/dest/job_coordinator/job_coordinator.d.ts +75 -0
  162. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
  163. package/dest/job_coordinator/job_coordinator.js +94 -0
  164. package/dest/logs/log_service.d.ts +29 -0
  165. package/dest/logs/log_service.d.ts.map +1 -0
  166. package/dest/logs/log_service.js +172 -0
  167. package/dest/messages/message_context_service.d.ts +17 -0
  168. package/dest/messages/message_context_service.d.ts.map +1 -0
  169. package/dest/messages/message_context_service.js +55 -0
  170. package/dest/notes/index.d.ts +2 -0
  171. package/dest/notes/index.d.ts.map +1 -0
  172. package/dest/notes/index.js +1 -0
  173. package/dest/notes/note_service.d.ts +70 -0
  174. package/dest/notes/note_service.d.ts.map +1 -0
  175. package/dest/notes/note_service.js +172 -0
  176. package/dest/notes_filter.d.ts +24 -0
  177. package/dest/notes_filter.d.ts.map +1 -0
  178. package/dest/notes_filter.js +4 -0
  179. package/dest/oracle_version.d.ts +4 -3
  180. package/dest/oracle_version.d.ts.map +1 -1
  181. package/dest/oracle_version.js +20 -9
  182. package/dest/private_kernel/batch_planner.d.ts +47 -0
  183. package/dest/private_kernel/batch_planner.d.ts.map +1 -0
  184. package/dest/private_kernel/batch_planner.js +104 -0
  185. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  186. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  187. package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
  188. package/dest/private_kernel/hints/index.d.ts +3 -3
  189. package/dest/private_kernel/hints/index.d.ts.map +1 -1
  190. package/dest/private_kernel/hints/index.js +2 -2
  191. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +29 -0
  192. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
  193. package/dest/private_kernel/hints/{build_private_kernel_reset_private_inputs.js → private_kernel_reset_private_inputs_builder.js} +145 -78
  194. package/dest/private_kernel/hints/test_utils.d.ts +122 -0
  195. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
  196. package/dest/private_kernel/hints/test_utils.js +202 -0
  197. package/dest/private_kernel/index.d.ts +1 -1
  198. package/dest/private_kernel/private_kernel_execution_prover.d.ts +7 -2
  199. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  200. package/dest/private_kernel/private_kernel_execution_prover.js +177 -76
  201. package/dest/private_kernel/private_kernel_oracle.d.ts +30 -29
  202. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  203. package/dest/private_kernel/private_kernel_oracle.js +96 -2
  204. package/dest/pxe.d.ts +170 -103
  205. package/dest/pxe.d.ts.map +1 -1
  206. package/dest/pxe.js +356 -306
  207. package/dest/storage/address_store/address_store.d.ts +11 -0
  208. package/dest/storage/address_store/address_store.d.ts.map +1 -0
  209. package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +13 -12
  210. package/dest/storage/address_store/index.d.ts +2 -0
  211. package/dest/storage/address_store/index.d.ts.map +1 -0
  212. package/dest/storage/address_store/index.js +1 -0
  213. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +17 -0
  214. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
  215. package/dest/storage/anchor_block_store/anchor_block_store.js +26 -0
  216. package/dest/storage/anchor_block_store/index.d.ts +2 -0
  217. package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
  218. package/dest/storage/anchor_block_store/index.js +1 -0
  219. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts +42 -0
  220. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts.map +1 -0
  221. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.js +93 -0
  222. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +15 -0
  223. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -0
  224. package/dest/storage/backwards_compatibility_tests/schema_tests.js +591 -0
  225. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts +19 -0
  226. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts.map +1 -0
  227. package/dest/storage/backwards_compatibility_tests/store_spy.js +63 -0
  228. package/dest/storage/capsule_store/capsule_service.d.ts +21 -0
  229. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -0
  230. package/dest/storage/capsule_store/capsule_service.js +50 -0
  231. package/dest/storage/capsule_store/capsule_store.d.ts +72 -0
  232. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  233. package/dest/storage/capsule_store/capsule_store.js +261 -0
  234. package/dest/storage/capsule_store/index.d.ts +3 -0
  235. package/dest/storage/capsule_store/index.d.ts.map +1 -0
  236. package/dest/storage/capsule_store/index.js +2 -0
  237. package/dest/storage/contract_store/contract_store.d.ts +93 -0
  238. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  239. package/dest/storage/contract_store/contract_store.js +292 -0
  240. package/dest/storage/contract_store/index.d.ts +2 -0
  241. package/dest/storage/contract_store/index.d.ts.map +1 -0
  242. package/dest/storage/contract_store/index.js +1 -0
  243. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
  244. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  245. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +1 -1
  246. package/dest/storage/index.d.ts +8 -8
  247. package/dest/storage/index.d.ts.map +1 -1
  248. package/dest/storage/index.js +7 -7
  249. package/dest/storage/metadata.d.ts +2 -2
  250. package/dest/storage/metadata.js +1 -1
  251. package/dest/storage/note_store/index.d.ts +3 -0
  252. package/dest/storage/note_store/index.d.ts.map +1 -0
  253. package/dest/storage/note_store/index.js +2 -0
  254. package/dest/storage/note_store/note_store.d.ts +83 -0
  255. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  256. package/dest/storage/note_store/note_store.js +343 -0
  257. package/dest/storage/note_store/stored_note.d.ts +16 -0
  258. package/dest/storage/note_store/stored_note.d.ts.map +1 -0
  259. package/dest/storage/note_store/stored_note.js +43 -0
  260. package/dest/storage/open_pxe_stores.d.ts +33 -0
  261. package/dest/storage/open_pxe_stores.d.ts.map +1 -0
  262. package/dest/storage/open_pxe_stores.js +27 -0
  263. package/dest/storage/private_event_store/private_event_store.d.ts +91 -0
  264. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  265. package/dest/storage/private_event_store/private_event_store.js +276 -0
  266. package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
  267. package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
  268. package/dest/storage/private_event_store/stored_private_event.js +56 -0
  269. package/dest/storage/tagging_store/index.d.ts +4 -0
  270. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  271. package/dest/storage/tagging_store/index.js +3 -0
  272. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +28 -0
  273. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  274. package/dest/storage/tagging_store/recipient_tagging_store.js +111 -0
  275. package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
  276. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
  277. package/dest/storage/tagging_store/sender_address_book_store.js +36 -0
  278. package/dest/storage/tagging_store/sender_tagging_store.d.ts +78 -0
  279. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  280. package/dest/storage/tagging_store/sender_tagging_store.js +374 -0
  281. package/dest/tagging/constants.d.ts +2 -2
  282. package/dest/tagging/constants.d.ts.map +1 -1
  283. package/dest/tagging/constants.js +10 -2
  284. package/dest/tagging/get_all_logs_by_tags.d.ts +48 -0
  285. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
  286. package/dest/tagging/get_all_logs_by_tags.js +59 -0
  287. package/dest/tagging/index.d.ts +18 -7
  288. package/dest/tagging/index.d.ts.map +1 -1
  289. package/dest/tagging/index.js +16 -5
  290. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts +29 -0
  291. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts.map +1 -0
  292. package/dest/tagging/persist_sender_tagging_index_ranges.js +42 -0
  293. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +56 -0
  294. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -0
  295. package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +163 -0
  296. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
  297. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
  298. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
  299. package/dest/tagging/reconcile_tagging_index_ranges.d.ts +36 -0
  300. package/dest/tagging/reconcile_tagging_index_ranges.d.ts.map +1 -0
  301. package/dest/tagging/reconcile_tagging_index_ranges.js +74 -0
  302. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +16 -0
  303. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  304. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +92 -0
  305. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +17 -0
  306. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
  307. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +60 -0
  308. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +19 -0
  309. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  310. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +72 -0
  311. package/package.json +33 -20
  312. package/src/bin/check_oracle_version.ts +63 -25
  313. package/src/bin/index.ts +1 -0
  314. package/src/bin/oracle_version_helpers.ts +121 -0
  315. package/src/block_synchronizer/block_stream_source.ts +81 -0
  316. package/src/block_synchronizer/block_synchronizer.ts +200 -0
  317. package/src/block_synchronizer/index.ts +1 -0
  318. package/src/config/index.ts +31 -26
  319. package/src/config/package_info.ts +1 -1
  320. package/src/contract_function_simulator/benchmarked_node.ts +103 -0
  321. package/src/contract_function_simulator/contract_function_simulator.ts +462 -122
  322. package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
  323. package/src/contract_function_simulator/execution_note_cache.ts +59 -29
  324. package/src/contract_function_simulator/execution_tagging_index_cache.ts +19 -18
  325. package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
  326. package/src/contract_function_simulator/index.ts +52 -2
  327. package/src/contract_function_simulator/noir-structs/bounded_vec.ts +55 -0
  328. package/src/contract_function_simulator/noir-structs/ephemeral_array.ts +66 -0
  329. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +15 -10
  330. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +40 -6
  331. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +4 -7
  332. package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
  333. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +17 -10
  334. package/src/contract_function_simulator/noir-structs/option.ts +69 -0
  335. package/src/contract_function_simulator/noir-structs/provided_secret.ts +27 -0
  336. package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
  337. package/src/contract_function_simulator/oracle/interfaces.ts +12 -151
  338. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +1 -1
  339. package/src/contract_function_simulator/oracle/note_packing_utils.ts +31 -15
  340. package/src/contract_function_simulator/oracle/oracle.ts +570 -434
  341. package/src/contract_function_simulator/oracle/oracle_registry.ts +585 -0
  342. package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +553 -0
  343. package/src/contract_function_simulator/oracle/private_execution.ts +6 -72
  344. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +230 -188
  345. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +751 -142
  346. package/src/contract_function_simulator/pick_notes.ts +23 -4
  347. package/src/contract_function_simulator/proxied_contract_data_source.ts +47 -53
  348. package/src/contract_logging.ts +52 -0
  349. package/src/contract_sync/contract_sync_service.ts +189 -0
  350. package/src/contract_sync/helpers.ts +86 -0
  351. package/src/debug/pxe_debug_utils.ts +85 -0
  352. package/src/entrypoints/client/bundle/index.ts +2 -1
  353. package/src/entrypoints/client/bundle/utils.ts +33 -21
  354. package/src/entrypoints/client/lazy/index.ts +2 -1
  355. package/src/entrypoints/client/lazy/utils.ts +35 -23
  356. package/src/entrypoints/pxe_creation_options.ts +20 -2
  357. package/src/entrypoints/server/index.ts +6 -2
  358. package/src/entrypoints/server/utils.ts +47 -60
  359. package/src/error_enriching.ts +7 -15
  360. package/src/events/event_service.ts +119 -0
  361. package/src/events/index.ts +1 -0
  362. package/src/events/private_event_filter_validator.ts +66 -0
  363. package/src/hooks/authorize_utility_call.ts +44 -0
  364. package/src/hooks/execution_hooks.ts +48 -0
  365. package/src/hooks/index.ts +7 -0
  366. package/src/job_coordinator/job_coordinator.ts +150 -0
  367. package/src/logs/log_service.ts +237 -0
  368. package/src/messages/message_context_service.ts +62 -0
  369. package/src/notes/index.ts +1 -0
  370. package/src/notes/note_service.ts +230 -0
  371. package/src/notes_filter.ts +24 -0
  372. package/src/oracle_version.ts +20 -9
  373. package/src/private_kernel/batch_planner.ts +169 -0
  374. package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
  375. package/src/private_kernel/hints/index.ts +2 -2
  376. package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +200 -146
  377. package/src/private_kernel/hints/test_utils.ts +318 -0
  378. package/src/private_kernel/private_kernel_execution_prover.ts +272 -110
  379. package/src/private_kernel/private_kernel_oracle.ts +130 -39
  380. package/src/pxe.ts +606 -414
  381. package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +16 -16
  382. package/src/storage/address_store/index.ts +1 -0
  383. package/src/storage/{sync_data_provider/sync_data_provider.ts → anchor_block_store/anchor_block_store.ts} +11 -12
  384. package/src/storage/anchor_block_store/index.ts +1 -0
  385. package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +22 -0
  386. package/src/storage/backwards_compatibility_tests/__snapshots__/AnchorBlockStore.json +3 -0
  387. package/src/storage/backwards_compatibility_tests/__snapshots__/CapsuleStore.json +16 -0
  388. package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +28 -0
  389. package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +52 -0
  390. package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +46 -0
  391. package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +36 -0
  392. package/src/storage/backwards_compatibility_tests/__snapshots__/PrivateEventStore.json +44 -0
  393. package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +18 -0
  394. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderAddressBookStore.json +16 -0
  395. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +22 -0
  396. package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +97 -0
  397. package/src/storage/backwards_compatibility_tests/kv_store_snapshot.ts +122 -0
  398. package/src/storage/backwards_compatibility_tests/schema_tests.ts +712 -0
  399. package/src/storage/backwards_compatibility_tests/store_spy.ts +73 -0
  400. package/src/storage/capsule_store/capsule_service.ts +90 -0
  401. package/src/storage/capsule_store/capsule_store.ts +333 -0
  402. package/src/storage/capsule_store/index.ts +2 -0
  403. package/src/storage/contract_store/contract_store.ts +408 -0
  404. package/src/storage/contract_store/index.ts +1 -0
  405. package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +1 -1
  406. package/src/storage/index.ts +7 -7
  407. package/src/storage/metadata.ts +1 -1
  408. package/src/storage/note_store/index.ts +2 -0
  409. package/src/storage/note_store/note_store.ts +415 -0
  410. package/src/storage/note_store/stored_note.ts +48 -0
  411. package/src/storage/open_pxe_stores.ts +49 -0
  412. package/src/storage/private_event_store/private_event_store.ts +388 -0
  413. package/src/storage/private_event_store/stored_private_event.ts +73 -0
  414. package/src/storage/tagging_store/index.ts +3 -0
  415. package/src/storage/tagging_store/recipient_tagging_store.ts +139 -0
  416. package/src/storage/tagging_store/sender_address_book_store.ts +48 -0
  417. package/src/storage/tagging_store/sender_tagging_store.ts +476 -0
  418. package/src/tagging/constants.ts +10 -2
  419. package/src/tagging/get_all_logs_by_tags.ts +120 -0
  420. package/src/tagging/index.ts +20 -6
  421. package/src/tagging/persist_sender_tagging_index_ranges.ts +57 -0
  422. package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +240 -0
  423. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
  424. package/src/tagging/reconcile_tagging_index_ranges.ts +102 -0
  425. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +134 -0
  426. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +66 -0
  427. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +84 -0
  428. package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -274
  429. package/dest/contract_function_simulator/execution_data_provider.d.ts.map +0 -1
  430. package/dest/contract_function_simulator/execution_data_provider.js +0 -14
  431. package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
  432. package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
  433. package/dest/contract_function_simulator/proxied_node.js +0 -27
  434. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +0 -122
  435. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
  436. package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -701
  437. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
  438. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
  439. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
  440. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
  441. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -45
  442. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
  443. package/dest/private_kernel/private_kernel_oracle_impl.js +0 -86
  444. package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
  445. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
  446. package/dest/storage/address_data_provider/index.d.ts +0 -2
  447. package/dest/storage/address_data_provider/index.d.ts.map +0 -1
  448. package/dest/storage/address_data_provider/index.js +0 -1
  449. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -25
  450. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
  451. package/dest/storage/capsule_data_provider/capsule_data_provider.js +0 -118
  452. package/dest/storage/capsule_data_provider/index.d.ts +0 -2
  453. package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
  454. package/dest/storage/capsule_data_provider/index.js +0 -1
  455. package/dest/storage/contract_data_provider/contract_data_provider.d.ts +0 -74
  456. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
  457. package/dest/storage/contract_data_provider/contract_data_provider.js +0 -205
  458. package/dest/storage/contract_data_provider/index.d.ts +0 -2
  459. package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
  460. package/dest/storage/contract_data_provider/index.js +0 -1
  461. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
  462. package/dest/storage/note_data_provider/index.d.ts +0 -3
  463. package/dest/storage/note_data_provider/index.d.ts.map +0 -1
  464. package/dest/storage/note_data_provider/index.js +0 -2
  465. package/dest/storage/note_data_provider/note_dao.d.ts +0 -100
  466. package/dest/storage/note_data_provider/note_dao.d.ts.map +0 -1
  467. package/dest/storage/note_data_provider/note_dao.js +0 -102
  468. package/dest/storage/note_data_provider/note_data_provider.d.ts +0 -83
  469. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
  470. package/dest/storage/note_data_provider/note_data_provider.js +0 -308
  471. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -43
  472. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
  473. package/dest/storage/private_event_data_provider/private_event_data_provider.js +0 -104
  474. package/dest/storage/sync_data_provider/index.d.ts +0 -2
  475. package/dest/storage/sync_data_provider/index.d.ts.map +0 -1
  476. package/dest/storage/sync_data_provider/index.js +0 -1
  477. package/dest/storage/sync_data_provider/sync_data_provider.d.ts +0 -10
  478. package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
  479. package/dest/storage/sync_data_provider/sync_data_provider.js +0 -26
  480. package/dest/storage/tagging_data_provider/index.d.ts +0 -2
  481. package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
  482. package/dest/storage/tagging_data_provider/index.js +0 -1
  483. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +0 -40
  484. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +0 -1
  485. package/dest/storage/tagging_data_provider/tagging_data_provider.js +0 -89
  486. package/dest/synchronizer/index.d.ts +0 -2
  487. package/dest/synchronizer/index.d.ts.map +0 -1
  488. package/dest/synchronizer/index.js +0 -1
  489. package/dest/synchronizer/synchronizer.d.ts +0 -35
  490. package/dest/synchronizer/synchronizer.d.ts.map +0 -1
  491. package/dest/synchronizer/synchronizer.js +0 -101
  492. package/dest/tagging/siloed_tag.d.ts +0 -14
  493. package/dest/tagging/siloed_tag.d.ts.map +0 -1
  494. package/dest/tagging/siloed_tag.js +0 -20
  495. package/dest/tagging/tag.d.ts +0 -12
  496. package/dest/tagging/tag.d.ts.map +0 -1
  497. package/dest/tagging/tag.js +0 -17
  498. package/dest/tagging/utils.d.ts +0 -18
  499. package/dest/tagging/utils.d.ts.map +0 -1
  500. package/dest/tagging/utils.js +0 -24
  501. package/src/contract_function_simulator/execution_data_provider.ts +0 -343
  502. package/src/contract_function_simulator/proxied_node.ts +0 -33
  503. package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1019
  504. package/src/private_kernel/private_kernel_oracle_impl.ts +0 -132
  505. package/src/storage/address_data_provider/index.ts +0 -1
  506. package/src/storage/capsule_data_provider/capsule_data_provider.ts +0 -147
  507. package/src/storage/capsule_data_provider/index.ts +0 -1
  508. package/src/storage/contract_data_provider/contract_data_provider.ts +0 -294
  509. package/src/storage/contract_data_provider/index.ts +0 -1
  510. package/src/storage/note_data_provider/index.ts +0 -2
  511. package/src/storage/note_data_provider/note_dao.ts +0 -154
  512. package/src/storage/note_data_provider/note_data_provider.ts +0 -393
  513. package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -148
  514. package/src/storage/sync_data_provider/index.ts +0 -1
  515. package/src/storage/tagging_data_provider/index.ts +0 -1
  516. package/src/storage/tagging_data_provider/tagging_data_provider.ts +0 -120
  517. package/src/synchronizer/index.ts +0 -1
  518. package/src/synchronizer/synchronizer.ts +0 -120
  519. package/src/tagging/siloed_tag.ts +0 -22
  520. package/src/tagging/tag.ts +0 -16
  521. package/src/tagging/utils.ts +0 -31
@@ -0,0 +1,553 @@
1
+ import {
2
+ BLOCK_HEADER_LENGTH,
3
+ KEY_VALIDATION_REQUEST_LENGTH,
4
+ L1_TO_L2_MSG_TREE_HEIGHT,
5
+ MAX_CONTRACT_CLASS_LOGS_PER_TX,
6
+ MAX_L2_TO_L1_MSGS_PER_TX,
7
+ MAX_NOTE_HASHES_PER_TX,
8
+ MAX_NULLIFIERS_PER_TX,
9
+ MAX_PRIVATE_LOGS_PER_TX,
10
+ MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
11
+ } from '@aztec/constants';
12
+ import { BlockNumber } from '@aztec/foundation/branded-types';
13
+ import { padArrayEnd } from '@aztec/foundation/collection';
14
+ import { Fr } from '@aztec/foundation/curves/bn254';
15
+ import { Point } from '@aztec/foundation/curves/grumpkin';
16
+ import { FieldReader } from '@aztec/foundation/serialize';
17
+ import { MembershipWitness } from '@aztec/foundation/trees';
18
+ import { type ACVMField, fromUintArray } from '@aztec/simulator/client';
19
+ import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
20
+ import { PublicDataWrite } from '@aztec/stdlib/avm';
21
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
22
+ import { BlockHash } from '@aztec/stdlib/block';
23
+ import type { ContractInstance, PartialAddress } from '@aztec/stdlib/contract';
24
+ import { KeyValidationRequest } from '@aztec/stdlib/kernel';
25
+ import type { PublicKeys } from '@aztec/stdlib/keys';
26
+ import {
27
+ type AppTaggingSecretKind,
28
+ ContractClassLog,
29
+ ContractClassLogFields,
30
+ FlatPublicLogs,
31
+ MessageContext,
32
+ PendingTaggedLog,
33
+ PrivateLog,
34
+ Tag,
35
+ appTaggingSecretKindFromDeliveryMode,
36
+ } from '@aztec/stdlib/logs';
37
+ import { NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
38
+ import { BlockHeader, TxEffect, TxHash } from '@aztec/stdlib/tx';
39
+
40
+ import { BoundedVec } from '../noir-structs/bounded_vec.js';
41
+ import { EphemeralArray } from '../noir-structs/ephemeral_array.js';
42
+ import { EventValidationRequest } from '../noir-structs/event_validation_request.js';
43
+ import { LogRetrievalRequest } from '../noir-structs/log_retrieval_request.js';
44
+ import { LogRetrievalResponse } from '../noir-structs/log_retrieval_response.js';
45
+ import type { NoteData } from '../noir-structs/note_data.js';
46
+ import { NoteValidationRequest } from '../noir-structs/note_validation_request.js';
47
+ import { Option } from '../noir-structs/option.js';
48
+ import { ProvidedSecret } from '../noir-structs/provided_secret.js';
49
+ import { UtilityContext } from '../noir-structs/utility_context.js';
50
+ import { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
51
+ import { packAsHintedNote } from './note_packing_utils.js';
52
+
53
+ // ─── Core Types ──────────────────────────────────────────────────────────────
54
+
55
+ /** One ACVM input slot: an array of hex-encoded field strings. */
56
+ export type InputSlot = ACVMField[];
57
+
58
+ /** One ACVM output slot: a scalar hex string or an array of hex strings. */
59
+ export type OutputSlot = ACVMField | ACVMField[];
60
+
61
+ /**
62
+ * Describes how to serialize and/or deserialize a single typed value to/from ACVM wire format.
63
+ * Either side is optional — output-only types omit `deserialization`, input-only types omit `serialization`.
64
+ */
65
+ export interface TypeMapping<T = any> {
66
+ serialization?: {
67
+ /** Convert a typed value to ACVM output slot(s). */
68
+ fn: (value: T) => (Fr | Fr[])[];
69
+ };
70
+ deserialization?: {
71
+ /** Read a typed value from one FieldReader per consumed slot. */
72
+ fn: (readers: FieldReader[]) => T;
73
+ /**
74
+ * Number of InputSlots this type reads from. `deserialization.fn` receives one FieldReader per slot in `readers`.
75
+ *
76
+ * Examples:
77
+ * - `FIELD`, `U32`, `AZTEC_ADDRESS` — single slot → `slots: 1`
78
+ * - `OPTION(T)` — discriminant + inner slots → `slots: T.slots + 1`
79
+ * - `CONTRACT_CLASS_LOG_INPUT` — [addr], [fields], [len] → `slots: 3`
80
+ */
81
+ slots: number;
82
+ };
83
+ }
84
+
85
+ export type MaybePromise<T> = T | Promise<T>;
86
+
87
+ /**
88
+ * Asserts that every reader was fully consumed by a deserialization, throwing on leftover fields.
89
+ */
90
+ export function assertReadersConsumed(readers: FieldReader[]): void {
91
+ readers.forEach((reader, slot) => {
92
+ if (!reader.isFinished()) {
93
+ throw new Error(
94
+ `Malformed oracle input: ${reader.remainingFields()} unexpected trailing field(s) in slot ${slot}`,
95
+ );
96
+ }
97
+ });
98
+ }
99
+
100
+ // ─── Scalar Type Mappings ────────────────────────────────────────────────────
101
+
102
+ export const FIELD: TypeMapping<Fr> = {
103
+ serialization: { fn: v => [v] },
104
+ deserialization: { fn: ([reader]) => reader.readField(), slots: 1 },
105
+ };
106
+
107
+ export const BOOL: TypeMapping<boolean> = {
108
+ serialization: { fn: v => [new Fr(v ? 1n : 0n)] },
109
+ deserialization: { fn: ([reader]) => !reader.readField().isZero(), slots: 1 },
110
+ };
111
+
112
+ export const U32: TypeMapping<number> = {
113
+ serialization: { fn: v => [new Fr(v)] },
114
+ deserialization: {
115
+ fn: ([reader]) => {
116
+ const value = reader.readField().toBigInt();
117
+ if (value > 0xffffffffn) {
118
+ throw new Error(`U32 overflow: value ${value} exceeds u32 max (${0xffffffffn})`);
119
+ }
120
+ return Number(value);
121
+ },
122
+ slots: 1,
123
+ },
124
+ };
125
+
126
+ export const BLOCK_NUMBER: TypeMapping<BlockNumber> = {
127
+ serialization: { fn: v => [new Fr(v)] },
128
+ deserialization: { fn: ([reader]) => BlockNumber(reader.readField().toNumber()), slots: 1 },
129
+ };
130
+
131
+ /** A u8 byte: serializes to a single Fr; deserializes from a single Fr to a number in [0, 255]. */
132
+ export const BYTE: TypeMapping<number> = {
133
+ serialization: { fn: byte => [new Fr(byte)] },
134
+ deserialization: {
135
+ fn: ([reader]) => {
136
+ const value = reader.readField().toBigInt();
137
+ if (value > 0xffn) {
138
+ throw new Error(`BYTE overflow: value ${value} exceeds u8 max (255)`);
139
+ }
140
+ return Number(value);
141
+ },
142
+ slots: 1,
143
+ },
144
+ };
145
+
146
+ // Noir passes `MessageDelivery` onchain variants here.
147
+ export const DELIVERY_MODE: TypeMapping<AppTaggingSecretKind> = {
148
+ deserialization: {
149
+ fn: readers => appTaggingSecretKindFromDeliveryMode(BYTE.deserialization!.fn(readers)),
150
+ slots: BYTE.deserialization!.slots,
151
+ },
152
+ };
153
+
154
+ export const BIGINT: TypeMapping<bigint> = {
155
+ serialization: { fn: v => [new Fr(v)] },
156
+ deserialization: { fn: ([reader]) => reader.readField().toBigInt(), slots: 1 },
157
+ };
158
+
159
+ /** Reads every field in the slot as a UTF-8 character code. */
160
+ export const STR: TypeMapping<string> = {
161
+ serialization: { fn: str => [Array.from(Buffer.from(str, 'utf-8')).map(b => new Fr(b))] },
162
+ deserialization: {
163
+ fn: ([reader]) => {
164
+ const chars: string[] = [];
165
+ while (!reader.isFinished()) {
166
+ chars.push(String.fromCharCode(reader.readField().toNumber()));
167
+ }
168
+ return chars.join('');
169
+ },
170
+ slots: 1,
171
+ },
172
+ };
173
+
174
+ export const AZTEC_ADDRESS: TypeMapping<AztecAddress> = {
175
+ serialization: { fn: v => [v.toField()] },
176
+ deserialization: { fn: ([reader]) => AztecAddress.fromField(reader.readField()), slots: 1 },
177
+ };
178
+
179
+ export const BLOCK_HASH: TypeMapping<BlockHash> = {
180
+ serialization: { fn: v => [new Fr(v.toBuffer())] },
181
+ deserialization: { fn: ([reader]) => new BlockHash(reader.readField()), slots: 1 },
182
+ };
183
+
184
+ export const FUNCTION_SELECTOR: TypeMapping<FunctionSelector> = {
185
+ serialization: { fn: v => [v.toField()] },
186
+ deserialization: { fn: ([reader]) => FunctionSelector.fromField(reader.readField()), slots: 1 },
187
+ };
188
+
189
+ export const NOTE_SELECTOR: TypeMapping<NoteSelector> = {
190
+ serialization: { fn: v => [v.toField()] },
191
+ deserialization: { fn: ([reader]) => NoteSelector.fromField(reader.readField()), slots: 1 },
192
+ };
193
+
194
+ export const TX_HASH: TypeMapping<TxHash> = {
195
+ serialization: { fn: v => [v.hash] },
196
+ deserialization: { fn: ([reader]) => TxHash.fromField(reader.readField()), slots: 1 },
197
+ };
198
+
199
+ export const TAG: TypeMapping<Tag> = {
200
+ serialization: { fn: v => [v.value] },
201
+ deserialization: { fn: ([reader]) => new Tag(reader.readField()), slots: 1 },
202
+ };
203
+
204
+ export const POINT: TypeMapping<Point> = {
205
+ serialization: { fn: p => [p.toFields()] },
206
+ deserialization: {
207
+ fn: ([reader]) => Point.fromFields([reader.readField(), reader.readField()]),
208
+ slots: 1,
209
+ },
210
+ };
211
+
212
+ // ─── Struct Type Mappings ────────────────────────────────────────────────────
213
+
214
+ export const BLOCK_HEADER: TypeMapping<BlockHeader> = {
215
+ serialization: { fn: v => v.toFields() },
216
+ deserialization: { fn: ([reader]) => BlockHeader.fromFields(reader.readFieldArray(BLOCK_HEADER_LENGTH)), slots: 1 },
217
+ };
218
+
219
+ export const KEY_VALIDATION_REQUEST: TypeMapping<KeyValidationRequest> = {
220
+ serialization: { fn: v => v.toFields() },
221
+ deserialization: {
222
+ fn: ([reader]) => KeyValidationRequest.fromFields(reader.readFieldArray(KEY_VALIDATION_REQUEST_LENGTH)),
223
+ slots: 1,
224
+ },
225
+ };
226
+
227
+ export const CONTRACT_INSTANCE: TypeMapping<ContractInstance> = {
228
+ serialization: {
229
+ fn: v => [
230
+ v.salt,
231
+ v.deployer.toField(),
232
+ v.currentContractClassId,
233
+ v.initializationHash,
234
+ v.immutablesHash,
235
+ ...v.publicKeys.toFields(),
236
+ ],
237
+ },
238
+ };
239
+
240
+ export const NULLIFIER_MEMBERSHIP_WITNESS: TypeMapping<NullifierMembershipWitness> = {
241
+ serialization: {
242
+ fn: (w: NullifierMembershipWitness) =>
243
+ w
244
+ .toNoirRepresentation()
245
+ .map(slot => (Array.isArray(slot) ? slot.map(s => Fr.fromString(s)) : Fr.fromString(slot as string))),
246
+ },
247
+ };
248
+
249
+ export const PUBLIC_DATA_WITNESS: TypeMapping<PublicDataWitness> = {
250
+ serialization: {
251
+ fn: (w: PublicDataWitness) =>
252
+ w
253
+ .toNoirRepresentation()
254
+ .map(slot => (Array.isArray(slot) ? slot.map(s => Fr.fromString(s)) : Fr.fromString(slot as string))),
255
+ },
256
+ };
257
+
258
+ export const MESSAGE_LOAD_ORACLE_INPUTS: TypeMapping<MessageLoadOracleInputs<typeof L1_TO_L2_MSG_TREE_HEIGHT>> = {
259
+ serialization: {
260
+ fn: (m: MessageLoadOracleInputs<typeof L1_TO_L2_MSG_TREE_HEIGHT>) =>
261
+ m
262
+ .toNoirRepresentation()
263
+ .map(slot => (Array.isArray(slot) ? slot.map(s => Fr.fromString(s)) : Fr.fromString(slot as string))),
264
+ },
265
+ };
266
+
267
+ export const UTILITY_CONTEXT: TypeMapping<UtilityContext> = {
268
+ serialization: {
269
+ fn: (ctx: UtilityContext) => [...ctx.blockHeader.toFields(), ctx.contractAddress.toField()],
270
+ },
271
+ };
272
+
273
+ export const CALL_PRIVATE_RESULT: TypeMapping<{ endSideEffectCounter: Fr; returnsHash: Fr }> = {
274
+ serialization: { fn: v => [[v.endSideEffectCounter, v.returnsHash]] },
275
+ };
276
+
277
+ export const PUBLIC_KEYS_AND_PARTIAL_ADDRESS: TypeMapping<{
278
+ publicKeys: PublicKeys;
279
+ partialAddress: PartialAddress;
280
+ }> = {
281
+ serialization: {
282
+ fn: v => [[...v.publicKeys.toFields(), v.partialAddress]],
283
+ },
284
+ };
285
+
286
+ export const CONTRACT_CLASS_LOG_INPUT: TypeMapping<ContractClassLog> = {
287
+ deserialization: {
288
+ fn: ([addrReader, fieldsReader, lengthReader]) => {
289
+ const addr = AztecAddress.fromField(addrReader.readField());
290
+ const fields = new ContractClassLogFields([...fieldsReader.readFieldArray(fieldsReader.remainingFields())]);
291
+ const length = lengthReader.readField().toNumber();
292
+ return new ContractClassLog(addr, fields, length);
293
+ },
294
+ // ContractClassLog input occupies 3 ACVM slots: [contractAddress], [message fields...], [length].
295
+ slots: 3,
296
+ },
297
+ };
298
+
299
+ export const TX_EFFECT: TypeMapping<TxEffect> = {
300
+ serialization: {
301
+ fn: (effect: TxEffect) => {
302
+ const flatPublicLogs = FlatPublicLogs.fromLogs(effect.publicLogs);
303
+ return [
304
+ effect.revertCode.toField(),
305
+ effect.txHash.hash,
306
+ effect.transactionFee,
307
+ padArrayEnd(effect.noteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX),
308
+ padArrayEnd(effect.nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX),
309
+ padArrayEnd(effect.l2ToL1Msgs, Fr.ZERO, MAX_L2_TO_L1_MSGS_PER_TX),
310
+ padArrayEnd(
311
+ effect.publicDataWrites,
312
+ PublicDataWrite.empty(),
313
+ MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
314
+ ).flatMap(w => w.toFields()),
315
+ padArrayEnd(effect.privateLogs, PrivateLog.empty(), MAX_PRIVATE_LOGS_PER_TX).flatMap(l => l.toFields()),
316
+ new Fr(flatPublicLogs.length),
317
+ flatPublicLogs.payload,
318
+ padArrayEnd(effect.contractClassLogs, ContractClassLog.empty(), MAX_CONTRACT_CLASS_LOGS_PER_TX).flatMap(l => [
319
+ ...l.fields.toFields(),
320
+ new Fr(l.emittedLength),
321
+ l.contractAddress.toField(),
322
+ ]),
323
+ ] as (Fr | Fr[])[];
324
+ },
325
+ },
326
+ };
327
+
328
+ export const NOTE: TypeMapping<NoteData> = {
329
+ serialization: {
330
+ fn: noteData =>
331
+ packAsHintedNote({
332
+ contractAddress: noteData.contractAddress,
333
+ owner: noteData.owner,
334
+ randomness: noteData.randomness,
335
+ storageSlot: noteData.storageSlot,
336
+ noteNonce: noteData.noteNonce,
337
+ isPending: noteData.isPending,
338
+ note: noteData.note,
339
+ }),
340
+ },
341
+ };
342
+
343
+ export const PENDING_TAGGED_LOG: TypeMapping<PendingTaggedLog> = {
344
+ serialization: { fn: log => [log.toFields()] },
345
+ };
346
+
347
+ export const NOTE_VALIDATION_REQUEST: TypeMapping<NoteValidationRequest> = {
348
+ deserialization: {
349
+ fn: ([reader]) => NoteValidationRequest.fromFields(reader),
350
+ slots: 1,
351
+ },
352
+ };
353
+
354
+ export const EVENT_VALIDATION_REQUEST: TypeMapping<EventValidationRequest> = {
355
+ deserialization: {
356
+ fn: ([reader]) => EventValidationRequest.fromFields(reader),
357
+ slots: 1,
358
+ },
359
+ };
360
+
361
+ export const LOG_RETRIEVAL_REQUEST: TypeMapping<LogRetrievalRequest> = {
362
+ serialization: { fn: req => [req.toFields()] },
363
+ deserialization: {
364
+ fn: ([reader]) => LogRetrievalRequest.fromFields(reader),
365
+ slots: 1,
366
+ },
367
+ };
368
+
369
+ export const LOG_RETRIEVAL_RESPONSE: TypeMapping<LogRetrievalResponse> = {
370
+ serialization: { fn: resp => [resp.toFields()] },
371
+ };
372
+
373
+ export const MESSAGE_CONTEXT: TypeMapping<MessageContext> = {
374
+ serialization: { fn: mc => [mc.toFields()] },
375
+ };
376
+
377
+ export const PROVIDED_SECRET: TypeMapping<ProvidedSecret> = {
378
+ deserialization: {
379
+ fn: ([reader]) => ProvidedSecret.fromFields(reader),
380
+ slots: 1,
381
+ },
382
+ };
383
+
384
+ // ─── Combinator Type Mappings ────────────────────────────────────────────────
385
+
386
+ /** `_height` is unused at runtime but lets TypeScript infer the exact `N` for `MembershipWitness<N>`. */
387
+ export function MEMBERSHIP_WITNESS<N extends number>(_height: N): TypeMapping<MembershipWitness<N>> {
388
+ return {
389
+ serialization: {
390
+ fn: (witness: MembershipWitness<N>) => [new Fr(witness.leafIndex), [...witness.siblingPath]],
391
+ },
392
+ };
393
+ }
394
+
395
+ export function ARRAY<T>(element: TypeMapping<T>): TypeMapping<T[]> {
396
+ return {
397
+ serialization: element.serialization
398
+ ? { fn: values => [values.flatMap(v => element.serialization!.fn(v).flat())] }
399
+ : undefined,
400
+ deserialization: element.deserialization
401
+ ? {
402
+ fn: ([reader]) => {
403
+ const result: T[] = [];
404
+ while (!reader.isFinished()) {
405
+ result.push(element.deserialization!.fn([reader]));
406
+ }
407
+ return result;
408
+ },
409
+ slots: 1,
410
+ }
411
+ : undefined,
412
+ };
413
+ }
414
+
415
+ /**
416
+ * Maps Noir's `BoundedVec<T, MaxLen>` ↔ TS `BoundedVec<T>` over 2 slots:
417
+ * slot 0 — flat storage, padded/parsed as `maxLength * elementSize` fields
418
+ * slot 1 — length scalar (count of actual items)
419
+ *
420
+ * Both directions are derived from `element`: bidirectional iff `element` has both serialization and deserialization.
421
+ *
422
+ * @example Serializing `BoundedVec.from({ data: [0x41, 0x42], maxLength: 4 })` with `BOUNDED_VEC(BYTE)`:
423
+ * ```
424
+ * slot 0: [Fr(0x41), Fr(0x42), Fr(0), Fr(0)] // data padded to maxLength
425
+ * slot 1: Fr(2) // actual length
426
+ * ```
427
+ */
428
+ export function BOUNDED_VEC<T>(element: TypeMapping<T>): TypeMapping<BoundedVec<T>> {
429
+ return {
430
+ serialization: element.serialization
431
+ ? {
432
+ fn: bv => {
433
+ if (bv.data.length > bv.maxLength) {
434
+ throw new Error(`Got ${bv.data.length} items, but maxLength is ${bv.maxLength}`);
435
+ }
436
+ const flat = bv.data.flatMap(item => element.serialization!.fn(item).flat());
437
+ return [padArrayEnd(flat, Fr.ZERO, bv.maxLength * bv.elementSize), new Fr(bv.data.length)];
438
+ },
439
+ }
440
+ : undefined,
441
+ deserialization: element.deserialization
442
+ ? {
443
+ fn: ([storageReader, lengthReader]) => {
444
+ const maxLength = storageReader.remainingFields();
445
+ const length = lengthReader.readField().toNumber();
446
+ const elements: T[] = [];
447
+ for (let i = 0; i < length; i++) {
448
+ elements.push(element.deserialization!.fn([storageReader]));
449
+ }
450
+ // Drain the trailing zero-padding (maxLength - length unused element slots) so the storage reader is
451
+ // fully consumed.
452
+ storageReader.skip(storageReader.remainingFields());
453
+ return BoundedVec.from<T>({ data: elements, maxLength });
454
+ },
455
+ slots: 2,
456
+ }
457
+ : undefined,
458
+ };
459
+ }
460
+
461
+ /**
462
+ * Wraps an inner TypeMapping in Noir-style `Option<T>`. Adds a discriminant slot and uses the handler-provided
463
+ * `Option.none(shape)` template to produce a correctly-sized zero-filled output for the None case.
464
+ *
465
+ * @example Serializing `Option.some(AztecAddress.fromField(Fr(42)))` with `OPTION(AZTEC_ADDRESS)`:
466
+ * ```
467
+ * slot 0: Fr(1) // discriminant: Some
468
+ * slot 1: Fr(42) // inner value
469
+ * ```
470
+ *
471
+ * @example Serializing `Option.empty(AztecAddress.ZERO)` with `OPTION(AZTEC_ADDRESS)`:
472
+ * ```
473
+ * slot 0: Fr(0) // discriminant: None
474
+ * slot 1: Fr(0) // zero-filled using shape
475
+ * ```
476
+ */
477
+ export function OPTION<T>(inner: TypeMapping<T>): TypeMapping<Option<T>> {
478
+ return {
479
+ serialization: inner.serialization
480
+ ? {
481
+ fn: opt => {
482
+ if (opt.isSome()) {
483
+ return [Fr.ONE, ...inner.serialization!.fn(opt.value)];
484
+ }
485
+ if (opt.template === undefined) {
486
+ throw new Error(
487
+ 'Cannot serialize Option.empty() without an emptyTemplate — provide one via Option.empty(emptyTemplate)',
488
+ );
489
+ }
490
+ const zeroSlots = inner
491
+ .serialization!.fn(opt.template)
492
+ .map(s => (Array.isArray(s) ? Array(s.length).fill(Fr.ZERO) : Fr.ZERO));
493
+ return [Fr.ZERO, ...zeroSlots];
494
+ },
495
+ }
496
+ : undefined,
497
+ deserialization: inner.deserialization
498
+ ? {
499
+ fn: ([discriminant, ...innerReaders]) => {
500
+ if (discriminant.readField().isZero()) {
501
+ // None still carries zero-filled inner slots on the wire; drain them so the inner readers are fully
502
+ // consumed.
503
+ innerReaders.forEach(reader => reader.skip(reader.remainingFields()));
504
+ return Option.none<T>(undefined as unknown as T);
505
+ }
506
+ return Option.some(inner.deserialization!.fn(innerReaders));
507
+ },
508
+ slots: inner.deserialization.slots + 1,
509
+ }
510
+ : undefined,
511
+ };
512
+ }
513
+
514
+ /** A packed uint buffer (e.g. `[u8; N]` in Noir): 1 slot of packed uint values ↔ `Buffer`. */
515
+ export function BUFFER(bitSize: number): TypeMapping<Buffer> {
516
+ return {
517
+ serialization: {
518
+ fn: buf => [Array.from(buf).map(b => new Fr(b))],
519
+ },
520
+ deserialization: {
521
+ fn: ([reader]) => {
522
+ const fields = reader.readFieldArray(reader.remainingFields()).map(f => f.toString());
523
+ return fromUintArray(fields, bitSize);
524
+ },
525
+ slots: 1,
526
+ },
527
+ };
528
+ }
529
+
530
+ export function EPHEMERAL_ARRAY<T>(element: TypeMapping<T>): TypeMapping<EphemeralArray<T>> {
531
+ // An EphemeralArray param is a single slot; the per-param assert covers that slot but never sees the
532
+ // per-row readers materialized in readAll(). Assert full consumption per row here.
533
+ const rowElement: TypeMapping<T> | undefined = element.deserialization
534
+ ? {
535
+ deserialization: {
536
+ fn: readers => {
537
+ const value = element.deserialization!.fn(readers);
538
+ assertReadersConsumed(readers);
539
+ return value;
540
+ },
541
+ slots: element.deserialization.slots,
542
+ },
543
+ }
544
+ : undefined;
545
+ return {
546
+ serialization: element.serialization
547
+ ? { fn: ea => [ea.materializeSlot(v => element.serialization!.fn(v).flat() as Fr[])] }
548
+ : undefined,
549
+ deserialization: rowElement
550
+ ? { fn: ([reader]) => EphemeralArray.fromSlot(reader.readField(), rowElement), slots: 1 }
551
+ : undefined,
552
+ };
553
+ }
@@ -1,8 +1,7 @@
1
1
  import { PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH, PRIVATE_CONTEXT_INPUTS_LENGTH } from '@aztec/constants';
2
- import { Fr } from '@aztec/foundation/fields';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { createLogger } from '@aztec/foundation/log';
4
4
  import { Timer } from '@aztec/foundation/timer';
5
- import { ProtocolContractAddress } from '@aztec/protocol-contracts';
6
5
  import {
7
6
  type ACVMWitness,
8
7
  type CircuitSimulator,
@@ -18,15 +17,10 @@ import {
18
17
  countArgumentsSize,
19
18
  } from '@aztec/stdlib/abi';
20
19
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
21
- import type { ContractInstance } from '@aztec/stdlib/contract';
22
- import { DelayedPublicMutableValues, DelayedPublicMutableValuesWithHash } from '@aztec/stdlib/delayed-public-mutable';
23
- import type { AztecNode } from '@aztec/stdlib/interfaces/client';
24
20
  import { PrivateCircuitPublicInputs } from '@aztec/stdlib/kernel';
25
21
  import type { CircuitWitnessGenerationStats } from '@aztec/stdlib/stats';
26
- import { BlockHeader, PrivateCallExecutionResult } from '@aztec/stdlib/tx';
27
- import type { UInt64 } from '@aztec/stdlib/types';
22
+ import { PrivateCallExecutionResult } from '@aztec/stdlib/tx';
28
23
 
29
- import type { ExecutionDataProvider } from '../execution_data_provider.js';
30
24
  import { Oracle } from './oracle.js';
31
25
  import type { PrivateExecutionOracle } from './private_execution_oracle.js';
32
26
 
@@ -82,13 +76,12 @@ export async function executePrivateFunction(
82
76
 
83
77
  const contractClassLogs = privateExecutionOracle.getContractClassLogs();
84
78
 
85
- const rawReturnValues = await privateExecutionOracle.privateLoadFromExecutionCache(publicInputs.returnsHash);
79
+ const rawReturnValues = await privateExecutionOracle.getHashPreimage(publicInputs.returnsHash);
86
80
 
87
- const noteHashLeafIndexMap = privateExecutionOracle.getNoteHashLeafIndexMap();
88
81
  const newNotes = privateExecutionOracle.getNewNotes();
89
82
  const noteHashNullifierCounterMap = privateExecutionOracle.getNoteHashNullifierCounterMap();
90
83
  const offchainEffects = privateExecutionOracle.getOffchainEffects();
91
- const preTags = privateExecutionOracle.getUsedPreTags();
84
+ const taggingIndexRanges = privateExecutionOracle.getUsedTaggingIndexRanges();
92
85
  const nestedExecutionResults = privateExecutionOracle.getNestedExecutionResults();
93
86
 
94
87
  let timerSubtractionList = nestedExecutionResults;
@@ -107,12 +100,11 @@ export async function executePrivateFunction(
107
100
  Buffer.from(artifact.verificationKey!, 'base64'),
108
101
  partialWitness,
109
102
  publicInputs,
110
- noteHashLeafIndexMap,
111
103
  newNotes,
112
104
  noteHashNullifierCounterMap,
113
105
  rawReturnValues,
114
- offchainEffects,
115
- preTags,
106
+ offchainEffects.map(e => ({ data: e.data })),
107
+ taggingIndexRanges,
116
108
  nestedExecutionResults,
117
109
  contractClassLogs,
118
110
  {
@@ -147,61 +139,3 @@ export function extractPrivateCircuitPublicInputs(
147
139
  }
148
140
  return PrivateCircuitPublicInputs.fromFields(returnData);
149
141
  }
150
-
151
- /**
152
- * Read the current class id of a contract from the execution data provider or AztecNode. If not found, class id
153
- * from the instance is used.
154
- * @param contractAddress - The address of the contract to read the class id for.
155
- * @param instance - The instance of the contract.
156
- * @param executionDataProvider - The execution data provider.
157
- * @param blockNumber - The block number at which to load the DelayedPublicMutable storing the class id.
158
- * @param timestamp - The timestamp at which to obtain the class id from the DelayedPublicMutable.
159
- * @returns The current class id.
160
- */
161
- export async function readCurrentClassId(
162
- contractAddress: AztecAddress,
163
- instance: ContractInstance,
164
- executionDataProvider: ExecutionDataProvider | AztecNode,
165
- blockNumber: number,
166
- timestamp: UInt64,
167
- ) {
168
- const { delayedPublicMutableSlot } = await DelayedPublicMutableValuesWithHash.getContractUpdateSlots(contractAddress);
169
- const delayedPublicMutableValues = await DelayedPublicMutableValues.readFromTree(delayedPublicMutableSlot, slot =>
170
- executionDataProvider.getPublicStorageAt(blockNumber, ProtocolContractAddress.ContractInstanceRegistry, slot),
171
- );
172
- let currentClassId = delayedPublicMutableValues.svc.getCurrentAt(timestamp)[0];
173
- if (currentClassId.isZero()) {
174
- currentClassId = instance.originalContractClassId;
175
- }
176
- return currentClassId;
177
- }
178
-
179
- /**
180
- * Verify that the current class id of a contract obtained from AztecNode is the same as the one in the execution data
181
- * provider (i.e. PXE).
182
- * @param contractAddress - The address of the contract to verify class id for.
183
- * @param executionDataProvider - The execution data provider.
184
- * @param header - The header of the block at which to verify the current class id. If not provided, the anchor block
185
- * header of the execution data provider is used.
186
- */
187
- export async function verifyCurrentClassId(
188
- contractAddress: AztecAddress,
189
- executionDataProvider: ExecutionDataProvider,
190
- header?: BlockHeader,
191
- ) {
192
- header = header ?? (await executionDataProvider.getAnchorBlockHeader());
193
-
194
- const instance = await executionDataProvider.getContractInstance(contractAddress);
195
- const currentClassId = await readCurrentClassId(
196
- contractAddress,
197
- instance,
198
- executionDataProvider,
199
- header.globalVariables.blockNumber,
200
- header.globalVariables.timestamp,
201
- );
202
- if (!instance.currentContractClassId.equals(currentClassId)) {
203
- throw new Error(
204
- `Contract ${contractAddress} is outdated, current class id is ${currentClassId}, local class id is ${instance.currentContractClassId}`,
205
- );
206
- }
207
- }