@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.
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +3 -0
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +3 -2
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +7 -7
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +0 -1
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +3 -18
- package/dest/e2e_deploy_contract/deploy_test.d.ts +2 -0
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
- package/dest/e2e_deploy_contract/deploy_test.js +2 -0
- package/dest/e2e_epochs/epochs_test.d.ts +1 -2
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +7 -6
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +20 -29
- package/dest/e2e_prover/e2e_prover_test.d.ts +2 -0
- package/dest/e2e_prover/e2e_prover_test.d.ts.map +1 -1
- package/dest/e2e_prover/e2e_prover_test.js +7 -8
- package/dest/e2e_token_contract/token_contract_test.d.ts +2 -1
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +3 -1
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +2 -4
- package/dest/fixtures/snapshot_manager.d.ts +4 -2
- package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
- package/dest/fixtures/snapshot_manager.js +17 -16
- package/dest/fixtures/utils.d.ts +5 -5
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +15 -9
- package/dest/shared/capture_private_execution_steps.d.ts +7 -0
- package/dest/shared/capture_private_execution_steps.d.ts.map +1 -0
- package/dest/shared/capture_private_execution_steps.js +40 -0
- package/dest/shared/cross_chain_test_harness.d.ts +2 -2
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +16 -4
- package/dest/shared/gas_portal_test_harness.d.ts +11 -1
- package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
- package/dest/shared/gas_portal_test_harness.js +27 -12
- package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.js +24 -16
- package/dest/simulators/lending_simulator.d.ts +3 -5
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +5 -13
- package/dest/spartan/setup_test_wallets.d.ts +1 -1
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +6 -4
- package/dest/spartan/utils.d.ts +18 -5
- package/dest/spartan/utils.d.ts.map +1 -1
- package/dest/spartan/utils.js +15 -6
- package/package.json +33 -31
- package/src/bench/utils.ts +3 -0
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +9 -5
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +3 -19
- package/src/e2e_deploy_contract/deploy_test.ts +3 -0
- package/src/e2e_epochs/epochs_test.ts +6 -5
- package/src/e2e_fees/fees_test.ts +21 -28
- package/src/e2e_prover/e2e_prover_test.ts +8 -7
- package/src/e2e_token_contract/token_contract_test.ts +4 -2
- package/src/fixtures/setup_p2p_test.ts +2 -4
- package/src/fixtures/snapshot_manager.ts +24 -10
- package/src/fixtures/utils.ts +26 -13
- package/src/guides/up_quick_start.sh +1 -2
- package/src/shared/capture_private_execution_steps.ts +43 -0
- package/src/shared/cross_chain_test_harness.ts +14 -3
- package/src/shared/gas_portal_test_harness.ts +29 -9
- package/src/shared/uniswap_l1_l2.ts +16 -16
- package/src/simulators/lending_simulator.ts +7 -12
- package/src/spartan/setup_test_wallets.ts +7 -7
- 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
|
-
|
|
310
|
-
|
|
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
|
-
|
|
402
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
}
|
package/dest/fixtures/utils.d.ts
CHANGED
|
@@ -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
|
-
* @
|
|
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
|
|
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":";;AACA,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,KAAK,eAAe,EAAsC,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,YAAY,EACjB,KAAK,SAAS,EAEd,KAAK,cAAc,EAEnB,KAAK,MAAM,EACX,KAAK,GAAG,EAER,KAAK,MAAM,EAMZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/utils.ts"],"names":[],"mappings":"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"}
|
package/dest/fixtures/utils.js
CHANGED
|
@@ -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 {
|
|
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
|
-
* @
|
|
89
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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(
|
|
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
|
|
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":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,UAAU,EAEV,uBAAuB,EACvB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,GAAG,EACR,KAAK,MAAM,EAEZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
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(
|
|
57
|
-
|
|
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
|
|
63
|
-
return this.feeJuicePortalManager.bridgeTokensPublic(l2Address, bridgeAmount,
|
|
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
|
-
|
|
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.
|
|
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,
|
|
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"}
|