@aztec/end-to-end 0.0.1-commit.7d4e6cd → 0.0.1-commit.7ffbba4

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 (232) hide show
  1. package/dest/bench/client_flows/benchmark.d.ts +3 -2
  2. package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
  3. package/dest/bench/client_flows/benchmark.js +21 -1
  4. package/dest/bench/client_flows/client_flows_benchmark.d.ts +13 -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 +130 -137
  7. package/dest/bench/client_flows/config.d.ts +2 -2
  8. package/dest/bench/client_flows/config.d.ts.map +1 -1
  9. package/dest/bench/client_flows/config.js +18 -0
  10. package/dest/bench/utils.d.ts +6 -5
  11. package/dest/bench/utils.d.ts.map +1 -1
  12. package/dest/bench/utils.js +13 -8
  13. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +9 -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 +107 -113
  16. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +7 -8
  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 +68 -64
  19. package/dest/e2e_deploy_contract/deploy_test.d.ts +5 -4
  20. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  21. package/dest/e2e_deploy_contract/deploy_test.js +18 -13
  22. package/dest/e2e_epochs/epochs_test.d.ts +15 -7
  23. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  24. package/dest/e2e_epochs/epochs_test.js +86 -39
  25. package/dest/e2e_fees/bridging_race.notest.js +3 -5
  26. package/dest/e2e_fees/fees_test.d.ts +14 -14
  27. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  28. package/dest/e2e_fees/fees_test.js +133 -144
  29. package/dest/e2e_l1_publisher/write_json.d.ts +4 -3
  30. package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
  31. package/dest/e2e_l1_publisher/write_json.js +14 -13
  32. package/dest/e2e_nested_contract/nested_contract_test.d.ts +6 -9
  33. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  34. package/dest/e2e_nested_contract/nested_contract_test.js +30 -40
  35. package/dest/e2e_p2p/inactivity_slash_test.d.ts +3 -3
  36. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
  37. package/dest/e2e_p2p/inactivity_slash_test.js +3 -3
  38. package/dest/e2e_p2p/p2p_network.d.ts +11 -9
  39. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  40. package/dest/e2e_p2p/p2p_network.js +132 -108
  41. package/dest/e2e_p2p/reqresp/utils.d.ts +22 -0
  42. package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -0
  43. package/dest/e2e_p2p/reqresp/utils.js +177 -0
  44. package/dest/e2e_p2p/shared.d.ts +20 -6
  45. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  46. package/dest/e2e_p2p/shared.js +38 -18
  47. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts +2 -0
  48. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts.map +1 -0
  49. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.js +184 -0
  50. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts +18 -0
  51. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts.map +1 -0
  52. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.js +120 -0
  53. package/dest/e2e_token_contract/token_contract_test.d.ts +19 -10
  54. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  55. package/dest/e2e_token_contract/token_contract_test.js +100 -92
  56. package/dest/fixtures/authwit_proxy.d.ts +15 -0
  57. package/dest/fixtures/authwit_proxy.d.ts.map +1 -0
  58. package/dest/fixtures/authwit_proxy.js +30 -0
  59. package/dest/fixtures/e2e_prover_test.d.ts +11 -17
  60. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  61. package/dest/fixtures/e2e_prover_test.js +112 -127
  62. package/dest/fixtures/elu_monitor.d.ts +21 -0
  63. package/dest/fixtures/elu_monitor.d.ts.map +1 -0
  64. package/dest/fixtures/elu_monitor.js +102 -0
  65. package/dest/fixtures/fixtures.d.ts +5 -1
  66. package/dest/fixtures/fixtures.d.ts.map +1 -1
  67. package/dest/fixtures/fixtures.js +6 -0
  68. package/dest/fixtures/ha_setup.d.ts +71 -0
  69. package/dest/fixtures/ha_setup.d.ts.map +1 -0
  70. package/dest/fixtures/ha_setup.js +116 -0
  71. package/dest/fixtures/index.d.ts +2 -1
  72. package/dest/fixtures/index.d.ts.map +1 -1
  73. package/dest/fixtures/index.js +1 -0
  74. package/dest/fixtures/setup.d.ts +234 -0
  75. package/dest/fixtures/setup.d.ts.map +1 -0
  76. package/dest/fixtures/setup.js +605 -0
  77. package/dest/fixtures/setup_p2p_test.d.ts +16 -9
  78. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  79. package/dest/fixtures/setup_p2p_test.js +40 -29
  80. package/dest/fixtures/token_utils.d.ts +2 -2
  81. package/dest/fixtures/token_utils.d.ts.map +1 -1
  82. package/dest/fixtures/token_utils.js +12 -8
  83. package/dest/fixtures/utils.d.ts +5 -191
  84. package/dest/fixtures/utils.d.ts.map +1 -1
  85. package/dest/fixtures/utils.js +4 -615
  86. package/dest/quality_of_service/prometheus_client.d.ts +38 -0
  87. package/dest/quality_of_service/prometheus_client.d.ts.map +1 -0
  88. package/dest/quality_of_service/prometheus_client.js +67 -0
  89. package/dest/shared/cross_chain_test_harness.d.ts +14 -4
  90. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  91. package/dest/shared/cross_chain_test_harness.js +24 -24
  92. package/dest/shared/gas_portal_test_harness.d.ts +11 -1
  93. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  94. package/dest/shared/gas_portal_test_harness.js +3 -3
  95. package/dest/shared/index.d.ts +2 -1
  96. package/dest/shared/index.d.ts.map +1 -1
  97. package/dest/shared/index.js +1 -0
  98. package/dest/shared/jest_setup.js +41 -1
  99. package/dest/shared/mock_state_view.d.ts +86 -0
  100. package/dest/shared/mock_state_view.d.ts.map +1 -0
  101. package/dest/shared/mock_state_view.js +186 -0
  102. package/dest/shared/submit-transactions.d.ts +4 -4
  103. package/dest/shared/submit-transactions.d.ts.map +1 -1
  104. package/dest/shared/submit-transactions.js +9 -11
  105. package/dest/shared/uniswap_l1_l2.d.ts +1 -1
  106. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  107. package/dest/shared/uniswap_l1_l2.js +24 -22
  108. package/dest/simulators/lending_simulator.d.ts +5 -1
  109. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  110. package/dest/simulators/lending_simulator.js +4 -4
  111. package/dest/simulators/token_simulator.d.ts +1 -1
  112. package/dest/simulators/token_simulator.d.ts.map +1 -1
  113. package/dest/simulators/token_simulator.js +3 -24
  114. package/dest/spartan/setup_test_wallets.d.ts +9 -2
  115. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  116. package/dest/spartan/setup_test_wallets.js +94 -36
  117. package/dest/spartan/tx_metrics.d.ts +51 -2
  118. package/dest/spartan/tx_metrics.d.ts.map +1 -1
  119. package/dest/spartan/tx_metrics.js +334 -7
  120. package/dest/spartan/utils/bot.d.ts +28 -0
  121. package/dest/spartan/utils/bot.d.ts.map +1 -0
  122. package/dest/spartan/utils/bot.js +142 -0
  123. package/dest/spartan/utils/chaos.d.ts +79 -0
  124. package/dest/spartan/utils/chaos.d.ts.map +1 -0
  125. package/dest/spartan/utils/chaos.js +142 -0
  126. package/dest/spartan/utils/clients.d.ts +39 -0
  127. package/dest/spartan/utils/clients.d.ts.map +1 -0
  128. package/dest/spartan/utils/clients.js +90 -0
  129. package/dest/spartan/utils/config.d.ts +42 -0
  130. package/dest/spartan/utils/config.d.ts.map +1 -0
  131. package/dest/spartan/utils/config.js +22 -0
  132. package/dest/spartan/utils/health.d.ts +63 -0
  133. package/dest/spartan/utils/health.d.ts.map +1 -0
  134. package/dest/spartan/utils/health.js +202 -0
  135. package/dest/spartan/utils/helm.d.ts +15 -0
  136. package/dest/spartan/utils/helm.d.ts.map +1 -0
  137. package/dest/spartan/utils/helm.js +47 -0
  138. package/dest/spartan/utils/index.d.ts +10 -0
  139. package/dest/spartan/utils/index.d.ts.map +1 -0
  140. package/dest/spartan/utils/index.js +20 -0
  141. package/dest/spartan/utils/k8s.d.ts +128 -0
  142. package/dest/spartan/utils/k8s.d.ts.map +1 -0
  143. package/dest/spartan/utils/k8s.js +381 -0
  144. package/dest/spartan/utils/nodes.d.ts +40 -0
  145. package/dest/spartan/utils/nodes.d.ts.map +1 -0
  146. package/dest/spartan/utils/nodes.js +461 -0
  147. package/dest/spartan/utils/scripts.d.ts +30 -0
  148. package/dest/spartan/utils/scripts.d.ts.map +1 -0
  149. package/dest/spartan/utils/scripts.js +81 -0
  150. package/dest/spartan/utils.d.ts +2 -253
  151. package/dest/spartan/utils.d.ts.map +1 -1
  152. package/dest/spartan/utils.js +1 -892
  153. package/dest/test-wallet/test_wallet.d.ts +83 -0
  154. package/dest/test-wallet/test_wallet.d.ts.map +1 -0
  155. package/dest/test-wallet/test_wallet.js +214 -0
  156. package/dest/test-wallet/utils.d.ts +41 -0
  157. package/dest/test-wallet/utils.d.ts.map +1 -0
  158. package/dest/test-wallet/utils.js +71 -0
  159. package/dest/test-wallet/wallet_worker_script.d.ts +2 -0
  160. package/dest/test-wallet/wallet_worker_script.d.ts.map +1 -0
  161. package/dest/test-wallet/wallet_worker_script.js +48 -0
  162. package/dest/test-wallet/worker_wallet.d.ts +52 -0
  163. package/dest/test-wallet/worker_wallet.d.ts.map +1 -0
  164. package/dest/test-wallet/worker_wallet.js +151 -0
  165. package/dest/test-wallet/worker_wallet_schema.d.ts +274 -0
  166. package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -0
  167. package/dest/test-wallet/worker_wallet_schema.js +10 -0
  168. package/package.json +47 -43
  169. package/src/bench/client_flows/benchmark.ts +24 -2
  170. package/src/bench/client_flows/client_flows_benchmark.ts +148 -210
  171. package/src/bench/client_flows/config.ts +9 -1
  172. package/src/bench/utils.ts +15 -8
  173. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +120 -145
  174. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +103 -111
  175. package/src/e2e_deploy_contract/deploy_test.ts +22 -15
  176. package/src/e2e_epochs/epochs_test.ts +129 -93
  177. package/src/e2e_fees/bridging_race.notest.ts +4 -10
  178. package/src/e2e_fees/fees_test.ts +170 -224
  179. package/src/e2e_l1_publisher/write_json.ts +16 -13
  180. package/src/e2e_nested_contract/nested_contract_test.ts +35 -56
  181. package/src/e2e_p2p/inactivity_slash_test.ts +3 -3
  182. package/src/e2e_p2p/p2p_network.ts +196 -166
  183. package/src/e2e_p2p/reqresp/utils.ts +235 -0
  184. package/src/e2e_p2p/shared.ts +66 -23
  185. package/src/e2e_storage_proof/fixtures/storage_proof.json +915 -0
  186. package/src/e2e_storage_proof/fixtures/storage_proof_fetcher.ts +190 -0
  187. package/src/e2e_storage_proof/fixtures/storage_proof_fixture.ts +173 -0
  188. package/src/e2e_token_contract/token_contract_test.ts +121 -119
  189. package/src/fixtures/authwit_proxy.ts +50 -0
  190. package/src/fixtures/dumps/epoch_proof_result.json +1 -1
  191. package/src/fixtures/e2e_prover_test.ts +133 -171
  192. package/src/fixtures/elu_monitor.ts +126 -0
  193. package/src/fixtures/fixtures.ts +10 -0
  194. package/src/fixtures/ha_setup.ts +186 -0
  195. package/src/fixtures/index.ts +1 -0
  196. package/src/fixtures/setup.ts +897 -0
  197. package/src/fixtures/setup_p2p_test.ts +40 -44
  198. package/src/fixtures/token_utils.ts +10 -6
  199. package/src/fixtures/utils.ts +27 -901
  200. package/src/guides/up_quick_start.sh +3 -3
  201. package/src/quality_of_service/prometheus_client.ts +113 -0
  202. package/src/shared/cross_chain_test_harness.ts +24 -34
  203. package/src/shared/gas_portal_test_harness.ts +2 -2
  204. package/src/shared/index.ts +1 -0
  205. package/src/shared/jest_setup.ts +51 -1
  206. package/src/shared/mock_state_view.ts +188 -0
  207. package/src/shared/submit-transactions.ts +11 -16
  208. package/src/shared/uniswap_l1_l2.ts +26 -33
  209. package/src/simulators/lending_simulator.ts +6 -4
  210. package/src/simulators/token_simulator.ts +6 -30
  211. package/src/spartan/setup_test_wallets.ts +121 -26
  212. package/src/spartan/tx_metrics.ts +256 -10
  213. package/src/spartan/utils/bot.ts +188 -0
  214. package/src/spartan/utils/chaos.ts +253 -0
  215. package/src/spartan/utils/clients.ts +100 -0
  216. package/src/spartan/utils/config.ts +28 -0
  217. package/src/spartan/utils/health.ts +255 -0
  218. package/src/spartan/utils/helm.ts +84 -0
  219. package/src/spartan/utils/index.ts +68 -0
  220. package/src/spartan/utils/k8s.ts +535 -0
  221. package/src/spartan/utils/nodes.ts +543 -0
  222. package/src/spartan/utils/scripts.ts +99 -0
  223. package/src/spartan/utils.ts +1 -1158
  224. package/src/test-wallet/test_wallet.ts +306 -0
  225. package/src/test-wallet/utils.ts +112 -0
  226. package/src/test-wallet/wallet_worker_script.ts +60 -0
  227. package/src/test-wallet/worker_wallet.ts +213 -0
  228. package/src/test-wallet/worker_wallet_schema.ts +13 -0
  229. package/dest/fixtures/snapshot_manager.d.ts +0 -93
  230. package/dest/fixtures/snapshot_manager.d.ts.map +0 -1
  231. package/dest/fixtures/snapshot_manager.js +0 -488
  232. package/src/fixtures/snapshot_manager.ts +0 -646
@@ -1,11 +1,10 @@
1
1
  import { createLogger } from '@aztec/aztec.js/log';
2
2
  import { ChildContract } from '@aztec/noir-test-contracts.js/Child';
3
3
  import { ParentContract } from '@aztec/noir-test-contracts.js/Parent';
4
- import { createSnapshotManager, deployAccounts, publicDeployAccounts } from '../fixtures/snapshot_manager.js';
5
- const { E2E_DATA_PATH: dataPath } = process.env;
4
+ import { deployAccounts, publicDeployAccounts, setup, teardown as teardownSubsystems } from '../fixtures/setup.js';
6
5
  export class NestedContractTest {
7
6
  numberOfAccounts;
8
- snapshotManager;
7
+ context;
9
8
  logger;
10
9
  wallet;
11
10
  defaultAccountAddress;
@@ -14,51 +13,42 @@ export class NestedContractTest {
14
13
  childContract;
15
14
  constructor(testName, numberOfAccounts = 1){
16
15
  this.numberOfAccounts = numberOfAccounts;
17
- this.snapshot = (name, apply, restore = ()=>Promise.resolve())=>this.snapshotManager.snapshot(name, apply, restore);
18
16
  this.logger = createLogger(`e2e:e2e_nested_contract:${testName}`);
19
- this.snapshotManager = createSnapshotManager(`e2e_nested_contract/${testName}-${numberOfAccounts}`, dataPath);
20
17
  }
21
18
  /**
22
- * Adds two state shifts to snapshot manager.
23
- * 1. Add 3 accounts.
24
- * 2. Publicly deploy accounts
25
- */ async applyBaseSnapshots() {
26
- await this.snapshotManager.snapshot('accounts', deployAccounts(this.numberOfAccounts, this.logger), ({ deployedAccounts }, { wallet, aztecNode })=>{
27
- this.wallet = wallet;
28
- [{ address: this.defaultAccountAddress }] = deployedAccounts;
29
- this.aztecNode = aztecNode;
30
- return Promise.resolve();
31
- });
32
- await this.snapshotManager.snapshot('public_deploy', async ()=>{}, async ()=>{
33
- this.logger.verbose(`Public deploy accounts...`);
34
- await publicDeployAccounts(this.wallet, [
35
- this.defaultAccountAddress
36
- ]);
19
+ * Applies base setup by deploying accounts and publicly deploying them.
20
+ */ async applyBaseSetup() {
21
+ this.logger.info('Deploying accounts');
22
+ const { deployedAccounts } = await deployAccounts(this.numberOfAccounts, this.logger)({
23
+ wallet: this.context.wallet,
24
+ initialFundedAccounts: this.context.initialFundedAccounts
37
25
  });
26
+ this.wallet = this.context.wallet;
27
+ [{ address: this.defaultAccountAddress }] = deployedAccounts;
28
+ this.aztecNode = this.context.aztecNodeService;
29
+ this.logger.info('Public deploy accounts');
30
+ await publicDeployAccounts(this.wallet, [
31
+ this.defaultAccountAddress
32
+ ]);
38
33
  }
39
34
  async setup() {
40
- await this.snapshotManager.setup();
35
+ this.logger.info('Setting up fresh subsystems');
36
+ this.context = await setup(0, {
37
+ fundSponsoredFPC: true,
38
+ skipAccountDeployment: true
39
+ });
40
+ await this.applyBaseSetup();
41
41
  }
42
42
  async teardown() {
43
- await this.snapshotManager.teardown();
43
+ await teardownSubsystems(this.context);
44
44
  }
45
- snapshot;
46
- async applyManualSnapshots() {
47
- await this.snapshotManager.snapshot('manual', async ()=>{
48
- const parentContract = await ParentContract.deploy(this.wallet).send({
49
- from: this.defaultAccountAddress
50
- }).deployed();
51
- const childContract = await ChildContract.deploy(this.wallet).send({
52
- from: this.defaultAccountAddress
53
- }).deployed();
54
- return {
55
- parentContractAddress: parentContract.address,
56
- childContractAddress: childContract.address
57
- };
58
- }, ({ parentContractAddress, childContractAddress })=>{
59
- this.parentContract = ParentContract.at(parentContractAddress, this.wallet);
60
- this.childContract = ChildContract.at(childContractAddress, this.wallet);
61
- return Promise.resolve();
62
- });
45
+ async applyManual() {
46
+ this.logger.info('Deploying parent and child contracts');
47
+ ({ contract: this.parentContract } = await ParentContract.deploy(this.wallet).send({
48
+ from: this.defaultAccountAddress
49
+ }));
50
+ ({ contract: this.childContract } = await ChildContract.deploy(this.wallet).send({
51
+ from: this.defaultAccountAddress
52
+ }));
63
53
  }
64
54
  }
@@ -24,8 +24,8 @@ export declare class P2PInactivityTest {
24
24
  }): Promise<P2PInactivityTest>;
25
25
  setup(): Promise<this>;
26
26
  teardown(): Promise<void>;
27
- get ctx(): import("../fixtures/snapshot_manager.js").SubsystemsContext;
28
- get logger(): import("../../../foundation/dest/log/pino-logger.js").Logger;
27
+ get ctx(): import("../fixtures/setup.js").EndToEndContext;
28
+ get logger(): import("@aztec/foundation/log").Logger;
29
29
  get slashingAmount(): bigint;
30
30
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5hY3Rpdml0eV9zbGFzaF90ZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZTJlX3AycC9pbmFjdGl2aXR5X3NsYXNoX3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSTNELE9BQU8sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQWlCbEQscUJBQWEsaUJBQWlCO2FBYVYsSUFBSSxFQUFFLGNBQWM7SUFaL0IsS0FBSyxFQUFHLGdCQUFnQixFQUFFLENBQUM7SUFDM0IsV0FBVyxFQUFHLGdCQUFnQixFQUFFLENBQUM7SUFDakMsYUFBYSxFQUFHLGdCQUFnQixFQUFFLENBQUM7SUFFbkMsTUFBTSxFQUFHLGNBQWMsQ0FBQztJQUN4QixpQkFBaUIsRUFBRyxVQUFVLEVBQUUsQ0FBQztJQUV4QyxPQUFPLENBQUMsT0FBTyxDQUFTO0lBQ3hCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBUztJQUNsQyxPQUFPLENBQUMsZUFBZSxDQUFVO0lBRWpDLFlBQ2tCLElBQUksRUFBRSxjQUFjLEVBQ3BDLElBQUksRUFBRTtRQUFFLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztRQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtLQUFFLEVBSy9EO0lBRUQsT0FBYSxNQUFNLENBQ2pCLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLElBQUksRUFBRTtRQUFFLHdDQUF3QyxFQUFFLE1BQU0sQ0FBQztRQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztRQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtLQUFFLDhCQThCakg7SUFFWSxLQUFLLGtCQTBFakI7SUFFWSxRQUFRLGtCQU1wQjtJQUVELElBQVcsR0FBRyxnRUFFYjtJQUVELElBQVcsTUFBTSxpRUFFaEI7SUFFRCxJQUFXLGNBQWMsV0FFeEI7Q0FDRiJ9
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5hY3Rpdml0eV9zbGFzaF90ZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZTJlX3AycC9pbmFjdGl2aXR5X3NsYXNoX3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSTNELE9BQU8sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQWlCbEQscUJBQWEsaUJBQWlCO2FBYVYsSUFBSSxFQUFFLGNBQWM7SUFaL0IsS0FBSyxFQUFHLGdCQUFnQixFQUFFLENBQUM7SUFDM0IsV0FBVyxFQUFHLGdCQUFnQixFQUFFLENBQUM7SUFDakMsYUFBYSxFQUFHLGdCQUFnQixFQUFFLENBQUM7SUFFbkMsTUFBTSxFQUFHLGNBQWMsQ0FBQztJQUN4QixpQkFBaUIsRUFBRyxVQUFVLEVBQUUsQ0FBQztJQUV4QyxPQUFPLENBQUMsT0FBTyxDQUFTO0lBQ3hCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBUztJQUNsQyxPQUFPLENBQUMsZUFBZSxDQUFVO0lBRWpDLFlBQ2tCLElBQUksRUFBRSxjQUFjLEVBQ3BDLElBQUksRUFBRTtRQUFFLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztRQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtLQUFFLEVBSy9EO0lBRUQsT0FBYSxNQUFNLENBQ2pCLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLElBQUksRUFBRTtRQUFFLHdDQUF3QyxFQUFFLE1BQU0sQ0FBQztRQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztRQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtLQUFFLDhCQThCakg7SUFFWSxLQUFLLGtCQTBFakI7SUFFWSxRQUFRLGtCQU1wQjtJQUVELElBQVcsR0FBRyxtREFFYjtJQUVELElBQVcsTUFBTSwyQ0FFaEI7SUFFRCxJQUFXLGNBQWMsV0FFeEI7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"inactivity_slash_test.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/inactivity_slash_test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAI3D,OAAO,eAAe,CAAC;AAKvB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAiBlD,qBAAa,iBAAiB;aAaV,IAAI,EAAE,cAAc;IAZ/B,KAAK,EAAG,gBAAgB,EAAE,CAAC;IAC3B,WAAW,EAAG,gBAAgB,EAAE,CAAC;IACjC,aAAa,EAAG,gBAAgB,EAAE,CAAC;IAEnC,MAAM,EAAG,cAAc,CAAC;IACxB,iBAAiB,EAAG,UAAU,EAAE,CAAC;IAExC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,eAAe,CAAU;IAEjC,YACkB,IAAI,EAAE,cAAc,EACpC,IAAI,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,EAK/D;IAED,OAAa,MAAM,CACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;QAAE,wCAAwC,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,8BA8BjH;IAEY,KAAK,kBA0EjB;IAEY,QAAQ,kBAMpB;IAED,IAAW,GAAG,gEAEb;IAED,IAAW,MAAM,iEAEhB;IAED,IAAW,cAAc,WAExB;CACF"}
1
+ {"version":3,"file":"inactivity_slash_test.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/inactivity_slash_test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAI3D,OAAO,eAAe,CAAC;AAKvB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAiBlD,qBAAa,iBAAiB;aAaV,IAAI,EAAE,cAAc;IAZ/B,KAAK,EAAG,gBAAgB,EAAE,CAAC;IAC3B,WAAW,EAAG,gBAAgB,EAAE,CAAC;IACjC,aAAa,EAAG,gBAAgB,EAAE,CAAC;IAEnC,MAAM,EAAG,cAAc,CAAC;IACxB,iBAAiB,EAAG,UAAU,EAAE,CAAC;IAExC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,eAAe,CAAU;IAEjC,YACkB,IAAI,EAAE,cAAc,EACpC,IAAI,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,EAK/D;IAED,OAAa,MAAM,CACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;QAAE,wCAAwC,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,8BA8BjH;IAEY,KAAK,kBA0EjB;IAEY,QAAQ,kBAMpB;IAED,IAAW,GAAG,mDAEb;IAED,IAAW,MAAM,2CAEhB;IAED,IAAW,cAAc,WAExB;CACF"}
@@ -67,8 +67,8 @@ export class P2PInactivityTest {
67
67
  return new P2PInactivityTest(test, opts);
68
68
  }
69
69
  async setup() {
70
- await this.test.applyBaseSnapshots();
71
70
  await this.test.setup();
71
+ await this.test.applyBaseSetup();
72
72
  // Set slashing penalties for inactivity
73
73
  const { rollup } = await this.test.getContracts();
74
74
  const [activationThreshold, ejectionThreshold, localEjectionThreshold] = await Promise.all([
@@ -81,7 +81,7 @@ export class P2PInactivityTest {
81
81
  this.test.ctx.aztecNodeConfig.slashInactivityPenalty = SLASHING_AMOUNT;
82
82
  this.rollup = rollup;
83
83
  if (!this.keepInitialNode) {
84
- await this.test.ctx.aztecNode.stop();
84
+ await this.test.ctx.aztecNodeService.stop();
85
85
  }
86
86
  // Create all active nodes
87
87
  this.activeNodes = await createNodes(this.test.ctx.aztecNodeConfig, this.test.ctx.dateProvider, this.test.bootstrapNodeEnr, NUM_NODES - this.inactiveNodeCount - Number(this.keepInitialNode), BOOT_NODE_UDP_PORT, this.test.prefilledPublicData, this.dataDir, undefined, Number(this.keepInitialNode));
@@ -93,7 +93,7 @@ export class P2PInactivityTest {
93
93
  this.inactiveNodes = await createNodes(inactiveConfig, this.test.ctx.dateProvider, this.test.bootstrapNodeEnr, this.inactiveNodeCount, BOOT_NODE_UDP_PORT, this.test.prefilledPublicData, this.dataDir, undefined, NUM_NODES - this.inactiveNodeCount);
94
94
  this.nodes = [
95
95
  ...this.keepInitialNode ? [
96
- this.test.ctx.aztecNode
96
+ this.test.ctx.aztecNodeService
97
97
  ] : [],
98
98
  ...this.activeNodes,
99
99
  ...this.inactiveNodes
@@ -10,16 +10,16 @@ import { SlasherAbi } from '@aztec/l1-artifacts';
10
10
  import { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
11
11
  import type { BootstrapNode } from '@aztec/p2p/bootstrap';
12
12
  import { SlashFactoryContract } from '@aztec/stdlib/l1-contracts';
13
+ import { TopicType } from '@aztec/stdlib/p2p';
13
14
  import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
14
- import type { TestWallet } from '@aztec/test-wallet/server';
15
15
  import { type GetContractReturnType } from 'viem';
16
- import { type SubsystemsContext } from '../fixtures/snapshot_manager.js';
17
- import { type SetupOptions } from '../fixtures/utils.js';
16
+ import { type EndToEndContext, type SetupOptions } from '../fixtures/setup.js';
17
+ import type { TestWallet } from '../test-wallet/test_wallet.js';
18
18
  export declare const WAIT_FOR_TX_TIMEOUT: number;
19
19
  export declare const SHORTENED_BLOCK_TIME_CONFIG_NO_PRUNES: {
20
20
  aztecSlotDuration: number;
21
21
  ethereumSlotDuration: number;
22
- aztecProofSubmissionWindow: number;
22
+ aztecProofSubmissionEpochs: number;
23
23
  };
24
24
  export declare class P2PNetworkTest {
25
25
  readonly testName: string;
@@ -28,7 +28,7 @@ export declare class P2PNetworkTest {
28
28
  numberOfValidators: number;
29
29
  numberOfNodes: number;
30
30
  private metricsPort?;
31
- private snapshotManager;
31
+ context: EndToEndContext;
32
32
  baseAccountPrivateKey: `0x${string}`;
33
33
  baseAccount: {
34
34
  address: `0x${string}`;
@@ -255,7 +255,7 @@ export declare class P2PNetworkTest {
255
255
  };
256
256
  logger: Logger;
257
257
  monitor: ChainMonitor;
258
- ctx: SubsystemsContext;
258
+ ctx: EndToEndContext;
259
259
  attesterPrivateKeys: `0x${string}`[];
260
260
  attesterPublicKeys: string[];
261
261
  peerIdPrivateKeys: string[];
@@ -266,6 +266,8 @@ export declare class P2PNetworkTest {
266
266
  defaultAccountAddress?: AztecAddress;
267
267
  spamContract?: SpamContract;
268
268
  bootstrapNode?: BootstrapNode;
269
+ private setupOptions;
270
+ private deployL1ContractsArgs;
269
271
  constructor(testName: string, bootstrapNodeEnr: string, bootNodePort: number, numberOfValidators: number, initialValidatorConfig: SetupOptions, numberOfNodes?: number, metricsPort?: number | undefined, startProverNode?: boolean);
270
272
  static create({ testName, numberOfNodes, numberOfValidators, basePort, metricsPort, initialConfig, startProverNode }: {
271
273
  testName: string;
@@ -281,7 +283,7 @@ export declare class P2PNetworkTest {
281
283
  getValidators(): {
282
284
  validators: Operator[];
283
285
  };
284
- applyBaseSnapshots(): Promise<void>;
286
+ applyBaseSetup(): Promise<void>;
285
287
  setupAccount(): Promise<void>;
286
288
  deploySpamContract(): Promise<void>;
287
289
  removeInitialNode(): Promise<void>;
@@ -302,7 +304,7 @@ export declare class P2PNetworkTest {
302
304
  * @param timeoutSeconds - Maximum time to wait for connections (default: 30 seconds)
303
305
  * @param checkIntervalSeconds - How often to check connectivity (default: 0.1 seconds)
304
306
  */
305
- waitForP2PMeshConnectivity(nodes: AztecNodeService[], expectedNodeCount?: number, timeoutSeconds?: number, checkIntervalSeconds?: number): Promise<void>;
307
+ waitForP2PMeshConnectivity(nodes: AztecNodeService[], expectedNodeCount?: number, timeoutSeconds?: number, checkIntervalSeconds?: number, topics?: TopicType[]): Promise<void>;
306
308
  teardown(): Promise<void>;
307
309
  getContracts(): Promise<{
308
310
  rollup: RollupContract;
@@ -311,4 +313,4 @@ export declare class P2PNetworkTest {
311
313
  slashFactory: SlashFactoryContract;
312
314
  }>;
313
315
  }
314
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDJwX25ldHdvcmsuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lMmVfcDJwL3AycF9uZXR3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQW1CLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBYyxNQUFNLDJCQUEyQixDQUFDO0FBR3JFLE9BQU8sRUFDTCxLQUFLLDhCQUE4QixFQUVuQyxjQUFjLEVBQ2QsS0FBSyw2QkFBNkIsRUFDbkMsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUkxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQTRCLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR2xGLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQWEsVUFBVSxFQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUcxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTlELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSTVELE9BQU8sRUFBRSxLQUFLLHFCQUFxQixFQUEyQixNQUFNLE1BQU0sQ0FBQztBQVEzRSxPQUFPLEVBRUwsS0FBSyxpQkFBaUIsRUFHdkIsTUFB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
316
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDJwX25ldHdvcmsuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lMmVfcDJwL3AycF9uZXR3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQW1CLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBYyxNQUFNLDJCQUEyQixDQUFDO0FBR3JFLE9BQU8sRUFDTCxLQUFLLDhCQUE4QixFQUVuQyxjQUFjLEVBQ2QsS0FBSyw2QkFBNkIsRUFDbkMsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUkxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQTRCLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR2xGLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQWEsVUFBVSxFQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUcxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUs5RCxPQUFPLEVBQUUsS0FBSyxxQkFBcUIsRUFBMkIsTUFBTSxNQUFNLENBQUM7QUFHM0UsT0FBTyxFQUNMLEtBQUssZUFBZSxFQUNwQixLQUFLLFlBQVks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
@@ -1 +1 @@
1
- {"version":3,"file":"p2p_network.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/p2p_network.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p2p_network.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/p2p_network.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
4
4
  import { GSEContract, RollupContract } from '@aztec/ethereum/contracts';
5
5
  import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
6
6
  import { MultiAdderArtifact } from '@aztec/ethereum/l1-artifacts';
7
- import { createL1TxUtilsFromViemWallet } from '@aztec/ethereum/l1-tx-utils';
7
+ import { createL1TxUtils } from '@aztec/ethereum/l1-tx-utils';
8
8
  import { ChainMonitor } from '@aztec/ethereum/test';
9
9
  import { EpochNumber } from '@aztec/foundation/branded-types';
10
10
  import { SecretValue } from '@aztec/foundation/config';
@@ -15,14 +15,14 @@ import { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
15
15
  import { createBootstrapNodeFromPrivateKey, getBootstrapNodeEnr } from '@aztec/p2p/test-helpers';
16
16
  import { tryStop } from '@aztec/stdlib/interfaces/server';
17
17
  import { SlashFactoryContract } from '@aztec/stdlib/l1-contracts';
18
+ import { TopicType } from '@aztec/stdlib/p2p';
18
19
  import { ZkPassportProofParams } from '@aztec/stdlib/zkpassport';
19
20
  import { getGenesisValues } from '@aztec/world-state/testing';
20
21
  import getPort from 'get-port';
21
22
  import { getAddress, getContract } from 'viem';
22
23
  import { privateKeyToAccount } from 'viem/accounts';
24
+ import { deployAccounts, getPrivateKeyFromIndex, getSponsoredFPCAddress, setup, teardown } from '../fixtures/setup.js';
23
25
  import { ATTESTER_PRIVATE_KEYS_START_INDEX, createValidatorConfig, generatePrivateKeys } from '../fixtures/setup_p2p_test.js';
24
- import { createSnapshotManager, deployAccounts } from '../fixtures/snapshot_manager.js';
25
- import { getPrivateKeyFromIndex, getSponsoredFPCAddress } from '../fixtures/utils.js';
26
26
  import { getEndToEndTestTelemetryClient } from '../fixtures/with_telemetry_utils.js';
27
27
  // Use a fixed bootstrap node private key so that we can re-use the same snapshot and the nodes can find each other
28
28
  const BOOTSTRAP_NODE_PRIVATE_KEY = '080212208f988fc0899e4a73a5aee4d271a5f20670603a756ad8d84f2c94263a6427c591';
@@ -31,7 +31,7 @@ export const WAIT_FOR_TX_TIMEOUT = l1ContractsConfig.aztecSlotDuration * 3;
31
31
  export const SHORTENED_BLOCK_TIME_CONFIG_NO_PRUNES = {
32
32
  aztecSlotDuration: 12,
33
33
  ethereumSlotDuration: 4,
34
- aztecProofSubmissionWindow: 640
34
+ aztecProofSubmissionEpochs: 640
35
35
  };
36
36
  export class P2PNetworkTest {
37
37
  testName;
@@ -40,7 +40,7 @@ export class P2PNetworkTest {
40
40
  numberOfValidators;
41
41
  numberOfNodes;
42
42
  metricsPort;
43
- snapshotManager;
43
+ context;
44
44
  baseAccountPrivateKey;
45
45
  baseAccount;
46
46
  logger;
@@ -57,6 +57,9 @@ export class P2PNetworkTest {
57
57
  defaultAccountAddress;
58
58
  spamContract;
59
59
  bootstrapNode;
60
+ // Store setup options for use in setup()
61
+ setupOptions;
62
+ deployL1ContractsArgs;
60
63
  constructor(testName, bootstrapNodeEnr, bootNodePort, numberOfValidators, initialValidatorConfig, numberOfNodes = 0, // If set enable metrics collection
61
64
  metricsPort, startProverNode){
62
65
  this.testName = testName;
@@ -78,7 +81,8 @@ export class P2PNetworkTest {
78
81
  this.attesterPrivateKeys = generatePrivateKeys(ATTESTER_PRIVATE_KEYS_START_INDEX + numberOfNodes, numberOfValidators);
79
82
  this.attesterPublicKeys = this.attesterPrivateKeys.map((privateKey)=>privateKeyToAccount(privateKey).address);
80
83
  const zkPassportParams = ZkPassportProofParams.random();
81
- this.snapshotManager = createSnapshotManager(`e2e_p2p_network/${testName}`, process.env.E2E_DATA_PATH, {
84
+ // Store setup options for later use
85
+ this.setupOptions = {
82
86
  ...initialValidatorConfig,
83
87
  ethereumSlotDuration: initialValidatorConfig.ethereumSlotDuration ?? l1ContractsConfig.ethereumSlotDuration,
84
88
  aztecEpochDuration: initialValidatorConfig.aztecEpochDuration ?? l1ContractsConfig.aztecEpochDuration,
@@ -89,8 +93,10 @@ export class P2PNetworkTest {
89
93
  aztecTargetCommitteeSize: numberOfValidators,
90
94
  metricsPort: metricsPort,
91
95
  numberOfInitialFundedAccounts: 2,
92
- startProverNode
93
- }, {
96
+ startProverNode,
97
+ walletMinFeePadding: 2.0
98
+ };
99
+ this.deployL1ContractsArgs = {
94
100
  ...initialValidatorConfig,
95
101
  aztecEpochDuration: initialValidatorConfig.aztecEpochDuration ?? l1ContractsConfig.aztecEpochDuration,
96
102
  slashingRoundSizeInEpochs: initialValidatorConfig.slashingRoundSizeInEpochs ?? l1ContractsConfig.slashingRoundSizeInEpochs,
@@ -104,7 +110,7 @@ export class P2PNetworkTest {
104
110
  zkPassportDomain: zkPassportParams.domain,
105
111
  zkPassportScope: zkPassportParams.scope
106
112
  }
107
- });
113
+ };
108
114
  }
109
115
  static async create({ testName, numberOfNodes, numberOfValidators, basePort, metricsPort, initialConfig, startProverNode }) {
110
116
  const port = basePort || await getPort();
@@ -115,17 +121,16 @@ export class P2PNetworkTest {
115
121
  }
116
122
  get fundedAccount() {
117
123
  if (!this.deployedAccounts[0]) {
118
- throw new Error('Call snapshot t.setupAccount to create a funded account.');
124
+ throw new Error('Call setupAccount to create a funded account.');
119
125
  }
120
126
  return this.deployedAccounts[0];
121
127
  }
122
128
  async addBootstrapNode() {
123
- await this.snapshotManager.snapshot('add-bootstrap-node', async ({ aztecNodeConfig })=>{
124
- const telemetry = await getEndToEndTestTelemetryClient(this.metricsPort);
125
- this.bootstrapNode = await createBootstrapNodeFromPrivateKey(BOOTSTRAP_NODE_PRIVATE_KEY, this.bootNodePort, telemetry, aztecNodeConfig);
126
- // Overwrite enr with updated info
127
- this.bootstrapNodeEnr = this.bootstrapNode.getENR().encodeTxt();
128
- });
129
+ this.logger.info('Adding bootstrap node');
130
+ const telemetry = await getEndToEndTestTelemetryClient(this.metricsPort);
131
+ this.bootstrapNode = await createBootstrapNodeFromPrivateKey(BOOTSTRAP_NODE_PRIVATE_KEY, this.bootNodePort, telemetry, this.context.config);
132
+ // Overwrite enr with updated info
133
+ this.bootstrapNodeEnr = this.bootstrapNode.getENR().encodeTxt();
129
134
  }
130
135
  getValidators() {
131
136
  const validators = [];
@@ -143,124 +148,126 @@ export class P2PNetworkTest {
143
148
  validators
144
149
  };
145
150
  }
146
- async applyBaseSnapshots() {
151
+ async applyBaseSetup() {
147
152
  await this.addBootstrapNode();
148
- await this.snapshotManager.snapshot('add-validators', async ({ deployL1ContractsValues, cheatCodes })=>{
149
- const rollup = getContract({
150
- address: deployL1ContractsValues.l1ContractAddresses.rollupAddress.toString(),
151
- abi: RollupAbi,
152
- client: deployL1ContractsValues.l1Client
153
- });
154
- this.logger.info(`Adding ${this.numberOfValidators} validators`);
155
- const stakingAsset = getContract({
156
- address: deployL1ContractsValues.l1ContractAddresses.stakingAssetAddress.toString(),
157
- abi: TestERC20Abi,
158
- client: deployL1ContractsValues.l1Client
159
- });
160
- const { address: multiAdderAddress } = await deployL1Contract(deployL1ContractsValues.l1Client, MultiAdderArtifact.contractAbi, MultiAdderArtifact.contractBytecode, [
161
- rollup.address,
162
- deployL1ContractsValues.l1Client.account.address
163
- ]);
164
- const multiAdder = getContract({
165
- address: multiAdderAddress.toString(),
166
- abi: MultiAdderArtifact.contractAbi,
167
- client: deployL1ContractsValues.l1Client
168
- });
169
- const stakeNeeded = await rollup.read.getActivationThreshold() * BigInt(this.numberOfValidators);
170
- await Promise.all([
171
- await stakingAsset.write.mint([
172
- multiAdder.address,
173
- stakeNeeded
174
- ], {})
175
- ].map((txHash)=>deployL1ContractsValues.l1Client.waitForTransactionReceipt({
176
- hash: txHash
177
- })));
178
- const { validators } = this.getValidators();
179
- this.validators = validators;
180
- const gseAddress = deployL1ContractsValues.l1ContractAddresses.gseAddress;
181
- if (!gseAddress) {
182
- throw new Error('GSE contract not deployed');
183
- }
184
- const gseContract = new GSEContract(deployL1ContractsValues.l1Client, gseAddress.toString());
185
- const makeValidatorTuples = async (validator)=>{
186
- const registrationTuple = await gseContract.makeRegistrationTuple(validator.bn254SecretKey.getValue());
187
- return {
188
- attester: validator.attester.toString(),
189
- withdrawer: validator.withdrawer.toString(),
190
- ...registrationTuple
191
- };
153
+ this.logger.info('Adding validators');
154
+ const rollup = getContract({
155
+ address: this.context.deployL1ContractsValues.l1ContractAddresses.rollupAddress.toString(),
156
+ abi: RollupAbi,
157
+ client: this.context.deployL1ContractsValues.l1Client
158
+ });
159
+ this.logger.info(`Adding ${this.numberOfValidators} validators`);
160
+ const stakingAsset = getContract({
161
+ address: this.context.deployL1ContractsValues.l1ContractAddresses.stakingAssetAddress.toString(),
162
+ abi: TestERC20Abi,
163
+ client: this.context.deployL1ContractsValues.l1Client
164
+ });
165
+ const { address: multiAdderAddress } = await deployL1Contract(this.context.deployL1ContractsValues.l1Client, MultiAdderArtifact.contractAbi, MultiAdderArtifact.contractBytecode, [
166
+ rollup.address,
167
+ this.context.deployL1ContractsValues.l1Client.account.address
168
+ ]);
169
+ const multiAdder = getContract({
170
+ address: multiAdderAddress.toString(),
171
+ abi: MultiAdderArtifact.contractAbi,
172
+ client: this.context.deployL1ContractsValues.l1Client
173
+ });
174
+ const stakeNeeded = await rollup.read.getActivationThreshold() * BigInt(this.numberOfValidators);
175
+ await Promise.all([
176
+ await stakingAsset.write.mint([
177
+ multiAdder.address,
178
+ stakeNeeded
179
+ ], {})
180
+ ].map((txHash)=>this.context.deployL1ContractsValues.l1Client.waitForTransactionReceipt({
181
+ hash: txHash
182
+ })));
183
+ const { validators } = this.getValidators();
184
+ this.validators = validators;
185
+ const gseAddress = this.context.deployL1ContractsValues.l1ContractAddresses.gseAddress;
186
+ if (!gseAddress) {
187
+ throw new Error('GSE contract not deployed');
188
+ }
189
+ const gseContract = new GSEContract(this.context.deployL1ContractsValues.l1Client, gseAddress.toString());
190
+ const makeValidatorTuples = async (validator)=>{
191
+ const registrationTuple = await gseContract.makeRegistrationTuple(validator.bn254SecretKey.getValue());
192
+ return {
193
+ attester: validator.attester.toString(),
194
+ withdrawer: validator.withdrawer.toString(),
195
+ ...registrationTuple
192
196
  };
193
- const validatorTuples = await Promise.all(validators.map(makeValidatorTuples));
194
- await deployL1ContractsValues.l1Client.waitForTransactionReceipt({
195
- hash: await multiAdder.write.addValidators([
196
- validatorTuples
197
- ])
198
- });
199
- await cheatCodes.rollup.advanceToEpoch(EpochNumber.fromBigInt(BigInt(await cheatCodes.rollup.getEpoch()) + await rollup.read.getLagInEpochsForValidatorSet() + 1n));
200
- // Send and await a tx to make sure we mine a block for the warp to correctly progress.
201
- await this._sendDummyTx(deployL1ContractsValues.l1Client);
197
+ };
198
+ const validatorTuples = await Promise.all(validators.map(makeValidatorTuples));
199
+ await this.context.deployL1ContractsValues.l1Client.waitForTransactionReceipt({
200
+ hash: await multiAdder.write.addValidators([
201
+ validatorTuples
202
+ ])
202
203
  });
204
+ await this.context.cheatCodes.rollup.advanceToEpoch(EpochNumber.fromBigInt(BigInt(await this.context.cheatCodes.rollup.getEpoch()) + await rollup.read.getLagInEpochsForValidatorSet() + 1n));
205
+ // Send and await a tx to make sure we mine a block for the warp to correctly progress.
206
+ await this._sendDummyTx(this.context.deployL1ContractsValues.l1Client);
203
207
  }
204
208
  async setupAccount() {
205
- await this.snapshotManager.snapshot('setup-account', deployAccounts(1, this.logger), ({ deployedAccounts }, { wallet })=>{
206
- this.deployedAccounts = deployedAccounts;
207
- [{ address: this.defaultAccountAddress }] = deployedAccounts;
208
- this.wallet = wallet;
209
- return Promise.resolve();
209
+ this.logger.info('Setting up account');
210
+ const { deployedAccounts } = await deployAccounts(1, this.logger)({
211
+ wallet: this.context.wallet,
212
+ initialFundedAccounts: this.context.initialFundedAccounts
210
213
  });
214
+ this.deployedAccounts = deployedAccounts;
215
+ [{ address: this.defaultAccountAddress }] = deployedAccounts;
216
+ this.wallet = this.context.wallet;
211
217
  }
212
218
  async deploySpamContract() {
213
- await this.snapshotManager.snapshot('add-spam-contract', async ()=>{
214
- if (!this.wallet) {
215
- throw new Error('Call snapshot t.setupAccount before deploying account contract');
216
- }
217
- const spamContract = await SpamContract.deploy(this.wallet).send({
218
- from: this.defaultAccountAddress
219
- }).deployed();
220
- return {
221
- contractAddress: spamContract.address
222
- };
223
- }, ({ contractAddress })=>{
224
- if (!this.wallet) {
225
- throw new Error('Call snapshot t.setupAccount before deploying account contract');
226
- }
227
- this.spamContract = SpamContract.at(contractAddress, this.wallet);
228
- return Promise.resolve();
229
- });
219
+ this.logger.info('Deploying spam contract');
220
+ if (!this.wallet) {
221
+ throw new Error('Call setupAccount before deploying spam contract');
222
+ }
223
+ ({ contract: this.spamContract } = await SpamContract.deploy(this.wallet).send({
224
+ from: this.defaultAccountAddress
225
+ }));
230
226
  }
231
227
  async removeInitialNode() {
232
- await this.snapshotManager.snapshot('remove-initial-validator', async ({ deployL1ContractsValues, aztecNode, dateProvider })=>{
233
- // Send and await a tx to make sure we mine a block for the warp to correctly progress.
234
- const { receipt } = await this._sendDummyTx(deployL1ContractsValues.l1Client);
235
- const block = await deployL1ContractsValues.l1Client.getBlock({
236
- blockNumber: receipt.blockNumber
237
- });
238
- dateProvider.setTime(Number(block.timestamp) * 1000);
239
- await aztecNode.stop();
228
+ this.logger.info('Removing initial node');
229
+ // Send and await a tx to make sure we mine a block for the warp to correctly progress.
230
+ const { receipt } = await this._sendDummyTx(this.context.deployL1ContractsValues.l1Client);
231
+ const block = await this.context.deployL1ContractsValues.l1Client.getBlock({
232
+ blockNumber: receipt.blockNumber
240
233
  });
234
+ this.context.dateProvider.setTime(Number(block.timestamp) * 1000);
235
+ await this.context.aztecNodeService.stop();
241
236
  }
242
237
  async sendDummyTx() {
243
238
  return await this._sendDummyTx(this.ctx.deployL1ContractsValues.l1Client);
244
239
  }
245
240
  async _sendDummyTx(l1Client) {
246
- const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client);
241
+ const l1TxUtils = createL1TxUtils(l1Client);
247
242
  return await l1TxUtils.sendAndMonitorTransaction({
248
243
  to: l1Client.account.address,
249
244
  value: 1n
250
245
  });
251
246
  }
252
247
  async setup() {
253
- this.ctx = await this.snapshotManager.setup();
248
+ this.logger.info('Setting up subsystems from fresh');
249
+ this.context = await setup(0, {
250
+ ...this.setupOptions,
251
+ fundSponsoredFPC: true,
252
+ skipAccountDeployment: true,
253
+ slasherFlavor: this.setupOptions.slasherFlavor ?? this.deployL1ContractsArgs.slasherFlavor ?? 'none',
254
+ aztecTargetCommitteeSize: 0,
255
+ l1ContractsArgs: this.deployL1ContractsArgs
256
+ }, // Use checkpointed chain tip for PXE to avoid issues with blocks being dropped due to pruned anchor blocks.
257
+ {
258
+ syncChainTip: 'checkpointed'
259
+ });
260
+ this.ctx = this.context;
254
261
  const sponsoredFPCAddress = await getSponsoredFPCAddress();
255
262
  const initialFundedAccounts = [
256
- ...this.ctx.initialFundedAccounts.map((a)=>a.address),
263
+ ...this.context.initialFundedAccounts.map((a)=>a.address),
257
264
  sponsoredFPCAddress
258
265
  ];
259
266
  const { prefilledPublicData } = await getGenesisValues(initialFundedAccounts);
260
267
  this.prefilledPublicData = prefilledPublicData;
261
- const rollupContract = RollupContract.getFromL1ContractsValues(this.ctx.deployL1ContractsValues);
262
- this.monitor = new ChainMonitor(rollupContract, this.ctx.dateProvider).start();
263
- this.monitor.on('l1-block', ({ timestamp })=>this.ctx.dateProvider.setTime(Number(timestamp) * 1000));
268
+ const rollupContract = RollupContract.getFromL1ContractsValues(this.context.deployL1ContractsValues);
269
+ this.monitor = new ChainMonitor(rollupContract, this.context.dateProvider).start();
270
+ this.monitor.on('l1-block', ({ timestamp })=>this.context.dateProvider.setTime(Number(timestamp) * 1000));
264
271
  }
265
272
  async stopNodes(nodes) {
266
273
  this.logger.info('Stopping nodes');
@@ -280,7 +287,9 @@ export class P2PNetworkTest {
280
287
  * @param expectedNodeCount - Expected number of nodes in the network (defaults to nodes.length)
281
288
  * @param timeoutSeconds - Maximum time to wait for connections (default: 30 seconds)
282
289
  * @param checkIntervalSeconds - How often to check connectivity (default: 0.1 seconds)
283
- */ async waitForP2PMeshConnectivity(nodes, expectedNodeCount, timeoutSeconds = 30, checkIntervalSeconds = 0.1) {
290
+ */ async waitForP2PMeshConnectivity(nodes, expectedNodeCount, timeoutSeconds = 30, checkIntervalSeconds = 0.1, topics = [
291
+ TopicType.tx
292
+ ]) {
284
293
  const nodeCount = expectedNodeCount ?? nodes.length;
285
294
  const minPeerCount = nodeCount - 1;
286
295
  this.logger.warn(`Waiting for all ${nodeCount} nodes to connect to P2P mesh (at least ${minPeerCount} peers each)...`);
@@ -293,11 +302,26 @@ export class P2PNetworkTest {
293
302
  }, `Node ${index} to connect to at least ${minPeerCount} peers`, timeoutSeconds, checkIntervalSeconds);
294
303
  }));
295
304
  this.logger.warn('All nodes connected to P2P mesh');
305
+ // Wait for GossipSub mesh to form for all specified topics.
306
+ // We only require at least 1 mesh peer per node because GossipSub
307
+ // stops grafting once it reaches Dlo peers and won't fill the mesh to all available peers.
308
+ for (const topic of topics){
309
+ this.logger.warn(`Waiting for GossipSub mesh to form for ${topic} topic...`);
310
+ await Promise.all(nodes.map(async (node, index)=>{
311
+ const p2p = node.getP2P();
312
+ await retryUntil(async ()=>{
313
+ const meshPeers = await p2p.getGossipMeshPeerCount(topic);
314
+ this.logger.debug(`Node ${index} has ${meshPeers} gossip mesh peers for ${topic} topic`);
315
+ return meshPeers >= 1 ? true : undefined;
316
+ }, `Node ${index} to have gossip mesh peers for ${topic} topic`, timeoutSeconds, checkIntervalSeconds);
317
+ }));
318
+ this.logger.warn(`All nodes have gossip mesh peers for ${topic} topic`);
319
+ }
296
320
  }
297
321
  async teardown() {
298
322
  await this.monitor.stop();
299
323
  await tryStop(this.bootstrapNode, this.logger);
300
- await this.snapshotManager.teardown();
324
+ await teardown(this.context);
301
325
  }
302
326
  async getContracts() {
303
327
  if (!this.ctx.deployL1ContractsValues) {