@aztec/end-to-end 0.82.2 → 0.82.3-nightly.20250403
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/client_flows/client_flows_benchmark.d.ts +66 -0
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -0
- package/dest/bench/client_flows/client_flows_benchmark.js +281 -0
- package/dest/bench/client_flows/config.d.ts +14 -0
- package/dest/bench/client_flows/config.d.ts.map +1 -0
- package/dest/bench/client_flows/config.js +85 -0
- package/dest/bench/client_flows/data_extractor.d.ts +23 -0
- package/dest/bench/client_flows/data_extractor.d.ts.map +1 -0
- package/dest/bench/client_flows/data_extractor.js +198 -0
- package/dest/bench/utils.d.ts +0 -12
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +2 -28
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +0 -12
- 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 +1 -13
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +3 -14
- package/dest/e2e_p2p/p2p_network.d.ts +5 -0
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +13 -4
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +1 -0
- package/dest/fixtures/l1_to_l2_messaging.d.ts +2 -2
- package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
- package/dest/fixtures/l1_to_l2_messaging.js +2 -1
- package/dest/fixtures/setup_l1_contracts.d.ts.map +1 -1
- package/dest/fixtures/setup_l1_contracts.js +1 -2
- package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
- package/dest/fixtures/snapshot_manager.js +7 -2
- package/dest/fixtures/token_utils.d.ts +2 -1
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +14 -1
- package/dest/fixtures/utils.d.ts +0 -4
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +216 -238
- package/dest/sample-dapp/contracts.js +4 -4
- package/dest/shared/capture_private_execution_steps.d.ts +2 -2
- package/dest/shared/capture_private_execution_steps.d.ts.map +1 -1
- package/dest/shared/capture_private_execution_steps.js +24 -6
- package/dest/shared/cross_chain_test_harness.d.ts +12 -1
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +14 -3
- package/dest/shared/uniswap_l1_l2.js +8 -6
- package/package.json +32 -32
- package/src/bench/client_flows/client_flows_benchmark.ts +395 -0
- package/src/bench/client_flows/config.ts +53 -0
- package/src/bench/client_flows/data_extractor.ts +217 -0
- package/src/bench/utils.ts +2 -30
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +1 -25
- package/src/e2e_fees/fees_test.ts +2 -15
- package/src/e2e_p2p/p2p_network.ts +10 -6
- package/src/e2e_p2p/shared.ts +1 -0
- package/src/fixtures/l1_to_l2_messaging.ts +12 -3
- package/src/fixtures/setup_l1_contracts.ts +1 -2
- package/src/fixtures/snapshot_manager.ts +7 -2
- package/src/fixtures/token_utils.ts +22 -2
- package/src/fixtures/utils.ts +235 -261
- package/src/sample-dapp/contracts.mjs +4 -4
- package/src/shared/capture_private_execution_steps.ts +43 -6
- package/src/shared/cross_chain_test_harness.ts +26 -2
- package/src/shared/uniswap_l1_l2.ts +8 -8
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { BBNativePrivateKernelProver } from '@aztec/bb-prover';
|
|
2
|
+
import { BBWASMBundlePrivateKernelProver } from '@aztec/bb-prover/wasm/bundle';
|
|
3
|
+
import { createLogger, logger } from '@aztec/foundation/log';
|
|
4
|
+
import { WASMSimulator } from '@aztec/simulator/client';
|
|
5
|
+
import { decode } from '@msgpack/msgpack';
|
|
6
|
+
import assert from 'node:assert';
|
|
7
|
+
import { readFile, readdir, writeFile } from 'node:fs/promises';
|
|
8
|
+
import { join } from 'node:path';
|
|
9
|
+
const logLevel = [
|
|
10
|
+
'silent',
|
|
11
|
+
'fatal',
|
|
12
|
+
'error',
|
|
13
|
+
'warn',
|
|
14
|
+
'info',
|
|
15
|
+
'verbose',
|
|
16
|
+
'debug',
|
|
17
|
+
'trace'
|
|
18
|
+
];
|
|
19
|
+
const GATE_TYPES = [
|
|
20
|
+
'ecc_op',
|
|
21
|
+
'busread',
|
|
22
|
+
'lookup',
|
|
23
|
+
'pub_inputs',
|
|
24
|
+
'arithmetic',
|
|
25
|
+
'delta_range',
|
|
26
|
+
'elliptic',
|
|
27
|
+
'aux',
|
|
28
|
+
'poseidon2_external',
|
|
29
|
+
'poseidon2_internal',
|
|
30
|
+
'overflow'
|
|
31
|
+
];
|
|
32
|
+
export class ProxyLogger {
|
|
33
|
+
static instance;
|
|
34
|
+
logs = [];
|
|
35
|
+
constructor(){}
|
|
36
|
+
static create() {
|
|
37
|
+
ProxyLogger.instance = new ProxyLogger();
|
|
38
|
+
}
|
|
39
|
+
static getInstance() {
|
|
40
|
+
return ProxyLogger.instance;
|
|
41
|
+
}
|
|
42
|
+
createLogger(prefix) {
|
|
43
|
+
return new Proxy(createLogger(prefix), {
|
|
44
|
+
get: (target, prop)=>{
|
|
45
|
+
if (logLevel.includes(prop)) {
|
|
46
|
+
return function(...data) {
|
|
47
|
+
const loggingFn = prop;
|
|
48
|
+
const args = [
|
|
49
|
+
loggingFn,
|
|
50
|
+
prefix,
|
|
51
|
+
...data
|
|
52
|
+
];
|
|
53
|
+
ProxyLogger.getInstance().handleLog(...args);
|
|
54
|
+
target[loggingFn].call(this, ...[
|
|
55
|
+
data[0],
|
|
56
|
+
data[1]
|
|
57
|
+
]);
|
|
58
|
+
};
|
|
59
|
+
} else {
|
|
60
|
+
return target[prop];
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
handleLog(type, prefix, message, data) {
|
|
66
|
+
this.logs.unshift({
|
|
67
|
+
type,
|
|
68
|
+
prefix,
|
|
69
|
+
message,
|
|
70
|
+
data,
|
|
71
|
+
timestamp: Date.now()
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
flushLogs() {
|
|
75
|
+
this.logs = [];
|
|
76
|
+
}
|
|
77
|
+
getLogs() {
|
|
78
|
+
return this.logs;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
async function createProver(config = {}, log) {
|
|
82
|
+
const simulationProvider = new WASMSimulator();
|
|
83
|
+
if (!config.bbBinaryPath || !config.bbWorkingDirectory) {
|
|
84
|
+
return {
|
|
85
|
+
prover: new BBWASMBundlePrivateKernelProver(simulationProvider, 16, log),
|
|
86
|
+
type: 'wasm'
|
|
87
|
+
};
|
|
88
|
+
} else {
|
|
89
|
+
const bbConfig = config;
|
|
90
|
+
return {
|
|
91
|
+
prover: await BBNativePrivateKernelProver.new({
|
|
92
|
+
bbSkipCleanup: false,
|
|
93
|
+
...bbConfig
|
|
94
|
+
}, simulationProvider, log),
|
|
95
|
+
type: 'native'
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
function getMinimumTrace(logs, proverType) {
|
|
100
|
+
const minimumMessage = 'Minimum required block sizes for structured trace:';
|
|
101
|
+
const minimumMessageIndex = logs.findIndex((log)=>log.message.includes(minimumMessage));
|
|
102
|
+
const candidateLogs = logs.slice(minimumMessageIndex - GATE_TYPES.length, minimumMessageIndex);
|
|
103
|
+
const traceLogs = proverType === 'wasm' ? candidateLogs.map((log)=>log.message) : logs.slice(minimumMessageIndex - GATE_TYPES.length, minimumMessageIndex).filter((log)=>GATE_TYPES.some((type)=>log.message.includes(`bb - ${type}`))).map((log)=>log.message.split('\n')).flat();
|
|
104
|
+
const traceSizes = traceLogs.map((log)=>{
|
|
105
|
+
const [gateType, gateSizeStr] = log.replace(/\n.*\)$/, '').replace(/bb - /, '').split(':').map((s)=>s.trim());
|
|
106
|
+
const gateSize = parseInt(gateSizeStr);
|
|
107
|
+
assert(GATE_TYPES.includes(gateType), `Gate type ${gateType} is not recognized`);
|
|
108
|
+
return {
|
|
109
|
+
[gateType]: gateSize
|
|
110
|
+
};
|
|
111
|
+
});
|
|
112
|
+
assert(traceSizes.length === GATE_TYPES.length, 'Decoded trace sizes do not match expected amount of gate types');
|
|
113
|
+
return traceSizes.reduce((acc, curr)=>({
|
|
114
|
+
...acc,
|
|
115
|
+
...curr
|
|
116
|
+
}), {});
|
|
117
|
+
}
|
|
118
|
+
async function main() {
|
|
119
|
+
ProxyLogger.create();
|
|
120
|
+
const proxyLogger = ProxyLogger.getInstance();
|
|
121
|
+
const ivcFolder = process.env.CAPTURE_IVC_FOLDER;
|
|
122
|
+
if (!ivcFolder) {
|
|
123
|
+
throw new Error('CAPTURE_IVC_FOLDER is not set');
|
|
124
|
+
}
|
|
125
|
+
const flows = await readdir(ivcFolder);
|
|
126
|
+
logger.info(`Flows in ${ivcFolder}: \n${flows.map((flowName)=>`\t- ${flowName}`).join('\n')}`);
|
|
127
|
+
const { prover, type: proverType } = await createProver({
|
|
128
|
+
bbBinaryPath: process.env.BB_BINARY_PATH,
|
|
129
|
+
bbWorkingDirectory: process.env.BB_WORKING_DIRECTORY
|
|
130
|
+
}, proxyLogger.createLogger('bb:prover'));
|
|
131
|
+
const userLog = createLogger('client_ivc_flows:data_processor');
|
|
132
|
+
for (const flow of flows){
|
|
133
|
+
userLog.info(`Processing flow ${flow}`);
|
|
134
|
+
const bytecode = await readFile(join(ivcFolder, flow, 'acir.msgpack'));
|
|
135
|
+
const acirStack = decode(bytecode);
|
|
136
|
+
const witnesses = await readFile(join(ivcFolder, flow, 'witnesses.json'));
|
|
137
|
+
const witnessStack = JSON.parse(witnesses.toString()).map((witnessMap)=>{
|
|
138
|
+
return new Map(Object.entries(witnessMap).map(([k, v])=>[
|
|
139
|
+
Number(k),
|
|
140
|
+
v
|
|
141
|
+
]));
|
|
142
|
+
});
|
|
143
|
+
const stepsFile = await readFile(join(ivcFolder, flow, 'steps.json'));
|
|
144
|
+
const executionSteps = JSON.parse(stepsFile.toString());
|
|
145
|
+
const privateExecutionSteps = executionSteps.map((step, i)=>({
|
|
146
|
+
functionName: step.fnName,
|
|
147
|
+
gateCount: step.gateCount,
|
|
148
|
+
bytecode: acirStack[i],
|
|
149
|
+
witness: witnessStack[i]
|
|
150
|
+
}));
|
|
151
|
+
let stats;
|
|
152
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
153
|
+
let error;
|
|
154
|
+
let currentLogs = [];
|
|
155
|
+
try {
|
|
156
|
+
await prover.createClientIvcProof(privateExecutionSteps);
|
|
157
|
+
} catch (e) {
|
|
158
|
+
userLog.error(`Failed to generate client ivc proof for ${flow}`, e);
|
|
159
|
+
error = e.message;
|
|
160
|
+
}
|
|
161
|
+
// Extract logs from this run from the proxy and write them to disk unconditionally
|
|
162
|
+
currentLogs = proxyLogger.getLogs();
|
|
163
|
+
await writeFile(join(ivcFolder, flow, 'logs.json'), JSON.stringify(currentLogs, null, 2));
|
|
164
|
+
if (!error) {
|
|
165
|
+
stats = currentLogs[0].data;
|
|
166
|
+
}
|
|
167
|
+
const minimumTrace = getMinimumTrace(currentLogs, proverType);
|
|
168
|
+
const steps = executionSteps.reduce((acc, step, i)=>{
|
|
169
|
+
const previousAccGateCount = i === 0 ? 0 : acc[i - 1].accGateCount;
|
|
170
|
+
return [
|
|
171
|
+
...acc,
|
|
172
|
+
{
|
|
173
|
+
fnName: step.fnName,
|
|
174
|
+
gateCount: step.gateCount,
|
|
175
|
+
accGateCount: previousAccGateCount + step.gateCount
|
|
176
|
+
}
|
|
177
|
+
];
|
|
178
|
+
}, []);
|
|
179
|
+
const totalGateCount = steps[steps.length - 1].accGateCount;
|
|
180
|
+
const benchmark = {
|
|
181
|
+
proverType,
|
|
182
|
+
minimumTrace: minimumTrace,
|
|
183
|
+
totalGateCount,
|
|
184
|
+
stats,
|
|
185
|
+
steps,
|
|
186
|
+
error
|
|
187
|
+
};
|
|
188
|
+
await writeFile(join(ivcFolder, flow, 'benchmark.json'), JSON.stringify(benchmark, null, 2));
|
|
189
|
+
proxyLogger.flushLogs();
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
try {
|
|
193
|
+
await main();
|
|
194
|
+
} catch (e) {
|
|
195
|
+
// eslint-disable-next-line no-console
|
|
196
|
+
console.error(e);
|
|
197
|
+
process.exit(1);
|
|
198
|
+
}
|
package/dest/bench/utils.d.ts
CHANGED
|
@@ -23,18 +23,6 @@ type MetricFilter = {
|
|
|
23
23
|
name: string;
|
|
24
24
|
unit?: string;
|
|
25
25
|
};
|
|
26
|
-
/**
|
|
27
|
-
* Creates and returns a directory with the current job name and a random number.
|
|
28
|
-
* @param index - Index to merge into the dir path.
|
|
29
|
-
* @returns A path to a created dir.
|
|
30
|
-
*/
|
|
31
|
-
export declare function makeDataDirectory(index: number): string;
|
|
32
|
-
/**
|
|
33
|
-
* Returns the size in disk of a folder.
|
|
34
|
-
* @param path - Path to the folder.
|
|
35
|
-
* @returns Size in bytes.
|
|
36
|
-
*/
|
|
37
|
-
export declare function getFolderSize(path: string): number;
|
|
38
26
|
/**
|
|
39
27
|
* Assembles and sends multiple transactions simultaneously to the node in context.
|
|
40
28
|
* Each tx is the result of calling makeCall.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bench/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAmC,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bench/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAmC,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE9G,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,KAAK,UAAU,EAA2C,MAAM,mBAAmB,CAAC;AAC7F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAA4C,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAIxH,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;;;;;GAuBF;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;AAuEF;;;;;;;;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;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,oBAAoB,EAC9B,aAAa,GAAE,MAA6B,GAC3C,OAAO,CAAC,UAAU,CAAC,CAerB"}
|
package/dest/bench/utils.js
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import { BatchCall, INITIAL_L2_BLOCK_NUM } from '@aztec/aztec.js';
|
|
2
2
|
import { mean, stdDev, times } from '@aztec/foundation/collection';
|
|
3
|
-
import { randomInt } from '@aztec/foundation/crypto';
|
|
4
3
|
import { BenchmarkingContract } from '@aztec/noir-contracts.js/Benchmarking';
|
|
5
4
|
import { createPXEService } from '@aztec/pxe/server';
|
|
6
5
|
import { writeFileSync } from 'fs';
|
|
7
|
-
import { mkdirpSync } from 'fs-extra';
|
|
8
|
-
import { globSync } from 'glob';
|
|
9
|
-
import { join } from 'path';
|
|
10
6
|
import { setup } from '../fixtures/utils.js';
|
|
11
7
|
/**
|
|
12
8
|
* Setup for benchmarks. Initializes a remote node with a single account and deploys a benchmark contract.
|
|
@@ -79,28 +75,6 @@ function getMetricValues(points) {
|
|
|
79
75
|
};
|
|
80
76
|
}
|
|
81
77
|
}
|
|
82
|
-
/**
|
|
83
|
-
* Creates and returns a directory with the current job name and a random number.
|
|
84
|
-
* @param index - Index to merge into the dir path.
|
|
85
|
-
* @returns A path to a created dir.
|
|
86
|
-
*/ export function makeDataDirectory(index) {
|
|
87
|
-
const testName = expect.getState().currentTestName.split(' ')[0].replaceAll('/', '_');
|
|
88
|
-
const db = join('data', testName, index.toString(), `${randomInt(99)}`);
|
|
89
|
-
mkdirpSync(db);
|
|
90
|
-
return db;
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Returns the size in disk of a folder.
|
|
94
|
-
* @param path - Path to the folder.
|
|
95
|
-
* @returns Size in bytes.
|
|
96
|
-
*/ export function getFolderSize(path) {
|
|
97
|
-
return globSync('**', {
|
|
98
|
-
stat: true,
|
|
99
|
-
cwd: path,
|
|
100
|
-
nodir: true,
|
|
101
|
-
withFileTypes: true
|
|
102
|
-
}).reduce((accum, file)=>accum + file.size, 0);
|
|
103
|
-
}
|
|
104
78
|
/**
|
|
105
79
|
* Returns a call to the benchmark contract. Each call has a private execution (account entrypoint),
|
|
106
80
|
* a nested private call (create_note), a public call (increment_balance), and a nested public
|
|
@@ -155,7 +129,7 @@ export async function waitTxs(txs, context, txWaitOpts) {
|
|
|
155
129
|
* @returns The new PXE.
|
|
156
130
|
*/ export async function createNewPXE(node, contract, startingBlock = INITIAL_L2_BLOCK_NUM) {
|
|
157
131
|
const l1Contracts = await node.getL1ContractAddresses();
|
|
158
|
-
const { l1ChainId,
|
|
132
|
+
const { l1ChainId, rollupVersion } = await node.getNodeInfo();
|
|
159
133
|
const pxeConfig = {
|
|
160
134
|
l2StartingBlock: startingBlock,
|
|
161
135
|
l2BlockPollingIntervalMS: 100,
|
|
@@ -163,7 +137,7 @@ export async function waitTxs(txs, context, txWaitOpts) {
|
|
|
163
137
|
dataStoreMapSizeKB: 1024 * 1024,
|
|
164
138
|
l1Contracts,
|
|
165
139
|
l1ChainId,
|
|
166
|
-
|
|
140
|
+
rollupVersion
|
|
167
141
|
};
|
|
168
142
|
const pxe = await createPXEService(node, pxeConfig);
|
|
169
143
|
await pxe.registerContract(contract);
|
|
@@ -31,17 +31,5 @@ export declare class CrossChainMessagingTest {
|
|
|
31
31
|
snapshot: <T>(name: string, apply: (context: SubsystemsContext) => Promise<T>, restore?: (snapshotData: T, context: SubsystemsContext) => Promise<void>) => Promise<void>;
|
|
32
32
|
teardown(): Promise<void>;
|
|
33
33
|
applyBaseSnapshots(): Promise<void>;
|
|
34
|
-
toCrossChainContext(): CrossChainContext;
|
|
35
34
|
}
|
|
36
|
-
type CrossChainContext = {
|
|
37
|
-
l2Token: AztecAddress;
|
|
38
|
-
l2Bridge: AztecAddress;
|
|
39
|
-
tokenPortal: EthAddress;
|
|
40
|
-
underlying: EthAddress;
|
|
41
|
-
ethAccount: EthAddress;
|
|
42
|
-
ownerAddress: AztecAddress;
|
|
43
|
-
inbox: EthAddress;
|
|
44
|
-
outbox: EthAddress;
|
|
45
|
-
};
|
|
46
|
-
export {};
|
|
47
35
|
//# sourceMappingURL=cross_chain_messaging_test.d.ts.map
|
|
@@ -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":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EACL,KAAK,aAAa,EAClB,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,UAAU,EACV,KAAK,MAAM,EACX,KAAK,GAAG,EAET,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,KAAK,gBAAgB,EAAqC,MAAM,iBAAiB,CAAC;AAE3F,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAK3E,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAI9E,qBAAa,uBAAuB;IAClC,OAAO,CAAC,eAAe,CAAmB;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,EAAE,CAAM;IAC9B,QAAQ,EAAE,eAAe,EAAE,CAAM;IACjC,SAAS,EAAG,SAAS,CAAC;IACtB,GAAG,EAAG,GAAG,CAAC;IACV,eAAe,EAAG,eAAe,CAAC;IAElC,YAAY,EAAG,gBAAgB,GAAG,SAAS,CAAC;IAE5C,WAAW,EAAG,aAAa,CAAC;IAC5B,WAAW,EAAG,aAAa,CAAC;IAC5B,qBAAqB,EAAG,qBAAqB,CAAC;IAC9C,UAAU,EAAG,UAAU,CAAC;IACxB,YAAY,EAAG,YAAY,CAAC;IAC5B,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;gBAEZ,QAAQ,EAAE,MAAM;IAKtB,YAAY;IAIZ,KAAK;IAQX,QAAQ,YACA,MAAM,SACL,CAAC,OAAO,EAAE,iBAAiB,KAAK,QAAQ,CAAC,CAAC,YACxC,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,QAAQ,IAAI,CAAC,KACtE,QAAQ,IAAI,CAAC,CAAwD;IAElE,QAAQ;IAIR,kBAAkB;
|
|
1
|
+
{"version":3,"file":"cross_chain_messaging_test.d.ts","sourceRoot":"","sources":["../../src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EACL,KAAK,aAAa,EAClB,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,UAAU,EACV,KAAK,MAAM,EACX,KAAK,GAAG,EAET,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,KAAK,gBAAgB,EAAqC,MAAM,iBAAiB,CAAC;AAE3F,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAK3E,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAI9E,qBAAa,uBAAuB;IAClC,OAAO,CAAC,eAAe,CAAmB;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,EAAE,CAAM;IAC9B,QAAQ,EAAE,eAAe,EAAE,CAAM;IACjC,SAAS,EAAG,SAAS,CAAC;IACtB,GAAG,EAAG,GAAG,CAAC;IACV,eAAe,EAAG,eAAe,CAAC;IAElC,YAAY,EAAG,gBAAgB,GAAG,SAAS,CAAC;IAE5C,WAAW,EAAG,aAAa,CAAC;IAC5B,WAAW,EAAG,aAAa,CAAC;IAC5B,qBAAqB,EAAG,qBAAqB,CAAC;IAC9C,UAAU,EAAG,UAAU,CAAC;IACxB,YAAY,EAAG,YAAY,CAAC;IAC5B,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;gBAEZ,QAAQ,EAAE,MAAM;IAKtB,YAAY;IAIZ,KAAK;IAQX,QAAQ,YACA,MAAM,SACL,CAAC,OAAO,EAAE,iBAAiB,KAAK,QAAQ,CAAC,CAAC,YACxC,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,QAAQ,IAAI,CAAC,KACtE,QAAQ,IAAI,CAAC,CAAwD;IAElE,QAAQ;IAIR,kBAAkB;CAiGzB"}
|
|
@@ -74,7 +74,7 @@ export class CrossChainMessagingTest {
|
|
|
74
74
|
this.logger.verbose(`Setting up cross chain harness...`);
|
|
75
75
|
this.crossChainTestHarness = await CrossChainTestHarness.new(this.aztecNode, this.pxe, publicClient, walletClient, this.wallets[0], this.logger, underlyingERC20Address);
|
|
76
76
|
this.logger.verbose(`L2 token deployed to: ${this.crossChainTestHarness.l2Token.address}`);
|
|
77
|
-
return this.toCrossChainContext();
|
|
77
|
+
return this.crossChainTestHarness.toCrossChainContext();
|
|
78
78
|
}, async (crossChainContext)=>{
|
|
79
79
|
this.l2Token = await TokenContract.at(crossChainContext.l2Token, this.user1Wallet);
|
|
80
80
|
this.l2Bridge = await TokenBridgeContract.at(crossChainContext.l2Bridge, this.user1Wallet);
|
|
@@ -99,16 +99,4 @@ export class CrossChainMessagingTest {
|
|
|
99
99
|
this.outbox = outbox;
|
|
100
100
|
});
|
|
101
101
|
}
|
|
102
|
-
toCrossChainContext() {
|
|
103
|
-
return {
|
|
104
|
-
l2Token: this.crossChainTestHarness.l2Token.address,
|
|
105
|
-
l2Bridge: this.crossChainTestHarness.l2Bridge.address,
|
|
106
|
-
tokenPortal: this.crossChainTestHarness.tokenPortalAddress,
|
|
107
|
-
underlying: this.crossChainTestHarness.underlyingERC20Address,
|
|
108
|
-
ethAccount: this.crossChainTestHarness.ethAccount,
|
|
109
|
-
ownerAddress: this.crossChainTestHarness.ownerAddress,
|
|
110
|
-
inbox: this.crossChainTestHarness.l1ContractAddresses.inboxAddress,
|
|
111
|
-
outbox: this.crossChainTestHarness.l1ContractAddresses.outboxAddress
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fees_test.d.ts","sourceRoot":"","sources":["../../src/e2e_fees/fees_test.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,MAAM,EACX,KAAK,GAAG,EAGT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,KAAK,qBAAqB,EAAoD,MAAM,iBAAiB,CAAC;AAC/G,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,aAAa,IAAI,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG7E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKhD,OAAO,EAEL,KAAK,iBAAiB,EAGvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,KAAK,UAAU,EACf,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"fees_test.d.ts","sourceRoot":"","sources":["../../src/e2e_fees/fees_test.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ import { getContract } from 'viem';
|
|
|
19
19
|
import { MNEMONIC } from '../fixtures/fixtures.js';
|
|
20
20
|
import { createSnapshotManager, deployAccounts } from '../fixtures/snapshot_manager.js';
|
|
21
21
|
import { mintTokensToPrivate } from '../fixtures/token_utils.js';
|
|
22
|
-
import { ensureAccountsPubliclyDeployed, getBalancesFn,
|
|
22
|
+
import { ensureAccountsPubliclyDeployed, getBalancesFn, setupSponsoredFPC } from '../fixtures/utils.js';
|
|
23
23
|
import { FeeJuicePortalTestingHarnessFactory } from '../shared/gas_portal_test_harness.js';
|
|
24
24
|
const { E2E_DATA_PATH: dataPath } = process.env;
|
|
25
25
|
/**
|
|
@@ -123,7 +123,7 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
123
123
|
await this.applyDeployBananaTokenSnapshot();
|
|
124
124
|
}
|
|
125
125
|
async applyInitialAccountsSnapshot() {
|
|
126
|
-
await this.snapshotManager.snapshot('initial_accounts', deployAccounts(this.numberOfAccounts, this.logger), async ({ deployedAccounts }, { pxe, aztecNode, aztecNodeConfig
|
|
126
|
+
await this.snapshotManager.snapshot('initial_accounts', deployAccounts(this.numberOfAccounts, this.logger), async ({ deployedAccounts }, { pxe, aztecNode, aztecNodeConfig })=>{
|
|
127
127
|
this.pxe = pxe;
|
|
128
128
|
this.aztecNode = aztecNode;
|
|
129
129
|
this.gasSettings = GasSettings.default({
|
|
@@ -139,24 +139,13 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
139
139
|
const canonicalFeeJuice = await getCanonicalFeeJuice();
|
|
140
140
|
this.feeJuiceContract = await FeeJuiceContract.at(canonicalFeeJuice.address, this.aliceWallet);
|
|
141
141
|
this.coinbase = EthAddress.random();
|
|
142
|
-
this.feeJuiceBridgeTestHarness = await FeeJuicePortalTestingHarnessFactory.create({
|
|
143
|
-
aztecNode,
|
|
144
|
-
aztecNodeAdmin: aztecNode,
|
|
145
|
-
pxeService: pxe,
|
|
146
|
-
publicClient: deployL1ContractsValues.publicClient,
|
|
147
|
-
walletClient: deployL1ContractsValues.walletClient,
|
|
148
|
-
wallet: this.aliceWallet,
|
|
149
|
-
logger: this.logger
|
|
150
|
-
});
|
|
151
142
|
});
|
|
152
143
|
}
|
|
153
144
|
async applyPublicDeployAccountsSnapshot() {
|
|
154
145
|
await this.snapshotManager.snapshot('public_deploy_accounts', ()=>ensureAccountsPubliclyDeployed(this.aliceWallet, this.wallets));
|
|
155
146
|
}
|
|
156
147
|
async applySetupFeeJuiceSnapshot() {
|
|
157
|
-
await this.snapshotManager.snapshot('setup_fee_juice', async (context)=>{
|
|
158
|
-
await setupCanonicalFeeJuice(context.pxe);
|
|
159
|
-
}, async (_data, context)=>{
|
|
148
|
+
await this.snapshotManager.snapshot('setup_fee_juice', async ()=>{}, async (_data, context)=>{
|
|
160
149
|
this.context = context;
|
|
161
150
|
this.feeJuiceContract = await FeeJuiceContract.at(ProtocolContractAddress.FeeJuice, this.aliceWallet);
|
|
162
151
|
this.getGasBalanceFn = getBalancesFn('⛽', this.feeJuiceContract.methods.balance_of_public, this.logger);
|
|
@@ -26,6 +26,11 @@ export declare class P2PNetworkTest {
|
|
|
26
26
|
attesterPublicKeys: string[];
|
|
27
27
|
proposerPrivateKeys: `0x${string}`[];
|
|
28
28
|
peerIdPrivateKeys: string[];
|
|
29
|
+
validators: {
|
|
30
|
+
attester: `0x${string}`;
|
|
31
|
+
proposer: `0x${string}`;
|
|
32
|
+
withdrawer: `0x${string}`;
|
|
33
|
+
}[];
|
|
29
34
|
deployedAccounts: InitialAccountData[];
|
|
30
35
|
prefilledPublicData: PublicDataTreeLeaf[];
|
|
31
36
|
wallet?: AccountWalletWithSecretKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p2p_network.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/p2p_network.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAGlE,OAAO,EAAE,YAAY,EAA0B,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAa9D,OAAO,EAEL,KAAK,iBAAiB,EAGvB,MAAM,iCAAiC,CAAC;AAOzC,eAAO,MAAM,mBAAmB,QAA0C,CAAC;AAE3E,eAAO,MAAM,2BAA2B;;;CAGvC,CAAC;AAEF,qBAAa,cAAc;
|
|
1
|
+
{"version":3,"file":"p2p_network.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/p2p_network.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAGlE,OAAO,EAAE,YAAY,EAA0B,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAa9D,OAAO,EAEL,KAAK,iBAAiB,EAGvB,MAAM,iCAAiC,CAAC;AAOzC,eAAO,MAAM,mBAAmB,QAA0C,CAAC;AAE3E,eAAO,MAAM,2BAA2B;;;CAGvC,CAAC;AAEF,qBAAa,cAAc;IA4BhB,gBAAgB,EAAE,MAAM;IACxB,YAAY,EAAE,MAAM;IAC3B,OAAO,CAAC,aAAa;IAGrB,OAAO,CAAC,WAAW,CAAC;IAhCtB,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,WAAW,CAAC;IAEb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAG,YAAY,CAAC;IAEvB,GAAG,EAAG,iBAAiB,CAAC;IACxB,mBAAmB,EAAE,KAAK,MAAM,EAAE,EAAE,CAAM;IAC1C,kBAAkB,EAAE,MAAM,EAAE,CAAM;IAClC,mBAAmB,EAAE,KAAK,MAAM,EAAE,EAAE,CAAM;IAC1C,iBAAiB,EAAE,MAAM,EAAE,CAAM;IACjC,UAAU,EAAE;QAAE,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAC;QAAC,UAAU,EAAE,KAAK,MAAM,EAAE,CAAA;KAAE,EAAE,CAAM;IAEnG,gBAAgB,EAAE,kBAAkB,EAAE,CAAM;IAC5C,mBAAmB,EAAE,kBAAkB,EAAE,CAAM;IAE/C,MAAM,CAAC,EAAE,0BAA0B,CAAC;IACpC,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B,aAAa,CAAC,EAAE,aAAa,CAAC;IAErC,OAAO,CAAC,eAAe,CAAyC;IAEhE,OAAO,CAAC,QAAQ,CAA6C;gBAG3D,QAAQ,EAAE,MAAM,EACT,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EAC7B,sBAAsB,EAAE,eAAe,EAE/B,WAAW,CAAC,oBAAQ;WAmCjB,MAAM,CAAC,EAClB,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,WAAW,EACX,aAAa,GACd,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;KAC1C;IAcD,IAAI,aAAa,uBAKhB;IAED;;OAEG;IACI,+BAA+B;IAMtC;;OAEG;IACU,kBAAkB;IAczB,kBAAkB;IA+FlB,YAAY;IAYZ,kBAAkB;IAoBlB,iBAAiB;IAsBjB,KAAK;IA2BL,SAAS,CAAC,KAAK,EAAE,gBAAgB,EAAE;IAanC,QAAQ;CAQf"}
|
|
@@ -12,7 +12,7 @@ import { getContract } from 'viem';
|
|
|
12
12
|
import { privateKeyToAccount } from 'viem/accounts';
|
|
13
13
|
import { ATTESTER_PRIVATE_KEYS_START_INDEX, PROPOSER_PRIVATE_KEYS_START_INDEX, createValidatorConfig, generatePrivateKeys } from '../fixtures/setup_p2p_test.js';
|
|
14
14
|
import { createSnapshotManager, deployAccounts } from '../fixtures/snapshot_manager.js';
|
|
15
|
-
import { getPrivateKeyFromIndex } from '../fixtures/utils.js';
|
|
15
|
+
import { getPrivateKeyFromIndex, getSponsoredFPCAddress } from '../fixtures/utils.js';
|
|
16
16
|
import { getEndToEndTestTelemetryClient } from '../fixtures/with_telemetry_utils.js';
|
|
17
17
|
// Use a fixed bootstrap node private key so that we can re-use the same snapshot and the nodes can find each other
|
|
18
18
|
const BOOTSTRAP_NODE_PRIVATE_KEY = '080212208f988fc0899e4a73a5aee4d271a5f20670603a756ad8d84f2c94263a6427c591';
|
|
@@ -36,6 +36,7 @@ export class P2PNetworkTest {
|
|
|
36
36
|
attesterPublicKeys;
|
|
37
37
|
proposerPrivateKeys;
|
|
38
38
|
peerIdPrivateKeys;
|
|
39
|
+
validators;
|
|
39
40
|
deployedAccounts;
|
|
40
41
|
prefilledPublicData;
|
|
41
42
|
// The re-execution test needs a wallet and a spam contract
|
|
@@ -54,6 +55,7 @@ export class P2PNetworkTest {
|
|
|
54
55
|
this.attesterPublicKeys = [];
|
|
55
56
|
this.proposerPrivateKeys = [];
|
|
56
57
|
this.peerIdPrivateKeys = [];
|
|
58
|
+
this.validators = [];
|
|
57
59
|
this.deployedAccounts = [];
|
|
58
60
|
this.prefilledPublicData = [];
|
|
59
61
|
this.cleanupInterval = undefined;
|
|
@@ -72,7 +74,7 @@ export class P2PNetworkTest {
|
|
|
72
74
|
aztecProofSubmissionWindow: initialValidatorConfig.aztecProofSubmissionWindow ?? l1ContractsConfig.aztecProofSubmissionWindow,
|
|
73
75
|
salt: 420,
|
|
74
76
|
metricsPort: metricsPort,
|
|
75
|
-
numberOfInitialFundedAccounts:
|
|
77
|
+
numberOfInitialFundedAccounts: 2
|
|
76
78
|
}, {
|
|
77
79
|
aztecEpochDuration: initialValidatorConfig.aztecEpochDuration ?? l1ContractsConfig.aztecEpochDuration,
|
|
78
80
|
ethereumSlotDuration: initialValidatorConfig.ethereumSlotDuration ?? l1ContractsConfig.ethereumSlotDuration,
|
|
@@ -163,8 +165,9 @@ export class P2PNetworkTest {
|
|
|
163
165
|
withdrawer: attester.address,
|
|
164
166
|
amount: l1ContractsConfig.minimumStake
|
|
165
167
|
});
|
|
166
|
-
this.logger.
|
|
168
|
+
this.logger.info(`Adding attester ${attester.address} proposer ${forwarder} as validator`);
|
|
167
169
|
}
|
|
170
|
+
this.validators = validators;
|
|
168
171
|
await deployL1ContractsValues.publicClient.waitForTransactionReceipt({
|
|
169
172
|
hash: await rollup.write.cheat__InitialiseValidatorSet([
|
|
170
173
|
validators
|
|
@@ -235,7 +238,13 @@ export class P2PNetworkTest {
|
|
|
235
238
|
}
|
|
236
239
|
async setup() {
|
|
237
240
|
this.ctx = await this.snapshotManager.setup();
|
|
238
|
-
|
|
241
|
+
const sponsoredFPCAddress = await getSponsoredFPCAddress();
|
|
242
|
+
const initialFundedAccounts = [
|
|
243
|
+
...this.ctx.initialFundedAccounts.map((a)=>a.address),
|
|
244
|
+
sponsoredFPCAddress
|
|
245
|
+
];
|
|
246
|
+
const { prefilledPublicData } = await getGenesisValues(initialFundedAccounts);
|
|
247
|
+
this.prefilledPublicData = prefilledPublicData;
|
|
239
248
|
this.startSyncMockSystemTimeInterval();
|
|
240
249
|
this.gasUtils = new L1TxUtilsWithBlobs(this.ctx.deployL1ContractsValues.publicClient, this.ctx.deployL1ContractsValues.walletClient, this.logger, {
|
|
241
250
|
gasLimitBufferPercentage: 20,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/shared.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAY,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAGlE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAIjE,eAAO,MAAM,kBAAkB,WACrB,MAAM,gBACA,YAAY,UAClB,MAAM,SACR;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,sBAwB/B,CAAC;AAGF,eAAO,MAAM,qCAAqC,WACxC,MAAM,QACR,gBAAgB,UACd,MAAM,iBACC,kBAAkB,KAChC,QAAQ,WAAW,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/shared.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAY,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAGlE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAIjE,eAAO,MAAM,kBAAkB,WACrB,MAAM,gBACA,YAAY,UAClB,MAAM,SACR;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,sBAwB/B,CAAC;AAGF,eAAO,MAAM,qCAAqC,WACxC,MAAM,QACR,gBAAgB,UACd,MAAM,iBACC,kBAAkB,KAChC,QAAQ,WAAW,CAoBrB,CAAC"}
|
package/dest/e2e_p2p/shared.js
CHANGED
|
@@ -26,6 +26,7 @@ export const submitComplexTxsTo = async (logger, spamContract, numTxs, opts = {}
|
|
|
26
26
|
// creates an instance of the PXE and submit a given number of transactions to it.
|
|
27
27
|
export const createPXEServiceAndSubmitTransactions = async (logger, node, numTxs, fundedAccount)=>{
|
|
28
28
|
const rpcConfig = getRpcConfig();
|
|
29
|
+
rpcConfig.proverEnabled = false;
|
|
29
30
|
const pxeService = await createPXEService(node, rpcConfig, true);
|
|
30
31
|
const account = await getSchnorrAccount(pxeService, fundedAccount.secret, fundedAccount.signingKey, fundedAccount.salt);
|
|
31
32
|
await account.register();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type L1ContractAddresses, type ViemPublicClient, type ViemWalletClient } from '@aztec/ethereum';
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
3
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
4
|
export declare function sendL1ToL2Message(message: {
|
|
@@ -8,6 +8,6 @@ export declare function sendL1ToL2Message(message: {
|
|
|
8
8
|
}, ctx: {
|
|
9
9
|
walletClient: ViemWalletClient;
|
|
10
10
|
publicClient: ViemPublicClient;
|
|
11
|
-
l1ContractAddresses: Pick<L1ContractAddresses, 'inboxAddress'>;
|
|
11
|
+
l1ContractAddresses: Pick<L1ContractAddresses, 'inboxAddress' | 'rollupAddress'>;
|
|
12
12
|
}): Promise<Fr[]>;
|
|
13
13
|
//# sourceMappingURL=l1_to_l2_messaging.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"l1_to_l2_messaging.d.ts","sourceRoot":"","sources":["../../src/fixtures/l1_to_l2_messaging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"l1_to_l2_messaging.d.ts","sourceRoot":"","sources":["../../src/fixtures/l1_to_l2_messaging.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EAExB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAKhE,wBAAsB,iBAAiB,CACrC,OAAO,EAAE;IAAE,SAAS,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;IAAC,UAAU,EAAE,EAAE,CAAA;CAAE,EACjE,GAAG,EAAE;IACH,YAAY,EAAE,gBAAgB,CAAC;IAC/B,YAAY,EAAE,gBAAgB,CAAC;IAC/B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE,cAAc,GAAG,eAAe,CAAC,CAAC;CAClF,iBAuCF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { RollupContract } from '@aztec/ethereum';
|
|
1
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
3
|
import { InboxAbi } from '@aztec/l1-artifacts';
|
|
3
4
|
import { expect } from '@jest/globals';
|
|
@@ -9,7 +10,7 @@ export async function sendL1ToL2Message(message, ctx) {
|
|
|
9
10
|
client: ctx.walletClient
|
|
10
11
|
});
|
|
11
12
|
const { recipient, content, secretHash } = message;
|
|
12
|
-
const version =
|
|
13
|
+
const version = await new RollupContract(ctx.publicClient, ctx.l1ContractAddresses.rollupAddress.toString()).getVersion();
|
|
13
14
|
// We inject the message to Inbox
|
|
14
15
|
const txHash = await inbox.write.sendL2Message([
|
|
15
16
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup_l1_contracts.d.ts","sourceRoot":"","sources":["../../src/fixtures/setup_l1_contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,iBAAiB,EAAqB,MAAM,iBAAiB,CAAC;AAIxG,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAGzD,OAAO,EAAE,0CAA0C,EAAE,MAAM,uCAAuC,CAAC;AAEnG,eAAO,MAAM,gBAAgB,aACjB,MAAM,WACP,SAAS,GAAG,iBAAiB,UAC9B,MAAM,QACR,KAAK,qBAAqB,EAAE,oBAAoB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC,GAChG,iBAAiB,
|
|
1
|
+
{"version":3,"file":"setup_l1_contracts.d.ts","sourceRoot":"","sources":["../../src/fixtures/setup_l1_contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,iBAAiB,EAAqB,MAAM,iBAAiB,CAAC;AAIxG,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAGzD,OAAO,EAAE,0CAA0C,EAAE,MAAM,uCAAuC,CAAC;AAEnG,eAAO,MAAM,gBAAgB,aACjB,MAAM,WACP,SAAS,GAAG,iBAAiB,UAC9B,MAAM,QACR,KAAK,qBAAqB,EAAE,oBAAoB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC,GAChG,iBAAiB,mEAUpB,CAAC"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { deployL1Contracts } from '@aztec/ethereum';
|
|
2
2
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
3
|
-
import {
|
|
3
|
+
import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
|
|
4
4
|
import { foundry } from 'viem/chains';
|
|
5
5
|
export { deployAndInitializeTokenAndBridgeContracts } from '../shared/cross_chain_test_harness.js';
|
|
6
6
|
export const setupL1Contracts = async (l1RpcUrl, account, logger, args)=>{
|
|
7
7
|
const l1Data = await deployL1Contracts([
|
|
8
8
|
l1RpcUrl
|
|
9
9
|
], account, foundry, logger, {
|
|
10
|
-
l2FeeJuiceAddress: ProtocolContractAddress.FeeJuice.toField(),
|
|
11
10
|
vkTreeRoot: getVKTreeRoot(),
|
|
12
11
|
protocolContractTreeRoot,
|
|
13
12
|
salt: undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot_manager.d.ts","sourceRoot":"","sources":["../../src/fixtures/snapshot_manager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"snapshot_manager.d.ts","sourceRoot":"","sources":["../../src/fixtures/snapshot_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -219,6 +219,9 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
219
219
|
aztecNodeConfig.peerCheckIntervalMS = TEST_PEER_CHECK_INTERVAL_MS;
|
|
220
220
|
// Only enable proving if specifically requested.
|
|
221
221
|
aztecNodeConfig.realProofs = !!opts.realProofs;
|
|
222
|
+
// Only enforce the time table if requested
|
|
223
|
+
aztecNodeConfig.enforceTimeTable = !!opts.enforceTimeTable;
|
|
224
|
+
aztecNodeConfig.listenAddress = '127.0.0.1';
|
|
222
225
|
// Create a temp directory for all ephemeral state and cleanup afterwards
|
|
223
226
|
const directoryToCleanup = path.join(tmpdir(), randomBytes(8).toString('hex'));
|
|
224
227
|
await fs.mkdir(directoryToCleanup, {
|
|
@@ -229,7 +232,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
229
232
|
} else {
|
|
230
233
|
aztecNodeConfig.dataDirectory = statePath;
|
|
231
234
|
}
|
|
232
|
-
aztecNodeConfig.blobSinkUrl = `http://
|
|
235
|
+
aztecNodeConfig.blobSinkUrl = `http://127.0.0.1:${blobSinkPort}`;
|
|
233
236
|
// Start anvil. We go via a wrapper script to ensure if the parent dies, anvil dies.
|
|
234
237
|
logger.verbose('Starting anvil...');
|
|
235
238
|
const res = await startAnvil({
|
|
@@ -256,11 +259,12 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
256
259
|
}
|
|
257
260
|
const initialFundedAccounts = await generateSchnorrAccounts(numberOfInitialFundedAccounts);
|
|
258
261
|
const sponsoredFPCAddress = await getSponsoredFPCAddress();
|
|
259
|
-
const { genesisArchiveRoot, genesisBlockHash, prefilledPublicData } = await getGenesisValues(initialFundedAccounts.map((a)=>a.address).concat(sponsoredFPCAddress), opts.initialAccountFeeJuice);
|
|
262
|
+
const { genesisArchiveRoot, genesisBlockHash, prefilledPublicData, fundingNeeded } = await getGenesisValues(initialFundedAccounts.map((a)=>a.address).concat(sponsoredFPCAddress), opts.initialAccountFeeJuice);
|
|
260
263
|
const deployL1ContractsValues = await setupL1Contracts(aztecNodeConfig.l1RpcUrls[0], hdAccount, logger, {
|
|
261
264
|
...getL1ContractsConfigEnvVars(),
|
|
262
265
|
genesisArchiveRoot,
|
|
263
266
|
genesisBlockHash,
|
|
267
|
+
feeJuicePortalInitialBalance: fundingNeeded,
|
|
264
268
|
salt: opts.salt,
|
|
265
269
|
...deployL1ContractsArgs,
|
|
266
270
|
initialValidators: opts.initialValidators
|
|
@@ -368,6 +372,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
368
372
|
const aztecNodeConfig = JSON.parse(readFileSync(`${statePath}/aztec_node_config.json`, 'utf-8'), reviver);
|
|
369
373
|
aztecNodeConfig.dataDirectory = statePath;
|
|
370
374
|
aztecNodeConfig.blobSinkUrl = `http://127.0.0.1:${blobSinkPort}`;
|
|
375
|
+
aztecNodeConfig.listenAddress = '127.0.0.1';
|
|
371
376
|
const initialFundedAccounts = JSON.parse(readFileSync(`${statePath}/accounts.json`, 'utf-8'), reviver) || [];
|
|
372
377
|
const { prefilledPublicData } = await getGenesisValues(initialFundedAccounts.map((a)=>a.address));
|
|
373
378
|
// Start anvil. We go via a wrapper script to ensure if the parent dies, anvil dies.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type AztecAddress, type Logger, type Wallet } from '@aztec/aztec.js';
|
|
2
2
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
3
3
|
export declare function deployToken(adminWallet: Wallet, initialAdminBalance: bigint, logger: Logger): Promise<TokenContract>;
|
|
4
4
|
export declare function mintTokensToPrivate(token: TokenContract, minterWallet: Wallet, recipient: AztecAddress, amount: bigint): Promise<void>;
|
|
5
5
|
export declare function expectTokenBalance(wallet: Wallet, token: TokenContract, owner: AztecAddress, expectedBalance: bigint, logger: Logger): Promise<void>;
|
|
6
|
+
export declare function mintNotes(sender: Wallet, recipient: AztecAddress, asset: TokenContract, noteAmounts: bigint[]): Promise<bigint>;
|
|
6
7
|
//# sourceMappingURL=token_utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token_utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/token_utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"token_utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/token_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAa,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAI/D,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,0BAcjG;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,aAAa,EACpB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,YAAY,EACvB,MAAM,EAAE,MAAM,iBAKf;AAGD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,iBAOf;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,MAAM,CAAC,CAYjB"}
|