@aztec/end-to-end 4.0.0-nightly.20260108 → 4.0.0-nightly.20260111

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.
@@ -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 { MetricsType } from '@aztec/telemetry-client';
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: (MetricsType | MetricFilter)[];
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: MetricsType;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iZW5jaC91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWEsS0FBSyxNQUFNLEVBQUUsS0FBSyxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVsRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNsRixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBNEMsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUt4SCxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQUUsS0FBSyxZQUFZLEVBQVMsTUFBTSxzQkFBc0IsQ0FBQztBQUV0Rjs7R0FFRztBQUNILHdCQUFzQixjQUFjLENBQ2xDLElBQUksRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUc7SUFDNUIsNkJBQTZCLENBQUMsT0FBTyxFQUFFLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUM7SUFDdEUsa0ZBQWtGO0lBQ2xGLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUN0Qjs7Ozs7R0F5QkY7QUFFRCxLQUFLLFlBQVksR0FBRztJQUNsQixNQUFNLEVBQUUsV0FBVyxDQUFDO0lBQ3BCLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEtBQUssTUFBTSxDQUFDO0lBQ3JDLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixJQUFJLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDZixDQUFDO0FBR0YsTUFBTSxNQUFNLDJCQUEyQixHQUFHO0lBQ3hDLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2QsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2YsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNoQixDQUFDO0FBZ0VGOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQXNCLE9BQU8sQ0FDM0IsT0FBTyxFQUFFLE1BQU0sRUFDZixPQUFPLEVBQUUsZUFBZSxFQUN4QixRQUFRLEVBQUUsb0JBQW9CLEVBQzlCLGtCQUFrQixHQUFFLE9BQWUsR0FDbEMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBTW5CO0FBRUQsd0JBQXNCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLENBQUMsRUFBRSxRQUFRLGlCQUkzRiJ9
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,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,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,WAAW,GAAG,YAAY,CAAC,EAAE,CAAC;IACtE,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;;;;;GAyBF;AAED,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,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;AAgEF;;;;;;;;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"}
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"}
@@ -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)=>typeof f === 'string' ? {
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: undefined
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
- inbox: any;
32
- outbox: any;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NfY2hhaW5fbWVzc2FnaW5nX3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lMmVfY3Jvc3NfY2hhaW5fbWVzc2FnaW5nL2Nyb3NzX2NoYWluX21lc3NhZ2luZ190ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxPQUFPLEtBQUssRUFDViwwQkFBMEIsRUFDMUIsZ0NBQWdDLEVBQ2pDLE1BQU0sMkNBQTJDLENBQUM7QUFFbkQsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFLNUQsT0FBTyxFQUVMLEtBQUssaUJBQWlCLEVBSXZCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFJOUUscUJBQWEsdUJBQXVCO0lBQ2xDLE9BQU8sQ0FBQyxlQUFlLENBQW1CO0lBQzFDLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixTQUFTLEVBQUcsU0FBUyxDQUFDO0lBQ3RCLGVBQWUsRUFBRyxlQUFlLENBQUM7SUFDbEMsY0FBYyxFQUFHLGNBQWMsQ0FBQztJQUNoQyxHQUFHLEVBQUcsaUJBQWlCLENBQUM7SUFFeEIsUUFBUSxFQUFHLHdCQUF3QixHQUFHLFNBQVMsQ0FBQztJQUVoRCxNQUFNLEVBQUcsVUFBVSxDQUFDO0lBQ3BCLFlBQVksRUFBRyxZQUFZLENBQUM7SUFDNUIsWUFBWSxFQUFHLFlBQVksQ0FBQztJQUM1QixZQUFZLEVBQUcsWUFBWSxDQUFDO0lBQzVCLHFCQUFxQixFQUFHLHFCQUFxQixDQUFDO0lBQzlDLFVBQVUsRUFBRyxVQUFVLENBQUM7SUFDeEIsT0FBTyxFQUFHLGFBQWEsQ0FBQztJQUN4QixRQUFRLEVBQUcsbUJBQW1CLENBQUM7SUFFL0IsS0FBSyxFQUFHLEdBQUcsQ0FBQztJQUNaLE1BQU0sRUFBRyxHQUFHLENBQUM7SUFDYixVQUFVLEVBQUcsVUFBVSxDQUFDO0lBRXhCLHVCQUF1QixFQUFHLGdDQUFnQyxDQUFDO0lBRTNELFlBQ0UsUUFBUSxFQUFFLE1BQU0sRUFDaEIsSUFBSSxHQUFFLFlBQWlCLEVBQ3ZCLHFCQUFxQixHQUFFLE9BQU8sQ0FBQywwQkFBMEIsQ0FBTSxFQU9oRTtJQUVLLFlBQVksa0JBRWpCO0lBRUssS0FBSyxrQkFRVjtJQUVELFFBQVEsR0FBSSxDQUFDLDhKQUkyRDtJQUVsRSxRQUFRLGtCQUViO0lBRUssa0JBQWtCLGtCQXVGdkI7Q0FDRiJ9
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;AACrE,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EACV,0BAA0B,EAC1B,gCAAgC,EACjC,MAAM,2CAA2C,CAAC;AAEnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,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;AAK5D,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,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,KAAK,EAAG,GAAG,CAAC;IACZ,MAAM,EAAG,GAAG,CAAC;IACb,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,EAOhE;IAEK,YAAY,kBAEjB;IAEK,KAAK,kBAQV;IAED,QAAQ,GAAI,CAAC,8JAI2D;IAElE,QAAQ,kBAEb;IAEK,kBAAkB,kBAuFvB;CACF"}
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 { InboxAbi, OutboxAbi, TestERC20Abi, TestERC20Bytecode } from '@aztec/l1-artifacts';
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
- this.inbox = inbox;
105
- this.outbox = outbox;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGVfanNvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2UyZV9sMV9wdWJsaXNoZXIvd3JpdGVfanNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUE2RCxNQUFNLGlCQUFpQixDQUFDO0FBTy9HOzs7R0FHRztBQUNILHdCQUFzQixTQUFTLENBQzdCLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLEtBQUssRUFBRSxPQUFPLEVBQ2QsYUFBYSxFQUFFLEVBQUUsRUFBRSxFQUNuQixLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQ2IsV0FBVyxFQUFFLFdBQVcsRUFDeEIsZ0JBQWdCLEVBQUUsWUFBWSxFQUM5QixlQUFlLEVBQUUsS0FBSyxNQUFNLEVBQUUsR0FDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQXNEZiJ9
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,CAsDf"}
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
- contentCommitment: {
38
- blobsHash: asHex(block.header.contentCommitment.blobsHash),
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 { BlockNumber } from '@aztec/foundation/branded-types';
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, blockNumber: BlockNumber, messageIndex: bigint, siblingPath: SiblingPath<number>): Promise<void>;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NfY2hhaW5fdGVzdF9oYXJuZXNzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2hhcmVkL2Nyb3NzX2NoYWluX3Rlc3RfaGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVELE9BQU8sRUFHTCxLQUFLLGFBQWEsRUFDbEIsS0FBSywwQkFBMEIsRUFDaEMsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUMsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFckQsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RCxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFM0UsT0FBTyxFQUFFLEtBQUssR0FBRyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBSTdDOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFzQiwwQ0FBMEMsQ0FDOUQsTUFBTSxFQUFFLE1BQU0sRUFDZCxRQUFRLEVBQUUsd0JBQXdCLEVBQ2xDLHFCQUFxQixFQUFFLFVBQVUsRUFDakMsS0FBSyxFQUFFLFlBQVksRUFDbkIsc0JBQXNCLEVBQUUsVUFBVSxHQUNqQyxPQUFPLENBQUM7SUFDVDs7T0FFRztJQUNILEtBQUssRUFBRSxhQUFhLENBQUM7SUFDckI7O09BRUc7SUFDSCxNQUFNLEVBQUUsbUJBQW1CLENBQUM7SUFDNUI7O09BRUc7SUFDSCxrQkFBa0IsRUFBRSxVQUFVLENBQUM7SUFDL0I7O09BRUc7SUFDSCxXQUFXLEVBQUUsR0FBRyxDQUFDO0lBQ2pCOztPQUVHO0lBQ0gsZUFBZSxFQUFFLEdBQUcsQ0FBQztDQUN0QixDQUFDLENBOENEO0FBRUQsTUFBTSxNQUFNLGlCQUFpQixHQUFHO0lBQzlCLE9BQU8sRUFBRSxZQUFZLENBQUM7SUFDdEIsUUFBUSxFQUFFLFlBQVksQ0FBQztJQUN2QixXQUFXLEVBQUUsVUFBVSxDQUFDO0lBQ3hCLFVBQVUsRUFBRSxVQUFVLENBQUM7SUFDdkIsVUFBVSxFQUFFLFVBQVUsQ0FBQztJQUN2QixZQUFZLEVBQUUsWUFBWSxDQUFDO0lBQzNCLEtBQUssRUFBRSxVQUFVLENBQUM7SUFDbEIsTUFBTSxFQUFFLFVBQVUsQ0FBQztDQUNwQixDQUFDO0FBRUY7OztHQUdHO0FBQ0gscUJBQWEscUJBQXFCO0lBMkN2QixTQUFTLEVBQUUsU0FBUztJQUVwQixNQUFNLEVBQUUsTUFBTTtJQUdkLE9BQU8sRUFBRSxhQUFhO0lBRXRCLFFBQVEsRUFBRSxtQkFBbUI7SUFHN0IsVUFBVSxFQUFFLFVBQVU7SUFHdEIsa0JBQWtCLEVBQUUsVUFBVTtJQUU5QixzQkFBc0IsRUFBRSxVQUFVO0lBRWxDLFFBQVEsRUFBRSx3QkFBd0I7YUFHekIsbUJBQW1CLEVBQUUsbUJBQW1CO2FBR3hDLE1BQU0sRUFBRSxNQUFNO2FBR2QsWUFBWSxFQUFFLFlBQVk7SUFwRTVDLE9BQWEsR0FBRyxDQUNkLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLFFBQVEsRUFBRSx3QkFBd0IsRUFDbEMsTUFBTSxFQUFFLE1BQU0sRUFDZCxZQUFZLEVBQUUsWUFBWSxFQUMxQixNQUFNLEVBQUUsTUFBTSxFQUNkLHNCQUFzQixFQUFFLFVBQVUsR0FDakMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBNEJoQztJQUVELE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFpQjtJQUNoRCxPQUFPLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUF1QjtJQUU1RDtJQUNFLDJCQUEyQjtJQUNwQixTQUFTLEVBQUUsU0FBUztJQUMzQixjQUFjO0lBQ1AsTUFBTSxFQUFFLE1BQU07SUFFckIseUJBQXlCO0lBQ2xCLE9BQU8sRUFBRSxhQUFhO0lBQzdCLGdDQUFnQztJQUN6QixRQUFRLEVBQUUsbUJBQW1CO0lBRXBDLG9DQUFvQztJQUM3QixVQUFVLEVBQUUsVUFBVTtJQUU3QixzQkFBc0I7SUFDZixrQkFBa0IsRUFBRSxVQUFVO0lBQ3JDLHlDQUF5QztJQUNsQyxzQkFBc0IsRUFBRSxVQUFVO0lBQ3pDLHFDQUFxQztJQUM5QixRQUFRLEVBQUUsd0JBQXdCO0lBRXpDLGdEQUFnRDtJQUNoQyxtQkFBbUIsRUFBRSxtQkFBbUI7SUFFeEQsNENBQTRDO0lBQzVCLE1BQU0sRUFBRSxNQUFNO0lBRTlCLHVDQUF1QztJQUN2QixZQUFZLEVBQUUsWUFBWSxFQVczQztJQUVLLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxpQkFVbEM7SUFFRCxjQUFjLENBQUMsT0FBTyxFQUFFLFVBQVUsbUJBRWpDO0lBRUQsd0JBQXdCLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxJQUFJLFVBQVEsMEJBRTFEO0lBRUQseUJBQXlCLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxJQUFJLFVBQVEsdUNBRTNEO0lBRUssb0JBQW9CLENBQUMsTUFBTSxFQUFFLE1BQU0saUJBR3hDO0lBRUsscUJBQXFCLENBQUMsTUFBTSxFQUFFLE1BQU0saUJBRXpDO0lBRUssb0JBQW9CLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsWUFBWSxpQkFNL0U7SUFFSyxxQ0FBcUMsQ0FDekMsS0FBSyxFQUFFLElBQUksQ0FBQywwQkFBMEIsRUFBRSxhQUFhLEdBQUcsYUFBYSxHQUFHLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxpQkFRMUc7SUFFSyxvQ0FBb0MsQ0FDeEMsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsYUFBYSxHQUFHLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQyxpQkFRL0U7SUFFSyw0QkFBNEIsQ0FDaEMsY0FBYyxFQUFFLE1BQU0sRUFDdEIsWUFBWSxnQkFBYyxFQUMxQixXQUFXLEVBQUUsV0FBVyxHQUN2QixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBTzlCO0lBRUssMkJBQTJCLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxZQUFZLEdBQUUsRUFBWSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FPbEg7SUFFSyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsWUFBWSxnQkFFOUM7SUFFSyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUkxRTtJQUVLLG9CQUFvQixDQUFDLEtBQUssRUFBRSxZQUFZLGdCQUU3QztJQUVLLHVCQUF1QixDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBR3pFO0lBRUssb0JBQW9CLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxVQUFVLEdBQUUsVUFBNEIsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLENBT3hHO0lBRUQsMkJBQTJCLENBQ3pCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsV0FBVyxFQUFFLFdBQVcsRUFDeEIsWUFBWSxFQUFFLE1BQU0sRUFDcEIsV0FBVyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsaUJBU2pDO0lBRUsscUJBQXFCLENBQUMsWUFBWSxFQUFFLE1BQU0saUJBTS9DO0lBRUssb0JBQW9CLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEtBQVUsaUJBTWhFO0lBRUQ7Ozs7OztPQU1HO0lBQ0cscUJBQXFCLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxHQUFHLGlCQU81QztJQUVELG1CQUFtQixJQUFJLGlCQUFpQixDQVd2QztDQUNGIn0=
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":"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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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"}
@@ -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, blockNumber, messageIndex, siblingPath) {
207
- return this.l1TokenPortalManager.withdrawFunds(amount, this.ethAccount, BigInt(blockNumber), messageIndex, siblingPath);
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');
@@ -1,2 +1,2 @@
1
- export { uniswapL1L2TestSuite, type UniswapSetupContext } from './uniswap_l1_l2.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaGFyZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEtBQUssbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQyJ9
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,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
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 { AztecAddress } from '@aztec/aztec.js/addresses';
2
- import type { Logger } from '@aztec/aztec.js/log';
3
- import type { AztecNode } from '@aztec/aztec.js/node';
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":"AAAA,OAAO,EAAE,YAAY,EAAc,MAAM,2BAA2B,CAAC;AAIrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAElG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAOtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAiB5D,2DAA2D;AAC3D,MAAM,MAAM,mBAAmB,GAAG;IAChC,0BAA0B;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,QAAQ,EAAE,wBAAwB,CAAC;IACnC,kBAAkB;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,yBAAyB;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,0BAA0B;IAC1B,cAAc,EAAE,YAAY,CAAC;IAC7B,OAAO;IACP,uBAAuB,EAAE,gCAAgC,CAAC;IAC1D,4BAA4B;IAC5B,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,oBAAoB,qHAm+BhC,CAAC"}
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
- ({ aztecNode, logger, l1Client, wallet, ownerAddress, sponsorAddress, deployL1ContractsValues, cheatCodes } = await setup());
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 block is proven, we need to set the block to be proven
164
- await cheatCodes.rollup.markAsProven(await rollup.getCheckpointNumber());
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, l2UniswapInteractionReceipt.blockNumber, swapPrivateLeaf);
169
- const withdrawResult = await computeL2ToL1MembershipWitness(aztecNode, l2UniswapInteractionReceipt.blockNumber, withdrawLeaf);
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
- _checkpointNumber: BigInt(l2UniswapInteractionReceipt.blockNumber),
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
- _checkpointNumber: BigInt(l2UniswapInteractionReceipt.blockNumber),
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
- // _checkpointNumber: BigInt(uniswapL2Interaction.blockNumber!),
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
- // _checkpointNumber: BigInt(uniswapL2Interaction.blockNumber!),
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 swapResult = await computeL2ToL1MembershipWitness(aztecNode, withdrawReceipt.blockNumber, swapPrivateLeaf);
568
- const withdrawResult = await computeL2ToL1MembershipWitness(aztecNode, withdrawReceipt.blockNumber, withdrawLeaf);
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
- _checkpointNumber: BigInt(withdrawReceipt.blockNumber),
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
- _checkpointNumber: BigInt(withdrawReceipt.blockNumber),
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 block is proven, we need to set the block to be proven
586
- await cheatCodes.rollup.markAsProven(await rollup.getCheckpointNumber());
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 swapResult = await computeL2ToL1MembershipWitness(aztecNode, withdrawReceipt.blockNumber, swapPublicLeaf);
654
- const withdrawResult = await computeL2ToL1MembershipWitness(aztecNode, withdrawReceipt.blockNumber, withdrawLeaf);
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
- _checkpointNumber: BigInt(withdrawReceipt.blockNumber),
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
- _checkpointNumber: BigInt(withdrawReceipt.blockNumber),
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 block is proven, we need to set the block to be proven
672
- await cheatCodes.rollup.markAsProven(await rollup.getCheckpointNumber());
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.20260108",
3
+ "version": "4.0.0-nightly.20260111",
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.20260108",
29
- "@aztec/archiver": "4.0.0-nightly.20260108",
30
- "@aztec/aztec": "4.0.0-nightly.20260108",
31
- "@aztec/aztec-node": "4.0.0-nightly.20260108",
32
- "@aztec/aztec.js": "4.0.0-nightly.20260108",
33
- "@aztec/bb-prover": "4.0.0-nightly.20260108",
34
- "@aztec/bb.js": "4.0.0-nightly.20260108",
35
- "@aztec/blob-client": "4.0.0-nightly.20260108",
36
- "@aztec/blob-lib": "4.0.0-nightly.20260108",
37
- "@aztec/bot": "4.0.0-nightly.20260108",
38
- "@aztec/cli": "4.0.0-nightly.20260108",
39
- "@aztec/constants": "4.0.0-nightly.20260108",
40
- "@aztec/entrypoints": "4.0.0-nightly.20260108",
41
- "@aztec/epoch-cache": "4.0.0-nightly.20260108",
42
- "@aztec/ethereum": "4.0.0-nightly.20260108",
43
- "@aztec/foundation": "4.0.0-nightly.20260108",
44
- "@aztec/kv-store": "4.0.0-nightly.20260108",
45
- "@aztec/l1-artifacts": "4.0.0-nightly.20260108",
46
- "@aztec/merkle-tree": "4.0.0-nightly.20260108",
47
- "@aztec/node-keystore": "4.0.0-nightly.20260108",
48
- "@aztec/noir-contracts.js": "4.0.0-nightly.20260108",
49
- "@aztec/noir-noirc_abi": "4.0.0-nightly.20260108",
50
- "@aztec/noir-protocol-circuits-types": "4.0.0-nightly.20260108",
51
- "@aztec/noir-test-contracts.js": "4.0.0-nightly.20260108",
52
- "@aztec/p2p": "4.0.0-nightly.20260108",
53
- "@aztec/protocol-contracts": "4.0.0-nightly.20260108",
54
- "@aztec/prover-client": "4.0.0-nightly.20260108",
55
- "@aztec/prover-node": "4.0.0-nightly.20260108",
56
- "@aztec/pxe": "4.0.0-nightly.20260108",
57
- "@aztec/sequencer-client": "4.0.0-nightly.20260108",
58
- "@aztec/simulator": "4.0.0-nightly.20260108",
59
- "@aztec/slasher": "4.0.0-nightly.20260108",
60
- "@aztec/stdlib": "4.0.0-nightly.20260108",
61
- "@aztec/telemetry-client": "4.0.0-nightly.20260108",
62
- "@aztec/test-wallet": "4.0.0-nightly.20260108",
63
- "@aztec/validator-client": "4.0.0-nightly.20260108",
64
- "@aztec/world-state": "4.0.0-nightly.20260108",
28
+ "@aztec/accounts": "4.0.0-nightly.20260111",
29
+ "@aztec/archiver": "4.0.0-nightly.20260111",
30
+ "@aztec/aztec": "4.0.0-nightly.20260111",
31
+ "@aztec/aztec-node": "4.0.0-nightly.20260111",
32
+ "@aztec/aztec.js": "4.0.0-nightly.20260111",
33
+ "@aztec/bb-prover": "4.0.0-nightly.20260111",
34
+ "@aztec/bb.js": "4.0.0-nightly.20260111",
35
+ "@aztec/blob-client": "4.0.0-nightly.20260111",
36
+ "@aztec/blob-lib": "4.0.0-nightly.20260111",
37
+ "@aztec/bot": "4.0.0-nightly.20260111",
38
+ "@aztec/cli": "4.0.0-nightly.20260111",
39
+ "@aztec/constants": "4.0.0-nightly.20260111",
40
+ "@aztec/entrypoints": "4.0.0-nightly.20260111",
41
+ "@aztec/epoch-cache": "4.0.0-nightly.20260111",
42
+ "@aztec/ethereum": "4.0.0-nightly.20260111",
43
+ "@aztec/foundation": "4.0.0-nightly.20260111",
44
+ "@aztec/kv-store": "4.0.0-nightly.20260111",
45
+ "@aztec/l1-artifacts": "4.0.0-nightly.20260111",
46
+ "@aztec/merkle-tree": "4.0.0-nightly.20260111",
47
+ "@aztec/node-keystore": "4.0.0-nightly.20260111",
48
+ "@aztec/noir-contracts.js": "4.0.0-nightly.20260111",
49
+ "@aztec/noir-noirc_abi": "4.0.0-nightly.20260111",
50
+ "@aztec/noir-protocol-circuits-types": "4.0.0-nightly.20260111",
51
+ "@aztec/noir-test-contracts.js": "4.0.0-nightly.20260111",
52
+ "@aztec/p2p": "4.0.0-nightly.20260111",
53
+ "@aztec/protocol-contracts": "4.0.0-nightly.20260111",
54
+ "@aztec/prover-client": "4.0.0-nightly.20260111",
55
+ "@aztec/prover-node": "4.0.0-nightly.20260111",
56
+ "@aztec/pxe": "4.0.0-nightly.20260111",
57
+ "@aztec/sequencer-client": "4.0.0-nightly.20260111",
58
+ "@aztec/simulator": "4.0.0-nightly.20260111",
59
+ "@aztec/slasher": "4.0.0-nightly.20260111",
60
+ "@aztec/stdlib": "4.0.0-nightly.20260111",
61
+ "@aztec/telemetry-client": "4.0.0-nightly.20260111",
62
+ "@aztec/test-wallet": "4.0.0-nightly.20260111",
63
+ "@aztec/validator-client": "4.0.0-nightly.20260111",
64
+ "@aztec/world-state": "4.0.0-nightly.20260111",
65
65
  "@iarna/toml": "^2.2.5",
66
66
  "@jest/globals": "^30.0.0",
67
67
  "@noble/curves": "=1.0.0",
@@ -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 { MetricsType } from '@aztec/telemetry-client';
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: (MetricsType | MetricFilter)[];
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: MetricsType;
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: (MetricsType | MetricFilter)[],
71
+ filter: (MetricDefinition | MetricFilter)[],
68
72
  ): GithubActionBenchmarkResult[] {
69
73
  const allFilters: MetricFilter[] = filter.map(f =>
70
- typeof f === 'string' ? { name: f, source: f, transform: (x: number) => x, unit: undefined } : f,
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 as MetricsType))
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 { InboxAbi, OutboxAbi, TestERC20Abi, TestERC20Bytecode } from '@aztec/l1-artifacts';
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
- inbox!: any; // GetContractReturnType<typeof InboxAbi> | undefined;
54
- outbox!: any; // GetContractReturnType<typeof OutboxAbi> | undefined;
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 inbox = getContract({
152
- address: this.aztecNodeConfig.l1Contracts.inboxAddress.toString(),
153
- abi: InboxAbi,
154
- client: l1Client,
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
- contentCommitment: {
56
- blobsHash: asHex(block.header.contentCommitment.blobsHash),
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 { BlockNumber } from '@aztec/foundation/branded-types';
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
- blockNumber: BlockNumber,
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) {
@@ -1 +1 @@
1
- export { uniswapL1L2TestSuite, type UniswapSetupContext } from './uniswap_l1_l2.js';
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<UniswapSetupContext>,
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
- ({ aztecNode, logger, l1Client, wallet, ownerAddress, sponsorAddress, deployL1ContractsValues, cheatCodes } =
94
- await setup());
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 block is proven, we need to set the block to be proven
263
- await cheatCodes.rollup.markAsProven(await rollup.getCheckpointNumber());
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
- aztecNode,
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
- _checkpointNumber: BigInt(l2UniswapInteractionReceipt.blockNumber!),
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
- _checkpointNumber: BigInt(l2UniswapInteractionReceipt.blockNumber!),
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
- // _checkpointNumber: BigInt(uniswapL2Interaction.blockNumber!),
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
- // _checkpointNumber: BigInt(uniswapL2Interaction.blockNumber!),
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 swapResult = await computeL2ToL1MembershipWitness(aztecNode, withdrawReceipt.blockNumber!, swapPrivateLeaf);
860
- const withdrawResult = await computeL2ToL1MembershipWitness(
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
- _checkpointNumber: BigInt(withdrawReceipt.blockNumber!),
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
- _checkpointNumber: BigInt(withdrawReceipt.blockNumber!),
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 block is proven, we need to set the block to be proven
892
- await cheatCodes.rollup.markAsProven(await rollup.getCheckpointNumber());
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 swapResult = await computeL2ToL1MembershipWitness(aztecNode, withdrawReceipt.blockNumber!, swapPublicLeaf);
995
- const withdrawResult = await computeL2ToL1MembershipWitness(
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
- _checkpointNumber: BigInt(withdrawReceipt.blockNumber!),
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
- _checkpointNumber: BigInt(withdrawReceipt.blockNumber!),
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 block is proven, we need to set the block to be proven
1027
- await cheatCodes.rollup.markAsProven(await rollup.getCheckpointNumber());
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!');