@aztec/pxe 0.0.0-test.1 → 0.0.1-commit.b655e406

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 (309) hide show
  1. package/README.md +5 -5
  2. package/dest/bin/check_oracle_version.d.ts +2 -0
  3. package/dest/bin/check_oracle_version.d.ts.map +1 -0
  4. package/dest/bin/check_oracle_version.js +39 -0
  5. package/dest/config/index.d.ts +10 -15
  6. package/dest/config/index.d.ts.map +1 -1
  7. package/dest/config/index.js +11 -20
  8. package/dest/config/package_info.js +1 -1
  9. package/dest/contract_function_simulator/contract_function_simulator.d.ts +56 -0
  10. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -0
  11. package/dest/contract_function_simulator/contract_function_simulator.js +301 -0
  12. package/dest/contract_function_simulator/execution_data_provider.d.ts +274 -0
  13. package/dest/contract_function_simulator/execution_data_provider.d.ts.map +1 -0
  14. package/dest/contract_function_simulator/execution_data_provider.js +14 -0
  15. package/dest/contract_function_simulator/execution_note_cache.d.ts +93 -0
  16. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -0
  17. package/dest/contract_function_simulator/execution_note_cache.js +183 -0
  18. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +16 -0
  19. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -0
  20. package/dest/contract_function_simulator/execution_tagging_index_cache.js +26 -0
  21. package/dest/contract_function_simulator/hashed_values_cache.d.ts +28 -0
  22. package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -0
  23. package/dest/contract_function_simulator/hashed_values_cache.js +36 -0
  24. package/dest/contract_function_simulator/index.d.ts +14 -0
  25. package/dest/contract_function_simulator/index.d.ts.map +1 -0
  26. package/dest/contract_function_simulator/index.js +12 -0
  27. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +20 -0
  28. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -0
  29. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +37 -0
  30. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +15 -0
  31. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -0
  32. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +25 -0
  33. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +17 -0
  34. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -0
  35. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +65 -0
  36. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +22 -0
  37. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -0
  38. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +42 -0
  39. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +22 -0
  40. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -0
  41. package/dest/contract_function_simulator/noir-structs/utility_context.js +33 -0
  42. package/dest/contract_function_simulator/oracle/index.d.ts +14 -0
  43. package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -0
  44. package/dest/contract_function_simulator/oracle/index.js +2 -0
  45. package/dest/contract_function_simulator/oracle/interfaces.d.ts +97 -0
  46. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -0
  47. package/dest/contract_function_simulator/oracle/interfaces.js +4 -0
  48. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +19 -0
  49. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -0
  50. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +24 -0
  51. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +22 -0
  52. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -0
  53. package/dest/contract_function_simulator/oracle/note_packing_utils.js +49 -0
  54. package/dest/contract_function_simulator/oracle/oracle.d.ts +57 -0
  55. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -0
  56. package/dest/contract_function_simulator/oracle/oracle.js +328 -0
  57. package/dest/contract_function_simulator/oracle/private_execution.d.ts +48 -0
  58. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -0
  59. package/dest/contract_function_simulator/oracle/private_execution.js +123 -0
  60. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +236 -0
  61. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -0
  62. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +417 -0
  63. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +154 -0
  64. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -0
  65. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +265 -0
  66. package/dest/contract_function_simulator/pick_notes.d.ts +85 -0
  67. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -0
  68. package/dest/contract_function_simulator/pick_notes.js +51 -0
  69. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +6 -0
  70. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -0
  71. package/dest/contract_function_simulator/proxied_contract_data_source.js +62 -0
  72. package/dest/contract_function_simulator/proxied_node.d.ts +9 -0
  73. package/dest/contract_function_simulator/proxied_node.d.ts.map +1 -0
  74. package/dest/contract_function_simulator/proxied_node.js +27 -0
  75. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +122 -0
  76. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +1 -0
  77. package/dest/contract_function_simulator/pxe_oracle_interface.js +701 -0
  78. package/dest/entrypoints/client/bundle/index.d.ts +4 -2
  79. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  80. package/dest/entrypoints/client/bundle/index.js +3 -2
  81. package/dest/entrypoints/client/bundle/utils.d.ts +9 -9
  82. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  83. package/dest/entrypoints/client/bundle/utils.js +18 -12
  84. package/dest/entrypoints/client/lazy/index.d.ts +4 -2
  85. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  86. package/dest/entrypoints/client/lazy/index.js +3 -2
  87. package/dest/entrypoints/client/lazy/utils.d.ts +8 -8
  88. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  89. package/dest/entrypoints/client/lazy/utils.js +17 -11
  90. package/dest/entrypoints/{client/pxe_creation_options.d.ts → pxe_creation_options.d.ts} +4 -1
  91. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -0
  92. package/dest/entrypoints/server/index.d.ts +5 -3
  93. package/dest/entrypoints/server/index.d.ts.map +1 -1
  94. package/dest/entrypoints/server/index.js +4 -3
  95. package/dest/entrypoints/server/utils.d.ts +7 -15
  96. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  97. package/dest/entrypoints/server/utils.js +34 -28
  98. package/dest/{pxe_service/error_enriching.d.ts → error_enriching.d.ts} +1 -1
  99. package/dest/error_enriching.d.ts.map +1 -0
  100. package/dest/{pxe_service/error_enriching.js → error_enriching.js} +26 -18
  101. package/dest/oracle_version.d.ts +3 -0
  102. package/dest/oracle_version.d.ts.map +1 -0
  103. package/dest/oracle_version.js +10 -0
  104. package/dest/{kernel_prover → private_kernel}/hints/build_private_kernel_reset_private_inputs.d.ts +6 -6
  105. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +1 -0
  106. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.js +271 -0
  107. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +4 -0
  108. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +1 -0
  109. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.js +41 -0
  110. package/dest/private_kernel/hints/index.d.ts +3 -0
  111. package/dest/private_kernel/hints/index.d.ts.map +1 -0
  112. package/dest/{kernel_prover → private_kernel}/hints/index.js +1 -0
  113. package/dest/private_kernel/index.d.ts +3 -0
  114. package/dest/private_kernel/index.d.ts.map +1 -0
  115. package/dest/private_kernel/index.js +2 -0
  116. package/dest/private_kernel/private_kernel_execution_prover.d.ts +44 -0
  117. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -0
  118. package/dest/private_kernel/private_kernel_execution_prover.js +285 -0
  119. package/dest/{kernel_prover/proving_data_oracle.d.ts → private_kernel/private_kernel_oracle.d.ts} +17 -28
  120. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -0
  121. package/dest/private_kernel/private_kernel_oracle.js +4 -0
  122. package/dest/{kernel_oracle/index.d.ts → private_kernel/private_kernel_oracle_impl.d.ts} +8 -8
  123. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +1 -0
  124. package/dest/{kernel_oracle/index.js → private_kernel/private_kernel_oracle_impl.js} +19 -9
  125. package/dest/pxe.d.ts +233 -0
  126. package/dest/pxe.d.ts.map +1 -0
  127. package/dest/pxe.js +789 -0
  128. package/dest/storage/address_data_provider/address_data_provider.d.ts +1 -3
  129. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +1 -1
  130. package/dest/storage/address_data_provider/address_data_provider.js +0 -3
  131. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +14 -5
  132. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +1 -1
  133. package/dest/storage/capsule_data_provider/capsule_data_provider.js +85 -24
  134. package/dest/storage/contract_data_provider/contract_data_provider.d.ts +12 -47
  135. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +1 -1
  136. package/dest/storage/contract_data_provider/contract_data_provider.js +92 -70
  137. package/dest/storage/contract_data_provider/index.d.ts +0 -1
  138. package/dest/storage/contract_data_provider/index.d.ts.map +1 -1
  139. package/dest/storage/contract_data_provider/index.js +0 -1
  140. package/dest/storage/contract_data_provider/private_functions_tree.d.ts +2 -41
  141. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +1 -1
  142. package/dest/storage/contract_data_provider/private_functions_tree.js +9 -61
  143. package/dest/storage/index.d.ts +2 -3
  144. package/dest/storage/index.d.ts.map +1 -1
  145. package/dest/storage/index.js +2 -3
  146. package/dest/storage/metadata.d.ts +2 -0
  147. package/dest/storage/metadata.d.ts.map +1 -0
  148. package/dest/storage/metadata.js +1 -0
  149. package/dest/storage/note_data_provider/note_dao.d.ts +16 -22
  150. package/dest/storage/note_data_provider/note_dao.d.ts.map +1 -1
  151. package/dest/storage/note_data_provider/note_dao.js +16 -20
  152. package/dest/storage/note_data_provider/note_data_provider.d.ts +71 -8
  153. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +1 -1
  154. package/dest/storage/note_data_provider/note_data_provider.js +133 -74
  155. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +43 -0
  156. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +1 -0
  157. package/dest/storage/private_event_data_provider/private_event_data_provider.js +104 -0
  158. package/dest/storage/sync_data_provider/sync_data_provider.d.ts +2 -4
  159. package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +1 -1
  160. package/dest/storage/sync_data_provider/sync_data_provider.js +2 -5
  161. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +28 -6
  162. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +1 -1
  163. package/dest/storage/tagging_data_provider/tagging_data_provider.js +48 -24
  164. package/dest/synchronizer/synchronizer.d.ts +7 -9
  165. package/dest/synchronizer/synchronizer.d.ts.map +1 -1
  166. package/dest/synchronizer/synchronizer.js +17 -19
  167. package/dest/tagging/constants.d.ts +2 -0
  168. package/dest/tagging/constants.d.ts.map +1 -0
  169. package/dest/tagging/constants.js +2 -0
  170. package/dest/tagging/index.d.ts +7 -0
  171. package/dest/tagging/index.d.ts.map +1 -0
  172. package/dest/tagging/index.js +5 -0
  173. package/dest/tagging/siloed_tag.d.ts +14 -0
  174. package/dest/tagging/siloed_tag.d.ts.map +1 -0
  175. package/dest/tagging/siloed_tag.js +20 -0
  176. package/dest/tagging/tag.d.ts +12 -0
  177. package/dest/tagging/tag.d.ts.map +1 -0
  178. package/dest/tagging/tag.js +17 -0
  179. package/dest/tagging/utils.d.ts +18 -0
  180. package/dest/tagging/utils.d.ts.map +1 -0
  181. package/dest/tagging/utils.js +24 -0
  182. package/package.json +34 -32
  183. package/src/bin/check_oracle_version.ts +50 -0
  184. package/src/config/index.ts +20 -33
  185. package/src/config/package_info.ts +1 -1
  186. package/src/contract_function_simulator/contract_function_simulator.ts +548 -0
  187. package/src/contract_function_simulator/execution_data_provider.ts +343 -0
  188. package/src/contract_function_simulator/execution_note_cache.ts +222 -0
  189. package/src/contract_function_simulator/execution_tagging_index_cache.ts +32 -0
  190. package/src/contract_function_simulator/hashed_values_cache.ts +47 -0
  191. package/src/contract_function_simulator/index.ts +13 -0
  192. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +47 -0
  193. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +27 -0
  194. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +69 -0
  195. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +52 -0
  196. package/src/contract_function_simulator/noir-structs/utility_context.ts +42 -0
  197. package/src/contract_function_simulator/oracle/index.ts +16 -0
  198. package/src/contract_function_simulator/oracle/interfaces.ts +160 -0
  199. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +23 -0
  200. package/src/contract_function_simulator/oracle/note_packing_utils.ts +52 -0
  201. package/src/contract_function_simulator/oracle/oracle.ts +575 -0
  202. package/src/contract_function_simulator/oracle/private_execution.ts +207 -0
  203. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +625 -0
  204. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +358 -0
  205. package/src/contract_function_simulator/pick_notes.ts +141 -0
  206. package/src/contract_function_simulator/proxied_contract_data_source.ts +66 -0
  207. package/src/contract_function_simulator/proxied_node.ts +33 -0
  208. package/src/contract_function_simulator/pxe_oracle_interface.ts +1019 -0
  209. package/src/entrypoints/client/bundle/index.ts +4 -2
  210. package/src/entrypoints/client/bundle/utils.ts +36 -36
  211. package/src/entrypoints/client/lazy/index.ts +4 -2
  212. package/src/entrypoints/client/lazy/utils.ts +36 -31
  213. package/src/entrypoints/{client/pxe_creation_options.ts → pxe_creation_options.ts} +4 -1
  214. package/src/entrypoints/server/index.ts +5 -3
  215. package/src/entrypoints/server/utils.ts +69 -47
  216. package/src/{pxe_service/error_enriching.ts → error_enriching.ts} +36 -27
  217. package/src/oracle_version.ts +11 -0
  218. package/src/{kernel_prover → private_kernel}/hints/build_private_kernel_reset_private_inputs.ts +158 -142
  219. package/src/private_kernel/hints/compute_tx_include_by_timestamp.ts +58 -0
  220. package/src/{kernel_prover → private_kernel}/hints/index.ts +1 -0
  221. package/src/private_kernel/index.ts +2 -0
  222. package/src/private_kernel/private_kernel_execution_prover.ts +436 -0
  223. package/src/{kernel_prover/proving_data_oracle.ts → private_kernel/private_kernel_oracle.ts} +17 -29
  224. package/src/{kernel_oracle/index.ts → private_kernel/private_kernel_oracle_impl.ts} +30 -15
  225. package/src/pxe.ts +1113 -0
  226. package/src/storage/address_data_provider/address_data_provider.ts +1 -7
  227. package/src/storage/capsule_data_provider/capsule_data_provider.ts +97 -30
  228. package/src/storage/contract_data_provider/contract_data_provider.ts +114 -81
  229. package/src/storage/contract_data_provider/index.ts +0 -1
  230. package/src/storage/contract_data_provider/private_functions_tree.ts +11 -75
  231. package/src/storage/index.ts +2 -4
  232. package/src/storage/metadata.ts +1 -0
  233. package/src/storage/note_data_provider/note_dao.ts +19 -27
  234. package/src/storage/note_data_provider/note_data_provider.ts +161 -113
  235. package/src/storage/private_event_data_provider/private_event_data_provider.ts +148 -0
  236. package/src/storage/sync_data_provider/sync_data_provider.ts +4 -10
  237. package/src/storage/tagging_data_provider/tagging_data_provider.ts +58 -30
  238. package/src/synchronizer/synchronizer.ts +21 -22
  239. package/src/tagging/constants.ts +2 -0
  240. package/src/tagging/index.ts +6 -0
  241. package/src/tagging/siloed_tag.ts +22 -0
  242. package/src/tagging/tag.ts +16 -0
  243. package/src/tagging/utils.ts +31 -0
  244. package/dest/bin/index.d.ts +0 -3
  245. package/dest/bin/index.d.ts.map +0 -1
  246. package/dest/bin/index.js +0 -28
  247. package/dest/entrypoints/client/pxe_creation_options.d.ts.map +0 -1
  248. package/dest/kernel_oracle/index.d.ts.map +0 -1
  249. package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
  250. package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.js +0 -270
  251. package/dest/kernel_prover/hints/index.d.ts +0 -2
  252. package/dest/kernel_prover/hints/index.d.ts.map +0 -1
  253. package/dest/kernel_prover/index.d.ts +0 -3
  254. package/dest/kernel_prover/index.d.ts.map +0 -1
  255. package/dest/kernel_prover/index.js +0 -2
  256. package/dest/kernel_prover/kernel_prover.d.ts +0 -38
  257. package/dest/kernel_prover/kernel_prover.d.ts.map +0 -1
  258. package/dest/kernel_prover/kernel_prover.js +0 -217
  259. package/dest/kernel_prover/proving_data_oracle.d.ts.map +0 -1
  260. package/dest/kernel_prover/proving_data_oracle.js +0 -4
  261. package/dest/note_decryption_utils/add_public_values_to_payload.d.ts +0 -11
  262. package/dest/note_decryption_utils/add_public_values_to_payload.d.ts.map +0 -1
  263. package/dest/note_decryption_utils/add_public_values_to_payload.js +0 -47
  264. package/dest/pxe_http/index.d.ts +0 -2
  265. package/dest/pxe_http/index.d.ts.map +0 -1
  266. package/dest/pxe_http/index.js +0 -1
  267. package/dest/pxe_http/pxe_http_server.d.ts +0 -16
  268. package/dest/pxe_http/pxe_http_server.d.ts.map +0 -1
  269. package/dest/pxe_http/pxe_http_server.js +0 -27
  270. package/dest/pxe_oracle_interface/index.d.ts +0 -159
  271. package/dest/pxe_oracle_interface/index.d.ts.map +0 -1
  272. package/dest/pxe_oracle_interface/index.js +0 -692
  273. package/dest/pxe_oracle_interface/tagging_utils.d.ts +0 -17
  274. package/dest/pxe_oracle_interface/tagging_utils.d.ts.map +0 -1
  275. package/dest/pxe_oracle_interface/tagging_utils.js +0 -23
  276. package/dest/pxe_service/error_enriching.d.ts.map +0 -1
  277. package/dest/pxe_service/index.d.ts +0 -3
  278. package/dest/pxe_service/index.d.ts.map +0 -1
  279. package/dest/pxe_service/index.js +0 -2
  280. package/dest/pxe_service/pxe_service.d.ts +0 -111
  281. package/dest/pxe_service/pxe_service.d.ts.map +0 -1
  282. package/dest/pxe_service/pxe_service.js +0 -664
  283. package/dest/storage/auth_witness_data_provider/auth_witness_data_provider.d.ts +0 -11
  284. package/dest/storage/auth_witness_data_provider/auth_witness_data_provider.d.ts.map +0 -1
  285. package/dest/storage/auth_witness_data_provider/auth_witness_data_provider.js +0 -20
  286. package/dest/storage/auth_witness_data_provider/index.d.ts +0 -2
  287. package/dest/storage/auth_witness_data_provider/index.d.ts.map +0 -1
  288. package/dest/storage/auth_witness_data_provider/index.js +0 -1
  289. package/dest/storage/data_provider.d.ts +0 -4
  290. package/dest/storage/data_provider.d.ts.map +0 -1
  291. package/dest/storage/data_provider.js +0 -1
  292. package/dest/test/pxe_test_suite.d.ts +0 -3
  293. package/dest/test/pxe_test_suite.d.ts.map +0 -1
  294. package/dest/test/pxe_test_suite.js +0 -97
  295. package/src/bin/index.ts +0 -38
  296. package/src/kernel_prover/index.ts +0 -2
  297. package/src/kernel_prover/kernel_prover.ts +0 -351
  298. package/src/note_decryption_utils/add_public_values_to_payload.ts +0 -64
  299. package/src/pxe_http/index.ts +0 -1
  300. package/src/pxe_http/pxe_http_server.ts +0 -29
  301. package/src/pxe_oracle_interface/index.ts +0 -925
  302. package/src/pxe_oracle_interface/tagging_utils.ts +0 -32
  303. package/src/pxe_service/index.ts +0 -2
  304. package/src/pxe_service/pxe_service.ts +0 -949
  305. package/src/storage/auth_witness_data_provider/auth_witness_data_provider.ts +0 -34
  306. package/src/storage/auth_witness_data_provider/index.ts +0 -1
  307. package/src/storage/data_provider.ts +0 -3
  308. package/src/test/pxe_test_suite.ts +0 -111
  309. /package/dest/entrypoints/{client/pxe_creation_options.js → pxe_creation_options.js} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashed_values_cache.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/hashed_values_cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAoB;gBAErB,gBAAgB,GAAE,YAAY,EAAO;IAOjD;;;;OAIG;WACW,MAAM,CAAC,gBAAgB,GAAE,YAAY,EAAO;IAI1D;;;;OAIG;IACI,WAAW,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,SAAS;IAQ9C;;;;OAIG;IACI,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;CAGpC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * A cache for hashed values (arguments, returns) during transaction execution.
3
+ */ export class HashedValuesCache {
4
+ cache;
5
+ constructor(initialArguments = []){
6
+ this.cache = new Map();
7
+ for (const initialArg of initialArguments){
8
+ this.cache.set(initialArg.hash.toBigInt(), initialArg.values);
9
+ }
10
+ }
11
+ /**
12
+ * Creates a new hashed values cache.
13
+ * @param initialArguments - The initial arguments to add to the cache.
14
+ * @returns The new hashed values cache.
15
+ */ static create(initialArguments = []) {
16
+ return new HashedValuesCache(initialArguments);
17
+ }
18
+ /**
19
+ * Gets preimage of a hash.
20
+ * @param hash - The hash to get the preimage of.
21
+ * @returns The preimage.
22
+ */ getPreimage(hash) {
23
+ if (hash.isEmpty()) {
24
+ return [];
25
+ } else {
26
+ return this.cache.get(hash.toBigInt());
27
+ }
28
+ }
29
+ /**
30
+ * Stores values in cache and returns its hash.
31
+ * @param values - The values to store.
32
+ * @returns The hash of the values.
33
+ */ store(values, hash) {
34
+ this.cache.set(hash.toBigInt(), values);
35
+ }
36
+ }
@@ -0,0 +1,14 @@
1
+ export { ExecutionNoteCache } from './execution_note_cache.js';
2
+ export { ExecutionTaggingIndexCache } from './execution_tagging_index_cache.js';
3
+ export { HashedValuesCache } from './hashed_values_cache.js';
4
+ export { pickNotes } from './pick_notes.js';
5
+ export type { NoteData, IMiscOracle, IUtilityExecutionOracle, IPrivateExecutionOracle } from './oracle/interfaces.js';
6
+ export { MessageLoadOracleInputs } from './oracle/message_load_oracle_inputs.js';
7
+ export { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
8
+ export { PrivateExecutionOracle } from './oracle/private_execution_oracle.js';
9
+ export { Oracle } from './oracle/oracle.js';
10
+ export { executePrivateFunction, extractPrivateCircuitPublicInputs } from './oracle/private_execution.js';
11
+ export { generateSimulatedProvingResult } from './contract_function_simulator.js';
12
+ export { packAsRetrievedNote } from './oracle/note_packing_utils.js';
13
+ export { UtilityContext } from './noir-structs/utility_context.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,12 @@
1
+ export { ExecutionNoteCache } from './execution_note_cache.js';
2
+ export { ExecutionTaggingIndexCache } from './execution_tagging_index_cache.js';
3
+ export { HashedValuesCache } from './hashed_values_cache.js';
4
+ export { pickNotes } from './pick_notes.js';
5
+ export { MessageLoadOracleInputs } from './oracle/message_load_oracle_inputs.js';
6
+ export { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
7
+ export { PrivateExecutionOracle } from './oracle/private_execution_oracle.js';
8
+ export { Oracle } from './oracle/oracle.js';
9
+ export { executePrivateFunction, extractPrivateCircuitPublicInputs } from './oracle/private_execution.js';
10
+ export { generateSimulatedProvingResult } from './contract_function_simulator.js';
11
+ export { packAsRetrievedNote } from './oracle/note_packing_utils.js';
12
+ export { UtilityContext } from './noir-structs/utility_context.js';
@@ -0,0 +1,20 @@
1
+ import { Fr } from '@aztec/foundation/fields';
2
+ import { FieldReader } from '@aztec/foundation/serialize';
3
+ import { EventSelector } from '@aztec/stdlib/abi';
4
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
5
+ import { TxHash } from '@aztec/stdlib/tx';
6
+ /**
7
+ * Intermediate struct used to perform batch event validation by PXE. The `utilityValidateEnqueuedNotesAndEvents` oracle
8
+ * expects for values of this type to be stored in a `CapsuleArray`.
9
+ */
10
+ export declare class EventValidationRequest {
11
+ contractAddress: AztecAddress;
12
+ eventTypeId: EventSelector;
13
+ serializedEvent: Fr[];
14
+ eventCommitment: Fr;
15
+ txHash: TxHash;
16
+ recipient: AztecAddress;
17
+ constructor(contractAddress: AztecAddress, eventTypeId: EventSelector, serializedEvent: Fr[], eventCommitment: Fr, txHash: TxHash, recipient: AztecAddress);
18
+ static fromFields(fields: Fr[] | FieldReader): EventValidationRequest;
19
+ }
20
+ //# sourceMappingURL=event_validation_request.d.ts.map
@@ -0,0 +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,0BAA0B,CAAC;AAC9C,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;gBALvB,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,aAAa,EAC1B,eAAe,EAAE,EAAE,EAAE,EACrB,eAAe,EAAE,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,YAAY;IAGhC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,sBAAsB;CAuBtE"}
@@ -0,0 +1,37 @@
1
+ import { FieldReader } from '@aztec/foundation/serialize';
2
+ import { EventSelector } from '@aztec/stdlib/abi';
3
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
+ import { TxHash } from '@aztec/stdlib/tx';
5
+ // TODO(#14617): should we compute this from constants? This value is aztec-nr specific.
6
+ const MAX_EVENT_SERIALIZED_LEN = 12;
7
+ /**
8
+ * Intermediate struct used to perform batch event validation by PXE. The `utilityValidateEnqueuedNotesAndEvents` oracle
9
+ * expects for values of this type to be stored in a `CapsuleArray`.
10
+ */ export class EventValidationRequest {
11
+ contractAddress;
12
+ eventTypeId;
13
+ serializedEvent;
14
+ eventCommitment;
15
+ txHash;
16
+ recipient;
17
+ constructor(contractAddress, eventTypeId, serializedEvent, eventCommitment, txHash, recipient){
18
+ this.contractAddress = contractAddress;
19
+ this.eventTypeId = eventTypeId;
20
+ this.serializedEvent = serializedEvent;
21
+ this.eventCommitment = eventCommitment;
22
+ this.txHash = txHash;
23
+ this.recipient = recipient;
24
+ }
25
+ static fromFields(fields) {
26
+ const reader = FieldReader.asReader(fields);
27
+ const contractAddress = AztecAddress.fromField(reader.readField());
28
+ const eventTypeId = EventSelector.fromField(reader.readField());
29
+ const eventStorage = reader.readFieldArray(MAX_EVENT_SERIALIZED_LEN);
30
+ const eventLen = reader.readField().toNumber();
31
+ const serializedEvent = eventStorage.slice(0, eventLen);
32
+ const eventCommitment = reader.readField();
33
+ const txHash = TxHash.fromField(reader.readField());
34
+ const recipient = AztecAddress.fromField(reader.readField());
35
+ return new EventValidationRequest(contractAddress, eventTypeId, serializedEvent, eventCommitment, txHash, recipient);
36
+ }
37
+ }
@@ -0,0 +1,15 @@
1
+ import { Fr } from '@aztec/foundation/fields';
2
+ import { FieldReader } from '@aztec/foundation/serialize';
3
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
+ /**
5
+ * Intermediate struct used to perform batch log retrieval by PXE. The `utilityBulkRetrieveLogs` oracle expects values of this
6
+ * type to be stored in a `CapsuleArray`.
7
+ */
8
+ export declare class LogRetrievalRequest {
9
+ contractAddress: AztecAddress;
10
+ unsiloedTag: Fr;
11
+ constructor(contractAddress: AztecAddress, unsiloedTag: Fr);
12
+ toFields(): Fr[];
13
+ static fromFields(fields: Fr[] | FieldReader): LogRetrievalRequest;
14
+ }
15
+ //# sourceMappingURL=log_retrieval_request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log_retrieval_request.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/log_retrieval_request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D;;;GAGG;AACH,qBAAa,mBAAmB;IAErB,eAAe,EAAE,YAAY;IAC7B,WAAW,EAAE,EAAE;gBADf,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,EAAE;IAGxB,QAAQ,IAAI,EAAE,EAAE;IAIhB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,mBAAmB;CAQnE"}
@@ -0,0 +1,25 @@
1
+ import { FieldReader } from '@aztec/foundation/serialize';
2
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
3
+ /**
4
+ * Intermediate struct used to perform batch log retrieval by PXE. The `utilityBulkRetrieveLogs` oracle expects values of this
5
+ * type to be stored in a `CapsuleArray`.
6
+ */ export class LogRetrievalRequest {
7
+ contractAddress;
8
+ unsiloedTag;
9
+ constructor(contractAddress, unsiloedTag){
10
+ this.contractAddress = contractAddress;
11
+ this.unsiloedTag = unsiloedTag;
12
+ }
13
+ toFields() {
14
+ return [
15
+ this.contractAddress.toField(),
16
+ this.unsiloedTag
17
+ ];
18
+ }
19
+ static fromFields(fields) {
20
+ const reader = FieldReader.asReader(fields);
21
+ const contractAddress = AztecAddress.fromField(reader.readField());
22
+ const unsiloedTag = reader.readField();
23
+ return new LogRetrievalRequest(contractAddress, unsiloedTag);
24
+ }
25
+ }
@@ -0,0 +1,17 @@
1
+ import { Fr } from '@aztec/foundation/fields';
2
+ import type { TxHash } from '@aztec/stdlib/tx';
3
+ /**
4
+ * Intermediate struct used to perform batch log retrieval by PXE. The `utilityBulkRetrieveLogs` oracle stores values of this
5
+ * type in a `CapsuleArray`.
6
+ */
7
+ export declare class LogRetrievalResponse {
8
+ logPayload: Fr[];
9
+ txHash: TxHash;
10
+ uniqueNoteHashesInTx: Fr[];
11
+ firstNullifierInTx: Fr;
12
+ constructor(logPayload: Fr[], txHash: TxHash, uniqueNoteHashesInTx: Fr[], firstNullifierInTx: Fr);
13
+ toFields(): Fr[];
14
+ static toEmptyFields(): Fr[];
15
+ static toSerializedOption(response?: LogRetrievalResponse): Fr[];
16
+ }
17
+ //# sourceMappingURL=log_retrieval_response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log_retrieval_response.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/log_retrieval_response.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAO/C;;;GAGG;AACH,qBAAa,oBAAoB;IAEtB,UAAU,EAAE,EAAE,EAAE;IAChB,MAAM,EAAE,MAAM;IACd,oBAAoB,EAAE,EAAE,EAAE;IAC1B,kBAAkB,EAAE,EAAE;gBAHtB,UAAU,EAAE,EAAE,EAAE,EAChB,MAAM,EAAE,MAAM,EACd,oBAAoB,EAAE,EAAE,EAAE,EAC1B,kBAAkB,EAAE,EAAE;IAG/B,QAAQ,IAAI,EAAE,EAAE;IAWhB,MAAM,CAAC,aAAa,IAAI,EAAE,EAAE;IAW5B,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,oBAAoB,GAAG,EAAE,EAAE;CAOjE"}
@@ -0,0 +1,65 @@
1
+ import { MAX_NOTE_HASHES_PER_TX, PRIVATE_LOG_CIPHERTEXT_LEN } from '@aztec/constants';
2
+ import { range } from '@aztec/foundation/array';
3
+ import { Fr } from '@aztec/foundation/fields';
4
+ import { MAX_NOTE_PACKED_LEN } from './note_validation_request.js';
5
+ const MAX_PUBLIC_LOG_LEN_FOR_NOTE_COMPLETION = MAX_NOTE_PACKED_LEN;
6
+ const MAX_LOG_CONTENT_LEN = Math.max(MAX_PUBLIC_LOG_LEN_FOR_NOTE_COMPLETION, PRIVATE_LOG_CIPHERTEXT_LEN);
7
+ /**
8
+ * Intermediate struct used to perform batch log retrieval by PXE. The `utilityBulkRetrieveLogs` oracle stores values of this
9
+ * type in a `CapsuleArray`.
10
+ */ export class LogRetrievalResponse {
11
+ logPayload;
12
+ txHash;
13
+ uniqueNoteHashesInTx;
14
+ firstNullifierInTx;
15
+ constructor(logPayload, txHash, uniqueNoteHashesInTx, firstNullifierInTx){
16
+ this.logPayload = logPayload;
17
+ this.txHash = txHash;
18
+ this.uniqueNoteHashesInTx = uniqueNoteHashesInTx;
19
+ this.firstNullifierInTx = firstNullifierInTx;
20
+ }
21
+ toFields() {
22
+ return [
23
+ // We need to trim the payload since public logs can be larger than MAX_LOG_CONTENT_LEN.
24
+ // This is currently not a problem since this class is only used with public logs for note completion.
25
+ ...serializeBoundedVec(this.logPayload.slice(0, MAX_LOG_CONTENT_LEN), MAX_LOG_CONTENT_LEN),
26
+ this.txHash.hash,
27
+ ...serializeBoundedVec(this.uniqueNoteHashesInTx, MAX_NOTE_HASHES_PER_TX),
28
+ this.firstNullifierInTx
29
+ ];
30
+ }
31
+ static toEmptyFields() {
32
+ const serializationLen = MAX_LOG_CONTENT_LEN + 1 /* logPayload BVec */ + 1 /* txHash */ + MAX_NOTE_HASHES_PER_TX + 1 /* uniqueNoteHashesInTx BVec */ + 1; /* firstNullifierInTx */
33
+ return range(serializationLen).map((_)=>Fr.zero());
34
+ }
35
+ static toSerializedOption(response) {
36
+ if (response) {
37
+ return [
38
+ new Fr(1),
39
+ ...response.toFields()
40
+ ];
41
+ } else {
42
+ return [
43
+ new Fr(0),
44
+ ...LogRetrievalResponse.toEmptyFields()
45
+ ];
46
+ }
47
+ }
48
+ }
49
+ /**
50
+ * Helper function to serialize a bounded vector according to Noir's BoundedVec format
51
+ * @param values - The values to serialize
52
+ * @param maxLength - The maximum length of the bounded vector
53
+ * @returns The serialized bounded vector as Fr[]
54
+ */ function serializeBoundedVec(values, maxLength) {
55
+ if (values.length > maxLength) {
56
+ throw new Error(`Attempted to serialize ${values} values into a BoundedVec with max length ${maxLength}`);
57
+ }
58
+ const lengthDiff = maxLength - values.length;
59
+ const zeroPaddingArray = Array(lengthDiff).fill(Fr.ZERO);
60
+ const storage = values.concat(zeroPaddingArray);
61
+ return [
62
+ ...storage,
63
+ new Fr(values.length)
64
+ ];
65
+ }
@@ -0,0 +1,22 @@
1
+ import { Fr } from '@aztec/foundation/fields';
2
+ import { FieldReader } from '@aztec/foundation/serialize';
3
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
+ import { TxHash } from '@aztec/stdlib/tx';
5
+ export declare const MAX_NOTE_PACKED_LEN = 12;
6
+ /**
7
+ * Intermediate struct used to perform batch note validation by PXE. The `utilityValidateEnqueuedNotesAndEvents` oracle
8
+ * expects for values of this type to be stored in a `CapsuleArray`.
9
+ */
10
+ export declare class NoteValidationRequest {
11
+ contractAddress: AztecAddress;
12
+ storageSlot: Fr;
13
+ noteNonce: Fr;
14
+ content: Fr[];
15
+ noteHash: Fr;
16
+ nullifier: Fr;
17
+ txHash: TxHash;
18
+ recipient: AztecAddress;
19
+ constructor(contractAddress: AztecAddress, storageSlot: Fr, noteNonce: Fr, content: Fr[], noteHash: Fr, nullifier: Fr, txHash: TxHash, recipient: AztecAddress);
20
+ static fromFields(fields: Fr[] | FieldReader): NoteValidationRequest;
21
+ }
22
+ //# sourceMappingURL=note_validation_request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"note_validation_request.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/note_validation_request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC;;;GAGG;AACH,qBAAa,qBAAqB;IAEvB,eAAe,EAAE,YAAY;IAC7B,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,EAAE;IACb,OAAO,EAAE,EAAE,EAAE;IACb,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,YAAY;gBAPvB,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,EAAE,EACf,SAAS,EAAE,EAAE,EACb,OAAO,EAAE,EAAE,EAAE,EACb,QAAQ,EAAE,EAAE,EACZ,SAAS,EAAE,EAAE,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,YAAY;IAGhC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,qBAAqB;CA2BrE"}
@@ -0,0 +1,42 @@
1
+ import { FieldReader } from '@aztec/foundation/serialize';
2
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
3
+ import { TxHash } from '@aztec/stdlib/tx';
4
+ // TODO(#14617): should we compute this from constants? This value is aztec-nr specific.
5
+ export const MAX_NOTE_PACKED_LEN = 12;
6
+ /**
7
+ * Intermediate struct used to perform batch note validation by PXE. The `utilityValidateEnqueuedNotesAndEvents` oracle
8
+ * expects for values of this type to be stored in a `CapsuleArray`.
9
+ */ export class NoteValidationRequest {
10
+ contractAddress;
11
+ storageSlot;
12
+ noteNonce;
13
+ content;
14
+ noteHash;
15
+ nullifier;
16
+ txHash;
17
+ recipient;
18
+ constructor(contractAddress, storageSlot, noteNonce, content, noteHash, nullifier, txHash, recipient){
19
+ this.contractAddress = contractAddress;
20
+ this.storageSlot = storageSlot;
21
+ this.noteNonce = noteNonce;
22
+ this.content = content;
23
+ this.noteHash = noteHash;
24
+ this.nullifier = nullifier;
25
+ this.txHash = txHash;
26
+ this.recipient = recipient;
27
+ }
28
+ static fromFields(fields) {
29
+ const reader = FieldReader.asReader(fields);
30
+ const contractAddress = AztecAddress.fromField(reader.readField());
31
+ const storageSlot = reader.readField();
32
+ const noteNonce = reader.readField();
33
+ const contentStorage = reader.readFieldArray(MAX_NOTE_PACKED_LEN);
34
+ const contentLen = reader.readField().toNumber();
35
+ const content = contentStorage.slice(0, contentLen);
36
+ const noteHash = reader.readField();
37
+ const nullifier = reader.readField();
38
+ const txHash = TxHash.fromField(reader.readField());
39
+ const recipient = AztecAddress.fromField(reader.readField());
40
+ return new NoteValidationRequest(contractAddress, storageSlot, noteNonce, content, noteHash, nullifier, txHash, recipient);
41
+ }
42
+ }
@@ -0,0 +1,22 @@
1
+ import { Fr } from '@aztec/foundation/fields';
2
+ import type { FieldsOf } from '@aztec/foundation/types';
3
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
+ import type { UInt64 } from '@aztec/stdlib/types';
5
+ /**
6
+ * TypeScript counterpart of utility_context.nr. Used only as a return value for the utilityGetUtilityContext oracle.
7
+ */
8
+ export declare class UtilityContext {
9
+ readonly blockNumber: number;
10
+ readonly timestamp: UInt64;
11
+ readonly contractAddress: AztecAddress;
12
+ readonly version: Fr;
13
+ readonly chainId: Fr;
14
+ private constructor();
15
+ static from(fields: FieldsOf<UtilityContext>): UtilityContext;
16
+ /**
17
+ * Returns a representation of the utility context as expected by intrinsic Noir deserialization.
18
+ * The order of the fields has to be the same as the order of the fields in the utility_context.nr.
19
+ */
20
+ toNoirRepresentation(): (string | string[])[];
21
+ }
22
+ //# sourceMappingURL=utility_context.d.ts.map
@@ -0,0 +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,0BAA0B,CAAC;AAC9C,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;IAQP,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC;IAU5C;;;OAGG;IACI,oBAAoB,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE;CAUrD"}
@@ -0,0 +1,33 @@
1
+ import { Fr } from '@aztec/foundation/fields';
2
+ /**
3
+ * TypeScript counterpart of utility_context.nr. Used only as a return value for the utilityGetUtilityContext oracle.
4
+ */ export class UtilityContext {
5
+ blockNumber;
6
+ timestamp;
7
+ contractAddress;
8
+ version;
9
+ chainId;
10
+ constructor(blockNumber, timestamp, contractAddress, version, chainId){
11
+ this.blockNumber = blockNumber;
12
+ this.timestamp = timestamp;
13
+ 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
+ }
20
+ /**
21
+ * Returns a representation of the utility context as expected by intrinsic Noir deserialization.
22
+ * The order of the fields has to be the same as the order of the fields in the utility_context.nr.
23
+ */ toNoirRepresentation() {
24
+ // TODO(#12874): remove the stupid as string conversion by modifying ForeignCallOutput type in acvm.js
25
+ 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()
31
+ ];
32
+ }
33
+ }
@@ -0,0 +1,14 @@
1
+ import type { Oracle } from './oracle.js';
2
+ export * from './oracle.js';
3
+ export * from './interfaces.js';
4
+ /**
5
+ * A conditional type that takes a type `T` and returns a union of its method names.
6
+ */
7
+ type MethodNames<T> = {
8
+ [K in keyof T]: T[K] extends (...args: any[]) => any ? K : never;
9
+ }[keyof T];
10
+ /**
11
+ * Available oracle function names.
12
+ */
13
+ export type ORACLE_NAMES = MethodNames<Oracle>;
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAEhC;;GAEG;AACH,KAAK,WAAW,CAAC,CAAC,IAAI;KACnB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK;CACjE,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './oracle.js';
2
+ export * from './interfaces.js';
@@ -0,0 +1,97 @@
1
+ import type { L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/constants';
2
+ import { Fr, Point } from '@aztec/foundation/fields';
3
+ import type { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
4
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
5
+ import type { CompleteAddress, ContractInstance } from '@aztec/stdlib/contract';
6
+ import type { KeyValidationRequest } from '@aztec/stdlib/kernel';
7
+ import type { ContractClassLog } from '@aztec/stdlib/logs';
8
+ import type { Note, NoteStatus } from '@aztec/stdlib/note';
9
+ import { type MerkleTreeId, type NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
10
+ import type { BlockHeader } from '@aztec/stdlib/tx';
11
+ import type { Tag } from '../../tagging/tag.js';
12
+ import type { UtilityContext } from '../noir-structs/utility_context.js';
13
+ import type { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
14
+ /**
15
+ * Information about a note needed during execution.
16
+ */
17
+ export interface NoteData {
18
+ /** The actual note content (the fields of the Noir #[note] struct). */
19
+ note: Note;
20
+ /** The address of the contract that owns the note. */
21
+ contractAddress: AztecAddress;
22
+ /** The storage slot of the note. */
23
+ storageSlot: Fr;
24
+ /** The nonce injected into the note hash preimage by kernels. */
25
+ noteNonce: Fr;
26
+ /** A hash of the note as it gets stored in the note hash tree. */
27
+ noteHash: Fr;
28
+ /** The corresponding nullifier of the note. Undefined for pending notes. */
29
+ siloedNullifier?: Fr;
30
+ /** The note's leaf index in the note hash tree. Undefined for pending notes. */
31
+ index?: bigint;
32
+ }
33
+ /**
34
+ * Miscellaneous oracle methods, not very Aztec-specific and expected to be available all scenarios in which aztec-nr
35
+ * code runs, except #[external("public")] functions (since those are transpiled to AVM bytecode, where there are no oracles).
36
+ */
37
+ export interface IMiscOracle {
38
+ isMisc: true;
39
+ utilityGetRandomField(): Fr;
40
+ utilityAssertCompatibleOracleVersion(version: number): void;
41
+ utilityDebugLog(level: number, message: string, fields: Fr[]): void;
42
+ }
43
+ /**
44
+ * Oracle methods associated with the execution of an Aztec #[external("utility")] function. Note that the IMiscOracles are also
45
+ * expected to be available in these contexts.
46
+ */
47
+ export interface IUtilityExecutionOracle {
48
+ isUtility: true;
49
+ utilityGetUtilityContext(): Promise<UtilityContext>;
50
+ utilityGetKeyValidationRequest(pkMHash: Fr): Promise<KeyValidationRequest>;
51
+ utilityGetContractInstance(address: AztecAddress): Promise<ContractInstance>;
52
+ utilityGetMembershipWitness(blockNumber: number, treeId: MerkleTreeId, leafValue: Fr): Promise<Fr[] | undefined>;
53
+ utilityGetNullifierMembershipWitness(blockNumber: number, nullifier: Fr): Promise<NullifierMembershipWitness | undefined>;
54
+ utilityGetPublicDataWitness(blockNumber: number, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
55
+ utilityGetLowNullifierMembershipWitness(blockNumber: number, nullifier: Fr): Promise<NullifierMembershipWitness | undefined>;
56
+ utilityGetBlockHeader(blockNumber: number): Promise<BlockHeader | undefined>;
57
+ utilityGetPublicKeysAndPartialAddress(account: AztecAddress): Promise<CompleteAddress>;
58
+ utilityGetAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
59
+ utilityGetNotes(storageSlot: Fr, numSelects: number, selectByIndexes: number[], selectByOffsets: number[], selectByLengths: number[], selectValues: Fr[], selectComparators: number[], sortByIndexes: number[], sortByOffsets: number[], sortByLengths: number[], sortOrder: number[], limit: number, offset: number, status: NoteStatus): Promise<NoteData[]>;
60
+ utilityCheckNullifierExists(innerNullifier: Fr): Promise<boolean>;
61
+ utilityGetL1ToL2MembershipWitness(contractAddress: AztecAddress, messageHash: Fr, secret: Fr): Promise<MessageLoadOracleInputs<typeof L1_TO_L2_MSG_TREE_HEIGHT>>;
62
+ utilityStorageRead(contractAddress: AztecAddress, startStorageSlot: Fr, blockNumber: number, numberOfElements: number): Promise<Fr[]>;
63
+ utilityFetchTaggedLogs(pendingTaggedLogArrayBaseSlot: Fr): Promise<void>;
64
+ utilityValidateEnqueuedNotesAndEvents(contractAddress: AztecAddress, noteValidationRequestsArrayBaseSlot: Fr, eventValidationRequestsArrayBaseSlot: Fr): Promise<void>;
65
+ utilityBulkRetrieveLogs(contractAddress: AztecAddress, logRetrievalRequestsArrayBaseSlot: Fr, logRetrievalResponsesArrayBaseSlot: Fr): Promise<void>;
66
+ utilityStoreCapsule(contractAddress: AztecAddress, key: Fr, capsule: Fr[]): Promise<void>;
67
+ utilityLoadCapsule(contractAddress: AztecAddress, key: Fr): Promise<Fr[] | null>;
68
+ utilityDeleteCapsule(contractAddress: AztecAddress, key: Fr): Promise<void>;
69
+ utilityCopyCapsule(contractAddress: AztecAddress, srcKey: Fr, dstKey: Fr, numEntries: number): Promise<void>;
70
+ utilityAes128Decrypt(ciphertext: Buffer, iv: Buffer, symKey: Buffer): Promise<Buffer>;
71
+ utilityGetSharedSecret(address: AztecAddress, ephPk: Point): Promise<Point>;
72
+ }
73
+ /**
74
+ * Oracle methods associated with the execution of an Aztec #[external("private")] function. Note that both the IMiscOracles and
75
+ * IUtilityExecutionOracle are also expected to be available in these contexts.
76
+ */
77
+ export interface IPrivateExecutionOracle {
78
+ isPrivate: true;
79
+ privateStoreInExecutionCache(values: Fr[], hash: Fr): void;
80
+ privateLoadFromExecutionCache(hash: Fr): Promise<Fr[]>;
81
+ privateNotifyCreatedNote(storageSlot: Fr, noteTypeId: NoteSelector, note: Fr[], noteHash: Fr, counter: number): void;
82
+ privateNotifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number): Promise<void>;
83
+ privateNotifyCreatedNullifier(innerNullifier: Fr): Promise<void>;
84
+ privateNotifyCreatedContractClassLog(log: ContractClassLog, counter: number): void;
85
+ privateCallPrivateFunction(targetContractAddress: AztecAddress, functionSelector: FunctionSelector, argsHash: Fr, sideEffectCounter: number, isStaticCall: boolean): Promise<{
86
+ endSideEffectCounter: Fr;
87
+ returnsHash: Fr;
88
+ }>;
89
+ privateNotifyEnqueuedPublicFunctionCall(targetContractAddress: AztecAddress, calldataHash: Fr, sideEffectCounter: number, isStaticCall: boolean): Promise<void>;
90
+ privateNotifySetPublicTeardownFunctionCall(targetContractAddress: AztecAddress, calldataHash: Fr, sideEffectCounter: number, isStaticCall: boolean): Promise<void>;
91
+ privateNotifySetMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter: number): Promise<void>;
92
+ privateGetSenderForTags(): Promise<AztecAddress | undefined>;
93
+ privateSetSenderForTags(senderForTags: AztecAddress): Promise<void>;
94
+ privateGetNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag>;
95
+ utilityEmitOffchainEffect(data: Fr[]): Promise<void>;
96
+ }
97
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/interfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Oracle methods associated with the execution of an Aztec #[external("private")] function. Note that both the IMiscOracles and
3
+ * IUtilityExecutionOracle are also expected to be available in these contexts.
4
+ */ export { };
@@ -0,0 +1,19 @@
1
+ import { Fr } from '@aztec/foundation/fields';
2
+ import type { SiblingPath } from '@aztec/foundation/trees';
3
+ export declare class MessageLoadOracleInputs<N extends number> {
4
+ /** The index of the message commitment in the merkle tree. */
5
+ index: bigint;
6
+ /** The path in the merkle tree to the message. */
7
+ siblingPath: SiblingPath<N>;
8
+ constructor(
9
+ /** The index of the message commitment in the merkle tree. */
10
+ index: bigint,
11
+ /** The path in the merkle tree to the message. */
12
+ siblingPath: SiblingPath<N>);
13
+ toFields(): Fr[];
14
+ /**
15
+ * Returns a representation of the public data witness as expected by intrinsic Noir deserialization.
16
+ */
17
+ toNoirRepresentation(): (string | string[])[];
18
+ }
19
+ //# sourceMappingURL=message_load_oracle_inputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message_load_oracle_inputs.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/message_load_oracle_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,qBAAa,uBAAuB,CAAC,CAAC,SAAS,MAAM;IAEjD,8DAA8D;IACvD,KAAK,EAAE,MAAM;IACpB,kDAAkD;IAC3C,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;;IAHlC,8DAA8D;IACvD,KAAK,EAAE,MAAM;IACpB,kDAAkD;IAC3C,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IAGpC,QAAQ,IAAI,EAAE,EAAE;IAIhB;;OAEG;IACI,oBAAoB,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE;CAIrD"}
@@ -0,0 +1,24 @@
1
+ import { Fr } from '@aztec/foundation/fields';
2
+ export class MessageLoadOracleInputs {
3
+ index;
4
+ siblingPath;
5
+ constructor(/** The index of the message commitment in the merkle tree. */ index, /** The path in the merkle tree to the message. */ siblingPath){
6
+ this.index = index;
7
+ this.siblingPath = siblingPath;
8
+ }
9
+ toFields() {
10
+ return [
11
+ new Fr(this.index),
12
+ ...this.siblingPath.toFields()
13
+ ];
14
+ }
15
+ /**
16
+ * Returns a representation of the public data witness as expected by intrinsic Noir deserialization.
17
+ */ toNoirRepresentation() {
18
+ // TODO(#12874): remove the stupid as string conversion by modifying ForeignCallOutput type in acvm.js
19
+ return [
20
+ new Fr(this.index).toString(),
21
+ this.siblingPath.toFields().map((fr)=>fr.toString())
22
+ ];
23
+ }
24
+ }
@@ -0,0 +1,22 @@
1
+ import { Fr } from '@aztec/foundation/fields';
2
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
3
+ import type { Note } from '@aztec/stdlib/note';
4
+ /**
5
+ * Packs a note in a format that is compatible with the default Packable implementation of the retrieved note.
6
+ *
7
+ * @dev Unlike the default Packable implementation, this function first constructs the note metadata from the inputs
8
+ * and only after that it packs the retrieved note. Hence it doesn't map one to one with `RetrievedNote::pack()`.
9
+ *
10
+ * @param contractAddress - The address of the contract that owns the note
11
+ * @param noteNonce - The nonce injected into the note hash preimage by kernels.
12
+ * @param index - Optional index in the note hash tree. If undefined, indicates a transient note
13
+ * @param note - The note content containing the actual note data
14
+ * @returns The packed note as an array of field elements
15
+ */
16
+ export declare function packAsRetrievedNote({ contractAddress, noteNonce, index, note, }: {
17
+ contractAddress: AztecAddress;
18
+ noteNonce: Fr;
19
+ index?: bigint;
20
+ note: Note;
21
+ }): (Fr | AztecAddress)[];
22
+ //# sourceMappingURL=note_packing_utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"note_packing_utils.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/note_packing_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAiB/C;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,eAAe,EACf,SAAS,EACT,KAAK,EACL,IAAI,GACL,EAAE;IACD,eAAe,EAAE,YAAY,CAAC;IAC9B,SAAS,EAAE,EAAE,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,CAAC;CACZ,yBAUA"}