@aztec/end-to-end 3.0.0-canary.a9708bd → 3.0.0-devnet.20251212

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 (165) hide show
  1. package/dest/bench/client_flows/benchmark.d.ts +4 -3
  2. package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
  3. package/dest/bench/client_flows/benchmark.js +2 -2
  4. package/dest/bench/client_flows/client_flows_benchmark.d.ts +25 -14
  5. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  6. package/dest/bench/client_flows/client_flows_benchmark.js +111 -90
  7. package/dest/bench/client_flows/config.d.ts +1 -1
  8. package/dest/bench/client_flows/data_extractor.d.ts +1 -1
  9. package/dest/bench/client_flows/data_extractor.js +8 -30
  10. package/dest/bench/utils.d.ts +4 -13
  11. package/dest/bench/utils.d.ts.map +1 -1
  12. package/dest/bench/utils.js +10 -34
  13. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +8 -8
  14. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  15. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +42 -42
  16. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +12 -9
  17. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  18. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +35 -35
  19. package/dest/e2e_deploy_contract/deploy_test.d.ts +12 -6
  20. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  21. package/dest/e2e_deploy_contract/deploy_test.js +9 -18
  22. package/dest/e2e_epochs/epochs_test.d.ts +19 -12
  23. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  24. package/dest/e2e_epochs/epochs_test.js +30 -22
  25. package/dest/e2e_fees/bridging_race.notest.d.ts +1 -1
  26. package/dest/e2e_fees/bridging_race.notest.js +14 -11
  27. package/dest/e2e_fees/fees_test.d.ts +10 -8
  28. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  29. package/dest/e2e_fees/fees_test.js +35 -38
  30. package/dest/e2e_l1_publisher/write_json.d.ts +4 -2
  31. package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
  32. package/dest/e2e_l1_publisher/write_json.js +9 -8
  33. package/dest/e2e_multi_validator/utils.d.ts +2 -2
  34. package/dest/e2e_multi_validator/utils.d.ts.map +1 -1
  35. package/dest/e2e_multi_validator/utils.js +4 -10
  36. package/dest/e2e_nested_contract/nested_contract_test.d.ts +7 -4
  37. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  38. package/dest/e2e_nested_contract/nested_contract_test.js +11 -12
  39. package/dest/e2e_p2p/inactivity_slash_test.d.ts +31 -0
  40. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -0
  41. package/dest/e2e_p2p/inactivity_slash_test.js +139 -0
  42. package/dest/e2e_p2p/p2p_network.d.ts +238 -17
  43. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  44. package/dest/e2e_p2p/p2p_network.js +46 -19
  45. package/dest/e2e_p2p/shared.d.ts +16 -17
  46. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  47. package/dest/e2e_p2p/shared.js +56 -55
  48. package/dest/e2e_token_contract/token_contract_test.d.ts +6 -5
  49. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  50. package/dest/e2e_token_contract/token_contract_test.js +14 -17
  51. package/dest/fixtures/e2e_prover_test.d.ts +12 -8
  52. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  53. package/dest/fixtures/e2e_prover_test.js +53 -58
  54. package/dest/fixtures/fixtures.d.ts +1 -1
  55. package/dest/fixtures/fixtures.d.ts.map +1 -1
  56. package/dest/fixtures/fixtures.js +1 -1
  57. package/dest/fixtures/get_acvm_config.d.ts +2 -2
  58. package/dest/fixtures/get_acvm_config.d.ts.map +1 -1
  59. package/dest/fixtures/get_acvm_config.js +1 -1
  60. package/dest/fixtures/get_bb_config.d.ts +2 -2
  61. package/dest/fixtures/get_bb_config.d.ts.map +1 -1
  62. package/dest/fixtures/get_bb_config.js +2 -2
  63. package/dest/fixtures/index.d.ts +1 -1
  64. package/dest/fixtures/l1_to_l2_messaging.d.ts +4 -3
  65. package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
  66. package/dest/fixtures/l1_to_l2_messaging.js +2 -2
  67. package/dest/fixtures/logging.d.ts +1 -1
  68. package/dest/fixtures/setup_l1_contracts.d.ts +476 -5
  69. package/dest/fixtures/setup_l1_contracts.d.ts.map +1 -1
  70. package/dest/fixtures/setup_l1_contracts.js +3 -3
  71. package/dest/fixtures/setup_p2p_test.d.ts +12 -11
  72. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  73. package/dest/fixtures/setup_p2p_test.js +50 -24
  74. package/dest/fixtures/snapshot_manager.d.ts +13 -10
  75. package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
  76. package/dest/fixtures/snapshot_manager.js +66 -51
  77. package/dest/fixtures/token_utils.d.ts +10 -5
  78. package/dest/fixtures/token_utils.d.ts.map +1 -1
  79. package/dest/fixtures/token_utils.js +17 -18
  80. package/dest/fixtures/utils.d.ts +479 -35
  81. package/dest/fixtures/utils.d.ts.map +1 -1
  82. package/dest/fixtures/utils.js +106 -125
  83. package/dest/fixtures/web3signer.d.ts +5 -0
  84. package/dest/fixtures/web3signer.d.ts.map +1 -0
  85. package/dest/fixtures/web3signer.js +53 -0
  86. package/dest/fixtures/with_telemetry_utils.d.ts +2 -2
  87. package/dest/fixtures/with_telemetry_utils.d.ts.map +1 -1
  88. package/dest/fixtures/with_telemetry_utils.js +2 -2
  89. package/dest/index.d.ts +1 -1
  90. package/dest/quality_of_service/alert_checker.d.ts +2 -2
  91. package/dest/quality_of_service/alert_checker.d.ts.map +1 -1
  92. package/dest/shared/cross_chain_test_harness.d.ts +20 -23
  93. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  94. package/dest/shared/cross_chain_test_harness.js +14 -16
  95. package/dest/shared/gas_portal_test_harness.d.ts +10 -17
  96. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  97. package/dest/shared/gas_portal_test_harness.js +11 -8
  98. package/dest/shared/index.d.ts +1 -1
  99. package/dest/shared/jest_setup.d.ts +1 -1
  100. package/dest/shared/jest_setup.js +1 -1
  101. package/dest/shared/submit-transactions.d.ts +6 -4
  102. package/dest/shared/submit-transactions.d.ts.map +1 -1
  103. package/dest/shared/submit-transactions.js +8 -7
  104. package/dest/shared/uniswap_l1_l2.d.ts +12 -8
  105. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  106. package/dest/shared/uniswap_l1_l2.js +44 -58
  107. package/dest/simulators/index.d.ts +1 -1
  108. package/dest/simulators/lending_simulator.d.ts +4 -7
  109. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  110. package/dest/simulators/lending_simulator.js +8 -5
  111. package/dest/simulators/token_simulator.d.ts +4 -2
  112. package/dest/simulators/token_simulator.d.ts.map +1 -1
  113. package/dest/simulators/token_simulator.js +2 -2
  114. package/dest/spartan/setup_test_wallets.d.ts +22 -14
  115. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  116. package/dest/spartan/setup_test_wallets.js +144 -86
  117. package/dest/spartan/tx_metrics.d.ts +39 -0
  118. package/dest/spartan/tx_metrics.d.ts.map +1 -0
  119. package/dest/spartan/tx_metrics.js +95 -0
  120. package/dest/spartan/utils.d.ts +92 -17
  121. package/dest/spartan/utils.d.ts.map +1 -1
  122. package/dest/spartan/utils.js +386 -63
  123. package/package.json +43 -40
  124. package/src/bench/client_flows/benchmark.ts +8 -8
  125. package/src/bench/client_flows/client_flows_benchmark.ts +141 -114
  126. package/src/bench/client_flows/data_extractor.ts +9 -31
  127. package/src/bench/utils.ts +9 -37
  128. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +46 -63
  129. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +38 -51
  130. package/src/e2e_deploy_contract/deploy_test.ts +18 -36
  131. package/src/e2e_epochs/epochs_test.ts +41 -35
  132. package/src/e2e_fees/bridging_race.notest.ts +16 -11
  133. package/src/e2e_fees/fees_test.ts +42 -47
  134. package/src/e2e_l1_publisher/write_json.ts +12 -9
  135. package/src/e2e_multi_validator/utils.ts +5 -11
  136. package/src/e2e_nested_contract/nested_contract_test.ts +15 -13
  137. package/src/e2e_p2p/inactivity_slash_test.ts +184 -0
  138. package/src/e2e_p2p/p2p_network.ts +124 -82
  139. package/src/e2e_p2p/shared.ts +66 -58
  140. package/src/e2e_token_contract/token_contract_test.ts +17 -17
  141. package/src/fixtures/e2e_prover_test.ts +60 -97
  142. package/src/fixtures/fixtures.ts +1 -2
  143. package/src/fixtures/get_acvm_config.ts +2 -2
  144. package/src/fixtures/get_bb_config.ts +3 -2
  145. package/src/fixtures/l1_to_l2_messaging.ts +4 -2
  146. package/src/fixtures/setup_l1_contracts.ts +5 -4
  147. package/src/fixtures/setup_p2p_test.ts +79 -32
  148. package/src/fixtures/snapshot_manager.ts +87 -82
  149. package/src/fixtures/token_utils.ts +16 -24
  150. package/src/fixtures/utils.ts +142 -172
  151. package/src/fixtures/web3signer.ts +63 -0
  152. package/src/fixtures/with_telemetry_utils.ts +2 -2
  153. package/src/guides/up_quick_start.sh +3 -11
  154. package/src/quality_of_service/alert_checker.ts +1 -1
  155. package/src/shared/cross_chain_test_harness.ts +23 -31
  156. package/src/shared/gas_portal_test_harness.ts +14 -21
  157. package/src/shared/jest_setup.ts +1 -1
  158. package/src/shared/submit-transactions.ts +12 -8
  159. package/src/shared/uniswap_l1_l2.ts +77 -86
  160. package/src/simulators/lending_simulator.ts +9 -6
  161. package/src/simulators/token_simulator.ts +5 -2
  162. package/src/spartan/DEVELOP.md +15 -3
  163. package/src/spartan/setup_test_wallets.ts +171 -127
  164. package/src/spartan/tx_metrics.ts +130 -0
  165. package/src/spartan/utils.ts +463 -64
@@ -1 +1 @@
1
- {"version":3,"file":"setup_p2p_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/setup_p2p_test.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAI9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAoB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AASrD,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAEnD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,gBAAgB,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,GAAG,EAAE,MAAM,EAAE,CAAC;CACf;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,EAAE,CAO7F;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,eAAe,EACvB,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,SAAI,GACd,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAoC7B;AAGD,wBAAsB,UAAU,CAC9B,MAAM,EAAE,eAAe,EACvB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,YAAY,EAAE,MAAM,EACpB,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,6BAQ5C;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,EAC/E,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,oDAyB5C;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,eAAe,EACvB,gBAAgB,CAAC,EAAE,MAAM,EACzB,IAAI,CAAC,EAAE,MAAM,EACb,YAAY,GAAE,MAAU,EACxB,aAAa,CAAC,EAAE,MAAM,4BAqBvB"}
1
+ {"version":3,"file":"setup_p2p_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/setup_p2p_test.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAK3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAoB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AASrD,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAEnD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,EAAE,CAO7F;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,eAAe,GAAG;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,EAC1D,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,SAAI,EACf,iBAAiB,SAAI,GACpB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAyC7B;AAED,4EAA4E;AAC5E,wBAAsB,UAAU,CAC9B,MAAM,EAAE,eAAe,GAAG;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,EAC1D,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,EAC/B,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,6BAY5C;AAED,+EAA+E;AAC/E,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,eAAe,EAC3B,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,6BAc5C;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,EAC/E,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,oDAwB5C;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,gBAAgB,CAAC,EAAE,MAAM,EACzB,IAAI,CAAC,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,MAAM,4BAgBvB;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,eAAe,EACvB,gBAAgB,CAAC,EAAE,MAAM,EACzB,IAAI,CAAC,EAAE,MAAM,EACb,YAAY,GAAE,MAAM,GAAG,MAAM,EAAM,EACnC,aAAa,CAAC,EAAE,MAAM,4BAmBvB"}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Test fixtures and utilities to set up and run a test using multiple validators
3
3
  */ import { AztecNodeService } from '@aztec/aztec-node';
4
+ import { range } from '@aztec/foundation/array';
4
5
  import { SecretValue } from '@aztec/foundation/config';
5
6
  import { addLogNameHandler, removeLogNameHandler } from '@aztec/foundation/log';
6
7
  import { bufferToHex } from '@aztec/foundation/string';
@@ -21,7 +22,7 @@ export function generatePrivateKeys(startIndex, numberOfKeys) {
21
22
  }
22
23
  return privateKeys;
23
24
  }
24
- export async function createNodes(config, dateProvider, bootstrapNodeEnr, numNodes, bootNodePort, prefilledPublicData, dataDirectory, metricsPort, indexOffset = 0) {
25
+ export async function createNodes(config, dateProvider, bootstrapNodeEnr, numNodes, bootNodePort, prefilledPublicData, dataDirectory, metricsPort, indexOffset = 0, validatorsPerNode = 1) {
25
26
  const nodePromises = [];
26
27
  const loggerIdStorage = new AsyncLocalStorage();
27
28
  const logNameHandler = (module)=>loggerIdStorage.getStore() ? `${module}:${loggerIdStorage.getStore()}` : module;
@@ -30,8 +31,11 @@ export async function createNodes(config, dateProvider, bootstrapNodeEnr, numNod
30
31
  const index = indexOffset + i;
31
32
  // We run on ports from the bootnode upwards
32
33
  const port = bootNodePort + 1 + index;
34
+ // Determine validator indices for this node
35
+ const validatorIndices = validatorsPerNode === 1 ? index : range(validatorsPerNode, validatorsPerNode * index);
36
+ // Assign data directory
33
37
  const dataDir = dataDirectory ? `${dataDirectory}-${index}` : undefined;
34
- const nodePromise = createNode(config, dateProvider, port, bootstrapNodeEnr, index, prefilledPublicData, dataDir, metricsPort, loggerIdStorage);
38
+ const nodePromise = createNode(config, dateProvider, port, bootstrapNodeEnr, validatorIndices, prefilledPublicData, dataDir, metricsPort, loggerIdStorage);
35
39
  nodePromises.push(nodePromise);
36
40
  }
37
41
  const nodes = await Promise.all(nodePromises);
@@ -43,14 +47,33 @@ export async function createNodes(config, dateProvider, bootstrapNodeEnr, numNod
43
47
  removeLogNameHandler(logNameHandler);
44
48
  return nodes;
45
49
  }
46
- // creates a P2P enabled instance of Aztec Node Service
47
- export async function createNode(config, dateProvider, tcpPort, bootstrapNode, addressIndex, prefilledPublicData, dataDirectory, metricsPort, loggerIdStorage) {
50
+ /** Creates a P2P enabled instance of Aztec Node Service with a validator */ export async function createNode(config, dateProvider, tcpPort, bootstrapNode, addressIndex, prefilledPublicData, dataDirectory, metricsPort, loggerIdStorage) {
48
51
  const createNode = async ()=>{
49
52
  const validatorConfig = await createValidatorConfig(config, bootstrapNode, tcpPort, addressIndex, dataDirectory);
50
- const telemetry = getEndToEndTestTelemetryClient(metricsPort);
53
+ const telemetry = await getEndToEndTestTelemetryClient(metricsPort);
51
54
  return await AztecNodeService.createAndSync(validatorConfig, {
52
55
  telemetry,
53
56
  dateProvider
57
+ }, {
58
+ prefilledPublicData,
59
+ dontStartSequencer: config.dontStartSequencer
60
+ });
61
+ };
62
+ return loggerIdStorage ? await loggerIdStorage.run(tcpPort.toString(), createNode) : createNode();
63
+ }
64
+ /** Creates a P2P enabled instance of Aztec Node Service without a validator */ export async function createNonValidatorNode(baseConfig, dateProvider, tcpPort, bootstrapNode, prefilledPublicData, dataDirectory, metricsPort, loggerIdStorage) {
65
+ const createNode = async ()=>{
66
+ const p2pConfig = await createP2PConfig(baseConfig, bootstrapNode, tcpPort, dataDirectory);
67
+ const config = {
68
+ ...p2pConfig,
69
+ disableValidator: true,
70
+ validatorPrivateKeys: undefined,
71
+ publisherPrivateKeys: []
72
+ };
73
+ const telemetry = await getEndToEndTestTelemetryClient(metricsPort);
74
+ return await AztecNodeService.createAndSync(config, {
75
+ telemetry,
76
+ dateProvider
54
77
  }, {
55
78
  prefilledPublicData
56
79
  });
@@ -60,17 +83,8 @@ export async function createNode(config, dateProvider, tcpPort, bootstrapNode, a
60
83
  export async function createProverNode(config, tcpPort, bootstrapNode, addressIndex, proverNodeDeps, prefilledPublicData, dataDirectory, metricsPort, loggerIdStorage) {
61
84
  const createProverNode = async ()=>{
62
85
  const proverNodePrivateKey = getPrivateKeyFromIndex(ATTESTER_PRIVATE_KEYS_START_INDEX + addressIndex);
63
- const telemetry = getEndToEndTestTelemetryClient(metricsPort);
64
- const proverConfig = {
65
- p2pIp: `127.0.0.1`,
66
- p2pPort: tcpPort ?? await getPort(),
67
- p2pEnabled: true,
68
- peerCheckIntervalMS: TEST_PEER_CHECK_INTERVAL_MS,
69
- blockCheckIntervalMS: 1000,
70
- bootstrapNodes: bootstrapNode ? [
71
- bootstrapNode
72
- ] : []
73
- };
86
+ const telemetry = await getEndToEndTestTelemetryClient(metricsPort);
87
+ const proverConfig = await createP2PConfig(config, bootstrapNode, tcpPort, dataDirectory);
74
88
  const aztecNodeRpcTxProvider = undefined;
75
89
  return await createAndSyncProverNode(bufferToHex(proverNodePrivateKey), config, {
76
90
  ...proverConfig,
@@ -82,15 +96,8 @@ export async function createProverNode(config, tcpPort, bootstrapNode, addressIn
82
96
  };
83
97
  return loggerIdStorage ? await loggerIdStorage.run(tcpPort.toString(), createProverNode) : createProverNode();
84
98
  }
85
- export async function createValidatorConfig(config, bootstrapNodeEnr, port, addressIndex = 1, dataDirectory) {
99
+ export async function createP2PConfig(config, bootstrapNodeEnr, port, dataDirectory) {
86
100
  port = port ?? await getPort();
87
- const attesterPrivateKey = bufferToHex(getPrivateKeyFromIndex(ATTESTER_PRIVATE_KEYS_START_INDEX + addressIndex));
88
- config.validatorPrivateKeys = new SecretValue([
89
- attesterPrivateKey
90
- ]);
91
- config.publisherPrivateKeys = [
92
- new SecretValue(attesterPrivateKey)
93
- ];
94
101
  const nodeConfig = {
95
102
  ...config,
96
103
  p2pIp: `127.0.0.1`,
@@ -105,3 +112,22 @@ export async function createValidatorConfig(config, bootstrapNodeEnr, port, addr
105
112
  };
106
113
  return nodeConfig;
107
114
  }
115
+ export async function createValidatorConfig(config, bootstrapNodeEnr, port, addressIndex = 1, dataDirectory) {
116
+ const addressIndices = Array.isArray(addressIndex) ? addressIndex : [
117
+ addressIndex
118
+ ];
119
+ if (addressIndices.length === 0) {
120
+ throw new Error('At least one address index must be provided to create a validator config');
121
+ }
122
+ const attesterPrivateKeys = addressIndices.map((index)=>bufferToHex(getPrivateKeyFromIndex(ATTESTER_PRIVATE_KEYS_START_INDEX + index)));
123
+ const p2pConfig = await createP2PConfig(config, bootstrapNodeEnr, port, dataDirectory);
124
+ const nodeConfig = {
125
+ ...config,
126
+ ...p2pConfig,
127
+ validatorPrivateKeys: new SecretValue(attesterPrivateKeys),
128
+ publisherPrivateKeys: [
129
+ new SecretValue(attesterPrivateKeys[0])
130
+ ]
131
+ };
132
+ return nodeConfig;
133
+ }
@@ -1,13 +1,16 @@
1
1
  import { type InitialAccountData } from '@aztec/accounts/testing';
2
2
  import { type AztecNodeConfig, AztecNodeService } from '@aztec/aztec-node';
3
- import { type AztecAddress, type AztecNode, type CompleteAddress, type Logger, type PXE, type Wallet } from '@aztec/aztec.js';
3
+ import { AztecAddress } from '@aztec/aztec.js/addresses';
4
+ import type { Logger } from '@aztec/aztec.js/log';
5
+ import type { AztecNode } from '@aztec/aztec.js/node';
6
+ import type { Wallet } from '@aztec/aztec.js/wallet';
4
7
  import { AnvilTestWatcher, CheatCodes } from '@aztec/aztec/testing';
5
8
  import { type BlobSinkServer } from '@aztec/blob-sink/server';
6
- import { type DeployL1ContractsArgs, type DeployL1ContractsReturnType } from '@aztec/ethereum';
9
+ import type { DeployL1ContractsArgs, DeployL1ContractsReturnType } from '@aztec/ethereum/deploy-l1-contracts';
7
10
  import { TestDateProvider } from '@aztec/foundation/timer';
8
11
  import type { ProverNode } from '@aztec/prover-node';
9
- import { type PXEService } from '@aztec/pxe/server';
10
12
  import type { SequencerClient } from '@aztec/sequencer-client';
13
+ import { TestWallet } from '@aztec/test-wallet/server';
11
14
  import type { Anvil } from '@viem/anvil';
12
15
  import { type SetupOptions } from './utils.js';
13
16
  export type SubsystemsContext = {
@@ -16,7 +19,7 @@ export type SubsystemsContext = {
16
19
  bbConfig: any;
17
20
  aztecNode: AztecNodeService;
18
21
  aztecNodeConfig: AztecNodeConfig;
19
- pxe: PXEService;
22
+ wallet: TestWallet;
20
23
  deployL1ContractsValues: DeployL1ContractsReturnType;
21
24
  proverNode?: ProverNode;
22
25
  watcher: AnvilTestWatcher;
@@ -27,7 +30,7 @@ export type SubsystemsContext = {
27
30
  initialFundedAccounts: InitialAccountData[];
28
31
  directoryToCleanup?: string;
29
32
  };
30
- export declare function createSnapshotManager(testName: string, dataPath?: string, config?: Partial<SetupOptions>, deployL1ContractsArgs?: Partial<DeployL1ContractsArgs>): SnapshotManager | MockSnapshotManager;
33
+ export declare function createSnapshotManager(testName: string, dataPath?: string, config?: Partial<SetupOptions>, deployL1ContractsArgs?: Partial<DeployL1ContractsArgs>): MockSnapshotManager | SnapshotManager;
31
34
  export interface ISnapshotManager {
32
35
  snapshot<T>(name: string, apply: (context: SubsystemsContext) => Promise<T>, restore?: (snapshotData: T, context: SubsystemsContext) => Promise<void>): Promise<void>;
33
36
  setup(): Promise<SubsystemsContext>;
@@ -73,8 +76,8 @@ declare class SnapshotManager implements ISnapshotManager {
73
76
  * Snapshot 'apply' helper function to add accounts.
74
77
  * The 'restore' function is not provided, as it must be a closure within the test context to capture the results.
75
78
  */
76
- export declare const deployAccounts: (numberOfAccounts: number, logger: Logger, waitUntilProven?: boolean) => ({ pxe, initialFundedAccounts }: {
77
- pxe: PXE;
79
+ export declare const deployAccounts: (numberOfAccounts: number, logger: Logger) => ({ wallet, initialFundedAccounts }: {
80
+ wallet: TestWallet;
78
81
  initialFundedAccounts: InitialAccountData[];
79
82
  }) => Promise<{
80
83
  deployedAccounts: InitialAccountData[];
@@ -85,8 +88,8 @@ export declare const deployAccounts: (numberOfAccounts: number, logger: Logger,
85
88
  * @param sender - Wallet to send the deployment tx.
86
89
  * @param accountsToDeploy - Which accounts to publicly deploy.
87
90
  * @param waitUntilProven - Whether to wait for the tx to be proven.
88
- * @param pxeOrNode - PXE or AztecNode to wait for proven.
91
+ * @param node - AztecNode used to wait for proven tx.
89
92
  */
90
- export declare function publicDeployAccounts(sender: Wallet, accountsToDeploy: (CompleteAddress | AztecAddress)[], waitUntilProven?: boolean, pxeOrNode?: PXE | AztecNode): Promise<void>;
93
+ export declare function publicDeployAccounts(wallet: Wallet, accountsToDeploy: AztecAddress[], waitUntilProven?: boolean, node?: AztecNode): Promise<void>;
91
94
  export {};
92
- //# sourceMappingURL=snapshot_manager.d.ts.map
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcHNob3RfbWFuYWdlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZpeHR1cmVzL3NuYXBzaG90X21hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQTJCLE1BQU0seUJBQXlCLENBQUM7QUFDM0YsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFFLGdCQUFnQixFQUFvQixNQUFNLG1CQUFtQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxZQUFZLEVBQWMsTUFBTSwyQkFBMkIsQ0FBQztBQUlyRSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEUsT0FBTyxFQUFFLEtBQUssY0FBYyxFQUF3QixNQUFNLHlCQUF5QixDQUFDO0FBSXBGLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLDJCQUEyQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFROUcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFckQsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3ZELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQWV6QyxPQUFPLEVBQ0wsS0FBSyxZQUFZLEVBS2xCLE1BQU0sWUFBWSxDQUFDO0FBR3BCLE1BQU0sTUFBTSxpQkFBaUIs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
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot_manager.d.ts","sourceRoot":"","sources":["../../src/fixtures/snapshot_manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshot_manager.d.ts","sourceRoot":"","sources":["../../src/fixtures/snapshot_manager.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,27 @@
1
1
  import { SchnorrAccountContractArtifact } from '@aztec/accounts/schnorr';
2
- import { deployFundedSchnorrAccounts, generateSchnorrAccounts } from '@aztec/accounts/testing';
2
+ import { generateSchnorrAccounts } from '@aztec/accounts/testing';
3
3
  import { AztecNodeService, getConfigEnvVars } from '@aztec/aztec-node';
4
- import { BatchCall, DefaultWaitForProvenOpts, EthAddress, getContractClassFromArtifact, waitForProven } from '@aztec/aztec.js';
4
+ import { AztecAddress, EthAddress } from '@aztec/aztec.js/addresses';
5
+ import { getContractClassFromArtifact } from '@aztec/aztec.js/contracts';
6
+ import { BatchCall, waitForProven } from '@aztec/aztec.js/contracts';
5
7
  import { publishContractClass, publishInstance } from '@aztec/aztec.js/deployment';
6
8
  import { AnvilTestWatcher, CheatCodes } from '@aztec/aztec/testing';
7
9
  import { createBlobSinkServer } from '@aztec/blob-sink/server';
8
- import { createExtendedL1Client, deployMulticall3, getL1ContractsConfigEnvVars } from '@aztec/ethereum';
10
+ import { createExtendedL1Client } from '@aztec/ethereum/client';
11
+ import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
12
+ import { deployMulticall3 } from '@aztec/ethereum/contracts';
9
13
  import { EthCheatCodesWithState, startAnvil } from '@aztec/ethereum/test';
10
14
  import { asyncMap } from '@aztec/foundation/async-map';
11
15
  import { SecretValue } from '@aztec/foundation/config';
12
- import { randomBytes } from '@aztec/foundation/crypto';
16
+ import { randomBytes } from '@aztec/foundation/crypto/random';
13
17
  import { tryRmDir } from '@aztec/foundation/fs';
14
18
  import { createLogger } from '@aztec/foundation/log';
15
19
  import { resolver, reviver } from '@aztec/foundation/serialize';
16
20
  import { TestDateProvider } from '@aztec/foundation/timer';
17
- import { createPXEService, getPXEServiceConfig } from '@aztec/pxe/server';
21
+ import { getPXEConfig } from '@aztec/pxe/server';
18
22
  import { tryStop } from '@aztec/stdlib/interfaces/server';
19
23
  import { getConfigEnvVars as getTelemetryConfig, initTelemetryClient } from '@aztec/telemetry-client';
24
+ import { TestWallet } from '@aztec/test-wallet/server';
20
25
  import { getGenesisValues } from '@aztec/world-state/testing';
21
26
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
22
27
  import { copySync, removeSync } from 'fs-extra/esm';
@@ -118,7 +123,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
118
123
  // Execute the restoration function.
119
124
  await restore(snapshotData, context);
120
125
  // Save the snapshot data.
121
- const ethCheatCodes = new EthCheatCodesWithState(context.aztecNodeConfig.l1RpcUrls);
126
+ const ethCheatCodes = new EthCheatCodesWithState(context.aztecNodeConfig.l1RpcUrls, context.dateProvider);
122
127
  const anvilStateFile = `${this.livePath}/anvil.dat`;
123
128
  await ethCheatCodes.dumpChainState(anvilStateFile);
124
129
  writeFileSync(`${this.livePath}/${name}.json`, JSON.stringify(snapshotData || {}, resolver));
@@ -234,17 +239,6 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
234
239
  aztecNodeConfig.dataDirectory = statePath;
235
240
  }
236
241
  aztecNodeConfig.blobSinkUrl = `http://127.0.0.1:${blobSinkPort}`;
237
- // Start anvil. We go via a wrapper script to ensure if the parent dies, anvil dies.
238
- logger.verbose('Starting anvil...');
239
- const res = await startAnvil({
240
- l1BlockTime: opts.ethereumSlotDuration
241
- });
242
- const anvil = res.anvil;
243
- aztecNodeConfig.l1RpcUrls = [
244
- res.rpcUrl
245
- ];
246
- // Deploy our L1 contracts.
247
- logger.verbose('Deploying L1 contracts...');
248
242
  const hdAccount = mnemonicToAccount(MNEMONIC, {
249
243
  addressIndex: 0
250
244
  });
@@ -262,7 +256,20 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
262
256
  `0x${validatorPrivKey.toString('hex')}`
263
257
  ]);
264
258
  aztecNodeConfig.coinbase = opts.coinbase ?? EthAddress.fromString(`${hdAccount.address}`);
265
- const ethCheatCodes = new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls);
259
+ logger.info(`Setting up environment with config`, aztecNodeConfig);
260
+ // Start anvil. We go via a wrapper script to ensure if the parent dies, anvil dies.
261
+ logger.verbose('Starting anvil...');
262
+ const res = await startAnvil({
263
+ l1BlockTime: opts.ethereumSlotDuration
264
+ });
265
+ const anvil = res.anvil;
266
+ aztecNodeConfig.l1RpcUrls = [
267
+ res.rpcUrl
268
+ ];
269
+ const dateProvider = new TestDateProvider();
270
+ const ethCheatCodes = new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls, dateProvider);
271
+ // Deploy our L1 contracts.
272
+ logger.verbose('Deploying L1 contracts...');
266
273
  if (opts.l1StartTime) {
267
274
  await ethCheatCodes.warp(opts.l1StartTime, {
268
275
  resetBlockInterval: true
@@ -282,9 +289,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
282
289
  });
283
290
  aztecNodeConfig.l1Contracts = deployL1ContractsValues.l1ContractAddresses;
284
291
  aztecNodeConfig.rollupVersion = deployL1ContractsValues.rollupVersion;
285
- aztecNodeConfig.l1PublishRetryIntervalMS = 100;
286
- const dateProvider = new TestDateProvider();
287
- const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls), deployL1ContractsValues.l1ContractAddresses.rollupAddress, deployL1ContractsValues.l1Client, dateProvider);
292
+ const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls, dateProvider), deployL1ContractsValues.l1ContractAddresses.rollupAddress, deployL1ContractsValues.l1Client, dateProvider);
288
293
  await watcher.start();
289
294
  const acvmConfig = await getACVMConfig(logger);
290
295
  if (acvmConfig) {
@@ -296,7 +301,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
296
301
  aztecNodeConfig.bbBinaryPath = bbConfig.bbBinaryPath;
297
302
  aztecNodeConfig.bbWorkingDirectory = bbConfig.bbWorkingDirectory;
298
303
  }
299
- const telemetry = getEndToEndTestTelemetryClient(opts.metricsPort);
304
+ const telemetry = await getEndToEndTestTelemetryClient(opts.metricsPort);
300
305
  // Setup blob sink service
301
306
  const blobSink = await createBlobSinkServer({
302
307
  l1ChainId: aztecNodeConfig.l1ChainId,
@@ -304,7 +309,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
304
309
  l1Contracts: aztecNodeConfig.l1Contracts,
305
310
  port: blobSinkPort,
306
311
  dataDirectory: aztecNodeConfig.dataDirectory,
307
- dataStoreMapSizeKB: aztecNodeConfig.dataStoreMapSizeKB
312
+ dataStoreMapSizeKb: aztecNodeConfig.dataStoreMapSizeKb
308
313
  }, telemetry);
309
314
  await blobSink.start();
310
315
  logger.info('Creating and synching an aztec node...');
@@ -318,17 +323,18 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
318
323
  if (opts.startProverNode) {
319
324
  logger.verbose('Creating and syncing a simulated prover node with p2p disabled...');
320
325
  proverNode = await createAndSyncProverNode(`0x${proverNodePrivateKey.toString('hex')}`, aztecNodeConfig, {
326
+ ...aztecNodeConfig.proverNodeConfig,
321
327
  dataDirectory: path.join(directoryToCleanup, randomBytes(8).toString('hex')),
322
328
  p2pEnabled: false
323
329
  }, aztecNode, prefilledPublicData);
324
330
  }
325
331
  logger.verbose('Creating pxe...');
326
- const pxeConfig = getPXEServiceConfig();
332
+ const pxeConfig = getPXEConfig();
327
333
  pxeConfig.dataDirectory = statePath ?? path.join(directoryToCleanup, randomBytes(8).toString('hex'));
328
334
  // Only enable proving if specifically requested.
329
335
  pxeConfig.proverEnabled = !!opts.realProofs;
330
- const pxe = await createPXEService(aztecNode, pxeConfig);
331
- const cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, pxe);
336
+ const wallet = await TestWallet.create(aztecNode, pxeConfig);
337
+ const cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, aztecNode, dateProvider);
332
338
  if (statePath) {
333
339
  writeFileSync(`${statePath}/aztec_node_config.json`, JSON.stringify(aztecNodeConfig, resolver));
334
340
  writeFileSync(`${statePath}/accounts.json`, JSON.stringify(initialFundedAccounts, resolver));
@@ -337,7 +343,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
337
343
  aztecNodeConfig,
338
344
  anvil,
339
345
  aztecNode,
340
- pxe,
346
+ wallet,
341
347
  sequencer: aztecNode.getSequencer(),
342
348
  acvmConfig,
343
349
  bbConfig,
@@ -375,7 +381,8 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
375
381
  ];
376
382
  // Load anvil state.
377
383
  const anvilStateFile = `${statePath}/anvil.dat`;
378
- const ethCheatCodes = new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls);
384
+ const dateProvider = new TestDateProvider();
385
+ const ethCheatCodes = new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls, dateProvider);
379
386
  await ethCheatCodes.loadChainState(anvilStateFile);
380
387
  // TODO: Encapsulate this in a NativeAcvm impl.
381
388
  const acvmConfig = await getACVMConfig(logger);
@@ -390,17 +397,16 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
390
397
  }
391
398
  logger.verbose('Creating ETH clients...');
392
399
  const l1Client = createExtendedL1Client(aztecNodeConfig.l1RpcUrls, mnemonicToAccount(MNEMONIC));
393
- const dateProvider = new TestDateProvider();
394
- const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls), aztecNodeConfig.l1Contracts.rollupAddress, l1Client, dateProvider);
400
+ const watcher = new AnvilTestWatcher(ethCheatCodes, aztecNodeConfig.l1Contracts.rollupAddress, l1Client, dateProvider);
395
401
  await watcher.start();
396
- const telemetry = initTelemetryClient(getTelemetryConfig());
402
+ const telemetry = await initTelemetryClient(getTelemetryConfig());
397
403
  const blobSink = await createBlobSinkServer({
398
404
  l1ChainId: aztecNodeConfig.l1ChainId,
399
405
  l1RpcUrls: aztecNodeConfig.l1RpcUrls,
400
406
  l1Contracts: aztecNodeConfig.l1Contracts,
401
407
  port: blobSinkPort,
402
408
  dataDirectory: statePath,
403
- dataStoreMapSizeKB: aztecNodeConfig.dataStoreMapSizeKB
409
+ dataStoreMapSizeKb: aztecNodeConfig.dataStoreMapSizeKb
404
410
  }, telemetry);
405
411
  await blobSink.start();
406
412
  logger.verbose('Creating aztec node...');
@@ -416,19 +422,21 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
416
422
  const proverNodePrivateKey = getPrivateKeyFromIndex(2);
417
423
  const proverNodePrivateKeyHex = `0x${proverNodePrivateKey.toString('hex')}`;
418
424
  proverNode = await createAndSyncProverNode(proverNodePrivateKeyHex, aztecNodeConfig, {
419
- dataDirectory: path.join(directoryToCleanup, randomBytes(8).toString('hex'))
425
+ ...aztecNodeConfig.proverNodeConfig,
426
+ dataDirectory: path.join(directoryToCleanup, randomBytes(8).toString('hex')),
427
+ p2pEnabled: false
420
428
  }, aztecNode, prefilledPublicData);
421
429
  }
422
430
  logger.verbose('Creating pxe...');
423
- const pxeConfig = getPXEServiceConfig();
431
+ const pxeConfig = getPXEConfig();
424
432
  pxeConfig.dataDirectory = statePath;
425
- const pxe = await createPXEService(aztecNode, pxeConfig);
426
- const cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, pxe);
433
+ const wallet = await TestWallet.create(aztecNode, pxeConfig);
434
+ const cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, aztecNode, dateProvider);
427
435
  return {
428
436
  aztecNodeConfig,
429
437
  anvil,
430
438
  aztecNode,
431
- pxe,
439
+ wallet,
432
440
  sequencer: aztecNode.getSequencer(),
433
441
  acvmConfig,
434
442
  bbConfig,
@@ -449,13 +457,21 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
449
457
  /**
450
458
  * Snapshot 'apply' helper function to add accounts.
451
459
  * The 'restore' function is not provided, as it must be a closure within the test context to capture the results.
452
- */ export const deployAccounts = (numberOfAccounts, logger, waitUntilProven = false)=>async ({ pxe, initialFundedAccounts })=>{
460
+ */ export const deployAccounts = (numberOfAccounts, logger)=>async ({ wallet, initialFundedAccounts })=>{
453
461
  if (initialFundedAccounts.length < numberOfAccounts) {
454
462
  throw new Error(`Cannot deploy more than ${initialFundedAccounts.length} initial accounts.`);
455
463
  }
456
464
  logger.verbose('Deploying accounts funded with fee juice...');
457
465
  const deployedAccounts = initialFundedAccounts.slice(0, numberOfAccounts);
458
- await deployFundedSchnorrAccounts(pxe, deployedAccounts, undefined, waitUntilProven ? DefaultWaitForProvenOpts : undefined);
466
+ // Serial due to https://github.com/AztecProtocol/aztec-packages/issues/12045
467
+ for(let i = 0; i < deployedAccounts.length; i++){
468
+ const accountManager = await wallet.createSchnorrAccount(deployedAccounts[i].secret, deployedAccounts[i].salt, deployedAccounts[i].signingKey);
469
+ const deployMethod = await accountManager.getDeployMethod();
470
+ await deployMethod.send({
471
+ from: AztecAddress.ZERO,
472
+ skipClassPublication: i !== 0
473
+ }).wait();
474
+ }
459
475
  return {
460
476
  deployedAccounts
461
477
  };
@@ -466,27 +482,26 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
466
482
  * @param sender - Wallet to send the deployment tx.
467
483
  * @param accountsToDeploy - Which accounts to publicly deploy.
468
484
  * @param waitUntilProven - Whether to wait for the tx to be proven.
469
- * @param pxeOrNode - PXE or AztecNode to wait for proven.
470
- */ export async function publicDeployAccounts(sender, accountsToDeploy, waitUntilProven = false, pxeOrNode) {
471
- const accountAddressesToDeploy = accountsToDeploy.map((a)=>'address' in a ? a.address : a);
472
- const instances = (await Promise.all(accountAddressesToDeploy.map((account)=>sender.getContractMetadata(account)))).map((metadata)=>metadata.contractInstance);
485
+ * @param node - AztecNode used to wait for proven tx.
486
+ */ export async function publicDeployAccounts(wallet, accountsToDeploy, waitUntilProven = false, node) {
487
+ const instances = (await Promise.all(accountsToDeploy.map((account)=>wallet.getContractMetadata(account)))).map((metadata)=>metadata.contractInstance);
473
488
  const contractClass = await getContractClassFromArtifact(SchnorrAccountContractArtifact);
474
- const alreadyRegistered = (await sender.getContractClassMetadata(contractClass.id)).isContractClassPubliclyRegistered;
489
+ const alreadyRegistered = (await wallet.getContractClassMetadata(contractClass.id)).isContractClassPubliclyRegistered;
475
490
  const calls = await Promise.all([
476
491
  ...!alreadyRegistered ? [
477
- publishContractClass(sender, SchnorrAccountContractArtifact)
492
+ publishContractClass(wallet, SchnorrAccountContractArtifact)
478
493
  ] : [],
479
- ...instances.map((instance)=>publishInstance(sender, instance))
494
+ ...instances.map((instance)=>publishInstance(wallet, instance))
480
495
  ]);
481
- const batch = new BatchCall(sender, calls);
496
+ const batch = new BatchCall(wallet, calls);
482
497
  const txReceipt = await batch.send({
483
- from: accountAddressesToDeploy[0]
498
+ from: accountsToDeploy[0]
484
499
  }).wait();
485
500
  if (waitUntilProven) {
486
- if (!pxeOrNode) {
487
- throw new Error('Need to provide a PXE or AztecNode to wait for proven.');
501
+ if (!node) {
502
+ throw new Error('Need to provide an AztecNode to wait for proven.');
488
503
  } else {
489
- await waitForProven(pxeOrNode, txReceipt);
504
+ await waitForProven(node, txReceipt);
490
505
  }
491
506
  }
492
507
  }
@@ -1,7 +1,12 @@
1
- import { type AztecAddress, type Logger, type Wallet } from '@aztec/aztec.js';
1
+ import type { AztecAddress } from '@aztec/aztec.js/addresses';
2
+ import type { Logger } from '@aztec/aztec.js/log';
3
+ import type { Wallet } from '@aztec/aztec.js/wallet';
2
4
  import { TokenContract } from '@aztec/noir-contracts.js/Token';
3
- export declare function deployToken(adminWallet: Wallet, deployerAddress: AztecAddress, initialAdminBalance: bigint, logger: Logger): Promise<TokenContract>;
4
- export declare function mintTokensToPrivate(token: TokenContract, minter: AztecAddress, minterWallet: Wallet, recipient: AztecAddress, amount: bigint): Promise<void>;
5
+ export declare function deployToken(wallet: Wallet, admin: AztecAddress, initialAdminBalance: bigint, logger: Logger): Promise<{
6
+ contract: TokenContract;
7
+ instance: import("@aztec/aztec.js/contracts").ContractInstanceWithAddress;
8
+ }>;
9
+ export declare function mintTokensToPrivate(token: TokenContract, minter: AztecAddress, recipient: AztecAddress, amount: bigint): Promise<void>;
5
10
  export declare function expectTokenBalance(wallet: Wallet, token: TokenContract, owner: AztecAddress, expectedBalance: bigint, logger: Logger): Promise<void>;
6
- export declare function mintNotes(sender: Wallet, minter: AztecAddress, recipient: AztecAddress, asset: TokenContract, noteAmounts: bigint[]): Promise<bigint>;
7
- //# sourceMappingURL=token_utils.d.ts.map
11
+ export declare function mintNotes(wallet: Wallet, minter: AztecAddress, recipient: AztecAddress, asset: TokenContract, noteAmounts: bigint[]): Promise<bigint>;
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5fdXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy90b2tlbl91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU5RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFL0Qsd0JBQXNCLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNOzs7R0Fhakg7QUFFRCx3QkFBc0IsbUJBQW1CLENBQ3ZDLEtBQUssRUFBRSxhQUFhLEVBQ3BCLE1BQU0sRUFBRSxZQUFZLEVBQ3BCLFNBQVMsRUFBRSxZQUFZLEVBQ3ZCLE1BQU0sRUFBRSxNQUFNLGlCQUdmO0FBRUQsd0JBQXNCLGtCQUFrQixDQUN0QyxNQUFNLEVBQUUsTUFBTSxFQUNkLEtBQUssRUFBRSxhQUFhLEVBQ3BCLEtBQUssRUFBRSxZQUFZLEVBQ25CLGVBQWUsRUFBRSxNQUFNLEVBQ3ZCLE1BQU0sRUFBRSxNQUFNLGlCQU9mO0FBRUQsd0JBQXNCLFNBQVMsQ0FDN0IsTUFBTSxFQUFFLE1BQU0sRUFDZCxNQUFNLEVBQUUsWUFBWSxFQUNwQixTQUFTLEVBQUUsWUFBWSxFQUN2QixLQUFLLEVBQUUsYUFBYSxFQUNwQixXQUFXLEVBQUUsTUFBTSxFQUFFLEdBQ3BCLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FXakIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"token_utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/token_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAa,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAI/D,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,YAAY,EAC7B,mBAAmB,EAAE,MAAM,EAC3B,MAAM,EAAE,MAAM,0BAef;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,YAAY,EACvB,MAAM,EAAE,MAAM,iBAIf;AAGD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,iBAOf;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,MAAM,CAAC,CAWjB"}
1
+ {"version":3,"file":"token_utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/token_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;GAajH;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,YAAY,EACvB,MAAM,EAAE,MAAM,iBAGf;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,iBAOf;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,MAAM,CAAC,CAWjB"}
@@ -1,42 +1,41 @@
1
- import { BatchCall } from '@aztec/aztec.js';
1
+ import { BatchCall } from '@aztec/aztec.js/contracts';
2
2
  import { TokenContract } from '@aztec/noir-contracts.js/Token';
3
- // docs:start:token_utils
4
- export async function deployToken(adminWallet, deployerAddress, initialAdminBalance, logger) {
3
+ export async function deployToken(wallet, admin, initialAdminBalance, logger) {
5
4
  logger.info(`Deploying Token contract...`);
6
- const contract = await TokenContract.deploy(adminWallet, deployerAddress, 'TokenName', 'TokenSymbol', 18).send({
7
- from: deployerAddress
8
- }).deployed();
5
+ const { contract, instance } = await TokenContract.deploy(wallet, admin, 'TokenName', 'TokenSymbol', 18).send({
6
+ from: admin
7
+ }).wait();
9
8
  if (initialAdminBalance > 0n) {
10
- // Minter is minting to herself so contract as minter is the same as contract as recipient
11
- await mintTokensToPrivate(contract, deployerAddress, adminWallet, deployerAddress, initialAdminBalance);
9
+ await mintTokensToPrivate(contract, admin, admin, initialAdminBalance);
12
10
  }
13
11
  logger.info('L2 contract deployed');
14
- return contract;
12
+ return {
13
+ contract,
14
+ instance
15
+ };
15
16
  }
16
- export async function mintTokensToPrivate(token, minter, minterWallet, recipient, amount) {
17
- const tokenAsMinter = await TokenContract.at(token.address, minterWallet);
18
- await tokenAsMinter.methods.mint_to_private(recipient, amount).send({
17
+ export async function mintTokensToPrivate(token, minter, recipient, amount) {
18
+ await token.methods.mint_to_private(recipient, amount).send({
19
19
  from: minter
20
20
  }).wait();
21
21
  }
22
- // docs:end:token_utils
23
22
  export async function expectTokenBalance(wallet, token, owner, expectedBalance, logger) {
24
23
  // Then check the balance
25
- const contractWithWallet = await TokenContract.at(token.address, wallet);
24
+ const contractWithWallet = TokenContract.at(token.address, wallet);
26
25
  const balance = await contractWithWallet.methods.balance_of_private(owner).simulate({
27
26
  from: owner
28
27
  });
29
28
  logger.info(`Account ${owner} balance: ${balance}`);
30
29
  expect(balance).toBe(expectedBalance);
31
30
  }
32
- export async function mintNotes(sender, minter, recipient, asset, noteAmounts) {
33
- // We can only mint 4 notes at a time, since that's the maximum number of calls our entrypoints allow
31
+ export async function mintNotes(wallet, minter, recipient, asset, noteAmounts) {
32
+ // We can only mint 5 notes at a time, since that's the maximum number of calls our entrypoints allow
34
33
  // TODO(#13024): mint as many notes as possible in a single tx
35
- const notesPerIteration = 4;
34
+ const notesPerIteration = 5;
36
35
  for(let mintedNotes = 0; mintedNotes < noteAmounts.length; mintedNotes += notesPerIteration){
37
36
  const toMint = noteAmounts.slice(mintedNotes, mintedNotes + notesPerIteration);
38
37
  const actions = toMint.map((amt)=>asset.methods.mint_to_private(recipient, amt));
39
- await new BatchCall(sender, actions).send({
38
+ await new BatchCall(wallet, actions).send({
40
39
  from: minter
41
40
  }).wait();
42
41
  }