@aztec/end-to-end 4.0.0-nightly.20260112 → 4.0.0-nightly.20260114

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 (74) hide show
  1. package/dest/bench/client_flows/client_flows_benchmark.d.ts +10 -10
  2. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  3. package/dest/bench/client_flows/client_flows_benchmark.js +98 -133
  4. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +5 -6
  5. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  6. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +94 -112
  7. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +5 -5
  8. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  9. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +60 -62
  10. package/dest/e2e_deploy_contract/deploy_test.d.ts +4 -3
  11. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  12. package/dest/e2e_deploy_contract/deploy_test.js +15 -13
  13. package/dest/e2e_epochs/epochs_test.js +1 -1
  14. package/dest/e2e_fees/bridging_race.notest.js +2 -4
  15. package/dest/e2e_fees/fees_test.d.ts +11 -11
  16. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  17. package/dest/e2e_fees/fees_test.js +118 -139
  18. package/dest/e2e_l1_publisher/write_json.d.ts +1 -1
  19. package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
  20. package/dest/e2e_l1_publisher/write_json.js +1 -0
  21. package/dest/e2e_nested_contract/nested_contract_test.d.ts +5 -8
  22. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  23. package/dest/e2e_nested_contract/nested_contract_test.js +29 -40
  24. package/dest/e2e_p2p/inactivity_slash_test.js +1 -1
  25. package/dest/e2e_p2p/p2p_network.d.ts +5 -3
  26. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  27. package/dest/e2e_p2p/p2p_network.js +99 -102
  28. package/dest/e2e_token_contract/token_contract_test.d.ts +15 -8
  29. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  30. package/dest/e2e_token_contract/token_contract_test.js +88 -92
  31. package/dest/fixtures/e2e_prover_test.d.ts +7 -13
  32. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  33. package/dest/fixtures/e2e_prover_test.js +78 -91
  34. package/dest/fixtures/snapshot_manager.d.ts +10 -44
  35. package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
  36. package/dest/fixtures/snapshot_manager.js +12 -255
  37. package/dest/fixtures/utils.js +3 -3
  38. package/dest/quality_of_service/grafana_client.d.ts +41 -0
  39. package/dest/quality_of_service/grafana_client.d.ts.map +1 -0
  40. package/dest/quality_of_service/{alert_checker.js → grafana_client.js} +1 -1
  41. package/dest/quality_of_service/prometheus_client.d.ts +38 -0
  42. package/dest/quality_of_service/prometheus_client.d.ts.map +1 -0
  43. package/dest/quality_of_service/prometheus_client.js +67 -0
  44. package/dest/spartan/setup_test_wallets.d.ts +4 -3
  45. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  46. package/dest/spartan/tx_metrics.d.ts +4 -1
  47. package/dest/spartan/tx_metrics.d.ts.map +1 -1
  48. package/dest/spartan/tx_metrics.js +21 -1
  49. package/dest/spartan/utils.d.ts +5 -1
  50. package/dest/spartan/utils.d.ts.map +1 -1
  51. package/dest/spartan/utils.js +25 -8
  52. package/package.json +38 -38
  53. package/src/bench/client_flows/client_flows_benchmark.ts +134 -192
  54. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +104 -136
  55. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +91 -103
  56. package/src/e2e_deploy_contract/deploy_test.ts +18 -14
  57. package/src/e2e_epochs/epochs_test.ts +1 -1
  58. package/src/e2e_fees/bridging_race.notest.ts +2 -5
  59. package/src/e2e_fees/fees_test.ts +165 -210
  60. package/src/e2e_l1_publisher/write_json.ts +1 -0
  61. package/src/e2e_nested_contract/nested_contract_test.ts +30 -54
  62. package/src/e2e_p2p/inactivity_slash_test.ts +1 -1
  63. package/src/e2e_p2p/p2p_network.ts +149 -165
  64. package/src/e2e_token_contract/token_contract_test.ts +104 -113
  65. package/src/fixtures/e2e_prover_test.ts +97 -130
  66. package/src/fixtures/snapshot_manager.ts +12 -325
  67. package/src/fixtures/utils.ts +3 -3
  68. package/src/quality_of_service/{alert_checker.ts → grafana_client.ts} +1 -1
  69. package/src/quality_of_service/prometheus_client.ts +113 -0
  70. package/src/spartan/setup_test_wallets.ts +7 -1
  71. package/src/spartan/tx_metrics.ts +21 -1
  72. package/src/spartan/utils.ts +26 -8
  73. package/dest/quality_of_service/alert_checker.d.ts +0 -41
  74. package/dest/quality_of_service/alert_checker.d.ts.map +0 -1
@@ -29,12 +29,7 @@ import { deriveSigningKey } from '@aztec/stdlib/keys';
29
29
  import { TestWallet } from '@aztec/test-wallet/server';
30
30
 
31
31
  import { MNEMONIC } from '../../fixtures/fixtures.js';
32
- import {
33
- type ISnapshotManager,
34
- type SubsystemsContext,
35
- createSnapshotManager,
36
- deployAccounts,
37
- } from '../../fixtures/snapshot_manager.js';
32
+ import { type SubsystemsContext, deployAccounts, setupFromFresh, teardown } from '../../fixtures/snapshot_manager.js';
38
33
  import { mintTokensToPrivate } from '../../fixtures/token_utils.js';
39
34
  import { type SetupOptions, setupSponsoredFPC } from '../../fixtures/utils.js';
40
35
  import { CrossChainTestHarness } from '../../shared/cross_chain_test_harness.js';
@@ -45,15 +40,13 @@ import {
45
40
  import { ProxyLogger } from './benchmark.js';
46
41
  import { type ClientFlowsConfig, FULL_FLOWS_CONFIG, KEY_FLOWS_CONFIG } from './config.js';
47
42
 
48
- const { E2E_DATA_PATH: dataPath, BENCHMARK_CONFIG } = process.env;
43
+ const { BENCHMARK_CONFIG } = process.env;
49
44
 
50
45
  export type AccountType = 'ecdsar1' | 'schnorr';
51
46
  export type FeePaymentMethodGetter = (wallet: Wallet, sender: AztecAddress) => Promise<FeePaymentMethod | undefined>;
52
47
  export type BenchmarkingFeePaymentMethod = 'bridged_fee_juice' | 'private_fpc' | 'sponsored_fpc' | 'fee_juice';
53
48
 
54
49
  export class ClientFlowsBenchmark {
55
- private snapshotManager: ISnapshotManager;
56
-
57
50
  public logger: Logger;
58
51
  public aztecNode!: AztecNode;
59
52
  public cheatCodes!: CheatCodes;
@@ -125,33 +118,32 @@ export class ClientFlowsBenchmark {
125
118
  public config: ClientFlowsConfig;
126
119
 
127
120
  private proxyLogger: ProxyLogger;
121
+ private setupOptions: Partial<SetupOptions & DeployAztecL1ContractsArgs>;
128
122
 
129
123
  constructor(testName?: string, setupOptions: Partial<SetupOptions & DeployAztecL1ContractsArgs> = {}) {
130
124
  this.logger = createLogger(`bench:client_flows${testName ? `:${testName}` : ''}`);
131
- this.snapshotManager = createSnapshotManager(
132
- `bench_client_flows${testName ? `/${testName}` : ''}`,
133
- dataPath,
134
- { startProverNode: true, ...setupOptions },
135
- { ...setupOptions },
136
- );
125
+ this.setupOptions = { startProverNode: true, ...setupOptions };
137
126
  this.config = BENCHMARK_CONFIG === 'key_flows' ? KEY_FLOWS_CONFIG : FULL_FLOWS_CONFIG;
138
127
  ProxyLogger.create();
139
128
  this.proxyLogger = ProxyLogger.getInstance();
140
129
  }
141
130
 
142
131
  async setup() {
143
- const context = await this.snapshotManager.setup();
144
- await context.aztecNode.setConfig({ feeRecipient: this.sequencerAddress, coinbase: this.coinbase });
132
+ this.logger.info('Setting up subsystems from fresh');
133
+ this.context = await setupFromFresh(this.logger, this.setupOptions, this.setupOptions);
134
+ await this.applyBaseSetup();
145
135
 
146
- const rollupContract = RollupContract.getFromConfig(context.aztecNodeConfig);
147
- this.chainMonitor = new ChainMonitor(rollupContract, context.dateProvider, this.logger, 200).start();
136
+ await this.context.aztecNode.setConfig({ feeRecipient: this.sequencerAddress, coinbase: this.coinbase });
137
+
138
+ const rollupContract = RollupContract.getFromConfig(this.context.aztecNodeConfig);
139
+ this.chainMonitor = new ChainMonitor(rollupContract, this.context.dateProvider, this.logger, 200).start();
148
140
 
149
141
  return this;
150
142
  }
151
143
 
152
144
  async teardown() {
153
145
  await this.chainMonitor.stop();
154
- await this.snapshotManager.teardown();
146
+ await teardown(this.context);
155
147
  }
156
148
 
157
149
  async mintAndBridgeFeeJuice(address: AztecAddress) {
@@ -193,157 +185,120 @@ export class ClientFlowsBenchmark {
193
185
  }
194
186
  }
195
187
 
196
- public async applyBaseSnapshots() {
197
- await this.applyInitialAccountsSnapshot();
198
- await this.applySetupFeeJuiceSnapshot();
188
+ public async applyBaseSetup() {
189
+ await this.applyInitialAccounts();
190
+ await this.applySetupFeeJuice();
199
191
  }
200
192
 
201
- async applyInitialAccountsSnapshot() {
202
- await this.snapshotManager.snapshot(
203
- 'initial_accounts',
204
- deployAccounts(2, this.logger),
205
- async (
206
- { deployedAccounts: [{ address: adminAddress }, { address: sequencerAddress }] },
207
- { wallet, aztecNode, cheatCodes },
208
- ) => {
209
- this.adminWallet = wallet;
210
- this.aztecNode = aztecNode;
211
- this.cheatCodes = cheatCodes;
212
-
213
- this.adminAddress = adminAddress;
214
- this.sequencerAddress = sequencerAddress;
215
-
216
- const canonicalFeeJuice = await getCanonicalFeeJuice();
217
- this.feeJuiceContract = FeeJuiceContract.at(canonicalFeeJuice.address, this.adminWallet);
218
- this.coinbase = EthAddress.random();
219
-
220
- const userPXEConfig = getPXEConfig();
221
- const userPXEConfigWithContracts = {
222
- ...userPXEConfig,
223
- proverEnabled: this.realProofs,
224
- } as PXEConfig;
225
-
226
- this.userWallet = await TestWallet.create(this.aztecNode, userPXEConfigWithContracts, {
227
- loggers: {
228
- prover: this.proxyLogger.createLogger('pxe:bb:wasm:bundle:proxied'),
229
- },
230
- });
193
+ async applyInitialAccounts() {
194
+ this.logger.info('Applying initial accounts setup');
195
+ const { deployedAccounts } = await deployAccounts(
196
+ 2,
197
+ this.logger,
198
+ )({
199
+ wallet: this.context.wallet,
200
+ initialFundedAccounts: this.context.initialFundedAccounts,
201
+ });
202
+
203
+ const [{ address: adminAddress }, { address: sequencerAddress }] = deployedAccounts;
204
+
205
+ this.adminWallet = this.context.wallet;
206
+ this.aztecNode = this.context.aztecNode;
207
+ this.cheatCodes = this.context.cheatCodes;
208
+
209
+ this.adminAddress = adminAddress;
210
+ this.sequencerAddress = sequencerAddress;
211
+
212
+ const canonicalFeeJuice = await getCanonicalFeeJuice();
213
+ this.feeJuiceContract = FeeJuiceContract.at(canonicalFeeJuice.address, this.adminWallet);
214
+ this.coinbase = EthAddress.random();
215
+
216
+ const userPXEConfig = getPXEConfig();
217
+ const userPXEConfigWithContracts = {
218
+ ...userPXEConfig,
219
+ proverEnabled: this.realProofs,
220
+ } as PXEConfig;
221
+
222
+ this.userWallet = await TestWallet.create(this.aztecNode, userPXEConfigWithContracts, {
223
+ loggers: {
224
+ prover: this.proxyLogger.createLogger('pxe:bb:wasm:bundle:proxied'),
231
225
  },
232
- );
226
+ });
233
227
  }
234
228
 
235
- async applySetupFeeJuiceSnapshot() {
236
- await this.snapshotManager.snapshot(
237
- 'setup_fee_juice',
238
- async () => {},
239
- async (_data, context) => {
240
- this.context = context;
241
-
242
- this.feeJuiceContract = FeeJuiceContract.at(ProtocolContractAddress.FeeJuice, this.adminWallet);
243
-
244
- this.feeJuiceBridgeTestHarness = await FeeJuicePortalTestingHarnessFactory.create({
245
- aztecNode: context.aztecNode,
246
- aztecNodeAdmin: context.aztecNode,
247
- l1Client: context.deployL1ContractsValues.l1Client,
248
- wallet: this.adminWallet,
249
- logger: this.logger,
250
- });
251
- },
252
- );
229
+ async applySetupFeeJuice() {
230
+ this.logger.info('Applying fee juice setup');
231
+ this.feeJuiceContract = FeeJuiceContract.at(ProtocolContractAddress.FeeJuice, this.adminWallet);
232
+
233
+ this.feeJuiceBridgeTestHarness = await FeeJuicePortalTestingHarnessFactory.create({
234
+ aztecNode: this.context.aztecNode,
235
+ aztecNodeAdmin: this.context.aztecNode,
236
+ l1Client: this.context.deployL1ContractsValues.l1Client,
237
+ wallet: this.adminWallet,
238
+ logger: this.logger,
239
+ });
253
240
  }
254
241
 
255
- async applyDeployBananaTokenSnapshot() {
256
- await this.snapshotManager.snapshot(
257
- 'deploy_banana_token',
258
- async () => {
259
- const { contract: bananaCoin, instance: bananaCoinInstance } = await BananaCoin.deploy(
260
- this.adminWallet,
261
- this.adminAddress,
262
- 'BC',
263
- 'BC',
264
- 18n,
265
- )
266
- .send({ from: this.adminAddress })
267
- .wait();
268
- this.logger.info(`BananaCoin deployed at ${bananaCoin.address}`);
269
- return { bananaCoinAddress: bananaCoin.address, bananaCoinInstance };
270
- },
271
- ({ bananaCoinAddress, bananaCoinInstance }) => {
272
- this.bananaCoin = BananaCoin.at(bananaCoinAddress, this.adminWallet);
273
- this.bananaCoinInstance = bananaCoinInstance;
274
- return Promise.resolve();
275
- },
276
- );
242
+ async applyDeployBananaToken() {
243
+ this.logger.info('Applying banana token deployment');
244
+ const { contract: bananaCoin, instance: bananaCoinInstance } = await BananaCoin.deploy(
245
+ this.adminWallet,
246
+ this.adminAddress,
247
+ 'BC',
248
+ 'BC',
249
+ 18n,
250
+ )
251
+ .send({ from: this.adminAddress })
252
+ .wait();
253
+ this.logger.info(`BananaCoin deployed at ${bananaCoin.address}`);
254
+ this.bananaCoin = bananaCoin;
255
+ this.bananaCoinInstance = bananaCoinInstance;
277
256
  }
278
257
 
279
- async applyDeployCandyBarTokenSnapshot() {
280
- await this.snapshotManager.snapshot(
281
- 'deploy_candy_bar_token',
282
- async () => {
283
- const { contract: candyBarCoin, instance: candyBarCoinInstance } = await TokenContract.deploy(
284
- this.adminWallet,
285
- this.adminAddress,
286
- 'CBC',
287
- 'CBC',
288
- 18n,
289
- )
290
- .send({ from: this.adminAddress })
291
- .wait();
292
- this.logger.info(`CandyBarCoin deployed at ${candyBarCoin.address}`);
293
- return { candyBarCoinAddress: candyBarCoin.address, candyBarCoinInstance };
294
- },
295
- ({ candyBarCoinAddress, candyBarCoinInstance }) => {
296
- this.candyBarCoin = TokenContract.at(candyBarCoinAddress, this.adminWallet);
297
- this.candyBarCoinInstance = candyBarCoinInstance;
298
- return Promise.resolve();
299
- },
300
- );
258
+ async applyDeployCandyBarToken() {
259
+ this.logger.info('Applying candy bar token deployment');
260
+ const { contract: candyBarCoin, instance: candyBarCoinInstance } = await TokenContract.deploy(
261
+ this.adminWallet,
262
+ this.adminAddress,
263
+ 'CBC',
264
+ 'CBC',
265
+ 18n,
266
+ )
267
+ .send({ from: this.adminAddress })
268
+ .wait();
269
+ this.logger.info(`CandyBarCoin deployed at ${candyBarCoin.address}`);
270
+ this.candyBarCoin = candyBarCoin;
271
+ this.candyBarCoinInstance = candyBarCoinInstance;
301
272
  }
302
273
 
303
- public async applyFPCSetupSnapshot() {
304
- await this.snapshotManager.snapshot(
305
- 'fpc_setup',
306
- async context => {
307
- const feeJuiceContract = this.feeJuiceBridgeTestHarness.feeJuice;
308
- expect((await context.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
274
+ public async applyFPCSetup() {
275
+ this.logger.info('Applying FPC setup');
276
+ const feeJuiceContract = this.feeJuiceBridgeTestHarness.feeJuice;
277
+ expect((await this.context.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
309
278
 
310
- const bananaCoin = this.bananaCoin;
311
- const { contract: bananaFPC, instance: bananaFPCInstance } = await FPCContract.deploy(
312
- this.adminWallet,
313
- bananaCoin.address,
314
- this.adminAddress,
315
- )
316
- .send({ from: this.adminAddress })
317
- .wait();
279
+ const bananaCoin = this.bananaCoin;
280
+ const { contract: bananaFPC, instance: bananaFPCInstance } = await FPCContract.deploy(
281
+ this.adminWallet,
282
+ bananaCoin.address,
283
+ this.adminAddress,
284
+ )
285
+ .send({ from: this.adminAddress })
286
+ .wait();
318
287
 
319
- this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
288
+ this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
320
289
 
321
- await this.feeJuiceBridgeTestHarness.bridgeFromL1ToL2(bananaFPC.address, this.adminAddress);
290
+ await this.feeJuiceBridgeTestHarness.bridgeFromL1ToL2(bananaFPC.address, this.adminAddress);
322
291
 
323
- return { bananaFPCAddress: bananaFPC.address, bananaFPCInstance };
324
- },
325
- data => {
326
- this.bananaFPC = FPCContract.at(data.bananaFPCAddress, this.adminWallet);
327
- this.bananaFPCInstance = data.bananaFPCInstance;
328
- return Promise.resolve();
329
- },
330
- );
292
+ this.bananaFPC = bananaFPC;
293
+ this.bananaFPCInstance = bananaFPCInstance;
331
294
  }
332
295
 
333
- async applyDeploySponsoredFPCSnapshot() {
334
- await this.snapshotManager.snapshot(
335
- 'deploy_sponsored_fpc',
336
- async () => {
337
- const sponsoredFPCInstance = await setupSponsoredFPC(this.adminWallet);
338
- this.logger.info(`SponsoredFPC at ${sponsoredFPCInstance.address}`);
339
- return { sponsoredFPCAddress: sponsoredFPCInstance.address, sponsoredFPCInstance };
340
- },
341
- ({ sponsoredFPCAddress, sponsoredFPCInstance }) => {
342
- this.sponsoredFPC = SponsoredFPCContract.at(sponsoredFPCAddress, this.adminWallet);
343
- this.sponsoredFPCInstance = sponsoredFPCInstance;
344
- return Promise.resolve();
345
- },
346
- );
296
+ async applyDeploySponsoredFPC() {
297
+ this.logger.info('Applying sponsored FPC deployment');
298
+ const sponsoredFPCInstance = await setupSponsoredFPC(this.adminWallet);
299
+ this.logger.info(`SponsoredFPC at ${sponsoredFPCInstance.address}`);
300
+ this.sponsoredFPC = SponsoredFPCContract.at(sponsoredFPCInstance.address, this.adminWallet);
301
+ this.sponsoredFPCInstance = sponsoredFPCInstance;
347
302
  }
348
303
 
349
304
  public async createCrossChainTestHarness(owner: AztecAddress) {
@@ -391,44 +346,31 @@ export class ClientFlowsBenchmark {
391
346
  return accountManager.address;
392
347
  }
393
348
 
394
- public async applyDeployAmmSnapshot() {
395
- await this.snapshotManager.snapshot(
396
- 'deploy_amm',
397
- async () => {
398
- const { contract: liquidityToken, instance: liquidityTokenInstance } = await TokenContract.deploy(
399
- this.adminWallet,
400
- this.adminAddress,
401
- 'LPT',
402
- 'LPT',
403
- 18n,
404
- )
405
- .send({ from: this.adminAddress })
406
- .wait();
407
- const { contract: amm, instance: ammInstance } = await AMMContract.deploy(
408
- this.adminWallet,
409
- this.bananaCoin.address,
410
- this.candyBarCoin.address,
411
- liquidityToken.address,
412
- )
413
- .send({ from: this.adminAddress })
414
- .wait();
415
- this.logger.info(`AMM deployed at ${amm.address}`);
416
- await liquidityToken.methods.set_minter(amm.address, true).send({ from: this.adminAddress }).wait();
417
- return {
418
- ammAddress: amm.address,
419
- ammInstance,
420
- liquidityTokenAddress: liquidityToken.address,
421
- liquidityTokenInstance,
422
- };
423
- },
424
- ({ ammAddress, ammInstance, liquidityTokenAddress, liquidityTokenInstance }) => {
425
- this.liquidityToken = TokenContract.at(liquidityTokenAddress, this.adminWallet);
426
- this.liquidityTokenInstance = liquidityTokenInstance;
427
- this.amm = AMMContract.at(ammAddress, this.adminWallet);
428
- this.ammInstance = ammInstance;
429
- return Promise.resolve();
430
- },
431
- );
349
+ public async applyDeployAmm() {
350
+ this.logger.info('Applying AMM deployment');
351
+ const { contract: liquidityToken, instance: liquidityTokenInstance } = await TokenContract.deploy(
352
+ this.adminWallet,
353
+ this.adminAddress,
354
+ 'LPT',
355
+ 'LPT',
356
+ 18n,
357
+ )
358
+ .send({ from: this.adminAddress })
359
+ .wait();
360
+ const { contract: amm, instance: ammInstance } = await AMMContract.deploy(
361
+ this.adminWallet,
362
+ this.bananaCoin.address,
363
+ this.candyBarCoin.address,
364
+ liquidityToken.address,
365
+ )
366
+ .send({ from: this.adminAddress })
367
+ .wait();
368
+ this.logger.info(`AMM deployed at ${amm.address}`);
369
+ await liquidityToken.methods.set_minter(amm.address, true).send({ from: this.adminAddress }).wait();
370
+ this.liquidityToken = liquidityToken;
371
+ this.liquidityTokenInstance = liquidityTokenInstance;
372
+ this.amm = amm;
373
+ this.ammInstance = ammInstance;
432
374
  }
433
375
 
434
376
  public async getBridgedFeeJuicePaymentMethodForWallet(_wallet: Wallet, sender: AztecAddress) {