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

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 (422) hide show
  1. package/dest/access_scopes.d.ts +9 -0
  2. package/dest/access_scopes.d.ts.map +1 -0
  3. package/dest/access_scopes.js +6 -0
  4. package/dest/bin/check_oracle_version.d.ts +1 -1
  5. package/dest/bin/check_oracle_version.js +105 -15
  6. package/dest/block_synchronizer/block_synchronizer.d.ts +45 -0
  7. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
  8. package/dest/block_synchronizer/block_synchronizer.js +153 -0
  9. package/dest/block_synchronizer/index.d.ts +2 -0
  10. package/dest/block_synchronizer/index.d.ts.map +1 -0
  11. package/dest/block_synchronizer/index.js +1 -0
  12. package/dest/config/index.d.ts +6 -12
  13. package/dest/config/index.d.ts.map +1 -1
  14. package/dest/config/index.js +24 -13
  15. package/dest/config/package_info.d.ts +1 -1
  16. package/dest/config/package_info.js +1 -1
  17. package/dest/contract_function_simulator/benchmarked_node.d.ts +9 -0
  18. package/dest/contract_function_simulator/benchmarked_node.d.ts.map +1 -0
  19. package/dest/contract_function_simulator/benchmarked_node.js +77 -0
  20. package/dest/contract_function_simulator/contract_function_simulator.d.ts +78 -26
  21. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  22. package/dest/contract_function_simulator/contract_function_simulator.js +226 -82
  23. package/dest/contract_function_simulator/execution_note_cache.d.ts +25 -14
  24. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  25. package/dest/contract_function_simulator/execution_note_cache.js +59 -34
  26. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +6 -6
  27. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  28. package/dest/contract_function_simulator/execution_tagging_index_cache.js +4 -4
  29. package/dest/contract_function_simulator/hashed_values_cache.d.ts +2 -2
  30. package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -1
  31. package/dest/contract_function_simulator/index.d.ts +2 -2
  32. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  33. package/dest/contract_function_simulator/index.js +1 -1
  34. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +5 -4
  35. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  36. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +7 -4
  37. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +5 -4
  38. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  39. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +7 -6
  40. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +3 -3
  41. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  42. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +1 -1
  43. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +7 -5
  44. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  45. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +13 -4
  46. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +4 -10
  47. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  48. package/dest/contract_function_simulator/noir-structs/utility_context.js +7 -18
  49. package/dest/contract_function_simulator/oracle/index.d.ts +1 -1
  50. package/dest/contract_function_simulator/oracle/interfaces.d.ts +30 -20
  51. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  52. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +2 -2
  53. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  54. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -1
  55. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +14 -8
  56. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  57. package/dest/contract_function_simulator/oracle/note_packing_utils.js +16 -11
  58. package/dest/contract_function_simulator/oracle/oracle.d.ts +15 -12
  59. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  60. package/dest/contract_function_simulator/oracle/oracle.js +93 -53
  61. package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -27
  62. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  63. package/dest/contract_function_simulator/oracle/private_execution.js +2 -38
  64. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +56 -52
  65. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  66. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +120 -66
  67. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +114 -39
  68. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  69. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +214 -86
  70. package/dest/contract_function_simulator/pick_notes.d.ts +2 -2
  71. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  72. package/dest/contract_function_simulator/pick_notes.js +1 -1
  73. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
  74. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  75. package/dest/contract_function_simulator/proxied_contract_data_source.js +23 -5
  76. package/dest/contract_logging.d.ts +22 -0
  77. package/dest/contract_logging.d.ts.map +1 -0
  78. package/dest/contract_logging.js +23 -0
  79. package/dest/contract_sync/contract_sync_service.d.ts +43 -0
  80. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
  81. package/dest/contract_sync/contract_sync_service.js +97 -0
  82. package/dest/contract_sync/helpers.d.ts +29 -0
  83. package/dest/contract_sync/helpers.d.ts.map +1 -0
  84. package/dest/contract_sync/helpers.js +55 -0
  85. package/dest/debug/pxe_debug_utils.d.ts +45 -0
  86. package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
  87. package/dest/debug/pxe_debug_utils.js +48 -0
  88. package/dest/entrypoints/client/bundle/index.d.ts +4 -2
  89. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  90. package/dest/entrypoints/client/bundle/index.js +3 -1
  91. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  92. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  93. package/dest/entrypoints/client/bundle/utils.js +33 -10
  94. package/dest/entrypoints/client/lazy/index.d.ts +4 -2
  95. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  96. package/dest/entrypoints/client/lazy/index.js +3 -1
  97. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  98. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  99. package/dest/entrypoints/client/lazy/utils.js +34 -11
  100. package/dest/entrypoints/pxe_creation_options.d.ts +7 -3
  101. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  102. package/dest/entrypoints/server/index.d.ts +6 -2
  103. package/dest/entrypoints/server/index.d.ts.map +1 -1
  104. package/dest/entrypoints/server/index.js +5 -1
  105. package/dest/entrypoints/server/utils.d.ts +1 -1
  106. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  107. package/dest/entrypoints/server/utils.js +40 -28
  108. package/dest/error_enriching.d.ts +4 -4
  109. package/dest/error_enriching.d.ts.map +1 -1
  110. package/dest/error_enriching.js +6 -6
  111. package/dest/events/event_service.d.ts +15 -0
  112. package/dest/events/event_service.d.ts.map +1 -0
  113. package/dest/events/event_service.js +44 -0
  114. package/dest/events/index.d.ts +2 -0
  115. package/dest/events/index.d.ts.map +1 -0
  116. package/dest/events/index.js +1 -0
  117. package/dest/events/private_event_filter_validator.d.ts +9 -0
  118. package/dest/events/private_event_filter_validator.d.ts.map +1 -0
  119. package/dest/events/private_event_filter_validator.js +38 -0
  120. package/dest/job_coordinator/job_coordinator.d.ts +75 -0
  121. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
  122. package/dest/job_coordinator/job_coordinator.js +94 -0
  123. package/dest/logs/log_service.d.ts +29 -0
  124. package/dest/logs/log_service.d.ts.map +1 -0
  125. package/dest/logs/log_service.js +118 -0
  126. package/dest/notes/index.d.ts +2 -0
  127. package/dest/notes/index.d.ts.map +1 -0
  128. package/dest/notes/index.js +1 -0
  129. package/dest/notes/note_service.d.ts +49 -0
  130. package/dest/notes/note_service.d.ts.map +1 -0
  131. package/dest/notes/note_service.js +148 -0
  132. package/dest/notes_filter.d.ts +25 -0
  133. package/dest/notes_filter.d.ts.map +1 -0
  134. package/dest/notes_filter.js +4 -0
  135. package/dest/oracle_version.d.ts +3 -3
  136. package/dest/oracle_version.d.ts.map +1 -1
  137. package/dest/oracle_version.js +4 -3
  138. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  139. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  140. package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
  141. package/dest/private_kernel/hints/index.d.ts +3 -3
  142. package/dest/private_kernel/hints/index.d.ts.map +1 -1
  143. package/dest/private_kernel/hints/index.js +2 -2
  144. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +29 -0
  145. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
  146. package/dest/private_kernel/hints/{build_private_kernel_reset_private_inputs.js → private_kernel_reset_private_inputs_builder.js} +144 -77
  147. package/dest/private_kernel/hints/test_utils.d.ts +122 -0
  148. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
  149. package/dest/private_kernel/hints/test_utils.js +203 -0
  150. package/dest/private_kernel/index.d.ts +1 -1
  151. package/dest/private_kernel/private_kernel_execution_prover.d.ts +3 -2
  152. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  153. package/dest/private_kernel/private_kernel_execution_prover.js +33 -25
  154. package/dest/private_kernel/private_kernel_oracle.d.ts +26 -25
  155. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  156. package/dest/private_kernel/private_kernel_oracle.js +94 -2
  157. package/dest/pxe.d.ts +121 -103
  158. package/dest/pxe.d.ts.map +1 -1
  159. package/dest/pxe.js +268 -279
  160. package/dest/storage/address_store/address_store.d.ts +11 -0
  161. package/dest/storage/address_store/address_store.d.ts.map +1 -0
  162. package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +13 -12
  163. package/dest/storage/address_store/index.d.ts +2 -0
  164. package/dest/storage/address_store/index.d.ts.map +1 -0
  165. package/dest/storage/address_store/index.js +1 -0
  166. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +17 -0
  167. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
  168. package/dest/storage/{sync_data_provider/sync_data_provider.js → anchor_block_store/anchor_block_store.js} +10 -10
  169. package/dest/storage/anchor_block_store/index.d.ts +2 -0
  170. package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
  171. package/dest/storage/anchor_block_store/index.js +1 -0
  172. package/dest/storage/capsule_store/capsule_store.d.ts +72 -0
  173. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  174. package/dest/storage/capsule_store/capsule_store.js +253 -0
  175. package/dest/storage/capsule_store/index.d.ts +2 -0
  176. package/dest/storage/capsule_store/index.d.ts.map +1 -0
  177. package/dest/storage/capsule_store/index.js +1 -0
  178. package/dest/storage/contract_store/contract_store.d.ts +93 -0
  179. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  180. package/dest/storage/contract_store/contract_store.js +309 -0
  181. package/dest/storage/contract_store/index.d.ts +2 -0
  182. package/dest/storage/contract_store/index.d.ts.map +1 -0
  183. package/dest/storage/contract_store/index.js +1 -0
  184. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
  185. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  186. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +1 -1
  187. package/dest/storage/index.d.ts +8 -8
  188. package/dest/storage/index.d.ts.map +1 -1
  189. package/dest/storage/index.js +7 -7
  190. package/dest/storage/metadata.d.ts +2 -2
  191. package/dest/storage/metadata.js +1 -1
  192. package/dest/storage/note_store/index.d.ts +3 -0
  193. package/dest/storage/note_store/index.d.ts.map +1 -0
  194. package/dest/storage/note_store/index.js +2 -0
  195. package/dest/storage/note_store/note_store.d.ts +83 -0
  196. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  197. package/dest/storage/note_store/note_store.js +343 -0
  198. package/dest/storage/note_store/stored_note.d.ts +16 -0
  199. package/dest/storage/note_store/stored_note.d.ts.map +1 -0
  200. package/dest/storage/note_store/stored_note.js +43 -0
  201. package/dest/storage/private_event_store/private_event_store.d.ts +91 -0
  202. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  203. package/dest/storage/private_event_store/private_event_store.js +273 -0
  204. package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
  205. package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
  206. package/dest/storage/private_event_store/stored_private_event.js +56 -0
  207. package/dest/storage/tagging_store/index.d.ts +4 -0
  208. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  209. package/dest/storage/tagging_store/index.js +3 -0
  210. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +28 -0
  211. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  212. package/dest/storage/tagging_store/recipient_tagging_store.js +111 -0
  213. package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
  214. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
  215. package/dest/storage/tagging_store/sender_address_book_store.js +36 -0
  216. package/dest/storage/tagging_store/sender_tagging_store.d.ts +77 -0
  217. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  218. package/dest/storage/tagging_store/sender_tagging_store.js +348 -0
  219. package/dest/tagging/constants.d.ts +2 -2
  220. package/dest/tagging/constants.d.ts.map +1 -1
  221. package/dest/tagging/constants.js +10 -2
  222. package/dest/tagging/get_all_logs_by_tags.d.ts +24 -0
  223. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
  224. package/dest/tagging/get_all_logs_by_tags.js +60 -0
  225. package/dest/tagging/index.d.ts +16 -6
  226. package/dest/tagging/index.d.ts.map +1 -1
  227. package/dest/tagging/index.js +15 -5
  228. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +14 -0
  229. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -0
  230. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +99 -0
  231. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
  232. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
  233. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
  234. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +14 -0
  235. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -0
  236. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +33 -0
  237. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +17 -0
  238. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  239. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +71 -0
  240. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +11 -0
  241. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
  242. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +29 -0
  243. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +18 -0
  244. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  245. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +59 -0
  246. package/package.json +29 -19
  247. package/src/access_scopes.ts +9 -0
  248. package/src/bin/check_oracle_version.ts +131 -20
  249. package/src/block_synchronizer/block_synchronizer.ts +178 -0
  250. package/src/block_synchronizer/index.ts +1 -0
  251. package/src/config/index.ts +24 -25
  252. package/src/config/package_info.ts +1 -1
  253. package/src/contract_function_simulator/benchmarked_node.ts +103 -0
  254. package/src/contract_function_simulator/contract_function_simulator.ts +396 -116
  255. package/src/contract_function_simulator/execution_note_cache.ts +58 -28
  256. package/src/contract_function_simulator/execution_tagging_index_cache.ts +6 -6
  257. package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
  258. package/src/contract_function_simulator/index.ts +1 -1
  259. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +7 -3
  260. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +6 -5
  261. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +2 -2
  262. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +15 -3
  263. package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
  264. package/src/contract_function_simulator/oracle/interfaces.ts +43 -18
  265. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +1 -1
  266. package/src/contract_function_simulator/oracle/note_packing_utils.ts +30 -14
  267. package/src/contract_function_simulator/oracle/oracle.ts +111 -49
  268. package/src/contract_function_simulator/oracle/private_execution.ts +2 -68
  269. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +166 -98
  270. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +350 -91
  271. package/src/contract_function_simulator/pick_notes.ts +1 -1
  272. package/src/contract_function_simulator/proxied_contract_data_source.ts +24 -7
  273. package/src/contract_logging.ts +39 -0
  274. package/src/contract_sync/contract_sync_service.ts +152 -0
  275. package/src/contract_sync/helpers.ts +98 -0
  276. package/src/debug/pxe_debug_utils.ts +93 -0
  277. package/src/entrypoints/client/bundle/index.ts +3 -1
  278. package/src/entrypoints/client/bundle/utils.ts +25 -18
  279. package/src/entrypoints/client/lazy/index.ts +3 -1
  280. package/src/entrypoints/client/lazy/utils.ts +26 -19
  281. package/src/entrypoints/pxe_creation_options.ts +6 -2
  282. package/src/entrypoints/server/index.ts +5 -1
  283. package/src/entrypoints/server/utils.ts +34 -56
  284. package/src/error_enriching.ts +7 -15
  285. package/src/events/event_service.ts +71 -0
  286. package/src/events/index.ts +1 -0
  287. package/src/events/private_event_filter_validator.ts +46 -0
  288. package/src/job_coordinator/job_coordinator.ts +150 -0
  289. package/src/logs/log_service.ts +213 -0
  290. package/src/notes/index.ts +1 -0
  291. package/src/notes/note_service.ts +196 -0
  292. package/src/notes_filter.ts +26 -0
  293. package/src/oracle_version.ts +4 -3
  294. package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
  295. package/src/private_kernel/hints/index.ts +2 -2
  296. package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +199 -145
  297. package/src/private_kernel/hints/test_utils.ts +325 -0
  298. package/src/private_kernel/private_kernel_execution_prover.ts +38 -34
  299. package/src/private_kernel/private_kernel_oracle.ts +118 -37
  300. package/src/pxe.ts +410 -382
  301. package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +16 -16
  302. package/src/storage/address_store/index.ts +1 -0
  303. package/src/storage/{sync_data_provider/sync_data_provider.ts → anchor_block_store/anchor_block_store.ts} +10 -11
  304. package/src/storage/anchor_block_store/index.ts +1 -0
  305. package/src/storage/capsule_store/capsule_store.ts +315 -0
  306. package/src/storage/capsule_store/index.ts +1 -0
  307. package/src/storage/contract_store/contract_store.ts +429 -0
  308. package/src/storage/contract_store/index.ts +1 -0
  309. package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +1 -1
  310. package/src/storage/index.ts +7 -7
  311. package/src/storage/metadata.ts +1 -1
  312. package/src/storage/note_store/index.ts +2 -0
  313. package/src/storage/note_store/note_store.ts +418 -0
  314. package/src/storage/note_store/stored_note.ts +48 -0
  315. package/src/storage/private_event_store/private_event_store.ts +384 -0
  316. package/src/storage/private_event_store/stored_private_event.ts +73 -0
  317. package/src/storage/tagging_store/index.ts +3 -0
  318. package/src/storage/tagging_store/recipient_tagging_store.ts +143 -0
  319. package/src/storage/tagging_store/sender_address_book_store.ts +48 -0
  320. package/src/storage/tagging_store/sender_tagging_store.ts +429 -0
  321. package/src/tagging/constants.ts +10 -2
  322. package/src/tagging/get_all_logs_by_tags.ts +92 -0
  323. package/src/tagging/index.ts +18 -5
  324. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +140 -0
  325. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
  326. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +44 -0
  327. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +94 -0
  328. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +36 -0
  329. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +75 -0
  330. package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -274
  331. package/dest/contract_function_simulator/execution_data_provider.d.ts.map +0 -1
  332. package/dest/contract_function_simulator/execution_data_provider.js +0 -14
  333. package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
  334. package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
  335. package/dest/contract_function_simulator/proxied_node.js +0 -27
  336. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +0 -122
  337. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
  338. package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -701
  339. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
  340. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
  341. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
  342. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
  343. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -45
  344. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
  345. package/dest/private_kernel/private_kernel_oracle_impl.js +0 -86
  346. package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
  347. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
  348. package/dest/storage/address_data_provider/index.d.ts +0 -2
  349. package/dest/storage/address_data_provider/index.d.ts.map +0 -1
  350. package/dest/storage/address_data_provider/index.js +0 -1
  351. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -25
  352. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
  353. package/dest/storage/capsule_data_provider/capsule_data_provider.js +0 -118
  354. package/dest/storage/capsule_data_provider/index.d.ts +0 -2
  355. package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
  356. package/dest/storage/capsule_data_provider/index.js +0 -1
  357. package/dest/storage/contract_data_provider/contract_data_provider.d.ts +0 -74
  358. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
  359. package/dest/storage/contract_data_provider/contract_data_provider.js +0 -205
  360. package/dest/storage/contract_data_provider/index.d.ts +0 -2
  361. package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
  362. package/dest/storage/contract_data_provider/index.js +0 -1
  363. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
  364. package/dest/storage/note_data_provider/index.d.ts +0 -3
  365. package/dest/storage/note_data_provider/index.d.ts.map +0 -1
  366. package/dest/storage/note_data_provider/index.js +0 -2
  367. package/dest/storage/note_data_provider/note_dao.d.ts +0 -100
  368. package/dest/storage/note_data_provider/note_dao.d.ts.map +0 -1
  369. package/dest/storage/note_data_provider/note_dao.js +0 -102
  370. package/dest/storage/note_data_provider/note_data_provider.d.ts +0 -83
  371. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
  372. package/dest/storage/note_data_provider/note_data_provider.js +0 -308
  373. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -43
  374. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
  375. package/dest/storage/private_event_data_provider/private_event_data_provider.js +0 -104
  376. package/dest/storage/sync_data_provider/index.d.ts +0 -2
  377. package/dest/storage/sync_data_provider/index.d.ts.map +0 -1
  378. package/dest/storage/sync_data_provider/index.js +0 -1
  379. package/dest/storage/sync_data_provider/sync_data_provider.d.ts +0 -10
  380. package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
  381. package/dest/storage/tagging_data_provider/index.d.ts +0 -2
  382. package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
  383. package/dest/storage/tagging_data_provider/index.js +0 -1
  384. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +0 -40
  385. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +0 -1
  386. package/dest/storage/tagging_data_provider/tagging_data_provider.js +0 -89
  387. package/dest/synchronizer/index.d.ts +0 -2
  388. package/dest/synchronizer/index.d.ts.map +0 -1
  389. package/dest/synchronizer/index.js +0 -1
  390. package/dest/synchronizer/synchronizer.d.ts +0 -35
  391. package/dest/synchronizer/synchronizer.d.ts.map +0 -1
  392. package/dest/synchronizer/synchronizer.js +0 -101
  393. package/dest/tagging/siloed_tag.d.ts +0 -14
  394. package/dest/tagging/siloed_tag.d.ts.map +0 -1
  395. package/dest/tagging/siloed_tag.js +0 -20
  396. package/dest/tagging/tag.d.ts +0 -12
  397. package/dest/tagging/tag.d.ts.map +0 -1
  398. package/dest/tagging/tag.js +0 -17
  399. package/dest/tagging/utils.d.ts +0 -18
  400. package/dest/tagging/utils.d.ts.map +0 -1
  401. package/dest/tagging/utils.js +0 -24
  402. package/src/contract_function_simulator/execution_data_provider.ts +0 -343
  403. package/src/contract_function_simulator/proxied_node.ts +0 -33
  404. package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1019
  405. package/src/private_kernel/private_kernel_oracle_impl.ts +0 -132
  406. package/src/storage/address_data_provider/index.ts +0 -1
  407. package/src/storage/capsule_data_provider/capsule_data_provider.ts +0 -147
  408. package/src/storage/capsule_data_provider/index.ts +0 -1
  409. package/src/storage/contract_data_provider/contract_data_provider.ts +0 -294
  410. package/src/storage/contract_data_provider/index.ts +0 -1
  411. package/src/storage/note_data_provider/index.ts +0 -2
  412. package/src/storage/note_data_provider/note_dao.ts +0 -154
  413. package/src/storage/note_data_provider/note_data_provider.ts +0 -393
  414. package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -148
  415. package/src/storage/sync_data_provider/index.ts +0 -1
  416. package/src/storage/tagging_data_provider/index.ts +0 -1
  417. package/src/storage/tagging_data_provider/tagging_data_provider.ts +0 -120
  418. package/src/synchronizer/index.ts +0 -1
  419. package/src/synchronizer/synchronizer.ts +0 -120
  420. package/src/tagging/siloed_tag.ts +0 -22
  421. package/src/tagging/tag.ts +0 -16
  422. package/src/tagging/utils.ts +0 -31
@@ -4,14 +4,9 @@ import { padArrayEnd } from '@aztec/foundation/collection';
4
4
  import { assertLength } from '@aztec/foundation/serialize';
5
5
  import { MembershipWitness } from '@aztec/foundation/trees';
6
6
  import { privateKernelResetDimensionsConfig } from '@aztec/noir-protocol-circuits-types/client';
7
- import { KeyValidationHint, PaddedSideEffects, PrivateKernelData, PrivateKernelResetCircuitPrivateInputs, PrivateKernelResetDimensions, PrivateKernelResetHints, ReadRequestActionEnum, ReadRequestResetActions, ScopedNoteHash, ScopedNullifier, ScopedReadRequest, TransientDataSquashingHint, buildNoteHashReadRequestHintsFromResetActions, buildNullifierReadRequestHintsFromResetActions, buildTransientDataHints, findPrivateKernelResetDimensions, getNoteHashReadRequestResetActions, getNullifierReadRequestResetActions, privateKernelResetDimensionNames } from '@aztec/stdlib/kernel';
7
+ import { KeyValidationHint, PaddedSideEffects, PrivateKernelData, PrivateKernelResetCircuitPrivateInputs, PrivateKernelResetDimensions, PrivateKernelResetHints, ReadRequestActionEnum, ReadRequestResetActions, TransientDataSquashingHint, buildNoteHashReadRequestHintsFromResetActions, buildNullifierReadRequestHintsFromResetActions, buildTransientDataHints, countSquashedLogs, findPrivateKernelResetDimensions, getNoteHashReadRequestResetActions, getNullifierReadRequestResetActions, privateKernelResetDimensionNames } from '@aztec/stdlib/kernel';
8
8
  import { collectNested } from '@aztec/stdlib/tx';
9
9
  import { VkData } from '@aztec/stdlib/vks';
10
- function collectNestedReadRequests(executionStack, extractReadRequests) {
11
- return collectNested(executionStack, (executionResult)=>{
12
- return extractReadRequests(executionResult).getActiveItems().map((readRequest)=>new ScopedReadRequest(readRequest, executionResult.publicInputs.callContext.contractAddress));
13
- });
14
- }
15
10
  function getNullifierMembershipWitnessResolver(oracle) {
16
11
  return async (nullifier)=>{
17
12
  const res = await oracle.getNullifierMembershipWitness(nullifier);
@@ -25,7 +20,7 @@ function getNullifierMembershipWitnessResolver(oracle) {
25
20
  };
26
21
  };
27
22
  }
28
- async function getMasterSecretKeysAndAppKeyGenerators(keyValidationRequests, numRequestsToVerify, oracle) {
23
+ async function getMasterSecretKeysAndKeyTypeDomainSeparators(keyValidationRequests, numRequestsToVerify, oracle) {
29
24
  const numRequestsToProcess = Math.min(keyValidationRequests.claimedLength, numRequestsToVerify);
30
25
  const keysHints = await Promise.all(keyValidationRequests.array.slice(0, numRequestsToProcess).map(async ({ request })=>{
31
26
  const secretKeys = await oracle.getMasterSecretKey(request.request.pkM);
@@ -37,7 +32,7 @@ export class PrivateKernelResetPrivateInputsBuilder {
37
32
  previousKernelOutput;
38
33
  executionStack;
39
34
  noteHashNullifierCounterMap;
40
- validationRequestsSplitCounter;
35
+ splitCounter;
41
36
  previousKernel;
42
37
  // If there's no next iteration, it's the final reset.
43
38
  nextIteration;
@@ -46,23 +41,26 @@ export class PrivateKernelResetPrivateInputsBuilder {
46
41
  numTransientData;
47
42
  transientDataSquashingHints;
48
43
  requestedDimensions;
49
- constructor(previousKernelOutput, executionStack, noteHashNullifierCounterMap, validationRequestsSplitCounter){
44
+ constructor(previousKernelOutput, executionStack, noteHashNullifierCounterMap, splitCounter){
50
45
  this.previousKernelOutput = previousKernelOutput;
51
46
  this.executionStack = executionStack;
52
47
  this.noteHashNullifierCounterMap = noteHashNullifierCounterMap;
53
- this.validationRequestsSplitCounter = validationRequestsSplitCounter;
54
- this.previousKernel = previousKernelOutput.publicInputs;
55
- this.requestedDimensions = PrivateKernelResetDimensions.empty();
48
+ this.splitCounter = splitCounter;
56
49
  this.noteHashResetActions = ReadRequestResetActions.empty(MAX_NOTE_HASH_READ_REQUESTS_PER_TX);
57
50
  this.nullifierResetActions = ReadRequestResetActions.empty(MAX_NULLIFIER_READ_REQUESTS_PER_TX);
58
51
  this.transientDataSquashingHints = makeTuple(MAX_NULLIFIERS_PER_TX, ()=>new TransientDataSquashingHint(MAX_NULLIFIERS_PER_TX, MAX_NOTE_HASHES_PER_TX));
52
+ this.requestedDimensions = PrivateKernelResetDimensions.empty();
53
+ this.previousKernel = previousKernelOutput.publicInputs;
59
54
  this.nextIteration = executionStack[this.executionStack.length - 1]?.publicInputs;
60
55
  }
56
+ getRequestedDimensions() {
57
+ return this.requestedDimensions;
58
+ }
61
59
  needsReset() {
62
60
  const fns = [
63
61
  ()=>this.needsResetNoteHashReadRequests(),
64
62
  ()=>this.needsResetNullifierReadRequests(),
65
- ()=>this.needsResetNullifierKeys(),
63
+ ()=>this.needsResetKeyValidationRequests(),
66
64
  ()=>this.needsResetTransientData()
67
65
  ];
68
66
  if (this.nextIteration) {
@@ -82,26 +80,31 @@ export class PrivateKernelResetPrivateInputsBuilder {
82
80
  return result.some((r)=>r);
83
81
  }
84
82
  }
85
- async build(oracle, noteHashLeafIndexMap) {
83
+ async build(oracle) {
86
84
  if (privateKernelResetDimensionNames.every((name)=>!this.requestedDimensions[name])) {
87
85
  throw new Error('Reset is not required.');
88
86
  }
89
87
  const isInner = !!this.nextIteration;
90
- // "final" reset must be done at most once.
91
- // Because the code that silo note hashes can't be run repeatedly.
88
+ // "final" reset must be done exactly once, because siloing can't be run repeatedly.
92
89
  // The dimensions found must be big enough to reset all values, i.e. empty remainder.
93
90
  const allowRemainder = isInner;
94
91
  const dimensions = findPrivateKernelResetDimensions(this.requestedDimensions, privateKernelResetDimensionsConfig, isInner, allowRemainder);
95
- const previousVkMembershipWitness = await oracle.getVkMembershipWitness(this.previousKernelOutput.verificationKey.keyAsFields);
96
- const vkData = new VkData(this.previousKernelOutput.verificationKey, Number(previousVkMembershipWitness.leafIndex), previousVkMembershipWitness.siblingPath);
97
- const previousKernelData = new PrivateKernelData(this.previousKernelOutput.publicInputs, vkData);
98
92
  this.reduceReadRequestActions(this.noteHashResetActions, dimensions.NOTE_HASH_PENDING_READ, dimensions.NOTE_HASH_SETTLED_READ);
99
93
  this.reduceReadRequestActions(this.nullifierResetActions, dimensions.NULLIFIER_PENDING_READ, dimensions.NULLIFIER_SETTLED_READ);
94
+ // Execute all the expensive node querying operations in parallel.
95
+ const [previousVkMembershipWitness, noteHashReadRequestHints, nullifierReadRequestHints, keyValidationHints] = await Promise.all([
96
+ oracle.getVkMembershipWitness(this.previousKernelOutput.verificationKey.keyAsFields),
97
+ buildNoteHashReadRequestHintsFromResetActions(oracle, this.previousKernel.validationRequests.noteHashReadRequests, this.previousKernel.end.noteHashes, this.noteHashResetActions),
98
+ buildNullifierReadRequestHintsFromResetActions({
99
+ getNullifierMembershipWitness: getNullifierMembershipWitnessResolver(oracle)
100
+ }, this.previousKernel.validationRequests.nullifierReadRequests, this.nullifierResetActions),
101
+ getMasterSecretKeysAndKeyTypeDomainSeparators(this.previousKernel.validationRequests.scopedKeyValidationRequestsAndSeparators, dimensions.KEY_VALIDATION, oracle)
102
+ ]);
103
+ const vkData = new VkData(this.previousKernelOutput.verificationKey, Number(previousVkMembershipWitness.leafIndex), previousVkMembershipWitness.siblingPath);
104
+ const previousKernelData = new PrivateKernelData(this.previousKernelOutput.publicInputs, vkData);
100
105
  // TODO: Enable padding when we have a better idea what are the final amounts we should pad to.
101
106
  const paddedSideEffects = PaddedSideEffects.empty();
102
- return new PrivateKernelResetCircuitPrivateInputs(previousKernelData, paddedSideEffects, new PrivateKernelResetHints(await buildNoteHashReadRequestHintsFromResetActions(oracle, this.previousKernel.validationRequests.noteHashReadRequests, this.previousKernel.end.noteHashes, this.noteHashResetActions, noteHashLeafIndexMap), await buildNullifierReadRequestHintsFromResetActions({
103
- getNullifierMembershipWitness: getNullifierMembershipWitnessResolver(oracle)
104
- }, this.previousKernel.validationRequests.nullifierReadRequests, this.nullifierResetActions), await getMasterSecretKeysAndAppKeyGenerators(this.previousKernel.validationRequests.scopedKeyValidationRequestsAndGenerators, dimensions.KEY_VALIDATION, oracle), this.transientDataSquashingHints, this.validationRequestsSplitCounter), dimensions);
107
+ return new PrivateKernelResetCircuitPrivateInputs(previousKernelData, paddedSideEffects, new PrivateKernelResetHints(noteHashReadRequestHints, nullifierReadRequestHints, keyValidationHints, this.transientDataSquashingHints), dimensions);
105
108
  }
106
109
  reduceReadRequestActions(resetActions, maxPending, maxSettled) {
107
110
  let numPending = 0;
@@ -124,69 +127,112 @@ export class PrivateKernelResetPrivateInputsBuilder {
124
127
  }
125
128
  resetActions.pendingReadHints = resetActions.pendingReadHints.slice(0, maxPending);
126
129
  }
127
- needsResetNoteHashReadRequests(forceResetAll = false) {
130
+ needsResetNoteHashReadRequests(forceReset = false) {
128
131
  const numCurr = this.previousKernel.validationRequests.noteHashReadRequests.claimedLength;
129
132
  const numNext = this.nextIteration ? this.nextIteration.noteHashReadRequests.claimedLength : 0;
130
- const maxAmountToKeep = !this.nextIteration || forceResetAll ? 0 : MAX_NOTE_HASH_READ_REQUESTS_PER_TX;
133
+ const maxAmountToKeep = !this.nextIteration || forceReset ? 0 : MAX_NOTE_HASH_READ_REQUESTS_PER_TX;
131
134
  if (numCurr + numNext <= maxAmountToKeep) {
132
135
  return false;
133
136
  }
134
- const futureNoteHashes = collectNested(this.executionStack, (executionResult)=>{
135
- return executionResult.publicInputs.noteHashes.getActiveItems().map((noteHash)=>new ScopedNoteHash(noteHash, executionResult.publicInputs.callContext.contractAddress));
136
- });
137
- const resetActions = getNoteHashReadRequestResetActions(this.previousKernel.validationRequests.noteHashReadRequests, this.previousKernel.end.noteHashes, futureNoteHashes);
137
+ const resetActions = getNoteHashReadRequestResetActions(this.previousKernel.validationRequests.noteHashReadRequests, this.previousKernel.end.noteHashes);
138
138
  const numPendingReads = resetActions.pendingReadHints.length;
139
139
  const numSettledReads = resetActions.actions.reduce((accum, action)=>accum + (action === ReadRequestActionEnum.READ_AS_SETTLED ? 1 : 0), 0);
140
+ const totalReadsToReset = numPendingReads + numSettledReads;
141
+ const minResetNeeded = numCurr + numNext - maxAmountToKeep;
142
+ if (totalReadsToReset < minResetNeeded) {
143
+ if (!this.nextIteration) {
144
+ // In the final reset, all note hashes have been emitted. So if we can't reset all requests, at least one
145
+ // pending read request doesn't match any of them.
146
+ throw new Error('No matching note hash found for note hash read request.');
147
+ } else if (!forceReset) {
148
+ // A pending read request can only be reset if its note hash has already been included (e.g. a parent call might
149
+ // be reading a note hash emitted by a child call. The read request of the parent call is included before the note
150
+ // hash of the child call).
151
+ // If we can't clear enough read requests to make room for the next iteration's reads, we're stuck.
152
+ throw new Error('Number of note hash read requests exceeds the limit.');
153
+ } else if (totalReadsToReset == 0) {
154
+ // It's transient data squashing asking for the read requests to be reset first (forceReset == true), and
155
+ // there's nothing to reset, returns false and let needsResetTransientData throw a more descriptive error.
156
+ return false;
157
+ }
158
+ // Otherwise, forceReset is true, we should proceed to reset as many as we can.
159
+ }
140
160
  if (!this.nextIteration) {
161
+ // If there's no next iteration, we need to reset all the read requests.
141
162
  this.noteHashResetActions = resetActions;
142
163
  this.requestedDimensions.NOTE_HASH_PENDING_READ = numPendingReads;
143
164
  this.requestedDimensions.NOTE_HASH_SETTLED_READ = numSettledReads;
144
165
  } else {
145
- // Pick only one dimension to reset if next iteration is not empty.
166
+ // If there's a next iteration, only one dimension can be reset at a time.
167
+ // So we pick the dimension that has more read requests to reset.
146
168
  if (numPendingReads > numSettledReads) {
169
+ // Reset the pending read requests.
170
+ const pendingOnlyActions = assertLength(resetActions.actions.map((action)=>action === ReadRequestActionEnum.READ_AS_PENDING ? action : ReadRequestActionEnum.SKIP), MAX_NOTE_HASH_READ_REQUESTS_PER_TX);
171
+ this.noteHashResetActions = new ReadRequestResetActions(pendingOnlyActions, resetActions.pendingReadHints);
147
172
  this.requestedDimensions.NOTE_HASH_PENDING_READ = numPendingReads;
148
- this.noteHashResetActions.actions = assertLength(resetActions.actions.map((action)=>action === ReadRequestActionEnum.READ_AS_PENDING ? action : ReadRequestActionEnum.SKIP), MAX_NOTE_HASH_READ_REQUESTS_PER_TX);
149
- this.noteHashResetActions.pendingReadHints = resetActions.pendingReadHints;
150
173
  } else {
174
+ // Reset the settled read requests.
175
+ const settledOnlyActions = assertLength(resetActions.actions.map((action)=>action === ReadRequestActionEnum.READ_AS_SETTLED ? action : ReadRequestActionEnum.SKIP), MAX_NOTE_HASH_READ_REQUESTS_PER_TX);
176
+ this.noteHashResetActions = new ReadRequestResetActions(settledOnlyActions, []);
151
177
  this.requestedDimensions.NOTE_HASH_SETTLED_READ = numSettledReads;
152
- this.noteHashResetActions.actions = assertLength(resetActions.actions.map((action)=>action === ReadRequestActionEnum.READ_AS_SETTLED ? action : ReadRequestActionEnum.SKIP), MAX_NOTE_HASH_READ_REQUESTS_PER_TX);
153
178
  }
154
179
  }
155
180
  return true;
156
181
  }
157
- needsResetNullifierReadRequests(forceResetAll = false) {
182
+ needsResetNullifierReadRequests(forceReset = false) {
158
183
  const numCurr = this.previousKernel.validationRequests.nullifierReadRequests.claimedLength;
159
184
  const numNext = this.nextIteration ? this.nextIteration.nullifierReadRequests.claimedLength : 0;
160
- const maxAmountToKeep = !this.nextIteration || forceResetAll ? 0 : MAX_NULLIFIER_READ_REQUESTS_PER_TX;
185
+ const maxAmountToKeep = !this.nextIteration || forceReset ? 0 : MAX_NULLIFIER_READ_REQUESTS_PER_TX;
161
186
  if (numCurr + numNext <= maxAmountToKeep) {
162
187
  return false;
163
188
  }
164
- const futureNullifiers = collectNested(this.executionStack, (executionResult)=>{
165
- return executionResult.publicInputs.nullifiers.getActiveItems().map((nullifier)=>new ScopedNullifier(nullifier, executionResult.publicInputs.callContext.contractAddress));
166
- });
167
- const resetActions = getNullifierReadRequestResetActions(this.previousKernel.validationRequests.nullifierReadRequests, this.previousKernel.end.nullifiers, futureNullifiers);
189
+ const resetActions = getNullifierReadRequestResetActions(this.previousKernel.validationRequests.nullifierReadRequests, this.previousKernel.end.nullifiers);
168
190
  const numPendingReads = resetActions.pendingReadHints.length;
169
191
  const numSettledReads = resetActions.actions.reduce((accum, action)=>accum + (action === ReadRequestActionEnum.READ_AS_SETTLED ? 1 : 0), 0);
192
+ const totalReadsToReset = numPendingReads + numSettledReads;
193
+ const minResetNeeded = numCurr + numNext - maxAmountToKeep;
194
+ if (totalReadsToReset < minResetNeeded) {
195
+ if (!this.nextIteration) {
196
+ // In the final reset, all nullifiers have been emitted. So if we can't reset all requests, at least one pending
197
+ // read request doesn't match any of them.
198
+ throw new Error('No matching nullifier found for nullifier read request.');
199
+ } else if (!forceReset) {
200
+ // A pending read request can only be reset if its nullifier has already been included (e.g. a parent call might
201
+ // be reading a nullifier emitted by a child call. The read request of the parent call is included before the
202
+ // nullifier of the child call).
203
+ // If we can't clear enough read requests to make room for the next iteration's reads, we're stuck.
204
+ throw new Error('Number of nullifier read requests exceeds the limit.');
205
+ } else if (totalReadsToReset == 0) {
206
+ // It's transient data squashing asking for the read requests to be reset first (forceReset == true), and
207
+ // there's nothing to reset, returns false and let needsResetTransientData throw a more descriptive error.
208
+ return false;
209
+ }
210
+ // Otherwise, forceReset is true, we should proceed to reset as many as we can.
211
+ }
170
212
  if (!this.nextIteration) {
213
+ // If there's no next iteration, we need to reset all the read requests.
171
214
  this.nullifierResetActions = resetActions;
172
215
  this.requestedDimensions.NULLIFIER_PENDING_READ = numPendingReads;
173
216
  this.requestedDimensions.NULLIFIER_SETTLED_READ = numSettledReads;
174
217
  } else {
175
- // Pick only one dimension to reset if next iteration is not empty.
218
+ // If there's a next iteration, we can only reset one dimension at a time.
176
219
  if (numPendingReads > numSettledReads) {
220
+ // Reset the pending read requests.
221
+ const pendingOnlyActions = assertLength(resetActions.actions.map((action)=>action === ReadRequestActionEnum.READ_AS_PENDING ? action : ReadRequestActionEnum.SKIP), MAX_NULLIFIER_READ_REQUESTS_PER_TX);
222
+ this.nullifierResetActions = new ReadRequestResetActions(pendingOnlyActions, resetActions.pendingReadHints);
177
223
  this.requestedDimensions.NULLIFIER_PENDING_READ = numPendingReads;
178
- this.nullifierResetActions.actions = assertLength(resetActions.actions.map((action)=>action === ReadRequestActionEnum.READ_AS_PENDING ? action : ReadRequestActionEnum.SKIP), MAX_NULLIFIER_READ_REQUESTS_PER_TX);
179
- this.nullifierResetActions.pendingReadHints = resetActions.pendingReadHints;
180
224
  } else {
225
+ // Reset the settled read requests.
226
+ const settledOnlyActions = assertLength(resetActions.actions.map((action)=>action === ReadRequestActionEnum.READ_AS_SETTLED ? action : ReadRequestActionEnum.SKIP), MAX_NULLIFIER_READ_REQUESTS_PER_TX);
227
+ this.nullifierResetActions = new ReadRequestResetActions(settledOnlyActions, []);
181
228
  this.requestedDimensions.NULLIFIER_SETTLED_READ = numSettledReads;
182
- this.nullifierResetActions.actions = assertLength(resetActions.actions.map((action)=>action === ReadRequestActionEnum.READ_AS_SETTLED ? action : ReadRequestActionEnum.SKIP), MAX_NULLIFIER_READ_REQUESTS_PER_TX);
183
229
  }
184
230
  }
185
231
  return true;
186
232
  }
187
- needsResetNullifierKeys() {
188
- const numCurr = this.previousKernel.validationRequests.scopedKeyValidationRequestsAndGenerators.claimedLength;
189
- const numNext = this.nextIteration ? this.nextIteration.keyValidationRequestsAndGenerators.claimedLength : 0;
233
+ needsResetKeyValidationRequests() {
234
+ const numCurr = this.previousKernel.validationRequests.scopedKeyValidationRequestsAndSeparators.claimedLength;
235
+ const numNext = this.nextIteration ? this.nextIteration.keyValidationRequestsAndSeparators.claimedLength : 0;
190
236
  const maxAmountToKeep = !this.nextIteration ? 0 : MAX_KEY_VALIDATION_REQUESTS_PER_TX;
191
237
  if (numCurr + numNext <= maxAmountToKeep) {
192
238
  return false;
@@ -195,8 +241,6 @@ export class PrivateKernelResetPrivateInputsBuilder {
195
241
  return true;
196
242
  }
197
243
  needsResetTransientData() {
198
- // Initialize this to 0 so that needsSilo can be run.
199
- this.numTransientData = 0;
200
244
  const nextAccumNoteHashes = this.previousKernel.end.noteHashes.claimedLength + (this.nextIteration?.noteHashes.claimedLength ?? 0);
201
245
  const noteHashWillOverflow = nextAccumNoteHashes > MAX_NOTE_HASHES_PER_TX;
202
246
  const nextAccumNullifiers = this.previousKernel.end.nullifiers.claimedLength + (this.nextIteration?.nullifiers.claimedLength ?? 0);
@@ -206,27 +250,45 @@ export class PrivateKernelResetPrivateInputsBuilder {
206
250
  if (this.nextIteration && !noteHashWillOverflow && !nullifierWillOverflow && !logsWillOverflow) {
207
251
  return false;
208
252
  }
209
- const futureNoteHashReads = collectNestedReadRequests(this.executionStack, (executionResult)=>executionResult.publicInputs.noteHashReadRequests);
210
- const futureNullifierReads = collectNestedReadRequests(this.executionStack, (executionResult)=>executionResult.publicInputs.nullifierReadRequests);
211
- // TODO(#15902): Collect future logs and only allow squashing a note hash when all its logs have been emitted
212
- // (i.e. none of the future logs are linked to the to-be-squashed note hashes).
253
+ const futureNoteHashReads = collectNested(this.executionStack, (executionResult)=>executionResult.publicInputs.noteHashReadRequests.getActiveItems());
254
+ const futureNullifierReads = collectNested(this.executionStack, (executionResult)=>executionResult.publicInputs.nullifierReadRequests.getActiveItems());
255
+ const futureLogs = collectNested(this.executionStack, (executionResult)=>executionResult.publicInputs.privateLogs.getActiveItems());
213
256
  if (this.nextIteration) {
214
- // If it's not the final reset, only one dimension will be reset at a time.
215
- // The note hashes and nullifiers for the remaining read requests can't be squashed.
257
+ // If it's not the final reset, only one dimension will be reset at a time. Since we are resetting the transient
258
+ // data, the note hash and nullifier read requests in the previous kernel won't be squashed and need to be
259
+ // included in the future read requests.
216
260
  futureNoteHashReads.push(...this.previousKernel.validationRequests.noteHashReadRequests.getActiveItems());
217
261
  futureNullifierReads.push(...this.previousKernel.validationRequests.nullifierReadRequests.getActiveItems());
218
262
  }
219
- const { numTransientData, hints: transientDataSquashingHints } = buildTransientDataHints(this.previousKernel.end.noteHashes, this.previousKernel.end.nullifiers, futureNoteHashReads, futureNullifierReads, this.noteHashNullifierCounterMap, this.validationRequestsSplitCounter);
220
- if (this.nextIteration && !numTransientData) {
221
- const forceResetAll = true;
222
- const canClearReadRequests = noteHashWillOverflow && this.needsResetNoteHashReadRequests(forceResetAll) || nullifierWillOverflow && this.needsResetNullifierReadRequests(forceResetAll) || logsWillOverflow && this.needsResetNoteHashReadRequests(forceResetAll);
223
- if (!canClearReadRequests) {
224
- const overflownData = noteHashWillOverflow ? 'note hashes' : nullifierWillOverflow ? 'nullifiers' : 'private logs';
225
- throw new Error(`Number of ${overflownData} exceeds the limit.`);
263
+ const { numTransientData, hints: transientDataSquashingHints } = buildTransientDataHints(this.previousKernel.end.noteHashes, this.previousKernel.end.nullifiers, futureNoteHashReads, futureNullifierReads, futureLogs, this.noteHashNullifierCounterMap, this.splitCounter);
264
+ if (this.nextIteration) {
265
+ const noteHashOverflowBy = noteHashWillOverflow ? nextAccumNoteHashes - MAX_NOTE_HASHES_PER_TX - numTransientData : 0;
266
+ const nullifierOverflowBy = nullifierWillOverflow ? nextAccumNullifiers - MAX_NULLIFIERS_PER_TX - numTransientData : 0;
267
+ const numSquashedLogs = logsWillOverflow ? countSquashedLogs(this.previousKernel.end.noteHashes, this.previousKernel.end.privateLogs, transientDataSquashingHints.slice(0, numTransientData)) : 0;
268
+ const logsOverflowBy = logsWillOverflow ? nextAccumLogs - MAX_PRIVATE_LOGS_PER_TX - numSquashedLogs : 0;
269
+ if (noteHashOverflowBy > 0 || nullifierOverflowBy > 0 || logsOverflowBy > 0) {
270
+ // There's not enough transient data to squash to clear space for the overflow. It may be because some data is
271
+ // still required for read requests. Force a reset of the read requests first, and return to transient data
272
+ // squashing in the next round of reset.
273
+ // Note that clearing the read requests might not be enough to clear more space for the overflow. In this case,
274
+ // running the next reset will fail at the following check.
275
+ // Only one dimension can be reset at a time for an inner reset, so we try the note hash read requests first
276
+ // (which also helps with log overflow), then fall back to nullifier read requests.
277
+ const forceReset = true;
278
+ if ((noteHashOverflowBy > 0 || logsOverflowBy > 0) && this.needsResetNoteHashReadRequests(forceReset)) {
279
+ return true;
280
+ }
281
+ if (nullifierOverflowBy > 0 && this.needsResetNullifierReadRequests(forceReset)) {
282
+ return true;
283
+ }
284
+ if (noteHashWillOverflow) {
285
+ throw new Error('Number of note hashes exceeds the limit.');
286
+ }
287
+ if (nullifierWillOverflow) {
288
+ throw new Error('Number of nullifiers exceeds the limit.');
289
+ }
290
+ throw new Error('Number of private logs exceeds the limit.');
226
291
  }
227
- // Clearing the read requests might not be enough to squash the overflown data.
228
- // In this case, the next iteration will fail at the above check.
229
- return true;
230
292
  }
231
293
  this.numTransientData = numTransientData;
232
294
  this.transientDataSquashingHints = transientDataSquashingHints;
@@ -237,8 +299,12 @@ export class PrivateKernelResetPrivateInputsBuilder {
237
299
  if (this.numTransientData === undefined) {
238
300
  throw new Error('`needsResetTransientData` must be run before `needsSiloNoteHashes`.');
239
301
  }
240
- const numNoteHashes = this.previousKernel.end.noteHashes.getActiveItems().filter((n)=>!n.contractAddress.isZero()).length;
241
- const numToSilo = Math.max(0, numNoteHashes - this.numTransientData);
302
+ const noteHashes = this.previousKernel.end.noteHashes;
303
+ if (noteHashes.claimedLength > 0 && noteHashes.array[0].contractAddress.isZero()) {
304
+ // Already siloed.
305
+ return false;
306
+ }
307
+ const numToSilo = noteHashes.claimedLength - this.numTransientData;
242
308
  this.requestedDimensions.NOTE_HASH_SILOING = numToSilo;
243
309
  return numToSilo > 0;
244
310
  }
@@ -246,13 +312,13 @@ export class PrivateKernelResetPrivateInputsBuilder {
246
312
  if (this.numTransientData === undefined) {
247
313
  throw new Error('`needsResetTransientData` must be run before `needsSiloNullifiers`.');
248
314
  }
249
- const numNullifiers = this.previousKernel.end.nullifiers.getActiveItems().filter((n)=>!n.contractAddress.isZero()).length;
250
- const numToSilo = Math.max(0, numNullifiers - this.numTransientData);
251
- // Include the first nullifier if there's something to silo.
252
- // The reset circuit checks that capped_size must be greater than or equal to all non-empty nullifiers.
253
- // Which includes the first nullifier, even though its contract address is always zero and doesn't need siloing.
254
- const cappedSize = numToSilo ? numToSilo + 1 : 0;
255
- this.requestedDimensions.NULLIFIER_SILOING = cappedSize;
315
+ const nullifiers = this.previousKernel.end.nullifiers;
316
+ if (nullifiers.claimedLength > 0 && nullifiers.array[0].contractAddress.isZero()) {
317
+ // Already siloed.
318
+ return false;
319
+ }
320
+ const numToSilo = nullifiers.claimedLength - this.numTransientData;
321
+ this.requestedDimensions.NULLIFIER_SILOING = numToSilo;
256
322
  return numToSilo > 0;
257
323
  }
258
324
  needsSiloPrivateLogs() {
@@ -260,11 +326,12 @@ export class PrivateKernelResetPrivateInputsBuilder {
260
326
  throw new Error('`needsResetTransientData` must be run before `needsSiloPrivateLogs`.');
261
327
  }
262
328
  const privateLogs = this.previousKernel.end.privateLogs;
263
- const numLogs = privateLogs.getActiveItems().filter((l)=>!l.contractAddress.isZero()).length;
264
- const noteHashes = this.previousKernel.end.noteHashes;
265
- const squashedNoteHashCounters = this.transientDataSquashingHints.filter((h)=>h.noteHashIndex < noteHashes.claimedLength).map((h)=>noteHashes.array[h.noteHashIndex].counter);
266
- const numSquashedLogs = privateLogs.getActiveItems().filter((l)=>squashedNoteHashCounters.includes(l.inner.noteHashCounter)).length;
267
- const numToSilo = numLogs - numSquashedLogs;
329
+ if (privateLogs.claimedLength > 0 && privateLogs.array[0].contractAddress.isZero()) {
330
+ // Already siloed.
331
+ return false;
332
+ }
333
+ const numSquashedLogs = countSquashedLogs(this.previousKernel.end.noteHashes, privateLogs, this.transientDataSquashingHints.slice(0, this.numTransientData));
334
+ const numToSilo = privateLogs.claimedLength - numSquashedLogs;
268
335
  this.requestedDimensions.PRIVATE_LOG_SILOING = numToSilo;
269
336
  return numToSilo > 0;
270
337
  }
@@ -0,0 +1,122 @@
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
3
+ import { PrivateCircuitPublicInputs, PrivateKernelCircuitPublicInputs, type PrivateKernelSimulateOutput } from '@aztec/stdlib/kernel';
4
+ import { PrivateCallExecutionResult } from '@aztec/stdlib/tx';
5
+ /** Builder for PrivateKernelCircuitPublicInputs with fluent API for adding side effects. */
6
+ export declare class PrivateKernelCircuitPublicInputsBuilder {
7
+ private contractAddress;
8
+ private noteHashes;
9
+ private nullifiers;
10
+ private noteHashReadRequests;
11
+ private nullifierReadRequests;
12
+ private keyValidationRequests;
13
+ private privateLogs;
14
+ private nextCounter;
15
+ constructor(contractAddress?: AztecAddress, startCounter?: number);
16
+ private getCounter;
17
+ /** Adds a note hash to the accumulated data. Defaults are generated randomly. */
18
+ addNoteHash(opts?: {
19
+ value?: Fr;
20
+ counter?: number;
21
+ contractAddress?: AztecAddress;
22
+ }): this;
23
+ /** Adds a nullifier to the accumulated data. Defaults are generated randomly. */
24
+ addNullifier(opts?: {
25
+ value?: Fr;
26
+ noteHash?: Fr;
27
+ counter?: number;
28
+ contractAddress?: AztecAddress;
29
+ }): this;
30
+ /** Adds a pending note hash read request (non-empty contract address, can match a pending note hash). */
31
+ addPendingNoteHashReadRequest(opts?: {
32
+ value?: Fr;
33
+ counter?: number;
34
+ contractAddress?: AztecAddress;
35
+ }): this;
36
+ /** Adds a settled note hash read request (empty contract address, resolved against the note hash tree). */
37
+ addSettledNoteHashReadRequest(opts?: {
38
+ value?: Fr;
39
+ counter?: number;
40
+ }): this;
41
+ /** Adds a pending nullifier read request (non-empty contract address, can match a pending nullifier). */
42
+ addPendingNullifierReadRequest(opts?: {
43
+ value?: Fr;
44
+ counter?: number;
45
+ contractAddress?: AztecAddress;
46
+ }): this;
47
+ /** Adds a settled nullifier read request (empty contract address, resolved against the nullifier tree). */
48
+ addSettledNullifierReadRequest(opts?: {
49
+ value?: Fr;
50
+ counter?: number;
51
+ }): this;
52
+ /** Adds a key validation request to validation requests. */
53
+ addKeyValidationRequest(opts?: {
54
+ contractAddress?: AztecAddress;
55
+ }): this;
56
+ /** Adds a private log to the accumulated data. Defaults are generated randomly. */
57
+ addPrivateLog(opts?: {
58
+ noteHashCounter?: number;
59
+ counter?: number;
60
+ contractAddress?: AztecAddress;
61
+ }): this;
62
+ /** Builds the PrivateKernelCircuitPublicInputs with all added side effects. */
63
+ build(): PrivateKernelCircuitPublicInputs;
64
+ }
65
+ /** Builder for PrivateCircuitPublicInputs (call-level) with fluent API for adding side effects. */
66
+ export declare class PrivateCircuitPublicInputsBuilder {
67
+ private contractAddress;
68
+ private noteHashes;
69
+ private nullifiers;
70
+ private noteHashReadRequests;
71
+ private nullifierReadRequests;
72
+ private keyValidationRequests;
73
+ private privateLogs;
74
+ private nextCounter;
75
+ constructor(contractAddress?: AztecAddress, startCounter?: number);
76
+ private getCounter;
77
+ /** Adds a note hash. Defaults are generated randomly. */
78
+ addNoteHash(opts?: {
79
+ value?: Fr;
80
+ counter?: number;
81
+ }): this;
82
+ /** Adds a nullifier. Defaults are generated randomly. */
83
+ addNullifier(opts?: {
84
+ value?: Fr;
85
+ noteHash?: Fr;
86
+ counter?: number;
87
+ }): this;
88
+ /** Adds a pending note hash read request (non-empty contract address, can match a pending note hash). */
89
+ addPendingNoteHashReadRequest(opts?: {
90
+ value?: Fr;
91
+ counter?: number;
92
+ }): this;
93
+ /** Adds a settled note hash read request (empty contract address, resolved against the note hash tree). */
94
+ addSettledNoteHashReadRequest(opts?: {
95
+ value?: Fr;
96
+ counter?: number;
97
+ }): this;
98
+ /** Adds a pending nullifier read request (non-empty contract address, can match a pending nullifier). */
99
+ addPendingNullifierReadRequest(opts?: {
100
+ value?: Fr;
101
+ counter?: number;
102
+ }): this;
103
+ /** Adds a settled nullifier read request (empty contract address, resolved against the nullifier tree). */
104
+ addSettledNullifierReadRequest(opts?: {
105
+ value?: Fr;
106
+ counter?: number;
107
+ }): this;
108
+ /** Adds a key validation request. */
109
+ addKeyValidationRequest(): this;
110
+ /** Adds a private log. Defaults are generated randomly. */
111
+ addPrivateLog(opts?: {
112
+ noteHashCounter?: number;
113
+ counter?: number;
114
+ }): this;
115
+ /** Builds the PrivateCircuitPublicInputs with all added side effects. */
116
+ build(): PrivateCircuitPublicInputs;
117
+ }
118
+ /** Wraps a PrivateKernelCircuitPublicInputs in a PrivateKernelSimulateOutput. */
119
+ export declare function makeKernelOutput(publicInputs?: PrivateKernelCircuitPublicInputs): PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>;
120
+ /** Wraps a PrivateCircuitPublicInputs in a PrivateCallExecutionResult. */
121
+ export declare function makeExecutionResult(publicInputs?: PrivateCircuitPublicInputs): PrivateCallExecutionResult;
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF91dGlscy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ByaXZhdGVfa2VybmVsL2hpbnRzL3Rlc3RfdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBTUwsMEJBQTBCLEVBQzFCLGdDQUFnQyxFQUNoQyxLQUFLLDJCQUEyQixFQU1qQyxNQUFNLHNCQUFzQixDQUFDO0FBRzlCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBYTlELDRGQUE0RjtBQUM1RixxQkFBYSx1Q0FBdUM7SUFVaEQsT0FBTyxDQUFDLGVBQWU7SUFUekIsT0FBTyxDQUFDLFVBQVUsQ0FBd0I7SUFDMUMsT0FBTyxDQUFDLFVBQVUsQ0FBeUI7SUFDM0MsT0FBTyxDQUFDLG9CQUFvQixDQUEyQjtJQUN2RCxPQUFPLENBQUMscUJBQXFCLENBQTJCO0lBQ3hELE9BQU8sQ0FBQyxxQkFBcUIsQ0FBZ0Q7SUFDN0UsT0FBTyxDQUFDLFdBQVcsQ0FBOEI7SUFDakQsT0FBTyxDQUFDLFdBQVcsQ0FBUztJQUU1QixZQUNVLGVBQWUsR0FBRSxZQUF1QyxFQUNoRSxZQUFZLFNBQUksRUFHakI7SUFFRCxPQUFPLENBQUMsVUFBVTtJQVFsQixpRkFBaUY7SUFDakYsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDO1FBQUMsZUFBZSxDQUFDLEVBQUUsWUFBWSxDQUFBO0tBQUUsR0FBRyxJQUFJLENBTXpGO0lBRUQsaUZBQWlGO0lBQ2pGLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUFDLFFBQVEs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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test_utils.d.ts","sourceRoot":"","sources":["../../../src/private_kernel/hints/test_utils.ts"],"names":[],"mappings":"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"}