@aztec/end-to-end 4.0.0-nightly.20260108 → 4.0.0-nightly.20260110
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 +4 -4
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +8 -5
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +10 -4
- 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 +34 -18
- package/dest/e2e_l1_publisher/write_json.d.ts +1 -1
- package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
- package/dest/e2e_l1_publisher/write_json.js +2 -5
- package/dest/shared/cross_chain_test_harness.d.ts +3 -3
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +2 -2
- package/dest/shared/index.d.ts +2 -2
- package/dest/shared/index.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.d.ts +3 -28
- package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.js +39 -21
- package/package.json +38 -38
- package/src/bench/utils.ts +11 -7
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +40 -22
- package/src/e2e_l1_publisher/write_json.ts +2 -5
- package/src/shared/cross_chain_test_harness.ts +3 -9
- package/src/shared/index.ts +1 -1
- package/src/shared/uniswap_l1_l2.ts +46 -58
package/dest/bench/utils.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { type SentTx, type WaitOpts } from '@aztec/aztec.js/contracts';
|
|
2
2
|
import { BenchmarkingContract } from '@aztec/noir-test-contracts.js/Benchmarking';
|
|
3
|
-
import type {
|
|
3
|
+
import type { MetricDefinition } from '@aztec/telemetry-client';
|
|
4
4
|
import type { BenchmarkTelemetryClient } from '@aztec/telemetry-client/bench';
|
|
5
5
|
import { type EndToEndContext, type SetupOptions } from '../fixtures/utils.js';
|
|
6
6
|
/**
|
|
7
7
|
* Setup for benchmarks. Initializes a remote node with a single account and deploys a benchmark contract.
|
|
8
8
|
*/
|
|
9
9
|
export declare function benchmarkSetup(opts: Partial<SetupOptions> & {
|
|
10
|
-
/** What metrics to export */ metrics: (
|
|
10
|
+
/** What metrics to export */ metrics: (MetricDefinition | MetricFilter)[];
|
|
11
11
|
/** Where to output the benchmark data (defaults to BENCH_OUTPUT or bench.json) */
|
|
12
12
|
benchOutput?: string;
|
|
13
13
|
}): Promise<{
|
|
@@ -17,7 +17,7 @@ export declare function benchmarkSetup(opts: Partial<SetupOptions> & {
|
|
|
17
17
|
sequencer: import("../../../sequencer-client/dest/index.js").SequencerClient;
|
|
18
18
|
}>;
|
|
19
19
|
type MetricFilter = {
|
|
20
|
-
source:
|
|
20
|
+
source: MetricDefinition;
|
|
21
21
|
transform: (value: number) => number;
|
|
22
22
|
name: string;
|
|
23
23
|
unit?: string;
|
|
@@ -41,4 +41,4 @@ export type GithubActionBenchmarkResult = {
|
|
|
41
41
|
export declare function sendTxs(txCount: number, context: EndToEndContext, contract: BenchmarkingContract, heavyPublicCompute?: boolean): Promise<SentTx[]>;
|
|
42
42
|
export declare function waitTxs(txs: SentTx[], context: EndToEndContext, txWaitOpts?: WaitOpts): Promise<void>;
|
|
43
43
|
export {};
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iZW5jaC91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWEsS0FBSyxNQUFNLEVBQUUsS0FBSyxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVsRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNsRixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUE0Qyx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBS3hILE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBRSxLQUFLLFlBQVksRUFBUyxNQUFNLHNCQUFzQixDQUFDO0FBRXRGOztHQUVHO0FBQ0gsd0JBQXNCLGNBQWMsQ0FDbEMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRztJQUM1Qiw2QkFBNkIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDO0lBQzNFLGtGQUFrRjtJQUNsRixXQUFXLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDdEI7Ozs7O0dBeUJGO0FBRUQsS0FBSyxZQUFZLEdBQUc7SUFDbEIsTUFBTSxFQUFFLGdCQUFnQixDQUFDO0lBQ3pCLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEtBQUssTUFBTSxDQUFDO0lBQ3JDLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixJQUFJLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDZixDQUFDO0FBR0YsTUFBTSxNQUFNLDJCQUEyQixHQUFHO0lBQ3hDLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2QsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2YsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNoQixDQUFDO0FBb0VGOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQXNCLE9BQU8sQ0FDM0IsT0FBTyxFQUFFLE1BQU0sRUFDZixPQUFPLEVBQUUsZUFBZSxFQUN4QixRQUFRLEVBQUUsb0JBQW9CLEVBQzlCLGtCQUFrQixHQUFFLE9BQWUsR0FDbEMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBTW5CO0FBRUQsd0JBQXNCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLENBQUMsRUFBRSxRQUFRLGlCQUkzRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bench/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bench/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAA4C,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAKxH,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAS,MAAM,sBAAsB,CAAC;AAEtF;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG;IAC5B,6BAA6B,CAAC,OAAO,EAAE,CAAC,gBAAgB,GAAG,YAAY,CAAC,EAAE,CAAC;IAC3E,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;;;;;GAyBF;AAED,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAGF,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAoEF;;;;;;;;GAQG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,oBAAoB,EAC9B,kBAAkB,GAAE,OAAe,GAClC,OAAO,CAAC,MAAM,EAAE,CAAC,CAMnB;AAED,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,QAAQ,iBAI3F"}
|
package/dest/bench/utils.js
CHANGED
|
@@ -46,17 +46,20 @@ import { setup } from '../fixtures/utils.js';
|
|
|
46
46
|
sequencer
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
|
+
function isMetricDefinition(f) {
|
|
50
|
+
return 'description' in f;
|
|
51
|
+
}
|
|
49
52
|
function formatMetricsForGithubBenchmarkAction(data, filter) {
|
|
50
|
-
const allFilters = filter.map((f)=>
|
|
51
|
-
name: f,
|
|
53
|
+
const allFilters = filter.map((f)=>isMetricDefinition(f) ? {
|
|
54
|
+
name: f.name,
|
|
52
55
|
source: f,
|
|
53
56
|
transform: (x)=>x,
|
|
54
|
-
unit:
|
|
57
|
+
unit: f.unit
|
|
55
58
|
} : f);
|
|
56
59
|
return data.flatMap((meter)=>{
|
|
57
|
-
return meter.metrics.filter((metric)=>allFilters.map((f)=>f.source).includes(metric.name)).map((metric)=>[
|
|
60
|
+
return meter.metrics.filter((metric)=>allFilters.map((f)=>f.source.name).includes(metric.name)).map((metric)=>[
|
|
58
61
|
metric,
|
|
59
|
-
allFilters.find((f)=>f.source === metric.name)
|
|
62
|
+
allFilters.find((f)=>f.source.name === metric.name)
|
|
60
63
|
]).map(([metric, filter])=>({
|
|
61
64
|
name: `${meter.name}/${filter.name}`,
|
|
62
65
|
unit: filter.unit ?? metric.unit ?? 'unknown',
|
|
@@ -2,9 +2,12 @@ import type { AztecNodeConfig } from '@aztec/aztec-node';
|
|
|
2
2
|
import { AztecAddress, EthAddress } from '@aztec/aztec.js/addresses';
|
|
3
3
|
import { type Logger } from '@aztec/aztec.js/log';
|
|
4
4
|
import type { AztecNode } from '@aztec/aztec.js/node';
|
|
5
|
+
import type { TxReceipt } from '@aztec/aztec.js/tx';
|
|
5
6
|
import { CheatCodes } from '@aztec/aztec/testing';
|
|
7
|
+
import { InboxContract, OutboxContract, RollupContract } from '@aztec/ethereum/contracts';
|
|
6
8
|
import type { DeployAztecL1ContractsArgs, DeployAztecL1ContractsReturnType } from '@aztec/ethereum/deploy-aztec-l1-contracts';
|
|
7
9
|
import type { ExtendedViemWalletClient } from '@aztec/ethereum/types';
|
|
10
|
+
import { EpochNumber } from '@aztec/foundation/branded-types';
|
|
8
11
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
9
12
|
import { TokenBridgeContract } from '@aztec/noir-contracts.js/TokenBridge';
|
|
10
13
|
import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
|
|
@@ -14,6 +17,7 @@ import type { SetupOptions } from '../fixtures/utils.js';
|
|
|
14
17
|
import { CrossChainTestHarness } from '../shared/cross_chain_test_harness.js';
|
|
15
18
|
export declare class CrossChainMessagingTest {
|
|
16
19
|
private snapshotManager;
|
|
20
|
+
private requireEpochProven;
|
|
17
21
|
logger: Logger;
|
|
18
22
|
aztecNode: AztecNode;
|
|
19
23
|
aztecNodeConfig: AztecNodeConfig;
|
|
@@ -28,15 +32,17 @@ export declare class CrossChainMessagingTest {
|
|
|
28
32
|
ethAccount: EthAddress;
|
|
29
33
|
l2Token: TokenContract;
|
|
30
34
|
l2Bridge: TokenBridgeContract;
|
|
31
|
-
|
|
32
|
-
|
|
35
|
+
rollup: RollupContract;
|
|
36
|
+
inbox: InboxContract;
|
|
37
|
+
outbox: OutboxContract;
|
|
33
38
|
cheatCodes: CheatCodes;
|
|
34
39
|
deployL1ContractsValues: DeployAztecL1ContractsReturnType;
|
|
35
40
|
constructor(testName: string, opts?: SetupOptions, deployL1ContractsArgs?: Partial<DeployAztecL1ContractsArgs>);
|
|
36
|
-
assumeProven(): Promise<void>;
|
|
37
41
|
setup(): Promise<void>;
|
|
42
|
+
advanceToEpochProven(l2TxReceipt: TxReceipt): Promise<EpochNumber>;
|
|
43
|
+
catchUpProvenChain(): Promise<void>;
|
|
38
44
|
snapshot: <T>(name: string, apply: (context: SubsystemsContext) => Promise<T>, restore?: (snapshotData: T, context: SubsystemsContext) => Promise<void>) => Promise<void>;
|
|
39
45
|
teardown(): Promise<void>;
|
|
40
46
|
applyBaseSnapshots(): Promise<void>;
|
|
41
47
|
}
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NfY2hhaW5fbWVzc2FnaW5nX3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lMmVfY3Jvc3NfY2hhaW5fbWVzc2FnaW5nL2Nyb3NzX2NoYWluX21lc3NhZ2luZ190ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFckUsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRixPQUFPLEtBQUssRUFDViwwQkFBMEIsRUFDMUIsZ0NBQWdDLEVBQ2pDLE1BQU0sMkNBQTJDLENBQUM7QUFFbkQsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RSxPQUFPLEVBQW9CLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUc1RCxPQUFPLEVBRUwsS0FBSyxpQkFBaUIsRUFJdkIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUk5RSxxQkFBYSx1QkFBdUI7SUFDbEMsT0FBTyxDQUFDLGVBQWUsQ0FBbUI7SUFDMUMsT0FBTyxDQUFDLGtCQUFrQixDQUFVO0lBQ3BDLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixTQUFTLEVBQUcsU0FBUyxDQUFDO0lBQ3RCLGVBQWUsRUFBRyxlQUFlLENBQUM7SUFDbEMsY0FBYyxFQUFHLGNBQWMsQ0FBQztJQUNoQyxHQUFHLEVBQUcsaUJBQWlCLENBQUM7SUFFeEIsUUFBUSxFQUFHLHdCQUF3QixHQUFHLFNBQVMsQ0FBQztJQUVoRCxNQUFNLEVBQUcsVUFBVSxDQUFDO0lBQ3BCLFlBQVksRUFBRyxZQUFZLENBQUM7SUFDNUIsWUFBWSxFQUFHLFlBQVksQ0FBQztJQUM1QixZQUFZLEVBQUcsWUFBWSxDQUFDO0lBQzVCLHFCQUFxQixFQUFHLHFCQUFxQixDQUFDO0lBQzlDLFVBQVUsRUFBRyxVQUFVLENBQUM7SUFDeEIsT0FBTyxFQUFHLGFBQWEsQ0FBQztJQUN4QixRQUFRLEVBQUcsbUJBQW1CLENBQUM7SUFFL0IsTUFBTSxFQUFHLGNBQWMsQ0FBQztJQUN4QixLQUFLLEVBQUcsYUFBYSxDQUFDO0lBQ3RCLE1BQU0sRUFBRyxjQUFjLENBQUM7SUFDeEIsVUFBVSxFQUFHLFVBQVUsQ0FBQztJQUV4Qix1QkFBdUIsRUFBRyxnQ0FBZ0MsQ0FBQztJQUUzRCxZQUNFLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLElBQUksR0FBRSxZQUFpQixFQUN2QixxQkFBcUIsR0FBRSxPQUFPLENBQUMsMEJBQTBCLENBQU0sRUFRaEU7SUFFSyxLQUFLLGtCQWFWO0lBRUssb0JBQW9CLENBQUMsV0FBVyxFQUFFLFNBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBVXZFO0lBRUssa0JBQWtCLGtCQUt2QjtJQUVELFFBQVEsR0FBSSxDQUFDLDhKQUkyRDtJQUVsRSxRQUFRLGtCQUViO0lBRUssa0JBQWtCLGtCQStFdkI7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cross_chain_messaging_test.d.ts","sourceRoot":"","sources":["../../src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"cross_chain_messaging_test.d.ts","sourceRoot":"","sources":["../../src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,KAAK,EACV,0BAA0B,EAC1B,gCAAgC,EACjC,MAAM,2CAA2C,CAAC;AAEnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAoB,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAGhF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAI9E,qBAAa,uBAAuB;IAClC,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,kBAAkB,CAAU;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAG,SAAS,CAAC;IACtB,eAAe,EAAG,eAAe,CAAC;IAClC,cAAc,EAAG,cAAc,CAAC;IAChC,GAAG,EAAG,iBAAiB,CAAC;IAExB,QAAQ,EAAG,wBAAwB,GAAG,SAAS,CAAC;IAEhD,MAAM,EAAG,UAAU,CAAC;IACpB,YAAY,EAAG,YAAY,CAAC;IAC5B,YAAY,EAAG,YAAY,CAAC;IAC5B,YAAY,EAAG,YAAY,CAAC;IAC5B,qBAAqB,EAAG,qBAAqB,CAAC;IAC9C,UAAU,EAAG,UAAU,CAAC;IACxB,OAAO,EAAG,aAAa,CAAC;IACxB,QAAQ,EAAG,mBAAmB,CAAC;IAE/B,MAAM,EAAG,cAAc,CAAC;IACxB,KAAK,EAAG,aAAa,CAAC;IACtB,MAAM,EAAG,cAAc,CAAC;IACxB,UAAU,EAAG,UAAU,CAAC;IAExB,uBAAuB,EAAG,gCAAgC,CAAC;IAE3D,YACE,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,YAAiB,EACvB,qBAAqB,GAAE,OAAO,CAAC,0BAA0B,CAAM,EAQhE;IAEK,KAAK,kBAaV;IAEK,oBAAoB,CAAC,WAAW,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAUvE;IAEK,kBAAkB,kBAKvB;IAED,QAAQ,GAAI,CAAC,8JAI2D;IAElE,QAAQ,kBAEb;IAEK,kBAAkB,kBA+EvB;CACF"}
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import { EthAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
+
import { waitForProven } from '@aztec/aztec.js/contracts';
|
|
2
3
|
import { createLogger } from '@aztec/aztec.js/log';
|
|
3
4
|
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
5
|
+
import { InboxContract, OutboxContract, RollupContract } from '@aztec/ethereum/contracts';
|
|
4
6
|
import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
|
|
5
|
-
import {
|
|
7
|
+
import { CheckpointNumber, EpochNumber } from '@aztec/foundation/branded-types';
|
|
8
|
+
import { sleep } from '@aztec/foundation/sleep';
|
|
9
|
+
import { TestERC20Abi, TestERC20Bytecode } from '@aztec/l1-artifacts';
|
|
6
10
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
7
11
|
import { TokenBridgeContract } from '@aztec/noir-contracts.js/TokenBridge';
|
|
8
|
-
import { getContract } from 'viem';
|
|
9
12
|
import { MNEMONIC } from '../fixtures/fixtures.js';
|
|
10
13
|
import { createSnapshotManager, deployAccounts, publicDeployAccounts } from '../fixtures/snapshot_manager.js';
|
|
11
14
|
import { CrossChainTestHarness } from '../shared/cross_chain_test_harness.js';
|
|
12
15
|
const { E2E_DATA_PATH: dataPath } = process.env;
|
|
13
16
|
export class CrossChainMessagingTest {
|
|
14
17
|
snapshotManager;
|
|
18
|
+
requireEpochProven;
|
|
15
19
|
logger;
|
|
16
20
|
aztecNode;
|
|
17
21
|
aztecNodeConfig;
|
|
@@ -26,6 +30,7 @@ export class CrossChainMessagingTest {
|
|
|
26
30
|
ethAccount;
|
|
27
31
|
l2Token;
|
|
28
32
|
l2Bridge;
|
|
33
|
+
rollup;
|
|
29
34
|
inbox;
|
|
30
35
|
outbox;
|
|
31
36
|
cheatCodes;
|
|
@@ -36,9 +41,7 @@ export class CrossChainMessagingTest {
|
|
|
36
41
|
initialValidators: [],
|
|
37
42
|
...deployL1ContractsArgs
|
|
38
43
|
});
|
|
39
|
-
|
|
40
|
-
async assumeProven() {
|
|
41
|
-
await this.cheatCodes.rollup.markAsProven();
|
|
44
|
+
this.requireEpochProven = opts.startProverNode ?? false;
|
|
42
45
|
}
|
|
43
46
|
async setup() {
|
|
44
47
|
this.ctx = await this.snapshotManager.setup();
|
|
@@ -48,6 +51,27 @@ export class CrossChainMessagingTest {
|
|
|
48
51
|
this.cheatCodes = this.ctx.cheatCodes;
|
|
49
52
|
this.deployL1ContractsValues = this.ctx.deployL1ContractsValues;
|
|
50
53
|
this.aztecNodeAdmin = this.ctx.aztecNode;
|
|
54
|
+
if (this.requireEpochProven) {
|
|
55
|
+
// Turn off the watcher to prevent it from keep marking blocks as proven.
|
|
56
|
+
this.ctx.watcher.setIsMarkingAsProven(false);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
async advanceToEpochProven(l2TxReceipt) {
|
|
60
|
+
const epoch = await this.rollup.getEpochNumberForCheckpoint(CheckpointNumber.fromBlockNumber(l2TxReceipt.blockNumber));
|
|
61
|
+
// Warp to the next epoch.
|
|
62
|
+
await this.cheatCodes.rollup.advanceToEpoch(EpochNumber(epoch + 1));
|
|
63
|
+
// Wait for the tx to be proven.
|
|
64
|
+
await waitForProven(this.aztecNode, l2TxReceipt, {
|
|
65
|
+
provenTimeout: 300
|
|
66
|
+
});
|
|
67
|
+
// Return the epoch the tx is in.
|
|
68
|
+
return epoch;
|
|
69
|
+
}
|
|
70
|
+
async catchUpProvenChain() {
|
|
71
|
+
const bn = await this.aztecNode.getBlockNumber();
|
|
72
|
+
while(await this.aztecNode.getProvenBlockNumber() < bn){
|
|
73
|
+
await sleep(1000);
|
|
74
|
+
}
|
|
51
75
|
}
|
|
52
76
|
snapshot = (name, apply, restore = ()=>Promise.resolve())=>this.snapshotManager.snapshot(name, apply, restore);
|
|
53
77
|
async teardown() {
|
|
@@ -89,20 +113,12 @@ export class CrossChainMessagingTest {
|
|
|
89
113
|
this.ethAccount = EthAddress.fromString(crossChainContext.ethAccount.toString());
|
|
90
114
|
const tokenPortalAddress = EthAddress.fromString(crossChainContext.tokenPortal.toString());
|
|
91
115
|
const l1Client = createExtendedL1Client(this.aztecNodeConfig.l1RpcUrls, MNEMONIC);
|
|
92
|
-
const inbox = getContract({
|
|
93
|
-
address: this.aztecNodeConfig.l1Contracts.inboxAddress.toString(),
|
|
94
|
-
abi: InboxAbi,
|
|
95
|
-
client: l1Client
|
|
96
|
-
});
|
|
97
|
-
const outbox = getContract({
|
|
98
|
-
address: this.aztecNodeConfig.l1Contracts.outboxAddress.toString(),
|
|
99
|
-
abi: OutboxAbi,
|
|
100
|
-
client: l1Client
|
|
101
|
-
});
|
|
102
|
-
this.crossChainTestHarness = new CrossChainTestHarness(this.aztecNode, this.logger, this.l2Token, this.l2Bridge, this.ethAccount, tokenPortalAddress, crossChainContext.underlying, l1Client, this.aztecNodeConfig.l1Contracts, this.wallet, this.ownerAddress);
|
|
103
116
|
this.l1Client = l1Client;
|
|
104
|
-
|
|
105
|
-
this.
|
|
117
|
+
const l1Contracts = this.aztecNodeConfig.l1Contracts;
|
|
118
|
+
this.rollup = new RollupContract(l1Client, l1Contracts.rollupAddress.toString());
|
|
119
|
+
this.inbox = new InboxContract(l1Client, l1Contracts.inboxAddress.toString());
|
|
120
|
+
this.outbox = new OutboxContract(l1Client, l1Contracts.outboxAddress.toString());
|
|
121
|
+
this.crossChainTestHarness = new CrossChainTestHarness(this.aztecNode, this.logger, this.l2Token, this.l2Bridge, this.ethAccount, tokenPortalAddress, crossChainContext.underlying, l1Client, this.aztecNodeConfig.l1Contracts, this.wallet, this.ownerAddress);
|
|
106
122
|
return Promise.resolve();
|
|
107
123
|
});
|
|
108
124
|
}
|
|
@@ -7,4 +7,4 @@ import { BatchedBlob, Blob } from '@aztec/blob-lib';
|
|
|
7
7
|
* The json object must be put into
|
|
8
8
|
*/
|
|
9
9
|
export declare function writeJson(fileName: string, block: L2Block, l1ToL2Content: Fr[], blobs: Blob[], batchedBlob: BatchedBlob, recipientAddress: AztecAddress, deployerAddress: `0x${string}`): Promise<void>;
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGVfanNvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2UyZV9sMV9wdWJsaXNoZXIvd3JpdGVfanNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUE2RCxNQUFNLGlCQUFpQixDQUFDO0FBTy9HOzs7R0FHRztBQUNILHdCQUFzQixTQUFTLENBQzdCLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLEtBQUssRUFBRSxPQUFPLEVBQ2QsYUFBYSxFQUFFLEVBQUUsRUFBRSxFQUNuQixLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQ2IsV0FBVyxFQUFFLFdBQVcsRUFDeEIsZ0JBQWdCLEVBQUUsWUFBWSxFQUM5QixlQUFlLEVBQUUsS0FBSyxNQUFNLEVBQUUsR0FDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQW1EZiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write_json.d.ts","sourceRoot":"","sources":["../../src/e2e_l1_publisher/write_json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,IAAI,EAA6D,MAAM,iBAAiB,CAAC;AAO/G;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,EAAE,EAAE,EACnB,KAAK,EAAE,IAAI,EAAE,EACb,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,YAAY,EAC9B,eAAe,EAAE,KAAK,MAAM,EAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"write_json.d.ts","sourceRoot":"","sources":["../../src/e2e_l1_publisher/write_json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,IAAI,EAA6D,MAAM,iBAAiB,CAAC;AAO/G;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,EAAE,EAAE,EACnB,KAAK,EAAE,IAAI,EAAE,EACb,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,YAAY,EAC9B,eAAe,EAAE,KAAK,MAAM,EAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CAmDf"}
|
|
@@ -34,11 +34,8 @@ const AZTEC_GENERATE_TEST_DATA = !!process.env.AZTEC_GENERATE_TEST_DATA;
|
|
|
34
34
|
header: {
|
|
35
35
|
lastArchiveRoot: asHex(block.header.lastArchive.root),
|
|
36
36
|
blockHeadersHash: asHex(block.header.blockHeadersHash),
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
inHash: asHex(block.header.contentCommitment.inHash),
|
|
40
|
-
outHash: asHex(block.header.contentCommitment.outHash)
|
|
41
|
-
},
|
|
37
|
+
blobsHash: asHex(block.header.blobsHash),
|
|
38
|
+
inHash: asHex(block.header.inHash),
|
|
42
39
|
slotNumber: Number(block.header.globalVariables.slotNumber),
|
|
43
40
|
timestamp: Number(block.header.globalVariables.timestamp),
|
|
44
41
|
coinbase: asHex(block.header.globalVariables.coinbase, 40),
|
|
@@ -10,7 +10,7 @@ import type { TxReceipt } from '@aztec/aztec.js/tx';
|
|
|
10
10
|
import type { Wallet } from '@aztec/aztec.js/wallet';
|
|
11
11
|
import type { L1ContractAddresses } from '@aztec/ethereum/l1-contract-addresses';
|
|
12
12
|
import type { ExtendedViemWalletClient } from '@aztec/ethereum/types';
|
|
13
|
-
import {
|
|
13
|
+
import { EpochNumber } from '@aztec/foundation/branded-types';
|
|
14
14
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
15
15
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
16
16
|
import { TokenBridgeContract } from '@aztec/noir-contracts.js/TokenBridge';
|
|
@@ -115,7 +115,7 @@ export declare class CrossChainTestHarness {
|
|
|
115
115
|
getL2PublicBalanceOf(owner: AztecAddress): Promise<any>;
|
|
116
116
|
expectPublicBalanceOnL2(owner: AztecAddress, expectedBalance: bigint): Promise<void>;
|
|
117
117
|
getL2ToL1MessageLeaf(withdrawAmount: bigint, callerOnL1?: EthAddress): Promise<Fr>;
|
|
118
|
-
withdrawFundsFromBridgeOnL1(amount: bigint,
|
|
118
|
+
withdrawFundsFromBridgeOnL1(amount: bigint, epochNumber: EpochNumber, messageIndex: bigint, siblingPath: SiblingPath<number>): Promise<void>;
|
|
119
119
|
transferToPrivateOnL2(shieldAmount: bigint): Promise<void>;
|
|
120
120
|
transferToPublicOnL2(amount: bigint, authwitNonce?: Fr): Promise<void>;
|
|
121
121
|
/**
|
|
@@ -128,4 +128,4 @@ export declare class CrossChainTestHarness {
|
|
|
128
128
|
makeMessageConsumable(msgHash: Fr | Hex): Promise<void>;
|
|
129
129
|
toCrossChainContext(): CrossChainContext;
|
|
130
130
|
}
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NfY2hhaW5fdGVzdF9oYXJuZXNzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2hhcmVkL2Nyb3NzX2NoYWluX3Rlc3RfaGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVELE9BQU8sRUFHTCxLQUFLLGFBQWEsRUFDbEIsS0FBSywwQkFBMEIsRUFDaEMsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUMsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFckQsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RCxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0s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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cross_chain_test_harness.d.ts","sourceRoot":"","sources":["../../src/shared/cross_chain_test_harness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,0BAA0B,EAChC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAE3E,OAAO,EAAE,KAAK,GAAG,EAAe,MAAM,MAAM,CAAC;AAI7C;;;;;;;;;GASG;AACH,wBAAsB,0CAA0C,CAC9D,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,wBAAwB,EAClC,qBAAqB,EAAE,UAAU,EACjC,KAAK,EAAE,YAAY,EACnB,sBAAsB,EAAE,UAAU,GACjC,OAAO,CAAC;IACT;;OAEG;IACH,KAAK,EAAE,aAAa,CAAC;IACrB;;OAEG;IACH,MAAM,EAAE,mBAAmB,CAAC;IAC5B;;OAEG;IACH,kBAAkB,EAAE,UAAU,CAAC;IAC/B;;OAEG;IACH,WAAW,EAAE,GAAG,CAAC;IACjB;;OAEG;IACH,eAAe,EAAE,GAAG,CAAC;CACtB,CAAC,CA8CD;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,UAAU,CAAC;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,qBAAa,qBAAqB;IA2CvB,SAAS,EAAE,SAAS;IAEpB,MAAM,EAAE,MAAM;IAGd,OAAO,EAAE,aAAa;IAEtB,QAAQ,EAAE,mBAAmB;IAG7B,UAAU,EAAE,UAAU;IAGtB,kBAAkB,EAAE,UAAU;IAE9B,sBAAsB,EAAE,UAAU;IAElC,QAAQ,EAAE,wBAAwB;aAGzB,mBAAmB,EAAE,mBAAmB;aAGxC,MAAM,EAAE,MAAM;aAGd,YAAY,EAAE,YAAY;IApE5C,OAAa,GAAG,CACd,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,wBAAwB,EAClC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,sBAAsB,EAAE,UAAU,GACjC,OAAO,CAAC,qBAAqB,CAAC,CA4BhC;IAED,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuB;IAE5D;IACE,2BAA2B;IACpB,SAAS,EAAE,SAAS;IAC3B,cAAc;IACP,MAAM,EAAE,MAAM;IAErB,yBAAyB;IAClB,OAAO,EAAE,aAAa;IAC7B,gCAAgC;IACzB,QAAQ,EAAE,mBAAmB;IAEpC,oCAAoC;IAC7B,UAAU,EAAE,UAAU;IAE7B,sBAAsB;IACf,kBAAkB,EAAE,UAAU;IACrC,yCAAyC;IAClC,sBAAsB,EAAE,UAAU;IACzC,qCAAqC;IAC9B,QAAQ,EAAE,wBAAwB;IAEzC,gDAAgD;IAChC,mBAAmB,EAAE,mBAAmB;IAExD,4CAA4C;IAC5B,MAAM,EAAE,MAAM;IAE9B,uCAAuC;IACvB,YAAY,EAAE,YAAY,EAW3C;IAEK,cAAc,CAAC,MAAM,EAAE,MAAM,iBAUlC;IAED,cAAc,CAAC,OAAO,EAAE,UAAU,mBAEjC;IAED,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,UAAQ,0BAE1D;IAED,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,UAAQ,uCAE3D;IAEK,oBAAoB,CAAC,MAAM,EAAE,MAAM,iBAGxC;IAEK,qBAAqB,CAAC,MAAM,EAAE,MAAM,iBAEzC;IAEK,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,iBAM/E;IAEK,qCAAqC,CACzC,KAAK,EAAE,IAAI,CAAC,0BAA0B,EAAE,aAAa,GAAG,aAAa,GAAG,kBAAkB,GAAG,WAAW,CAAC,iBAQ1G;IAEK,oCAAoC,CACxC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,GAAG,aAAa,GAAG,kBAAkB,CAAC,iBAQ/E;IAEK,4BAA4B,CAChC,cAAc,EAAE,MAAM,EACtB,YAAY,gBAAc,EAC1B,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAO9B;IAEK,2BAA2B,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,GAAE,EAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAOlH;IAEK,qBAAqB,CAAC,KAAK,EAAE,YAAY,gBAE9C;IAEK,wBAAwB,CAAC,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAI1E;IAEK,oBAAoB,CAAC,KAAK,EAAE,YAAY,gBAE7C;IAEK,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAGzE;IAEK,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,GAAE,UAA4B,GAAG,OAAO,CAAC,EAAE,CAAC,CAOxG;IAED,2BAA2B,CACzB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,
|
|
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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"}
|
|
@@ -203,8 +203,8 @@ import { mintTokensToPrivate } from '../fixtures/token_utils.js';
|
|
|
203
203
|
async getL2ToL1MessageLeaf(withdrawAmount, callerOnL1 = EthAddress.ZERO) {
|
|
204
204
|
return await this.l1TokenPortalManager.getL2ToL1MessageLeaf(withdrawAmount, this.ethAccount, this.l2Bridge.address, callerOnL1);
|
|
205
205
|
}
|
|
206
|
-
withdrawFundsFromBridgeOnL1(amount,
|
|
207
|
-
return this.l1TokenPortalManager.withdrawFunds(amount, this.ethAccount,
|
|
206
|
+
withdrawFundsFromBridgeOnL1(amount, epochNumber, messageIndex, siblingPath) {
|
|
207
|
+
return this.l1TokenPortalManager.withdrawFunds(amount, this.ethAccount, epochNumber, messageIndex, siblingPath);
|
|
208
208
|
}
|
|
209
209
|
async transferToPrivateOnL2(shieldAmount) {
|
|
210
210
|
this.logger.info('Transferring to private on L2');
|
package/dest/shared/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { uniswapL1L2TestSuite
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export { uniswapL1L2TestSuite } from './uniswap_l1_l2.js';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaGFyZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,28 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import { CheatCodes } from '@aztec/aztec/testing';
|
|
5
|
-
import type { DeployAztecL1ContractsReturnType } from '@aztec/ethereum/deploy-aztec-l1-contracts';
|
|
6
|
-
import type { ExtendedViemWalletClient } from '@aztec/ethereum/types';
|
|
7
|
-
import type { TestWallet } from '@aztec/test-wallet/server';
|
|
8
|
-
/** Objects to be returned by the uniswap setup function */
|
|
9
|
-
export type UniswapSetupContext = {
|
|
10
|
-
/** Aztec Node instance */
|
|
11
|
-
aztecNode: AztecNode;
|
|
12
|
-
/** Logger instance named as the current test. */
|
|
13
|
-
logger: Logger;
|
|
14
|
-
/** The L1 wallet client, extended with public actions. */
|
|
15
|
-
l1Client: ExtendedViemWalletClient;
|
|
16
|
-
/** The wallet. */
|
|
17
|
-
wallet: TestWallet;
|
|
18
|
-
/** The owner address. */
|
|
19
|
-
ownerAddress: AztecAddress;
|
|
20
|
-
/** The sponsor wallet. */
|
|
21
|
-
sponsorAddress: AztecAddress;
|
|
22
|
-
/** */
|
|
23
|
-
deployL1ContractsValues: DeployAztecL1ContractsReturnType;
|
|
24
|
-
/** Cheat codes instance. */
|
|
25
|
-
cheatCodes: CheatCodes;
|
|
26
|
-
};
|
|
27
|
-
export declare const uniswapL1L2TestSuite: (setup: () => Promise<UniswapSetupContext>, cleanup: () => Promise<void>, expectedForkBlockNumber?: number) => void;
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pc3dhcF9sMV9sMi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NoYXJlZC91bmlzd2FwX2wxX2wyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQWMsTUFBTSwyQkFBMkIsQ0FBQztBQUlyRSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbEQsT0FBTyxLQUFLLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUVsRyxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBT3RFLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBaUI1RCwyREFBMkQ7QUFDM0QsTUFBTSxNQUFNLG1CQUFtQixHQUFHO0lBQ2hDLDBCQUEwQjtJQUMxQixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLGlEQUFpRDtJQUNqRCxNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsMERBQTBEO0lBQzFELFFBQVEsRUFBRSx3QkFBd0IsQ0FBQztJQUNuQyxrQkFBa0I7SUFDbEIsTUFBTSxFQUFFLFVBQVUsQ0FBQztJQUNuQix5QkFBeUI7SUFDekIsWUFBWSxFQUFFLFlBQVksQ0FBQztJQUMzQiwwQkFBMEI7SUFDMUIsY0FBYyxFQUFFLFlBQVksQ0FBQztJQUM3QixPQUFPO0lBQ1AsdUJBQXVCLEVBQUUsZ0NBQWdDLENBQUM7SUFDMUQsNEJBQTRCO0lBQzVCLFVBQVUsRUFBRSxVQUFVLENBQUM7Q0FDeEIsQ0FBQztBQUVGLGVBQU8sTUFBTSxvQkFBb0IscUhBbStCaEMsQ0FBQyJ9
|
|
1
|
+
import { type EndToEndContext } from '../fixtures/utils.js';
|
|
2
|
+
export declare const uniswapL1L2TestSuite: (setup: () => Promise<EndToEndContext>, cleanup: () => Promise<void>, expectedForkBlockNumber?: number) => void;
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pc3dhcF9sMV9sMi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NoYXJlZC91bmlzd2FwX2wxX2wyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdCQSxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQW1DLE1BQU0sc0JBQXNCLENBQUM7QUFZN0YsZUFBTyxNQUFNLG9CQUFvQixpSEF5K0JoQyxDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uniswap_l1_l2.d.ts","sourceRoot":"","sources":["../../src/shared/uniswap_l1_l2.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"uniswap_l1_l2.d.ts","sourceRoot":"","sources":["../../src/shared/uniswap_l1_l2.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,KAAK,eAAe,EAAmC,MAAM,sBAAsB,CAAC;AAY7F,eAAO,MAAM,oBAAoB,iHAy+BhC,CAAC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { AztecAddress, EthAddress } from '@aztec/aztec.js/addresses';
|
|
2
2
|
import { computeAuthWitMessageHash } from '@aztec/aztec.js/authorization';
|
|
3
|
+
import { waitForProven } from '@aztec/aztec.js/contracts';
|
|
3
4
|
import { generateClaimSecret } from '@aztec/aztec.js/ethereum';
|
|
4
5
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
5
6
|
import { RollupContract } from '@aztec/ethereum/contracts';
|
|
6
7
|
import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
|
|
7
8
|
import { extractEvent } from '@aztec/ethereum/utils';
|
|
9
|
+
import { CheckpointNumber, EpochNumber } from '@aztec/foundation/branded-types';
|
|
8
10
|
import { sha256ToField } from '@aztec/foundation/crypto/sha256';
|
|
9
11
|
import { InboxAbi, UniswapPortalAbi, UniswapPortalBytecode } from '@aztec/l1-artifacts';
|
|
10
12
|
import { UniswapContract } from '@aztec/noir-contracts.js/Uniswap';
|
|
@@ -47,7 +49,10 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
47
49
|
let cheatCodes;
|
|
48
50
|
let version;
|
|
49
51
|
beforeAll(async ()=>{
|
|
50
|
-
|
|
52
|
+
const t = await setup();
|
|
53
|
+
({ aztecNode, logger, deployL1ContractsValues, cheatCodes, wallet, accounts: [ownerAddress, sponsorAddress] } = t);
|
|
54
|
+
l1Client = deployL1ContractsValues.l1Client;
|
|
55
|
+
t.watcher?.setIsMarkingAsProven(false);
|
|
51
56
|
if (Number(await l1Client.getBlockNumber()) < expectedForkBlockNumber) {
|
|
52
57
|
throw new Error('This test must be run on a fork of mainnet with the expected fork block');
|
|
53
58
|
}
|
|
@@ -160,24 +165,29 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
160
165
|
await wethCrossChainHarness.expectPrivateBalanceOnL2(ownerAddress, wethL2BalanceBeforeSwap - wethAmountToBridge);
|
|
161
166
|
// ensure that uniswap contract didn't eat the funds.
|
|
162
167
|
await wethCrossChainHarness.expectPublicBalanceOnL2(uniswapL2Contract.address, 0n);
|
|
163
|
-
// Since the outbox is only consumable when the
|
|
164
|
-
|
|
168
|
+
// Since the outbox is only consumable when the epoch is proven, we need to advance to the next epoch.
|
|
169
|
+
const checkpointNumber = CheckpointNumber.fromBlockNumber(l2UniswapInteractionReceipt.blockNumber);
|
|
170
|
+
const epoch = await rollup.getEpochNumberForCheckpoint(checkpointNumber);
|
|
171
|
+
await cheatCodes.rollup.advanceToEpoch(EpochNumber(epoch + 1));
|
|
172
|
+
await waitForProven(aztecNode, l2UniswapInteractionReceipt, {
|
|
173
|
+
provenTimeout: 300
|
|
174
|
+
});
|
|
165
175
|
// 5. Consume L2 to L1 message by calling uniswapPortal.swap_private()
|
|
166
176
|
logger.info('Execute withdraw and swap on the uniswapPortal!');
|
|
167
177
|
const daiL1BalanceOfPortalBeforeSwap = await daiCrossChainHarness.getL1BalanceOf(daiCrossChainHarness.tokenPortalAddress);
|
|
168
|
-
const swapResult = await computeL2ToL1MembershipWitness(aztecNode,
|
|
169
|
-
const withdrawResult = await computeL2ToL1MembershipWitness(aztecNode,
|
|
178
|
+
const swapResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, swapPrivateLeaf);
|
|
179
|
+
const withdrawResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, withdrawLeaf);
|
|
170
180
|
const swapPrivateL2MessageIndex = swapResult.leafIndex;
|
|
171
181
|
const swapPrivateSiblingPath = swapResult.siblingPath;
|
|
172
182
|
const withdrawL2MessageIndex = withdrawResult.leafIndex;
|
|
173
183
|
const withdrawSiblingPath = withdrawResult.siblingPath;
|
|
174
184
|
const withdrawMessageMetadata = {
|
|
175
|
-
|
|
185
|
+
_epoch: BigInt(epoch),
|
|
176
186
|
_leafIndex: BigInt(withdrawL2MessageIndex),
|
|
177
187
|
_path: withdrawSiblingPath.toBufferArray().map((buf)=>`0x${buf.toString('hex')}`)
|
|
178
188
|
};
|
|
179
189
|
const swapPrivateMessageMetadata = {
|
|
180
|
-
|
|
190
|
+
_epoch: BigInt(epoch),
|
|
181
191
|
_leafIndex: BigInt(swapPrivateL2MessageIndex),
|
|
182
192
|
_path: swapPrivateSiblingPath.toBufferArray().map((buf)=>`0x${buf.toString('hex')}`)
|
|
183
193
|
};
|
|
@@ -359,14 +369,14 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
359
369
|
// withdrawLeaf,
|
|
360
370
|
// );
|
|
361
371
|
// const withdrawMessageMetadata = {
|
|
362
|
-
//
|
|
372
|
+
// _epoch: epoch,
|
|
363
373
|
// _leafIndex: BigInt(withdrawL2MessageIndex),
|
|
364
374
|
// _path: withdrawSiblingPath
|
|
365
375
|
// .toBufferArray()
|
|
366
376
|
// .map((buf: Buffer) => `0x${buf.toString('hex')}`) as readonly `0x${string}`[],
|
|
367
377
|
// };
|
|
368
378
|
// const swapPrivateMessageMetadata = {
|
|
369
|
-
//
|
|
379
|
+
// _epoch: epoch,
|
|
370
380
|
// _leafIndex: BigInt(swapPrivateL2MessageIndex),
|
|
371
381
|
// _path: swapPrivateSiblingPath
|
|
372
382
|
// .toBufferArray()
|
|
@@ -564,26 +574,30 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
564
574
|
rollupVersion: new Fr(version),
|
|
565
575
|
chainId: new Fr(l1Client.chain.id)
|
|
566
576
|
});
|
|
567
|
-
const
|
|
568
|
-
const
|
|
577
|
+
const epoch = await rollup.getEpochNumberForCheckpoint(CheckpointNumber.fromBlockNumber(withdrawReceipt.blockNumber));
|
|
578
|
+
const swapResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, swapPrivateLeaf);
|
|
579
|
+
const withdrawResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, withdrawLeaf);
|
|
569
580
|
const swapPrivateL2MessageIndex = swapResult.leafIndex;
|
|
570
581
|
const swapPrivateSiblingPath = swapResult.siblingPath;
|
|
571
582
|
const withdrawL2MessageIndex = withdrawResult.leafIndex;
|
|
572
583
|
const withdrawSiblingPath = withdrawResult.siblingPath;
|
|
573
584
|
const withdrawMessageMetadata = {
|
|
574
|
-
|
|
585
|
+
_epoch: BigInt(epoch),
|
|
575
586
|
_leafIndex: BigInt(withdrawL2MessageIndex),
|
|
576
587
|
_path: withdrawSiblingPath.toBufferArray().map((buf)=>`0x${buf.toString('hex')}`)
|
|
577
588
|
};
|
|
578
589
|
const swapPrivateMessageMetadata = {
|
|
579
|
-
|
|
590
|
+
_epoch: BigInt(epoch),
|
|
580
591
|
_leafIndex: BigInt(swapPrivateL2MessageIndex),
|
|
581
592
|
_path: swapPrivateSiblingPath.toBufferArray().map((buf)=>`0x${buf.toString('hex')}`)
|
|
582
593
|
};
|
|
583
594
|
// ensure that user's funds were burnt
|
|
584
595
|
await wethCrossChainHarness.expectPrivateBalanceOnL2(ownerAddress, wethL2BalanceBeforeSwap - wethAmountToBridge);
|
|
585
|
-
// Since the outbox is only consumable when the
|
|
586
|
-
await cheatCodes.rollup.
|
|
596
|
+
// Since the outbox is only consumable when the epoch is proven, we need to advance to the next epoch.
|
|
597
|
+
await cheatCodes.rollup.advanceToEpoch(EpochNumber(epoch + 1));
|
|
598
|
+
await waitForProven(aztecNode, withdrawReceipt, {
|
|
599
|
+
provenTimeout: 300
|
|
600
|
+
});
|
|
587
601
|
// On L1 call swap_public!
|
|
588
602
|
logger.info('call swap_public on L1');
|
|
589
603
|
const swapArgs = [
|
|
@@ -650,26 +664,30 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
650
664
|
rollupVersion: new Fr(version),
|
|
651
665
|
chainId: new Fr(l1Client.chain.id)
|
|
652
666
|
});
|
|
653
|
-
const
|
|
654
|
-
const
|
|
667
|
+
const epoch = await rollup.getEpochNumberForCheckpoint(CheckpointNumber.fromBlockNumber(withdrawReceipt.blockNumber));
|
|
668
|
+
const swapResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, swapPublicLeaf);
|
|
669
|
+
const withdrawResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, withdrawLeaf);
|
|
655
670
|
const swapPublicL2MessageIndex = swapResult.leafIndex;
|
|
656
671
|
const swapPublicSiblingPath = swapResult.siblingPath;
|
|
657
672
|
const withdrawL2MessageIndex = withdrawResult.leafIndex;
|
|
658
673
|
const withdrawSiblingPath = withdrawResult.siblingPath;
|
|
659
674
|
const withdrawMessageMetadata = {
|
|
660
|
-
|
|
675
|
+
_epoch: BigInt(epoch),
|
|
661
676
|
_leafIndex: BigInt(withdrawL2MessageIndex),
|
|
662
677
|
_path: withdrawSiblingPath.toBufferArray().map((buf)=>`0x${buf.toString('hex')}`)
|
|
663
678
|
};
|
|
664
679
|
const swapPublicMessageMetadata = {
|
|
665
|
-
|
|
680
|
+
_epoch: BigInt(epoch),
|
|
666
681
|
_leafIndex: BigInt(swapPublicL2MessageIndex),
|
|
667
682
|
_path: swapPublicSiblingPath.toBufferArray().map((buf)=>`0x${buf.toString('hex')}`)
|
|
668
683
|
};
|
|
669
684
|
// check weth balance of owner on L2 (we first bridged `wethAmountToBridge` into L2 and now withdrew it!)
|
|
670
685
|
await wethCrossChainHarness.expectPublicBalanceOnL2(ownerAddress, 0n);
|
|
671
|
-
// Since the outbox is only consumable when the
|
|
672
|
-
await cheatCodes.rollup.
|
|
686
|
+
// Since the outbox is only consumable when the epoch is proven, we need to advance to the next epoch.
|
|
687
|
+
await cheatCodes.rollup.advanceToEpoch(EpochNumber(epoch + 1));
|
|
688
|
+
await waitForProven(aztecNode, withdrawReceipt, {
|
|
689
|
+
provenTimeout: 300
|
|
690
|
+
});
|
|
673
691
|
// Call swap_private on L1
|
|
674
692
|
logger.info('Execute withdraw and swap on the uniswapPortal!');
|
|
675
693
|
const swapArgs = [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/end-to-end",
|
|
3
|
-
"version": "4.0.0-nightly.
|
|
3
|
+
"version": "4.0.0-nightly.20260110",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"inherits": [
|
|
@@ -25,43 +25,43 @@
|
|
|
25
25
|
"formatting": "run -T prettier --check ./src && run -T eslint ./src"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@aztec/accounts": "4.0.0-nightly.
|
|
29
|
-
"@aztec/archiver": "4.0.0-nightly.
|
|
30
|
-
"@aztec/aztec": "4.0.0-nightly.
|
|
31
|
-
"@aztec/aztec-node": "4.0.0-nightly.
|
|
32
|
-
"@aztec/aztec.js": "4.0.0-nightly.
|
|
33
|
-
"@aztec/bb-prover": "4.0.0-nightly.
|
|
34
|
-
"@aztec/bb.js": "4.0.0-nightly.
|
|
35
|
-
"@aztec/blob-client": "4.0.0-nightly.
|
|
36
|
-
"@aztec/blob-lib": "4.0.0-nightly.
|
|
37
|
-
"@aztec/bot": "4.0.0-nightly.
|
|
38
|
-
"@aztec/cli": "4.0.0-nightly.
|
|
39
|
-
"@aztec/constants": "4.0.0-nightly.
|
|
40
|
-
"@aztec/entrypoints": "4.0.0-nightly.
|
|
41
|
-
"@aztec/epoch-cache": "4.0.0-nightly.
|
|
42
|
-
"@aztec/ethereum": "4.0.0-nightly.
|
|
43
|
-
"@aztec/foundation": "4.0.0-nightly.
|
|
44
|
-
"@aztec/kv-store": "4.0.0-nightly.
|
|
45
|
-
"@aztec/l1-artifacts": "4.0.0-nightly.
|
|
46
|
-
"@aztec/merkle-tree": "4.0.0-nightly.
|
|
47
|
-
"@aztec/node-keystore": "4.0.0-nightly.
|
|
48
|
-
"@aztec/noir-contracts.js": "4.0.0-nightly.
|
|
49
|
-
"@aztec/noir-noirc_abi": "4.0.0-nightly.
|
|
50
|
-
"@aztec/noir-protocol-circuits-types": "4.0.0-nightly.
|
|
51
|
-
"@aztec/noir-test-contracts.js": "4.0.0-nightly.
|
|
52
|
-
"@aztec/p2p": "4.0.0-nightly.
|
|
53
|
-
"@aztec/protocol-contracts": "4.0.0-nightly.
|
|
54
|
-
"@aztec/prover-client": "4.0.0-nightly.
|
|
55
|
-
"@aztec/prover-node": "4.0.0-nightly.
|
|
56
|
-
"@aztec/pxe": "4.0.0-nightly.
|
|
57
|
-
"@aztec/sequencer-client": "4.0.0-nightly.
|
|
58
|
-
"@aztec/simulator": "4.0.0-nightly.
|
|
59
|
-
"@aztec/slasher": "4.0.0-nightly.
|
|
60
|
-
"@aztec/stdlib": "4.0.0-nightly.
|
|
61
|
-
"@aztec/telemetry-client": "4.0.0-nightly.
|
|
62
|
-
"@aztec/test-wallet": "4.0.0-nightly.
|
|
63
|
-
"@aztec/validator-client": "4.0.0-nightly.
|
|
64
|
-
"@aztec/world-state": "4.0.0-nightly.
|
|
28
|
+
"@aztec/accounts": "4.0.0-nightly.20260110",
|
|
29
|
+
"@aztec/archiver": "4.0.0-nightly.20260110",
|
|
30
|
+
"@aztec/aztec": "4.0.0-nightly.20260110",
|
|
31
|
+
"@aztec/aztec-node": "4.0.0-nightly.20260110",
|
|
32
|
+
"@aztec/aztec.js": "4.0.0-nightly.20260110",
|
|
33
|
+
"@aztec/bb-prover": "4.0.0-nightly.20260110",
|
|
34
|
+
"@aztec/bb.js": "4.0.0-nightly.20260110",
|
|
35
|
+
"@aztec/blob-client": "4.0.0-nightly.20260110",
|
|
36
|
+
"@aztec/blob-lib": "4.0.0-nightly.20260110",
|
|
37
|
+
"@aztec/bot": "4.0.0-nightly.20260110",
|
|
38
|
+
"@aztec/cli": "4.0.0-nightly.20260110",
|
|
39
|
+
"@aztec/constants": "4.0.0-nightly.20260110",
|
|
40
|
+
"@aztec/entrypoints": "4.0.0-nightly.20260110",
|
|
41
|
+
"@aztec/epoch-cache": "4.0.0-nightly.20260110",
|
|
42
|
+
"@aztec/ethereum": "4.0.0-nightly.20260110",
|
|
43
|
+
"@aztec/foundation": "4.0.0-nightly.20260110",
|
|
44
|
+
"@aztec/kv-store": "4.0.0-nightly.20260110",
|
|
45
|
+
"@aztec/l1-artifacts": "4.0.0-nightly.20260110",
|
|
46
|
+
"@aztec/merkle-tree": "4.0.0-nightly.20260110",
|
|
47
|
+
"@aztec/node-keystore": "4.0.0-nightly.20260110",
|
|
48
|
+
"@aztec/noir-contracts.js": "4.0.0-nightly.20260110",
|
|
49
|
+
"@aztec/noir-noirc_abi": "4.0.0-nightly.20260110",
|
|
50
|
+
"@aztec/noir-protocol-circuits-types": "4.0.0-nightly.20260110",
|
|
51
|
+
"@aztec/noir-test-contracts.js": "4.0.0-nightly.20260110",
|
|
52
|
+
"@aztec/p2p": "4.0.0-nightly.20260110",
|
|
53
|
+
"@aztec/protocol-contracts": "4.0.0-nightly.20260110",
|
|
54
|
+
"@aztec/prover-client": "4.0.0-nightly.20260110",
|
|
55
|
+
"@aztec/prover-node": "4.0.0-nightly.20260110",
|
|
56
|
+
"@aztec/pxe": "4.0.0-nightly.20260110",
|
|
57
|
+
"@aztec/sequencer-client": "4.0.0-nightly.20260110",
|
|
58
|
+
"@aztec/simulator": "4.0.0-nightly.20260110",
|
|
59
|
+
"@aztec/slasher": "4.0.0-nightly.20260110",
|
|
60
|
+
"@aztec/stdlib": "4.0.0-nightly.20260110",
|
|
61
|
+
"@aztec/telemetry-client": "4.0.0-nightly.20260110",
|
|
62
|
+
"@aztec/test-wallet": "4.0.0-nightly.20260110",
|
|
63
|
+
"@aztec/validator-client": "4.0.0-nightly.20260110",
|
|
64
|
+
"@aztec/world-state": "4.0.0-nightly.20260110",
|
|
65
65
|
"@iarna/toml": "^2.2.5",
|
|
66
66
|
"@jest/globals": "^30.0.0",
|
|
67
67
|
"@noble/curves": "=1.0.0",
|
package/src/bench/utils.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
|
3
3
|
import { BatchCall, type SentTx, type WaitOpts } from '@aztec/aztec.js/contracts';
|
|
4
4
|
import { mean, stdDev, times } from '@aztec/foundation/collection';
|
|
5
5
|
import { BenchmarkingContract } from '@aztec/noir-test-contracts.js/Benchmarking';
|
|
6
|
-
import type {
|
|
6
|
+
import type { MetricDefinition } from '@aztec/telemetry-client';
|
|
7
7
|
import type { BenchmarkDataPoint, BenchmarkMetricsType, BenchmarkTelemetryClient } from '@aztec/telemetry-client/bench';
|
|
8
8
|
|
|
9
9
|
import { mkdirSync, writeFileSync } from 'fs';
|
|
@@ -16,7 +16,7 @@ import { type EndToEndContext, type SetupOptions, setup } from '../fixtures/util
|
|
|
16
16
|
*/
|
|
17
17
|
export async function benchmarkSetup(
|
|
18
18
|
opts: Partial<SetupOptions> & {
|
|
19
|
-
/** What metrics to export */ metrics: (
|
|
19
|
+
/** What metrics to export */ metrics: (MetricDefinition | MetricFilter)[];
|
|
20
20
|
/** Where to output the benchmark data (defaults to BENCH_OUTPUT or bench.json) */
|
|
21
21
|
benchOutput?: string;
|
|
22
22
|
},
|
|
@@ -47,7 +47,7 @@ export async function benchmarkSetup(
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
type MetricFilter = {
|
|
50
|
-
source:
|
|
50
|
+
source: MetricDefinition;
|
|
51
51
|
transform: (value: number) => number;
|
|
52
52
|
name: string;
|
|
53
53
|
unit?: string;
|
|
@@ -62,17 +62,21 @@ export type GithubActionBenchmarkResult = {
|
|
|
62
62
|
extra?: string;
|
|
63
63
|
};
|
|
64
64
|
|
|
65
|
+
function isMetricDefinition(f: MetricDefinition | MetricFilter): f is MetricDefinition {
|
|
66
|
+
return 'description' in f;
|
|
67
|
+
}
|
|
68
|
+
|
|
65
69
|
function formatMetricsForGithubBenchmarkAction(
|
|
66
70
|
data: BenchmarkMetricsType,
|
|
67
|
-
filter: (
|
|
71
|
+
filter: (MetricDefinition | MetricFilter)[],
|
|
68
72
|
): GithubActionBenchmarkResult[] {
|
|
69
73
|
const allFilters: MetricFilter[] = filter.map(f =>
|
|
70
|
-
|
|
74
|
+
isMetricDefinition(f) ? { name: f.name, source: f, transform: (x: number) => x, unit: f.unit } : f,
|
|
71
75
|
);
|
|
72
76
|
return data.flatMap(meter => {
|
|
73
77
|
return meter.metrics
|
|
74
|
-
.filter(metric => allFilters.map(f => f.source).includes(metric.name
|
|
75
|
-
.map(metric => [metric, allFilters.find(f => f.source === metric.name)!] as const)
|
|
78
|
+
.filter(metric => allFilters.map(f => f.source.name).includes(metric.name))
|
|
79
|
+
.map(metric => [metric, allFilters.find(f => f.source.name === metric.name)!] as const)
|
|
76
80
|
.map(([metric, filter]) => ({
|
|
77
81
|
name: `${meter.name}/${filter.name}`,
|
|
78
82
|
unit: filter.unit ?? metric.unit ?? 'unknown',
|
|
@@ -1,23 +1,26 @@
|
|
|
1
1
|
import type { AztecNodeConfig } from '@aztec/aztec-node';
|
|
2
2
|
import { AztecAddress, EthAddress } from '@aztec/aztec.js/addresses';
|
|
3
|
+
import { waitForProven } from '@aztec/aztec.js/contracts';
|
|
3
4
|
import { type Logger, createLogger } from '@aztec/aztec.js/log';
|
|
4
5
|
import type { AztecNode } from '@aztec/aztec.js/node';
|
|
6
|
+
import type { TxReceipt } from '@aztec/aztec.js/tx';
|
|
5
7
|
import { CheatCodes } from '@aztec/aztec/testing';
|
|
6
8
|
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
9
|
+
import { InboxContract, OutboxContract, RollupContract } from '@aztec/ethereum/contracts';
|
|
7
10
|
import type {
|
|
8
11
|
DeployAztecL1ContractsArgs,
|
|
9
12
|
DeployAztecL1ContractsReturnType,
|
|
10
13
|
} from '@aztec/ethereum/deploy-aztec-l1-contracts';
|
|
11
14
|
import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
|
|
12
15
|
import type { ExtendedViemWalletClient } from '@aztec/ethereum/types';
|
|
13
|
-
import {
|
|
16
|
+
import { CheckpointNumber, EpochNumber } from '@aztec/foundation/branded-types';
|
|
17
|
+
import { sleep } from '@aztec/foundation/sleep';
|
|
18
|
+
import { TestERC20Abi, TestERC20Bytecode } from '@aztec/l1-artifacts';
|
|
14
19
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
15
20
|
import { TokenBridgeContract } from '@aztec/noir-contracts.js/TokenBridge';
|
|
16
21
|
import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
|
|
17
22
|
import type { TestWallet } from '@aztec/test-wallet/server';
|
|
18
23
|
|
|
19
|
-
import { getContract } from 'viem';
|
|
20
|
-
|
|
21
24
|
import { MNEMONIC } from '../fixtures/fixtures.js';
|
|
22
25
|
import {
|
|
23
26
|
type ISnapshotManager,
|
|
@@ -33,6 +36,7 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
33
36
|
|
|
34
37
|
export class CrossChainMessagingTest {
|
|
35
38
|
private snapshotManager: ISnapshotManager;
|
|
39
|
+
private requireEpochProven: boolean;
|
|
36
40
|
logger: Logger;
|
|
37
41
|
aztecNode!: AztecNode;
|
|
38
42
|
aztecNodeConfig!: AztecNodeConfig;
|
|
@@ -50,8 +54,9 @@ export class CrossChainMessagingTest {
|
|
|
50
54
|
l2Token!: TokenContract;
|
|
51
55
|
l2Bridge!: TokenBridgeContract;
|
|
52
56
|
|
|
53
|
-
|
|
54
|
-
|
|
57
|
+
rollup!: RollupContract;
|
|
58
|
+
inbox!: InboxContract;
|
|
59
|
+
outbox!: OutboxContract;
|
|
55
60
|
cheatCodes!: CheatCodes;
|
|
56
61
|
|
|
57
62
|
deployL1ContractsValues!: DeployAztecL1ContractsReturnType;
|
|
@@ -66,10 +71,7 @@ export class CrossChainMessagingTest {
|
|
|
66
71
|
initialValidators: [],
|
|
67
72
|
...deployL1ContractsArgs,
|
|
68
73
|
});
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
async assumeProven() {
|
|
72
|
-
await this.cheatCodes.rollup.markAsProven();
|
|
74
|
+
this.requireEpochProven = opts.startProverNode ?? false;
|
|
73
75
|
}
|
|
74
76
|
|
|
75
77
|
async setup() {
|
|
@@ -80,6 +82,30 @@ export class CrossChainMessagingTest {
|
|
|
80
82
|
this.cheatCodes = this.ctx.cheatCodes;
|
|
81
83
|
this.deployL1ContractsValues = this.ctx.deployL1ContractsValues;
|
|
82
84
|
this.aztecNodeAdmin = this.ctx.aztecNode;
|
|
85
|
+
|
|
86
|
+
if (this.requireEpochProven) {
|
|
87
|
+
// Turn off the watcher to prevent it from keep marking blocks as proven.
|
|
88
|
+
this.ctx.watcher.setIsMarkingAsProven(false);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
async advanceToEpochProven(l2TxReceipt: TxReceipt): Promise<EpochNumber> {
|
|
93
|
+
const epoch = await this.rollup.getEpochNumberForCheckpoint(
|
|
94
|
+
CheckpointNumber.fromBlockNumber(l2TxReceipt.blockNumber!),
|
|
95
|
+
);
|
|
96
|
+
// Warp to the next epoch.
|
|
97
|
+
await this.cheatCodes.rollup.advanceToEpoch(EpochNumber(epoch + 1));
|
|
98
|
+
// Wait for the tx to be proven.
|
|
99
|
+
await waitForProven(this.aztecNode, l2TxReceipt, { provenTimeout: 300 });
|
|
100
|
+
// Return the epoch the tx is in.
|
|
101
|
+
return epoch;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
async catchUpProvenChain() {
|
|
105
|
+
const bn = await this.aztecNode.getBlockNumber();
|
|
106
|
+
while ((await this.aztecNode.getProvenBlockNumber()) < bn) {
|
|
107
|
+
await sleep(1000);
|
|
108
|
+
}
|
|
83
109
|
}
|
|
84
110
|
|
|
85
111
|
snapshot = <T>(
|
|
@@ -147,17 +173,12 @@ export class CrossChainMessagingTest {
|
|
|
147
173
|
const tokenPortalAddress = EthAddress.fromString(crossChainContext.tokenPortal.toString());
|
|
148
174
|
|
|
149
175
|
const l1Client = createExtendedL1Client(this.aztecNodeConfig.l1RpcUrls, MNEMONIC);
|
|
176
|
+
this.l1Client = l1Client;
|
|
150
177
|
|
|
151
|
-
const
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
});
|
|
156
|
-
const outbox = getContract({
|
|
157
|
-
address: this.aztecNodeConfig.l1Contracts.outboxAddress.toString(),
|
|
158
|
-
abi: OutboxAbi,
|
|
159
|
-
client: l1Client,
|
|
160
|
-
});
|
|
178
|
+
const l1Contracts = this.aztecNodeConfig.l1Contracts;
|
|
179
|
+
this.rollup = new RollupContract(l1Client, l1Contracts.rollupAddress.toString());
|
|
180
|
+
this.inbox = new InboxContract(l1Client, l1Contracts.inboxAddress.toString());
|
|
181
|
+
this.outbox = new OutboxContract(l1Client, l1Contracts.outboxAddress.toString());
|
|
161
182
|
|
|
162
183
|
this.crossChainTestHarness = new CrossChainTestHarness(
|
|
163
184
|
this.aztecNode,
|
|
@@ -173,9 +194,6 @@ export class CrossChainMessagingTest {
|
|
|
173
194
|
this.ownerAddress,
|
|
174
195
|
);
|
|
175
196
|
|
|
176
|
-
this.l1Client = l1Client;
|
|
177
|
-
this.inbox = inbox;
|
|
178
|
-
this.outbox = outbox;
|
|
179
197
|
return Promise.resolve();
|
|
180
198
|
},
|
|
181
199
|
);
|
|
@@ -52,11 +52,8 @@ export async function writeJson(
|
|
|
52
52
|
header: {
|
|
53
53
|
lastArchiveRoot: asHex(block.header.lastArchive.root),
|
|
54
54
|
blockHeadersHash: asHex(block.header.blockHeadersHash),
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
inHash: asHex(block.header.contentCommitment.inHash),
|
|
58
|
-
outHash: asHex(block.header.contentCommitment.outHash),
|
|
59
|
-
},
|
|
55
|
+
blobsHash: asHex(block.header.blobsHash),
|
|
56
|
+
inHash: asHex(block.header.inHash),
|
|
60
57
|
slotNumber: Number(block.header.globalVariables.slotNumber),
|
|
61
58
|
timestamp: Number(block.header.globalVariables.timestamp),
|
|
62
59
|
coinbase: asHex(block.header.globalVariables.coinbase, 40),
|
|
@@ -16,7 +16,7 @@ import type { Wallet } from '@aztec/aztec.js/wallet';
|
|
|
16
16
|
import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
|
|
17
17
|
import type { L1ContractAddresses } from '@aztec/ethereum/l1-contract-addresses';
|
|
18
18
|
import type { ExtendedViemWalletClient } from '@aztec/ethereum/types';
|
|
19
|
-
import {
|
|
19
|
+
import { EpochNumber } from '@aztec/foundation/branded-types';
|
|
20
20
|
import { retryUntil } from '@aztec/foundation/retry';
|
|
21
21
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
22
22
|
import { TestERC20Abi, TokenPortalAbi, TokenPortalBytecode } from '@aztec/l1-artifacts';
|
|
@@ -324,17 +324,11 @@ export class CrossChainTestHarness {
|
|
|
324
324
|
|
|
325
325
|
withdrawFundsFromBridgeOnL1(
|
|
326
326
|
amount: bigint,
|
|
327
|
-
|
|
327
|
+
epochNumber: EpochNumber,
|
|
328
328
|
messageIndex: bigint,
|
|
329
329
|
siblingPath: SiblingPath<number>,
|
|
330
330
|
) {
|
|
331
|
-
return this.l1TokenPortalManager.withdrawFunds(
|
|
332
|
-
amount,
|
|
333
|
-
this.ethAccount,
|
|
334
|
-
BigInt(blockNumber),
|
|
335
|
-
messageIndex,
|
|
336
|
-
siblingPath,
|
|
337
|
-
);
|
|
331
|
+
return this.l1TokenPortalManager.withdrawFunds(amount, this.ethAccount, epochNumber, messageIndex, siblingPath);
|
|
338
332
|
}
|
|
339
333
|
|
|
340
334
|
async transferToPrivateOnL2(shieldAmount: bigint) {
|
package/src/shared/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { uniswapL1L2TestSuite
|
|
1
|
+
export { uniswapL1L2TestSuite } from './uniswap_l1_l2.js';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AztecAddress, EthAddress } from '@aztec/aztec.js/addresses';
|
|
2
2
|
import { computeAuthWitMessageHash } from '@aztec/aztec.js/authorization';
|
|
3
|
+
import { waitForProven } from '@aztec/aztec.js/contracts';
|
|
3
4
|
import { generateClaimSecret } from '@aztec/aztec.js/ethereum';
|
|
4
5
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
5
6
|
import type { Logger } from '@aztec/aztec.js/log';
|
|
@@ -10,6 +11,7 @@ import type { DeployAztecL1ContractsReturnType } from '@aztec/ethereum/deploy-az
|
|
|
10
11
|
import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
|
|
11
12
|
import type { ExtendedViemWalletClient } from '@aztec/ethereum/types';
|
|
12
13
|
import { extractEvent } from '@aztec/ethereum/utils';
|
|
14
|
+
import { CheckpointNumber, EpochNumber } from '@aztec/foundation/branded-types';
|
|
13
15
|
import { sha256ToField } from '@aztec/foundation/crypto/sha256';
|
|
14
16
|
import { InboxAbi, UniswapPortalAbi, UniswapPortalBytecode } from '@aztec/l1-artifacts';
|
|
15
17
|
import { UniswapContract } from '@aztec/noir-contracts.js/Uniswap';
|
|
@@ -20,7 +22,7 @@ import type { TestWallet } from '@aztec/test-wallet/server';
|
|
|
20
22
|
import { jest } from '@jest/globals';
|
|
21
23
|
import { type GetContractReturnType, getContract, parseEther, toFunctionSelector } from 'viem';
|
|
22
24
|
|
|
23
|
-
import { ensureAccountContractsPublished } from '../fixtures/utils.js';
|
|
25
|
+
import { type EndToEndContext, ensureAccountContractsPublished } from '../fixtures/utils.js';
|
|
24
26
|
import { CrossChainTestHarness } from './cross_chain_test_harness.js';
|
|
25
27
|
|
|
26
28
|
// PSA: This tests works on forked mainnet. There is a dump of the data in `dumpedState` such that we
|
|
@@ -32,28 +34,8 @@ import { CrossChainTestHarness } from './cross_chain_test_harness.js';
|
|
|
32
34
|
|
|
33
35
|
const TIMEOUT = 360_000;
|
|
34
36
|
|
|
35
|
-
/** Objects to be returned by the uniswap setup function */
|
|
36
|
-
export type UniswapSetupContext = {
|
|
37
|
-
/** Aztec Node instance */
|
|
38
|
-
aztecNode: AztecNode;
|
|
39
|
-
/** Logger instance named as the current test. */
|
|
40
|
-
logger: Logger;
|
|
41
|
-
/** The L1 wallet client, extended with public actions. */
|
|
42
|
-
l1Client: ExtendedViemWalletClient;
|
|
43
|
-
/** The wallet. */
|
|
44
|
-
wallet: TestWallet;
|
|
45
|
-
/** The owner address. */
|
|
46
|
-
ownerAddress: AztecAddress;
|
|
47
|
-
/** The sponsor wallet. */
|
|
48
|
-
sponsorAddress: AztecAddress;
|
|
49
|
-
/** */
|
|
50
|
-
deployL1ContractsValues: DeployAztecL1ContractsReturnType;
|
|
51
|
-
/** Cheat codes instance. */
|
|
52
|
-
cheatCodes: CheatCodes;
|
|
53
|
-
};
|
|
54
|
-
|
|
55
37
|
export const uniswapL1L2TestSuite = (
|
|
56
|
-
setup: () => Promise<
|
|
38
|
+
setup: () => Promise<EndToEndContext>,
|
|
57
39
|
cleanup: () => Promise<void>,
|
|
58
40
|
expectedForkBlockNumber = 17514288,
|
|
59
41
|
) => {
|
|
@@ -90,8 +72,19 @@ export const uniswapL1L2TestSuite = (
|
|
|
90
72
|
let cheatCodes: CheatCodes;
|
|
91
73
|
let version: number;
|
|
92
74
|
beforeAll(async () => {
|
|
93
|
-
|
|
94
|
-
|
|
75
|
+
const t = await setup();
|
|
76
|
+
({
|
|
77
|
+
aztecNode,
|
|
78
|
+
logger,
|
|
79
|
+
deployL1ContractsValues,
|
|
80
|
+
cheatCodes,
|
|
81
|
+
wallet,
|
|
82
|
+
accounts: [ownerAddress, sponsorAddress],
|
|
83
|
+
} = t);
|
|
84
|
+
|
|
85
|
+
l1Client = deployL1ContractsValues.l1Client;
|
|
86
|
+
|
|
87
|
+
t.watcher?.setIsMarkingAsProven(false);
|
|
95
88
|
|
|
96
89
|
if (Number(await l1Client.getBlockNumber()) < expectedForkBlockNumber) {
|
|
97
90
|
throw new Error('This test must be run on a fork of mainnet with the expected fork block');
|
|
@@ -259,24 +252,19 @@ export const uniswapL1L2TestSuite = (
|
|
|
259
252
|
// ensure that uniswap contract didn't eat the funds.
|
|
260
253
|
await wethCrossChainHarness.expectPublicBalanceOnL2(uniswapL2Contract.address, 0n);
|
|
261
254
|
|
|
262
|
-
// Since the outbox is only consumable when the
|
|
263
|
-
|
|
255
|
+
// Since the outbox is only consumable when the epoch is proven, we need to advance to the next epoch.
|
|
256
|
+
const checkpointNumber = CheckpointNumber.fromBlockNumber(l2UniswapInteractionReceipt.blockNumber!);
|
|
257
|
+
const epoch = await rollup.getEpochNumberForCheckpoint(checkpointNumber);
|
|
258
|
+
await cheatCodes.rollup.advanceToEpoch(EpochNumber(epoch + 1));
|
|
259
|
+
await waitForProven(aztecNode, l2UniswapInteractionReceipt, { provenTimeout: 300 });
|
|
264
260
|
|
|
265
261
|
// 5. Consume L2 to L1 message by calling uniswapPortal.swap_private()
|
|
266
262
|
logger.info('Execute withdraw and swap on the uniswapPortal!');
|
|
267
263
|
const daiL1BalanceOfPortalBeforeSwap = await daiCrossChainHarness.getL1BalanceOf(
|
|
268
264
|
daiCrossChainHarness.tokenPortalAddress,
|
|
269
265
|
);
|
|
270
|
-
const swapResult = await computeL2ToL1MembershipWitness(
|
|
271
|
-
|
|
272
|
-
l2UniswapInteractionReceipt.blockNumber!,
|
|
273
|
-
swapPrivateLeaf,
|
|
274
|
-
);
|
|
275
|
-
const withdrawResult = await computeL2ToL1MembershipWitness(
|
|
276
|
-
aztecNode,
|
|
277
|
-
l2UniswapInteractionReceipt.blockNumber!,
|
|
278
|
-
withdrawLeaf,
|
|
279
|
-
);
|
|
266
|
+
const swapResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, swapPrivateLeaf);
|
|
267
|
+
const withdrawResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, withdrawLeaf);
|
|
280
268
|
|
|
281
269
|
const swapPrivateL2MessageIndex = swapResult!.leafIndex;
|
|
282
270
|
const swapPrivateSiblingPath = swapResult!.siblingPath;
|
|
@@ -285,7 +273,7 @@ export const uniswapL1L2TestSuite = (
|
|
|
285
273
|
const withdrawSiblingPath = withdrawResult!.siblingPath;
|
|
286
274
|
|
|
287
275
|
const withdrawMessageMetadata = {
|
|
288
|
-
|
|
276
|
+
_epoch: BigInt(epoch),
|
|
289
277
|
_leafIndex: BigInt(withdrawL2MessageIndex),
|
|
290
278
|
_path: withdrawSiblingPath
|
|
291
279
|
.toBufferArray()
|
|
@@ -293,7 +281,7 @@ export const uniswapL1L2TestSuite = (
|
|
|
293
281
|
};
|
|
294
282
|
|
|
295
283
|
const swapPrivateMessageMetadata = {
|
|
296
|
-
|
|
284
|
+
_epoch: BigInt(epoch),
|
|
297
285
|
_leafIndex: BigInt(swapPrivateL2MessageIndex),
|
|
298
286
|
_path: swapPrivateSiblingPath
|
|
299
287
|
.toBufferArray()
|
|
@@ -504,7 +492,7 @@ export const uniswapL1L2TestSuite = (
|
|
|
504
492
|
// );
|
|
505
493
|
|
|
506
494
|
// const withdrawMessageMetadata = {
|
|
507
|
-
//
|
|
495
|
+
// _epoch: epoch,
|
|
508
496
|
// _leafIndex: BigInt(withdrawL2MessageIndex),
|
|
509
497
|
// _path: withdrawSiblingPath
|
|
510
498
|
// .toBufferArray()
|
|
@@ -512,7 +500,7 @@ export const uniswapL1L2TestSuite = (
|
|
|
512
500
|
// };
|
|
513
501
|
|
|
514
502
|
// const swapPrivateMessageMetadata = {
|
|
515
|
-
//
|
|
503
|
+
// _epoch: epoch,
|
|
516
504
|
// _leafIndex: BigInt(swapPrivateL2MessageIndex),
|
|
517
505
|
// _path: swapPrivateSiblingPath
|
|
518
506
|
// .toBufferArray()
|
|
@@ -856,12 +844,11 @@ export const uniswapL1L2TestSuite = (
|
|
|
856
844
|
chainId: new Fr(l1Client.chain.id),
|
|
857
845
|
});
|
|
858
846
|
|
|
859
|
-
const
|
|
860
|
-
|
|
861
|
-
aztecNode,
|
|
862
|
-
withdrawReceipt.blockNumber!,
|
|
863
|
-
withdrawLeaf,
|
|
847
|
+
const epoch = await rollup.getEpochNumberForCheckpoint(
|
|
848
|
+
CheckpointNumber.fromBlockNumber(withdrawReceipt.blockNumber!),
|
|
864
849
|
);
|
|
850
|
+
const swapResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, swapPrivateLeaf);
|
|
851
|
+
const withdrawResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, withdrawLeaf);
|
|
865
852
|
|
|
866
853
|
const swapPrivateL2MessageIndex = swapResult!.leafIndex;
|
|
867
854
|
const swapPrivateSiblingPath = swapResult!.siblingPath;
|
|
@@ -870,7 +857,7 @@ export const uniswapL1L2TestSuite = (
|
|
|
870
857
|
const withdrawSiblingPath = withdrawResult!.siblingPath;
|
|
871
858
|
|
|
872
859
|
const withdrawMessageMetadata = {
|
|
873
|
-
|
|
860
|
+
_epoch: BigInt(epoch),
|
|
874
861
|
_leafIndex: BigInt(withdrawL2MessageIndex),
|
|
875
862
|
_path: withdrawSiblingPath
|
|
876
863
|
.toBufferArray()
|
|
@@ -878,7 +865,7 @@ export const uniswapL1L2TestSuite = (
|
|
|
878
865
|
};
|
|
879
866
|
|
|
880
867
|
const swapPrivateMessageMetadata = {
|
|
881
|
-
|
|
868
|
+
_epoch: BigInt(epoch),
|
|
882
869
|
_leafIndex: BigInt(swapPrivateL2MessageIndex),
|
|
883
870
|
_path: swapPrivateSiblingPath
|
|
884
871
|
.toBufferArray()
|
|
@@ -888,8 +875,9 @@ export const uniswapL1L2TestSuite = (
|
|
|
888
875
|
// ensure that user's funds were burnt
|
|
889
876
|
await wethCrossChainHarness.expectPrivateBalanceOnL2(ownerAddress, wethL2BalanceBeforeSwap - wethAmountToBridge);
|
|
890
877
|
|
|
891
|
-
// Since the outbox is only consumable when the
|
|
892
|
-
await cheatCodes.rollup.
|
|
878
|
+
// Since the outbox is only consumable when the epoch is proven, we need to advance to the next epoch.
|
|
879
|
+
await cheatCodes.rollup.advanceToEpoch(EpochNumber(epoch + 1));
|
|
880
|
+
await waitForProven(aztecNode, withdrawReceipt, { provenTimeout: 300 });
|
|
893
881
|
|
|
894
882
|
// On L1 call swap_public!
|
|
895
883
|
logger.info('call swap_public on L1');
|
|
@@ -991,12 +979,11 @@ export const uniswapL1L2TestSuite = (
|
|
|
991
979
|
chainId: new Fr(l1Client.chain.id),
|
|
992
980
|
});
|
|
993
981
|
|
|
994
|
-
const
|
|
995
|
-
|
|
996
|
-
aztecNode,
|
|
997
|
-
withdrawReceipt.blockNumber!,
|
|
998
|
-
withdrawLeaf,
|
|
982
|
+
const epoch = await rollup.getEpochNumberForCheckpoint(
|
|
983
|
+
CheckpointNumber.fromBlockNumber(withdrawReceipt.blockNumber!),
|
|
999
984
|
);
|
|
985
|
+
const swapResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, swapPublicLeaf);
|
|
986
|
+
const withdrawResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, withdrawLeaf);
|
|
1000
987
|
|
|
1001
988
|
const swapPublicL2MessageIndex = swapResult!.leafIndex;
|
|
1002
989
|
const swapPublicSiblingPath = swapResult!.siblingPath;
|
|
@@ -1005,7 +992,7 @@ export const uniswapL1L2TestSuite = (
|
|
|
1005
992
|
const withdrawSiblingPath = withdrawResult!.siblingPath;
|
|
1006
993
|
|
|
1007
994
|
const withdrawMessageMetadata = {
|
|
1008
|
-
|
|
995
|
+
_epoch: BigInt(epoch),
|
|
1009
996
|
_leafIndex: BigInt(withdrawL2MessageIndex),
|
|
1010
997
|
_path: withdrawSiblingPath
|
|
1011
998
|
.toBufferArray()
|
|
@@ -1013,7 +1000,7 @@ export const uniswapL1L2TestSuite = (
|
|
|
1013
1000
|
};
|
|
1014
1001
|
|
|
1015
1002
|
const swapPublicMessageMetadata = {
|
|
1016
|
-
|
|
1003
|
+
_epoch: BigInt(epoch),
|
|
1017
1004
|
_leafIndex: BigInt(swapPublicL2MessageIndex),
|
|
1018
1005
|
_path: swapPublicSiblingPath
|
|
1019
1006
|
.toBufferArray()
|
|
@@ -1023,8 +1010,9 @@ export const uniswapL1L2TestSuite = (
|
|
|
1023
1010
|
// check weth balance of owner on L2 (we first bridged `wethAmountToBridge` into L2 and now withdrew it!)
|
|
1024
1011
|
await wethCrossChainHarness.expectPublicBalanceOnL2(ownerAddress, 0n);
|
|
1025
1012
|
|
|
1026
|
-
// Since the outbox is only consumable when the
|
|
1027
|
-
await cheatCodes.rollup.
|
|
1013
|
+
// Since the outbox is only consumable when the epoch is proven, we need to advance to the next epoch.
|
|
1014
|
+
await cheatCodes.rollup.advanceToEpoch(EpochNumber(epoch + 1));
|
|
1015
|
+
await waitForProven(aztecNode, withdrawReceipt, { provenTimeout: 300 });
|
|
1028
1016
|
|
|
1029
1017
|
// Call swap_private on L1
|
|
1030
1018
|
logger.info('Execute withdraw and swap on the uniswapPortal!');
|