@aztec/end-to-end 0.80.0 → 0.82.0

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 (70) hide show
  1. package/dest/bench/utils.d.ts.map +1 -1
  2. package/dest/bench/utils.js +3 -0
  3. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +3 -2
  4. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  5. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +7 -7
  6. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +0 -1
  7. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  8. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +3 -18
  9. package/dest/e2e_deploy_contract/deploy_test.d.ts +2 -0
  10. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  11. package/dest/e2e_deploy_contract/deploy_test.js +2 -0
  12. package/dest/e2e_epochs/epochs_test.d.ts +1 -2
  13. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  14. package/dest/e2e_epochs/epochs_test.js +7 -6
  15. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  16. package/dest/e2e_fees/fees_test.js +20 -29
  17. package/dest/e2e_prover/e2e_prover_test.d.ts +2 -0
  18. package/dest/e2e_prover/e2e_prover_test.d.ts.map +1 -1
  19. package/dest/e2e_prover/e2e_prover_test.js +7 -8
  20. package/dest/e2e_token_contract/token_contract_test.d.ts +2 -1
  21. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  22. package/dest/e2e_token_contract/token_contract_test.js +3 -1
  23. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  24. package/dest/fixtures/setup_p2p_test.js +2 -4
  25. package/dest/fixtures/snapshot_manager.d.ts +4 -2
  26. package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
  27. package/dest/fixtures/snapshot_manager.js +17 -16
  28. package/dest/fixtures/utils.d.ts +5 -5
  29. package/dest/fixtures/utils.d.ts.map +1 -1
  30. package/dest/fixtures/utils.js +15 -9
  31. package/dest/shared/capture_private_execution_steps.d.ts +7 -0
  32. package/dest/shared/capture_private_execution_steps.d.ts.map +1 -0
  33. package/dest/shared/capture_private_execution_steps.js +40 -0
  34. package/dest/shared/cross_chain_test_harness.d.ts +2 -2
  35. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  36. package/dest/shared/cross_chain_test_harness.js +16 -4
  37. package/dest/shared/gas_portal_test_harness.d.ts +11 -1
  38. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  39. package/dest/shared/gas_portal_test_harness.js +27 -12
  40. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  41. package/dest/shared/uniswap_l1_l2.js +24 -16
  42. package/dest/simulators/lending_simulator.d.ts +3 -5
  43. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  44. package/dest/simulators/lending_simulator.js +5 -13
  45. package/dest/spartan/setup_test_wallets.d.ts +1 -1
  46. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  47. package/dest/spartan/setup_test_wallets.js +6 -4
  48. package/dest/spartan/utils.d.ts +18 -5
  49. package/dest/spartan/utils.d.ts.map +1 -1
  50. package/dest/spartan/utils.js +15 -6
  51. package/package.json +33 -31
  52. package/src/bench/utils.ts +3 -0
  53. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +9 -5
  54. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +3 -19
  55. package/src/e2e_deploy_contract/deploy_test.ts +3 -0
  56. package/src/e2e_epochs/epochs_test.ts +6 -5
  57. package/src/e2e_fees/fees_test.ts +21 -28
  58. package/src/e2e_prover/e2e_prover_test.ts +8 -7
  59. package/src/e2e_token_contract/token_contract_test.ts +4 -2
  60. package/src/fixtures/setup_p2p_test.ts +2 -4
  61. package/src/fixtures/snapshot_manager.ts +24 -10
  62. package/src/fixtures/utils.ts +26 -13
  63. package/src/guides/up_quick_start.sh +1 -2
  64. package/src/shared/capture_private_execution_steps.ts +43 -0
  65. package/src/shared/cross_chain_test_harness.ts +14 -3
  66. package/src/shared/gas_portal_test_harness.ts +29 -9
  67. package/src/shared/uniswap_l1_l2.ts +16 -16
  68. package/src/simulators/lending_simulator.ts +7 -12
  69. package/src/spartan/setup_test_wallets.ts +7 -7
  70. package/src/spartan/utils.ts +11 -6
@@ -1,7 +1,7 @@
1
1
  import { SchnorrAccountContractArtifact } from '@aztec/accounts/schnorr';
2
2
  import { deployFundedSchnorrAccounts, generateSchnorrAccounts } from '@aztec/accounts/testing';
3
3
  import { AztecNodeService, getConfigEnvVars } from '@aztec/aztec-node';
4
- import { BatchCall, getContractClassFromArtifact } from '@aztec/aztec.js';
4
+ import { BatchCall, DefaultWaitForProvenOpts, getContractClassFromArtifact, waitForProven } from '@aztec/aztec.js';
5
5
  import { deployInstance, registerContractClass } from '@aztec/aztec.js/deployment';
6
6
  import { AnvilTestWatcher, CheatCodes } from '@aztec/aztec.js/testing';
7
7
  import { createBlobSinkServer } from '@aztec/blob-sink/server';
@@ -306,10 +306,8 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
306
306
  l1RpcUrls: aztecNodeConfig.l1RpcUrls,
307
307
  rollupAddress: aztecNodeConfig.l1Contracts.rollupAddress,
308
308
  port: blobSinkPort,
309
- dataStoreConfig: {
310
- dataDirectory: aztecNodeConfig.dataDirectory,
311
- dataStoreMapSizeKB: aztecNodeConfig.dataStoreMapSizeKB
312
- }
309
+ dataDirectory: aztecNodeConfig.dataDirectory,
310
+ dataStoreMapSizeKB: aztecNodeConfig.dataStoreMapSizeKB
313
311
  }, telemetry);
314
312
  await blobSink.start();
315
313
  logger.verbose('Creating and synching an aztec node...');
@@ -398,10 +396,8 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
398
396
  l1RpcUrls: aztecNodeConfig.l1RpcUrls,
399
397
  rollupAddress: aztecNodeConfig.l1Contracts.rollupAddress,
400
398
  port: blobSinkPort,
401
- dataStoreConfig: {
402
- dataDirectory: statePath,
403
- dataStoreMapSizeKB: aztecNodeConfig.dataStoreMapSizeKB
404
- }
399
+ dataDirectory: statePath,
400
+ dataStoreMapSizeKB: aztecNodeConfig.dataStoreMapSizeKB
405
401
  }, telemetry);
406
402
  await blobSink.start();
407
403
  logger.verbose('Creating aztec node...');
@@ -453,9 +449,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
453
449
  }
454
450
  logger.verbose('Deploying accounts funded with fee juice...');
455
451
  const deployedAccounts = initialFundedAccounts.slice(0, numberOfAccounts);
456
- await deployFundedSchnorrAccounts(pxe, deployedAccounts, {
457
- proven: waitUntilProven
458
- });
452
+ await deployFundedSchnorrAccounts(pxe, deployedAccounts, undefined, waitUntilProven ? DefaultWaitForProvenOpts : undefined);
459
453
  return {
460
454
  deployedAccounts
461
455
  };
@@ -465,7 +459,9 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
465
459
  * Use this when you need to make a public call to an account contract, such as for requesting a public authwit.
466
460
  * @param sender - Wallet to send the deployment tx.
467
461
  * @param accountsToDeploy - Which accounts to publicly deploy.
468
- */ export async function publicDeployAccounts(sender, accountsToDeploy, waitUntilProven = false) {
462
+ * @param waitUntilProven - Whether to wait for the tx to be proven.
463
+ * @param pxeOrNode - PXE or AztecNode to wait for proven.
464
+ */ export async function publicDeployAccounts(sender, accountsToDeploy, waitUntilProven = false, pxeOrNode) {
469
465
  const accountAddressesToDeploy = accountsToDeploy.map((a)=>'address' in a ? a.address : a);
470
466
  const instances = (await Promise.all(accountAddressesToDeploy.map((account)=>sender.getContractMetadata(account)))).map((metadata)=>metadata.contractInstance);
471
467
  const contractClass = await getContractClassFromArtifact(SchnorrAccountContractArtifact);
@@ -477,7 +473,12 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
477
473
  ...instances.map((instance)=>deployInstance(sender, instance))
478
474
  ]);
479
475
  const batch = new BatchCall(sender, calls);
480
- await batch.send().wait({
481
- proven: waitUntilProven
482
- });
476
+ const txReceipt = await batch.send().wait();
477
+ if (waitUntilProven) {
478
+ if (!pxeOrNode) {
479
+ throw new Error('Need to provide a PXE or AztecNode to wait for proven.');
480
+ } else {
481
+ await waitForProven(pxeOrNode, txReceipt);
482
+ }
483
+ }
483
484
  }
@@ -4,7 +4,6 @@ import { type InitialAccountData } from '@aztec/accounts/testing';
4
4
  import { type AztecNodeConfig } from '@aztec/aztec-node';
5
5
  import { type AccountWalletWithSecretKey, type AztecAddress, type AztecNode, type ContractMethod, type Logger, type PXE, type Wallet } from '@aztec/aztec.js';
6
6
  import { AnvilTestWatcher, CheatCodes } from '@aztec/aztec.js/testing';
7
- import type { BBNativePrivateKernelProver } from '@aztec/bb-prover';
8
7
  import { type BlobSinkServer } from '@aztec/blob-sink/server';
9
8
  import { type DeployL1ContractsArgs, type DeployL1ContractsReturnType, ForwarderContract } from '@aztec/ethereum';
10
9
  import { startAnvil } from '@aztec/ethereum/test';
@@ -14,6 +13,7 @@ import { TestDateProvider } from '@aztec/foundation/timer';
14
13
  import { type ProverNode } from '@aztec/prover-node';
15
14
  import { type PXEService, type PXEServiceConfig } from '@aztec/pxe/server';
16
15
  import type { SequencerClient } from '@aztec/sequencer-client';
16
+ import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
17
17
  import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
18
18
  import { type TelemetryClient, type TelemetryClientConfig } from '@aztec/telemetry-client';
19
19
  import { type Chain, type HDAccount, type Hex, type PrivateKeyAccount } from 'viem';
@@ -25,13 +25,11 @@ export declare const setupL1Contracts: (l1RpcUrls: string[], account: HDAccount
25
25
  * Sets up Private eXecution Environment (PXE).
26
26
  * @param aztecNode - An instance of Aztec Node.
27
27
  * @param opts - Partial configuration for the PXE service.
28
- * @param firstPrivKey - The private key of the first account to be created.
29
28
  * @param logger - The logger to be used.
30
29
  * @param useLogSuffix - Whether to add a randomly generated suffix to the PXE debug logs.
31
- * @param proofCreator - An optional proof creator to use
32
- * @returns Private eXecution Environment (PXE), accounts, wallets and logger.
30
+ * @returns Private eXecution Environment (PXE), logger and teardown function.
33
31
  */
34
- export declare function setupPXEService(aztecNode: AztecNode, opts?: Partial<PXEServiceConfig>, logger?: Logger, useLogSuffix?: boolean, proofCreator?: BBNativePrivateKernelProver): Promise<{
32
+ export declare function setupPXEService(aztecNode: AztecNode, opts?: Partial<PXEServiceConfig>, logger?: Logger, useLogSuffix?: boolean): Promise<{
35
33
  /**
36
34
  * The PXE instance.
37
35
  */
@@ -84,6 +82,8 @@ export type SetupOptions = {
84
82
  export type EndToEndContext = {
85
83
  /** The Aztec Node service or client a connected to it. */
86
84
  aztecNode: AztecNode;
85
+ /** Client to the Aztec Node admin interface (undefined if connected to remote environment) */
86
+ aztecNodeAdmin?: AztecNodeAdmin;
87
87
  /** The prover node service (only set if startProverNode is true) */
88
88
  proverNode: ProverNode | undefined;
89
89
  /** A client to the sequencer service (undefined if connected to remote environment) */
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/utils.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,9 @@ import { FeeJuiceContract } from '@aztec/noir-contracts.js/FeeJuice';
19
19
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
20
20
  import { ProtocolContractAddress, protocolContractTreeRoot } from '@aztec/protocol-contracts';
21
21
  import { createProverNode } from '@aztec/prover-node';
22
- import { createPXEService, getPXEServiceConfig } from '@aztec/pxe/server';
22
+ import { createPXEServiceWithSimulationProvider, getPXEServiceConfig } from '@aztec/pxe/server';
23
+ import { WASMSimulator } from '@aztec/simulator/client';
24
+ import { SimulationProviderRecorderWrapper } from '@aztec/simulator/testing';
23
25
  import { getContractClassFromArtifact } from '@aztec/stdlib/contract';
24
26
  import { Gas } from '@aztec/stdlib/gas';
25
27
  import { getConfigEnvVars as getTelemetryConfig, initTelemetryClient } from '@aztec/telemetry-client';
@@ -82,12 +84,10 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
82
84
  * Sets up Private eXecution Environment (PXE).
83
85
  * @param aztecNode - An instance of Aztec Node.
84
86
  * @param opts - Partial configuration for the PXE service.
85
- * @param firstPrivKey - The private key of the first account to be created.
86
87
  * @param logger - The logger to be used.
87
88
  * @param useLogSuffix - Whether to add a randomly generated suffix to the PXE debug logs.
88
- * @param proofCreator - An optional proof creator to use
89
- * @returns Private eXecution Environment (PXE), accounts, wallets and logger.
90
- */ export async function setupPXEService(aztecNode, opts = {}, logger = getLogger(), useLogSuffix = false, proofCreator) {
89
+ * @returns Private eXecution Environment (PXE), logger and teardown function.
90
+ */ export async function setupPXEService(aztecNode, opts = {}, logger = getLogger(), useLogSuffix = false) {
91
91
  const pxeServiceConfig = {
92
92
  ...getPXEServiceConfig(),
93
93
  ...opts
@@ -97,7 +97,9 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
97
97
  if (!configuredDataDirectory) {
98
98
  pxeServiceConfig.dataDirectory = path.join(tmpdir(), randomBytes(8).toString('hex'));
99
99
  }
100
- const pxe = await createPXEService(aztecNode, pxeServiceConfig, useLogSuffix, proofCreator);
100
+ const simulationProvider = new WASMSimulator();
101
+ const simulationProviderWithRecorder = new SimulationProviderRecorderWrapper(simulationProvider);
102
+ const pxe = await createPXEServiceWithSimulationProvider(aztecNode, simulationProviderWithRecorder, pxeServiceConfig, useLogSuffix);
101
103
  const teardown = async ()=>{
102
104
  if (!configuredDataDirectory) {
103
105
  try {
@@ -158,11 +160,11 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
158
160
  }
159
161
  return {
160
162
  aztecNode,
163
+ aztecNodeAdmin: undefined,
161
164
  sequencer: undefined,
162
165
  proverNode: undefined,
163
166
  pxe: pxeClient,
164
167
  deployL1ContractsValues,
165
- accounts: await pxeClient.getRegisteredAccounts(),
166
168
  config,
167
169
  initialFundedAccounts,
168
170
  wallet: wallets[0],
@@ -293,7 +295,9 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
293
295
  l1ChainId: config.l1ChainId,
294
296
  l1RpcUrls: config.l1RpcUrls,
295
297
  rollupAddress: config.l1Contracts.rollupAddress,
296
- port: blobSinkPort
298
+ port: blobSinkPort,
299
+ dataDirectory: config.dataDirectory,
300
+ dataStoreMapSizeKB: config.dataStoreMapSizeKB
297
301
  }, telemetry);
298
302
  await blobSink.start();
299
303
  config.blobSinkUrl = `http://localhost:${blobSinkPort}`;
@@ -312,7 +316,8 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
312
316
  const blobSinkClient = createBlobSinkClient(config);
313
317
  const aztecNode = await AztecNodeService.createAndSync(config, {
314
318
  dateProvider,
315
- blobSinkClient
319
+ blobSinkClient,
320
+ telemetry
316
321
  }, {
317
322
  prefilledPublicData
318
323
  });
@@ -377,6 +382,7 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
377
382
  };
378
383
  return {
379
384
  aztecNode,
385
+ aztecNodeAdmin: aztecNode,
380
386
  blobSink,
381
387
  cheatCodes,
382
388
  config,
@@ -0,0 +1,7 @@
1
+ /**
2
+ * This module exposes the ability to capture the private exection steps that go into our "Client IVC" prover.
3
+ * These are used for debugging and benchmarking barretenberg (the prover component).
4
+ */
5
+ import type { ContractFunctionInteraction } from '@aztec/aztec.js/contracts';
6
+ export declare function capturePrivateExecutionStepsIfEnvSet(label: string, interaction: ContractFunctionInteraction): Promise<void>;
7
+ //# sourceMappingURL=capture_private_execution_steps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture_private_execution_steps.d.ts","sourceRoot":"","sources":["../../src/shared/capture_private_execution_steps.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AA0B7E,wBAAsB,oCAAoC,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,2BAA2B,iBAYjH"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * This module exposes the ability to capture the private exection steps that go into our "Client IVC" prover.
3
+ * These are used for debugging and benchmarking barretenberg (the prover component).
4
+ */ import { createLogger } from '@aztec/foundation/log';
5
+ import { serializeWitness } from '@aztec/noir-noirc_abi';
6
+ import { encode } from '@msgpack/msgpack';
7
+ import { promises as fs } from 'fs';
8
+ import path from 'path';
9
+ const logger = createLogger('e2e:capture-private-execution-steps');
10
+ // TODO(#7371): This is duplicated.
11
+ // Longer term we won't use this hacked together msgpack format
12
+ // Leaving duplicated as this eventually bb will provide a serialization
13
+ // helper for passing to a generic msgpack RPC endpoint.
14
+ async function _createClientIvcProofFiles(directory, executionSteps) {
15
+ const acirPath = path.join(directory, 'acir.msgpack');
16
+ const witnessPath = path.join(directory, 'witnesses.msgpack');
17
+ await fs.writeFile(acirPath, encode(executionSteps.map((map)=>map.bytecode)));
18
+ await fs.writeFile(witnessPath, encode(executionSteps.map((map)=>serializeWitness(map.witness))));
19
+ return {
20
+ acirPath,
21
+ witnessPath
22
+ };
23
+ }
24
+ export async function capturePrivateExecutionStepsIfEnvSet(label, interaction) {
25
+ // Not included in env_var.ts as internal to e2e tests.
26
+ const ivcFolder = process.env.CAPTURE_IVC_FOLDER;
27
+ if (ivcFolder) {
28
+ logger.info(`Capturing client ivc execution steps for ${label}`);
29
+ const result = await interaction.profile({
30
+ profileMode: 'execution-steps'
31
+ });
32
+ const resultsDirectory = path.join(ivcFolder, label);
33
+ logger.info(`Writing private execution steps to ${resultsDirectory}`);
34
+ await fs.mkdir(resultsDirectory, {
35
+ recursive: true
36
+ });
37
+ await _createClientIvcProofFiles(resultsDirectory, result.executionSteps);
38
+ logger.info(`Wrote private execution steps to ${resultsDirectory}`);
39
+ }
40
+ }
@@ -1,4 +1,4 @@
1
- import { type AccountWallet, type AztecAddress, type AztecNode, EthAddress, type FieldsOf, Fr, type L2AmountClaim, type L2AmountClaimWithRecipient, type Logger, type PXE, type SiblingPath, type TxReceipt, type Wallet } from '@aztec/aztec.js';
1
+ import { type AccountWallet, AuthWitness, type AztecAddress, type AztecNode, EthAddress, type FieldsOf, Fr, type L2AmountClaim, type L2AmountClaimWithRecipient, type Logger, type PXE, type SiblingPath, type TxReceipt, type Wallet } from '@aztec/aztec.js';
2
2
  import { type L1ContractAddresses, type ViemPublicClient, type ViemWalletClient } from '@aztec/ethereum';
3
3
  import { TokenContract } from '@aztec/noir-contracts.js/Token';
4
4
  import { TokenBridgeContract } from '@aztec/noir-contracts.js/TokenBridge';
@@ -102,7 +102,7 @@ export declare class CrossChainTestHarness {
102
102
  sendL2PublicTransfer(transferAmount: bigint, receiverAddress: AztecAddress): Promise<void>;
103
103
  consumeMessageOnAztecAndMintPrivately(claim: Pick<L2AmountClaimWithRecipient, 'claimAmount' | 'claimSecret' | 'messageLeafIndex' | 'recipient'>): Promise<void>;
104
104
  consumeMessageOnAztecAndMintPublicly(claim: Pick<L2AmountClaim, 'claimAmount' | 'claimSecret' | 'messageLeafIndex'>): Promise<void>;
105
- withdrawPrivateFromAztecToL1(withdrawAmount: bigint, nonce?: Fr): Promise<FieldsOf<TxReceipt>>;
105
+ withdrawPrivateFromAztecToL1(withdrawAmount: bigint, nonce: Fr | undefined, authWitness: AuthWitness): Promise<FieldsOf<TxReceipt>>;
106
106
  withdrawPublicFromAztecToL1(withdrawAmount: bigint, nonce?: Fr): Promise<FieldsOf<TxReceipt>>;
107
107
  getL2PrivateBalanceOf(owner: AztecAddress): Promise<any>;
108
108
  expectPrivateBalanceOnL2(owner: AztecAddress, expectedBalance: bigint): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"cross_chain_test_harness.d.ts","sourceRoot":"","sources":["../../src/shared/cross_chain_test_harness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cross_chain_test_harness.d.ts","sourceRoot":"","sources":["../../src/shared/cross_chain_test_harness.ts"],"names":[],"mappings":"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"}
@@ -100,12 +100,20 @@ import { mintTokensToPrivate } from '../fixtures/token_utils.js';
100
100
  this.walletClient = walletClient;
101
101
  this.l1ContractAddresses = l1ContractAddresses;
102
102
  this.ownerWallet = ownerWallet;
103
- this.l1TokenPortalManager = new L1TokenPortalManager(this.tokenPortalAddress, this.underlyingERC20Address, this.l1ContractAddresses.outboxAddress, this.publicClient, this.walletClient, this.logger);
103
+ this.l1TokenPortalManager = new L1TokenPortalManager(this.tokenPortalAddress, this.underlyingERC20Address, this.l1ContractAddresses.feeAssetHandlerAddress, this.l1ContractAddresses.outboxAddress, this.publicClient, this.walletClient, this.logger);
104
104
  this.l1TokenManager = this.l1TokenPortalManager.getTokenManager();
105
105
  this.ownerAddress = this.ownerWallet.getAddress();
106
106
  }
107
107
  async mintTokensOnL1(amount) {
108
- await this.l1TokenManager.mint(amount, this.ethAccount.toString());
108
+ const contract = getContract({
109
+ abi: TestERC20Abi,
110
+ address: this.l1TokenManager.tokenAddress.toString(),
111
+ client: this.walletClient
112
+ });
113
+ await contract.write.mint([
114
+ this.ethAccount.toString(),
115
+ amount
116
+ ]);
109
117
  expect(await this.l1TokenManager.getL1TokenBalance(this.ethAccount.toString())).toEqual(amount);
110
118
  }
111
119
  getL1BalanceOf(address) {
@@ -138,8 +146,12 @@ import { mintTokensToPrivate } from '../fixtures/token_utils.js';
138
146
  const { claimAmount, claimSecret, messageLeafIndex } = claim;
139
147
  await this.l2Bridge.methods.claim_public(this.ownerAddress, claimAmount, claimSecret, messageLeafIndex).send().wait();
140
148
  }
141
- async withdrawPrivateFromAztecToL1(withdrawAmount, nonce = Fr.ZERO) {
142
- const withdrawReceipt = await this.l2Bridge.methods.exit_to_l1_private(this.l2Token.address, this.ethAccount, withdrawAmount, EthAddress.ZERO, nonce).send().wait();
149
+ async withdrawPrivateFromAztecToL1(withdrawAmount, nonce = Fr.ZERO, authWitness) {
150
+ const withdrawReceipt = await this.l2Bridge.methods.exit_to_l1_private(this.l2Token.address, this.ethAccount, withdrawAmount, EthAddress.ZERO, nonce).send({
151
+ authWitnesses: [
152
+ authWitness
153
+ ]
154
+ }).wait();
143
155
  return withdrawReceipt;
144
156
  }
145
157
  async withdrawPublicFromAztecToL1(withdrawAmount, nonce = Fr.ZERO) {
@@ -1,6 +1,7 @@
1
1
  import { type AztecAddress, type AztecNode, EthAddress, L1FeeJuicePortalManager, type L1TokenManager, type L2AmountClaim, type Logger, type PXE, type Wallet } from '@aztec/aztec.js';
2
2
  import type { ViemPublicClient, ViemWalletClient } from '@aztec/ethereum';
3
3
  import { FeeJuiceContract } from '@aztec/noir-contracts.js/FeeJuice';
4
+ import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
4
5
  export interface IGasBridgingTestHarness {
5
6
  getL1FeeJuiceBalance(address: EthAddress): Promise<bigint>;
6
7
  prepareTokensOnL1(bridgeAmount: bigint, owner: AztecAddress): Promise<L2AmountClaim>;
@@ -10,6 +11,7 @@ export interface IGasBridgingTestHarness {
10
11
  }
11
12
  export interface FeeJuicePortalTestingHarnessFactoryConfig {
12
13
  aztecNode: AztecNode;
14
+ aztecNodeAdmin?: AztecNodeAdmin;
13
15
  pxeService: PXE;
14
16
  publicClient: ViemPublicClient;
15
17
  walletClient: ViemWalletClient;
@@ -30,6 +32,8 @@ export declare class FeeJuicePortalTestingHarnessFactory {
30
32
  export declare class GasBridgingTestHarness implements IGasBridgingTestHarness {
31
33
  /** Aztec node */
32
34
  aztecNode: AztecNode;
35
+ /** Aztec node admin interface */
36
+ aztecNodeAdmin: AztecNodeAdmin | undefined;
33
37
  /** Private eXecution Environment (PXE). */
34
38
  pxeService: PXE;
35
39
  /** Logger. */
@@ -42,6 +46,8 @@ export declare class GasBridgingTestHarness implements IGasBridgingTestHarness {
42
46
  feeJuicePortalAddress: EthAddress;
43
47
  /** Underlying token for portal tests. */
44
48
  l1FeeJuiceAddress: EthAddress;
49
+ /** Fee asset handler address. */
50
+ feeAssetHandlerAddress: EthAddress;
45
51
  /** Viem Public client instance. */
46
52
  publicClient: ViemPublicClient;
47
53
  /** Viem Wallet Client instance. */
@@ -51,6 +57,8 @@ export declare class GasBridgingTestHarness implements IGasBridgingTestHarness {
51
57
  constructor(
52
58
  /** Aztec node */
53
59
  aztecNode: AztecNode,
60
+ /** Aztec node admin interface */
61
+ aztecNodeAdmin: AztecNodeAdmin | undefined,
54
62
  /** Private eXecution Environment (PXE). */
55
63
  pxeService: PXE,
56
64
  /** Logger. */
@@ -63,13 +71,15 @@ export declare class GasBridgingTestHarness implements IGasBridgingTestHarness {
63
71
  feeJuicePortalAddress: EthAddress,
64
72
  /** Underlying token for portal tests. */
65
73
  l1FeeJuiceAddress: EthAddress,
74
+ /** Fee asset handler address. */
75
+ feeAssetHandlerAddress: EthAddress,
66
76
  /** Viem Public client instance. */
67
77
  publicClient: ViemPublicClient,
68
78
  /** Viem Wallet Client instance. */
69
79
  walletClient: ViemWalletClient);
70
80
  mintTokensOnL1(amount: bigint, to?: EthAddress): Promise<void>;
71
81
  getL1FeeJuiceBalance(address: EthAddress): Promise<bigint>;
72
- sendTokensToPortalPublic(bridgeAmount: bigint, l2Address: AztecAddress, mint?: boolean): Promise<L2AmountClaim>;
82
+ sendTokensToPortalPublic(bridgeAmount: bigint, l2Address: AztecAddress): Promise<L2AmountClaim>;
73
83
  consumeMessageOnAztecAndClaimPrivately(owner: AztecAddress, claim: L2AmountClaim): Promise<void>;
74
84
  getL2PublicBalanceOf(owner: AztecAddress): Promise<any>;
75
85
  expectPublicBalanceOnL2(owner: AztecAddress, expectedBalance: bigint): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"gas_portal_test_harness.d.ts","sourceRoot":"","sources":["../../src/shared/gas_portal_test_harness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gas_portal_test_harness.d.ts","sourceRoot":"","sources":["../../src/shared/gas_portal_test_harness.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,15 @@
1
1
  import { EthAddress, Fr, L1FeeJuicePortalManager, retryUntil } from '@aztec/aztec.js';
2
+ import { TestERC20Abi } from '@aztec/l1-artifacts/TestERC20Abi';
2
3
  import { FeeJuiceContract } from '@aztec/noir-contracts.js/FeeJuice';
3
4
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
5
+ import { getContract } from 'viem';
4
6
  export class FeeJuicePortalTestingHarnessFactory {
5
7
  config;
6
8
  constructor(config){
7
9
  this.config = config;
8
10
  }
9
11
  async createReal() {
10
- const { aztecNode, pxeService, publicClient, walletClient, wallet, logger } = this.config;
12
+ const { aztecNode, aztecNodeAdmin, pxeService, publicClient, walletClient, wallet, logger } = this.config;
11
13
  const ethAccount = EthAddress.fromString((await walletClient.getAddresses())[0]);
12
14
  const l1ContractAddresses = (await pxeService.getNodeInfo()).l1ContractAddresses;
13
15
  const feeJuiceAddress = l1ContractAddresses.feeJuiceAddress;
@@ -16,7 +18,7 @@ export class FeeJuicePortalTestingHarnessFactory {
16
18
  throw new Error('Fee Juice portal not deployed on L1');
17
19
  }
18
20
  const gasL2 = await FeeJuiceContract.at(ProtocolContractAddress.FeeJuice, wallet);
19
- return new GasBridgingTestHarness(aztecNode, pxeService, logger, gasL2, ethAccount, feeJuicePortalAddress, feeJuiceAddress, publicClient, walletClient);
21
+ return new GasBridgingTestHarness(aztecNode, aztecNodeAdmin, pxeService, logger, gasL2, ethAccount, feeJuicePortalAddress, feeJuiceAddress, l1ContractAddresses.feeAssetHandlerAddress, publicClient, walletClient);
20
22
  }
21
23
  static create(config) {
22
24
  const factory = new FeeJuicePortalTestingHarnessFactory(config);
@@ -28,39 +30,52 @@ export class FeeJuicePortalTestingHarnessFactory {
28
30
  * shared between cross chain tests.
29
31
  */ export class GasBridgingTestHarness {
30
32
  aztecNode;
33
+ aztecNodeAdmin;
31
34
  pxeService;
32
35
  logger;
33
36
  feeJuice;
34
37
  ethAccount;
35
38
  feeJuicePortalAddress;
36
39
  l1FeeJuiceAddress;
40
+ feeAssetHandlerAddress;
37
41
  publicClient;
38
42
  walletClient;
39
43
  l1TokenManager;
40
44
  feeJuicePortalManager;
41
- constructor(/** Aztec node */ aztecNode, /** Private eXecution Environment (PXE). */ pxeService, /** Logger. */ logger, /** L2 Token/Bridge contract. */ feeJuice, /** Eth account to interact with. */ ethAccount, /** Portal address. */ feeJuicePortalAddress, /** Underlying token for portal tests. */ l1FeeJuiceAddress, /** Viem Public client instance. */ publicClient, /** Viem Wallet Client instance. */ walletClient){
45
+ constructor(/** Aztec node */ aztecNode, /** Aztec node admin interface */ aztecNodeAdmin, /** Private eXecution Environment (PXE). */ pxeService, /** Logger. */ logger, /** L2 Token/Bridge contract. */ feeJuice, /** Eth account to interact with. */ ethAccount, /** Portal address. */ feeJuicePortalAddress, /** Underlying token for portal tests. */ l1FeeJuiceAddress, /** Fee asset handler address. */ feeAssetHandlerAddress, /** Viem Public client instance. */ publicClient, /** Viem Wallet Client instance. */ walletClient){
42
46
  this.aztecNode = aztecNode;
47
+ this.aztecNodeAdmin = aztecNodeAdmin;
43
48
  this.pxeService = pxeService;
44
49
  this.logger = logger;
45
50
  this.feeJuice = feeJuice;
46
51
  this.ethAccount = ethAccount;
47
52
  this.feeJuicePortalAddress = feeJuicePortalAddress;
48
53
  this.l1FeeJuiceAddress = l1FeeJuiceAddress;
54
+ this.feeAssetHandlerAddress = feeAssetHandlerAddress;
49
55
  this.publicClient = publicClient;
50
56
  this.walletClient = walletClient;
51
- this.feeJuicePortalManager = new L1FeeJuicePortalManager(this.feeJuicePortalAddress, this.l1FeeJuiceAddress, this.publicClient, this.walletClient, this.logger);
57
+ this.feeJuicePortalManager = new L1FeeJuicePortalManager(this.feeJuicePortalAddress, this.l1FeeJuiceAddress, this.feeAssetHandlerAddress, this.publicClient, this.walletClient, this.logger);
52
58
  this.l1TokenManager = this.feeJuicePortalManager.getTokenManager();
53
59
  }
54
60
  async mintTokensOnL1(amount, to = this.ethAccount) {
55
- const balanceBefore = await this.l1TokenManager.getL1TokenBalance(to.toString());
56
- await this.l1TokenManager.mint(amount, to.toString());
57
- expect(await this.l1TokenManager.getL1TokenBalance(to.toString())).toEqual(balanceBefore + amount);
61
+ // const balanceBefore = await this.l1TokenManager.getL1TokenBalance(to.toString());
62
+ await this.l1TokenManager.mint(to.toString());
63
+ const feeAssetL1 = getContract({
64
+ address: this.l1FeeJuiceAddress.toString(),
65
+ abi: TestERC20Abi,
66
+ client: this.walletClient
67
+ });
68
+ await feeAssetL1.write.mint([
69
+ to.toString(),
70
+ amount
71
+ ]);
72
+ // expect(await this.l1TokenManager.getL1TokenBalance(to.toString())).toEqual(balanceBefore + amount);
58
73
  }
59
74
  async getL1FeeJuiceBalance(address) {
60
75
  return await this.l1TokenManager.getL1TokenBalance(address.toString());
61
76
  }
62
- sendTokensToPortalPublic(bridgeAmount, l2Address, mint = false) {
63
- return this.feeJuicePortalManager.bridgeTokensPublic(l2Address, bridgeAmount, mint);
77
+ sendTokensToPortalPublic(bridgeAmount, l2Address) {
78
+ return this.feeJuicePortalManager.bridgeTokensPublic(l2Address, bridgeAmount, false);
64
79
  }
65
80
  async consumeMessageOnAztecAndClaimPrivately(owner, claim) {
66
81
  this.logger.info('Consuming messages on L2 Privately');
@@ -75,7 +90,8 @@ export class FeeJuicePortalTestingHarnessFactory {
75
90
  expect(balance).toBe(expectedBalance);
76
91
  }
77
92
  async prepareTokensOnL1(bridgeAmount, owner) {
78
- const claim = await this.sendTokensToPortalPublic(bridgeAmount, owner, true);
93
+ await this.mintTokensOnL1(bridgeAmount);
94
+ const claim = await this.sendTokensToPortalPublic(bridgeAmount, owner);
79
95
  const isSynced = async ()=>await this.aztecNode.isL1ToL2MessageSynced(Fr.fromHexString(claim.messageHash));
80
96
  await retryUntil(isSynced, `message ${claim.messageHash} sync`, 24, 1);
81
97
  // Progress by 2 L2 blocks so that the l1ToL2Message added above will be available to use on L2.
@@ -88,11 +104,10 @@ export class FeeJuicePortalTestingHarnessFactory {
88
104
  const claim = await this.prepareTokensOnL1(bridgeAmount, owner);
89
105
  // Consume L1 -> L2 message and claim tokens privately on L2
90
106
  await this.consumeMessageOnAztecAndClaimPrivately(owner, claim);
91
- await this.expectPublicBalanceOnL2(owner, bridgeAmount);
92
107
  }
93
108
  async advanceL2Block() {
94
109
  const initialBlockNumber = await this.aztecNode.getBlockNumber();
95
- await this.aztecNode.flushTxs();
110
+ await this.aztecNodeAdmin?.flushTxs();
96
111
  await retryUntil(async ()=>await this.aztecNode.getBlockNumber() >= initialBlockNumber + 1);
97
112
  }
98
113
  } // docs:end:cross_chain_test_harness
@@ -1 +1 @@
1
- {"version":3,"file":"uniswap_l1_l2.d.ts","sourceRoot":"","sources":["../../src/shared/uniswap_l1_l2.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,SAAS,EAGd,KAAK,MAAM,EACX,KAAK,GAAG,EAGT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EAGtB,MAAM,iBAAiB,CAAC;AAqBzB,2DAA2D;AAC3D,MAAM,MAAM,mBAAmB,GAAG;IAChC,0BAA0B;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,+CAA+C;IAC/C,GAAG,EAAE,GAAG,CAAC;IACT,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,YAAY,EAAE,gBAAgB,CAAC;IAC/B,mCAAmC;IACnC,YAAY,EAAE,gBAAgB,CAAC;IAC/B,wBAAwB;IACxB,WAAW,EAAE,aAAa,CAAC;IAC3B,0BAA0B;IAC1B,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO;IACP,uBAAuB,EAAE,2BAA2B,CAAC;IACrD,4BAA4B;IAC5B,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAGF,eAAO,MAAM,oBAAoB,UACxB,MAAM,QAAQ,mBAAmB,CAAC,WAChC,MAAM,QAAQ,IAAI,CAAC,2CA89B7B,CAAC"}
1
+ {"version":3,"file":"uniswap_l1_l2.d.ts","sourceRoot":"","sources":["../../src/shared/uniswap_l1_l2.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,SAAS,EAGd,KAAK,MAAM,EACX,KAAK,GAAG,EAGT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EACL,KAAK,2BAA2B,EAEhC,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EAGtB,MAAM,iBAAiB,CAAC;AAqBzB,2DAA2D;AAC3D,MAAM,MAAM,mBAAmB,GAAG;IAChC,0BAA0B;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,+CAA+C;IAC/C,GAAG,EAAE,GAAG,CAAC;IACT,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,YAAY,EAAE,gBAAgB,CAAC;IAC/B,mCAAmC;IACnC,YAAY,EAAE,gBAAgB,CAAC;IAC/B,wBAAwB;IACxB,WAAW,EAAE,aAAa,CAAC;IAC3B,0BAA0B;IAC1B,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO;IACP,uBAAuB,EAAE,2BAA2B,CAAC;IACrD,4BAA4B;IAC5B,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAGF,eAAO,MAAM,oBAAoB,UACxB,MAAM,QAAQ,mBAAmB,CAAC,WAChC,MAAM,QAAQ,IAAI,CAAC,2CA69B7B,CAAC"}