@aztec/pxe 0.0.1-commit.03f7ef2 → 0.0.1-commit.0b941701

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 (328) hide show
  1. package/dest/bin/check_oracle_version.js +1 -1
  2. package/dest/block_synchronizer/block_synchronizer.d.ts +14 -10
  3. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  4. package/dest/block_synchronizer/block_synchronizer.js +72 -32
  5. package/dest/config/index.d.ts +3 -1
  6. package/dest/config/index.d.ts.map +1 -1
  7. package/dest/config/index.js +17 -0
  8. package/dest/config/package_info.js +1 -1
  9. package/dest/contract_function_simulator/benchmarked_node.d.ts +9 -0
  10. package/dest/contract_function_simulator/benchmarked_node.d.ts.map +1 -0
  11. package/dest/contract_function_simulator/benchmarked_node.js +77 -0
  12. package/dest/contract_function_simulator/contract_function_simulator.d.ts +28 -27
  13. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  14. package/dest/contract_function_simulator/contract_function_simulator.js +56 -40
  15. package/dest/contract_function_simulator/execution_note_cache.d.ts +18 -9
  16. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  17. package/dest/contract_function_simulator/execution_note_cache.js +45 -28
  18. package/dest/contract_function_simulator/index.d.ts +2 -2
  19. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  20. package/dest/contract_function_simulator/index.js +1 -1
  21. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +4 -3
  22. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  23. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +6 -3
  24. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +1 -1
  25. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +1 -1
  26. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +4 -10
  27. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  28. package/dest/contract_function_simulator/noir-structs/utility_context.js +7 -18
  29. package/dest/contract_function_simulator/oracle/interfaces.d.ts +15 -11
  30. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  31. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +3 -1
  32. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  33. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +6 -6
  34. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  35. package/dest/contract_function_simulator/oracle/note_packing_utils.js +8 -8
  36. package/dest/contract_function_simulator/oracle/oracle.d.ts +10 -8
  37. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  38. package/dest/contract_function_simulator/oracle/oracle.js +43 -32
  39. package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -26
  40. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  41. package/dest/contract_function_simulator/oracle/private_execution.js +1 -37
  42. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +26 -26
  43. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  44. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +28 -41
  45. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +44 -34
  46. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  47. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +92 -92
  48. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
  49. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  50. package/dest/contract_function_simulator/proxied_contract_data_source.js +5 -5
  51. package/dest/contract_sync/index.d.ts +23 -0
  52. package/dest/contract_sync/index.d.ts.map +1 -0
  53. package/dest/contract_sync/index.js +54 -0
  54. package/dest/debug/pxe_debug_utils.d.ts +6 -6
  55. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  56. package/dest/debug/pxe_debug_utils.js +8 -7
  57. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  58. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  59. package/dest/entrypoints/client/bundle/utils.js +10 -1
  60. package/dest/entrypoints/client/lazy/utils.d.ts +1 -1
  61. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  62. package/dest/entrypoints/client/lazy/utils.js +10 -1
  63. package/dest/entrypoints/pxe_creation_options.d.ts +3 -2
  64. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  65. package/dest/entrypoints/server/index.d.ts +3 -1
  66. package/dest/entrypoints/server/index.d.ts.map +1 -1
  67. package/dest/entrypoints/server/index.js +2 -0
  68. package/dest/entrypoints/server/utils.d.ts +1 -1
  69. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  70. package/dest/entrypoints/server/utils.js +11 -7
  71. package/dest/error_enriching.d.ts +4 -4
  72. package/dest/error_enriching.d.ts.map +1 -1
  73. package/dest/error_enriching.js +6 -6
  74. package/dest/events/event_service.d.ts +8 -7
  75. package/dest/events/event_service.d.ts.map +1 -1
  76. package/dest/events/event_service.js +22 -24
  77. package/dest/events/private_event_filter_validator.d.ts +6 -6
  78. package/dest/events/private_event_filter_validator.d.ts.map +1 -1
  79. package/dest/events/private_event_filter_validator.js +5 -6
  80. package/dest/job_coordinator/job_coordinator.d.ts +74 -0
  81. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
  82. package/dest/job_coordinator/job_coordinator.js +93 -0
  83. package/dest/logs/log_service.d.ts +15 -31
  84. package/dest/logs/log_service.d.ts.map +1 -1
  85. package/dest/logs/log_service.js +77 -188
  86. package/dest/notes/note_service.d.ts +10 -9
  87. package/dest/notes/note_service.d.ts.map +1 -1
  88. package/dest/notes/note_service.js +40 -44
  89. package/dest/oracle_version.d.ts +3 -3
  90. package/dest/oracle_version.d.ts.map +1 -1
  91. package/dest/oracle_version.js +4 -3
  92. package/dest/private_kernel/hints/index.d.ts +2 -2
  93. package/dest/private_kernel/hints/index.d.ts.map +1 -1
  94. package/dest/private_kernel/hints/index.js +1 -1
  95. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +28 -0
  96. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
  97. package/dest/private_kernel/hints/{build_private_kernel_reset_private_inputs.js → private_kernel_reset_private_inputs_builder.js} +13 -7
  98. package/dest/private_kernel/private_kernel_execution_prover.d.ts +1 -1
  99. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  100. package/dest/private_kernel/private_kernel_execution_prover.js +4 -5
  101. package/dest/private_kernel/private_kernel_oracle.d.ts +24 -28
  102. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  103. package/dest/private_kernel/private_kernel_oracle.js +90 -2
  104. package/dest/pxe.d.ts +17 -44
  105. package/dest/pxe.d.ts.map +1 -1
  106. package/dest/pxe.js +131 -147
  107. package/dest/storage/address_store/address_store.d.ts +11 -0
  108. package/dest/storage/address_store/address_store.d.ts.map +1 -0
  109. package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +1 -1
  110. package/dest/storage/address_store/index.d.ts +2 -0
  111. package/dest/storage/address_store/index.d.ts.map +1 -0
  112. package/dest/storage/address_store/index.js +1 -0
  113. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -0
  114. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
  115. package/dest/storage/{anchor_block_data_provider/anchor_block_data_provider.js → anchor_block_store/anchor_block_store.js} +1 -1
  116. package/dest/storage/anchor_block_store/index.d.ts +2 -0
  117. package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
  118. package/dest/storage/anchor_block_store/index.js +1 -0
  119. package/dest/storage/capsule_store/capsule_store.d.ts +72 -0
  120. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  121. package/dest/storage/capsule_store/capsule_store.js +255 -0
  122. package/dest/storage/capsule_store/index.d.ts +2 -0
  123. package/dest/storage/capsule_store/index.d.ts.map +1 -0
  124. package/dest/storage/capsule_store/index.js +1 -0
  125. package/dest/storage/{contract_data_provider/contract_data_provider.d.ts → contract_store/contract_store.d.ts} +3 -3
  126. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  127. package/dest/storage/{contract_data_provider/contract_data_provider.js → contract_store/contract_store.js} +2 -2
  128. package/dest/storage/contract_store/index.d.ts +2 -0
  129. package/dest/storage/contract_store/index.d.ts.map +1 -0
  130. package/dest/storage/contract_store/index.js +1 -0
  131. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
  132. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  133. package/dest/storage/index.d.ts +8 -8
  134. package/dest/storage/index.d.ts.map +1 -1
  135. package/dest/storage/index.js +7 -7
  136. package/dest/storage/note_store/index.d.ts +3 -0
  137. package/dest/storage/note_store/index.d.ts.map +1 -0
  138. package/dest/storage/note_store/index.js +2 -0
  139. package/dest/storage/note_store/note_store.d.ts +73 -0
  140. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  141. package/dest/storage/note_store/note_store.js +303 -0
  142. package/dest/storage/note_store/stored_note.d.ts +16 -0
  143. package/dest/storage/note_store/stored_note.d.ts.map +1 -0
  144. package/dest/storage/note_store/stored_note.js +43 -0
  145. package/dest/storage/private_event_store/private_event_store.d.ts +91 -0
  146. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  147. package/dest/storage/private_event_store/private_event_store.js +250 -0
  148. package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
  149. package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
  150. package/dest/storage/private_event_store/stored_private_event.js +56 -0
  151. package/dest/storage/tagging_store/index.d.ts +4 -0
  152. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  153. package/dest/storage/tagging_store/index.js +3 -0
  154. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +28 -0
  155. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  156. package/dest/storage/tagging_store/recipient_tagging_store.js +99 -0
  157. package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
  158. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
  159. package/dest/storage/tagging_store/sender_address_book_store.js +30 -0
  160. package/dest/storage/{tagging_data_provider/sender_tagging_data_provider.d.ts → tagging_store/sender_tagging_store.d.ts} +19 -9
  161. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  162. package/dest/storage/{tagging_data_provider/sender_tagging_data_provider.js → tagging_store/sender_tagging_store.js} +111 -29
  163. package/dest/tagging/constants.d.ts +2 -2
  164. package/dest/tagging/constants.d.ts.map +1 -1
  165. package/dest/tagging/constants.js +10 -3
  166. package/dest/tagging/get_all_logs_by_tags.d.ts +24 -0
  167. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
  168. package/dest/tagging/get_all_logs_by_tags.js +46 -0
  169. package/dest/tagging/index.d.ts +15 -3
  170. package/dest/tagging/index.d.ts.map +1 -1
  171. package/dest/tagging/index.js +14 -2
  172. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +4 -3
  173. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -1
  174. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +8 -8
  175. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +3 -2
  176. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -1
  177. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +5 -2
  178. package/dest/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.d.ts +4 -4
  179. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  180. package/dest/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.js +8 -23
  181. package/dest/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.d.ts +1 -1
  182. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
  183. package/dest/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.js +5 -8
  184. package/dest/tagging/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.d.ts +7 -4
  185. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  186. package/dest/tagging/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.js +12 -7
  187. package/package.json +18 -18
  188. package/src/bin/check_oracle_version.ts +1 -0
  189. package/src/block_synchronizer/block_synchronizer.ts +83 -34
  190. package/src/config/index.ts +14 -0
  191. package/src/config/package_info.ts +1 -1
  192. package/src/contract_function_simulator/benchmarked_node.ts +103 -0
  193. package/src/contract_function_simulator/contract_function_simulator.ts +79 -64
  194. package/src/contract_function_simulator/execution_note_cache.ts +44 -25
  195. package/src/contract_function_simulator/index.ts +1 -1
  196. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +5 -1
  197. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +1 -1
  198. package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
  199. package/src/contract_function_simulator/oracle/interfaces.ts +20 -10
  200. package/src/contract_function_simulator/oracle/note_packing_utils.ts +10 -10
  201. package/src/contract_function_simulator/oracle/oracle.ts +56 -41
  202. package/src/contract_function_simulator/oracle/private_execution.ts +1 -69
  203. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +77 -78
  204. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +121 -105
  205. package/src/contract_function_simulator/proxied_contract_data_source.ts +7 -7
  206. package/src/contract_sync/index.ts +98 -0
  207. package/src/debug/pxe_debug_utils.ts +7 -6
  208. package/src/entrypoints/client/bundle/utils.ts +7 -1
  209. package/src/entrypoints/client/lazy/utils.ts +7 -2
  210. package/src/entrypoints/pxe_creation_options.ts +2 -1
  211. package/src/entrypoints/server/index.ts +2 -0
  212. package/src/entrypoints/server/utils.ts +11 -15
  213. package/src/error_enriching.ts +7 -15
  214. package/src/events/event_service.ts +23 -27
  215. package/src/events/private_event_filter_validator.ts +4 -6
  216. package/src/job_coordinator/job_coordinator.ts +149 -0
  217. package/src/logs/log_service.ts +116 -260
  218. package/src/notes/note_service.ts +43 -46
  219. package/src/oracle_version.ts +4 -3
  220. package/src/private_kernel/hints/index.ts +1 -1
  221. package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +33 -22
  222. package/src/private_kernel/private_kernel_execution_prover.ts +3 -5
  223. package/src/private_kernel/private_kernel_oracle.ts +116 -36
  224. package/src/pxe.ts +189 -190
  225. package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +1 -1
  226. package/src/storage/address_store/index.ts +1 -0
  227. package/src/storage/{anchor_block_data_provider/anchor_block_data_provider.ts → anchor_block_store/anchor_block_store.ts} +1 -1
  228. package/src/storage/anchor_block_store/index.ts +1 -0
  229. package/src/storage/capsule_store/capsule_store.ts +315 -0
  230. package/src/storage/capsule_store/index.ts +1 -0
  231. package/src/storage/{contract_data_provider/contract_data_provider.ts → contract_store/contract_store.ts} +2 -2
  232. package/src/storage/contract_store/index.ts +1 -0
  233. package/src/storage/index.ts +7 -7
  234. package/src/storage/note_store/index.ts +2 -0
  235. package/src/storage/note_store/note_store.ts +381 -0
  236. package/src/storage/note_store/stored_note.ts +48 -0
  237. package/src/storage/private_event_store/private_event_store.ts +363 -0
  238. package/src/storage/private_event_store/stored_private_event.ts +73 -0
  239. package/src/storage/tagging_store/index.ts +3 -0
  240. package/src/storage/tagging_store/recipient_tagging_store.ts +129 -0
  241. package/src/storage/tagging_store/sender_address_book_store.ts +42 -0
  242. package/src/storage/{tagging_data_provider/sender_tagging_data_provider.ts → tagging_store/sender_tagging_store.ts} +129 -28
  243. package/src/tagging/constants.ts +10 -3
  244. package/src/tagging/get_all_logs_by_tags.ts +68 -0
  245. package/src/tagging/index.ts +17 -2
  246. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +23 -9
  247. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +7 -1
  248. package/src/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.ts +12 -25
  249. package/src/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.ts +5 -13
  250. package/src/tagging/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.ts +19 -7
  251. package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
  252. package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
  253. package/dest/contract_function_simulator/proxied_node.js +0 -27
  254. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
  255. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
  256. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -46
  257. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
  258. package/dest/private_kernel/private_kernel_oracle_impl.js +0 -86
  259. package/dest/public_storage/public_storage_service.d.ts +0 -24
  260. package/dest/public_storage/public_storage_service.d.ts.map +0 -1
  261. package/dest/public_storage/public_storage_service.js +0 -26
  262. package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
  263. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
  264. package/dest/storage/address_data_provider/index.d.ts +0 -2
  265. package/dest/storage/address_data_provider/index.d.ts.map +0 -1
  266. package/dest/storage/address_data_provider/index.js +0 -1
  267. package/dest/storage/anchor_block_data_provider/anchor_block_data_provider.d.ts +0 -9
  268. package/dest/storage/anchor_block_data_provider/anchor_block_data_provider.d.ts.map +0 -1
  269. package/dest/storage/anchor_block_data_provider/index.d.ts +0 -2
  270. package/dest/storage/anchor_block_data_provider/index.d.ts.map +0 -1
  271. package/dest/storage/anchor_block_data_provider/index.js +0 -1
  272. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -57
  273. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
  274. package/dest/storage/capsule_data_provider/capsule_data_provider.js +0 -146
  275. package/dest/storage/capsule_data_provider/index.d.ts +0 -2
  276. package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
  277. package/dest/storage/capsule_data_provider/index.js +0 -1
  278. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
  279. package/dest/storage/contract_data_provider/index.d.ts +0 -2
  280. package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
  281. package/dest/storage/contract_data_provider/index.js +0 -1
  282. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
  283. package/dest/storage/note_data_provider/index.d.ts +0 -3
  284. package/dest/storage/note_data_provider/index.d.ts.map +0 -1
  285. package/dest/storage/note_data_provider/index.js +0 -2
  286. package/dest/storage/note_data_provider/note_data_provider.d.ts +0 -84
  287. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
  288. package/dest/storage/note_data_provider/note_data_provider.js +0 -322
  289. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -51
  290. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
  291. package/dest/storage/private_event_data_provider/private_event_data_provider.js +0 -115
  292. package/dest/storage/tagging_data_provider/index.d.ts +0 -3
  293. package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
  294. package/dest/storage/tagging_data_provider/index.js +0 -2
  295. package/dest/storage/tagging_data_provider/recipient_tagging_data_provider.d.ts +0 -31
  296. package/dest/storage/tagging_data_provider/recipient_tagging_data_provider.d.ts.map +0 -1
  297. package/dest/storage/tagging_data_provider/recipient_tagging_data_provider.js +0 -65
  298. package/dest/storage/tagging_data_provider/sender_tagging_data_provider.d.ts.map +0 -1
  299. package/dest/tagging/recipient_sync/new_recipient_tagging_data_provider.d.ts +0 -21
  300. package/dest/tagging/recipient_sync/new_recipient_tagging_data_provider.d.ts.map +0 -1
  301. package/dest/tagging/recipient_sync/new_recipient_tagging_data_provider.js +0 -42
  302. package/dest/tagging/sync/sync_sender_tagging_indexes.d.ts.map +0 -1
  303. package/dest/tagging/sync/utils/get_status_change_of_pending.d.ts.map +0 -1
  304. package/dest/tagging/sync/utils/load_and_store_new_tagging_indexes.d.ts.map +0 -1
  305. package/dest/tagging/utils.d.ts +0 -18
  306. package/dest/tagging/utils.d.ts.map +0 -1
  307. package/dest/tagging/utils.js +0 -25
  308. package/dest/tree_membership/tree_membership_service.d.ts +0 -52
  309. package/dest/tree_membership/tree_membership_service.d.ts.map +0 -1
  310. package/dest/tree_membership/tree_membership_service.js +0 -84
  311. package/src/contract_function_simulator/proxied_node.ts +0 -33
  312. package/src/private_kernel/private_kernel_oracle_impl.ts +0 -133
  313. package/src/public_storage/public_storage_service.ts +0 -33
  314. package/src/storage/address_data_provider/index.ts +0 -1
  315. package/src/storage/anchor_block_data_provider/index.ts +0 -1
  316. package/src/storage/capsule_data_provider/capsule_data_provider.ts +0 -179
  317. package/src/storage/capsule_data_provider/index.ts +0 -1
  318. package/src/storage/contract_data_provider/index.ts +0 -1
  319. package/src/storage/note_data_provider/index.ts +0 -2
  320. package/src/storage/note_data_provider/note_data_provider.ts +0 -412
  321. package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -162
  322. package/src/storage/tagging_data_provider/index.ts +0 -2
  323. package/src/storage/tagging_data_provider/recipient_tagging_data_provider.ts +0 -86
  324. package/src/tagging/recipient_sync/new_recipient_tagging_data_provider.ts +0 -53
  325. package/src/tagging/utils.ts +0 -32
  326. package/src/tree_membership/tree_membership_service.ts +0 -112
  327. /package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +0 -0
  328. /package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +0 -0
@@ -20,35 +20,37 @@ import { ExecutionNoteCache } from './execution_note_cache.js';
20
20
  import { ExecutionTaggingIndexCache } from './execution_tagging_index_cache.js';
21
21
  import { HashedValuesCache } from './hashed_values_cache.js';
22
22
  import { Oracle } from './oracle/oracle.js';
23
- import { executePrivateFunction, verifyCurrentClassId } from './oracle/private_execution.js';
23
+ import { executePrivateFunction } from './oracle/private_execution.js';
24
24
  import { PrivateExecutionOracle } from './oracle/private_execution_oracle.js';
25
25
  import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
26
26
  /**
27
27
  * The contract function simulator.
28
28
  */ export class ContractFunctionSimulator {
29
- contractDataProvider;
30
- noteDataProvider;
29
+ contractStore;
30
+ noteStore;
31
31
  keyStore;
32
- addressDataProvider;
32
+ addressStore;
33
33
  aztecNode;
34
- anchorBlockDataProvider;
35
- senderTaggingDataProvider;
36
- recipientTaggingDataProvider;
37
- capsuleDataProvider;
38
- privateEventDataProvider;
34
+ anchorBlockStore;
35
+ senderTaggingStore;
36
+ recipientTaggingStore;
37
+ senderAddressBookStore;
38
+ capsuleStore;
39
+ privateEventStore;
39
40
  simulator;
40
41
  log;
41
- constructor(contractDataProvider, noteDataProvider, keyStore, addressDataProvider, aztecNode, anchorBlockDataProvider, senderTaggingDataProvider, recipientTaggingDataProvider, capsuleDataProvider, privateEventDataProvider, simulator){
42
- this.contractDataProvider = contractDataProvider;
43
- this.noteDataProvider = noteDataProvider;
42
+ constructor(contractStore, noteStore, keyStore, addressStore, aztecNode, anchorBlockStore, senderTaggingStore, recipientTaggingStore, senderAddressBookStore, capsuleStore, privateEventStore, simulator){
43
+ this.contractStore = contractStore;
44
+ this.noteStore = noteStore;
44
45
  this.keyStore = keyStore;
45
- this.addressDataProvider = addressDataProvider;
46
+ this.addressStore = addressStore;
46
47
  this.aztecNode = aztecNode;
47
- this.anchorBlockDataProvider = anchorBlockDataProvider;
48
- this.senderTaggingDataProvider = senderTaggingDataProvider;
49
- this.recipientTaggingDataProvider = recipientTaggingDataProvider;
50
- this.capsuleDataProvider = capsuleDataProvider;
51
- this.privateEventDataProvider = privateEventDataProvider;
48
+ this.anchorBlockStore = anchorBlockStore;
49
+ this.senderTaggingStore = senderTaggingStore;
50
+ this.recipientTaggingStore = recipientTaggingStore;
51
+ this.senderAddressBookStore = senderAddressBookStore;
52
+ this.capsuleStore = capsuleStore;
53
+ this.privateEventStore = privateEventStore;
52
54
  this.simulator = simulator;
53
55
  this.log = createLogger('simulator');
54
56
  }
@@ -63,11 +65,11 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
63
65
  * @param senderForTags - The address that is used as a tagging sender when emitting private logs. Returned from
64
66
  * the `privateGetSenderForTags` oracle.
65
67
  * @param scopes - The accounts whose notes we can access in this call. Currently optional and will default to all.
68
+ * @param jobId - The job ID for staged writes.
66
69
  * @returns The result of the execution.
67
- */ async run(request, contractAddress, selector, msgSender = AztecAddress.fromField(Fr.MAX_FIELD_VALUE), anchorBlockHeader, senderForTags, scopes) {
70
+ */ async run(request, contractAddress, selector, msgSender = AztecAddress.fromField(Fr.MAX_FIELD_VALUE), anchorBlockHeader, senderForTags, scopes, jobId) {
68
71
  const simulatorSetupTimer = new Timer();
69
- await verifyCurrentClassId(contractAddress, this.aztecNode, this.contractDataProvider, anchorBlockHeader);
70
- const entryPointArtifact = await this.contractDataProvider.getFunctionArtifactWithDebugMetadata(contractAddress, selector);
72
+ const entryPointArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(contractAddress, selector);
71
73
  if (entryPointArtifact.functionType !== FunctionType.PRIVATE) {
72
74
  throw new Error(`Cannot run ${entryPointArtifact.functionType} function as private`);
73
75
  }
@@ -80,7 +82,9 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
80
82
  const protocolNullifier = await computeProtocolNullifier(await request.toTxRequest().hash());
81
83
  const noteCache = new ExecutionNoteCache(protocolNullifier);
82
84
  const taggingIndexCache = new ExecutionTaggingIndexCache();
83
- const privateExecutionOracle = new PrivateExecutionOracle(request.firstCallArgsHash, request.txContext, callContext, anchorBlockHeader, request.authWitnesses, request.capsules, HashedValuesCache.create(request.argsOfCalls), noteCache, taggingIndexCache, this.contractDataProvider, this.noteDataProvider, this.keyStore, this.addressDataProvider, this.aztecNode, this.anchorBlockDataProvider, this.senderTaggingDataProvider, this.recipientTaggingDataProvider, this.capsuleDataProvider, this.privateEventDataProvider, 0, startSideEffectCounter, undefined, scopes, senderForTags, this.simulator);
85
+ const privateExecutionOracle = new PrivateExecutionOracle(request.firstCallArgsHash, request.txContext, callContext, anchorBlockHeader, async (call)=>{
86
+ await this.runUtility(call, [], anchorBlockHeader, scopes, jobId);
87
+ }, request.authWitnesses, request.capsules, HashedValuesCache.create(request.argsOfCalls), noteCache, taggingIndexCache, this.contractStore, this.noteStore, this.keyStore, this.addressStore, this.aztecNode, this.anchorBlockStore, this.senderTaggingStore, this.recipientTaggingStore, this.senderAddressBookStore, this.capsuleStore, this.privateEventStore, jobId, 0, startSideEffectCounter, undefined, scopes, senderForTags, this.simulator);
84
88
  const setupTime = simulatorSetupTimer.ms();
85
89
  try {
86
90
  // Note: any nested private function calls are made recursively within this
@@ -89,8 +93,8 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
89
93
  // within executionResult.nestedExecutionResults).
90
94
  const executionResult = await executePrivateFunction(this.simulator, privateExecutionOracle, entryPointArtifact, contractAddress, request.functionSelector);
91
95
  const simulatorTeardownTimer = new Timer();
92
- const { usedProtocolNullifierForNonces } = noteCache.finish();
93
- const firstNullifierHint = usedProtocolNullifierForNonces ? Fr.ZERO : noteCache.getAllNullifiers()[0];
96
+ noteCache.finish();
97
+ const firstNullifierHint = noteCache.getNonceGenerator();
94
98
  const publicCallRequests = collectNested([
95
99
  executionResult
96
100
  ], (r)=>r.publicInputs.publicCallRequests.getActiveItems().map((r)=>r.inner).concat(r.publicInputs.publicTeardownCallRequest.isEmpty() ? [] : [
@@ -122,13 +126,12 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
122
126
  * @param scopes - Optional array of account addresses whose notes can be accessed in this call. Defaults to all
123
127
  * accounts if not specified.
124
128
  * @returns A return value of the utility function in a form as returned by the simulator (Noir fields)
125
- */ async runUtility(call, authwits, anchorBlockHeader, scopes) {
126
- await verifyCurrentClassId(call.to, this.aztecNode, this.contractDataProvider, anchorBlockHeader);
127
- const entryPointArtifact = await this.contractDataProvider.getFunctionArtifactWithDebugMetadata(call.to, call.selector);
129
+ */ async runUtility(call, authwits, anchorBlockHeader, scopes, jobId) {
130
+ const entryPointArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(call.to, call.selector);
128
131
  if (entryPointArtifact.functionType !== FunctionType.UTILITY) {
129
132
  throw new Error(`Cannot run ${entryPointArtifact.functionType} function as utility`);
130
133
  }
131
- const oracle = new UtilityExecutionOracle(call.to, authwits, [], anchorBlockHeader, this.contractDataProvider, this.noteDataProvider, this.keyStore, this.addressDataProvider, this.aztecNode, this.anchorBlockDataProvider, this.senderTaggingDataProvider, this.recipientTaggingDataProvider, this.capsuleDataProvider, this.privateEventDataProvider, undefined, scopes);
134
+ const oracle = new UtilityExecutionOracle(call.to, authwits, [], anchorBlockHeader, this.contractStore, this.noteStore, this.keyStore, this.addressStore, this.aztecNode, this.anchorBlockStore, this.recipientTaggingStore, this.senderAddressBookStore, this.capsuleStore, this.privateEventStore, jobId, undefined, scopes);
132
135
  try {
133
136
  this.log.verbose(`Executing utility function ${entryPointArtifact.name}`, {
134
137
  contract: call.to,
@@ -155,7 +158,15 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
155
158
  * Returns the execution statistics collected during the simulator run.
156
159
  * @returns The execution statistics.
157
160
  */ getStats() {
158
- const nodeRPCCalls = typeof this.aztecNode.getStats === 'function' ? this.aztecNode.getStats() : {};
161
+ const nodeRPCCalls = typeof this.aztecNode.getStats === 'function' ? this.aztecNode.getStats() : {
162
+ perMethod: {},
163
+ roundTrips: {
164
+ roundTrips: 0,
165
+ totalBlockingTime: 0,
166
+ roundTripDurations: [],
167
+ roundTripMethods: []
168
+ }
169
+ };
159
170
  return {
160
171
  nodeRPCCalls
161
172
  };
@@ -176,11 +187,11 @@ class OrderedSideEffect {
176
187
  * (allowing state overrides) and is much faster, while still generating a valid
177
188
  * output that can be sent to the node for public simulation
178
189
  * @param privateExecutionResult - The result of the private execution.
179
- * @param nonceGenerator - A nonce generator for note hashes. According to the protocol rules,
180
- * it can either be the first nullifier in the tx or the hash of the initial tx request if there are none.
181
- * @param contractDataProvider - A provider for contract data in order to get function names and debug info.
190
+ * @param contractStore - A provider for contract data in order to get function names and debug info.
191
+ * @param minRevertibleSideEffectCounterOverride - Optional override for the min revertible side effect counter.
192
+ * Used by TXE to simulate account contract behavior (setting the counter before app execution).
182
193
  * @returns The simulated proving result.
183
- */ export async function generateSimulatedProvingResult(privateExecutionResult, nonceGenerator, contractDataProvider) {
194
+ */ export async function generateSimulatedProvingResult(privateExecutionResult, contractStore, minRevertibleSideEffectCounterOverride) {
184
195
  const siloedNoteHashes = [];
185
196
  const nullifiers = [];
186
197
  const taggedPrivateLogs = [];
@@ -216,7 +227,7 @@ class OrderedSideEffect {
216
227
  }
217
228
  publicTeardownCallRequest = execution.publicInputs.publicTeardownCallRequest.isEmpty() ? publicTeardownCallRequest : execution.publicInputs.publicTeardownCallRequest;
218
229
  executionSteps.push({
219
- functionName: await contractDataProvider.getDebugFunctionName(execution.publicInputs.callContext.contractAddress, execution.publicInputs.callContext.functionSelector),
230
+ functionName: await contractStore.getDebugFunctionName(execution.publicInputs.callContext.contractAddress, execution.publicInputs.callContext.functionSelector),
220
231
  timings: execution.profileResult?.timings ?? {
221
232
  witgen: 0,
222
233
  oracles: {}
@@ -234,12 +245,13 @@ class OrderedSideEffect {
234
245
  const sortByCounter = (a, b)=>a.counter - b.counter;
235
246
  const getEffect = (orderedSideEffect)=>orderedSideEffect.sideEffect;
236
247
  const isPrivateOnlyTx = privateExecutionResult.publicFunctionCalldata.length === 0;
237
- const minRevertibleSideEffectCounter = getFinalMinRevertibleSideEffectCounter(privateExecutionResult);
248
+ const minRevertibleSideEffectCounter = minRevertibleSideEffectCounterOverride ?? getFinalMinRevertibleSideEffectCounter(privateExecutionResult);
238
249
  const [nonRevertibleNullifiers, revertibleNullifiers] = splitOrderedSideEffects(nullifiers.sort(sortByCounter), minRevertibleSideEffectCounter);
239
- if (nonRevertibleNullifiers.length > 0 && !nonRevertibleNullifiers[0].equals(nonceGenerator)) {
250
+ const nonceGenerator = privateExecutionResult.firstNullifier;
251
+ if (nonRevertibleNullifiers.length === 0) {
252
+ nonRevertibleNullifiers.push(nonceGenerator);
253
+ } else if (!nonRevertibleNullifiers[0].equals(nonceGenerator)) {
240
254
  throw new Error('The first non revertible nullifier should be equal to the nonce generator. This is a bug!');
241
- } else {
242
- nonRevertibleNullifiers.unshift(nonceGenerator);
243
255
  }
244
256
  if (isPrivateOnlyTx) {
245
257
  // We must make the note hashes unique by using the
@@ -255,11 +267,15 @@ class OrderedSideEffect {
255
267
  inputsForRollup = new PartialPrivateTailPublicInputsForRollup(accumulatedDataForRollup);
256
268
  } else {
257
269
  const [nonRevertibleNoteHashes, revertibleNoteHashes] = splitOrderedSideEffects(siloedNoteHashes.sort(sortByCounter), minRevertibleSideEffectCounter);
270
+ const nonRevertibleUniqueNoteHashes = await Promise.all(nonRevertibleNoteHashes.map(async (noteHash, i)=>{
271
+ const nonce = await computeNoteHashNonce(nonceGenerator, i);
272
+ return await computeUniqueNoteHash(nonce, noteHash);
273
+ }));
258
274
  const [nonRevertibleL2ToL1Messages, revertibleL2ToL1Messages] = splitOrderedSideEffects(l2ToL1Messages.sort(sortByCounter), minRevertibleSideEffectCounter);
259
275
  const [nonRevertibleTaggedPrivateLogs, revertibleTaggedPrivateLogs] = splitOrderedSideEffects(taggedPrivateLogs, minRevertibleSideEffectCounter);
260
276
  const [nonRevertibleContractClassLogHashes, revertibleContractClassLogHashes] = splitOrderedSideEffects(contractClassLogsHashes.sort(sortByCounter), minRevertibleSideEffectCounter);
261
277
  const [nonRevertiblePublicCallRequests, revertiblePublicCallRequests] = splitOrderedSideEffects(publicCallRequests.sort(sortByCounter), minRevertibleSideEffectCounter);
262
- const nonRevertibleData = new PrivateToPublicAccumulatedData(padArrayEnd(nonRevertibleNoteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX), padArrayEnd(nonRevertibleNullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX), padArrayEnd(nonRevertibleL2ToL1Messages, ScopedL2ToL1Message.empty(), MAX_L2_TO_L1_MSGS_PER_TX), padArrayEnd(nonRevertibleTaggedPrivateLogs, PrivateLog.empty(), MAX_PRIVATE_LOGS_PER_TX), padArrayEnd(nonRevertibleContractClassLogHashes, ScopedLogHash.empty(), MAX_CONTRACT_CLASS_LOGS_PER_TX), padArrayEnd(nonRevertiblePublicCallRequests, PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX));
278
+ const nonRevertibleData = new PrivateToPublicAccumulatedData(padArrayEnd(nonRevertibleUniqueNoteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX), padArrayEnd(nonRevertibleNullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX), padArrayEnd(nonRevertibleL2ToL1Messages, ScopedL2ToL1Message.empty(), MAX_L2_TO_L1_MSGS_PER_TX), padArrayEnd(nonRevertibleTaggedPrivateLogs, PrivateLog.empty(), MAX_PRIVATE_LOGS_PER_TX), padArrayEnd(nonRevertibleContractClassLogHashes, ScopedLogHash.empty(), MAX_CONTRACT_CLASS_LOGS_PER_TX), padArrayEnd(nonRevertiblePublicCallRequests, PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX));
263
279
  const revertibleData = new PrivateToPublicAccumulatedData(padArrayEnd(revertibleNoteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX), padArrayEnd(revertibleNullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX), padArrayEnd(revertibleL2ToL1Messages, ScopedL2ToL1Message.empty(), MAX_L2_TO_L1_MSGS_PER_TX), padArrayEnd(revertibleTaggedPrivateLogs, PrivateLog.empty(), MAX_PRIVATE_LOGS_PER_TX), padArrayEnd(revertibleContractClassLogHashes, ScopedLogHash.empty(), MAX_CONTRACT_CLASS_LOGS_PER_TX), padArrayEnd(revertiblePublicCallRequests, PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX));
264
280
  gasUsed = meterGasUsed(revertibleData).add(meterGasUsed(nonRevertibleData));
265
281
  if (publicTeardownCallRequest) {
@@ -281,7 +297,7 @@ function splitOrderedSideEffects(effects, minRevertibleSideEffectCounter) {
281
297
  const revertibleSideEffects = [];
282
298
  const nonRevertibleSideEffects = [];
283
299
  effects.forEach((effect)=>{
284
- if (effect.counter < minRevertibleSideEffectCounter) {
300
+ if (minRevertibleSideEffectCounter === 0 || effect.counter < minRevertibleSideEffectCounter) {
285
301
  nonRevertibleSideEffects.push(effect.sideEffect);
286
302
  } else {
287
303
  revertibleSideEffects.push(effect.sideEffect);
@@ -28,14 +28,17 @@ export declare class ExecutionNoteCache {
28
28
  */
29
29
  private nullifierMap;
30
30
  /**
31
- * All nullifiers emitted in this transaction.
31
+ * Nullifiers emitted by private calls in this transaction.
32
+ */
33
+ private emittedNullifiers;
34
+ /**
35
+ * The counter that separates non-revertible side effects (which persist even if the tx reverts) from revertible ones.
32
36
  */
33
- private allNullifiers;
34
37
  private minRevertibleSideEffectCounter;
35
38
  private inRevertiblePhase;
36
39
  /**
37
- * We don't need to use the tx request hash for nonces if another non revertible nullifier is emitted.
38
- * In that case we disable injecting the tx request hash as a nullifier.
40
+ * Whether the protocol nullifier was used for nonce generation.
41
+ * We don't need to use the protocol nullifier if a non-revertible nullifier is emitted.
39
42
  */
40
43
  private usedProtocolNullifierForNonces;
41
44
  constructor(protocolNullifier: Fr);
@@ -45,9 +48,7 @@ export declare class ExecutionNoteCache {
45
48
  */
46
49
  setMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter: number): Promise<void>;
47
50
  isSideEffectCounterRevertible(sideEffectCounter: number): boolean;
48
- finish(): {
49
- usedProtocolNullifierForNonces: boolean;
50
- };
51
+ finish(): void;
51
52
  /**
52
53
  * Add a new note to cache.
53
54
  * @param note - New note created during execution.
@@ -88,8 +89,16 @@ export declare class ExecutionNoteCache {
88
89
  */
89
90
  getNullifiers(contractAddress: AztecAddress): Set<bigint>;
90
91
  getAllNotes(): PendingNote[];
92
+ /**
93
+ * @returns All nullifiers emitted by private calls in this transaction.
94
+ */
95
+ getEmittedNullifiers(): Fr[];
96
+ /**
97
+ * @returns All nullifiers emitted by private calls in this transaction. If the protocol nullifier was used as the
98
+ * nonce generator, it is injected as the first nullifier.
99
+ */
91
100
  getAllNullifiers(): Fr[];
92
- recordNullifier(contractAddress: AztecAddress, siloedNullifier: bigint): void;
101
+ getNonceGenerator(): Fr;
93
102
  }
94
103
  export {};
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uX25vdGVfY2FjaGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdF9mdW5jdGlvbl9zaW11bGF0b3IvZXhlY3V0aW9uX25vdGVfY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR2hFLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELFVBQVUsV0FBVztJQUNuQixJQUFJLEVBQUUsUUFBUSxDQUFDO0lBQ2YsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUNoQixzQkFBc0IsRUFBRSxFQUFFLENBQUM7Q0FDNUI7QUFFRDs7R0FFRztBQUNILHFCQUFhLGtCQUFrQjs7SUFpQ2pCLE9BQU8sQ0FBQyxRQUFRLENBQUMsaUJBQWlCO0lBaEM5Qzs7O09BR0c7SUFDSCxPQUFPLENBQUMsS0FBSyxDQUFxQjtJQUNsQzs7T0FFRztJQUNILE9BQU8sQ0FBQyxPQUFPLENBQXlDO0lBRXhEOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsWUFBWSxDQUF1QztJQUUzRDs7T0FFRztJQUNILE9BQU8sQ0FBQyxhQUFhLENBQTBCO0lBRS9DLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBSztJQUUzQyxPQUFPLENBQUMsaUJBQWlCLENBQVM7SUFFbEM7OztPQUdHO0lBQ0gsT0FBTyxDQUFDLDhCQUE4QixDQUFRO0lBRTlDLFlBQTZCLGlCQUFpQixFQUFFLEVBQUUsRUFBSTtJQUV0RDs7O09BR0c7SUFDVSxpQ0FBaUMsQ0FBQyw4QkFBOEIsRUFBRSxNQUFNLGlCQXFDcEY7SUFFTSw2QkFBNkIsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUt2RTtJQUVNLE1BQU07O01BVVo7SUFFRDs7O09BR0c7SUFDSSxVQUFVLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxRQVNoRDtJQUVEOzs7Ozs7T0FNRztJQUNVLFdBQVcsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsK0JBeUJ2RjtJQUVEOzs7O09BSUc7SUFDVSxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxFQUFFLGlCQUc5RTtJQUVEOzs7Ozs7UUFNSTtJQUNHLFFBQVEsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxZQUFZLEdBQUcsU0FBUyxFQUFFLFdBQVcsRUFBRSxFQUFFLGNBTTlGO0lBRUQ7Ozs7O1FBS0k7SUFDRyxlQUFlLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsRUFBRSxXQUdqRTtJQUVEOzs7T0FHRztJQUNJLGFBQWEsQ0FBQyxlQUFlLEVBQUUsWUFBWSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FFL0Q7SUFVRCxXQUFXLElBQUksV0FBVyxFQUFFLENBRTNCO0lBRUQsZ0JBQWdCLElBQUksRUFBRSxFQUFFLENBRXZCO0lBRUQsZUFBZSxDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sUUFVckU7Q0FDRiJ9
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uX25vdGVfY2FjaGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdF9mdW5jdGlvbl9zaW11bGF0b3IvZXhlY3V0aW9uX25vdGVfY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR2hFLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELFVBQVUsV0FBVztJQUNuQixJQUFJLEVBQUUsUUFBUSxDQUFDO0lBQ2YsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUNoQixzQkFBc0IsRUFBRSxFQUFFLENBQUM7Q0FDNUI7QUFFRDs7R0FFRztBQUNILHFCQUFhLGtCQUFrQjs7SUFvQ2pCLE9BQU8sQ0FBQyxRQUFRLENBQUMsaUJBQWlCO0lBbkM5Qzs7O09BR0c7SUFDSCxPQUFPLENBQUMsS0FBSyxDQUFxQjtJQUNsQzs7T0FFRztJQUNILE9BQU8sQ0FBQyxPQUFPLENBQXlDO0lBRXhEOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsWUFBWSxDQUF1QztJQUUzRDs7T0FFRztJQUNILE9BQU8sQ0FBQyxpQkFBaUIsQ0FBMEI7SUFFbkQ7O09BRUc7SUFDSCxPQUFPLENBQUMsOEJBQThCLENBQUs7SUFFM0MsT0FBTyxDQUFDLGlCQUFpQixDQUFTO0lBRWxDOzs7T0FHRztJQUNILE9BQU8sQ0FBQyw4QkFBOEIsQ0FBc0I7SUFFNUQsWUFBNkIsaUJBQWlCLEVBQUUsRUFBRSxFQUFJO0lBRXREOzs7T0FHRztJQUNVLGlDQUFpQyxDQUFDLDhCQUE4QixFQUFFLE1BQU0saUJBc0NwRjtJQUVNLDZCQUE2QixDQUFDLGlCQUFpQixFQUFFLE1BQU0sR0FBRyxPQUFPLENBS3ZFO0lBRU0sTUFBTSxTQU1aO0lBRUQ7OztPQUdHO0lBQ0ksVUFBVSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFTaEQ7SUFFRDs7Ozs7O09BTUc7SUFDVSxXQUFXLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLCtCQXlCdkY7SUFFRDs7OztPQUlHO0lBQ1UsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsRUFBRSxpQkFHOUU7SUFFRDs7Ozs7O1FBTUk7SUFDRyxRQUFRLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsWUFBWSxHQUFHLFNBQVMsRUFBRSxXQUFXLEVBQUUsRUFBRSxjQU05RjtJQUVEOzs7OztRQUtJO0lBQ0csZUFBZSxDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEVBQUUsV0FHakU7SUFFRDs7O09BR0c7SUFDSSxhQUFhLENBQUMsZUFBZSxFQUFFLFlBQVksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBRS9EO0lBVUQsV0FBVyxJQUFJLFdBQVcsRUFBRSxDQUUzQjtJQUVEOztPQUVHO0lBQ0gsb0JBQW9CLElBQUksRUFBRSxFQUFFLENBRTNCO0lBRUQ7OztPQUdHO0lBQ0gsZ0JBQWdCLElBQUksRUFBRSxFQUFFLENBTXZCO0lBRUQsaUJBQWlCLElBQUksRUFBRSxDQUV0QjtDQWFGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"execution_note_cache.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/execution_note_cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,UAAU,WAAW;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB,EAAE,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,kBAAkB;;IAiCjB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAhC9C;;;OAGG;IACH,OAAO,CAAC,KAAK,CAAqB;IAClC;;OAEG;IACH,OAAO,CAAC,OAAO,CAAyC;IAExD;;;;OAIG;IACH,OAAO,CAAC,YAAY,CAAuC;IAE3D;;OAEG;IACH,OAAO,CAAC,aAAa,CAA0B;IAE/C,OAAO,CAAC,8BAA8B,CAAK;IAE3C,OAAO,CAAC,iBAAiB,CAAS;IAElC;;;OAGG;IACH,OAAO,CAAC,8BAA8B,CAAQ;IAE9C,YAA6B,iBAAiB,EAAE,EAAE,EAAI;IAEtD;;;OAGG;IACU,iCAAiC,CAAC,8BAA8B,EAAE,MAAM,iBAqCpF;IAEM,6BAA6B,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAKvE;IAEM,MAAM;;MAUZ;IAED;;;OAGG;IACI,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,QAShD;IAED;;;;;;OAMG;IACU,WAAW,CAAC,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,+BAyBvF;IAED;;;;OAIG;IACU,gBAAgB,CAAC,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,iBAG9E;IAED;;;;;;QAMI;IACG,QAAQ,CAAC,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,SAAS,EAAE,WAAW,EAAE,EAAE,cAM9F;IAED;;;;;QAKI;IACG,eAAe,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,WAGjE;IAED;;;OAGG;IACI,aAAa,CAAC,eAAe,EAAE,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAE/D;IAUD,WAAW,IAAI,WAAW,EAAE,CAE3B;IAED,gBAAgB,IAAI,EAAE,EAAE,CAEvB;IAED,eAAe,CAAC,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,QAUrE;CACF"}
1
+ {"version":3,"file":"execution_note_cache.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/execution_note_cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,UAAU,WAAW;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB,EAAE,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,kBAAkB;;IAoCjB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAnC9C;;;OAGG;IACH,OAAO,CAAC,KAAK,CAAqB;IAClC;;OAEG;IACH,OAAO,CAAC,OAAO,CAAyC;IAExD;;;;OAIG;IACH,OAAO,CAAC,YAAY,CAAuC;IAE3D;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAA0B;IAEnD;;OAEG;IACH,OAAO,CAAC,8BAA8B,CAAK;IAE3C,OAAO,CAAC,iBAAiB,CAAS;IAElC;;;OAGG;IACH,OAAO,CAAC,8BAA8B,CAAsB;IAE5D,YAA6B,iBAAiB,EAAE,EAAE,EAAI;IAEtD;;;OAGG;IACU,iCAAiC,CAAC,8BAA8B,EAAE,MAAM,iBAsCpF;IAEM,6BAA6B,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAKvE;IAEM,MAAM,SAMZ;IAED;;;OAGG;IACI,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,QAShD;IAED;;;;;;OAMG;IACU,WAAW,CAAC,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,+BAyBvF;IAED;;;;OAIG;IACU,gBAAgB,CAAC,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,iBAG9E;IAED;;;;;;QAMI;IACG,QAAQ,CAAC,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,SAAS,EAAE,WAAW,EAAE,EAAE,cAM9F;IAED;;;;;QAKI;IACG,eAAe,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,WAGjE;IAED;;;OAGG;IACI,aAAa,CAAC,eAAe,EAAE,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAE/D;IAUD,WAAW,IAAI,WAAW,EAAE,CAE3B;IAED;;OAEG;IACH,oBAAoB,IAAI,EAAE,EAAE,CAE3B;IAED;;;OAGG;IACH,gBAAgB,IAAI,EAAE,EAAE,CAMvB;IAED,iBAAiB,IAAI,EAAE,CAEtB;CAaF"}
@@ -17,23 +17,24 @@ import { computeNoteHashNonce, computeUniqueNoteHash, siloNoteHash, siloNullifie
17
17
  * Note that their value (bigint representation) is used because Frs cannot be looked up in Sets.
18
18
  */ nullifierMap;
19
19
  /**
20
- * All nullifiers emitted in this transaction.
21
- */ allNullifiers;
22
- minRevertibleSideEffectCounter;
20
+ * Nullifiers emitted by private calls in this transaction.
21
+ */ emittedNullifiers;
22
+ /**
23
+ * The counter that separates non-revertible side effects (which persist even if the tx reverts) from revertible ones.
24
+ */ minRevertibleSideEffectCounter;
23
25
  inRevertiblePhase;
24
26
  /**
25
- * We don't need to use the tx request hash for nonces if another non revertible nullifier is emitted.
26
- * In that case we disable injecting the tx request hash as a nullifier.
27
+ * Whether the protocol nullifier was used for nonce generation.
28
+ * We don't need to use the protocol nullifier if a non-revertible nullifier is emitted.
27
29
  */ usedProtocolNullifierForNonces;
28
30
  constructor(protocolNullifier){
29
31
  this.protocolNullifier = protocolNullifier;
30
32
  this.notes = [];
31
33
  this.noteMap = new Map();
32
34
  this.nullifierMap = new Map();
33
- this.allNullifiers = new Set();
35
+ this.emittedNullifiers = new Set();
34
36
  this.minRevertibleSideEffectCounter = 0;
35
37
  this.inRevertiblePhase = false;
36
- this.usedProtocolNullifierForNonces = true;
37
38
  }
38
39
  /**
39
40
  * Enters the revertible phase of the transaction.
@@ -44,16 +45,16 @@ import { computeNoteHashNonce, computeUniqueNoteHash, siloNoteHash, siloNullifie
44
45
  }
45
46
  this.inRevertiblePhase = true;
46
47
  this.minRevertibleSideEffectCounter = minRevertibleSideEffectCounter;
47
- let nonceGenerator = this.protocolNullifier;
48
- const nullifiers = this.getAllNullifiers();
49
- if (nullifiers.length > 0) {
50
- nonceGenerator = new Fr(nullifiers[0]);
51
- this.usedProtocolNullifierForNonces = false;
52
- }
48
+ const nullifiers = this.getEmittedNullifiers();
49
+ // If there are no nullifiers emitted by private calls so far, we use the protocol nullifier as the nonce generator.
50
+ // Note: There could still be nullifiers emitted after the counter is set, but those nullifiers are revertible, so
51
+ // we don't want to use them as the nonce generator.
52
+ this.usedProtocolNullifierForNonces = nullifiers.length === 0;
53
+ const nonceGenerator = this.usedProtocolNullifierForNonces ? this.protocolNullifier : new Fr(nullifiers[0]);
53
54
  // The existing pending notes are all non-revertible.
54
55
  // They cannot be squashed by nullifiers emitted after minRevertibleSideEffectCounter is set.
55
56
  // Their indexes in the tx are known at this point and won't change. So we can assign a nonce to each one of them.
56
- // The nonces will be used to create the "complete" nullifier.
57
+ // The nonces will be used to create the "unique" note hashes.
57
58
  const updatedNotes = await Promise.all(this.notes.map(async ({ note, counter }, i)=>{
58
59
  const noteNonce = await computeNoteHashNonce(nonceGenerator, i);
59
60
  const uniqueNoteHash = await computeUniqueNoteHash(noteNonce, await siloNoteHash(note.contractAddress, note.noteHash));
@@ -78,15 +79,11 @@ import { computeNoteHashNonce, computeUniqueNoteHash, siloNoteHash, siloNullifie
78
79
  return sideEffectCounter >= this.minRevertibleSideEffectCounter;
79
80
  }
80
81
  finish() {
81
- // If we never entered the revertible phase, we need to use the protocol nullifier to compute the nonces for the
82
- // notes if no nullifiers have been emitted.
82
+ // If we never entered the revertible phase, and there are no nullifiers emitted, we need to use the protocol
83
+ // nullifier as the nonce generator.
83
84
  if (!this.inRevertiblePhase) {
84
- this.usedProtocolNullifierForNonces = this.getAllNullifiers().length === 0;
85
+ this.usedProtocolNullifierForNonces = this.getEmittedNullifiers().length === 0;
85
86
  }
86
- // If we entered the revertible phase, the nonce generator was decided based on wether or not a nullifier was emitted before entering.
87
- return {
88
- usedProtocolNullifierForNonces: this.usedProtocolNullifierForNonces
89
- };
90
87
  }
91
88
  /**
92
89
  * Add a new note to cache.
@@ -124,11 +121,11 @@ import { computeNoteHashNonce, computeUniqueNoteHash, siloNoteHash, siloNullifie
124
121
  this.notes = this.notes.filter((n)=>n.counter !== note.counter);
125
122
  // If the note is non revertible and the nullifier was emitted in the revertible phase, both the note hash and the nullifier will be emitted
126
123
  if (this.inRevertiblePhase && note.counter < this.minRevertibleSideEffectCounter) {
127
- this.recordNullifier(contractAddress, siloedNullifier);
124
+ this.#recordNullifier(contractAddress, siloedNullifier);
128
125
  }
129
126
  } else {
130
127
  // If the note being nullified comes from a previous tx the nullifier will be emitted.
131
- this.recordNullifier(contractAddress, siloedNullifier);
128
+ this.#recordNullifier(contractAddress, siloedNullifier);
132
129
  }
133
130
  return nullifiedNoteHashCounter;
134
131
  }
@@ -138,7 +135,7 @@ import { computeNoteHashNonce, computeUniqueNoteHash, siloNoteHash, siloNullifie
138
135
  * @param innerNullifier
139
136
  */ async nullifierCreated(contractAddress, innerNullifier) {
140
137
  const siloedNullifier = (await siloNullifier(contractAddress, innerNullifier)).toBigInt();
141
- this.recordNullifier(contractAddress, siloedNullifier);
138
+ this.#recordNullifier(contractAddress, siloedNullifier);
142
139
  }
143
140
  /**
144
141
  * Return notes created up to current point in execution.
@@ -174,18 +171,38 @@ import { computeNoteHashNonce, computeUniqueNoteHash, siloNoteHash, siloNullifie
174
171
  getAllNotes() {
175
172
  return this.notes;
176
173
  }
177
- getAllNullifiers() {
174
+ /**
175
+ * @returns All nullifiers emitted by private calls in this transaction.
176
+ */ getEmittedNullifiers() {
178
177
  return [
179
- ...this.allNullifiers
178
+ ...this.emittedNullifiers
180
179
  ].map((n)=>new Fr(n));
181
180
  }
182
- recordNullifier(contractAddress, siloedNullifier) {
181
+ /**
182
+ * @returns All nullifiers emitted by private calls in this transaction. If the protocol nullifier was used as the
183
+ * nonce generator, it is injected as the first nullifier.
184
+ */ getAllNullifiers() {
185
+ if (this.usedProtocolNullifierForNonces === undefined) {
186
+ throw new Error('usedProtocolNullifierForNonces is not set yet. Call finish() to complete the transaction.');
187
+ }
188
+ const allNullifiers = this.getEmittedNullifiers();
189
+ return [
190
+ ...this.usedProtocolNullifierForNonces ? [
191
+ this.protocolNullifier
192
+ ] : [],
193
+ ...allNullifiers
194
+ ];
195
+ }
196
+ getNonceGenerator() {
197
+ return this.getAllNullifiers()[0];
198
+ }
199
+ #recordNullifier(contractAddress, siloedNullifier) {
183
200
  const nullifiers = this.getNullifiers(contractAddress);
184
201
  if (nullifiers.has(siloedNullifier)) {
185
202
  throw new Error(`Duplicate siloed nullifier ${siloedNullifier} emitted by contract ${contractAddress}`);
186
203
  }
187
204
  nullifiers.add(siloedNullifier);
188
205
  this.nullifierMap.set(contractAddress.toBigInt(), nullifiers);
189
- this.allNullifiers.add(siloedNullifier);
206
+ this.emittedNullifiers.add(siloedNullifier);
190
207
  }
191
208
  }
@@ -9,6 +9,6 @@ export { PrivateExecutionOracle } from './oracle/private_execution_oracle.js';
9
9
  export { Oracle } from './oracle/oracle.js';
10
10
  export { executePrivateFunction, extractPrivateCircuitPublicInputs } from './oracle/private_execution.js';
11
11
  export { generateSimulatedProvingResult } from './contract_function_simulator.js';
12
- export { packAsRetrievedNote } from './oracle/note_packing_utils.js';
12
+ export { packAsHintedNote } from './oracle/note_packing_utils.js';
13
13
  export { UtilityContext } from './noir-structs/utility_context.js';
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdF9mdW5jdGlvbl9zaW11bGF0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDaEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLFlBQVksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDOUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQyJ9
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdF9mdW5jdGlvbl9zaW11bGF0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDaEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLFlBQVksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDOUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtH,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,iCAAiC,EAAE,MAAM,+BAA+B,CAAC;AAC1G,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtH,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,iCAAiC,EAAE,MAAM,+BAA+B,CAAC;AAC1G,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC"}
@@ -8,5 +8,5 @@ export { PrivateExecutionOracle } from './oracle/private_execution_oracle.js';
8
8
  export { Oracle } from './oracle/oracle.js';
9
9
  export { executePrivateFunction, extractPrivateCircuitPublicInputs } from './oracle/private_execution.js';
10
10
  export { generateSimulatedProvingResult } from './contract_function_simulator.js';
11
- export { packAsRetrievedNote } from './oracle/note_packing_utils.js';
11
+ export { packAsHintedNote } from './oracle/note_packing_utils.js';
12
12
  export { UtilityContext } from './noir-structs/utility_context.js';
@@ -4,17 +4,18 @@ import { EventSelector } from '@aztec/stdlib/abi';
4
4
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
5
5
  import { TxHash } from '@aztec/stdlib/tx';
6
6
  /**
7
- * Intermediate struct used to perform batch event validation by PXE. The `utilityValidateEnqueuedNotesAndEvents` oracle
7
+ * Intermediate struct used to perform batch event validation by PXE. The `utilityValidateAndStoreEnqueuedNotesAndEvents` oracle
8
8
  * expects for values of this type to be stored in a `CapsuleArray`.
9
9
  */
10
10
  export declare class EventValidationRequest {
11
11
  contractAddress: AztecAddress;
12
12
  eventTypeId: EventSelector;
13
+ randomness: Fr;
13
14
  serializedEvent: Fr[];
14
15
  eventCommitment: Fr;
15
16
  txHash: TxHash;
16
17
  recipient: AztecAddress;
17
- constructor(contractAddress: AztecAddress, eventTypeId: EventSelector, serializedEvent: Fr[], eventCommitment: Fr, txHash: TxHash, recipient: AztecAddress);
18
+ constructor(contractAddress: AztecAddress, eventTypeId: EventSelector, randomness: Fr, serializedEvent: Fr[], eventCommitment: Fr, txHash: TxHash, recipient: AztecAddress);
18
19
  static fromFields(fields: Fr[] | FieldReader): EventValidationRequest;
19
20
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRfdmFsaWRhdGlvbl9yZXF1ZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL25vaXItc3RydWN0cy9ldmVudF92YWxpZGF0aW9uX3JlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUsxQzs7O0dBR0c7QUFDSCxxQkFBYSxzQkFBc0I7SUFFeEIsZUFBZSxFQUFFLFlBQVk7SUFDN0IsV0FBVyxFQUFFLGFBQWE7SUFDMUIsZUFBZSxFQUFFLEVBQUUsRUFBRTtJQUNyQixlQUFlLEVBQUUsRUFBRTtJQUNuQixNQUFNLEVBQUUsTUFBTTtJQUNkLFNBQVMsRUFBRSxZQUFZO0lBTmhDLFlBQ1MsZUFBZSxFQUFFLFlBQVksRUFDN0IsV0FBVyxFQUFFLGFBQWEsRUFDMUIsZUFBZSxFQUFFLEVBQUUsRUFBRSxFQUNyQixlQUFlLEVBQUUsRUFBRSxFQUNuQixNQUFNLEVBQUUsTUFBTSxFQUNkLFNBQVMsRUFBRSxZQUFZLEVBQzVCO0lBRUosTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxHQUFHLHNCQUFzQixDQXNCcEU7Q0FDRiJ9
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRfdmFsaWRhdGlvbl9yZXF1ZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL25vaXItc3RydWN0cy9ldmVudF92YWxpZGF0aW9uX3JlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUsxQzs7O0dBR0c7QUFDSCxxQkFBYSxzQkFBc0I7SUFFeEIsZUFBZSxFQUFFLFlBQVk7SUFDN0IsV0FBVyxFQUFFLGFBQWE7SUFDMUIsVUFBVSxFQUFFLEVBQUU7SUFDZCxlQUFlLEVBQUUsRUFBRSxFQUFFO0lBQ3JCLGVBQWUsRUFBRSxFQUFFO0lBQ25CLE1BQU0sRUFBRSxNQUFNO0lBQ2QsU0FBUyxFQUFFLFlBQVk7SUFQaEMsWUFDUyxlQUFlLEVBQUUsWUFBWSxFQUM3QixXQUFXLEVBQUUsYUFBYSxFQUMxQixVQUFVLEVBQUUsRUFBRSxFQUNkLGVBQWUsRUFBRSxFQUFFLEVBQUUsRUFDckIsZUFBZSxFQUFFLEVBQUUsRUFDbkIsTUFBTSxFQUFFLE1BQU0sRUFDZCxTQUFTLEVBQUUsWUFBWSxFQUM1QjtJQUVKLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLFdBQVcsR0FBRyxzQkFBc0IsQ0F5QnBFO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"event_validation_request.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/event_validation_request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAK1C;;;GAGG;AACH,qBAAa,sBAAsB;IAExB,eAAe,EAAE,YAAY;IAC7B,WAAW,EAAE,aAAa;IAC1B,eAAe,EAAE,EAAE,EAAE;IACrB,eAAe,EAAE,EAAE;IACnB,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,YAAY;IANhC,YACS,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,aAAa,EAC1B,eAAe,EAAE,EAAE,EAAE,EACrB,eAAe,EAAE,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,YAAY,EAC5B;IAEJ,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,sBAAsB,CAsBpE;CACF"}
1
+ {"version":3,"file":"event_validation_request.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/event_validation_request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAK1C;;;GAGG;AACH,qBAAa,sBAAsB;IAExB,eAAe,EAAE,YAAY;IAC7B,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,EAAE;IACd,eAAe,EAAE,EAAE,EAAE;IACrB,eAAe,EAAE,EAAE;IACnB,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,YAAY;IAPhC,YACS,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,aAAa,EAC1B,UAAU,EAAE,EAAE,EACd,eAAe,EAAE,EAAE,EAAE,EACrB,eAAe,EAAE,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,YAAY,EAC5B;IAEJ,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,sBAAsB,CAyBpE;CACF"}
@@ -5,18 +5,20 @@ import { TxHash } from '@aztec/stdlib/tx';
5
5
  // TODO(#14617): should we compute this from constants? This value is aztec-nr specific.
6
6
  const MAX_EVENT_SERIALIZED_LEN = 12;
7
7
  /**
8
- * Intermediate struct used to perform batch event validation by PXE. The `utilityValidateEnqueuedNotesAndEvents` oracle
8
+ * Intermediate struct used to perform batch event validation by PXE. The `utilityValidateAndStoreEnqueuedNotesAndEvents` oracle
9
9
  * expects for values of this type to be stored in a `CapsuleArray`.
10
10
  */ export class EventValidationRequest {
11
11
  contractAddress;
12
12
  eventTypeId;
13
+ randomness;
13
14
  serializedEvent;
14
15
  eventCommitment;
15
16
  txHash;
16
17
  recipient;
17
- constructor(contractAddress, eventTypeId, serializedEvent, eventCommitment, txHash, recipient){
18
+ constructor(contractAddress, eventTypeId, randomness, serializedEvent, eventCommitment, txHash, recipient){
18
19
  this.contractAddress = contractAddress;
19
20
  this.eventTypeId = eventTypeId;
21
+ this.randomness = randomness;
20
22
  this.serializedEvent = serializedEvent;
21
23
  this.eventCommitment = eventCommitment;
22
24
  this.txHash = txHash;
@@ -26,12 +28,13 @@ const MAX_EVENT_SERIALIZED_LEN = 12;
26
28
  const reader = FieldReader.asReader(fields);
27
29
  const contractAddress = AztecAddress.fromField(reader.readField());
28
30
  const eventTypeId = EventSelector.fromField(reader.readField());
31
+ const randomness = reader.readField();
29
32
  const eventStorage = reader.readFieldArray(MAX_EVENT_SERIALIZED_LEN);
30
33
  const eventLen = reader.readField().toNumber();
31
34
  const serializedEvent = eventStorage.slice(0, eventLen);
32
35
  const eventCommitment = reader.readField();
33
36
  const txHash = TxHash.fromField(reader.readField());
34
37
  const recipient = AztecAddress.fromField(reader.readField());
35
- return new EventValidationRequest(contractAddress, eventTypeId, serializedEvent, eventCommitment, txHash, recipient);
38
+ return new EventValidationRequest(contractAddress, eventTypeId, randomness, serializedEvent, eventCommitment, txHash, recipient);
36
39
  }
37
40
  }
@@ -4,7 +4,7 @@ import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
  import { TxHash } from '@aztec/stdlib/tx';
5
5
  export declare const MAX_NOTE_PACKED_LEN = 10;
6
6
  /**
7
- * Intermediate struct used to perform batch note validation by PXE. The `utilityValidateEnqueuedNotesAndEvents` oracle
7
+ * Intermediate struct used to perform batch note validation by PXE. The `utilityValidateAndStoreEnqueuedNotesAndEvents` oracle
8
8
  * expects for values of this type to be stored in a `CapsuleArray`.
9
9
  */
10
10
  export declare class NoteValidationRequest {
@@ -4,7 +4,7 @@ import { TxHash } from '@aztec/stdlib/tx';
4
4
  // TODO(#14617): should we compute this from constants? This value is aztec-nr specific.
5
5
  export const MAX_NOTE_PACKED_LEN = 10;
6
6
  /**
7
- * Intermediate struct used to perform batch note validation by PXE. The `utilityValidateEnqueuedNotesAndEvents` oracle
7
+ * Intermediate struct used to perform batch note validation by PXE. The `utilityValidateAndStoreEnqueuedNotesAndEvents` oracle
8
8
  * expects for values of this type to be stored in a `CapsuleArray`.
9
9
  */ export class NoteValidationRequest {
10
10
  contractAddress;
@@ -1,22 +1,16 @@
1
- import { Fr } from '@aztec/foundation/curves/bn254';
2
- import type { FieldsOf } from '@aztec/foundation/types';
3
1
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
- import type { UInt64 } from '@aztec/stdlib/types';
2
+ import type { BlockHeader } from '@aztec/stdlib/tx';
5
3
  /**
6
4
  * TypeScript counterpart of utility_context.nr. Used only as a return value for the utilityGetUtilityContext oracle.
7
5
  */
8
6
  export declare class UtilityContext {
9
- readonly blockNumber: number;
10
- readonly timestamp: UInt64;
7
+ readonly blockHeader: BlockHeader;
11
8
  readonly contractAddress: AztecAddress;
12
- readonly version: Fr;
13
- readonly chainId: Fr;
14
- private constructor();
15
- static from(fields: FieldsOf<UtilityContext>): UtilityContext;
9
+ constructor(blockHeader: BlockHeader, contractAddress: AztecAddress);
16
10
  /**
17
11
  * Returns a representation of the utility context as expected by intrinsic Noir deserialization.
18
12
  * The order of the fields has to be the same as the order of the fields in the utility_context.nr.
19
13
  */
20
14
  toNoirRepresentation(): (string | string[])[];
21
15
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eV9jb250ZXh0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL25vaXItc3RydWN0cy91dGlsaXR5X2NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWxEOztHQUVHO0FBQ0gscUJBQWEsY0FBYzthQUVQLFdBQVcsRUFBRSxNQUFNO2FBQ25CLFNBQVMsRUFBRSxNQUFNO2FBQ2pCLGVBQWUsRUFBRSxZQUFZO2FBQzdCLE9BQU8sRUFBRSxFQUFFO2FBQ1gsT0FBTyxFQUFFLEVBQUU7SUFMN0IsT0FBTyxlQU1IO0lBRUosTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxrQkFRM0M7SUFFRDs7O09BR0c7SUFDSSxvQkFBb0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBU25EO0NBQ0YifQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eV9jb250ZXh0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL25vaXItc3RydWN0cy91dGlsaXR5X2NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFcEQ7O0dBRUc7QUFDSCxxQkFBYSxjQUFjO2FBRVAsV0FBVyxFQUFFLFdBQVc7YUFDeEIsZUFBZSxFQUFFLFlBQVk7SUFGL0MsWUFDa0IsV0FBVyxFQUFFLFdBQVcsRUFDeEIsZUFBZSxFQUFFLFlBQVksRUFDM0M7SUFFSjs7O09BR0c7SUFDSSxvQkFBb0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBSW5EO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"utility_context.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/utility_context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD;;GAEG;AACH,qBAAa,cAAc;aAEP,WAAW,EAAE,MAAM;aACnB,SAAS,EAAE,MAAM;aACjB,eAAe,EAAE,YAAY;aAC7B,OAAO,EAAE,EAAE;aACX,OAAO,EAAE,EAAE;IAL7B,OAAO,eAMH;IAEJ,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,kBAQ3C;IAED;;;OAGG;IACI,oBAAoB,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,CASnD;CACF"}
1
+ {"version":3,"file":"utility_context.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/utility_context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,qBAAa,cAAc;aAEP,WAAW,EAAE,WAAW;aACxB,eAAe,EAAE,YAAY;IAF/C,YACkB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,YAAY,EAC3C;IAEJ;;;OAGG;IACI,oBAAoB,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,CAInD;CACF"}
@@ -1,33 +1,22 @@
1
- import { Fr } from '@aztec/foundation/curves/bn254';
1
+ import { toACVMField } from '@aztec/simulator/client';
2
2
  /**
3
3
  * TypeScript counterpart of utility_context.nr. Used only as a return value for the utilityGetUtilityContext oracle.
4
4
  */ export class UtilityContext {
5
- blockNumber;
6
- timestamp;
5
+ blockHeader;
7
6
  contractAddress;
8
- version;
9
- chainId;
10
- constructor(blockNumber, timestamp, contractAddress, version, chainId){
11
- this.blockNumber = blockNumber;
12
- this.timestamp = timestamp;
7
+ constructor(blockHeader, contractAddress){
8
+ this.blockHeader = blockHeader;
13
9
  this.contractAddress = contractAddress;
14
- this.version = version;
15
- this.chainId = chainId;
16
- }
17
- static from(fields) {
18
- return new UtilityContext(fields.blockNumber, fields.timestamp, fields.contractAddress, fields.version, fields.chainId);
19
10
  }
20
11
  /**
21
12
  * Returns a representation of the utility context as expected by intrinsic Noir deserialization.
22
13
  * The order of the fields has to be the same as the order of the fields in the utility_context.nr.
23
14
  */ toNoirRepresentation() {
24
15
  // TODO(#12874): remove the stupid as string conversion by modifying ForeignCallOutput type in acvm.js
16
+ const blockHeaderFields = this.blockHeader.toFields().map(toACVMField);
25
17
  return [
26
- new Fr(this.blockNumber).toString(),
27
- new Fr(this.timestamp).toString(),
28
- this.contractAddress.toString(),
29
- this.version.toString(),
30
- this.chainId.toString()
18
+ ...blockHeaderFields,
19
+ this.contractAddress.toString()
31
20
  ];
32
21
  }
33
22
  }