@aztec/pxe 0.0.1-commit.b655e406 → 0.0.1-commit.b8a057fa

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 (620) hide show
  1. package/dest/bin/check_oracle_version.d.ts +1 -1
  2. package/dest/bin/check_oracle_version.js +53 -29
  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 +51 -0
  7. package/dest/bin/oracle_version_helpers.d.ts.map +1 -0
  8. package/dest/bin/oracle_version_helpers.js +254 -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 +37 -0
  12. package/dest/block_synchronizer/block_synchronizer.d.ts +53 -0
  13. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
  14. package/dest/block_synchronizer/block_synchronizer.js +209 -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 +14 -13
  19. package/dest/config/index.d.ts.map +1 -1
  20. package/dest/config/index.js +25 -15
  21. package/dest/config/package_info.d.ts +1 -1
  22. package/dest/config/package_info.js +1 -1
  23. package/dest/contract/contract_class_service.d.ts +31 -0
  24. package/dest/contract/contract_class_service.d.ts.map +1 -0
  25. package/dest/contract/contract_class_service.js +68 -0
  26. package/dest/contract/contract_sync_service.d.ts +48 -0
  27. package/dest/contract/contract_sync_service.d.ts.map +1 -0
  28. package/dest/contract/contract_sync_service.js +116 -0
  29. package/dest/contract/helpers.d.ts +7 -0
  30. package/dest/contract/helpers.d.ts.map +1 -0
  31. package/dest/contract/helpers.js +20 -0
  32. package/dest/contract_function_simulator/anchored_contract_data.d.ts +36 -0
  33. package/dest/contract_function_simulator/anchored_contract_data.d.ts.map +1 -0
  34. package/dest/contract_function_simulator/anchored_contract_data.js +54 -0
  35. package/dest/contract_function_simulator/benchmarked_node.d.ts +9 -0
  36. package/dest/contract_function_simulator/benchmarked_node.d.ts.map +1 -0
  37. package/dest/contract_function_simulator/benchmarked_node.js +77 -0
  38. package/dest/contract_function_simulator/contract_function_simulator.d.ts +93 -29
  39. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  40. package/dest/contract_function_simulator/contract_function_simulator.js +307 -97
  41. package/dest/contract_function_simulator/ephemeral_array_service.d.ts +28 -0
  42. package/dest/contract_function_simulator/ephemeral_array_service.d.ts.map +1 -0
  43. package/dest/contract_function_simulator/ephemeral_array_service.js +78 -0
  44. package/dest/contract_function_simulator/execution_note_cache.d.ts +22 -17
  45. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  46. package/dest/contract_function_simulator/execution_note_cache.js +41 -36
  47. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +7 -11
  48. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  49. package/dest/contract_function_simulator/execution_tagging_index_cache.js +19 -15
  50. package/dest/contract_function_simulator/hashed_values_cache.d.ts +2 -2
  51. package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -1
  52. package/dest/contract_function_simulator/index.d.ts +27 -6
  53. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  54. package/dest/contract_function_simulator/index.js +13 -4
  55. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +29 -0
  56. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts.map +1 -0
  57. package/dest/contract_function_simulator/noir-structs/bounded_vec.js +30 -0
  58. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts +9 -0
  59. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts.map +1 -0
  60. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.js +1 -0
  61. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts +7 -0
  62. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts.map +1 -0
  63. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.js +1 -0
  64. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts +37 -0
  65. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts.map +1 -0
  66. package/dest/contract_function_simulator/noir-structs/ephemeral_array.js +59 -0
  67. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +6 -6
  68. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  69. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +13 -11
  70. package/dest/contract_function_simulator/noir-structs/fact.d.ts +16 -0
  71. package/dest/contract_function_simulator/noir-structs/fact.d.ts.map +1 -0
  72. package/dest/contract_function_simulator/noir-structs/fact.js +6 -0
  73. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts +27 -0
  74. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts.map +1 -0
  75. package/dest/contract_function_simulator/noir-structs/fact_collection.js +31 -0
  76. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +21 -11
  77. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  78. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +12 -23
  79. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +11 -9
  80. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  81. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +2 -63
  82. package/dest/contract_function_simulator/noir-structs/note_data.d.ts +27 -0
  83. package/dest/contract_function_simulator/noir-structs/note_data.d.ts.map +1 -0
  84. package/dest/contract_function_simulator/noir-structs/note_data.js +3 -0
  85. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +7 -7
  86. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  87. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +16 -11
  88. package/dest/contract_function_simulator/noir-structs/option.d.ts +59 -0
  89. package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -0
  90. package/dest/contract_function_simulator/noir-structs/option.js +67 -0
  91. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts +11 -0
  92. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts.map +1 -0
  93. package/dest/contract_function_simulator/noir-structs/origin_block.js +5 -0
  94. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts +11 -0
  95. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts.map +1 -0
  96. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.js +4 -0
  97. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts +8 -0
  98. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts.map +1 -0
  99. package/dest/contract_function_simulator/noir-structs/provided_secret.js +1 -0
  100. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts +28 -0
  101. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts.map +1 -0
  102. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.js +43 -0
  103. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts +21 -0
  104. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts.map +1 -0
  105. package/dest/contract_function_simulator/noir-structs/resolved_tx.js +50 -0
  106. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts +14 -0
  107. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts.map +1 -0
  108. package/dest/contract_function_simulator/noir-structs/tx_effect_data.js +5 -0
  109. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +7 -18
  110. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  111. package/dest/contract_function_simulator/noir-structs/utility_context.js +1 -31
  112. package/dest/contract_function_simulator/oracle/acir_callback.d.ts +21 -0
  113. package/dest/contract_function_simulator/oracle/acir_callback.d.ts.map +1 -0
  114. package/dest/contract_function_simulator/oracle/acir_callback.js +115 -0
  115. package/dest/contract_function_simulator/oracle/index.d.ts +2 -13
  116. package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -1
  117. package/dest/contract_function_simulator/oracle/index.js +1 -1
  118. package/dest/contract_function_simulator/oracle/interfaces.d.ts +15 -88
  119. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  120. package/dest/contract_function_simulator/oracle/interfaces.js +2 -2
  121. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts +39 -0
  122. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts.map +1 -0
  123. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.js +74 -0
  124. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +3 -14
  125. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  126. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -24
  127. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +14 -8
  128. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  129. package/dest/contract_function_simulator/oracle/note_packing_utils.js +17 -12
  130. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +136 -0
  131. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -0
  132. package/dest/contract_function_simulator/oracle/oracle_registry.js +989 -0
  133. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +222 -0
  134. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -0
  135. package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +1243 -0
  136. package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -27
  137. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  138. package/dest/contract_function_simulator/oracle/private_execution.js +8 -43
  139. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +92 -103
  140. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  141. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +291 -138
  142. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +228 -62
  143. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  144. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +632 -129
  145. package/dest/contract_function_simulator/pick_notes.d.ts +2 -2
  146. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  147. package/dest/contract_function_simulator/pick_notes.js +21 -4
  148. package/dest/contract_function_simulator/transient_array_service.d.ts +31 -0
  149. package/dest/contract_function_simulator/transient_array_service.d.ts.map +1 -0
  150. package/dest/contract_function_simulator/transient_array_service.js +62 -0
  151. package/dest/contract_logging.d.ts +27 -0
  152. package/dest/contract_logging.d.ts.map +1 -0
  153. package/dest/contract_logging.js +38 -0
  154. package/dest/debug/pxe_debug_utils.d.ts +40 -0
  155. package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
  156. package/dest/debug/pxe_debug_utils.js +42 -0
  157. package/dest/entrypoints/client/bundle/index.d.ts +3 -2
  158. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  159. package/dest/entrypoints/client/bundle/index.js +2 -1
  160. package/dest/entrypoints/client/bundle/utils.d.ts +2 -2
  161. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  162. package/dest/entrypoints/client/bundle/utils.js +49 -13
  163. package/dest/entrypoints/client/lazy/index.d.ts +3 -2
  164. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  165. package/dest/entrypoints/client/lazy/index.js +2 -1
  166. package/dest/entrypoints/client/lazy/utils.d.ts +3 -3
  167. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  168. package/dest/entrypoints/client/lazy/utils.js +50 -14
  169. package/dest/entrypoints/pxe_creation_options.d.ts +22 -4
  170. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  171. package/dest/entrypoints/pxe_creation_options.js +3 -1
  172. package/dest/entrypoints/server/index.d.ts +9 -3
  173. package/dest/entrypoints/server/index.d.ts.map +1 -1
  174. package/dest/entrypoints/server/index.js +7 -2
  175. package/dest/entrypoints/server/utils.d.ts +4 -3
  176. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  177. package/dest/entrypoints/server/utils.js +57 -31
  178. package/dest/error_enriching.d.ts +6 -4
  179. package/dest/error_enriching.d.ts.map +1 -1
  180. package/dest/error_enriching.js +13 -11
  181. package/dest/events/event_service.d.ts +24 -0
  182. package/dest/events/event_service.d.ts.map +1 -0
  183. package/dest/events/event_service.js +77 -0
  184. package/dest/events/index.d.ts +2 -0
  185. package/dest/events/index.d.ts.map +1 -0
  186. package/dest/events/index.js +1 -0
  187. package/dest/events/private_event_filter_validator.d.ts +10 -0
  188. package/dest/events/private_event_filter_validator.d.ts.map +1 -0
  189. package/dest/events/private_event_filter_validator.js +53 -0
  190. package/dest/hooks/authorize_utility_call.d.ts +41 -0
  191. package/dest/hooks/authorize_utility_call.d.ts.map +1 -0
  192. package/dest/hooks/authorize_utility_call.js +4 -0
  193. package/dest/hooks/execution_hooks.d.ts +62 -0
  194. package/dest/hooks/execution_hooks.d.ts.map +1 -0
  195. package/dest/hooks/execution_hooks.js +9 -0
  196. package/dest/hooks/index.d.ts +5 -0
  197. package/dest/hooks/index.d.ts.map +1 -0
  198. package/dest/hooks/index.js +1 -0
  199. package/dest/hooks/resolve_custom_request.d.ts +23 -0
  200. package/dest/hooks/resolve_custom_request.d.ts.map +1 -0
  201. package/dest/hooks/resolve_custom_request.js +3 -0
  202. package/dest/hooks/resolve_tagging_secret_strategy.d.ts +48 -0
  203. package/dest/hooks/resolve_tagging_secret_strategy.d.ts.map +1 -0
  204. package/dest/hooks/resolve_tagging_secret_strategy.js +3 -0
  205. package/dest/job_coordinator/job_coordinator.d.ts +75 -0
  206. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
  207. package/dest/job_coordinator/job_coordinator.js +94 -0
  208. package/dest/logs/log_service.d.ts +30 -0
  209. package/dest/logs/log_service.d.ts.map +1 -0
  210. package/dest/logs/log_service.js +223 -0
  211. package/dest/messages/tx_resolver_service.d.ts +17 -0
  212. package/dest/messages/tx_resolver_service.d.ts.map +1 -0
  213. package/dest/messages/tx_resolver_service.js +55 -0
  214. package/dest/notes/index.d.ts +2 -0
  215. package/dest/notes/index.d.ts.map +1 -0
  216. package/dest/notes/index.js +1 -0
  217. package/dest/notes/note_service.d.ts +70 -0
  218. package/dest/notes/note_service.d.ts.map +1 -0
  219. package/dest/notes/note_service.js +172 -0
  220. package/dest/notes_filter.d.ts +24 -0
  221. package/dest/notes_filter.d.ts.map +1 -0
  222. package/dest/notes_filter.js +4 -0
  223. package/dest/oracle_version.d.ts +4 -3
  224. package/dest/oracle_version.d.ts.map +1 -1
  225. package/dest/oracle_version.js +20 -9
  226. package/dest/private_kernel/batch_planner.d.ts +47 -0
  227. package/dest/private_kernel/batch_planner.d.ts.map +1 -0
  228. package/dest/private_kernel/batch_planner.js +104 -0
  229. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  230. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  231. package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
  232. package/dest/private_kernel/hints/index.d.ts +3 -3
  233. package/dest/private_kernel/hints/index.d.ts.map +1 -1
  234. package/dest/private_kernel/hints/index.js +2 -2
  235. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +29 -0
  236. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
  237. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +342 -0
  238. package/dest/private_kernel/hints/test_utils.d.ts +122 -0
  239. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
  240. package/dest/private_kernel/hints/test_utils.js +202 -0
  241. package/dest/private_kernel/index.d.ts +1 -1
  242. package/dest/private_kernel/private_kernel_execution_prover.d.ts +7 -2
  243. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  244. package/dest/private_kernel/private_kernel_execution_prover.js +218 -96
  245. package/dest/private_kernel/private_kernel_oracle.d.ts +32 -29
  246. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  247. package/dest/private_kernel/private_kernel_oracle.js +108 -2
  248. package/dest/pxe.d.ts +267 -134
  249. package/dest/pxe.d.ts.map +1 -1
  250. package/dest/pxe.js +498 -365
  251. package/dest/storage/address_store/address_store.d.ts +11 -0
  252. package/dest/storage/address_store/address_store.d.ts.map +1 -0
  253. package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +13 -12
  254. package/dest/storage/address_store/index.d.ts +2 -0
  255. package/dest/storage/address_store/index.d.ts.map +1 -0
  256. package/dest/storage/address_store/index.js +1 -0
  257. package/dest/storage/allowed_scopes.d.ts +6 -0
  258. package/dest/storage/allowed_scopes.d.ts.map +1 -0
  259. package/dest/storage/allowed_scopes.js +7 -0
  260. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +20 -0
  261. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
  262. package/dest/storage/anchor_block_store/anchor_block_store.js +28 -0
  263. package/dest/storage/anchor_block_store/index.d.ts +2 -0
  264. package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
  265. package/dest/storage/anchor_block_store/index.js +1 -0
  266. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts +42 -0
  267. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts.map +1 -0
  268. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.js +93 -0
  269. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +15 -0
  270. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -0
  271. package/dest/storage/backwards_compatibility_tests/schema_tests.js +647 -0
  272. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts +19 -0
  273. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts.map +1 -0
  274. package/dest/storage/backwards_compatibility_tests/store_spy.js +63 -0
  275. package/dest/storage/capsule_store/capsule_service.d.ts +21 -0
  276. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -0
  277. package/dest/storage/capsule_store/capsule_service.js +47 -0
  278. package/dest/storage/capsule_store/capsule_store.d.ts +72 -0
  279. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  280. package/dest/storage/capsule_store/capsule_store.js +261 -0
  281. package/dest/storage/capsule_store/index.d.ts +3 -0
  282. package/dest/storage/capsule_store/index.d.ts.map +1 -0
  283. package/dest/storage/capsule_store/index.js +2 -0
  284. package/dest/storage/contract_store/contract_store.d.ts +96 -0
  285. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  286. package/dest/storage/contract_store/contract_store.js +281 -0
  287. package/dest/storage/contract_store/index.d.ts +2 -0
  288. package/dest/storage/contract_store/index.d.ts.map +1 -0
  289. package/dest/storage/contract_store/index.js +1 -0
  290. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
  291. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  292. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +1 -1
  293. package/dest/storage/fact_store/fact_service.d.ts +22 -0
  294. package/dest/storage/fact_store/fact_service.d.ts.map +1 -0
  295. package/dest/storage/fact_store/fact_service.js +45 -0
  296. package/dest/storage/fact_store/fact_store.d.ts +95 -0
  297. package/dest/storage/fact_store/fact_store.d.ts.map +1 -0
  298. package/dest/storage/fact_store/fact_store.js +408 -0
  299. package/dest/storage/fact_store/fact_store_keys.d.ts +34 -0
  300. package/dest/storage/fact_store/fact_store_keys.d.ts.map +1 -0
  301. package/dest/storage/fact_store/fact_store_keys.js +50 -0
  302. package/dest/storage/fact_store/index.d.ts +6 -0
  303. package/dest/storage/fact_store/index.d.ts.map +1 -0
  304. package/dest/storage/fact_store/index.js +4 -0
  305. package/dest/storage/fact_store/origin_state.d.ts +57 -0
  306. package/dest/storage/fact_store/origin_state.d.ts.map +1 -0
  307. package/dest/storage/fact_store/origin_state.js +53 -0
  308. package/dest/storage/fact_store/stored_fact.d.ts +32 -0
  309. package/dest/storage/fact_store/stored_fact.d.ts.map +1 -0
  310. package/dest/storage/fact_store/stored_fact.js +64 -0
  311. package/dest/storage/index.d.ts +9 -8
  312. package/dest/storage/index.d.ts.map +1 -1
  313. package/dest/storage/index.js +8 -7
  314. package/dest/storage/metadata.d.ts +2 -2
  315. package/dest/storage/metadata.d.ts.map +1 -1
  316. package/dest/storage/metadata.js +1 -1
  317. package/dest/storage/note_store/index.d.ts +3 -0
  318. package/dest/storage/note_store/index.d.ts.map +1 -0
  319. package/dest/storage/note_store/index.js +2 -0
  320. package/dest/storage/note_store/note_store.d.ts +92 -0
  321. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  322. package/dest/storage/note_store/note_store.js +372 -0
  323. package/dest/storage/note_store/stored_note.d.ts +11 -0
  324. package/dest/storage/note_store/stored_note.d.ts.map +1 -0
  325. package/dest/storage/note_store/stored_note.js +27 -0
  326. package/dest/storage/open_pxe_stores.d.ts +35 -0
  327. package/dest/storage/open_pxe_stores.d.ts.map +1 -0
  328. package/dest/storage/open_pxe_stores.js +29 -0
  329. package/dest/storage/private_event_store/private_event_store.d.ts +88 -0
  330. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  331. package/dest/storage/private_event_store/private_event_store.js +273 -0
  332. package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
  333. package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
  334. package/dest/storage/private_event_store/stored_private_event.js +56 -0
  335. package/dest/storage/tagging_store/index.d.ts +4 -0
  336. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  337. package/dest/storage/tagging_store/index.js +3 -0
  338. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +28 -0
  339. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  340. package/dest/storage/tagging_store/recipient_tagging_store.js +111 -0
  341. package/dest/storage/tagging_store/sender_tagging_store.d.ts +78 -0
  342. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  343. package/dest/storage/tagging_store/sender_tagging_store.js +374 -0
  344. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts +51 -0
  345. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts.map +1 -0
  346. package/dest/storage/tagging_store/tagging_secret_sources_store.js +105 -0
  347. package/dest/tagging/constants.d.ts +2 -2
  348. package/dest/tagging/constants.d.ts.map +1 -1
  349. package/dest/tagging/constants.js +7 -2
  350. package/dest/tagging/get_all_logs_by_tags.d.ts +48 -0
  351. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
  352. package/dest/tagging/get_all_logs_by_tags.js +59 -0
  353. package/dest/tagging/index.d.ts +18 -7
  354. package/dest/tagging/index.d.ts.map +1 -1
  355. package/dest/tagging/index.js +16 -5
  356. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts +29 -0
  357. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts.map +1 -0
  358. package/dest/tagging/persist_sender_tagging_index_ranges.js +42 -0
  359. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +69 -0
  360. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -0
  361. package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +203 -0
  362. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
  363. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
  364. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
  365. package/dest/tagging/reconcile_tagging_index_ranges.d.ts +36 -0
  366. package/dest/tagging/reconcile_tagging_index_ranges.d.ts.map +1 -0
  367. package/dest/tagging/reconcile_tagging_index_ranges.js +74 -0
  368. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +16 -0
  369. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  370. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +92 -0
  371. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +17 -0
  372. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
  373. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +60 -0
  374. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +19 -0
  375. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  376. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +72 -0
  377. package/package.json +33 -20
  378. package/src/bin/check_oracle_version.ts +62 -33
  379. package/src/bin/index.ts +5 -0
  380. package/src/bin/oracle_version_helpers.ts +311 -0
  381. package/src/block_synchronizer/block_stream_source.ts +42 -0
  382. package/src/block_synchronizer/block_synchronizer.ts +241 -0
  383. package/src/block_synchronizer/index.ts +1 -0
  384. package/src/config/index.ts +32 -26
  385. package/src/config/package_info.ts +1 -1
  386. package/src/contract/contract_class_service.ts +83 -0
  387. package/src/contract/contract_sync_service.ts +176 -0
  388. package/src/contract/helpers.ts +35 -0
  389. package/src/contract_function_simulator/anchored_contract_data.ts +74 -0
  390. package/src/contract_function_simulator/benchmarked_node.ts +103 -0
  391. package/src/contract_function_simulator/contract_function_simulator.ts +526 -132
  392. package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
  393. package/src/contract_function_simulator/execution_note_cache.ts +42 -33
  394. package/src/contract_function_simulator/execution_tagging_index_cache.ts +19 -18
  395. package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
  396. package/src/contract_function_simulator/index.ts +70 -5
  397. package/src/contract_function_simulator/noir-structs/bounded_vec.ts +43 -0
  398. package/src/contract_function_simulator/noir-structs/contract_class_log_data.ts +9 -0
  399. package/src/contract_function_simulator/noir-structs/embedded_curve_point.ts +4 -0
  400. package/src/contract_function_simulator/noir-structs/ephemeral_array.ts +66 -0
  401. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +16 -11
  402. package/src/contract_function_simulator/noir-structs/fact.ts +13 -0
  403. package/src/contract_function_simulator/noir-structs/fact_collection.ts +64 -0
  404. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +28 -20
  405. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +14 -64
  406. package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
  407. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +18 -11
  408. package/src/contract_function_simulator/noir-structs/option.ts +75 -0
  409. package/src/contract_function_simulator/noir-structs/origin_block.ts +8 -0
  410. package/src/contract_function_simulator/noir-structs/pending_tagged_log.ts +12 -0
  411. package/src/contract_function_simulator/noir-structs/provided_secret.ts +5 -0
  412. package/src/contract_function_simulator/noir-structs/resolved_tagging_strategy.ts +58 -0
  413. package/src/contract_function_simulator/noir-structs/resolved_tx.ts +53 -0
  414. package/src/contract_function_simulator/noir-structs/tx_effect_data.ts +15 -0
  415. package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -37
  416. package/src/contract_function_simulator/oracle/acir_callback.ts +154 -0
  417. package/src/contract_function_simulator/oracle/index.ts +1 -15
  418. package/src/contract_function_simulator/oracle/interfaces.ts +11 -151
  419. package/src/contract_function_simulator/oracle/legacy_oracle_registry.ts +120 -0
  420. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +6 -21
  421. package/src/contract_function_simulator/oracle/note_packing_utils.ts +31 -15
  422. package/src/contract_function_simulator/oracle/oracle_registry.ts +689 -0
  423. package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +964 -0
  424. package/src/contract_function_simulator/oracle/private_execution.ts +8 -75
  425. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +363 -189
  426. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +974 -154
  427. package/src/contract_function_simulator/pick_notes.ts +23 -4
  428. package/src/contract_function_simulator/transient_array_service.ts +91 -0
  429. package/src/contract_logging.ts +52 -0
  430. package/src/debug/pxe_debug_utils.ts +85 -0
  431. package/src/entrypoints/client/bundle/index.ts +2 -1
  432. package/src/entrypoints/client/bundle/utils.ts +41 -22
  433. package/src/entrypoints/client/lazy/index.ts +2 -1
  434. package/src/entrypoints/client/lazy/utils.ts +43 -24
  435. package/src/entrypoints/pxe_creation_options.ts +27 -3
  436. package/src/entrypoints/server/index.ts +9 -2
  437. package/src/entrypoints/server/utils.ts +55 -60
  438. package/src/error_enriching.ts +20 -12
  439. package/src/events/event_service.ts +119 -0
  440. package/src/events/index.ts +1 -0
  441. package/src/events/private_event_filter_validator.ts +66 -0
  442. package/src/hooks/authorize_utility_call.ts +44 -0
  443. package/src/hooks/execution_hooks.ts +68 -0
  444. package/src/hooks/index.ts +12 -0
  445. package/src/hooks/resolve_custom_request.ts +24 -0
  446. package/src/hooks/resolve_tagging_secret_strategy.ts +57 -0
  447. package/src/job_coordinator/job_coordinator.ts +150 -0
  448. package/src/logs/log_service.ts +291 -0
  449. package/src/messages/tx_resolver_service.ts +69 -0
  450. package/src/notes/index.ts +1 -0
  451. package/src/notes/note_service.ts +230 -0
  452. package/src/notes_filter.ts +24 -0
  453. package/src/oracle_version.ts +20 -9
  454. package/src/private_kernel/batch_planner.ts +168 -0
  455. package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
  456. package/src/private_kernel/hints/index.ts +2 -2
  457. package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +211 -147
  458. package/src/private_kernel/hints/test_utils.ts +318 -0
  459. package/src/private_kernel/private_kernel_execution_prover.ts +358 -140
  460. package/src/private_kernel/private_kernel_oracle.ts +149 -39
  461. package/src/pxe.ts +849 -491
  462. package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +16 -16
  463. package/src/storage/address_store/index.ts +1 -0
  464. package/src/storage/allowed_scopes.ts +14 -0
  465. package/src/storage/anchor_block_store/anchor_block_store.ts +35 -0
  466. package/src/storage/anchor_block_store/index.ts +1 -0
  467. package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +22 -0
  468. package/src/storage/backwards_compatibility_tests/__snapshots__/AnchorBlockStore.json +3 -0
  469. package/src/storage/backwards_compatibility_tests/__snapshots__/CapsuleStore.json +16 -0
  470. package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +28 -0
  471. package/src/storage/backwards_compatibility_tests/__snapshots__/FactStore.json +40 -0
  472. package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +52 -0
  473. package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +40 -0
  474. package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +56 -0
  475. package/src/storage/backwards_compatibility_tests/__snapshots__/PrivateEventStore.json +44 -0
  476. package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +18 -0
  477. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +22 -0
  478. package/src/storage/backwards_compatibility_tests/__snapshots__/TaggingSecretSourcesStore.json +30 -0
  479. package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +117 -0
  480. package/src/storage/backwards_compatibility_tests/kv_store_snapshot.ts +122 -0
  481. package/src/storage/backwards_compatibility_tests/schema_tests.ts +774 -0
  482. package/src/storage/backwards_compatibility_tests/store_spy.ts +73 -0
  483. package/src/storage/capsule_store/capsule_service.ts +85 -0
  484. package/src/storage/capsule_store/capsule_store.ts +333 -0
  485. package/src/storage/capsule_store/index.ts +2 -0
  486. package/src/storage/contract_store/contract_store.ts +401 -0
  487. package/src/storage/contract_store/index.ts +1 -0
  488. package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +1 -1
  489. package/src/storage/fact_store/fact_service.ts +69 -0
  490. package/src/storage/fact_store/fact_store.ts +487 -0
  491. package/src/storage/fact_store/fact_store_keys.ts +75 -0
  492. package/src/storage/fact_store/index.ts +14 -0
  493. package/src/storage/fact_store/origin_state.ts +75 -0
  494. package/src/storage/fact_store/stored_fact.ts +80 -0
  495. package/src/storage/index.ts +8 -7
  496. package/src/storage/metadata.ts +1 -1
  497. package/src/storage/note_store/index.ts +2 -0
  498. package/src/storage/note_store/note_store.ts +454 -0
  499. package/src/storage/note_store/stored_note.ts +26 -0
  500. package/src/storage/open_pxe_stores.ts +52 -0
  501. package/src/storage/private_event_store/private_event_store.ts +382 -0
  502. package/src/storage/private_event_store/stored_private_event.ts +73 -0
  503. package/src/storage/tagging_store/index.ts +3 -0
  504. package/src/storage/tagging_store/recipient_tagging_store.ts +139 -0
  505. package/src/storage/tagging_store/sender_tagging_store.ts +476 -0
  506. package/src/storage/tagging_store/tagging_secret_sources_store.ts +138 -0
  507. package/src/tagging/constants.ts +8 -2
  508. package/src/tagging/get_all_logs_by_tags.ts +120 -0
  509. package/src/tagging/index.ts +20 -6
  510. package/src/tagging/persist_sender_tagging_index_ranges.ts +57 -0
  511. package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +301 -0
  512. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
  513. package/src/tagging/reconcile_tagging_index_ranges.ts +102 -0
  514. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +134 -0
  515. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +66 -0
  516. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +84 -0
  517. package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -274
  518. package/dest/contract_function_simulator/execution_data_provider.d.ts.map +0 -1
  519. package/dest/contract_function_simulator/execution_data_provider.js +0 -14
  520. package/dest/contract_function_simulator/oracle/oracle.d.ts +0 -57
  521. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +0 -1
  522. package/dest/contract_function_simulator/oracle/oracle.js +0 -328
  523. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +0 -6
  524. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +0 -1
  525. package/dest/contract_function_simulator/proxied_contract_data_source.js +0 -62
  526. package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
  527. package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
  528. package/dest/contract_function_simulator/proxied_node.js +0 -27
  529. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +0 -122
  530. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
  531. package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -701
  532. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
  533. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
  534. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.js +0 -271
  535. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
  536. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
  537. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -45
  538. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
  539. package/dest/private_kernel/private_kernel_oracle_impl.js +0 -86
  540. package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
  541. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
  542. package/dest/storage/address_data_provider/index.d.ts +0 -2
  543. package/dest/storage/address_data_provider/index.d.ts.map +0 -1
  544. package/dest/storage/address_data_provider/index.js +0 -1
  545. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -25
  546. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
  547. package/dest/storage/capsule_data_provider/capsule_data_provider.js +0 -118
  548. package/dest/storage/capsule_data_provider/index.d.ts +0 -2
  549. package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
  550. package/dest/storage/capsule_data_provider/index.js +0 -1
  551. package/dest/storage/contract_data_provider/contract_data_provider.d.ts +0 -74
  552. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
  553. package/dest/storage/contract_data_provider/contract_data_provider.js +0 -205
  554. package/dest/storage/contract_data_provider/index.d.ts +0 -2
  555. package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
  556. package/dest/storage/contract_data_provider/index.js +0 -1
  557. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
  558. package/dest/storage/note_data_provider/index.d.ts +0 -3
  559. package/dest/storage/note_data_provider/index.d.ts.map +0 -1
  560. package/dest/storage/note_data_provider/index.js +0 -2
  561. package/dest/storage/note_data_provider/note_dao.d.ts +0 -100
  562. package/dest/storage/note_data_provider/note_dao.d.ts.map +0 -1
  563. package/dest/storage/note_data_provider/note_dao.js +0 -102
  564. package/dest/storage/note_data_provider/note_data_provider.d.ts +0 -83
  565. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
  566. package/dest/storage/note_data_provider/note_data_provider.js +0 -308
  567. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -43
  568. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
  569. package/dest/storage/private_event_data_provider/private_event_data_provider.js +0 -104
  570. package/dest/storage/sync_data_provider/index.d.ts +0 -2
  571. package/dest/storage/sync_data_provider/index.d.ts.map +0 -1
  572. package/dest/storage/sync_data_provider/index.js +0 -1
  573. package/dest/storage/sync_data_provider/sync_data_provider.d.ts +0 -10
  574. package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
  575. package/dest/storage/sync_data_provider/sync_data_provider.js +0 -26
  576. package/dest/storage/tagging_data_provider/index.d.ts +0 -2
  577. package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
  578. package/dest/storage/tagging_data_provider/index.js +0 -1
  579. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +0 -40
  580. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +0 -1
  581. package/dest/storage/tagging_data_provider/tagging_data_provider.js +0 -89
  582. package/dest/synchronizer/index.d.ts +0 -2
  583. package/dest/synchronizer/index.d.ts.map +0 -1
  584. package/dest/synchronizer/index.js +0 -1
  585. package/dest/synchronizer/synchronizer.d.ts +0 -35
  586. package/dest/synchronizer/synchronizer.d.ts.map +0 -1
  587. package/dest/synchronizer/synchronizer.js +0 -101
  588. package/dest/tagging/siloed_tag.d.ts +0 -14
  589. package/dest/tagging/siloed_tag.d.ts.map +0 -1
  590. package/dest/tagging/siloed_tag.js +0 -20
  591. package/dest/tagging/tag.d.ts +0 -12
  592. package/dest/tagging/tag.d.ts.map +0 -1
  593. package/dest/tagging/tag.js +0 -17
  594. package/dest/tagging/utils.d.ts +0 -18
  595. package/dest/tagging/utils.d.ts.map +0 -1
  596. package/dest/tagging/utils.js +0 -24
  597. package/src/contract_function_simulator/execution_data_provider.ts +0 -343
  598. package/src/contract_function_simulator/oracle/oracle.ts +0 -575
  599. package/src/contract_function_simulator/proxied_contract_data_source.ts +0 -66
  600. package/src/contract_function_simulator/proxied_node.ts +0 -33
  601. package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1019
  602. package/src/private_kernel/private_kernel_oracle_impl.ts +0 -132
  603. package/src/storage/address_data_provider/index.ts +0 -1
  604. package/src/storage/capsule_data_provider/capsule_data_provider.ts +0 -147
  605. package/src/storage/capsule_data_provider/index.ts +0 -1
  606. package/src/storage/contract_data_provider/contract_data_provider.ts +0 -294
  607. package/src/storage/contract_data_provider/index.ts +0 -1
  608. package/src/storage/note_data_provider/index.ts +0 -2
  609. package/src/storage/note_data_provider/note_dao.ts +0 -154
  610. package/src/storage/note_data_provider/note_data_provider.ts +0 -393
  611. package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -148
  612. package/src/storage/sync_data_provider/index.ts +0 -1
  613. package/src/storage/sync_data_provider/sync_data_provider.ts +0 -34
  614. package/src/storage/tagging_data_provider/index.ts +0 -1
  615. package/src/storage/tagging_data_provider/tagging_data_provider.ts +0 -120
  616. package/src/synchronizer/index.ts +0 -1
  617. package/src/synchronizer/synchronizer.ts +0 -120
  618. package/src/tagging/siloed_tag.ts +0 -22
  619. package/src/tagging/tag.ts +0 -16
  620. package/src/tagging/utils.ts +0 -31
@@ -0,0 +1,774 @@
1
+ /* eslint-disable camelcase */
2
+ import { CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, PRIVATE_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
3
+ import { BlockNumber, CheckpointNumber, IndexWithinCheckpoint, SlotNumber } from '@aztec/foundation/branded-types';
4
+ import { Fr } from '@aztec/foundation/curves/bn254';
5
+ import { Point } from '@aztec/foundation/curves/grumpkin';
6
+ import { EthAddress } from '@aztec/foundation/eth-address';
7
+ import type { Tuple } from '@aztec/foundation/serialize';
8
+ import { KeyStore } from '@aztec/key-store';
9
+ import type { AztecAsyncKVStore } from '@aztec/kv-store';
10
+ import { L2TipsKVStore } from '@aztec/kv-store/stores';
11
+ import { type ContractArtifact, EventSelector, FunctionSelector, FunctionType } from '@aztec/stdlib/abi';
12
+ import { PublicDataWrite, RevertCode } from '@aztec/stdlib/avm';
13
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
14
+ import { BlockHash, Body, GENESIS_BLOCK_HEADER_HASH, L2Block } from '@aztec/stdlib/block';
15
+ import { Checkpoint, L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
16
+ import { CompleteAddress, SerializableContractInstance } from '@aztec/stdlib/contract';
17
+ import { GasFees } from '@aztec/stdlib/gas';
18
+ import { PublicKey, PublicKeys, deriveKeys } from '@aztec/stdlib/keys';
19
+ import {
20
+ AppTaggingSecret,
21
+ ContractClassLog,
22
+ ContractClassLogFields,
23
+ PrivateLog,
24
+ PublicLog,
25
+ type TaggingIndexRange,
26
+ } from '@aztec/stdlib/logs';
27
+ import { Note, NoteDao } from '@aztec/stdlib/note';
28
+ import { CheckpointHeader } from '@aztec/stdlib/rollup';
29
+ import { AppendOnlyTreeSnapshot } from '@aztec/stdlib/trees';
30
+ import {
31
+ BlockHeader,
32
+ GlobalVariables,
33
+ PartialStateReference,
34
+ StateReference,
35
+ TxEffect,
36
+ TxHash,
37
+ } from '@aztec/stdlib/tx';
38
+
39
+ import { AddressStore } from '../address_store/address_store.js';
40
+ import { AnchorBlockStore } from '../anchor_block_store/index.js';
41
+ import { CapsuleStore } from '../capsule_store/capsule_store.js';
42
+ import { ContractStore } from '../contract_store/contract_store.js';
43
+ import { FactStore } from '../fact_store/fact_store.js';
44
+ import { FactCollectionKey } from '../fact_store/fact_store_keys.js';
45
+ import { NoteStore } from '../note_store/note_store.js';
46
+ import { PrivateEventStore } from '../private_event_store/private_event_store.js';
47
+ import { RecipientTaggingStore, SenderTaggingStore, TaggingSecretSourcesStore } from '../tagging_store/index.js';
48
+ import { snapshotArray, snapshotMap, snapshotSingleton } from './kv_store_snapshot.js';
49
+
50
+ /**
51
+ * Template of a specific store's backwards compatibility checks.
52
+ *
53
+ * 1. `name` is the store's name (`AddressStore`, `NoteStore`, etc).
54
+ * 2. `writeToStore` drives writes through each store's own production API (`addNote`, `setCapsule`, etc).
55
+ * 3. `snapshotStore` re-opens the underlying kv-stores by name (raw) and renders them as snapshots.
56
+ */
57
+ export type SchemaTest = {
58
+ name: string;
59
+ writeToStore: (kvStore: AztecAsyncKVStore) => Promise<void>;
60
+ snapshotStore: (kvStore: AztecAsyncKVStore) => Promise<Record<string, unknown>>;
61
+ };
62
+
63
+ export const SCHEMA_TESTS: readonly SchemaTest[] = [
64
+ {
65
+ name: 'AddressStore',
66
+ writeToStore: async kvStore => {
67
+ const addressStore = new AddressStore(kvStore);
68
+
69
+ const addresses = [
70
+ await CompleteAddress.fromSecretKeyAndPartialAddress(new Fr(2n), new Fr(3n)),
71
+ await CompleteAddress.fromSecretKeyAndPartialAddress(new Fr(5n), new Fr(7n)),
72
+ ];
73
+
74
+ await addressStore.addCompleteAddress(addresses[0]);
75
+ await addressStore.addCompleteAddress(addresses[1]);
76
+ // Re-adding an already-registered address must be a no-op: duplicate detection should leave both sub-stores
77
+ // unchanged. If this regresses, the snapshot picks up an extra array entry.
78
+ await addressStore.addCompleteAddress(addresses[0]);
79
+ },
80
+ snapshotStore: async kvStore => ({
81
+ complete_addresses: await snapshotArray(kvStore.openArray<Buffer>('complete_addresses')),
82
+ complete_address_index: await snapshotMap(kvStore.openMap<string, number>('complete_address_index')),
83
+ }),
84
+ },
85
+
86
+ {
87
+ name: 'AnchorBlockStore',
88
+ writeToStore: async kvStore => {
89
+ const anchorBlockStore = new AnchorBlockStore(kvStore);
90
+
91
+ // Each primitive field gets a distinct prime so any reorder shows up in the snapshot diff. An all-zero
92
+ // `BlockHeader.empty()` would silently pass through same-width field swaps.
93
+ await anchorBlockStore.setHeader(
94
+ new BlockHeader(
95
+ new AppendOnlyTreeSnapshot(new Fr(2n), 3),
96
+ new StateReference(
97
+ new AppendOnlyTreeSnapshot(new Fr(5n), 7),
98
+ new PartialStateReference(
99
+ new AppendOnlyTreeSnapshot(new Fr(11n), 13),
100
+ new AppendOnlyTreeSnapshot(new Fr(17n), 19),
101
+ new AppendOnlyTreeSnapshot(new Fr(23n), 29),
102
+ ),
103
+ ),
104
+ new Fr(31n),
105
+ new GlobalVariables(
106
+ new Fr(37n),
107
+ new Fr(41n),
108
+ BlockNumber(43),
109
+ SlotNumber(47),
110
+ 53n,
111
+ EthAddress.fromField(new Fr(59n)),
112
+ AztecAddress.fromBigIntUnsafe(61n),
113
+ new GasFees(67n, 71n),
114
+ ),
115
+ new Fr(73n),
116
+ new Fr(79n),
117
+ ),
118
+ );
119
+ },
120
+ snapshotStore: async kvStore => ({
121
+ header: await snapshotSingleton(kvStore.openSingleton<Buffer>('header')),
122
+ }),
123
+ },
124
+
125
+ {
126
+ name: 'CapsuleStore',
127
+ writeToStore: async kvStore => {
128
+ const capsuleStore = new CapsuleStore(kvStore);
129
+
130
+ const jobId = 'fixture-job';
131
+ const contractAddress = AztecAddress.fromBigIntUnsafe(2n);
132
+ const scope = AztecAddress.fromBigIntUnsafe(3n);
133
+
134
+ // Three setCapsule calls (2-element, 1-element, 0-element value vector) pin every value-encoding length case.
135
+ capsuleStore.setCapsule(contractAddress, new Fr(5n), [new Fr(7n), new Fr(11n)], jobId, scope);
136
+ capsuleStore.setCapsule(contractAddress, new Fr(13n), [new Fr(17n)], jobId, scope);
137
+ capsuleStore.setCapsule(contractAddress, new Fr(19n), [], jobId, scope);
138
+ await kvStore.transactionAsync(() => capsuleStore.commit(jobId));
139
+ },
140
+ snapshotStore: async kvStore => ({
141
+ capsules: await snapshotMap(kvStore.openMap<string, Buffer>('capsules')),
142
+ }),
143
+ },
144
+
145
+ {
146
+ name: 'ContractStore',
147
+ writeToStore: async kvStore => {
148
+ const contractStore = new ContractStore(kvStore);
149
+
150
+ // Hand-rolled artifact (see `buildSchemaContractArtifact` below) instead of importing a noir-compiled fixture.
151
+ // The compiled fixture's JSON contains noir-compiler outputs (error-type hashes, debug symbols, struct paths)
152
+ // that drift across compiler versions and produce spurious ContractStore.json diffs that have nothing to do with
153
+ // PXE's on-disk schema. The hand-rolled artifact is small, deterministic across versions, and exercises the
154
+ // `addContractArtifact` write path identically.
155
+ const artifact = buildSchemaContractArtifact();
156
+
157
+ // Precomputed class so the `contract_classes` bytes are hardcoded by this test rather than derived from
158
+ // `getContractClassFromArtifact`.
159
+ const populatedClass = {
160
+ version: 1 as const,
161
+ id: new Fr(2n),
162
+ artifactHash: new Fr(3n),
163
+ privateFunctionsRoot: new Fr(5n),
164
+ publicBytecodeCommitment: new Fr(7n),
165
+ privateFunctions: [
166
+ { selector: FunctionSelector.fromField(new Fr(11n)), vkHash: new Fr(13n) },
167
+ { selector: FunctionSelector.fromField(new Fr(17n)), vkHash: new Fr(19n) },
168
+ ],
169
+ packedBytecode: Buffer.alloc(0),
170
+ };
171
+
172
+ await contractStore.addContractArtifact(artifact, populatedClass);
173
+
174
+ // Same artifact, different class with empty `privateFunctions`. Tests zero-length-vector encoding for the
175
+ // privateFunctions field, which the populated case can't reach.
176
+ await contractStore.addContractArtifact(artifact, {
177
+ version: 1 as const,
178
+ id: new Fr(23n),
179
+ artifactHash: new Fr(29n),
180
+ privateFunctionsRoot: new Fr(31n),
181
+ publicBytecodeCommitment: new Fr(37n),
182
+ privateFunctions: [],
183
+ packedBytecode: Buffer.alloc(0),
184
+ });
185
+
186
+ // Re-register the populated class: must hit the `#contractArtifactCache` short-circuit and leave both
187
+ // `contract_artifacts` and `contract_classes` unchanged.
188
+ await contractStore.addContractArtifact(artifact, populatedClass);
189
+
190
+ await contractStore.addContractInstance(
191
+ new SerializableContractInstance({
192
+ version: 2,
193
+ salt: new Fr(73n),
194
+ deployer: AztecAddress.fromBigIntUnsafe(79n),
195
+ currentContractClassId: new Fr(83n),
196
+ originalContractClassId: new Fr(89n),
197
+ initializationHash: new Fr(97n),
198
+ immutablesHash: new Fr(103n),
199
+ // Only `ivpk_m` is exposed as a curve point; the other master keys
200
+ // are exposed as `hash_public_key` digests. Constructor signature is
201
+ // `(npkMHash, ivpkM, ovpkMHash, tpkMHash, mspkMHash, fbpkMHash)`.
202
+ publicKeys: new PublicKeys(
203
+ new Fr(41n),
204
+ new PublicKey(new Fr(47n), new Fr(53n)),
205
+ new Fr(59n),
206
+ new Fr(67n),
207
+ new Fr(71n),
208
+ new Fr(73n),
209
+ ),
210
+ }).withAddress(AztecAddress.fromBigIntUnsafe(101n)),
211
+ );
212
+ },
213
+ snapshotStore: async kvStore => ({
214
+ contract_artifacts: await snapshotMap(kvStore.openMap<string, Buffer>('contract_artifacts')),
215
+ contract_classes: await snapshotMap(kvStore.openMap<string, Buffer>('contract_classes')),
216
+ contracts_instances: await snapshotMap(kvStore.openMap<string, Buffer>('contracts_instances')),
217
+ }),
218
+ },
219
+
220
+ {
221
+ name: 'FactStore',
222
+ writeToStore: async kvStore => {
223
+ const factStore = new FactStore(kvStore);
224
+ const jobId = 'fixture-job';
225
+ const contract = AztecAddress.fromBigIntUnsafe(100n);
226
+ const scope = AztecAddress.fromBigIntUnsafe(1n);
227
+ const factCollectionTypeId = new Fr(7n);
228
+ const keyA = FactCollectionKey.from({
229
+ contractAddress: contract,
230
+ scope,
231
+ factCollectionTypeId,
232
+ factCollectionId: new Fr(0xaan),
233
+ });
234
+ const keyB = FactCollectionKey.from({
235
+ contractAddress: contract,
236
+ scope,
237
+ factCollectionTypeId,
238
+ factCollectionId: new Fr(0xbbn),
239
+ });
240
+ // A collection whose only fact is retractable (origin block 6): pruned on a reorg above block 6.
241
+ await factStore.recordFact(keyA, new Fr(3n), [new Fr(5n)], { blockNumber: 6, blockHash: new Fr(2n) }, jobId);
242
+ // A collection with a non-retractable and a retractable fact.
243
+ await factStore.recordFact(keyB, new Fr(1n), [new Fr(9n)], undefined, jobId);
244
+ await factStore.recordFact(keyB, new Fr(2n), [], { blockNumber: 5, blockHash: new Fr(1n) }, jobId);
245
+ await kvStore.transactionAsync(() => factStore.commit(jobId));
246
+ },
247
+ snapshotStore: async kvStore => ({
248
+ facts: await snapshotMap(kvStore.openMap<string, Buffer>('facts')),
249
+ facts_by_collection: await snapshotMap(kvStore.openMultiMap<string, string>('facts_by_collection')),
250
+ facts_by_block: await snapshotMap(kvStore.openMultiMap<number, string>('facts_by_block')),
251
+ }),
252
+ },
253
+
254
+ {
255
+ name: 'KeyStore',
256
+ writeToStore: async kvStore => {
257
+ const keyStore = new KeyStore(kvStore);
258
+ await keyStore.addAccount(await deriveKeys(new Fr(2n)), new Fr(3n));
259
+ },
260
+ snapshotStore: async kvStore => ({
261
+ key_store: await snapshotMap(kvStore.openMap<string, Buffer>('key_store')),
262
+ }),
263
+ },
264
+
265
+ {
266
+ name: 'L2TipsKVStore',
267
+ writeToStore: async kvStore => {
268
+ const l2TipsStore = new L2TipsKVStore(kvStore, 'pxe', GENESIS_BLOCK_HEADER_HASH);
269
+
270
+ const block = buildL2Block();
271
+ const publishedCheckpoint = new PublishedCheckpoint(
272
+ new Checkpoint(
273
+ new AppendOnlyTreeSnapshot(new Fr(2n), 3),
274
+ new CheckpointHeader(
275
+ new Fr(5n),
276
+ new Fr(7n),
277
+ new Fr(11n),
278
+ new Fr(13n),
279
+ new Fr(17n),
280
+ SlotNumber(19),
281
+ 23n,
282
+ EthAddress.fromField(new Fr(29n)),
283
+ AztecAddress.fromBigIntUnsafe(31n),
284
+ new GasFees(37n, 41n),
285
+ new Fr(43n),
286
+ new Fr(47n),
287
+ ),
288
+ [block],
289
+ CheckpointNumber(47),
290
+ 53n,
291
+ ),
292
+ new L1PublishedData(59n, 61n, new Fr(67n).toString()),
293
+ [],
294
+ );
295
+
296
+ // `'blocks-added'` writes to `pxe_l2_tips` (proposed tag) and `pxe_l2_block_hashes`.
297
+ // `'chain-checkpointed'` writes the 'checkpointed' tip and its checkpoint id (`pxe_l2_tip_checkpoints`).
298
+ await l2TipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: [block] });
299
+ await l2TipsStore.handleBlockStreamEvent({
300
+ type: 'chain-checkpointed',
301
+ block: { number: BlockNumber(71), hash: new Fr(73n).toString() },
302
+ checkpoint: {
303
+ number: publishedCheckpoint.checkpoint.number,
304
+ hash: publishedCheckpoint.checkpoint.hash().toString(),
305
+ },
306
+ });
307
+ // `'chain-proven'` writes the 'proven' tag. `'finalized'` is omitted because its handler runs delete-before
308
+ // logic that would depend on the order of preceding events.
309
+ await l2TipsStore.handleBlockStreamEvent({
310
+ type: 'chain-proven',
311
+ block: { number: BlockNumber(79), hash: new Fr(83n).toString() },
312
+ checkpoint: { number: CheckpointNumber(47), hash: new Fr(89n).toString() },
313
+ });
314
+ },
315
+ snapshotStore: async kvStore => ({
316
+ pxe_l2_tips: await snapshotMap(kvStore.openMap<string, number>('pxe_l2_tips')),
317
+ pxe_l2_tip_checkpoints: await snapshotMap(
318
+ kvStore.openMap<string, { number: number; hash: string }>('pxe_l2_tip_checkpoints'),
319
+ ),
320
+ pxe_l2_block_hashes: await snapshotMap(kvStore.openMap<number, string>('pxe_l2_block_hashes')),
321
+ }),
322
+ },
323
+
324
+ {
325
+ name: 'NoteStore',
326
+ writeToStore: async kvStore => {
327
+ const noteStore = new NoteStore(kvStore);
328
+
329
+ const jobId = 'fixture-job';
330
+
331
+ // Two contracts so `note_nullifiers_by_contract` exhibits both a multi-value row (contractA → {n1, n2}) and a
332
+ // single-value row (contractB → {n3}).
333
+ const contractA = AztecAddress.fromBigIntUnsafe(2n);
334
+ const contractB = AztecAddress.fromBigIntUnsafe(3n);
335
+ const scopeX = AztecAddress.fromBigIntUnsafe(5n);
336
+ const scopeY = AztecAddress.fromBigIntUnsafe(7n);
337
+
338
+ // note1: active, will be added under two scopes to exercise the multi-element scopes vector encoding in
339
+ // `StoredNote.toBuffer`.
340
+ const note1 = new NoteDao(
341
+ new Note([new Fr(13n), new Fr(17n), new Fr(19n)]),
342
+ contractA,
343
+ AztecAddress.fromBigIntUnsafe(23n),
344
+ new Fr(29n),
345
+ new Fr(31n),
346
+ new Fr(37n),
347
+ new Fr(41n),
348
+ new Fr(43n),
349
+ TxHash.fromField(new Fr(47n)),
350
+ BlockNumber(53),
351
+ new Fr(59n).toString(),
352
+ 61,
353
+ 67,
354
+ );
355
+
356
+ // note2: same contract as note1 → produces the multi-value row in `note_nullifiers_by_contract`.
357
+ const note2 = new NoteDao(
358
+ new Note([new Fr(71n), new Fr(73n), new Fr(79n)]),
359
+ contractA,
360
+ AztecAddress.fromBigIntUnsafe(83n),
361
+ new Fr(89n),
362
+ new Fr(97n),
363
+ new Fr(101n),
364
+ new Fr(103n),
365
+ new Fr(107n),
366
+ TxHash.fromField(new Fr(109n)),
367
+ BlockNumber(113),
368
+ new Fr(127n).toString(),
369
+ 131,
370
+ 137,
371
+ );
372
+
373
+ // note3: different contract; will be nullified to populate `note_nullifications_by_nullifier` and exercise the
374
+ // append-only nullification record written by `applyNullifiers`.
375
+ const note3 = new NoteDao(
376
+ new Note([new Fr(139n), new Fr(149n), new Fr(151n)]),
377
+ contractB,
378
+ AztecAddress.fromBigIntUnsafe(157n),
379
+ new Fr(163n),
380
+ new Fr(167n),
381
+ new Fr(173n),
382
+ new Fr(179n),
383
+ new Fr(181n),
384
+ TxHash.fromField(new Fr(191n)),
385
+ BlockNumber(193),
386
+ new Fr(197n).toString(),
387
+ 199,
388
+ 211,
389
+ );
390
+
391
+ // Adding note1 twice with different scopes triggers `addScope` on the staged StoredNote, producing a 2-element
392
+ // scope vector in the committed buffer.
393
+ await noteStore.addNotes([note1], scopeX, jobId);
394
+ await noteStore.addNotes([note1], scopeY, jobId);
395
+ await noteStore.addNotes([note2], scopeX, jobId);
396
+ await noteStore.addNotes([note3], scopeX, jobId);
397
+
398
+ // Nullify note3 within the same job. `applyNullifiers` stages the emission block number for the note; `commit`
399
+ // then flushes it to disk into `note_nullifications_by_nullifier`.
400
+ await noteStore.applyNullifiers(
401
+ [{ data: note3.siloedNullifier, l2BlockNumber: BlockNumber(223), l2BlockHash: BlockHash.ZERO }],
402
+ jobId,
403
+ );
404
+
405
+ await kvStore.transactionAsync(() => noteStore.commit(jobId));
406
+ },
407
+ snapshotStore: async kvStore => ({
408
+ notes: await snapshotMap(kvStore.openMap<string, Buffer>('notes')),
409
+ note_nullifiers_by_contract: await snapshotMap(
410
+ kvStore.openMultiMap<string, string>('note_nullifiers_by_contract'),
411
+ ),
412
+ note_nullifications_by_nullifier: await snapshotMap(
413
+ kvStore.openMap<string, number>('note_nullifications_by_nullifier'),
414
+ ),
415
+ note_nullifiers_by_block: await snapshotMap(kvStore.openMultiMap<number, string>('note_nullifiers_by_block')),
416
+ note_nullifications_by_block: await snapshotMap(
417
+ kvStore.openMultiMap<number, string>('note_nullifications_by_block'),
418
+ ),
419
+ }),
420
+ },
421
+
422
+ {
423
+ name: 'PrivateEventStore',
424
+ writeToStore: async kvStore => {
425
+ const privateEventStore = new PrivateEventStore(kvStore);
426
+
427
+ const jobId = 'fixture-job';
428
+
429
+ // Two (contract, selector) pairs and two block numbers so each multimap exhibits both a multi-value row
430
+ // (contractA/selectorA → {e1, e2} and blockN1 → {e1, e2}) and a contrasting single-value row.
431
+ const contractA = AztecAddress.fromBigIntUnsafe(2n);
432
+ const contractB = AztecAddress.fromBigIntUnsafe(3n);
433
+ const selectorA = EventSelector.fromField(new Fr(5n));
434
+ const selectorB = EventSelector.fromField(new Fr(7n));
435
+ const scopeX = AztecAddress.fromBigIntUnsafe(11n);
436
+ const scopeY = AztecAddress.fromBigIntUnsafe(13n);
437
+ const blockN1 = BlockNumber(17);
438
+ const blockN2 = BlockNumber(19);
439
+
440
+ // event1: rich fixture. Re-stored under scopeY below to exercise the `addScope` branch and produce a 2-element
441
+ // scopes vector in the committed buffer.
442
+ const event1Commitment = new Fr(23n);
443
+ await privateEventStore.storePrivateEventLog(
444
+ selectorA,
445
+ new Fr(29n),
446
+ [new Fr(31n), new Fr(37n), new Fr(41n)],
447
+ event1Commitment,
448
+ {
449
+ contractAddress: contractA,
450
+ scope: scopeX,
451
+ txHash: TxHash.fromField(new Fr(43n)),
452
+ l2BlockNumber: blockN1,
453
+ l2BlockHash: new BlockHash(new Fr(47n)),
454
+ txIndexInBlock: 53,
455
+ eventIndexInTx: 59,
456
+ },
457
+ jobId,
458
+ );
459
+
460
+ // Same eventId, different scope: takes the `existing.addScope(...)` path in `storePrivateEventLog`.
461
+ await privateEventStore.storePrivateEventLog(
462
+ selectorA,
463
+ new Fr(29n),
464
+ [new Fr(31n), new Fr(37n), new Fr(41n)],
465
+ event1Commitment,
466
+ {
467
+ contractAddress: contractA,
468
+ scope: scopeY,
469
+ txHash: TxHash.fromField(new Fr(43n)),
470
+ l2BlockNumber: blockN1,
471
+ l2BlockHash: new BlockHash(new Fr(47n)),
472
+ txIndexInBlock: 53,
473
+ eventIndexInTx: 59,
474
+ },
475
+ jobId,
476
+ );
477
+
478
+ // event2: same (contract, selector) and same block as event1 → multi-value rows in both multimaps.
479
+ await privateEventStore.storePrivateEventLog(
480
+ selectorA,
481
+ new Fr(61n),
482
+ [new Fr(67n), new Fr(71n), new Fr(73n)],
483
+ new Fr(79n),
484
+ {
485
+ contractAddress: contractA,
486
+ scope: scopeX,
487
+ txHash: TxHash.fromField(new Fr(83n)),
488
+ l2BlockNumber: blockN1,
489
+ l2BlockHash: new BlockHash(new Fr(89n)),
490
+ txIndexInBlock: 97,
491
+ eventIndexInTx: 101,
492
+ },
493
+ jobId,
494
+ );
495
+
496
+ // event3: distinct (contract, selector) and block → contrasting single-value multimap rows.
497
+ await privateEventStore.storePrivateEventLog(
498
+ selectorB,
499
+ new Fr(103n),
500
+ [new Fr(107n), new Fr(109n), new Fr(113n)],
501
+ new Fr(127n),
502
+ {
503
+ contractAddress: contractB,
504
+ scope: scopeX,
505
+ txHash: TxHash.fromField(new Fr(131n)),
506
+ l2BlockNumber: blockN2,
507
+ l2BlockHash: new BlockHash(new Fr(137n)),
508
+ txIndexInBlock: 139,
509
+ eventIndexInTx: 149,
510
+ },
511
+ jobId,
512
+ );
513
+
514
+ await kvStore.transactionAsync(() => privateEventStore.commit(jobId));
515
+ },
516
+ snapshotStore: async kvStore => ({
517
+ private_event_logs: await snapshotMap(kvStore.openMap<string, Buffer>('private_event_logs')),
518
+ events_by_contract_selector: await snapshotMap(
519
+ kvStore.openMultiMap<string, string>('events_by_contract_selector'),
520
+ ),
521
+ events_by_block_number: await snapshotMap(kvStore.openMultiMap<number, string>('events_by_block_number')),
522
+ }),
523
+ },
524
+
525
+ {
526
+ name: 'RecipientTaggingStore',
527
+ writeToStore: async kvStore => {
528
+ const recipientTaggingStore = new RecipientTaggingStore(kvStore);
529
+
530
+ const jobId = 'fixture-job';
531
+ const secretA = new AppTaggingSecret(new Fr(2n), AztecAddress.fromBigIntUnsafe(3n));
532
+ const secretB = new AppTaggingSecret(new Fr(5n), AztecAddress.fromBigIntUnsafe(7n));
533
+
534
+ await recipientTaggingStore.updateHighestFinalizedIndex(secretA, 11, jobId);
535
+ await recipientTaggingStore.updateHighestAgedIndex(secretA, 13, jobId);
536
+ await recipientTaggingStore.updateHighestFinalizedIndex(secretB, 17, jobId);
537
+ await kvStore.transactionAsync(() => recipientTaggingStore.commit(jobId));
538
+ },
539
+ snapshotStore: async kvStore => ({
540
+ highest_aged_index: await snapshotMap(kvStore.openMap<string, number>('highest_aged_index')),
541
+ highest_finalized_index: await snapshotMap(kvStore.openMap<string, number>('highest_finalized_index')),
542
+ }),
543
+ },
544
+
545
+ {
546
+ name: 'TaggingSecretSourcesStore',
547
+ writeToStore: async kvStore => {
548
+ const taggingSecretSourcesStore = new TaggingSecretSourcesStore(kvStore);
549
+
550
+ await taggingSecretSourcesStore.addSender(AztecAddress.fromBigIntUnsafe(2n));
551
+ await taggingSecretSourcesStore.addSender(AztecAddress.fromBigIntUnsafe(3n));
552
+ await taggingSecretSourcesStore.addSender(AztecAddress.fromBigIntUnsafe(5n));
553
+
554
+ await taggingSecretSourcesStore.addSharedSecret(
555
+ AztecAddress.fromBigIntUnsafe(7n),
556
+ 'arbitrary-secret',
557
+ new Point(new Fr(2n), new Fr(3n)),
558
+ );
559
+ await taggingSecretSourcesStore.addSharedSecret(
560
+ AztecAddress.fromBigIntUnsafe(7n),
561
+ 'handshake',
562
+ new Point(new Fr(5n), new Fr(7n)),
563
+ );
564
+ await taggingSecretSourcesStore.addSharedSecret(
565
+ AztecAddress.fromBigIntUnsafe(11n),
566
+ 'arbitrary-secret',
567
+ new Point(new Fr(13n), new Fr(17n)),
568
+ );
569
+ },
570
+ snapshotStore: async kvStore => ({
571
+ senders: await snapshotMap(kvStore.openMap<string, true>('senders')),
572
+ recipient_shared_secrets: await snapshotMap(
573
+ kvStore.openMultiMap<string, { kind: string; secret: string }>('recipient_shared_secrets'),
574
+ ),
575
+ }),
576
+ },
577
+
578
+ {
579
+ name: 'SenderTaggingStore',
580
+ writeToStore: async kvStore => {
581
+ const senderTaggingStore = new SenderTaggingStore(kvStore);
582
+
583
+ const jobId = 'fixture-job';
584
+ const secretA = new AppTaggingSecret(new Fr(2n), AztecAddress.fromBigIntUnsafe(3n));
585
+ const secretB = new AppTaggingSecret(new Fr(5n), AztecAddress.fromBigIntUnsafe(7n));
586
+ const secretC = new AppTaggingSecret(new Fr(11n), AztecAddress.fromBigIntUnsafe(13n));
587
+ const txHashA = TxHash.fromBigInt(17n);
588
+ const txHashB = TxHash.fromBigInt(19n);
589
+ const txHashC = TxHash.fromBigInt(23n);
590
+ const txHashD = TxHash.fromBigInt(29n);
591
+
592
+ // secretA receives three pending ranges (one per tx); secretB receives one. After finalizing txHashA below,
593
+ // secretA's array shrinks to two elements (the txHashB and txHashC ranges, both with highestIndex > 3) which
594
+ // pins the multi-element JSON encoding of `pending_indexes`.
595
+ const txHashARanges: TaggingIndexRange[] = [
596
+ { extendedSecret: secretA, lowestIndex: 1, highestIndex: 3 },
597
+ { extendedSecret: secretB, lowestIndex: 1, highestIndex: 5 },
598
+ ];
599
+ await senderTaggingStore.storePendingIndexes(txHashARanges, txHashA, jobId);
600
+
601
+ await senderTaggingStore.storePendingIndexes(
602
+ [{ extendedSecret: secretA, lowestIndex: 4, highestIndex: 7 }],
603
+ txHashB,
604
+ jobId,
605
+ );
606
+
607
+ // Re-store the exact same (secret, txHash, range). Exercises the "exact duplicate — skip" branch at
608
+ // sender_tagging_store.ts:199. The snapshot must be unchanged by this call; it pins the no-op assumption.
609
+ await senderTaggingStore.storePendingIndexes(
610
+ [{ extendedSecret: secretA, lowestIndex: 4, highestIndex: 7 }],
611
+ txHashB,
612
+ jobId,
613
+ );
614
+
615
+ await senderTaggingStore.storePendingIndexes(
616
+ [{ extendedSecret: secretA, lowestIndex: 8, highestIndex: 11 }],
617
+ txHashC,
618
+ jobId,
619
+ );
620
+
621
+ // secretC's range is never finalized, so it survives commit as a single-element pending array (contrast with
622
+ // secretA's multi-element shape).
623
+ await senderTaggingStore.storePendingIndexes(
624
+ [{ extendedSecret: secretC, lowestIndex: 1, highestIndex: 9 }],
625
+ txHashD,
626
+ jobId,
627
+ );
628
+
629
+ await senderTaggingStore.finalizePendingIndexes([txHashA], jobId);
630
+
631
+ await kvStore.transactionAsync(() => senderTaggingStore.commit(jobId));
632
+ },
633
+ snapshotStore: async kvStore => ({
634
+ pending_indexes: await snapshotMap(kvStore.openMap<string, Buffer>('pending_indexes')),
635
+ last_finalized_indexes: await snapshotMap(kvStore.openMap<string, number>('last_finalized_indexes')),
636
+ }),
637
+ },
638
+ ];
639
+
640
+ /**
641
+ * Pads an Fr array to `totalLength` with `Fr.ZERO`. Returns plain `Fr[]` rather than `Tuple<Fr, N>` so that callers
642
+ * with very large `totalLength` (e.g. `CONTRACT_CLASS_LOG_SIZE_IN_FIELDS = 3023`) don't trip TypeScript's recursive
643
+ * type instantiation depth limit on `Tuple<T, N>` — which is why we don't simply call `padArrayEnd` from foundation.
644
+ * Used because `ContractClassLogFields` and `PrivateLog` require fixed-length collections; populating only the leading
645
+ * slots is enough to detect reorders, while the trailing zeros pin each field's total width (a shrunk or grown size
646
+ * constant shifts the byte count and shows up in the snapshot diff).
647
+ */
648
+ function paddedFrs(leading: bigint[], totalLength: number): Fr[] {
649
+ const out = leading.map(p => new Fr(p));
650
+ while (out.length < totalLength) {
651
+ out.push(Fr.ZERO);
652
+ }
653
+ return out;
654
+ }
655
+
656
+ /**
657
+ * Builds a fully-populated `L2Block` with distinct values for every primitive field that appears in `toBuffer`.
658
+ * We use distinct values to make a snapshot diff sensitive to regressions of specific fields, and same-width reorders.
659
+ */
660
+ function buildL2Block(): L2Block {
661
+ const archive = new AppendOnlyTreeSnapshot(new Fr(101n), 103);
662
+ const header = new BlockHeader(
663
+ new AppendOnlyTreeSnapshot(new Fr(107n), 109),
664
+ new StateReference(
665
+ new AppendOnlyTreeSnapshot(new Fr(113n), 127),
666
+ new PartialStateReference(
667
+ new AppendOnlyTreeSnapshot(new Fr(131n), 137),
668
+ new AppendOnlyTreeSnapshot(new Fr(139n), 149),
669
+ new AppendOnlyTreeSnapshot(new Fr(151n), 157),
670
+ ),
671
+ ),
672
+ new Fr(163n),
673
+ new GlobalVariables(
674
+ new Fr(167n),
675
+ new Fr(173n),
676
+ BlockNumber(179),
677
+ SlotNumber(181),
678
+ 191n,
679
+ EthAddress.fromField(new Fr(193n)),
680
+ AztecAddress.fromBigIntUnsafe(197n),
681
+ new GasFees(199n, 211n),
682
+ ),
683
+ new Fr(223n),
684
+ new Fr(227n),
685
+ );
686
+
687
+ const txEffect = new TxEffect(
688
+ RevertCode.REVERTED,
689
+ TxHash.fromBigInt(229n),
690
+ new Fr(233n),
691
+ [new Fr(239n)],
692
+ [new Fr(241n)],
693
+ [new Fr(251n)],
694
+ [new PublicDataWrite(new Fr(257n), new Fr(263n))],
695
+ [
696
+ new PrivateLog(
697
+ paddedFrs([269n, 271n, 277n], PRIVATE_LOG_SIZE_IN_FIELDS) as Tuple<Fr, typeof PRIVATE_LOG_SIZE_IN_FIELDS>,
698
+ 3,
699
+ ),
700
+ ],
701
+ [new PublicLog(AztecAddress.fromBigIntUnsafe(281n), [new Fr(283n), new Fr(293n)])],
702
+ [
703
+ new ContractClassLog(
704
+ AztecAddress.fromBigIntUnsafe(307n),
705
+ new ContractClassLogFields(paddedFrs([311n, 313n, 317n], CONTRACT_CLASS_LOG_SIZE_IN_FIELDS)),
706
+ 3,
707
+ ),
708
+ ],
709
+ );
710
+
711
+ return new L2Block(archive, header, new Body([txEffect]), CheckpointNumber(331), IndexWithinCheckpoint(337));
712
+ }
713
+
714
+ /**
715
+ * Builds a deterministic, hand-rolled `ContractArtifact` for the ContractStore schema test. Every collection field
716
+ * has at least one entry so that JSON serialization branches for non-empty arrays and records are exercised; values
717
+ * are picked to be distinguishable so a reorder or shape change of `ContractArtifact`/`FunctionAbi` is visible in
718
+ * the snapshot diff.
719
+ *
720
+ * Why not import a real noir-compiled artifact? Compiled artifacts embed noir-compiler output (error-type hashes,
721
+ * debug symbols, struct paths) that drifts across compiler versions and produces spurious schema diffs unrelated to
722
+ * PXE's on-disk layout.
723
+ */
724
+ function buildSchemaContractArtifact(): ContractArtifact {
725
+ return {
726
+ name: 'SchemaFixtureContract',
727
+ aztecVersion: 'schema-fixture-version',
728
+ functions: [
729
+ {
730
+ name: 'private_fn',
731
+ functionType: FunctionType.PRIVATE,
732
+ isOnlySelf: false,
733
+ isStatic: false,
734
+ isInitializer: true,
735
+ parameters: [
736
+ { name: 'first', type: { kind: 'field' }, visibility: 'private' },
737
+ { name: 'second', type: { kind: 'integer', sign: 'unsigned', width: 32 }, visibility: 'public' },
738
+ ],
739
+ returnTypes: [{ kind: 'boolean' }],
740
+ errorTypes: {
741
+ // Single entry. Exercises the non-empty `Record<string, AbiErrorType>` branch without depending on
742
+ // noir compiler output.
743
+ schema_test_error: { error_kind: 'string', string: 'fixed schema-test error' },
744
+ },
745
+ bytecode: Buffer.from([2, 3, 5, 7]),
746
+ debugSymbols: 'schema-fixture-debug',
747
+ },
748
+ ],
749
+ nonDispatchPublicFunctions: [
750
+ {
751
+ name: 'public_fn',
752
+ functionType: FunctionType.PUBLIC,
753
+ isOnlySelf: true,
754
+ isStatic: true,
755
+ isInitializer: false,
756
+ parameters: [],
757
+ returnTypes: [],
758
+ errorTypes: {},
759
+ },
760
+ ],
761
+ outputs: {
762
+ structs: { my_struct: [{ kind: 'field' }, { kind: 'boolean' }] },
763
+ globals: {},
764
+ },
765
+ storageLayout: { my_field: { slot: new Fr(11n) } },
766
+ fileMap: {
767
+ 1: {
768
+ source: 'schema fixture source',
769
+ path: 'src/schema_fixture.nr',
770
+ function_locations: [],
771
+ },
772
+ },
773
+ };
774
+ }