@aztec/end-to-end 0.0.1-commit.9b94fc1 → 0.0.1-commit.a072138

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 (197) 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 +14 -15
  5. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  6. package/dest/bench/client_flows/client_flows_benchmark.js +123 -136
  7. package/dest/bench/client_flows/data_extractor.js +3 -1
  8. package/dest/bench/utils.d.ts +9 -8
  9. package/dest/bench/utils.d.ts.map +1 -1
  10. package/dest/bench/utils.js +27 -18
  11. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +6 -7
  12. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  13. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +96 -112
  14. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +19 -13
  15. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  16. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +91 -71
  17. package/dest/e2e_deploy_contract/deploy_test.d.ts +4 -3
  18. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  19. package/dest/e2e_deploy_contract/deploy_test.js +18 -13
  20. package/dest/e2e_epochs/epochs_test.d.ts +17 -9
  21. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  22. package/dest/e2e_epochs/epochs_test.js +44 -20
  23. package/dest/e2e_fees/bridging_race.notest.js +4 -6
  24. package/dest/e2e_fees/fees_test.d.ts +20 -16
  25. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  26. package/dest/e2e_fees/fees_test.js +126 -141
  27. package/dest/e2e_l1_publisher/write_json.d.ts +4 -3
  28. package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
  29. package/dest/e2e_l1_publisher/write_json.js +14 -16
  30. package/dest/e2e_multi_validator/utils.js +1 -1
  31. package/dest/e2e_nested_contract/nested_contract_test.d.ts +6 -9
  32. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  33. package/dest/e2e_nested_contract/nested_contract_test.js +31 -39
  34. package/dest/e2e_p2p/inactivity_slash_test.d.ts +4 -4
  35. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
  36. package/dest/e2e_p2p/inactivity_slash_test.js +6 -9
  37. package/dest/e2e_p2p/p2p_network.d.ts +13 -11
  38. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  39. package/dest/e2e_p2p/p2p_network.js +120 -111
  40. package/dest/e2e_p2p/reqresp/utils.d.ts +22 -0
  41. package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -0
  42. package/dest/e2e_p2p/reqresp/utils.js +153 -0
  43. package/dest/e2e_p2p/shared.d.ts +7 -7
  44. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  45. package/dest/e2e_p2p/shared.js +13 -20
  46. package/dest/e2e_token_contract/token_contract_test.d.ts +16 -9
  47. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  48. package/dest/e2e_token_contract/token_contract_test.js +89 -91
  49. package/dest/fixtures/e2e_prover_test.d.ts +10 -18
  50. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  51. package/dest/fixtures/e2e_prover_test.js +91 -103
  52. package/dest/fixtures/fixtures.d.ts +2 -3
  53. package/dest/fixtures/fixtures.d.ts.map +1 -1
  54. package/dest/fixtures/fixtures.js +2 -3
  55. package/dest/fixtures/get_acvm_config.js +1 -1
  56. package/dest/fixtures/l1_to_l2_messaging.d.ts +4 -3
  57. package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
  58. package/dest/fixtures/l1_to_l2_messaging.js +2 -2
  59. package/dest/fixtures/setup.d.ts +218 -0
  60. package/dest/fixtures/setup.d.ts.map +1 -0
  61. package/dest/fixtures/setup.js +695 -0
  62. package/dest/fixtures/setup_p2p_test.d.ts +4 -5
  63. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  64. package/dest/fixtures/setup_p2p_test.js +27 -22
  65. package/dest/fixtures/token_utils.d.ts +1 -1
  66. package/dest/fixtures/token_utils.d.ts.map +1 -1
  67. package/dest/fixtures/token_utils.js +7 -4
  68. package/dest/fixtures/utils.d.ts +5 -637
  69. package/dest/fixtures/utils.d.ts.map +1 -1
  70. package/dest/fixtures/utils.js +4 -647
  71. package/dest/fixtures/web3signer.js +1 -1
  72. package/dest/fixtures/with_telemetry_utils.d.ts +2 -2
  73. package/dest/fixtures/with_telemetry_utils.d.ts.map +1 -1
  74. package/dest/fixtures/with_telemetry_utils.js +2 -2
  75. package/dest/quality_of_service/grafana_client.d.ts +41 -0
  76. package/dest/quality_of_service/grafana_client.d.ts.map +1 -0
  77. package/dest/quality_of_service/{alert_checker.js → grafana_client.js} +1 -1
  78. package/dest/quality_of_service/prometheus_client.d.ts +38 -0
  79. package/dest/quality_of_service/prometheus_client.d.ts.map +1 -0
  80. package/dest/quality_of_service/prometheus_client.js +67 -0
  81. package/dest/shared/cross_chain_test_harness.d.ts +18 -6
  82. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  83. package/dest/shared/cross_chain_test_harness.js +14 -14
  84. package/dest/shared/gas_portal_test_harness.d.ts +12 -2
  85. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  86. package/dest/shared/gas_portal_test_harness.js +1 -1
  87. package/dest/shared/index.d.ts +2 -2
  88. package/dest/shared/index.d.ts.map +1 -1
  89. package/dest/shared/submit-transactions.d.ts +3 -3
  90. package/dest/shared/submit-transactions.d.ts.map +1 -1
  91. package/dest/shared/submit-transactions.js +9 -11
  92. package/dest/shared/uniswap_l1_l2.d.ts +3 -27
  93. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  94. package/dest/shared/uniswap_l1_l2.js +55 -35
  95. package/dest/simulators/lending_simulator.d.ts +6 -2
  96. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  97. package/dest/simulators/lending_simulator.js +2 -2
  98. package/dest/spartan/setup_test_wallets.d.ts +4 -3
  99. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  100. package/dest/spartan/setup_test_wallets.js +63 -35
  101. package/dest/spartan/tx_metrics.d.ts +88 -0
  102. package/dest/spartan/tx_metrics.d.ts.map +1 -0
  103. package/dest/spartan/tx_metrics.js +422 -0
  104. package/dest/spartan/utils/bot.d.ts +27 -0
  105. package/dest/spartan/utils/bot.d.ts.map +1 -0
  106. package/dest/spartan/utils/bot.js +141 -0
  107. package/dest/spartan/utils/chaos.d.ts +79 -0
  108. package/dest/spartan/utils/chaos.d.ts.map +1 -0
  109. package/dest/spartan/utils/chaos.js +142 -0
  110. package/dest/spartan/utils/clients.d.ts +39 -0
  111. package/dest/spartan/utils/clients.d.ts.map +1 -0
  112. package/dest/spartan/utils/clients.js +90 -0
  113. package/dest/spartan/utils/config.d.ts +36 -0
  114. package/dest/spartan/utils/config.d.ts.map +1 -0
  115. package/dest/spartan/utils/config.js +20 -0
  116. package/dest/spartan/utils/health.d.ts +63 -0
  117. package/dest/spartan/utils/health.d.ts.map +1 -0
  118. package/dest/spartan/utils/health.js +202 -0
  119. package/dest/spartan/utils/helm.d.ts +15 -0
  120. package/dest/spartan/utils/helm.d.ts.map +1 -0
  121. package/dest/spartan/utils/helm.js +47 -0
  122. package/dest/spartan/utils/index.d.ts +9 -0
  123. package/dest/spartan/utils/index.d.ts.map +1 -0
  124. package/dest/spartan/utils/index.js +18 -0
  125. package/dest/spartan/utils/k8s.d.ts +126 -0
  126. package/dest/spartan/utils/k8s.d.ts.map +1 -0
  127. package/dest/spartan/utils/k8s.js +375 -0
  128. package/dest/spartan/utils/nodes.d.ts +41 -0
  129. package/dest/spartan/utils/nodes.d.ts.map +1 -0
  130. package/dest/spartan/utils/nodes.js +461 -0
  131. package/dest/spartan/utils/scripts.d.ts +16 -0
  132. package/dest/spartan/utils/scripts.d.ts.map +1 -0
  133. package/dest/spartan/utils/scripts.js +66 -0
  134. package/dest/spartan/utils.d.ts +2 -218
  135. package/dest/spartan/utils.d.ts.map +1 -1
  136. package/dest/spartan/utils.js +1 -749
  137. package/package.json +42 -41
  138. package/src/bench/client_flows/benchmark.ts +24 -2
  139. package/src/bench/client_flows/client_flows_benchmark.ts +145 -208
  140. package/src/bench/client_flows/data_extractor.ts +1 -1
  141. package/src/bench/utils.ts +30 -20
  142. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +104 -142
  143. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +140 -125
  144. package/src/e2e_deploy_contract/deploy_test.ts +21 -14
  145. package/src/e2e_epochs/epochs_test.ts +92 -53
  146. package/src/e2e_fees/bridging_race.notest.ts +4 -10
  147. package/src/e2e_fees/fees_test.ts +179 -221
  148. package/src/e2e_l1_publisher/write_json.ts +16 -16
  149. package/src/e2e_multi_validator/utils.ts +1 -1
  150. package/src/e2e_nested_contract/nested_contract_test.ts +33 -56
  151. package/src/e2e_p2p/inactivity_slash_test.ts +9 -12
  152. package/src/e2e_p2p/p2p_network.ts +180 -183
  153. package/src/e2e_p2p/reqresp/utils.ts +207 -0
  154. package/src/e2e_p2p/shared.ts +31 -28
  155. package/src/e2e_token_contract/token_contract_test.ts +103 -118
  156. package/src/fixtures/e2e_prover_test.ts +104 -141
  157. package/src/fixtures/fixtures.ts +2 -5
  158. package/src/fixtures/get_acvm_config.ts +1 -1
  159. package/src/fixtures/l1_to_l2_messaging.ts +4 -2
  160. package/src/fixtures/setup.ts +1017 -0
  161. package/src/fixtures/setup_p2p_test.ts +18 -23
  162. package/src/fixtures/token_utils.ts +6 -5
  163. package/src/fixtures/utils.ts +27 -966
  164. package/src/fixtures/web3signer.ts +1 -1
  165. package/src/fixtures/with_telemetry_utils.ts +2 -2
  166. package/src/quality_of_service/{alert_checker.ts → grafana_client.ts} +1 -1
  167. package/src/quality_of_service/prometheus_client.ts +113 -0
  168. package/src/shared/cross_chain_test_harness.ts +19 -36
  169. package/src/shared/gas_portal_test_harness.ts +2 -2
  170. package/src/shared/index.ts +1 -1
  171. package/src/shared/submit-transactions.ts +9 -15
  172. package/src/shared/uniswap_l1_l2.ts +65 -86
  173. package/src/simulators/lending_simulator.ts +3 -3
  174. package/src/spartan/DEVELOP.md +7 -0
  175. package/src/spartan/setup_test_wallets.ts +81 -26
  176. package/src/spartan/tx_metrics.ts +376 -0
  177. package/src/spartan/utils/bot.ts +185 -0
  178. package/src/spartan/utils/chaos.ts +253 -0
  179. package/src/spartan/utils/clients.ts +100 -0
  180. package/src/spartan/utils/config.ts +26 -0
  181. package/src/spartan/utils/health.ts +255 -0
  182. package/src/spartan/utils/helm.ts +84 -0
  183. package/src/spartan/utils/index.ts +64 -0
  184. package/src/spartan/utils/k8s.ts +527 -0
  185. package/src/spartan/utils/nodes.ts +538 -0
  186. package/src/spartan/utils/scripts.ts +63 -0
  187. package/src/spartan/utils.ts +1 -942
  188. package/dest/fixtures/setup_l1_contracts.d.ts +0 -477
  189. package/dest/fixtures/setup_l1_contracts.d.ts.map +0 -1
  190. package/dest/fixtures/setup_l1_contracts.js +0 -17
  191. package/dest/fixtures/snapshot_manager.d.ts +0 -95
  192. package/dest/fixtures/snapshot_manager.d.ts.map +0 -1
  193. package/dest/fixtures/snapshot_manager.js +0 -505
  194. package/dest/quality_of_service/alert_checker.d.ts +0 -41
  195. package/dest/quality_of_service/alert_checker.d.ts.map +0 -1
  196. package/src/fixtures/setup_l1_contracts.ts +0 -26
  197. package/src/fixtures/snapshot_manager.ts +0 -665
@@ -1,4 +1,4 @@
1
- import { randomBytes } from '@aztec/foundation/crypto';
1
+ import { randomBytes } from '@aztec/foundation/crypto/random';
2
2
  import { retryUntil } from '@aztec/foundation/retry';
3
3
  import { sleep } from '@aztec/foundation/sleep';
4
4
  import { RemoteSigner } from '@aztec/node-keystore';
@@ -7,12 +7,12 @@ import {
7
7
  } from '@aztec/telemetry-client';
8
8
  import { OTelPinoStream } from '@aztec/telemetry-client/otel-pino-stream';
9
9
 
10
- export function getEndToEndTestTelemetryClient(metricsPort?: number): TelemetryClient {
10
+ export async function getEndToEndTestTelemetryClient(metricsPort?: number): Promise<TelemetryClient> {
11
11
  if (metricsPort) {
12
12
  const otelStream = new OTelPinoStream({ levels });
13
13
  registerLoggingStream(otelStream);
14
14
  }
15
- return initTelemetryClient(getEndToEndTestTelemetryConfig(metricsPort));
15
+ return await initTelemetryClient(getEndToEndTestTelemetryConfig(metricsPort));
16
16
  }
17
17
 
18
18
  /**
@@ -25,7 +25,7 @@ const DEFAULT_CONFIG: AlertCheckerConfig = {
25
25
  grafanaCredentials: 'admin:admin',
26
26
  };
27
27
 
28
- export class AlertChecker {
28
+ export class GrafanaClient {
29
29
  private config: AlertCheckerConfig;
30
30
  private logger: Logger;
31
31
 
@@ -0,0 +1,113 @@
1
+ export type PromteheusClientOptions = {
2
+ server: URL;
3
+ };
4
+
5
+ export class PrometheusClient {
6
+ constructor(
7
+ private config: PromteheusClientOptions,
8
+ private httpClient: typeof fetch = fetch,
9
+ ) {}
10
+
11
+ public async querySingleValue(query: string, time = new Date()): Promise<number> {
12
+ const resp = await this.queryRaw(query, time);
13
+ if (resp.status === 'success') {
14
+ if (resp.data.resultType === 'vector') {
15
+ if (resp.data.result.length === 0) {
16
+ return 0;
17
+ }
18
+ const [_, value] = resp.data.result[0].value;
19
+ return parseFloat(value);
20
+ }
21
+ }
22
+
23
+ throw new TypeError('Unsupported response body', { cause: JSON.stringify(resp) });
24
+ }
25
+
26
+ public queryRaw(query: string, time = new Date()): Promise<PrometheusResponse> {
27
+ const searchParams = new URLSearchParams();
28
+ searchParams.set('query', query);
29
+ searchParams.set('time', String(Math.trunc(time.getTime() / 1000)));
30
+ searchParams.set('limit', '10');
31
+
32
+ return this.callPrometheus('query', searchParams);
33
+ }
34
+
35
+ public queryRangeRaw(
36
+ query: string,
37
+ step: PrometheusDuration,
38
+ start: Date,
39
+ end = new Date(),
40
+ ): Promise<PrometheusResponse> {
41
+ const searchParams = new URLSearchParams();
42
+ searchParams.set('query', query);
43
+ searchParams.set('step', step);
44
+ searchParams.set('start', String(Math.trunc(start.getTime() / 1000)));
45
+ searchParams.set('end', String(Math.trunc(end.getTime() / 1000)));
46
+ searchParams.set('limit', '10');
47
+
48
+ return this.callPrometheus('query_range', searchParams);
49
+ }
50
+
51
+ private async callPrometheus(api: string, searchParams: URLSearchParams): Promise<PrometheusResponse> {
52
+ const url = new URL('api/v1/' + api, this.config.server);
53
+ for (const [name, value] of searchParams) {
54
+ url.searchParams.append(name, value);
55
+ }
56
+
57
+ const resp = await this.httpClient(url, { method: 'GET' });
58
+ if (!resp.ok || resp.status !== 200) {
59
+ throw new Error('Invalid HTTP response from Prometheus', {
60
+ cause: {
61
+ url,
62
+ status: resp.status,
63
+ statusText: resp.statusText,
64
+ },
65
+ });
66
+ }
67
+
68
+ const body = await resp.json();
69
+ if ('status' in body && (body.status === 'error' || body.status === 'success')) {
70
+ return body;
71
+ }
72
+
73
+ throw new Error('Invalid response from Prometheus', {
74
+ cause: {
75
+ url,
76
+ body,
77
+ },
78
+ });
79
+ }
80
+ }
81
+
82
+ export type PrometheusDuration = `${number}s` | `${number}m` | `${number}h`;
83
+
84
+ export type PrometheusData =
85
+ | {
86
+ resultType: 'vector';
87
+ result: Array<{
88
+ metric: unknown;
89
+ value: [unixTimestamp: number, value: string];
90
+ }>;
91
+ }
92
+ | {
93
+ resultType: 'matrix';
94
+ result: Array<{
95
+ metric: unknown;
96
+ values: [unixTimestamp: number, value: string];
97
+ }>;
98
+ }
99
+ | {
100
+ resultType: 'scalar' | 'string';
101
+ result: unknown;
102
+ };
103
+
104
+ export type PrometheusResponse =
105
+ | {
106
+ status: 'error';
107
+ errorType: string;
108
+ error: string;
109
+ }
110
+ | {
111
+ status: 'success';
112
+ data: PrometheusData;
113
+ };
@@ -13,9 +13,11 @@ import type { AztecNode } from '@aztec/aztec.js/node';
13
13
  import type { SiblingPath } from '@aztec/aztec.js/trees';
14
14
  import type { TxReceipt } from '@aztec/aztec.js/tx';
15
15
  import type { Wallet } from '@aztec/aztec.js/wallet';
16
- import { type ExtendedViemWalletClient, type L1ContractAddresses, deployL1Contract } from '@aztec/ethereum';
16
+ import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
17
+ import type { L1ContractAddresses } from '@aztec/ethereum/l1-contract-addresses';
18
+ import type { ExtendedViemWalletClient } from '@aztec/ethereum/types';
19
+ import { EpochNumber } from '@aztec/foundation/branded-types';
17
20
  import { retryUntil } from '@aztec/foundation/retry';
18
- import type { FieldsOf } from '@aztec/foundation/types';
19
21
  import { TestERC20Abi, TokenPortalAbi, TokenPortalBytecode } from '@aztec/l1-artifacts';
20
22
  import { TokenContract } from '@aztec/noir-contracts.js/Token';
21
23
  import { TokenBridgeContract } from '@aztec/noir-contracts.js/TokenBridge';
@@ -71,14 +73,10 @@ export async function deployAndInitializeTokenAndBridgeContracts(
71
73
  });
72
74
 
73
75
  // deploy l2 token
74
- const token = await TokenContract.deploy(wallet, owner, 'TokenName', 'TokenSymbol', 18)
75
- .send({ from: owner })
76
- .deployed();
76
+ const token = await TokenContract.deploy(wallet, owner, 'TokenName', 'TokenSymbol', 18).send({ from: owner });
77
77
 
78
78
  // deploy l2 token bridge and attach to the portal
79
- const bridge = await TokenBridgeContract.deploy(wallet, token.address, tokenPortalAddress)
80
- .send({ from: owner })
81
- .deployed();
79
+ const bridge = await TokenBridgeContract.deploy(wallet, token.address, tokenPortalAddress).send({ from: owner });
82
80
 
83
81
  if ((await token.methods.get_admin().simulate({ from: owner })) !== owner.toBigInt()) {
84
82
  throw new Error(`Token admin is not ${owner}`);
@@ -89,7 +87,7 @@ export async function deployAndInitializeTokenAndBridgeContracts(
89
87
  }
90
88
 
91
89
  // make the bridge a minter on the token:
92
- await token.methods.set_minter(bridge.address, true).send({ from: owner }).wait();
90
+ await token.methods.set_minter(bridge.address, true).send({ from: owner });
93
91
  if ((await token.methods.is_minter(bridge.address).simulate({ from: owner })) === 1n) {
94
92
  throw new Error(`Bridge is not a minter`);
95
93
  }
@@ -232,7 +230,7 @@ export class CrossChainTestHarness {
232
230
 
233
231
  async mintTokensPublicOnL2(amount: bigint) {
234
232
  this.logger.info('Minting tokens on L2 publicly');
235
- await this.l2Token.methods.mint_to_public(this.ownerAddress, amount).send({ from: this.ownerAddress }).wait();
233
+ await this.l2Token.methods.mint_to_public(this.ownerAddress, amount).send({ from: this.ownerAddress });
236
234
  }
237
235
 
238
236
  async mintTokensPrivateOnL2(amount: bigint) {
@@ -243,8 +241,7 @@ export class CrossChainTestHarness {
243
241
  // send a transfer tx to force through rollup with the message included
244
242
  await this.l2Token.methods
245
243
  .transfer_in_public(this.ownerAddress, receiverAddress, transferAmount, 0)
246
- .send({ from: this.ownerAddress })
247
- .wait();
244
+ .send({ from: this.ownerAddress });
248
245
  }
249
246
 
250
247
  async consumeMessageOnAztecAndMintPrivately(
@@ -254,8 +251,7 @@ export class CrossChainTestHarness {
254
251
  const { recipient, claimAmount, claimSecret: secretForL2MessageConsumption, messageLeafIndex } = claim;
255
252
  await this.l2Bridge.methods
256
253
  .claim_private(recipient, claimAmount, secretForL2MessageConsumption, messageLeafIndex)
257
- .send({ from: this.ownerAddress })
258
- .wait();
254
+ .send({ from: this.ownerAddress });
259
255
  }
260
256
 
261
257
  async consumeMessageOnAztecAndMintPublicly(
@@ -265,28 +261,25 @@ export class CrossChainTestHarness {
265
261
  const { claimAmount, claimSecret, messageLeafIndex } = claim;
266
262
  await this.l2Bridge.methods
267
263
  .claim_public(this.ownerAddress, claimAmount, claimSecret, messageLeafIndex)
268
- .send({ from: this.ownerAddress })
269
- .wait();
264
+ .send({ from: this.ownerAddress });
270
265
  }
271
266
 
272
267
  async withdrawPrivateFromAztecToL1(
273
268
  withdrawAmount: bigint,
274
269
  authwitNonce: Fr = Fr.ZERO,
275
270
  authWitness: AuthWitness,
276
- ): Promise<FieldsOf<TxReceipt>> {
271
+ ): Promise<TxReceipt> {
277
272
  const withdrawReceipt = await this.l2Bridge.methods
278
273
  .exit_to_l1_private(this.l2Token.address, this.ethAccount, withdrawAmount, EthAddress.ZERO, authwitNonce)
279
- .send({ authWitnesses: [authWitness], from: this.ownerAddress })
280
- .wait();
274
+ .send({ authWitnesses: [authWitness], from: this.ownerAddress });
281
275
 
282
276
  return withdrawReceipt;
283
277
  }
284
278
 
285
- async withdrawPublicFromAztecToL1(withdrawAmount: bigint, authwitNonce: Fr = Fr.ZERO): Promise<FieldsOf<TxReceipt>> {
279
+ async withdrawPublicFromAztecToL1(withdrawAmount: bigint, authwitNonce: Fr = Fr.ZERO): Promise<TxReceipt> {
286
280
  const withdrawReceipt = await this.l2Bridge.methods
287
281
  .exit_to_l1_public(this.ethAccount, withdrawAmount, EthAddress.ZERO, authwitNonce)
288
- .send({ from: this.ownerAddress })
289
- .wait();
282
+ .send({ from: this.ownerAddress });
290
283
 
291
284
  return withdrawReceipt;
292
285
  }
@@ -321,33 +314,23 @@ export class CrossChainTestHarness {
321
314
 
322
315
  withdrawFundsFromBridgeOnL1(
323
316
  amount: bigint,
324
- blockNumber: number | bigint,
317
+ epochNumber: EpochNumber,
325
318
  messageIndex: bigint,
326
319
  siblingPath: SiblingPath<number>,
327
320
  ) {
328
- return this.l1TokenPortalManager.withdrawFunds(
329
- amount,
330
- this.ethAccount,
331
- BigInt(blockNumber),
332
- messageIndex,
333
- siblingPath,
334
- );
321
+ return this.l1TokenPortalManager.withdrawFunds(amount, this.ethAccount, epochNumber, messageIndex, siblingPath);
335
322
  }
336
323
 
337
324
  async transferToPrivateOnL2(shieldAmount: bigint) {
338
325
  this.logger.info('Transferring to private on L2');
339
- await this.l2Token.methods
340
- .transfer_to_private(this.ownerAddress, shieldAmount)
341
- .send({ from: this.ownerAddress })
342
- .wait();
326
+ await this.l2Token.methods.transfer_to_private(this.ownerAddress, shieldAmount).send({ from: this.ownerAddress });
343
327
  }
344
328
 
345
329
  async transferToPublicOnL2(amount: bigint, authwitNonce = Fr.ZERO) {
346
330
  this.logger.info('Transferring tokens to public');
347
331
  await this.l2Token.methods
348
332
  .transfer_to_public(this.ownerAddress, this.ownerAddress, amount, authwitNonce)
349
- .send({ from: this.ownerAddress })
350
- .wait();
333
+ .send({ from: this.ownerAddress });
351
334
  }
352
335
 
353
336
  /**
@@ -4,7 +4,7 @@ import { Fr } from '@aztec/aztec.js/fields';
4
4
  import type { Logger } from '@aztec/aztec.js/log';
5
5
  import type { AztecNode } from '@aztec/aztec.js/node';
6
6
  import type { Wallet } from '@aztec/aztec.js/wallet';
7
- import type { ExtendedViemWalletClient } from '@aztec/ethereum';
7
+ import type { ExtendedViemWalletClient } from '@aztec/ethereum/types';
8
8
  import { retryUntil } from '@aztec/foundation/retry';
9
9
  import { FeeJuiceContract } from '@aztec/noir-contracts.js/FeeJuice';
10
10
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
@@ -127,7 +127,7 @@ export class GasBridgingTestHarness implements IGasBridgingTestHarness {
127
127
  async consumeMessageOnAztecAndClaimPrivately(owner: AztecAddress, claimer: AztecAddress, claim: L2AmountClaim) {
128
128
  this.logger.info('Consuming messages on L2 Privately');
129
129
  const { claimAmount, claimSecret, messageLeafIndex } = claim;
130
- await this.feeJuice.methods.claim(owner, claimAmount, claimSecret, messageLeafIndex).send({ from: claimer }).wait();
130
+ await this.feeJuice.methods.claim(owner, claimAmount, claimSecret, messageLeafIndex).send({ from: claimer });
131
131
  }
132
132
 
133
133
  async getL2PublicBalanceOf(owner: AztecAddress) {
@@ -1 +1 @@
1
- export { uniswapL1L2TestSuite, type UniswapSetupContext } from './uniswap_l1_l2.js';
1
+ export { uniswapL1L2TestSuite } from './uniswap_l1_l2.js';
@@ -1,8 +1,8 @@
1
1
  import { AztecAddress } from '@aztec/aztec.js/addresses';
2
- import type { SentTx } from '@aztec/aztec.js/contracts';
2
+ import { NO_WAIT } from '@aztec/aztec.js/contracts';
3
3
  import { Fr, GrumpkinScalar } from '@aztec/aztec.js/fields';
4
4
  import type { Logger } from '@aztec/aztec.js/log';
5
- import { TxStatus } from '@aztec/aztec.js/tx';
5
+ import { TxHash, type TxReceipt, TxStatus } from '@aztec/aztec.js/tx';
6
6
  import { times } from '@aztec/foundation/collection';
7
7
  import type { TestWallet } from '@aztec/test-wallet/server';
8
8
 
@@ -12,26 +12,20 @@ export const submitTxsTo = async (
12
12
  submitter: AztecAddress,
13
13
  numTxs: number,
14
14
  logger: Logger,
15
- ): Promise<SentTx[]> => {
16
- const txs: SentTx[] = [];
15
+ ): Promise<TxHash[]> => {
16
+ const txHashes: TxHash[] = [];
17
17
  await Promise.all(
18
18
  times(numTxs, async () => {
19
19
  const accountManager = await wallet.createSchnorrAccount(Fr.random(), Fr.random(), GrumpkinScalar.random());
20
20
  const deployMethod = await accountManager.getDeployMethod();
21
- const tx = deployMethod.send({ from: submitter });
22
- const txHash = await tx.getTxHash();
21
+ const txHash = await deployMethod.send({ from: submitter, wait: NO_WAIT });
23
22
 
24
23
  logger.info(`Tx sent with hash ${txHash}`);
25
- const receipt = await tx.getReceipt();
26
- expect(receipt).toEqual(
27
- expect.objectContaining({
28
- status: TxStatus.PENDING,
29
- error: '',
30
- }),
31
- );
24
+ const receipt: TxReceipt = await wallet.getTxReceipt(txHash);
25
+ expect(receipt.status).toBe(TxStatus.PENDING);
32
26
  logger.info(`Receipt received for ${txHash}`);
33
- txs.push(tx);
27
+ txHashes.push(txHash);
34
28
  }),
35
29
  );
36
- return txs;
30
+ return txHashes;
37
31
  };