@aztec/end-to-end 0.0.1-commit.21caa21 → 0.0.1-commit.21ecf947b

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 (241) 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 +15 -16
  5. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  6. package/dest/bench/client_flows/client_flows_benchmark.js +126 -139
  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/client_flows/data_extractor.js +3 -1
  11. package/dest/bench/utils.d.ts +9 -8
  12. package/dest/bench/utils.d.ts.map +1 -1
  13. package/dest/bench/utils.js +27 -18
  14. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +9 -8
  15. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  16. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +106 -112
  17. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +20 -14
  18. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  19. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +92 -71
  20. package/dest/e2e_deploy_contract/deploy_test.d.ts +5 -4
  21. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  22. package/dest/e2e_deploy_contract/deploy_test.js +18 -13
  23. package/dest/e2e_epochs/epochs_test.d.ts +17 -9
  24. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  25. package/dest/e2e_epochs/epochs_test.js +53 -23
  26. package/dest/e2e_fees/bridging_race.notest.js +4 -6
  27. package/dest/e2e_fees/fees_test.d.ts +21 -17
  28. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  29. package/dest/e2e_fees/fees_test.js +128 -143
  30. package/dest/e2e_l1_publisher/write_json.d.ts +4 -3
  31. package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
  32. package/dest/e2e_l1_publisher/write_json.js +14 -16
  33. package/dest/e2e_multi_validator/utils.js +1 -1
  34. package/dest/e2e_nested_contract/nested_contract_test.d.ts +6 -9
  35. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  36. package/dest/e2e_nested_contract/nested_contract_test.js +31 -39
  37. package/dest/e2e_p2p/inactivity_slash_test.d.ts +4 -4
  38. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
  39. package/dest/e2e_p2p/inactivity_slash_test.js +6 -9
  40. package/dest/e2e_p2p/p2p_network.d.ts +14 -12
  41. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  42. package/dest/e2e_p2p/p2p_network.js +120 -111
  43. package/dest/e2e_p2p/reqresp/utils.d.ts +22 -0
  44. package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -0
  45. package/dest/e2e_p2p/reqresp/utils.js +153 -0
  46. package/dest/e2e_p2p/shared.d.ts +7 -7
  47. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  48. package/dest/e2e_p2p/shared.js +18 -21
  49. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts +2 -0
  50. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts.map +1 -0
  51. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.js +184 -0
  52. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts +18 -0
  53. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts.map +1 -0
  54. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.js +120 -0
  55. package/dest/e2e_token_contract/token_contract_test.d.ts +19 -10
  56. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  57. package/dest/e2e_token_contract/token_contract_test.js +99 -91
  58. package/dest/fixtures/authwit_proxy.d.ts +15 -0
  59. package/dest/fixtures/authwit_proxy.d.ts.map +1 -0
  60. package/dest/fixtures/authwit_proxy.js +30 -0
  61. package/dest/fixtures/e2e_prover_test.d.ts +11 -19
  62. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  63. package/dest/fixtures/e2e_prover_test.js +91 -103
  64. package/dest/fixtures/fixtures.d.ts +2 -3
  65. package/dest/fixtures/fixtures.d.ts.map +1 -1
  66. package/dest/fixtures/fixtures.js +2 -3
  67. package/dest/fixtures/get_acvm_config.js +1 -1
  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/l1_to_l2_messaging.d.ts +4 -3
  75. package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
  76. package/dest/fixtures/l1_to_l2_messaging.js +2 -2
  77. package/dest/fixtures/setup.d.ts +218 -0
  78. package/dest/fixtures/setup.d.ts.map +1 -0
  79. package/dest/fixtures/setup.js +636 -0
  80. package/dest/fixtures/setup_p2p_test.d.ts +12 -8
  81. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  82. package/dest/fixtures/setup_p2p_test.js +32 -24
  83. package/dest/fixtures/token_utils.d.ts +1 -1
  84. package/dest/fixtures/token_utils.d.ts.map +1 -1
  85. package/dest/fixtures/token_utils.js +7 -4
  86. package/dest/fixtures/utils.d.ts +5 -637
  87. package/dest/fixtures/utils.d.ts.map +1 -1
  88. package/dest/fixtures/utils.js +4 -647
  89. package/dest/fixtures/web3signer.js +1 -1
  90. package/dest/fixtures/with_telemetry_utils.d.ts +2 -2
  91. package/dest/fixtures/with_telemetry_utils.d.ts.map +1 -1
  92. package/dest/fixtures/with_telemetry_utils.js +2 -2
  93. package/dest/quality_of_service/grafana_client.d.ts +41 -0
  94. package/dest/quality_of_service/grafana_client.d.ts.map +1 -0
  95. package/dest/quality_of_service/{alert_checker.js → grafana_client.js} +1 -1
  96. package/dest/quality_of_service/prometheus_client.d.ts +38 -0
  97. package/dest/quality_of_service/prometheus_client.d.ts.map +1 -0
  98. package/dest/quality_of_service/prometheus_client.js +67 -0
  99. package/dest/shared/cross_chain_test_harness.d.ts +18 -6
  100. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  101. package/dest/shared/cross_chain_test_harness.js +14 -14
  102. package/dest/shared/gas_portal_test_harness.d.ts +12 -2
  103. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  104. package/dest/shared/gas_portal_test_harness.js +1 -1
  105. package/dest/shared/index.d.ts +3 -2
  106. package/dest/shared/index.d.ts.map +1 -1
  107. package/dest/shared/index.js +1 -0
  108. package/dest/shared/mock_state_view.d.ts +86 -0
  109. package/dest/shared/mock_state_view.d.ts.map +1 -0
  110. package/dest/shared/mock_state_view.js +186 -0
  111. package/dest/shared/submit-transactions.d.ts +4 -4
  112. package/dest/shared/submit-transactions.d.ts.map +1 -1
  113. package/dest/shared/submit-transactions.js +9 -11
  114. package/dest/shared/uniswap_l1_l2.d.ts +3 -27
  115. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  116. package/dest/shared/uniswap_l1_l2.js +57 -35
  117. package/dest/simulators/lending_simulator.d.ts +6 -2
  118. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  119. package/dest/simulators/lending_simulator.js +2 -2
  120. package/dest/simulators/token_simulator.d.ts +1 -1
  121. package/dest/simulators/token_simulator.d.ts.map +1 -1
  122. package/dest/simulators/token_simulator.js +2 -23
  123. package/dest/spartan/setup_test_wallets.d.ts +5 -4
  124. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  125. package/dest/spartan/setup_test_wallets.js +66 -36
  126. package/dest/spartan/tx_metrics.d.ts +88 -0
  127. package/dest/spartan/tx_metrics.d.ts.map +1 -0
  128. package/dest/spartan/tx_metrics.js +422 -0
  129. package/dest/spartan/utils/bot.d.ts +27 -0
  130. package/dest/spartan/utils/bot.d.ts.map +1 -0
  131. package/dest/spartan/utils/bot.js +141 -0
  132. package/dest/spartan/utils/chaos.d.ts +79 -0
  133. package/dest/spartan/utils/chaos.d.ts.map +1 -0
  134. package/dest/spartan/utils/chaos.js +142 -0
  135. package/dest/spartan/utils/clients.d.ts +39 -0
  136. package/dest/spartan/utils/clients.d.ts.map +1 -0
  137. package/dest/spartan/utils/clients.js +90 -0
  138. package/dest/spartan/utils/config.d.ts +39 -0
  139. package/dest/spartan/utils/config.d.ts.map +1 -0
  140. package/dest/spartan/utils/config.js +21 -0
  141. package/dest/spartan/utils/health.d.ts +63 -0
  142. package/dest/spartan/utils/health.d.ts.map +1 -0
  143. package/dest/spartan/utils/health.js +202 -0
  144. package/dest/spartan/utils/helm.d.ts +15 -0
  145. package/dest/spartan/utils/helm.d.ts.map +1 -0
  146. package/dest/spartan/utils/helm.js +47 -0
  147. package/dest/spartan/utils/index.d.ts +9 -0
  148. package/dest/spartan/utils/index.d.ts.map +1 -0
  149. package/dest/spartan/utils/index.js +18 -0
  150. package/dest/spartan/utils/k8s.d.ts +126 -0
  151. package/dest/spartan/utils/k8s.d.ts.map +1 -0
  152. package/dest/spartan/utils/k8s.js +375 -0
  153. package/dest/spartan/utils/nodes.d.ts +41 -0
  154. package/dest/spartan/utils/nodes.d.ts.map +1 -0
  155. package/dest/spartan/utils/nodes.js +461 -0
  156. package/dest/spartan/utils/scripts.d.ts +30 -0
  157. package/dest/spartan/utils/scripts.d.ts.map +1 -0
  158. package/dest/spartan/utils/scripts.js +81 -0
  159. package/dest/spartan/utils.d.ts +2 -218
  160. package/dest/spartan/utils.d.ts.map +1 -1
  161. package/dest/spartan/utils.js +1 -749
  162. package/dest/test-wallet/test_wallet.d.ts +83 -0
  163. package/dest/test-wallet/test_wallet.d.ts.map +1 -0
  164. package/dest/test-wallet/test_wallet.js +214 -0
  165. package/dest/test-wallet/utils.d.ts +41 -0
  166. package/dest/test-wallet/utils.d.ts.map +1 -0
  167. package/dest/test-wallet/utils.js +71 -0
  168. package/package.json +46 -41
  169. package/src/bench/client_flows/benchmark.ts +24 -2
  170. package/src/bench/client_flows/client_flows_benchmark.ts +148 -215
  171. package/src/bench/client_flows/config.ts +9 -1
  172. package/src/bench/client_flows/data_extractor.ts +1 -1
  173. package/src/bench/utils.ts +31 -21
  174. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +114 -143
  175. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +140 -126
  176. package/src/e2e_deploy_contract/deploy_test.ts +22 -15
  177. package/src/e2e_epochs/epochs_test.ts +105 -56
  178. package/src/e2e_fees/bridging_race.notest.ts +5 -11
  179. package/src/e2e_fees/fees_test.ts +171 -228
  180. package/src/e2e_l1_publisher/write_json.ts +16 -16
  181. package/src/e2e_multi_validator/utils.ts +1 -1
  182. package/src/e2e_nested_contract/nested_contract_test.ts +33 -56
  183. package/src/e2e_p2p/inactivity_slash_test.ts +7 -10
  184. package/src/e2e_p2p/p2p_network.ts +181 -184
  185. package/src/e2e_p2p/reqresp/utils.ts +207 -0
  186. package/src/e2e_p2p/shared.ts +33 -28
  187. package/src/e2e_storage_proof/fixtures/storage_proof.json +915 -0
  188. package/src/e2e_storage_proof/fixtures/storage_proof_fetcher.ts +190 -0
  189. package/src/e2e_storage_proof/fixtures/storage_proof_fixture.ts +173 -0
  190. package/src/e2e_token_contract/token_contract_test.ts +113 -119
  191. package/src/fixtures/authwit_proxy.ts +50 -0
  192. package/src/fixtures/dumps/epoch_proof_result.json +1 -1
  193. package/src/fixtures/e2e_prover_test.ts +104 -141
  194. package/src/fixtures/fixtures.ts +2 -5
  195. package/src/fixtures/get_acvm_config.ts +1 -1
  196. package/src/fixtures/ha_setup.ts +186 -0
  197. package/src/fixtures/index.ts +1 -0
  198. package/src/fixtures/l1_to_l2_messaging.ts +4 -2
  199. package/src/fixtures/setup.ts +939 -0
  200. package/src/fixtures/setup_p2p_test.ts +34 -30
  201. package/src/fixtures/token_utils.ts +6 -5
  202. package/src/fixtures/utils.ts +27 -966
  203. package/src/fixtures/web3signer.ts +1 -1
  204. package/src/fixtures/with_telemetry_utils.ts +2 -2
  205. package/src/guides/up_quick_start.sh +3 -3
  206. package/src/quality_of_service/{alert_checker.ts → grafana_client.ts} +1 -1
  207. package/src/quality_of_service/prometheus_client.ts +113 -0
  208. package/src/shared/cross_chain_test_harness.ts +19 -36
  209. package/src/shared/gas_portal_test_harness.ts +2 -2
  210. package/src/shared/index.ts +2 -1
  211. package/src/shared/mock_state_view.ts +188 -0
  212. package/src/shared/submit-transactions.ts +11 -16
  213. package/src/shared/uniswap_l1_l2.ts +66 -89
  214. package/src/simulators/lending_simulator.ts +3 -3
  215. package/src/simulators/token_simulator.ts +1 -29
  216. package/src/spartan/DEVELOP.md +7 -0
  217. package/src/spartan/setup_test_wallets.ts +84 -27
  218. package/src/spartan/tx_metrics.ts +376 -0
  219. package/src/spartan/utils/bot.ts +185 -0
  220. package/src/spartan/utils/chaos.ts +253 -0
  221. package/src/spartan/utils/clients.ts +100 -0
  222. package/src/spartan/utils/config.ts +27 -0
  223. package/src/spartan/utils/health.ts +255 -0
  224. package/src/spartan/utils/helm.ts +84 -0
  225. package/src/spartan/utils/index.ts +64 -0
  226. package/src/spartan/utils/k8s.ts +527 -0
  227. package/src/spartan/utils/nodes.ts +538 -0
  228. package/src/spartan/utils/scripts.ts +99 -0
  229. package/src/spartan/utils.ts +1 -942
  230. package/src/test-wallet/test_wallet.ts +306 -0
  231. package/src/test-wallet/utils.ts +112 -0
  232. package/dest/fixtures/setup_l1_contracts.d.ts +0 -477
  233. package/dest/fixtures/setup_l1_contracts.d.ts.map +0 -1
  234. package/dest/fixtures/setup_l1_contracts.js +0 -17
  235. package/dest/fixtures/snapshot_manager.d.ts +0 -95
  236. package/dest/fixtures/snapshot_manager.d.ts.map +0 -1
  237. package/dest/fixtures/snapshot_manager.js +0 -505
  238. package/dest/quality_of_service/alert_checker.d.ts +0 -41
  239. package/dest/quality_of_service/alert_checker.d.ts.map +0 -1
  240. package/src/fixtures/setup_l1_contracts.ts +0 -26
  241. package/src/fixtures/snapshot_manager.ts +0 -665
@@ -1,21 +1,26 @@
1
1
  import { EthAddress } from '@aztec/aztec.js/addresses';
2
+ import { waitForProven } from '@aztec/aztec.js/contracts';
2
3
  import { createLogger } from '@aztec/aztec.js/log';
3
- import { createExtendedL1Client, deployL1Contract } from '@aztec/ethereum';
4
- import { InboxAbi, OutboxAbi, TestERC20Abi, TestERC20Bytecode } from '@aztec/l1-artifacts';
4
+ import { createExtendedL1Client } from '@aztec/ethereum/client';
5
+ import { InboxContract, OutboxContract, RollupContract } from '@aztec/ethereum/contracts';
6
+ import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
7
+ import { EpochNumber } from '@aztec/foundation/branded-types';
8
+ import { sleep } from '@aztec/foundation/sleep';
9
+ import { TestERC20Abi, TestERC20Bytecode } from '@aztec/l1-artifacts';
5
10
  import { TokenContract } from '@aztec/noir-contracts.js/Token';
6
11
  import { TokenBridgeContract } from '@aztec/noir-contracts.js/TokenBridge';
7
- import { getContract } from 'viem';
8
12
  import { MNEMONIC } from '../fixtures/fixtures.js';
9
- import { createSnapshotManager, deployAccounts, publicDeployAccounts } from '../fixtures/snapshot_manager.js';
13
+ import { deployAccounts, publicDeployAccounts, setup, teardown } from '../fixtures/setup.js';
10
14
  import { CrossChainTestHarness } from '../shared/cross_chain_test_harness.js';
11
- const { E2E_DATA_PATH: dataPath } = process.env;
12
15
  export class CrossChainMessagingTest {
13
- snapshotManager;
16
+ requireEpochProven;
17
+ setupOptions;
18
+ deployL1ContractsArgs;
14
19
  logger;
20
+ context;
15
21
  aztecNode;
16
22
  aztecNodeConfig;
17
23
  aztecNodeAdmin;
18
- ctx;
19
24
  l1Client;
20
25
  wallet;
21
26
  ownerAddress;
@@ -25,84 +30,100 @@ export class CrossChainMessagingTest {
25
30
  ethAccount;
26
31
  l2Token;
27
32
  l2Bridge;
33
+ rollup;
28
34
  inbox;
29
35
  outbox;
30
36
  cheatCodes;
31
37
  deployL1ContractsValues;
32
38
  constructor(testName, opts = {}, deployL1ContractsArgs = {}){
33
39
  this.logger = createLogger(`e2e:e2e_cross_chain_messaging:${testName}`);
34
- this.snapshotManager = createSnapshotManager(`e2e_cross_chain_messaging/${testName}`, dataPath, opts, {
40
+ this.setupOptions = opts;
41
+ this.deployL1ContractsArgs = {
35
42
  initialValidators: [],
36
43
  ...deployL1ContractsArgs
44
+ };
45
+ this.requireEpochProven = opts.startProverNode ?? false;
46
+ }
47
+ async setup() {
48
+ this.logger.info('Setting up cross chain messaging test');
49
+ this.context = await setup(0, {
50
+ ...this.setupOptions,
51
+ fundSponsoredFPC: true,
52
+ skipAccountDeployment: true,
53
+ l1ContractsArgs: this.deployL1ContractsArgs
37
54
  });
55
+ await this.applyBaseSetup();
38
56
  }
39
- async assumeProven() {
40
- await this.cheatCodes.rollup.markAsProven();
57
+ async advanceToEpochProven(l2TxReceipt) {
58
+ const block = await this.aztecNode.getBlock(l2TxReceipt.blockNumber);
59
+ const epoch = await this.rollup.getEpochNumberForCheckpoint(block.checkpointNumber);
60
+ // Warp to the next epoch.
61
+ await this.cheatCodes.rollup.advanceToEpoch(EpochNumber(epoch + 1));
62
+ // Wait for the tx to be proven.
63
+ await waitForProven(this.aztecNode, l2TxReceipt, {
64
+ provenTimeout: 300
65
+ });
66
+ // Return the epoch the tx is in.
67
+ return epoch;
41
68
  }
42
- async setup() {
43
- this.ctx = await this.snapshotManager.setup();
44
- this.aztecNode = this.ctx.aztecNode;
45
- this.wallet = this.ctx.wallet;
46
- this.aztecNodeConfig = this.ctx.aztecNodeConfig;
47
- this.cheatCodes = this.ctx.cheatCodes;
48
- this.deployL1ContractsValues = this.ctx.deployL1ContractsValues;
49
- this.aztecNodeAdmin = this.ctx.aztecNode;
69
+ async catchUpProvenChain() {
70
+ const bn = await this.aztecNode.getBlockNumber();
71
+ while(await this.aztecNode.getProvenBlockNumber() < bn){
72
+ await sleep(1000);
73
+ }
50
74
  }
51
- snapshot = (name, apply, restore = ()=>Promise.resolve())=>this.snapshotManager.snapshot(name, apply, restore);
52
75
  async teardown() {
53
- await this.snapshotManager.teardown();
76
+ await teardown(this.context);
54
77
  }
55
- async applyBaseSnapshots() {
56
- // Note that we are using the same `wallet`, `aztecNodeConfig` and `aztecNode` across all snapshots.
57
- // This is to not have issues with different networks.
58
- await this.snapshotManager.snapshot('3_accounts', deployAccounts(3, this.logger), ({ deployedAccounts }, { wallet, aztecNodeConfig, aztecNode })=>{
59
- [this.ownerAddress, this.user1Address, this.user2Address] = deployedAccounts.map((a)=>a.address);
60
- this.wallet = wallet;
61
- this.aztecNode = aztecNode;
62
- this.aztecNodeConfig = aztecNodeConfig;
63
- return Promise.resolve();
64
- });
65
- await this.snapshotManager.snapshot('e2e_cross_chain_messaging', async ()=>{
66
- // Create the token contract state.
67
- // Move this account thing to addAccounts above?
68
- this.logger.verbose(`Public deploy accounts...`);
69
- await publicDeployAccounts(this.wallet, [
70
- this.ownerAddress,
71
- this.user1Address,
72
- this.user2Address
73
- ]);
74
- this.l1Client = createExtendedL1Client(this.aztecNodeConfig.l1RpcUrls, MNEMONIC);
75
- const underlyingERC20Address = await deployL1Contract(this.l1Client, TestERC20Abi, TestERC20Bytecode, [
76
- 'Underlying',
77
- 'UND',
78
- this.l1Client.account.address
79
- ]).then(({ address })=>address);
80
- this.logger.verbose(`Setting up cross chain harness...`);
81
- this.crossChainTestHarness = await CrossChainTestHarness.new(this.aztecNode, this.l1Client, this.wallet, this.ownerAddress, this.logger, underlyingERC20Address);
82
- this.logger.verbose(`L2 token deployed to: ${this.crossChainTestHarness.l2Token.address}`);
83
- return this.crossChainTestHarness.toCrossChainContext();
84
- }, (crossChainContext)=>{
85
- this.l2Token = TokenContract.at(crossChainContext.l2Token, this.wallet);
86
- this.l2Bridge = TokenBridgeContract.at(crossChainContext.l2Bridge, this.wallet);
87
- // There is an issue with the reviver so we are getting strings sometimes. Working around it here.
88
- this.ethAccount = EthAddress.fromString(crossChainContext.ethAccount.toString());
89
- const tokenPortalAddress = EthAddress.fromString(crossChainContext.tokenPortal.toString());
90
- const l1Client = createExtendedL1Client(this.aztecNodeConfig.l1RpcUrls, MNEMONIC);
91
- const inbox = getContract({
92
- address: this.aztecNodeConfig.l1Contracts.inboxAddress.toString(),
93
- abi: InboxAbi,
94
- client: l1Client
95
- });
96
- const outbox = getContract({
97
- address: this.aztecNodeConfig.l1Contracts.outboxAddress.toString(),
98
- abi: OutboxAbi,
99
- client: l1Client
100
- });
101
- this.crossChainTestHarness = new CrossChainTestHarness(this.aztecNode, this.logger, this.l2Token, this.l2Bridge, this.ethAccount, tokenPortalAddress, crossChainContext.underlying, l1Client, this.aztecNodeConfig.l1Contracts, this.wallet, this.ownerAddress);
102
- this.l1Client = l1Client;
103
- this.inbox = inbox;
104
- this.outbox = outbox;
105
- return Promise.resolve();
78
+ async applyBaseSetup() {
79
+ // Set up base context fields
80
+ this.aztecNode = this.context.aztecNodeService;
81
+ this.wallet = this.context.wallet;
82
+ this.aztecNodeConfig = this.context.config;
83
+ this.cheatCodes = this.context.cheatCodes;
84
+ this.deployL1ContractsValues = this.context.deployL1ContractsValues;
85
+ this.aztecNodeAdmin = this.context.aztecNodeService;
86
+ if (this.requireEpochProven) {
87
+ // Turn off the watcher to prevent it from keep marking blocks as proven.
88
+ this.context.watcher.setIsMarkingAsProven(false);
89
+ }
90
+ // Deploy 3 accounts
91
+ this.logger.info('Applying 3_accounts setup');
92
+ const { deployedAccounts } = await deployAccounts(3, this.logger)({
93
+ wallet: this.context.wallet,
94
+ initialFundedAccounts: this.context.initialFundedAccounts
106
95
  });
96
+ [this.ownerAddress, this.user1Address, this.user2Address] = deployedAccounts.map((a)=>a.address);
97
+ // Set up cross chain messaging
98
+ this.logger.info('Applying e2e_cross_chain_messaging setup');
99
+ // Create the token contract state.
100
+ this.logger.verbose(`Public deploy accounts...`);
101
+ await publicDeployAccounts(this.wallet, [
102
+ this.ownerAddress,
103
+ this.user1Address,
104
+ this.user2Address
105
+ ]);
106
+ this.l1Client = createExtendedL1Client(this.aztecNodeConfig.l1RpcUrls, MNEMONIC);
107
+ const underlyingERC20Address = await deployL1Contract(this.l1Client, TestERC20Abi, TestERC20Bytecode, [
108
+ 'Underlying',
109
+ 'UND',
110
+ this.l1Client.account.address
111
+ ]).then(({ address })=>address);
112
+ this.logger.verbose(`Setting up cross chain harness...`);
113
+ this.crossChainTestHarness = await CrossChainTestHarness.new(this.aztecNode, this.l1Client, this.wallet, this.ownerAddress, this.logger, underlyingERC20Address);
114
+ this.logger.verbose(`L2 token deployed to: ${this.crossChainTestHarness.l2Token.address}`);
115
+ const crossChainContext = this.crossChainTestHarness.toCrossChainContext();
116
+ this.l2Token = TokenContract.at(crossChainContext.l2Token, this.wallet);
117
+ this.l2Bridge = TokenBridgeContract.at(crossChainContext.l2Bridge, this.wallet);
118
+ // There is an issue with the reviver so we are getting strings sometimes. Working around it here.
119
+ this.ethAccount = EthAddress.fromString(crossChainContext.ethAccount.toString());
120
+ const tokenPortalAddress = EthAddress.fromString(crossChainContext.tokenPortal.toString());
121
+ const l1Client = createExtendedL1Client(this.aztecNodeConfig.l1RpcUrls, MNEMONIC);
122
+ this.l1Client = l1Client;
123
+ const l1Contracts = this.aztecNodeConfig.l1Contracts;
124
+ this.rollup = new RollupContract(l1Client, l1Contracts.rollupAddress.toString());
125
+ this.inbox = new InboxContract(l1Client, l1Contracts.inboxAddress.toString());
126
+ this.outbox = new OutboxContract(l1Client, l1Contracts.outboxAddress.toString());
127
+ this.crossChainTestHarness = new CrossChainTestHarness(this.aztecNode, this.logger, this.l2Token, this.l2Bridge, this.ethAccount, tokenPortalAddress, crossChainContext.underlying, l1Client, this.aztecNodeConfig.l1Contracts, this.wallet, this.ownerAddress);
107
128
  }
108
129
  }
@@ -8,9 +8,10 @@ import type { AztecNode } from '@aztec/aztec.js/node';
8
8
  import type { Wallet } from '@aztec/aztec.js/wallet';
9
9
  import type { StatefulTestContract } from '@aztec/noir-test-contracts.js/StatefulTest';
10
10
  import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
11
- import type { TestWallet } from '@aztec/test-wallet/server';
11
+ import { type EndToEndContext } from '../fixtures/setup.js';
12
+ import type { TestWallet } from '../test-wallet/test_wallet.js';
12
13
  export declare class DeployTest {
13
- private snapshotManager;
14
+ context: EndToEndContext;
14
15
  logger: Logger;
15
16
  wallet: TestWallet;
16
17
  defaultAccountAddress: AztecAddress;
@@ -19,7 +20,7 @@ export declare class DeployTest {
19
20
  constructor(testName: string);
20
21
  setup(): Promise<this>;
21
22
  teardown(): Promise<void>;
22
- private applyInitialAccountSnapshot;
23
+ private applyInitialAccount;
23
24
  registerContract<T extends ContractBase>(wallet: Wallet, contractArtifact: ContractArtifactClass<T>, opts?: {
24
25
  salt?: Fr;
25
26
  publicKeys?: PublicKeys;
@@ -33,4 +34,4 @@ export type ContractArtifactClass<T extends ContractBase> = {
33
34
  at(address: AztecAddress, wallet: Wallet): T;
34
35
  artifact: ContractArtifact;
35
36
  };
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lMmVfZGVwbG95X2NvbnRyYWN0L2RlcGxveV90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLEtBQUssWUFBWSxFQUE4QyxNQUFNLDJCQUEyQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN2RixPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQU01RCxxQkFBYSxVQUFVO0lBQ3JCLE9BQU8sQ0FBQyxlQUFlLENBQW1CO0lBQ25DLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixNQUFNLEVBQUcsVUFBVSxDQUFDO0lBQ3BCLHFCQUFxQixFQUFHLFlBQVksQ0FBQztJQUNyQyxTQUFTLEVBQUcsU0FBUyxDQUFDO0lBQ3RCLGNBQWMsRUFBRyxjQUFjLENBQUM7SUFFdkMsWUFBWSxRQUFRLEVBQUUsTUFBTSxFQUczQjtJQUVLLEtBQUssa0JBTVY7SUFFSyxRQUFRLGtCQUViO1lBRWEsMkJBQTJCO0lBT25DLGdCQUFnQixDQUFDLENBQUMsU0FBUyxZQUFZLEVBQzNDLE1BQU0sRUFBRSxNQUFNLEVBQ2QsZ0JBQWdCLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQzFDLElBQUksR0FBRTtRQUNKLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNWLFVBQVUsQ0FBQyxFQUFFLFVBQVUsQ0FBQztRQUN4QixRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNqQixlQUFlLENBQUMsRUFBRSxNQUFNLENBQUM7UUFDekIsUUFBUSxDQUFDLEVBQUUsWUFBWSxDQUFDO0tBQ3BCLEdBQ0wsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQVdaO0NBQ0Y7QUFFRCxNQUFNLE1BQU0sd0JBQXdCLEdBQUcsVUFBVSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7QUFFbEcsTUFBTSxNQUFNLHFCQUFxQixDQUFDLENBQUMsU0FBUyxZQUFZLElBQUk7SUFDMUQsRUFBRSxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDN0MsUUFBUSxFQUFFLGdCQUFnQixDQUFDO0NBQzVCLENBQUMifQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lMmVfZGVwbG95X2NvbnRyYWN0L2RlcGxveV90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLEtBQUssWUFBWSxFQUE4QyxNQUFNLDJCQUEyQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN2RixPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQW1DLE1BQU0sc0JBQXNCLENBQUM7QUFDN0YsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFaEUscUJBQWEsVUFBVTtJQUNkLE9BQU8sRUFBRyxlQUFlLENBQUM7SUFDMUIsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLE1BQU0sRUFBRyxVQUFVLENBQUM7SUFDcEIscUJBQXFCLEVBQUcsWUFBWSxDQUFDO0lBQ3JDLFNBQVMsRUFBRyxTQUFTLENBQUM7SUFDdEIsY0FBYyxFQUFHLGNBQWMsQ0FBQztJQUV2QyxZQUFZLFFBQVEsRUFBRSxNQUFNLEVBRTNCO0lBRUssS0FBSyxrQkFXVjtJQUVLLFFBQVEsa0JBRWI7WUFFYSxtQkFBbUI7SUFZM0IsZ0JBQWdCLENBQUMsQ0FBQyxTQUFTLFlBQVksRUFDM0MsTUFBTSxFQUFFLE1BQU0sRUFDZCxnQkFBZ0IsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFDMUMsSUFBSSxHQUFFO1FBQ0osSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ1YsVUFBVSxDQUFDLEVBQUUsVUFBVSxDQUFDO1FBQ3hCLFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLGVBQWUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUN6QixRQUFRLENBQUMsRUFBRSxZQUFZLENBQUM7S0FDcEIsR0FDTCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBV1o7Q0FDRjtBQUVELE1BQU0sTUFBTSx3QkFBd0IsR0FBRyxVQUFVLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztBQUVsRyxNQUFNLE1BQU0scUJBQXFCLENBQUMsQ0FBQyxTQUFTLFlBQVksSUFBSTtJQUMxRCxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUM3QyxRQUFRLEVBQUUsZ0JBQWdCLENBQUM7Q0FDNUIsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"deploy_test.d.ts","sourceRoot":"","sources":["../../src/e2e_deploy_contract/deploy_test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,KAAK,YAAY,EAA8C,MAAM,2BAA2B,CAAC;AAC1G,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAM5D,qBAAa,UAAU;IACrB,OAAO,CAAC,eAAe,CAAmB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAG,UAAU,CAAC;IACpB,qBAAqB,EAAG,YAAY,CAAC;IACrC,SAAS,EAAG,SAAS,CAAC;IACtB,cAAc,EAAG,cAAc,CAAC;IAEvC,YAAY,QAAQ,EAAE,MAAM,EAG3B;IAEK,KAAK,kBAMV;IAEK,QAAQ,kBAEb;YAEa,2BAA2B;IAOnC,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAC3C,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAC1C,IAAI,GAAE;QACJ,IAAI,CAAC,EAAE,EAAE,CAAC;QACV,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;QACjB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,YAAY,CAAC;KACpB,GACL,OAAO,CAAC,CAAC,CAAC,CAWZ;CACF;AAED,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAElG,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,YAAY,IAAI;IAC1D,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC;IAC7C,QAAQ,EAAE,gBAAgB,CAAC;CAC5B,CAAC"}
1
+ {"version":3,"file":"deploy_test.d.ts","sourceRoot":"","sources":["../../src/e2e_deploy_contract/deploy_test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,KAAK,YAAY,EAA8C,MAAM,2BAA2B,CAAC;AAC1G,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAAE,KAAK,eAAe,EAAmC,MAAM,sBAAsB,CAAC;AAC7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,qBAAa,UAAU;IACd,OAAO,EAAG,eAAe,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAG,UAAU,CAAC;IACpB,qBAAqB,EAAG,YAAY,CAAC;IACrC,SAAS,EAAG,SAAS,CAAC;IACtB,cAAc,EAAG,cAAc,CAAC;IAEvC,YAAY,QAAQ,EAAE,MAAM,EAE3B;IAEK,KAAK,kBAWV;IAEK,QAAQ,kBAEb;YAEa,mBAAmB;IAY3B,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAC3C,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAC1C,IAAI,GAAE;QACJ,IAAI,CAAC,EAAE,EAAE,CAAC;QACV,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;QACjB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,YAAY,CAAC;KACpB,GACL,OAAO,CAAC,CAAC,CAAC,CAWZ;CACF;AAED,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAElG,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,YAAY,IAAI;IAC1D,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC;IAC7C,QAAQ,EAAE,gBAAgB,CAAC;CAC5B,CAAC"}
@@ -1,10 +1,9 @@
1
1
  import { getContractInstanceFromInstantiationParams } from '@aztec/aztec.js/contracts';
2
2
  import { Fr } from '@aztec/aztec.js/fields';
3
3
  import { createLogger } from '@aztec/aztec.js/log';
4
- import { createSnapshotManager, deployAccounts } from '../fixtures/snapshot_manager.js';
5
- const { E2E_DATA_PATH: dataPath } = process.env;
4
+ import { deployAccounts, setup, teardown } from '../fixtures/setup.js';
6
5
  export class DeployTest {
7
- snapshotManager;
6
+ context;
8
7
  logger;
9
8
  wallet;
10
9
  defaultAccountAddress;
@@ -12,23 +11,29 @@ export class DeployTest {
12
11
  aztecNodeAdmin;
13
12
  constructor(testName){
14
13
  this.logger = createLogger(`e2e:e2e_deploy_contract:${testName}`);
15
- this.snapshotManager = createSnapshotManager(`e2e_deploy_contract/${testName}`, dataPath);
16
14
  }
17
15
  async setup() {
18
- await this.applyInitialAccountSnapshot();
19
- const context = await this.snapshotManager.setup();
20
- ({ aztecNode: this.aztecNode, wallet: this.wallet } = context);
21
- this.aztecNodeAdmin = context.aztecNode;
16
+ this.logger.info('Setting up test environment');
17
+ this.context = await setup(0, {
18
+ fundSponsoredFPC: true,
19
+ skipAccountDeployment: true
20
+ });
21
+ this.aztecNode = this.context.aztecNodeService;
22
+ this.wallet = this.context.wallet;
23
+ this.aztecNodeAdmin = this.context.aztecNodeService;
24
+ await this.applyInitialAccount();
22
25
  return this;
23
26
  }
24
27
  async teardown() {
25
- await this.snapshotManager.teardown();
28
+ await teardown(this.context);
26
29
  }
27
- async applyInitialAccountSnapshot() {
28
- await this.snapshotManager.snapshot('initial_account', deployAccounts(1, this.logger), ({ deployedAccounts })=>{
29
- this.defaultAccountAddress = deployedAccounts[0].address;
30
- return Promise.resolve();
30
+ async applyInitialAccount() {
31
+ this.logger.info('Applying initial account setup');
32
+ const { deployedAccounts } = await deployAccounts(1, this.logger)({
33
+ wallet: this.context.wallet,
34
+ initialFundedAccounts: this.context.initialFundedAccounts
31
35
  });
36
+ this.defaultAccountAddress = deployedAccounts[0].address;
32
37
  }
33
38
  async registerContract(wallet, contractArtifact, opts = {}) {
34
39
  const { salt, publicKeys, initArgs, constructorName, deployer } = opts;
@@ -3,13 +3,16 @@ import { Fr } from '@aztec/aztec.js/fields';
3
3
  import type { Logger } from '@aztec/aztec.js/log';
4
4
  import type { Wallet } from '@aztec/aztec.js/wallet';
5
5
  import { EpochCache } from '@aztec/epoch-cache';
6
- import { type ExtendedViemWalletClient } from '@aztec/ethereum';
7
6
  import { RollupContract } from '@aztec/ethereum/contracts';
8
7
  import { ChainMonitor, type Delayer } from '@aztec/ethereum/test';
8
+ import type { ExtendedViemWalletClient } from '@aztec/ethereum/types';
9
+ import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
9
10
  import { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
11
+ import { TestContract } from '@aztec/noir-test-contracts.js/Test';
10
12
  import { ProverNode, type ProverNodeConfig } from '@aztec/prover-node';
13
+ import type { PXEConfig } from '@aztec/pxe/config';
11
14
  import { type SequencerClient, type SequencerEvents } from '@aztec/sequencer-client';
12
- import { EthAddress, type L2BlockNumber } from '@aztec/stdlib/block';
15
+ import { type BlockParameter, EthAddress } from '@aztec/stdlib/block';
13
16
  import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
14
17
  import { type EndToEndContext, type SetupOptions } from '../fixtures/utils.js';
15
18
  export declare const WORLD_STATE_BLOCK_HISTORY = 2;
@@ -18,6 +21,8 @@ export declare const ARCHIVER_POLL_INTERVAL = 50;
18
21
  export declare const DEFAULT_L1_BLOCK_TIME: number;
19
22
  export type EpochsTestOpts = Partial<SetupOptions> & {
20
23
  numberOfAccounts?: number;
24
+ pxeOpts?: Partial<PXEConfig>;
25
+ aztecSlotDurationInL1Slots?: number;
21
26
  };
22
27
  export type TrackedSequencerEvent = {
23
28
  [K in keyof SequencerEvents]: Parameters<SequencerEvents[K]>[0] & {
@@ -48,6 +53,7 @@ export declare class EpochsTestContext {
48
53
  L2_SLOT_DURATION_IN_S: number;
49
54
  static setup(opts?: EpochsTestOpts): Promise<EpochsTestContext>;
50
55
  static getSlotDurations(opts?: EpochsTestOpts): {
56
+ l1PublishingTime: number;
51
57
  ethereumSlotDuration: number;
52
58
  aztecSlotDuration: number;
53
59
  aztecEpochDuration: number;
@@ -67,26 +73,28 @@ export declare class EpochsTestContext {
67
73
  private getNextPrivateKey;
68
74
  /** Waits until the epoch begins (ie until the immediately previous L1 block is mined). */
69
75
  waitUntilEpochStarts(epoch: number): Promise<bigint>;
70
- /** Waits until the given L2 block number is mined. */
71
- waitUntilL2BlockNumber(target: number, timeout?: number): Promise<void>;
72
- /** Waits until the given L2 block number is marked as proven. */
73
- waitUntilProvenL2BlockNumber(t: number, timeout?: number): Promise<number>;
76
+ /** Waits until the given checkpoint number is mined. */
77
+ waitUntilCheckpointNumber(target: CheckpointNumber, timeout?: number): Promise<void>;
78
+ /** Waits until the given checkpoint number is marked as proven. */
79
+ waitUntilProvenCheckpointNumber(target: CheckpointNumber, timeout?: number): Promise<CheckpointNumber>;
74
80
  /** Waits until the last slot of the proof submission window for a given epoch. */
75
81
  waitUntilLastSlotOfProofSubmissionWindow(epochNumber: number | bigint): Promise<void>;
76
82
  /** Waits for the aztec node to sync to the target block number. */
77
- waitForNodeToSync(blockNumber: number, type: 'proven' | 'finalized' | 'historic'): Promise<void>;
83
+ waitForNodeToSync(blockNumber: BlockNumber, type: 'proven' | 'finalized' | 'historic'): Promise<void>;
78
84
  /** Registers the SpamContract on the given wallet. */
79
85
  registerSpamContract(wallet: Wallet, salt?: Fr): Promise<SpamContract>;
86
+ /** Registers the TestContract on the given wallet. */
87
+ registerTestContract(wallet: Wallet, salt?: Fr): Promise<TestContract>;
80
88
  /** Creates an L1 client using a fresh account with funds from anvil, with a tx delayer already set up. */
81
89
  createL1Client(): Promise<{
82
90
  client: ExtendedViemWalletClient;
83
91
  delayer: Delayer;
84
92
  }>;
85
93
  /** Verifies whether the given block number is found on the aztec node. */
86
- verifyHistoricBlock(blockNumber: L2BlockNumber, expectedSuccess: boolean): Promise<void>;
94
+ verifyHistoricBlock(blockNumber: BlockParameter, expectedSuccess: boolean): Promise<void>;
87
95
  watchSequencerEvents(sequencers: SequencerClient[], getMetadata?: (i: number) => Record<string, any>): {
88
96
  failEvents: TrackedSequencerEvent[];
89
97
  stateChanges: TrackedSequencerEvent[];
90
98
  };
91
99
  }
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2hzX3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lMmVfZXBvY2hzL2Vwb2Noc190ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzNFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUE0QixLQUFLLHdCQUF3QixFQUEwQixNQUFNLGlCQUFpQixDQUFDO0FBQ2xILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFrQixLQUFLLE9BQU8sRUFBcUMsTUFBTSxzQkFBc0IsQ0FBQztBQU9ySCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLGdCQUFnQixFQUF1QixNQUFNLG9CQUFvQixDQUFDO0FBRTVGLE9BQU8sRUFDTCxLQUFLLGVBQWUsRUFDcEIsS0FBSyxlQUFlLEVBR3JCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxLQUFLLGlCQUFpQixFQUF1QyxNQUFNLDZCQUE2QixDQUFDO0FBTzFHLE9BQU8sRUFDTCxLQUFLLGVBQWUsRUFDcEIsS0FBSyxZQUFZLEVBSWxCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsZUFBTyxNQUFNLHlCQUF5QixJQUFJLENBQUM7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
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2hzX3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lMmVfZXBvY2hzL2Vwb2Noc190ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzNFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQWtCLEtBQUssT0FBTyxFQUFxQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3JILE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBZSxNQUFNLGlDQUFpQyxDQUFDO0FBTTdGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLGdCQUFnQixFQUF1QixNQUFNLG9CQUFvQixDQUFDO0FBRTVGLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFDTCxLQUFLLGVBQWUsRUFDcEIsS0FBSyxlQUFlLEVBR3JCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUFFLEtBQUssY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RF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
@@ -1 +1 @@
1
- {"version":3,"file":"epochs_test.d.ts","sourceRoot":"","sources":["../../src/e2e_epochs/epochs_test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"epochs_test.d.ts","sourceRoot":"","sources":["../../src/e2e_epochs/epochs_test.ts"],"names":[],"mappings":"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"}
@@ -4,16 +4,18 @@ import { getContractInstanceFromInstantiationParams } from '@aztec/aztec.js/cont
4
4
  import { Fr } from '@aztec/aztec.js/fields';
5
5
  import { MerkleTreeId } from '@aztec/aztec.js/trees';
6
6
  import { EpochCache } from '@aztec/epoch-cache';
7
- import { DefaultL1ContractsConfig, createExtendedL1Client } from '@aztec/ethereum';
7
+ import { createExtendedL1Client } from '@aztec/ethereum/client';
8
+ import { DefaultL1ContractsConfig } from '@aztec/ethereum/config';
8
9
  import { RollupContract } from '@aztec/ethereum/contracts';
9
10
  import { ChainMonitor, DelayedTxUtils, waitUntilL1Timestamp, withDelayer } from '@aztec/ethereum/test';
10
11
  import { EpochNumber } from '@aztec/foundation/branded-types';
11
12
  import { SecretValue } from '@aztec/foundation/config';
12
- import { randomBytes } from '@aztec/foundation/crypto';
13
- import { withLogNameSuffix } from '@aztec/foundation/log';
13
+ import { randomBytes } from '@aztec/foundation/crypto/random';
14
+ import { withLoggerBindings } from '@aztec/foundation/log/server';
14
15
  import { retryUntil } from '@aztec/foundation/retry';
15
16
  import { sleep } from '@aztec/foundation/sleep';
16
17
  import { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
18
+ import { TestContract } from '@aztec/noir-test-contracts.js/Test';
17
19
  import { getMockPubSubP2PServiceFactory } from '@aztec/p2p/test-helpers';
18
20
  import { SequencerState } from '@aztec/sequencer-client';
19
21
  import { EthAddress } from '@aztec/stdlib/block';
@@ -53,10 +55,12 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
53
55
  static getSlotDurations(opts = {}) {
54
56
  const envEthereumSlotDuration = process.env.L1_BLOCK_TIME ? parseInt(process.env.L1_BLOCK_TIME) : DEFAULT_L1_BLOCK_TIME;
55
57
  const ethereumSlotDuration = opts.ethereumSlotDuration ?? envEthereumSlotDuration;
56
- const aztecSlotDuration = opts.aztecSlotDuration ?? ethereumSlotDuration * 2;
58
+ const aztecSlotDuration = opts.aztecSlotDuration ?? (opts.aztecSlotDurationInL1Slots ?? 2) * ethereumSlotDuration;
57
59
  const aztecEpochDuration = opts.aztecEpochDuration ?? 6;
58
60
  const aztecProofSubmissionEpochs = opts.aztecProofSubmissionEpochs ?? 1;
61
+ const l1PublishingTime = opts.l1PublishingTime ?? 1;
59
62
  return {
63
+ l1PublishingTime,
60
64
  ethereumSlotDuration,
61
65
  aztecSlotDuration,
62
66
  aztecEpochDuration,
@@ -64,7 +68,7 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
64
68
  };
65
69
  }
66
70
  async setup(opts = {}) {
67
- const { ethereumSlotDuration, aztecSlotDuration, aztecEpochDuration, aztecProofSubmissionEpochs } = EpochsTestContext.getSlotDurations(opts);
71
+ const { ethereumSlotDuration, aztecSlotDuration, aztecEpochDuration, aztecProofSubmissionEpochs, l1PublishingTime } = EpochsTestContext.getSlotDurations(opts);
68
72
  this.L1_BLOCK_TIME_IN_S = ethereumSlotDuration;
69
73
  this.L2_SLOT_DURATION_IN_S = aztecSlotDuration;
70
74
  // Set up system without any account nor protocol contracts
@@ -74,8 +78,6 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
74
78
  checkIntervalMs: 50,
75
79
  archiverPollingIntervalMS: ARCHIVER_POLL_INTERVAL,
76
80
  worldStateBlockCheckIntervalMS: WORLD_STATE_BLOCK_CHECK_INTERVAL,
77
- skipProtocolContracts: true,
78
- salt: 1,
79
81
  aztecEpochDuration,
80
82
  aztecSlotDuration,
81
83
  ethereumSlotDuration,
@@ -92,7 +94,13 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
92
94
  worldStateBlockHistory: WORLD_STATE_BLOCK_HISTORY,
93
95
  exitDelaySeconds: DefaultL1ContractsConfig.exitDelaySeconds,
94
96
  slasherFlavor: 'none',
97
+ l1PublishingTime,
95
98
  ...opts
99
+ }, // Use checkpointed chain tip for PXE by default to avoid issues with blocks being dropped due to pruned anchor blocks.
100
+ // Can be overridden via opts.pxeOpts.
101
+ {
102
+ syncChainTip: 'checkpointed',
103
+ ...opts.pxeOpts
96
104
  });
97
105
  this.context = context;
98
106
  this.proverNodes = context.proverNode ? [
@@ -124,7 +132,8 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
124
132
  l1StartBlock: await this.rollup.getL1StartBlock(),
125
133
  l1GenesisTime: await this.rollup.getL1GenesisTime(),
126
134
  ethereumSlotDuration,
127
- proofSubmissionEpochs: Number(await this.rollup.getProofSubmissionEpochs())
135
+ proofSubmissionEpochs: Number(await this.rollup.getProofSubmissionEpochs()),
136
+ targetCommitteeSize: await this.rollup.getTargetCommitteeSize()
128
137
  };
129
138
  this.logger.info(`L2 genesis at L1 block ${this.constants.l1StartBlock} (timestamp ${this.constants.l1GenesisTime})`);
130
139
  }
@@ -137,16 +146,23 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
137
146
  async createProverNode(opts = {}) {
138
147
  this.logger.warn('Creating and syncing a simulated prover node...');
139
148
  const proverNodePrivateKey = this.getNextPrivateKey();
140
- const suffix = (this.proverNodes.length + 1).toString();
141
- const proverNode = await withLogNameSuffix(suffix, ()=>createAndSyncProverNode(proverNodePrivateKey, {
142
- ...this.context.config
149
+ const proverIndex = this.proverNodes.length + 1;
150
+ const { mockGossipSubNetwork } = this.context;
151
+ const proverNode = await withLoggerBindings({
152
+ actor: `prover-${proverIndex}`
153
+ }, ()=>createAndSyncProverNode(proverNodePrivateKey, {
154
+ ...this.context.config,
155
+ p2pEnabled: this.context.config.p2pEnabled || mockGossipSubNetwork !== undefined
143
156
  }, {
144
157
  dataDirectory: join(this.context.config.dataDirectory, randomBytes(8).toString('hex')),
145
- proverId: EthAddress.fromNumber(parseInt(suffix, 10)),
158
+ proverId: EthAddress.fromNumber(proverIndex),
146
159
  dontStart: opts.dontStart,
147
160
  ...opts
148
- }, this.context.aztecNode, undefined, {
149
- dateProvider: this.context.dateProvider
161
+ }, this.context.aztecNode, this.context.prefilledPublicData ?? [], {
162
+ dateProvider: this.context.dateProvider,
163
+ p2pClientDeps: mockGossipSubNetwork ? {
164
+ p2pServiceFactory: getMockPubSubP2PServiceFactory(mockGossipSubNetwork)
165
+ } : undefined
150
166
  }));
151
167
  this.proverNodes.push(proverNode);
152
168
  return proverNode;
@@ -167,7 +183,8 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
167
183
  });
168
184
  }
169
185
  async createNode(opts = {}) {
170
- const suffix = (this.nodes.length + 1).toString();
186
+ const nodeIndex = this.nodes.length + 1;
187
+ const actorPrefix = opts.disableValidator ? 'node' : 'validator';
171
188
  const { mockGossipSubNetwork } = this.context;
172
189
  const resolvedConfig = {
173
190
  ...this.context.config,
@@ -175,7 +192,9 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
175
192
  };
176
193
  const p2pEnabled = resolvedConfig.p2pEnabled || mockGossipSubNetwork !== undefined;
177
194
  const p2pIp = resolvedConfig.p2pIp ?? (p2pEnabled ? '127.0.0.1' : undefined);
178
- const node = await withLogNameSuffix(suffix, ()=>AztecNodeService.createAndSync({
195
+ const node = await withLoggerBindings({
196
+ actor: `${actorPrefix}-${nodeIndex}`
197
+ }, ()=>AztecNodeService.createAndSync({
179
198
  ...resolvedConfig,
180
199
  dataDirectory: join(this.context.config.dataDirectory, randomBytes(8).toString('hex')),
181
200
  validatorPrivateKeys: opts.validatorPrivateKeys ?? new SecretValue([]),
@@ -217,11 +236,11 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
217
236
  await waitUntilL1Timestamp(this.l1Client, start - BigInt(this.L1_BLOCK_TIME_IN_S), undefined, 30 * this.epochDuration);
218
237
  return start;
219
238
  }
220
- /** Waits until the given L2 block number is mined. */ async waitUntilL2BlockNumber(target, timeout = 60) {
221
- await retryUntil(()=>Promise.resolve(target <= this.monitor.checkpointNumber), `Wait until L2 block ${target}`, timeout, 0.1);
239
+ /** Waits until the given checkpoint number is mined. */ async waitUntilCheckpointNumber(target, timeout = 120) {
240
+ await retryUntil(()=>Promise.resolve(target <= this.monitor.checkpointNumber), `Wait until checkpoint ${target}`, timeout, 0.1);
222
241
  }
223
- /** Waits until the given L2 block number is marked as proven. */ async waitUntilProvenL2BlockNumber(t, timeout = 60) {
224
- await retryUntil(()=>Promise.resolve(t <= this.monitor.provenCheckpointNumber), `Wait proven L2 block ${t}`, timeout, 0.1);
242
+ /** Waits until the given checkpoint number is marked as proven. */ async waitUntilProvenCheckpointNumber(target, timeout = 120) {
243
+ await retryUntil(()=>Promise.resolve(target <= this.monitor.provenCheckpointNumber), `Wait proven checkpoint ${target}`, timeout, 0.1);
225
244
  return this.monitor.provenCheckpointNumber;
226
245
  }
227
246
  /** Waits until the last slot of the proof submission window for a given epoch. */ async waitUntilLastSlotOfProofSubmissionWindow(epochNumber) {
@@ -249,7 +268,7 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
249
268
  tips
250
269
  });
251
270
  if (type === 'proven') {
252
- synched = tips.proven.number >= blockNumber && syncState.latestBlockNumber >= blockNumber;
271
+ synched = tips.proven.block.number >= blockNumber && syncState.latestBlockNumber >= blockNumber;
253
272
  } else if (type === 'finalized') {
254
273
  synched = syncState.finalizedBlockNumber >= blockNumber;
255
274
  } else {
@@ -268,6 +287,17 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
268
287
  await wallet.registerContract(instance, SpamContract.artifact);
269
288
  return SpamContract.at(instance.address, wallet);
270
289
  }
290
+ /** Registers the TestContract on the given wallet. */ async registerTestContract(wallet, salt = Fr.ZERO) {
291
+ const instance = await getContractInstanceFromInstantiationParams(TestContract.artifact, {
292
+ constructorArgs: [],
293
+ constructorArtifact: undefined,
294
+ salt,
295
+ publicKeys: undefined,
296
+ deployer: undefined
297
+ });
298
+ await wallet.registerContract(instance, TestContract.artifact);
299
+ return TestContract.at(instance.address, wallet);
300
+ }
271
301
  /** Creates an L1 client using a fresh account with funds from anvil, with a tx delayer already set up. */ async createL1Client() {
272
302
  const { client, delayer } = withDelayer(createExtendedL1Client([
273
303
  ...this.l1Client.chain.rpcUrls.default.http
@@ -294,11 +324,11 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
294
324
  watchSequencerEvents(sequencers, getMetadata = ()=>({})) {
295
325
  const stateChanges = [];
296
326
  const failEvents = [];
297
- // Note we do not include the 'tx-count-check-failed' event here, since it is fine if we dont build
327
+ // Note we do not include the 'block-tx-count-check-failed' event here, since it is fine if we dont build
298
328
  // due to lack of txs available.
299
329
  const failEventsKeys = [
300
330
  'block-build-failed',
301
- 'block-publish-failed',
331
+ 'checkpoint-publish-failed',
302
332
  'proposer-rollup-check-failed'
303
333
  ];
304
334
  const makeEvent = (i, eventName, args)=>({
@@ -1,6 +1,6 @@
1
1
  import { SchnorrAccountContract } from '@aztec/accounts/schnorr';
2
2
  import { Fr } from '@aztec/aztec.js/fields';
3
- import { Fq } from '@aztec/foundation/fields';
3
+ import { Fq } from '@aztec/foundation/curves/bn254';
4
4
  import { sleep } from '@aztec/foundation/sleep';
5
5
  import { jest } from '@jest/globals';
6
6
  import { FeesTest } from './fees_test.js';
@@ -16,10 +16,8 @@ describe('e2e_fees bridging_race', ()=>{
16
16
  minTxsPerBlock: 0
17
17
  });
18
18
  beforeAll(async ()=>{
19
- await t.applyInitialAccountsSnapshot();
20
- await t.applyPublicDeployAccountsSnapshot();
21
- await t.applySetupFeeJuiceSnapshot();
22
- ({ wallet, logger } = await t.setup());
19
+ await t.setup();
20
+ ({ wallet, logger } = t);
23
21
  });
24
22
  afterAll(async ()=>{
25
23
  await t.teardown();
@@ -56,7 +54,7 @@ describe('e2e_fees bridging_race', ()=>{
56
54
  const { claimSecret: secret, messageLeafIndex: index } = claim;
57
55
  await t.feeJuiceContract.methods.claim(bobsAddress, claim.claimAmount, secret, index).send({
58
56
  from: bobsAddress
59
- }).wait();
57
+ });
60
58
  const [balance] = await t.getGasBalanceFn(bobsAddress);
61
59
  expect(balance).toEqual(claim.claimAmount);
62
60
  });