@aztec/end-to-end 0.0.0-test.1 → 0.0.1-commit.03f7ef2

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 (181) hide show
  1. package/dest/bench/client_flows/benchmark.d.ts +61 -0
  2. package/dest/bench/client_flows/benchmark.d.ts.map +1 -0
  3. package/dest/bench/client_flows/benchmark.js +261 -0
  4. package/dest/bench/client_flows/client_flows_benchmark.d.ts +80 -0
  5. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -0
  6. package/dest/bench/client_flows/client_flows_benchmark.js +336 -0
  7. package/dest/bench/client_flows/config.d.ts +14 -0
  8. package/dest/bench/client_flows/config.d.ts.map +1 -0
  9. package/dest/bench/client_flows/config.js +106 -0
  10. package/dest/bench/client_flows/data_extractor.d.ts +2 -0
  11. package/dest/bench/client_flows/data_extractor.d.ts.map +1 -0
  12. package/dest/bench/client_flows/data_extractor.js +77 -0
  13. package/dest/bench/utils.d.ts +12 -38
  14. package/dest/bench/utils.d.ts.map +1 -1
  15. package/dest/bench/utils.js +26 -66
  16. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +21 -13
  17. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  18. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +85 -57
  19. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +20 -25
  20. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  21. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +51 -70
  22. package/dest/e2e_deploy_contract/deploy_test.d.ts +16 -8
  23. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  24. package/dest/e2e_deploy_contract/deploy_test.js +13 -19
  25. package/dest/e2e_epochs/epochs_test.d.ts +65 -22
  26. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  27. package/dest/e2e_epochs/epochs_test.js +233 -49
  28. package/dest/e2e_fees/bridging_race.notest.d.ts +2 -0
  29. package/dest/e2e_fees/bridging_race.notest.d.ts.map +1 -0
  30. package/dest/e2e_fees/bridging_race.notest.js +63 -0
  31. package/dest/e2e_fees/fees_test.d.ts +27 -12
  32. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  33. package/dest/e2e_fees/fees_test.js +106 -109
  34. package/dest/e2e_l1_publisher/write_json.d.ts +10 -0
  35. package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -0
  36. package/dest/e2e_l1_publisher/write_json.js +58 -0
  37. package/dest/e2e_multi_validator/utils.d.ts +12 -0
  38. package/dest/e2e_multi_validator/utils.d.ts.map +1 -0
  39. package/dest/e2e_multi_validator/utils.js +214 -0
  40. package/dest/e2e_nested_contract/nested_contract_test.d.ts +10 -7
  41. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  42. package/dest/e2e_nested_contract/nested_contract_test.js +24 -20
  43. package/dest/e2e_p2p/inactivity_slash_test.d.ts +31 -0
  44. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -0
  45. package/dest/e2e_p2p/inactivity_slash_test.js +136 -0
  46. package/dest/e2e_p2p/p2p_network.d.ts +276 -23
  47. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  48. package/dest/e2e_p2p/p2p_network.js +188 -133
  49. package/dest/e2e_p2p/shared.d.ts +43 -7
  50. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  51. package/dest/e2e_p2p/shared.js +164 -19
  52. package/dest/e2e_token_contract/token_contract_test.d.ts +12 -6
  53. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  54. package/dest/e2e_token_contract/token_contract_test.js +50 -26
  55. package/dest/fixtures/e2e_prover_test.d.ts +61 -0
  56. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -0
  57. package/dest/{e2e_prover → fixtures}/e2e_prover_test.js +108 -112
  58. package/dest/fixtures/fixtures.d.ts +6 -8
  59. package/dest/fixtures/fixtures.d.ts.map +1 -1
  60. package/dest/fixtures/fixtures.js +5 -5
  61. package/dest/fixtures/get_acvm_config.d.ts +2 -2
  62. package/dest/fixtures/get_acvm_config.d.ts.map +1 -1
  63. package/dest/fixtures/get_acvm_config.js +3 -15
  64. package/dest/fixtures/get_bb_config.d.ts +2 -2
  65. package/dest/fixtures/get_bb_config.d.ts.map +1 -1
  66. package/dest/fixtures/get_bb_config.js +10 -17
  67. package/dest/fixtures/index.d.ts +1 -1
  68. package/dest/fixtures/l1_to_l2_messaging.d.ts +11 -7
  69. package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
  70. package/dest/fixtures/l1_to_l2_messaging.js +45 -19
  71. package/dest/fixtures/logging.d.ts +1 -1
  72. package/dest/fixtures/setup_p2p_test.d.ts +15 -14
  73. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  74. package/dest/fixtures/setup_p2p_test.js +82 -22
  75. package/dest/fixtures/snapshot_manager.d.ts +20 -14
  76. package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
  77. package/dest/fixtures/snapshot_manager.js +154 -140
  78. package/dest/fixtures/token_utils.d.ts +10 -4
  79. package/dest/fixtures/token_utils.d.ts.map +1 -1
  80. package/dest/fixtures/token_utils.js +28 -12
  81. package/dest/fixtures/utils.d.ts +95 -54
  82. package/dest/fixtures/utils.d.ts.map +1 -1
  83. package/dest/fixtures/utils.js +456 -389
  84. package/dest/fixtures/web3signer.d.ts +5 -0
  85. package/dest/fixtures/web3signer.d.ts.map +1 -0
  86. package/dest/fixtures/web3signer.js +53 -0
  87. package/dest/fixtures/with_telemetry_utils.d.ts +2 -2
  88. package/dest/fixtures/with_telemetry_utils.d.ts.map +1 -1
  89. package/dest/fixtures/with_telemetry_utils.js +2 -2
  90. package/dest/index.d.ts +1 -1
  91. package/dest/quality_of_service/alert_checker.d.ts +2 -2
  92. package/dest/quality_of_service/alert_checker.d.ts.map +1 -1
  93. package/dest/shared/cross_chain_test_harness.d.ts +42 -35
  94. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  95. package/dest/shared/cross_chain_test_harness.js +104 -50
  96. package/dest/shared/gas_portal_test_harness.d.ts +29 -31
  97. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  98. package/dest/shared/gas_portal_test_harness.js +51 -30
  99. package/dest/shared/index.d.ts +1 -1
  100. package/dest/shared/jest_setup.d.ts +1 -1
  101. package/dest/shared/jest_setup.js +1 -1
  102. package/dest/shared/submit-transactions.d.ts +6 -4
  103. package/dest/shared/submit-transactions.d.ts.map +1 -1
  104. package/dest/shared/submit-transactions.js +8 -7
  105. package/dest/shared/uniswap_l1_l2.d.ts +16 -13
  106. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  107. package/dest/shared/uniswap_l1_l2.js +149 -117
  108. package/dest/simulators/index.d.ts +1 -1
  109. package/dest/simulators/lending_simulator.d.ts +7 -11
  110. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  111. package/dest/simulators/lending_simulator.js +16 -17
  112. package/dest/simulators/token_simulator.d.ts +6 -3
  113. package/dest/simulators/token_simulator.d.ts.map +1 -1
  114. package/dest/simulators/token_simulator.js +16 -13
  115. package/dest/spartan/setup_test_wallets.d.ts +26 -11
  116. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  117. package/dest/spartan/setup_test_wallets.js +202 -58
  118. package/dest/spartan/tx_metrics.d.ts +39 -0
  119. package/dest/spartan/tx_metrics.d.ts.map +1 -0
  120. package/dest/spartan/tx_metrics.js +95 -0
  121. package/dest/spartan/utils.d.ts +129 -313
  122. package/dest/spartan/utils.d.ts.map +1 -1
  123. package/dest/spartan/utils.js +559 -151
  124. package/package.json +65 -58
  125. package/src/bench/client_flows/benchmark.ts +341 -0
  126. package/src/bench/client_flows/client_flows_benchmark.ts +450 -0
  127. package/src/bench/client_flows/config.ts +61 -0
  128. package/src/bench/client_flows/data_extractor.ts +89 -0
  129. package/src/bench/utils.ts +22 -76
  130. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +80 -77
  131. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +70 -107
  132. package/src/e2e_deploy_contract/deploy_test.ts +24 -39
  133. package/src/e2e_epochs/epochs_test.ts +299 -65
  134. package/src/e2e_fees/bridging_race.notest.ts +80 -0
  135. package/src/e2e_fees/fees_test.ts +151 -141
  136. package/src/e2e_l1_publisher/write_json.ts +77 -0
  137. package/src/e2e_multi_validator/utils.ts +258 -0
  138. package/src/e2e_nested_contract/nested_contract_test.ts +29 -19
  139. package/src/e2e_p2p/inactivity_slash_test.ts +179 -0
  140. package/src/e2e_p2p/p2p_network.ts +274 -171
  141. package/src/e2e_p2p/shared.ts +251 -29
  142. package/src/e2e_token_contract/token_contract_test.ts +43 -39
  143. package/src/fixtures/dumps/epoch_proof_result.json +1 -1
  144. package/src/{e2e_prover → fixtures}/e2e_prover_test.ts +113 -160
  145. package/src/fixtures/fixtures.ts +5 -7
  146. package/src/fixtures/get_acvm_config.ts +4 -12
  147. package/src/fixtures/get_bb_config.ts +18 -13
  148. package/src/fixtures/l1_to_l2_messaging.ts +56 -24
  149. package/src/fixtures/setup_p2p_test.ts +127 -39
  150. package/src/fixtures/snapshot_manager.ts +196 -162
  151. package/src/fixtures/token_utils.ts +32 -15
  152. package/src/fixtures/utils.ts +562 -475
  153. package/src/fixtures/web3signer.ts +63 -0
  154. package/src/fixtures/with_telemetry_utils.ts +2 -2
  155. package/src/guides/up_quick_start.sh +7 -15
  156. package/src/quality_of_service/alert_checker.ts +1 -1
  157. package/src/shared/cross_chain_test_harness.ts +112 -80
  158. package/src/shared/gas_portal_test_harness.ts +59 -50
  159. package/src/shared/jest_setup.ts +1 -1
  160. package/src/shared/submit-transactions.ts +12 -8
  161. package/src/shared/uniswap_l1_l2.ts +187 -192
  162. package/src/simulators/lending_simulator.ts +15 -16
  163. package/src/simulators/token_simulator.ts +21 -13
  164. package/src/spartan/DEVELOP.md +128 -0
  165. package/src/spartan/setup_test_wallets.ts +252 -93
  166. package/src/spartan/tx_metrics.ts +130 -0
  167. package/src/spartan/utils.ts +641 -146
  168. package/dest/e2e_prover/e2e_prover_test.d.ts +0 -56
  169. package/dest/e2e_prover/e2e_prover_test.d.ts.map +0 -1
  170. package/dest/fixtures/setup_l1_contracts.d.ts +0 -6
  171. package/dest/fixtures/setup_l1_contracts.d.ts.map +0 -1
  172. package/dest/fixtures/setup_l1_contracts.js +0 -17
  173. package/dest/sample-dapp/connect.js +0 -12
  174. package/dest/sample-dapp/contracts.js +0 -10
  175. package/dest/sample-dapp/deploy.js +0 -35
  176. package/dest/sample-dapp/index.js +0 -98
  177. package/src/fixtures/setup_l1_contracts.ts +0 -27
  178. package/src/sample-dapp/connect.mjs +0 -16
  179. package/src/sample-dapp/contracts.mjs +0 -14
  180. package/src/sample-dapp/deploy.mjs +0 -40
  181. package/src/sample-dapp/index.mjs +0 -128
@@ -1,20 +1,20 @@
1
- import { getSchnorrWallet } from '@aztec/accounts/schnorr';
2
1
  import type { AztecNodeConfig } from '@aztec/aztec-node';
3
- import {
4
- type AccountWallet,
5
- AztecAddress,
6
- type AztecNode,
7
- CheatCodes,
8
- type CompleteAddress,
9
- EthAddress,
10
- type Logger,
11
- type PXE,
12
- createLogger,
13
- } from '@aztec/aztec.js';
14
- import { type ViemPublicClient, createL1Clients, deployL1Contract } from '@aztec/ethereum';
15
- import { InboxAbi, OutboxAbi, RollupAbi, TestERC20Abi, TestERC20Bytecode } from '@aztec/l1-artifacts';
2
+ import { AztecAddress, EthAddress } from '@aztec/aztec.js/addresses';
3
+ import { type Logger, createLogger } from '@aztec/aztec.js/log';
4
+ import type { AztecNode } from '@aztec/aztec.js/node';
5
+ import { CheatCodes } from '@aztec/aztec/testing';
6
+ import { createExtendedL1Client } from '@aztec/ethereum/client';
7
+ import type {
8
+ DeployAztecL1ContractsArgs,
9
+ DeployAztecL1ContractsReturnType,
10
+ } from '@aztec/ethereum/deploy-aztec-l1-contracts';
11
+ import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
12
+ import type { ExtendedViemWalletClient } from '@aztec/ethereum/types';
13
+ import { InboxAbi, OutboxAbi, TestERC20Abi, TestERC20Bytecode } from '@aztec/l1-artifacts';
16
14
  import { TokenContract } from '@aztec/noir-contracts.js/Token';
17
15
  import { TokenBridgeContract } from '@aztec/noir-contracts.js/TokenBridge';
16
+ import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
17
+ import type { TestWallet } from '@aztec/test-wallet/server';
18
18
 
19
19
  import { getContract } from 'viem';
20
20
 
@@ -26,6 +26,7 @@ import {
26
26
  deployAccounts,
27
27
  publicDeployAccounts,
28
28
  } from '../fixtures/snapshot_manager.js';
29
+ import type { SetupOptions } from '../fixtures/utils.js';
29
30
  import { CrossChainTestHarness } from '../shared/cross_chain_test_harness.js';
30
31
 
31
32
  const { E2E_DATA_PATH: dataPath } = process.env;
@@ -33,42 +34,52 @@ const { E2E_DATA_PATH: dataPath } = process.env;
33
34
  export class CrossChainMessagingTest {
34
35
  private snapshotManager: ISnapshotManager;
35
36
  logger: Logger;
36
- wallets: AccountWallet[] = [];
37
- accounts: CompleteAddress[] = [];
38
37
  aztecNode!: AztecNode;
39
- pxe!: PXE;
40
38
  aztecNodeConfig!: AztecNodeConfig;
39
+ aztecNodeAdmin!: AztecNodeAdmin;
40
+ ctx!: SubsystemsContext;
41
41
 
42
- publicClient!: ViemPublicClient | undefined;
42
+ l1Client!: ExtendedViemWalletClient | undefined;
43
43
 
44
- user1Wallet!: AccountWallet;
45
- user2Wallet!: AccountWallet;
44
+ wallet!: TestWallet;
45
+ ownerAddress!: AztecAddress;
46
+ user1Address!: AztecAddress;
47
+ user2Address!: AztecAddress;
46
48
  crossChainTestHarness!: CrossChainTestHarness;
47
49
  ethAccount!: EthAddress;
48
- ownerAddress!: AztecAddress;
49
50
  l2Token!: TokenContract;
50
51
  l2Bridge!: TokenBridgeContract;
51
52
 
52
- rollup!: any; // GetContractReturnType<typeof RollupAbi> | undefined;
53
53
  inbox!: any; // GetContractReturnType<typeof InboxAbi> | undefined;
54
54
  outbox!: any; // GetContractReturnType<typeof OutboxAbi> | undefined;
55
- cheatcodes!: CheatCodes;
55
+ cheatCodes!: CheatCodes;
56
56
 
57
- constructor(testName: string) {
57
+ deployL1ContractsValues!: DeployAztecL1ContractsReturnType;
58
+
59
+ constructor(
60
+ testName: string,
61
+ opts: SetupOptions = {},
62
+ deployL1ContractsArgs: Partial<DeployAztecL1ContractsArgs> = {},
63
+ ) {
58
64
  this.logger = createLogger(`e2e:e2e_cross_chain_messaging:${testName}`);
59
- this.snapshotManager = createSnapshotManager(`e2e_cross_chain_messaging/${testName}`, dataPath);
65
+ this.snapshotManager = createSnapshotManager(`e2e_cross_chain_messaging/${testName}`, dataPath, opts, {
66
+ initialValidators: [],
67
+ ...deployL1ContractsArgs,
68
+ });
60
69
  }
61
70
 
62
71
  async assumeProven() {
63
- await this.cheatcodes.rollup.markAsProven(await this.rollup.read.getPendingBlockNumber());
72
+ await this.cheatCodes.rollup.markAsProven();
64
73
  }
65
74
 
66
75
  async setup() {
67
- const { aztecNode, pxe, aztecNodeConfig } = await this.snapshotManager.setup();
68
- this.aztecNode = aztecNode;
69
- this.pxe = pxe;
70
- this.aztecNodeConfig = aztecNodeConfig;
71
- this.cheatcodes = await CheatCodes.create(this.aztecNodeConfig.l1RpcUrls, this.pxe);
76
+ this.ctx = await this.snapshotManager.setup();
77
+ this.aztecNode = this.ctx.aztecNode;
78
+ this.wallet = this.ctx.wallet;
79
+ this.aztecNodeConfig = this.ctx.aztecNodeConfig;
80
+ this.cheatCodes = this.ctx.cheatCodes;
81
+ this.deployL1ContractsValues = this.ctx.deployL1ContractsValues;
82
+ this.aztecNodeAdmin = this.ctx.aztecNode;
72
83
  }
73
84
 
74
85
  snapshot = <T>(
@@ -82,29 +93,18 @@ export class CrossChainMessagingTest {
82
93
  }
83
94
 
84
95
  async applyBaseSnapshots() {
85
- // Note that we are using the same `pxe`, `aztecNodeConfig` and `aztecNode` across all snapshots.
96
+ // Note that we are using the same `wallet`, `aztecNodeConfig` and `aztecNode` across all snapshots.
86
97
  // This is to not have issues with different networks.
87
98
 
88
99
  await this.snapshotManager.snapshot(
89
100
  '3_accounts',
90
101
  deployAccounts(3, this.logger),
91
- async ({ deployedAccounts }, { pxe, aztecNodeConfig, aztecNode, deployL1ContractsValues }) => {
92
- this.wallets = await Promise.all(deployedAccounts.map(a => getSchnorrWallet(pxe, a.address, a.signingKey)));
93
- this.accounts = this.wallets.map(w => w.getCompleteAddress());
94
- this.wallets.forEach((w, i) => this.logger.verbose(`Wallet ${i} address: ${w.getAddress()}`));
95
-
96
- this.rollup = getContract({
97
- address: deployL1ContractsValues.l1ContractAddresses.rollupAddress.toString(),
98
- abi: RollupAbi,
99
- client: deployL1ContractsValues.walletClient,
100
- });
101
-
102
- this.user1Wallet = this.wallets[0];
103
- this.user2Wallet = this.wallets[1];
104
-
105
- this.pxe = pxe;
102
+ ({ deployedAccounts }, { wallet, aztecNodeConfig, aztecNode }) => {
103
+ [this.ownerAddress, this.user1Address, this.user2Address] = deployedAccounts.map(a => a.address);
104
+ this.wallet = wallet;
106
105
  this.aztecNode = aztecNode;
107
106
  this.aztecNodeConfig = aztecNodeConfig;
107
+ return Promise.resolve();
108
108
  },
109
109
  );
110
110
 
@@ -114,107 +114,70 @@ export class CrossChainMessagingTest {
114
114
  // Create the token contract state.
115
115
  // Move this account thing to addAccounts above?
116
116
  this.logger.verbose(`Public deploy accounts...`);
117
- await publicDeployAccounts(this.wallets[0], this.accounts.slice(0, 3));
118
-
119
- const { publicClient, walletClient } = createL1Clients(this.aztecNodeConfig.l1RpcUrls, MNEMONIC);
120
-
121
- const underlyingERC20Address = await deployL1Contract(
122
- walletClient,
123
- publicClient,
124
- TestERC20Abi,
125
- TestERC20Bytecode,
126
- ['Underlying', 'UND', walletClient.account.address],
127
- ).then(({ address }) => address);
128
-
129
- const underlyingERC20 = getContract({
130
- address: underlyingERC20Address!.toString(),
131
- abi: TestERC20Abi,
132
- client: walletClient,
133
- });
117
+ await publicDeployAccounts(this.wallet, [this.ownerAddress, this.user1Address, this.user2Address]);
118
+
119
+ this.l1Client = createExtendedL1Client(this.aztecNodeConfig.l1RpcUrls, MNEMONIC);
134
120
 
135
- // allow anyone to mint
136
- await underlyingERC20.write.setFreeForAll([true], {} as any);
121
+ const underlyingERC20Address = await deployL1Contract(this.l1Client, TestERC20Abi, TestERC20Bytecode, [
122
+ 'Underlying',
123
+ 'UND',
124
+ this.l1Client.account.address,
125
+ ]).then(({ address }) => address);
137
126
 
138
127
  this.logger.verbose(`Setting up cross chain harness...`);
139
128
  this.crossChainTestHarness = await CrossChainTestHarness.new(
140
129
  this.aztecNode,
141
- this.pxe,
142
- publicClient,
143
- walletClient,
144
- this.wallets[0],
130
+ this.l1Client,
131
+ this.wallet,
132
+ this.ownerAddress,
145
133
  this.logger,
146
134
  underlyingERC20Address,
147
135
  );
148
136
 
149
137
  this.logger.verbose(`L2 token deployed to: ${this.crossChainTestHarness.l2Token.address}`);
150
138
 
151
- return this.toCrossChainContext();
139
+ return this.crossChainTestHarness.toCrossChainContext();
152
140
  },
153
- async crossChainContext => {
154
- this.l2Token = await TokenContract.at(crossChainContext.l2Token, this.user1Wallet);
155
- this.l2Bridge = await TokenBridgeContract.at(crossChainContext.l2Bridge, this.user1Wallet);
141
+ crossChainContext => {
142
+ this.l2Token = TokenContract.at(crossChainContext.l2Token, this.wallet);
143
+ this.l2Bridge = TokenBridgeContract.at(crossChainContext.l2Bridge, this.wallet);
156
144
 
157
145
  // There is an issue with the reviver so we are getting strings sometimes. Working around it here.
158
146
  this.ethAccount = EthAddress.fromString(crossChainContext.ethAccount.toString());
159
- this.ownerAddress = AztecAddress.fromString(crossChainContext.ownerAddress.toString());
160
147
  const tokenPortalAddress = EthAddress.fromString(crossChainContext.tokenPortal.toString());
161
148
 
162
- const { publicClient, walletClient } = createL1Clients(this.aztecNodeConfig.l1RpcUrls, MNEMONIC);
149
+ const l1Client = createExtendedL1Client(this.aztecNodeConfig.l1RpcUrls, MNEMONIC);
163
150
 
164
151
  const inbox = getContract({
165
152
  address: this.aztecNodeConfig.l1Contracts.inboxAddress.toString(),
166
153
  abi: InboxAbi,
167
- client: walletClient,
154
+ client: l1Client,
168
155
  });
169
156
  const outbox = getContract({
170
157
  address: this.aztecNodeConfig.l1Contracts.outboxAddress.toString(),
171
158
  abi: OutboxAbi,
172
- client: walletClient,
159
+ client: l1Client,
173
160
  });
174
161
 
175
162
  this.crossChainTestHarness = new CrossChainTestHarness(
176
163
  this.aztecNode,
177
- this.pxe,
178
164
  this.logger,
179
165
  this.l2Token,
180
166
  this.l2Bridge,
181
167
  this.ethAccount,
182
168
  tokenPortalAddress,
183
169
  crossChainContext.underlying,
184
- publicClient,
185
- walletClient,
170
+ l1Client,
186
171
  this.aztecNodeConfig.l1Contracts,
187
- this.user1Wallet,
172
+ this.wallet,
173
+ this.ownerAddress,
188
174
  );
189
175
 
190
- this.publicClient = publicClient;
176
+ this.l1Client = l1Client;
191
177
  this.inbox = inbox;
192
178
  this.outbox = outbox;
179
+ return Promise.resolve();
193
180
  },
194
181
  );
195
182
  }
196
-
197
- toCrossChainContext(): CrossChainContext {
198
- return {
199
- l2Token: this.crossChainTestHarness.l2Token.address,
200
- l2Bridge: this.crossChainTestHarness.l2Bridge.address,
201
- tokenPortal: this.crossChainTestHarness.tokenPortalAddress,
202
- underlying: this.crossChainTestHarness.underlyingERC20Address,
203
- ethAccount: this.crossChainTestHarness.ethAccount,
204
- ownerAddress: this.crossChainTestHarness.ownerAddress,
205
- inbox: this.crossChainTestHarness.l1ContractAddresses.inboxAddress,
206
- outbox: this.crossChainTestHarness.l1ContractAddresses.outboxAddress,
207
- };
208
- }
209
183
  }
210
-
211
- type CrossChainContext = {
212
- l2Token: AztecAddress;
213
- l2Bridge: AztecAddress;
214
- tokenPortal: EthAddress;
215
- underlying: EthAddress;
216
- ethAccount: EthAddress;
217
- ownerAddress: AztecAddress;
218
- inbox: EthAddress;
219
- outbox: EthAddress;
220
- };
@@ -1,19 +1,14 @@
1
- import { getSchnorrWallet } from '@aztec/accounts/schnorr';
2
- import {
3
- type AccountWallet,
4
- type AztecAddress,
5
- type AztecNode,
6
- type ContractArtifact,
7
- type ContractBase,
8
- Fr,
9
- type Logger,
10
- type PXE,
11
- type PublicKeys,
12
- type Wallet,
13
- createLogger,
14
- getContractInstanceFromDeployParams,
15
- } from '@aztec/aztec.js';
16
- import type { StatefulTestContract } from '@aztec/noir-contracts.js/StatefulTest';
1
+ import type { ContractArtifact } from '@aztec/aztec.js/abi';
2
+ import type { AztecAddress } from '@aztec/aztec.js/addresses';
3
+ import { type ContractBase, getContractInstanceFromInstantiationParams } from '@aztec/aztec.js/contracts';
4
+ import { Fr } from '@aztec/aztec.js/fields';
5
+ import type { PublicKeys } from '@aztec/aztec.js/keys';
6
+ import { type Logger, createLogger } from '@aztec/aztec.js/log';
7
+ import type { AztecNode } from '@aztec/aztec.js/node';
8
+ import type { Wallet } from '@aztec/aztec.js/wallet';
9
+ import type { StatefulTestContract } from '@aztec/noir-test-contracts.js/StatefulTest';
10
+ import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
11
+ import type { TestWallet } from '@aztec/test-wallet/server';
17
12
 
18
13
  import { type ISnapshotManager, createSnapshotManager, deployAccounts } from '../fixtures/snapshot_manager.js';
19
14
 
@@ -21,12 +16,11 @@ const { E2E_DATA_PATH: dataPath } = process.env;
21
16
 
22
17
  export class DeployTest {
23
18
  private snapshotManager: ISnapshotManager;
24
- private wallets: AccountWallet[] = [];
25
-
26
19
  public logger: Logger;
27
- public pxe!: PXE;
28
- public wallet!: AccountWallet;
20
+ public wallet!: TestWallet;
21
+ public defaultAccountAddress!: AztecAddress;
29
22
  public aztecNode!: AztecNode;
23
+ public aztecNodeAdmin!: AztecNodeAdmin;
30
24
 
31
25
  constructor(testName: string) {
32
26
  this.logger = createLogger(`e2e:e2e_deploy_contract:${testName}`);
@@ -36,7 +30,8 @@ export class DeployTest {
36
30
  async setup() {
37
31
  await this.applyInitialAccountSnapshot();
38
32
  const context = await this.snapshotManager.setup();
39
- ({ pxe: this.pxe, aztecNode: this.aztecNode } = context);
33
+ ({ aztecNode: this.aztecNode, wallet: this.wallet } = context);
34
+ this.aztecNodeAdmin = context.aztecNode;
40
35
  return this;
41
36
  }
42
37
 
@@ -45,15 +40,10 @@ export class DeployTest {
45
40
  }
46
41
 
47
42
  private async applyInitialAccountSnapshot() {
48
- await this.snapshotManager.snapshot(
49
- 'initial_account',
50
- deployAccounts(1, this.logger),
51
- async ({ deployedAccounts }, { pxe }) => {
52
- this.wallets = await Promise.all(deployedAccounts.map(a => getSchnorrWallet(pxe, a.address, a.signingKey)));
53
- this.wallets.forEach((w, i) => this.logger.verbose(`Wallet ${i} address: ${w.getAddress()}`));
54
- this.wallet = this.wallets[0];
55
- },
56
- );
43
+ await this.snapshotManager.snapshot('initial_account', deployAccounts(1, this.logger), ({ deployedAccounts }) => {
44
+ this.defaultAccountAddress = deployedAccounts[0].address;
45
+ return Promise.resolve();
46
+ });
57
47
  }
58
48
 
59
49
  async registerContract<T extends ContractBase>(
@@ -68,26 +58,21 @@ export class DeployTest {
68
58
  } = {},
69
59
  ): Promise<T> {
70
60
  const { salt, publicKeys, initArgs, constructorName, deployer } = opts;
71
- const instance = await getContractInstanceFromDeployParams(contractArtifact.artifact, {
61
+ const instance = await getContractInstanceFromInstantiationParams(contractArtifact.artifact, {
72
62
  constructorArgs: initArgs ?? [],
73
63
  constructorArtifact: constructorName,
74
- salt,
64
+ salt: salt ?? Fr.random(),
75
65
  publicKeys,
76
66
  deployer,
77
67
  });
78
- await wallet.registerContract({ artifact: contractArtifact.artifact, instance });
68
+ await wallet.registerContract(instance, contractArtifact.artifact);
79
69
  return contractArtifact.at(instance.address, wallet);
80
70
  }
81
-
82
- async registerRandomAccount(): Promise<AztecAddress> {
83
- const completeAddress = await this.pxe.registerAccount(Fr.random(), Fr.random());
84
- return completeAddress.address;
85
- }
86
71
  }
87
72
 
88
73
  export type StatefulContractCtorArgs = Parameters<StatefulTestContract['methods']['constructor']>;
89
74
 
90
75
  export type ContractArtifactClass<T extends ContractBase> = {
91
- at(address: AztecAddress, wallet: Wallet): Promise<T>;
76
+ at(address: AztecAddress, wallet: Wallet): T;
92
77
  artifact: ContractArtifact;
93
78
  };