@aztec/pxe 3.0.0-canary.a9708bd → 3.0.0-devnet.2-patch.1

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 (264) hide show
  1. package/README.md +5 -5
  2. package/dest/bin/check_oracle_version.d.ts +1 -1
  3. package/dest/bin/check_oracle_version.js +110 -10
  4. package/dest/config/index.d.ts +9 -17
  5. package/dest/config/index.d.ts.map +1 -1
  6. package/dest/config/index.js +10 -16
  7. package/dest/config/package_info.d.ts +1 -1
  8. package/dest/config/package_info.js +1 -1
  9. package/dest/contract_function_simulator/contract_function_simulator.d.ts +6 -6
  10. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  11. package/dest/contract_function_simulator/contract_function_simulator.js +97 -42
  12. package/dest/contract_function_simulator/execution_data_provider.d.ts +40 -57
  13. package/dest/contract_function_simulator/execution_data_provider.d.ts.map +1 -1
  14. package/dest/contract_function_simulator/execution_note_cache.d.ts +11 -9
  15. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  16. package/dest/contract_function_simulator/execution_note_cache.js +28 -17
  17. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +16 -0
  18. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -0
  19. package/dest/contract_function_simulator/execution_tagging_index_cache.js +26 -0
  20. package/dest/contract_function_simulator/hashed_values_cache.d.ts +2 -2
  21. package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -1
  22. package/dest/contract_function_simulator/index.d.ts +4 -2
  23. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  24. package/dest/contract_function_simulator/index.js +2 -1
  25. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +2 -2
  26. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  27. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +2 -2
  28. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  29. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +3 -3
  30. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  31. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +8 -4
  32. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +6 -3
  33. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  34. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +12 -3
  35. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +22 -0
  36. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -0
  37. package/dest/contract_function_simulator/noir-structs/utility_context.js +33 -0
  38. package/dest/contract_function_simulator/oracle/index.d.ts +2 -2
  39. package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -1
  40. package/dest/contract_function_simulator/oracle/index.js +1 -1
  41. package/dest/contract_function_simulator/oracle/interfaces.d.ts +104 -0
  42. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -0
  43. package/dest/contract_function_simulator/oracle/interfaces.js +4 -0
  44. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +2 -4
  45. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  46. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -1
  47. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +10 -4
  48. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  49. package/dest/contract_function_simulator/oracle/note_packing_utils.js +10 -5
  50. package/dest/contract_function_simulator/oracle/oracle.d.ts +17 -15
  51. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  52. package/dest/contract_function_simulator/oracle/oracle.js +101 -81
  53. package/dest/contract_function_simulator/oracle/private_execution.d.ts +6 -5
  54. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  55. package/dest/contract_function_simulator/oracle/private_execution.js +7 -16
  56. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +34 -22
  57. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  58. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +89 -25
  59. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +23 -33
  60. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  61. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +38 -42
  62. package/dest/contract_function_simulator/pick_notes.d.ts +2 -2
  63. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  64. package/dest/contract_function_simulator/pick_notes.js +1 -1
  65. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +1 -1
  66. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  67. package/dest/contract_function_simulator/proxied_node.d.ts +1 -1
  68. package/dest/contract_function_simulator/proxied_node.d.ts.map +1 -1
  69. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +34 -68
  70. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +1 -1
  71. package/dest/contract_function_simulator/pxe_oracle_interface.js +220 -208
  72. package/dest/entrypoints/client/bundle/index.d.ts +4 -2
  73. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  74. package/dest/entrypoints/client/bundle/index.js +2 -1
  75. package/dest/entrypoints/client/bundle/utils.d.ts +9 -9
  76. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  77. package/dest/entrypoints/client/bundle/utils.js +21 -12
  78. package/dest/entrypoints/client/lazy/index.d.ts +4 -2
  79. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  80. package/dest/entrypoints/client/lazy/index.js +2 -1
  81. package/dest/entrypoints/client/lazy/utils.d.ts +8 -8
  82. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  83. package/dest/entrypoints/client/lazy/utils.js +20 -11
  84. package/dest/entrypoints/pxe_creation_options.d.ts +5 -2
  85. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  86. package/dest/entrypoints/server/index.d.ts +4 -2
  87. package/dest/entrypoints/server/index.d.ts.map +1 -1
  88. package/dest/entrypoints/server/index.js +2 -1
  89. package/dest/entrypoints/server/utils.d.ts +5 -24
  90. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  91. package/dest/entrypoints/server/utils.js +17 -45
  92. package/dest/error_enriching.d.ts +11 -0
  93. package/dest/error_enriching.d.ts.map +1 -0
  94. package/dest/{pxe_service/error_enriching.js → error_enriching.js} +3 -0
  95. package/dest/events/index.d.ts +2 -0
  96. package/dest/events/index.d.ts.map +1 -0
  97. package/dest/events/index.js +1 -0
  98. package/dest/events/private_event_filter_validator.d.ts +8 -0
  99. package/dest/events/private_event_filter_validator.d.ts.map +1 -0
  100. package/dest/events/private_event_filter_validator.js +39 -0
  101. package/dest/oracle_version.d.ts +3 -3
  102. package/dest/oracle_version.js +2 -2
  103. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +3 -3
  104. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +1 -1
  105. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.js +7 -7
  106. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +1 -1
  107. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.js +6 -6
  108. package/dest/private_kernel/hints/index.d.ts +1 -1
  109. package/dest/private_kernel/index.d.ts +1 -1
  110. package/dest/private_kernel/private_kernel_execution_prover.d.ts +9 -2
  111. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  112. package/dest/private_kernel/private_kernel_execution_prover.js +38 -32
  113. package/dest/private_kernel/private_kernel_oracle.d.ts +3 -2
  114. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  115. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +8 -7
  116. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +1 -1
  117. package/dest/pxe.d.ts +240 -0
  118. package/dest/pxe.d.ts.map +1 -0
  119. package/dest/{pxe_service/pxe_service.js → pxe.js} +227 -241
  120. package/dest/storage/address_data_provider/address_data_provider.d.ts +2 -4
  121. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +1 -1
  122. package/dest/storage/address_data_provider/address_data_provider.js +0 -3
  123. package/dest/storage/address_data_provider/index.d.ts +1 -1
  124. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +3 -5
  125. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +1 -1
  126. package/dest/storage/capsule_data_provider/capsule_data_provider.js +1 -5
  127. package/dest/storage/capsule_data_provider/index.d.ts +1 -1
  128. package/dest/storage/contract_data_provider/contract_data_provider.d.ts +6 -17
  129. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +1 -1
  130. package/dest/storage/contract_data_provider/contract_data_provider.js +0 -15
  131. package/dest/storage/contract_data_provider/index.d.ts +1 -1
  132. package/dest/storage/contract_data_provider/private_functions_tree.d.ts +1 -1
  133. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +1 -1
  134. package/dest/storage/contract_data_provider/private_functions_tree.js +1 -1
  135. package/dest/storage/index.d.ts +1 -2
  136. package/dest/storage/index.d.ts.map +1 -1
  137. package/dest/storage/index.js +0 -1
  138. package/dest/storage/metadata.d.ts +1 -1
  139. package/dest/storage/note_data_provider/index.d.ts +2 -2
  140. package/dest/storage/note_data_provider/index.d.ts.map +1 -1
  141. package/dest/storage/note_data_provider/index.js +1 -1
  142. package/dest/storage/note_data_provider/note_data_provider.d.ts +75 -11
  143. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +1 -1
  144. package/dest/storage/note_data_provider/note_data_provider.js +143 -81
  145. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +31 -17
  146. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +1 -1
  147. package/dest/storage/private_event_data_provider/private_event_data_provider.js +47 -28
  148. package/dest/storage/sync_data_provider/index.d.ts +1 -1
  149. package/dest/storage/sync_data_provider/sync_data_provider.d.ts +4 -5
  150. package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +1 -1
  151. package/dest/storage/sync_data_provider/sync_data_provider.js +0 -3
  152. package/dest/storage/tagging_data_provider/index.d.ts +1 -1
  153. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +29 -7
  154. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +1 -1
  155. package/dest/storage/tagging_data_provider/tagging_data_provider.js +46 -39
  156. package/dest/synchronizer/index.d.ts +1 -1
  157. package/dest/synchronizer/synchronizer.d.ts +3 -2
  158. package/dest/synchronizer/synchronizer.d.ts.map +1 -1
  159. package/dest/synchronizer/synchronizer.js +4 -4
  160. package/dest/tagging/constants.d.ts +2 -0
  161. package/dest/tagging/constants.d.ts.map +1 -0
  162. package/dest/tagging/constants.js +2 -0
  163. package/dest/tagging/index.d.ts +7 -0
  164. package/dest/tagging/index.d.ts.map +1 -0
  165. package/dest/tagging/index.js +5 -0
  166. package/dest/tagging/siloed_tag.d.ts +14 -0
  167. package/dest/tagging/siloed_tag.d.ts.map +1 -0
  168. package/dest/tagging/siloed_tag.js +20 -0
  169. package/dest/tagging/tag.d.ts +12 -0
  170. package/dest/tagging/tag.d.ts.map +1 -0
  171. package/dest/tagging/tag.js +17 -0
  172. package/dest/tagging/utils.d.ts +18 -0
  173. package/dest/tagging/utils.d.ts.map +1 -0
  174. package/dest/tagging/utils.js +24 -0
  175. package/package.json +22 -24
  176. package/src/bin/check_oracle_version.ts +134 -10
  177. package/src/config/index.ts +18 -32
  178. package/src/config/package_info.ts +1 -1
  179. package/src/contract_function_simulator/contract_function_simulator.ts +151 -62
  180. package/src/contract_function_simulator/execution_data_provider.ts +47 -65
  181. package/src/contract_function_simulator/execution_note_cache.ts +33 -17
  182. package/src/contract_function_simulator/execution_tagging_index_cache.ts +32 -0
  183. package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
  184. package/src/contract_function_simulator/index.ts +3 -1
  185. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +1 -1
  186. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +1 -1
  187. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +10 -5
  188. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +14 -2
  189. package/src/contract_function_simulator/noir-structs/utility_context.ts +42 -0
  190. package/src/contract_function_simulator/oracle/index.ts +1 -1
  191. package/src/contract_function_simulator/oracle/interfaces.ts +176 -0
  192. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +1 -1
  193. package/src/contract_function_simulator/oracle/note_packing_utils.ts +21 -5
  194. package/src/contract_function_simulator/oracle/oracle.ts +135 -80
  195. package/src/contract_function_simulator/oracle/private_execution.ts +10 -17
  196. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +123 -49
  197. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +68 -80
  198. package/src/contract_function_simulator/pick_notes.ts +1 -1
  199. package/src/contract_function_simulator/pxe_oracle_interface.ts +291 -271
  200. package/src/entrypoints/client/bundle/index.ts +3 -1
  201. package/src/entrypoints/client/bundle/utils.ts +21 -23
  202. package/src/entrypoints/client/lazy/index.ts +3 -1
  203. package/src/entrypoints/client/lazy/utils.ts +20 -23
  204. package/src/entrypoints/pxe_creation_options.ts +4 -1
  205. package/src/entrypoints/server/index.ts +3 -1
  206. package/src/entrypoints/server/utils.ts +20 -68
  207. package/src/{pxe_service/error_enriching.ts → error_enriching.ts} +5 -1
  208. package/src/events/index.ts +1 -0
  209. package/src/events/private_event_filter_validator.ts +47 -0
  210. package/src/oracle_version.ts +2 -2
  211. package/src/private_kernel/hints/build_private_kernel_reset_private_inputs.ts +5 -9
  212. package/src/private_kernel/hints/compute_tx_include_by_timestamp.ts +6 -6
  213. package/src/private_kernel/private_kernel_execution_prover.ts +51 -43
  214. package/src/private_kernel/private_kernel_oracle.ts +2 -1
  215. package/src/private_kernel/private_kernel_oracle_impl.ts +4 -3
  216. package/src/{pxe_service/pxe_service.ts → pxe.ts} +256 -308
  217. package/src/storage/address_data_provider/address_data_provider.ts +1 -7
  218. package/src/storage/capsule_data_provider/capsule_data_provider.ts +2 -12
  219. package/src/storage/contract_data_provider/contract_data_provider.ts +4 -27
  220. package/src/storage/contract_data_provider/private_functions_tree.ts +1 -1
  221. package/src/storage/index.ts +0 -1
  222. package/src/storage/note_data_provider/index.ts +1 -1
  223. package/src/storage/note_data_provider/note_data_provider.ts +171 -109
  224. package/src/storage/private_event_data_provider/private_event_data_provider.ts +69 -41
  225. package/src/storage/sync_data_provider/sync_data_provider.ts +3 -8
  226. package/src/storage/tagging_data_provider/tagging_data_provider.ts +52 -55
  227. package/src/synchronizer/synchronizer.ts +4 -4
  228. package/src/tagging/constants.ts +2 -0
  229. package/src/tagging/index.ts +6 -0
  230. package/src/tagging/siloed_tag.ts +22 -0
  231. package/src/tagging/tag.ts +16 -0
  232. package/src/tagging/utils.ts +31 -0
  233. package/dest/bin/index.d.ts +0 -3
  234. package/dest/bin/index.d.ts.map +0 -1
  235. package/dest/bin/index.js +0 -48
  236. package/dest/contract_function_simulator/oracle/typed_oracle.d.ts +0 -87
  237. package/dest/contract_function_simulator/oracle/typed_oracle.d.ts.map +0 -1
  238. package/dest/contract_function_simulator/oracle/typed_oracle.js +0 -146
  239. package/dest/contract_function_simulator/tagging_utils.d.ts +0 -17
  240. package/dest/contract_function_simulator/tagging_utils.d.ts.map +0 -1
  241. package/dest/contract_function_simulator/tagging_utils.js +0 -23
  242. package/dest/pxe_service/error_enriching.d.ts +0 -11
  243. package/dest/pxe_service/error_enriching.d.ts.map +0 -1
  244. package/dest/pxe_service/index.d.ts +0 -3
  245. package/dest/pxe_service/index.d.ts.map +0 -1
  246. package/dest/pxe_service/index.js +0 -2
  247. package/dest/pxe_service/pxe_service.d.ts +0 -100
  248. package/dest/pxe_service/pxe_service.d.ts.map +0 -1
  249. package/dest/storage/data_provider.d.ts +0 -4
  250. package/dest/storage/data_provider.d.ts.map +0 -1
  251. package/dest/storage/data_provider.js +0 -1
  252. package/dest/storage/note_data_provider/note_dao.d.ts +0 -100
  253. package/dest/storage/note_data_provider/note_dao.d.ts.map +0 -1
  254. package/dest/storage/note_data_provider/note_dao.js +0 -102
  255. package/dest/test/pxe_test_suite.d.ts +0 -3
  256. package/dest/test/pxe_test_suite.d.ts.map +0 -1
  257. package/dest/test/pxe_test_suite.js +0 -97
  258. package/src/bin/index.ts +0 -62
  259. package/src/contract_function_simulator/oracle/typed_oracle.ts +0 -289
  260. package/src/contract_function_simulator/tagging_utils.ts +0 -32
  261. package/src/pxe_service/index.ts +0 -2
  262. package/src/storage/data_provider.ts +0 -3
  263. package/src/storage/note_data_provider/note_dao.ts +0 -154
  264. package/src/test/pxe_test_suite.ts +0 -113
@@ -1,97 +0,0 @@
1
- import { INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
2
- import { Fr } from '@aztec/foundation/fields';
3
- import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
- import { getContractClassFromArtifact } from '@aztec/stdlib/contract';
5
- import { randomContractArtifact, randomContractInstanceWithAddress, randomDeployedContract } from '@aztec/stdlib/testing';
6
- import omit from 'lodash.omit';
7
- export const pxeTestSuite = (testName, pxeSetup)=>{
8
- describe(testName, ()=>{
9
- let pxe;
10
- beforeAll(async ()=>{
11
- pxe = await pxeSetup();
12
- }, 120_000);
13
- it('registers an account and returns it as an account only and not as a recipient', async ()=>{
14
- const randomSecretKey = Fr.random();
15
- const randomPartialAddress = Fr.random();
16
- const completeAddress = await pxe.registerAccount(randomSecretKey, randomPartialAddress);
17
- // Check that the account is correctly registered using the getAccounts and getRecipients methods
18
- const accounts = await pxe.getRegisteredAccounts();
19
- expect(accounts).toContainEqual(completeAddress);
20
- });
21
- it('does not throw when registering the same account twice (just ignores the second attempt)', async ()=>{
22
- const randomSecretKey = Fr.random();
23
- const randomPartialAddress = Fr.random();
24
- await pxe.registerAccount(randomSecretKey, randomPartialAddress);
25
- await pxe.registerAccount(randomSecretKey, randomPartialAddress);
26
- });
27
- it('successfully adds a contract', async ()=>{
28
- const contracts = await Promise.all([
29
- randomDeployedContract(),
30
- randomDeployedContract()
31
- ]);
32
- for (const contract of contracts){
33
- await pxe.registerContract(contract);
34
- }
35
- const expectedContractAddresses = contracts.map((contract)=>contract.instance.address);
36
- const contractAddresses = await pxe.getContracts();
37
- expect(contractAddresses).toEqual(expect.arrayContaining(expectedContractAddresses));
38
- });
39
- it('registers a class and adds a contract for it', async ()=>{
40
- const artifact = randomContractArtifact();
41
- const contractClass = await getContractClassFromArtifact(artifact);
42
- const contractClassId = contractClass.id;
43
- const instance = await randomContractInstanceWithAddress({
44
- contractClassId
45
- });
46
- await pxe.registerContractClass(artifact);
47
- expect((await pxe.getContractClassMetadata(contractClassId)).contractClass).toMatchObject(omit(contractClass, 'privateFunctionsRoot', 'publicBytecodeCommitment'));
48
- await pxe.registerContract({
49
- instance
50
- });
51
- expect((await pxe.getContractMetadata(instance.address)).contractInstance).toEqual(instance);
52
- });
53
- it('refuses to register a class with a mismatched address', async ()=>{
54
- const artifact = randomContractArtifact();
55
- const contractClass = await getContractClassFromArtifact(artifact);
56
- const contractClassId = contractClass.id;
57
- const instance = await randomContractInstanceWithAddress({
58
- contractClassId
59
- });
60
- await expect(pxe.registerContract({
61
- instance: {
62
- ...instance,
63
- address: await AztecAddress.random()
64
- },
65
- artifact
66
- })).rejects.toThrow(/Added a contract in which the address does not match the contract instance./);
67
- });
68
- it('refuses to register a contract with a class that has not been registered', async ()=>{
69
- const instance = await randomContractInstanceWithAddress();
70
- await expect(pxe.registerContract({
71
- instance
72
- })).rejects.toThrow(/Artifact not found when registering an instance/);
73
- });
74
- it('refuses to register a contract with an artifact with mismatching class id', async ()=>{
75
- const artifact = randomContractArtifact();
76
- const instance = await randomContractInstanceWithAddress();
77
- await expect(pxe.registerContract({
78
- instance,
79
- artifact
80
- })).rejects.toThrow(/Artifact does not match/i);
81
- });
82
- // Note: Not testing a successful run of `proveTx`, `sendTx`, `getTxReceipt` and `simulateUtility` here as it
83
- // requires a larger setup and it's sufficiently tested in the e2e tests.
84
- // Note: Not testing `getContractData`, `getPublicLogs` and `getPublicStorageAt` here as these
85
- // functions only call AztecNode and these methods are frequently used by the e2e tests.
86
- it('successfully gets a block number', async ()=>{
87
- const blockNum = await pxe.getBlockNumber();
88
- expect(blockNum).toBeGreaterThanOrEqual(INITIAL_L2_BLOCK_NUM);
89
- });
90
- it('successfully gets node info', async ()=>{
91
- const nodeInfo = await pxe.getNodeInfo();
92
- expect(typeof nodeInfo.rollupVersion).toEqual('number');
93
- expect(typeof nodeInfo.l1ChainId).toEqual('number');
94
- expect(nodeInfo.l1ContractAddresses.rollupAddress.toString()).toMatch(/0x[a-fA-F0-9]+/);
95
- });
96
- });
97
- };
package/src/bin/index.ts DELETED
@@ -1,62 +0,0 @@
1
- #!/usr/bin/env -S node --no-warnings
2
- import { type SafeJsonRpcServerOptions, createNamespacedSafeJsonRpcServer } from '@aztec/foundation/json-rpc/server';
3
- import { createLogger } from '@aztec/foundation/log';
4
- import { type PXE, PXESchema, createAztecNodeClient } from '@aztec/stdlib/interfaces/client';
5
-
6
- import http from 'http';
7
-
8
- import { getPXEServiceConfig } from '../config/index.js';
9
- import { createPXEService } from '../entrypoints/server/utils.js';
10
-
11
- const { PXE_PORT = 8080, AZTEC_NODE_URL = 'http://localhost:8079' } = process.env;
12
-
13
- const logger = createLogger('pxe:service');
14
-
15
- /**
16
- * Creates an http server that forwards calls to the PXE and starts it on the given port.
17
- * @param pxeService - PXE that answers queries to the created HTTP server.
18
- * @param port - Port to listen in.
19
- * @param maxBatchSize - Maximum allowed batch size for JSON RPC batch requests.
20
- * @returns A running http server.
21
- */
22
- function startPXEHttpServer(
23
- pxeService: PXE,
24
- port: string | number,
25
- opts: Pick<SafeJsonRpcServerOptions, 'maxBatchSize'> = {},
26
- ): http.Server {
27
- const rpcServer = createNamespacedSafeJsonRpcServer({ pxe: [pxeService, PXESchema] }, opts);
28
-
29
- const app = rpcServer.getApp();
30
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
31
- const httpServer = http.createServer(app.callback());
32
- httpServer.listen(port);
33
-
34
- return httpServer;
35
- }
36
-
37
- /**
38
- * Create and start a new PXE HTTP Server
39
- */
40
- async function main() {
41
- logger.info(`Setting up PXE...`);
42
-
43
- const pxeConfig = getPXEServiceConfig();
44
- const nodeRpcClient = createAztecNodeClient(AZTEC_NODE_URL, {});
45
- const pxeService = await createPXEService(nodeRpcClient, pxeConfig);
46
-
47
- const shutdown = () => {
48
- logger.info('Shutting down...');
49
- process.exit(0);
50
- };
51
-
52
- process.once('SIGINT', shutdown);
53
- process.once('SIGTERM', shutdown);
54
-
55
- startPXEHttpServer(pxeService, PXE_PORT);
56
- logger.info(`PXE listening on port ${PXE_PORT}`);
57
- }
58
-
59
- main().catch(err => {
60
- logger.error(err);
61
- process.exit(1);
62
- });
@@ -1,289 +0,0 @@
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, IndexedTaggingSecret } 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 { UInt64 } from '@aztec/stdlib/types';
12
-
13
- import type { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
14
-
15
- /**
16
- * Information about a note needed during execution.
17
- */
18
- export interface NoteData {
19
- /** The actual note content (the fields of the Noir #[note] struct). */
20
- note: Note;
21
- /** The address of the contract that owns the note. */
22
- contractAddress: AztecAddress;
23
- /** The storage slot of the note. */
24
- storageSlot: Fr;
25
- /** The nonce injected into the note hash preimage by kernels. */
26
- noteNonce: Fr;
27
- /** A hash of the note as it gets stored in the note hash tree. */
28
- noteHash: Fr;
29
- /** The corresponding nullifier of the note. Undefined for pending notes. */
30
- siloedNullifier?: Fr;
31
- /** The note's leaf index in the note hash tree. Undefined for pending notes. */
32
- index?: bigint;
33
- }
34
-
35
- class OracleMethodNotAvailableError extends Error {
36
- constructor(methodName: string) {
37
- super(`Oracle method ${methodName} is not available.`);
38
- }
39
- }
40
-
41
- /**
42
- * Oracle with typed parameters and typed return values.
43
- * Methods that require read and/or write will have to be implemented based on the context (public, private, or view)
44
- * and are unavailable by default.
45
- */
46
- export abstract class TypedOracle {
47
- utilityAssertCompatibleOracleVersion(_version: number): void {
48
- throw new OracleMethodNotAvailableError('utilityAssertCompatibleOracleVersion');
49
- }
50
-
51
- utilityGetRandomField(): Fr {
52
- throw new OracleMethodNotAvailableError('utilityGetRandomField');
53
- }
54
-
55
- privateStoreInExecutionCache(_values: Fr[], _hash: Fr): void {
56
- throw new OracleMethodNotAvailableError('privateStoreInExecutionCache');
57
- }
58
-
59
- privateLoadFromExecutionCache(_hash: Fr): Promise<Fr[]> {
60
- return Promise.reject(new OracleMethodNotAvailableError('privateLoadFromExecutionCache'));
61
- }
62
-
63
- utilityGetBlockNumber(): Promise<number> {
64
- return Promise.reject(new OracleMethodNotAvailableError('utilityGetBlockNumber'));
65
- }
66
-
67
- utilityGetTimestamp(): Promise<UInt64> {
68
- return Promise.reject(new OracleMethodNotAvailableError('utilityGetTimestamp'));
69
- }
70
-
71
- utilityGetContractAddress(): Promise<AztecAddress> {
72
- return Promise.reject(new OracleMethodNotAvailableError('utilityGetContractAddress'));
73
- }
74
-
75
- utilityGetChainId(): Promise<Fr> {
76
- return Promise.reject(new OracleMethodNotAvailableError('utilityGetChainId'));
77
- }
78
-
79
- utilityGetVersion(): Promise<Fr> {
80
- return Promise.reject(new OracleMethodNotAvailableError('utilityGetVersion'));
81
- }
82
-
83
- utilityGetKeyValidationRequest(_pkMHash: Fr): Promise<KeyValidationRequest> {
84
- return Promise.reject(new OracleMethodNotAvailableError('utilityGetKeyValidationRequest'));
85
- }
86
-
87
- utilityGetContractInstance(_address: AztecAddress): Promise<ContractInstance> {
88
- return Promise.reject(new OracleMethodNotAvailableError('utilityGetContractInstance'));
89
- }
90
-
91
- utilityGetMembershipWitness(_blockNumber: number, _treeId: MerkleTreeId, _leafValue: Fr): Promise<Fr[] | undefined> {
92
- return Promise.reject(new OracleMethodNotAvailableError('utilityGetMembershipWitness'));
93
- }
94
-
95
- utilityGetNullifierMembershipWitness(
96
- _blockNumber: number,
97
- _nullifier: Fr,
98
- ): Promise<NullifierMembershipWitness | undefined> {
99
- return Promise.reject(new OracleMethodNotAvailableError('utilityGetNullifierMembershipWitness'));
100
- }
101
-
102
- utilityGetPublicDataWitness(_blockNumber: number, _leafSlot: Fr): Promise<PublicDataWitness | undefined> {
103
- return Promise.reject(new OracleMethodNotAvailableError('utilityGetPublicDataWitness'));
104
- }
105
-
106
- utilityGetLowNullifierMembershipWitness(
107
- _blockNumber: number,
108
- _nullifier: Fr,
109
- ): Promise<NullifierMembershipWitness | undefined> {
110
- return Promise.reject(new OracleMethodNotAvailableError('utilityGetLowNullifierMembershipWitness'));
111
- }
112
-
113
- utilityGetBlockHeader(_blockNumber: number): Promise<BlockHeader | undefined> {
114
- return Promise.reject(new OracleMethodNotAvailableError('utilityGetBlockHeader'));
115
- }
116
-
117
- utilityGetCompleteAddress(_account: AztecAddress): Promise<CompleteAddress> {
118
- return Promise.reject(new OracleMethodNotAvailableError('utilityGetCompleteAddress'));
119
- }
120
-
121
- utilityGetAuthWitness(_messageHash: Fr): Promise<Fr[] | undefined> {
122
- return Promise.reject(new OracleMethodNotAvailableError('utilityGetAuthWitness'));
123
- }
124
-
125
- utilityGetNotes(
126
- _storageSlot: Fr,
127
- _numSelects: number,
128
- _selectByIndexes: number[],
129
- _selectByOffsets: number[],
130
- _selectByLengths: number[],
131
- _selectValues: Fr[],
132
- _selectComparators: number[],
133
- _sortByIndexes: number[],
134
- _sortByOffsets: number[],
135
- _sortByLengths: number[],
136
- _sortOrder: number[],
137
- _limit: number,
138
- _offset: number,
139
- _status: NoteStatus,
140
- ): Promise<NoteData[]> {
141
- return Promise.reject(new OracleMethodNotAvailableError('utilityGetNotes'));
142
- }
143
-
144
- privateNotifyCreatedNote(
145
- _storageSlot: Fr,
146
- _noteTypeId: NoteSelector,
147
- _note: Fr[],
148
- _noteHash: Fr,
149
- _counter: number,
150
- ): void {
151
- throw new OracleMethodNotAvailableError('privateNotifyCreatedNote');
152
- }
153
-
154
- privateNotifyNullifiedNote(_innerNullifier: Fr, _noteHash: Fr, _counter: number): Promise<void> {
155
- return Promise.reject(new OracleMethodNotAvailableError('privateNotifyNullifiedNote'));
156
- }
157
-
158
- privateNotifyCreatedNullifier(_innerNullifier: Fr): Promise<void> {
159
- return Promise.reject(new OracleMethodNotAvailableError('privateNotifyCreatedNullifier'));
160
- }
161
-
162
- utilityCheckNullifierExists(_innerNullifier: Fr): Promise<boolean> {
163
- return Promise.reject(new OracleMethodNotAvailableError('utilityCheckNullifierExists'));
164
- }
165
-
166
- utilityGetL1ToL2MembershipWitness(
167
- _contractAddress: AztecAddress,
168
- _messageHash: Fr,
169
- _secret: Fr,
170
- ): Promise<MessageLoadOracleInputs<typeof L1_TO_L2_MSG_TREE_HEIGHT>> {
171
- return Promise.reject(new OracleMethodNotAvailableError('utilityGetL1ToL2MembershipWitness'));
172
- }
173
-
174
- utilityStorageRead(
175
- _contractAddress: AztecAddress,
176
- _startStorageSlot: Fr,
177
- _blockNumber: number,
178
- _numberOfElements: number,
179
- ): Promise<Fr[]> {
180
- return Promise.reject(new OracleMethodNotAvailableError('utilityStorageRead'));
181
- }
182
-
183
- privateNotifyCreatedContractClassLog(_log: ContractClassLog, _counter: number): void {
184
- throw new OracleMethodNotAvailableError('privateNotifyCreatedContractClassLog');
185
- }
186
-
187
- privateCallPrivateFunction(
188
- _targetContractAddress: AztecAddress,
189
- _functionSelector: FunctionSelector,
190
- _argsHash: Fr,
191
- _sideEffectCounter: number,
192
- _isStaticCall: boolean,
193
- ): Promise<{ endSideEffectCounter: Fr; returnsHash: Fr }> {
194
- return Promise.reject(new OracleMethodNotAvailableError('privateCallPrivateFunction'));
195
- }
196
-
197
- privateNotifyEnqueuedPublicFunctionCall(
198
- _targetContractAddress: AztecAddress,
199
- _calldataHash: Fr,
200
- _sideEffectCounter: number,
201
- _isStaticCall: boolean,
202
- ): Promise<void> {
203
- return Promise.reject(new OracleMethodNotAvailableError('privateNotifyEnqueuedPublicFunctionCall'));
204
- }
205
-
206
- privateNotifySetPublicTeardownFunctionCall(
207
- _targetContractAddress: AztecAddress,
208
- _calldataHash: Fr,
209
- _sideEffectCounter: number,
210
- _isStaticCall: boolean,
211
- ): Promise<void> {
212
- return Promise.reject(new OracleMethodNotAvailableError('privateNotifySetPublicTeardownFunctionCall'));
213
- }
214
-
215
- privateNotifySetMinRevertibleSideEffectCounter(_minRevertibleSideEffectCounter: number): Promise<void> {
216
- throw new OracleMethodNotAvailableError('privateNotifySetMinRevertibleSideEffectCounter');
217
- }
218
-
219
- utilityDebugLog(_message: string, _fields: Fr[]): void {
220
- throw new OracleMethodNotAvailableError('utilityDebugLog');
221
- }
222
-
223
- utilityGetIndexedTaggingSecretAsSender(
224
- _sender: AztecAddress,
225
- _recipient: AztecAddress,
226
- ): Promise<IndexedTaggingSecret> {
227
- return Promise.reject(new OracleMethodNotAvailableError('utilityGetIndexedTaggingSecretAsSender'));
228
- }
229
-
230
- privateIncrementAppTaggingSecretIndexAsSender(_sender: AztecAddress, _recipient: AztecAddress): Promise<void> {
231
- return Promise.reject(new OracleMethodNotAvailableError('privateIncrementAppTaggingSecretIndexAsSender'));
232
- }
233
-
234
- utilityFetchTaggedLogs(_pendingTaggedLogArrayBaseSlot: Fr): Promise<void> {
235
- return Promise.reject(new OracleMethodNotAvailableError('utilityFetchTaggedLogs'));
236
- }
237
-
238
- utilityValidateEnqueuedNotesAndEvents(
239
- _contractAddress: AztecAddress,
240
- _noteValidationRequestsArrayBaseSlot: Fr,
241
- _eventValidationRequestsArrayBaseSlot: Fr,
242
- ): Promise<void> {
243
- return Promise.reject(new OracleMethodNotAvailableError('utilityValidateEnqueuedNotesAndEvents'));
244
- }
245
-
246
- utilityBulkRetrieveLogs(
247
- _contractAddress: AztecAddress,
248
- _logRetrievalRequestsArrayBaseSlot: Fr,
249
- _logRetrievalResponsesArrayBaseSlot: Fr,
250
- ): Promise<void> {
251
- throw new OracleMethodNotAvailableError('utilityBulkRetrieveLogs');
252
- }
253
-
254
- utilityStoreCapsule(_contractAddress: AztecAddress, _key: Fr, _capsule: Fr[]): Promise<void> {
255
- return Promise.reject(new OracleMethodNotAvailableError('utilityStoreCapsule'));
256
- }
257
-
258
- utilityLoadCapsule(_contractAddress: AztecAddress, _key: Fr): Promise<Fr[] | null> {
259
- return Promise.reject(new OracleMethodNotAvailableError('utilityLoadCapsule'));
260
- }
261
-
262
- utilityDeleteCapsule(_contractAddress: AztecAddress, _key: Fr): Promise<void> {
263
- return Promise.reject(new OracleMethodNotAvailableError('utilityDeleteCapsule'));
264
- }
265
-
266
- utilityCopyCapsule(_contractAddress: AztecAddress, _srcKey: Fr, _dstKey: Fr, _numEntries: number): Promise<void> {
267
- return Promise.reject(new OracleMethodNotAvailableError('utilityCopyCapsule'));
268
- }
269
-
270
- utilityAes128Decrypt(_ciphertext: Buffer, _iv: Buffer, _symKey: Buffer): Promise<Buffer> {
271
- return Promise.reject(new OracleMethodNotAvailableError('utilityAes128Decrypt'));
272
- }
273
-
274
- utilityGetSharedSecret(_address: AztecAddress, _ephPk: Point): Promise<Point> {
275
- return Promise.reject(new OracleMethodNotAvailableError('utilityGetSharedSecret'));
276
- }
277
-
278
- utilityEmitOffchainEffect(_data: Fr[]): Promise<void> {
279
- return Promise.reject(new OracleMethodNotAvailableError('utilityEmitOffchainEffect'));
280
- }
281
-
282
- privateGetSenderForTags(): Promise<AztecAddress | undefined> {
283
- return Promise.reject(new OracleMethodNotAvailableError('privateGetSenderForTags'));
284
- }
285
-
286
- privateSetSenderForTags(_senderForTags: AztecAddress): Promise<void> {
287
- return Promise.reject(new OracleMethodNotAvailableError('privateSetSenderForTags'));
288
- }
289
- }
@@ -1,32 +0,0 @@
1
- import type { Fr } from '@aztec/foundation/fields';
2
- import { IndexedTaggingSecret } from '@aztec/stdlib/logs';
3
-
4
- // Half the size of the window we slide over the tagging secret indexes.
5
- export const WINDOW_HALF_SIZE = 10;
6
-
7
- export function getIndexedTaggingSecretsForTheWindow(
8
- secretsAndWindows: { appTaggingSecret: Fr; leftMostIndex: number; rightMostIndex: number }[],
9
- ): IndexedTaggingSecret[] {
10
- const secrets: IndexedTaggingSecret[] = [];
11
- for (const secretAndWindow of secretsAndWindows) {
12
- for (let i = secretAndWindow.leftMostIndex; i <= secretAndWindow.rightMostIndex; i++) {
13
- secrets.push(new IndexedTaggingSecret(secretAndWindow.appTaggingSecret, i));
14
- }
15
- }
16
- return secrets;
17
- }
18
-
19
- /**
20
- * Creates a map from app tagging secret to initial index.
21
- * @param indexedTaggingSecrets - The indexed tagging secrets to get the initial indexes from.
22
- * @returns The map from app tagging secret to initial index.
23
- */
24
- export function getInitialIndexesMap(indexedTaggingSecrets: IndexedTaggingSecret[]): { [k: string]: number } {
25
- const initialIndexes: { [k: string]: number } = {};
26
-
27
- for (const indexedTaggingSecret of indexedTaggingSecrets) {
28
- initialIndexes[indexedTaggingSecret.appTaggingSecret.toString()] = indexedTaggingSecret.index;
29
- }
30
-
31
- return initialIndexes;
32
- }
@@ -1,2 +0,0 @@
1
- export * from './pxe_service.js';
2
- export { enrichPublicSimulationError } from './error_enriching.js';
@@ -1,3 +0,0 @@
1
- export interface DataProvider {
2
- getSize(): Promise<number>;
3
- }
@@ -1,154 +0,0 @@
1
- import { toBigIntBE } from '@aztec/foundation/bigint-buffer';
2
- import { Fr, Point } from '@aztec/foundation/fields';
3
- import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
4
- import { AztecAddress } from '@aztec/stdlib/aztec-address';
5
- import { Note } from '@aztec/stdlib/note';
6
- import { TxHash } from '@aztec/stdlib/tx';
7
-
8
- import type { NoteData } from '../../contract_function_simulator/oracle/typed_oracle.js';
9
-
10
- /**
11
- * A Note Data Access Object, representing a note that was committed to the note hash tree, holding all of the
12
- * information required to use it during execution and manage its state.
13
- */
14
- export class NoteDao implements NoteData {
15
- constructor(
16
- // Note information
17
-
18
- /** The packed content of the note, as will be returned in the getNotes oracle. */
19
- public note: Note,
20
- /** The address of the contract that created the note (i.e. the address used by the kernel during siloing). */
21
- public contractAddress: AztecAddress,
22
- /**
23
- * The storage location of the note. This value is not used for anything in PXE, but we do index by storage slot
24
- * since contracts typically make queries based on it.
25
- */
26
- public storageSlot: Fr,
27
- /** The nonce that was injected into the note hash preimage in order to guarantee uniqueness. */
28
- public noteNonce: Fr,
29
-
30
- // Computed values
31
- /**
32
- * The inner hash (non-unique, non-siloed) of the note. Each contract determines how the note is hashed. Can
33
- * be used alongside contractAddress and nonce to compute the uniqueNoteHash and the siloedNoteHash.
34
- */
35
- public noteHash: Fr,
36
- /**
37
- * The nullifier of the note, siloed by contract address.
38
- * Note: Might be set as 0 if the note was added to PXE as nullified.
39
- */
40
- public siloedNullifier: Fr,
41
-
42
- // Metadata
43
- /** The hash of the tx in which this note was created. Knowing the tx hash allows for efficient node queries e.g.
44
- * when searching for txEffects.
45
- */
46
- public txHash: TxHash,
47
- /** The L2 block number in which the tx with this note was included. Used for note management while processing
48
- * reorgs.*/
49
- public l2BlockNumber: number,
50
- /** The L2 block hash in which the tx with this note was included. Used for note management while processing
51
- * reorgs.*/
52
- public l2BlockHash: string,
53
- /** The index of the leaf in the global note hash tree the note is stored at */
54
- public index: bigint,
55
- /**
56
- * The address whose public key was used to encrypt the note log during delivery.
57
- * (This is the x-coordinate of the public key.)
58
- */
59
- public recipient: AztecAddress,
60
- ) {}
61
-
62
- toBuffer(): Buffer {
63
- return serializeToBuffer([
64
- this.note,
65
- this.contractAddress,
66
- this.storageSlot,
67
- this.noteNonce,
68
- this.noteHash,
69
- this.siloedNullifier,
70
- this.txHash,
71
- this.l2BlockNumber,
72
- Fr.fromHexString(this.l2BlockHash),
73
- this.index,
74
- this.recipient,
75
- ]);
76
- }
77
-
78
- static fromBuffer(buffer: Buffer | BufferReader) {
79
- const reader = BufferReader.asReader(buffer);
80
-
81
- const note = Note.fromBuffer(reader);
82
- const contractAddress = AztecAddress.fromBuffer(reader);
83
- const storageSlot = Fr.fromBuffer(reader);
84
- const noteNonce = Fr.fromBuffer(reader);
85
- const noteHash = Fr.fromBuffer(reader);
86
- const siloedNullifier = Fr.fromBuffer(reader);
87
- const txHash = reader.readObject(TxHash);
88
- const l2BlockNumber = reader.readNumber();
89
- const l2BlockHash = Fr.fromBuffer(reader).toString();
90
- const index = toBigIntBE(reader.readBytes(32));
91
- const recipient = AztecAddress.fromBuffer(reader);
92
-
93
- return new NoteDao(
94
- note,
95
- contractAddress,
96
- storageSlot,
97
- noteNonce,
98
- noteHash,
99
- siloedNullifier,
100
- txHash,
101
- l2BlockNumber,
102
- l2BlockHash,
103
- index,
104
- recipient,
105
- );
106
- }
107
-
108
- toString() {
109
- return '0x' + this.toBuffer().toString('hex');
110
- }
111
-
112
- static fromString(str: string) {
113
- const hex = str.replace(/^0x/, '');
114
- return NoteDao.fromBuffer(Buffer.from(hex, 'hex'));
115
- }
116
-
117
- /**
118
- * Returns the size in bytes of the Note Dao.
119
- * @returns - Its size in bytes.
120
- */
121
- public getSize() {
122
- const indexSize = Math.ceil(Math.log2(Number(this.index)));
123
- const noteSize = 4 + this.note.items.length * Fr.SIZE_IN_BYTES;
124
- return noteSize + AztecAddress.SIZE_IN_BYTES + Fr.SIZE_IN_BYTES * 4 + TxHash.SIZE + Point.SIZE_IN_BYTES + indexSize;
125
- }
126
-
127
- static async random({
128
- note = Note.random(),
129
- contractAddress = undefined,
130
- storageSlot = Fr.random(),
131
- noteNonce = Fr.random(),
132
- noteHash = Fr.random(),
133
- siloedNullifier = Fr.random(),
134
- txHash = TxHash.random(),
135
- l2BlockNumber = Math.floor(Math.random() * 1000),
136
- l2BlockHash = Fr.random().toString(),
137
- index = Fr.random().toBigInt(),
138
- recipient = undefined,
139
- }: Partial<NoteDao> = {}) {
140
- return new NoteDao(
141
- note,
142
- contractAddress ?? (await AztecAddress.random()),
143
- storageSlot,
144
- noteNonce,
145
- noteHash,
146
- siloedNullifier,
147
- txHash,
148
- l2BlockNumber,
149
- l2BlockHash,
150
- index,
151
- recipient ?? (await AztecAddress.random()),
152
- );
153
- }
154
- }