@aztec/end-to-end 0.85.0 → 0.86.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +6 -7
- package/dest/bench/client_flows/data_extractor.js +12 -7
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +2 -2
- 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 +11 -11
- package/dest/e2e_epochs/epochs_test.d.ts +2 -2
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +1 -1
- package/dest/e2e_fees/fees_test.d.ts +4 -0
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +22 -10
- package/dest/e2e_p2p/p2p_network.d.ts +67 -72
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +20 -61
- package/dest/e2e_prover/e2e_prover_test.d.ts.map +1 -1
- package/dest/e2e_prover/e2e_prover_test.js +9 -9
- package/dest/fixtures/l1_to_l2_messaging.d.ts +2 -3
- package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
- package/dest/fixtures/l1_to_l2_messaging.js +3 -3
- package/dest/fixtures/setup_l1_contracts.d.ts +1 -1
- package/dest/fixtures/setup_l1_contracts.d.ts.map +1 -1
- package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
- package/dest/fixtures/snapshot_manager.js +9 -11
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +24 -23
- package/dest/shared/capture_private_execution_steps.d.ts.map +1 -1
- package/dest/shared/capture_private_execution_steps.js +3 -17
- package/dest/shared/cross_chain_test_harness.d.ts +7 -11
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +14 -16
- package/dest/shared/gas_portal_test_harness.d.ts +6 -11
- package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
- package/dest/shared/gas_portal_test_harness.js +8 -10
- package/dest/shared/uniswap_l1_l2.d.ts +3 -5
- package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.js +18 -19
- package/dest/spartan/setup_test_wallets.js +3 -3
- package/package.json +34 -35
- package/src/bench/client_flows/client_flows_benchmark.ts +6 -8
- package/src/bench/client_flows/data_extractor.ts +10 -6
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +14 -18
- package/src/e2e_epochs/epochs_test.ts +4 -3
- package/src/e2e_fees/fees_test.ts +32 -10
- package/src/e2e_p2p/p2p_network.ts +28 -74
- package/src/e2e_prover/e2e_prover_test.ts +9 -14
- package/src/fixtures/l1_to_l2_messaging.ts +5 -14
- package/src/fixtures/setup_l1_contracts.ts +1 -2
- package/src/fixtures/snapshot_manager.ts +9 -11
- package/src/fixtures/utils.ts +24 -25
- package/src/shared/capture_private_execution_steps.ts +3 -19
- package/src/shared/cross_chain_test_harness.ts +14 -31
- package/src/shared/gas_portal_test_harness.ts +9 -14
- package/src/shared/uniswap_l1_l2.ts +25 -43
- package/src/spartan/setup_test_wallets.ts +3 -3
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { getSchnorrWalletWithSecretKey } from '@aztec/accounts/schnorr';
|
|
2
|
-
import { RollupContract, getExpectedAddress, getL1ContractsConfigEnvVars } from '@aztec/ethereum';
|
|
3
|
-
import { L1TxUtilsWithBlobs } from '@aztec/ethereum/l1-tx-utils-with-blobs';
|
|
2
|
+
import { L1TxUtils, RollupContract, getExpectedAddress, getL1ContractsConfigEnvVars } from '@aztec/ethereum';
|
|
4
3
|
import { ChainMonitor, EthCheatCodesWithState } from '@aztec/ethereum/test';
|
|
5
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
6
5
|
import { ForwarderAbi, ForwarderBytecode, RollupAbi, TestERC20Abi } from '@aztec/l1-artifacts';
|
|
@@ -44,8 +43,6 @@ export class P2PNetworkTest {
|
|
|
44
43
|
wallet;
|
|
45
44
|
spamContract;
|
|
46
45
|
bootstrapNode;
|
|
47
|
-
cleanupInterval;
|
|
48
|
-
gasUtils;
|
|
49
46
|
constructor(testName, bootstrapNodeEnr, bootNodePort, numberOfNodes, initialValidatorConfig, // If set enable metrics collection
|
|
50
47
|
metricsPort){
|
|
51
48
|
this.bootstrapNodeEnr = bootstrapNodeEnr;
|
|
@@ -59,8 +56,6 @@ export class P2PNetworkTest {
|
|
|
59
56
|
this.validators = [];
|
|
60
57
|
this.deployedAccounts = [];
|
|
61
58
|
this.prefilledPublicData = [];
|
|
62
|
-
this.cleanupInterval = undefined;
|
|
63
|
-
this.gasUtils = undefined;
|
|
64
59
|
this.logger = createLogger(`e2e:e2e_p2p:${testName}`);
|
|
65
60
|
// Set up the base account and node private keys for the initial network deployment
|
|
66
61
|
this.baseAccountPrivateKey = `0x${getPrivateKeyFromIndex(0).toString('hex')}`;
|
|
@@ -99,30 +94,6 @@ export class P2PNetworkTest {
|
|
|
99
94
|
}
|
|
100
95
|
return this.deployedAccounts[0];
|
|
101
96
|
}
|
|
102
|
-
/**
|
|
103
|
-
* Start a loop to sync the mock system time with the L1 block time
|
|
104
|
-
*/ startSyncMockSystemTimeInterval() {
|
|
105
|
-
this.cleanupInterval = setInterval(()=>{
|
|
106
|
-
void this.syncMockSystemTime().catch((err)=>this.logger.error('Error syncing mock system time', err));
|
|
107
|
-
}, l1ContractsConfig.aztecSlotDuration * 1000);
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* When using fake timers, we need to keep the system and anvil clocks in sync.
|
|
111
|
-
*/ async syncMockSystemTime() {
|
|
112
|
-
this.logger.info('Syncing mock system time');
|
|
113
|
-
const { dateProvider, deployL1ContractsValues } = this.ctx;
|
|
114
|
-
// Send a tx and only update the time after the tx is mined, as eth time is not continuous
|
|
115
|
-
const { receipt } = await this.gasUtils.sendAndMonitorTransaction({
|
|
116
|
-
to: this.baseAccount.address,
|
|
117
|
-
data: '0x',
|
|
118
|
-
value: 1n
|
|
119
|
-
});
|
|
120
|
-
const timestamp = await deployL1ContractsValues.publicClient.getBlock({
|
|
121
|
-
blockNumber: receipt.blockNumber
|
|
122
|
-
});
|
|
123
|
-
this.logger.info(`Timestamp: ${timestamp.timestamp}`);
|
|
124
|
-
dateProvider.setTime(Number(timestamp.timestamp) * 1000);
|
|
125
|
-
}
|
|
126
97
|
async addBootstrapNode() {
|
|
127
98
|
await this.snapshotManager.snapshot('add-bootstrap-node', async ({ aztecNodeConfig })=>{
|
|
128
99
|
const telemetry = getEndToEndTestTelemetryClient(this.metricsPort);
|
|
@@ -160,30 +131,30 @@ export class P2PNetworkTest {
|
|
|
160
131
|
const rollup = getContract({
|
|
161
132
|
address: deployL1ContractsValues.l1ContractAddresses.rollupAddress.toString(),
|
|
162
133
|
abi: RollupAbi,
|
|
163
|
-
client: deployL1ContractsValues.
|
|
134
|
+
client: deployL1ContractsValues.l1Client
|
|
164
135
|
});
|
|
165
136
|
this.logger.verbose(`Adding ${this.numberOfNodes} validators`);
|
|
166
137
|
const stakingAsset = getContract({
|
|
167
138
|
address: deployL1ContractsValues.l1ContractAddresses.stakingAssetAddress.toString(),
|
|
168
139
|
abi: TestERC20Abi,
|
|
169
|
-
client: deployL1ContractsValues.
|
|
140
|
+
client: deployL1ContractsValues.l1Client
|
|
170
141
|
});
|
|
171
142
|
const stakeNeeded = l1ContractsConfig.minimumStake * BigInt(this.numberOfNodes);
|
|
172
143
|
await Promise.all([
|
|
173
144
|
await stakingAsset.write.mint([
|
|
174
|
-
deployL1ContractsValues.
|
|
145
|
+
deployL1ContractsValues.l1Client.account.address,
|
|
175
146
|
stakeNeeded
|
|
176
147
|
], {}),
|
|
177
148
|
await stakingAsset.write.approve([
|
|
178
149
|
deployL1ContractsValues.l1ContractAddresses.rollupAddress.toString(),
|
|
179
150
|
stakeNeeded
|
|
180
151
|
], {})
|
|
181
|
-
].map((txHash)=>deployL1ContractsValues.
|
|
152
|
+
].map((txHash)=>deployL1ContractsValues.l1Client.waitForTransactionReceipt({
|
|
182
153
|
hash: txHash
|
|
183
154
|
})));
|
|
184
155
|
const { validators } = this.getValidators();
|
|
185
156
|
this.validators = validators;
|
|
186
|
-
await deployL1ContractsValues.
|
|
157
|
+
await deployL1ContractsValues.l1Client.waitForTransactionReceipt({
|
|
187
158
|
hash: await rollup.write.cheat__InitialiseValidatorSet([
|
|
188
159
|
this.validators
|
|
189
160
|
])
|
|
@@ -199,13 +170,7 @@ export class P2PNetworkTest {
|
|
|
199
170
|
this.logger.debug('Warp failed, time already satisfied');
|
|
200
171
|
}
|
|
201
172
|
// Send and await a tx to make sure we mine a block for the warp to correctly progress.
|
|
202
|
-
await deployL1ContractsValues.
|
|
203
|
-
hash: await deployL1ContractsValues.walletClient.sendTransaction({
|
|
204
|
-
to: this.baseAccount.address,
|
|
205
|
-
value: 1n,
|
|
206
|
-
account: this.baseAccount
|
|
207
|
-
})
|
|
208
|
-
});
|
|
173
|
+
await this._sendDummyTx(deployL1ContractsValues.l1Client);
|
|
209
174
|
// Set the system time in the node, only after we have warped the time and waited for a block
|
|
210
175
|
// Time is only set in the NEXT block
|
|
211
176
|
dateProvider.setTime(Number(timestamp) * 1000);
|
|
@@ -237,20 +202,24 @@ export class P2PNetworkTest {
|
|
|
237
202
|
async removeInitialNode() {
|
|
238
203
|
await this.snapshotManager.snapshot('remove-inital-validator', async ({ deployL1ContractsValues, aztecNode, dateProvider })=>{
|
|
239
204
|
// Send and await a tx to make sure we mine a block for the warp to correctly progress.
|
|
240
|
-
const receipt = await deployL1ContractsValues.
|
|
241
|
-
|
|
242
|
-
to: this.baseAccount.address,
|
|
243
|
-
value: 1n,
|
|
244
|
-
account: this.baseAccount
|
|
245
|
-
})
|
|
246
|
-
});
|
|
247
|
-
const block = await deployL1ContractsValues.publicClient.getBlock({
|
|
205
|
+
const { receipt } = await this._sendDummyTx(deployL1ContractsValues.l1Client);
|
|
206
|
+
const block = await deployL1ContractsValues.l1Client.getBlock({
|
|
248
207
|
blockNumber: receipt.blockNumber
|
|
249
208
|
});
|
|
250
209
|
dateProvider.setTime(Number(block.timestamp) * 1000);
|
|
251
210
|
await aztecNode.stop();
|
|
252
211
|
});
|
|
253
212
|
}
|
|
213
|
+
async sendDummyTx() {
|
|
214
|
+
return await this._sendDummyTx(this.ctx.deployL1ContractsValues.l1Client);
|
|
215
|
+
}
|
|
216
|
+
async _sendDummyTx(l1Client) {
|
|
217
|
+
const l1TxUtils = new L1TxUtils(l1Client);
|
|
218
|
+
return await l1TxUtils.sendAndMonitorTransaction({
|
|
219
|
+
to: l1Client.account.address,
|
|
220
|
+
value: 1n
|
|
221
|
+
});
|
|
222
|
+
}
|
|
254
223
|
async setup() {
|
|
255
224
|
this.ctx = await this.snapshotManager.setup();
|
|
256
225
|
const sponsoredFPCAddress = await getSponsoredFPCAddress();
|
|
@@ -260,15 +229,8 @@ export class P2PNetworkTest {
|
|
|
260
229
|
];
|
|
261
230
|
const { prefilledPublicData } = await getGenesisValues(initialFundedAccounts);
|
|
262
231
|
this.prefilledPublicData = prefilledPublicData;
|
|
263
|
-
this.startSyncMockSystemTimeInterval();
|
|
264
|
-
this.gasUtils = new L1TxUtilsWithBlobs(this.ctx.deployL1ContractsValues.publicClient, this.ctx.deployL1ContractsValues.walletClient, this.logger, {
|
|
265
|
-
gasLimitBufferPercentage: 20,
|
|
266
|
-
maxGwei: 500n,
|
|
267
|
-
maxAttempts: 3,
|
|
268
|
-
checkIntervalMs: 100,
|
|
269
|
-
stallTimeMs: 1000
|
|
270
|
-
});
|
|
271
232
|
this.monitor = new ChainMonitor(RollupContract.getFromL1ContractsValues(this.ctx.deployL1ContractsValues)).start();
|
|
233
|
+
this.monitor.on('l1-block', ({ timestamp })=>this.ctx.dateProvider.setTime(Number(timestamp) * 1000));
|
|
272
234
|
}
|
|
273
235
|
async stopNodes(nodes) {
|
|
274
236
|
this.logger.info('Stopping nodes');
|
|
@@ -283,8 +245,5 @@ export class P2PNetworkTest {
|
|
|
283
245
|
this.monitor.stop();
|
|
284
246
|
await this.bootstrapNode?.stop();
|
|
285
247
|
await this.snapshotManager.teardown();
|
|
286
|
-
if (this.cleanupInterval) {
|
|
287
|
-
clearInterval(this.cleanupInterval);
|
|
288
|
-
}
|
|
289
248
|
}
|
|
290
249
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e2e_prover_test.d.ts","sourceRoot":"","sources":["../../src/e2e_prover/e2e_prover_test.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,UAAU,EACV,KAAK,MAAM,EAGZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAqB,KAAK,6BAA6B,EAAuB,MAAM,kBAAkB,CAAC;AAE9G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,KAAK,2BAA2B,EAAoB,MAAM,iBAAiB,CAAC;AAGrF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAQtE,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AASlE;;;;;GAKG;AAEH,qBAAa,cAAc;IA6BvB,OAAO,CAAC,sBAAsB;IAE9B,OAAO,CAAC,UAAU;IA9BpB,MAAM,CAAC,UAAU,SAAU;IAC3B,MAAM,CAAC,YAAY,SAAS;IAC5B,MAAM,CAAC,cAAc,SAAO;IAC5B,OAAO,CAAC,eAAe,CAAmB;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,kBAAkB,EAAE,CAAM;IAC5C,OAAO,EAAE,0BAA0B,EAAE,CAAM;IAC3C,QAAQ,EAAE,eAAe,EAAE,CAAM;IACjC,eAAe,EAAG,aAAa,CAAC;IAChC,QAAQ,EAAG,cAAc,CAAC;IAC1B,SAAS,EAAG,SAAS,CAAC;IACtB,cAAc,EAAG,cAAc,CAAC;IAChC,GAAG,EAAG,UAAU,CAAC;IACjB,UAAU,EAAG,UAAU,CAAC;IACxB,QAAQ,EAAG,cAAc,CAAC;IAC1B,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,eAAe,CAAC,CAAsB;IAC9C,OAAO,CAAC,iBAAiB,CAAC,CAAsB;IAChD,oBAAoB,CAAC,EAAE,6BAA6B,CAAC;IACrD,YAAY,EAAE,aAAa,EAAE,CAAM;IACnC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,mBAAmB,CAAc;IAClC,WAAW,EAAG,2BAA2B,CAAC;IAC1C,aAAa,EAAG,UAAU,CAAC;gBAGhC,QAAQ,EAAE,MAAM,EACR,sBAAsB,EAAE,MAAM,EACtC,QAAQ,EAAE,UAAU,EACZ,UAAU,UAAO;IAW3B;;;;OAIG;IACG,kBAAkB;IAqDlB,KAAK;YA8JG,WAAW;IAQzB,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;IAeR,iBAAiB;IA+CjB,cAAc;
|
|
1
|
+
{"version":3,"file":"e2e_prover_test.d.ts","sourceRoot":"","sources":["../../src/e2e_prover/e2e_prover_test.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,UAAU,EACV,KAAK,MAAM,EAGZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAqB,KAAK,6BAA6B,EAAuB,MAAM,kBAAkB,CAAC;AAE9G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,KAAK,2BAA2B,EAAoB,MAAM,iBAAiB,CAAC;AAGrF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAQtE,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AASlE;;;;;GAKG;AAEH,qBAAa,cAAc;IA6BvB,OAAO,CAAC,sBAAsB;IAE9B,OAAO,CAAC,UAAU;IA9BpB,MAAM,CAAC,UAAU,SAAU;IAC3B,MAAM,CAAC,YAAY,SAAS;IAC5B,MAAM,CAAC,cAAc,SAAO;IAC5B,OAAO,CAAC,eAAe,CAAmB;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,kBAAkB,EAAE,CAAM;IAC5C,OAAO,EAAE,0BAA0B,EAAE,CAAM;IAC3C,QAAQ,EAAE,eAAe,EAAE,CAAM;IACjC,eAAe,EAAG,aAAa,CAAC;IAChC,QAAQ,EAAG,cAAc,CAAC;IAC1B,SAAS,EAAG,SAAS,CAAC;IACtB,cAAc,EAAG,cAAc,CAAC;IAChC,GAAG,EAAG,UAAU,CAAC;IACjB,UAAU,EAAG,UAAU,CAAC;IACxB,QAAQ,EAAG,cAAc,CAAC;IAC1B,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,eAAe,CAAC,CAAsB;IAC9C,OAAO,CAAC,iBAAiB,CAAC,CAAsB;IAChD,oBAAoB,CAAC,EAAE,6BAA6B,CAAC;IACrD,YAAY,EAAE,aAAa,EAAE,CAAM;IACnC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,mBAAmB,CAAc;IAClC,WAAW,EAAG,2BAA2B,CAAC;IAC1C,aAAa,EAAG,UAAU,CAAC;gBAGhC,QAAQ,EAAE,MAAM,EACR,sBAAsB,EAAE,MAAM,EACtC,QAAQ,EAAE,UAAU,EACZ,UAAU,UAAO;IAW3B;;;;OAIG;IACG,kBAAkB;IAqDlB,KAAK;YA8JG,WAAW;IAQzB,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;IAeR,iBAAiB;IA+CjB,cAAc;CAuBrB"}
|
|
@@ -186,7 +186,7 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
186
186
|
this.logger.verbose('Starting prover node');
|
|
187
187
|
const proverConfig = {
|
|
188
188
|
...this.context.aztecNodeConfig,
|
|
189
|
-
|
|
189
|
+
proverCoordinationNodeUrls: [],
|
|
190
190
|
dataDirectory: undefined,
|
|
191
191
|
proverId: this.proverAddress.toField(),
|
|
192
192
|
realProofs: this.realProofs,
|
|
@@ -195,9 +195,9 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
195
195
|
proverNodeMaxPendingJobs: 100,
|
|
196
196
|
proverNodeMaxParallelBlocksPerEpoch: 32,
|
|
197
197
|
proverNodePollingIntervalMs: 100,
|
|
198
|
-
txGatheringTimeoutMs: 60000,
|
|
199
198
|
txGatheringIntervalMs: 1000,
|
|
200
|
-
|
|
199
|
+
txGatheringBatchSize: 10,
|
|
200
|
+
txGatheringMaxParallelRequestsPerNode: 100
|
|
201
201
|
};
|
|
202
202
|
const sponsoredFPCAddress = await getSponsoredFPCAddress();
|
|
203
203
|
const { prefilledPublicData } = await getGenesisValues(this.context.initialFundedAccounts.map((a)=>a.address).concat(sponsoredFPCAddress));
|
|
@@ -208,13 +208,13 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
208
208
|
}, {
|
|
209
209
|
prefilledPublicData
|
|
210
210
|
});
|
|
211
|
-
this.proverNode.start();
|
|
211
|
+
await this.proverNode.start();
|
|
212
212
|
this.logger.warn(`Proofs are now enabled`);
|
|
213
213
|
return this;
|
|
214
214
|
}
|
|
215
215
|
async mintL1ERC20(recipient, amount) {
|
|
216
216
|
const erc20Address = this.context.deployL1ContractsValues.l1ContractAddresses.feeJuiceAddress;
|
|
217
|
-
const client = this.context.deployL1ContractsValues.
|
|
217
|
+
const client = this.context.deployL1ContractsValues.l1Client;
|
|
218
218
|
const erc20 = getContract({
|
|
219
219
|
abi: TestERC20Abi,
|
|
220
220
|
address: erc20Address.toString(),
|
|
@@ -224,7 +224,7 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
224
224
|
recipient,
|
|
225
225
|
amount
|
|
226
226
|
]);
|
|
227
|
-
await this.context.deployL1ContractsValues.
|
|
227
|
+
await this.context.deployL1ContractsValues.l1Client.waitForTransactionReceipt({
|
|
228
228
|
hash
|
|
229
229
|
});
|
|
230
230
|
}
|
|
@@ -276,13 +276,13 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
276
276
|
if (!this.circuitProofVerifier) {
|
|
277
277
|
throw new Error('No verifier');
|
|
278
278
|
}
|
|
279
|
-
const {
|
|
279
|
+
const { l1Client, l1ContractAddresses } = this.context.deployL1ContractsValues;
|
|
280
280
|
const rollup = getContract({
|
|
281
281
|
abi: RollupAbi,
|
|
282
282
|
address: l1ContractAddresses.rollupAddress.toString(),
|
|
283
|
-
client:
|
|
283
|
+
client: l1Client
|
|
284
284
|
});
|
|
285
|
-
const { address: verifierAddress } = await deployL1Contract(
|
|
285
|
+
const { address: verifierAddress } = await deployL1Contract(l1Client, HonkVerifierAbi, HonkVerifierBytecode);
|
|
286
286
|
this.logger.info(`Deployed honk verifier at ${verifierAddress}`);
|
|
287
287
|
await rollup.write.setEpochVerifier([
|
|
288
288
|
verifierAddress.toString()
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type ExtendedViemWalletClient, type L1ContractAddresses } 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: {
|
|
@@ -6,8 +6,7 @@ export declare function sendL1ToL2Message(message: {
|
|
|
6
6
|
content: Fr;
|
|
7
7
|
secretHash: Fr;
|
|
8
8
|
}, ctx: {
|
|
9
|
-
|
|
10
|
-
publicClient: ViemPublicClient;
|
|
9
|
+
l1Client: ExtendedViemWalletClient;
|
|
11
10
|
l1ContractAddresses: Pick<L1ContractAddresses, 'inboxAddress' | 'rollupAddress'>;
|
|
12
11
|
}): Promise<Fr[]>;
|
|
13
12
|
//# 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,
|
|
1
|
+
{"version":3,"file":"l1_to_l2_messaging.d.ts","sourceRoot":"","sources":["../../src/fixtures/l1_to_l2_messaging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,mBAAmB,EAAkB,MAAM,iBAAiB,CAAC;AAC1G,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,QAAQ,EAAE,wBAAwB,CAAC;IACnC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE,cAAc,GAAG,eAAe,CAAC,CAAC;CAClF,iBAoCF"}
|
|
@@ -7,10 +7,10 @@ export async function sendL1ToL2Message(message, ctx) {
|
|
|
7
7
|
const inbox = getContract({
|
|
8
8
|
address: ctx.l1ContractAddresses.inboxAddress.toString(),
|
|
9
9
|
abi: InboxAbi,
|
|
10
|
-
client: ctx.
|
|
10
|
+
client: ctx.l1Client
|
|
11
11
|
});
|
|
12
12
|
const { recipient, content, secretHash } = message;
|
|
13
|
-
const version = await new RollupContract(ctx.
|
|
13
|
+
const version = await new RollupContract(ctx.l1Client, ctx.l1ContractAddresses.rollupAddress.toString()).getVersion();
|
|
14
14
|
// We inject the message to Inbox
|
|
15
15
|
const txHash = await inbox.write.sendL2Message([
|
|
16
16
|
{
|
|
@@ -21,7 +21,7 @@ export async function sendL1ToL2Message(message, ctx) {
|
|
|
21
21
|
secretHash.toString()
|
|
22
22
|
]);
|
|
23
23
|
// We check that the message was correctly injected by checking the emitted event
|
|
24
|
-
const txReceipt = await ctx.
|
|
24
|
+
const txReceipt = await ctx.l1Client.waitForTransactionReceipt({
|
|
25
25
|
hash: txHash
|
|
26
26
|
});
|
|
27
27
|
// Exactly 1 event should be emitted in the transaction
|
|
@@ -2,5 +2,5 @@ import type { Logger } from '@aztec/aztec.js';
|
|
|
2
2
|
import { type DeployL1ContractsArgs, type L1ContractsConfig } from '@aztec/ethereum';
|
|
3
3
|
import type { HDAccount, PrivateKeyAccount } from 'viem';
|
|
4
4
|
export { deployAndInitializeTokenAndBridgeContracts } from '../shared/cross_chain_test_harness.js';
|
|
5
|
-
export declare const setupL1Contracts: (l1RpcUrl: string, account: HDAccount | PrivateKeyAccount, logger: Logger, args: Pick<DeployL1ContractsArgs, 'genesisArchiveRoot' | '
|
|
5
|
+
export declare const setupL1Contracts: (l1RpcUrl: string, account: HDAccount | PrivateKeyAccount, logger: Logger, args: Pick<DeployL1ContractsArgs, 'genesisArchiveRoot' | 'initialValidators'> & L1ContractsConfig) => Promise<import("@aztec/ethereum").DeployL1ContractsReturnType>;
|
|
6
6
|
//# sourceMappingURL=setup_l1_contracts.d.ts.map
|
|
@@ -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,
|
|
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,mBAAmB,CAAC,GAAG,iBAAiB,mEAUlG,CAAC"}
|
|
@@ -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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"}
|
|
@@ -5,7 +5,7 @@ import { BatchCall, DefaultWaitForProvenOpts, getContractClassFromArtifact, wait
|
|
|
5
5
|
import { deployInstance, registerContractClass } from '@aztec/aztec.js/deployment';
|
|
6
6
|
import { AnvilTestWatcher, CheatCodes } from '@aztec/aztec.js/testing';
|
|
7
7
|
import { createBlobSinkServer } from '@aztec/blob-sink/server';
|
|
8
|
-
import {
|
|
8
|
+
import { createExtendedL1Client, getL1ContractsConfigEnvVars, l1Artifacts } from '@aztec/ethereum';
|
|
9
9
|
import { EthCheatCodesWithState, startAnvil } from '@aztec/ethereum/test';
|
|
10
10
|
import { asyncMap } from '@aztec/foundation/async-map';
|
|
11
11
|
import { randomBytes } from '@aztec/foundation/crypto';
|
|
@@ -259,11 +259,10 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
259
259
|
}
|
|
260
260
|
const initialFundedAccounts = await generateSchnorrAccounts(numberOfInitialFundedAccounts);
|
|
261
261
|
const sponsoredFPCAddress = await getSponsoredFPCAddress();
|
|
262
|
-
const { genesisArchiveRoot,
|
|
262
|
+
const { genesisArchiveRoot, prefilledPublicData, fundingNeeded } = await getGenesisValues(initialFundedAccounts.map((a)=>a.address).concat(sponsoredFPCAddress), opts.initialAccountFeeJuice);
|
|
263
263
|
const deployL1ContractsValues = await setupL1Contracts(aztecNodeConfig.l1RpcUrls[0], hdAccount, logger, {
|
|
264
264
|
...getL1ContractsConfigEnvVars(),
|
|
265
265
|
genesisArchiveRoot,
|
|
266
|
-
genesisBlockHash,
|
|
267
266
|
feeJuicePortalInitialBalance: fundingNeeded,
|
|
268
267
|
salt: opts.salt,
|
|
269
268
|
...deployL1ContractsArgs,
|
|
@@ -276,25 +275,25 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
276
275
|
const rewardDistributor = getContract({
|
|
277
276
|
address: deployL1ContractsValues.l1ContractAddresses.rewardDistributorAddress.toString(),
|
|
278
277
|
abi: l1Artifacts.rewardDistributor.contractAbi,
|
|
279
|
-
client: deployL1ContractsValues.
|
|
278
|
+
client: deployL1ContractsValues.l1Client
|
|
280
279
|
});
|
|
281
280
|
const blockReward = await rewardDistributor.read.BLOCK_REWARD();
|
|
282
281
|
const mintAmount = 10_000n * blockReward;
|
|
283
282
|
const feeJuice = getContract({
|
|
284
283
|
address: deployL1ContractsValues.l1ContractAddresses.feeJuiceAddress.toString(),
|
|
285
284
|
abi: l1Artifacts.feeAsset.contractAbi,
|
|
286
|
-
client: deployL1ContractsValues.
|
|
285
|
+
client: deployL1ContractsValues.l1Client
|
|
287
286
|
});
|
|
288
287
|
const rewardDistributorMintTxHash = await feeJuice.write.mint([
|
|
289
288
|
rewardDistributor.address,
|
|
290
289
|
mintAmount
|
|
291
290
|
], {});
|
|
292
|
-
await deployL1ContractsValues.
|
|
291
|
+
await deployL1ContractsValues.l1Client.waitForTransactionReceipt({
|
|
293
292
|
hash: rewardDistributorMintTxHash
|
|
294
293
|
});
|
|
295
294
|
logger.info(`Funding rewardDistributor in ${rewardDistributorMintTxHash}`);
|
|
296
295
|
}
|
|
297
|
-
const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls), deployL1ContractsValues.l1ContractAddresses.rollupAddress, deployL1ContractsValues.
|
|
296
|
+
const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls), deployL1ContractsValues.l1ContractAddresses.rollupAddress, deployL1ContractsValues.l1Client);
|
|
298
297
|
await watcher.start();
|
|
299
298
|
const acvmConfig = await getACVMConfig(logger);
|
|
300
299
|
if (acvmConfig) {
|
|
@@ -396,8 +395,8 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
396
395
|
aztecNodeConfig.bbWorkingDirectory = bbConfig.bbWorkingDirectory;
|
|
397
396
|
}
|
|
398
397
|
logger.verbose('Creating ETH clients...');
|
|
399
|
-
const
|
|
400
|
-
const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls), aztecNodeConfig.l1Contracts.rollupAddress,
|
|
398
|
+
const l1Client = createExtendedL1Client(aztecNodeConfig.l1RpcUrls, mnemonicToAccount(MNEMONIC));
|
|
399
|
+
const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls), aztecNodeConfig.l1Contracts.rollupAddress, l1Client);
|
|
401
400
|
await watcher.start();
|
|
402
401
|
const telemetry = initTelemetryClient(getTelemetryConfig());
|
|
403
402
|
const dateProvider = new TestDateProvider();
|
|
@@ -438,8 +437,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
438
437
|
bbConfig,
|
|
439
438
|
proverNode,
|
|
440
439
|
deployL1ContractsValues: {
|
|
441
|
-
|
|
442
|
-
publicClient,
|
|
440
|
+
l1Client,
|
|
443
441
|
l1ContractAddresses: aztecNodeConfig.l1Contracts
|
|
444
442
|
},
|
|
445
443
|
watcher,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/utils.ts"],"names":[],"mappings":";;AACA,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,KAAK,eAAe,EAAsC,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,YAAY,EACjB,KAAK,SAAS,EAEd,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,KAAK,GAAG,EAER,KAAK,MAAM,EAMZ,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEvE,OAAO,EAAE,KAAK,cAAc,EAAwB,MAAM,yBAAyB,CAAC;AAGpF,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,iBAAiB,EAOlB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAA0C,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE1F,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAG7E,OAAO,EAAE,KAAK,UAAU,EAA2C,MAAM,oBAAoB,CAAC;AAC9F,OAAO,EACL,KAAK,UAAU,EACf,KAAK,gBAAgB,EAGtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAK/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAG3B,MAAM,yBAAyB,CAAC;AASjC,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,EAAE,KAAK,GAAG,EAAE,KAAK,iBAAiB,EAAe,MAAM,MAAM,CAAC;AASjG,OAAO,EAAE,0CAA0C,EAAE,MAAM,uCAAuC,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,CAAC;AAmBtB,eAAO,MAAM,sBAAsB,UAAW,MAAM,KAAG,MAAM,GAAG,IAI/D,CAAC;AAEF,eAAO,MAAM,gBAAgB,cAChB,MAAM,EAAE,WACV,SAAS,GAAG,iBAAiB,UAC9B,MAAM,SACR,QAAQ,qBAAqB,CAAC,UAC7B,KAAK,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/utils.ts"],"names":[],"mappings":"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"}
|
package/dest/fixtures/utils.js
CHANGED
|
@@ -8,9 +8,9 @@ import { SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee/testing';
|
|
|
8
8
|
import { AnvilTestWatcher, CheatCodes } from '@aztec/aztec.js/testing';
|
|
9
9
|
import { createBlobSinkClient } from '@aztec/blob-sink/client';
|
|
10
10
|
import { createBlobSinkServer } from '@aztec/blob-sink/server';
|
|
11
|
-
import { GENESIS_ARCHIVE_ROOT,
|
|
11
|
+
import { GENESIS_ARCHIVE_ROOT, SPONSORED_FPC_SALT } from '@aztec/constants';
|
|
12
12
|
import { DefaultMultiCallEntrypoint } from '@aztec/entrypoints/multicall';
|
|
13
|
-
import { ForwarderContract, NULL_KEY,
|
|
13
|
+
import { ForwarderContract, NULL_KEY, createExtendedL1Client, deployL1Contracts, getL1ContractsConfigEnvVars, isAnvilTestChain, l1Artifacts } from '@aztec/ethereum';
|
|
14
14
|
import { DelayedTxUtils, EthCheatCodesWithState, startAnvil } from '@aztec/ethereum/test';
|
|
15
15
|
import { randomBytes } from '@aztec/foundation/crypto';
|
|
16
16
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
@@ -71,7 +71,6 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
|
|
|
71
71
|
vkTreeRoot: getVKTreeRoot(),
|
|
72
72
|
protocolContractTreeRoot,
|
|
73
73
|
genesisArchiveRoot: args.genesisArchiveRoot ?? new Fr(GENESIS_ARCHIVE_ROOT),
|
|
74
|
-
genesisBlockHash: args.genesisBlockHash ?? new Fr(GENESIS_BLOCK_HASH),
|
|
75
74
|
salt: args.salt,
|
|
76
75
|
initialValidators: args.initialValidators,
|
|
77
76
|
...getL1ContractsConfigEnvVars(),
|
|
@@ -143,11 +142,10 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
|
|
|
143
142
|
logger.verbose('JSON RPC client connected to PXE');
|
|
144
143
|
logger.verbose(`Retrieving contract addresses from ${PXE_URL}`);
|
|
145
144
|
const l1Contracts = (await pxeClient.getNodeInfo()).l1ContractAddresses;
|
|
146
|
-
const
|
|
145
|
+
const l1Client = createExtendedL1Client(config.l1RpcUrls, account, foundry);
|
|
147
146
|
const deployL1ContractsValues = {
|
|
148
147
|
l1ContractAddresses: l1Contracts,
|
|
149
|
-
|
|
150
|
-
publicClient
|
|
148
|
+
l1Client
|
|
151
149
|
};
|
|
152
150
|
const cheatCodes = await CheatCodes.create(config.l1RpcUrls, pxeClient);
|
|
153
151
|
const teardown = ()=>Promise.resolve();
|
|
@@ -255,11 +253,10 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
|
|
|
255
253
|
return await setupWithRemoteEnvironment(publisherHdAccount, config, logger, numberOfAccounts);
|
|
256
254
|
}
|
|
257
255
|
const initialFundedAccounts = opts.initialFundedAccounts ?? await generateSchnorrAccounts(opts.numberOfInitialFundedAccounts ?? numberOfAccounts);
|
|
258
|
-
const {
|
|
256
|
+
const { genesisArchiveRoot, prefilledPublicData, fundingNeeded } = await getGenesisValues(initialFundedAccounts.map((a)=>a.address), opts.initialAccountFeeJuice, opts.genesisPublicData);
|
|
259
257
|
const deployL1ContractsValues = opts.deployL1ContractsValues ?? await setupL1Contracts(config.l1RpcUrls, publisherHdAccount, logger, {
|
|
260
258
|
...opts,
|
|
261
259
|
genesisArchiveRoot,
|
|
262
|
-
genesisBlockHash,
|
|
263
260
|
feeJuicePortalInitialBalance: fundingNeeded
|
|
264
261
|
}, chain);
|
|
265
262
|
config.l1Contracts = deployL1ContractsValues.l1ContractAddresses;
|
|
@@ -268,20 +265,20 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
|
|
|
268
265
|
const rewardDistributor = getContract({
|
|
269
266
|
address: deployL1ContractsValues.l1ContractAddresses.rewardDistributorAddress.toString(),
|
|
270
267
|
abi: l1Artifacts.rewardDistributor.contractAbi,
|
|
271
|
-
client: deployL1ContractsValues.
|
|
268
|
+
client: deployL1ContractsValues.l1Client
|
|
272
269
|
});
|
|
273
270
|
const blockReward = await rewardDistributor.read.BLOCK_REWARD();
|
|
274
271
|
const mintAmount = 10_000n * blockReward;
|
|
275
272
|
const feeJuice = getContract({
|
|
276
273
|
address: deployL1ContractsValues.l1ContractAddresses.feeJuiceAddress.toString(),
|
|
277
274
|
abi: l1Artifacts.feeAsset.contractAbi,
|
|
278
|
-
client: deployL1ContractsValues.
|
|
275
|
+
client: deployL1ContractsValues.l1Client
|
|
279
276
|
});
|
|
280
277
|
const rewardDistributorMintTxHash = await feeJuice.write.mint([
|
|
281
278
|
rewardDistributor.address,
|
|
282
279
|
mintAmount
|
|
283
280
|
], {});
|
|
284
|
-
await deployL1ContractsValues.
|
|
281
|
+
await deployL1ContractsValues.l1Client.waitForTransactionReceipt({
|
|
285
282
|
hash: rewardDistributorMintTxHash
|
|
286
283
|
});
|
|
287
284
|
logger.info(`Funding rewardDistributor in ${rewardDistributorMintTxHash}`);
|
|
@@ -292,7 +289,7 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
|
|
|
292
289
|
await ethCheatCodes.warp(opts.l2StartTime);
|
|
293
290
|
}
|
|
294
291
|
const dateProvider = new TestDateProvider();
|
|
295
|
-
const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(config.l1RpcUrls), deployL1ContractsValues.l1ContractAddresses.rollupAddress, deployL1ContractsValues.
|
|
292
|
+
const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(config.l1RpcUrls), deployL1ContractsValues.l1ContractAddresses.rollupAddress, deployL1ContractsValues.l1Client, dateProvider);
|
|
296
293
|
await watcher.start();
|
|
297
294
|
const telemetry = getTelemetryClient(opts.telemetryConfig);
|
|
298
295
|
// Blob sink service - blobs get posted here and served from here
|
|
@@ -319,7 +316,9 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
|
|
|
319
316
|
config.bbWorkingDirectory = bbConfig.bbWorkingDirectory;
|
|
320
317
|
}
|
|
321
318
|
config.l1PublishRetryIntervalMS = 100;
|
|
322
|
-
const blobSinkClient = createBlobSinkClient(config
|
|
319
|
+
const blobSinkClient = createBlobSinkClient(config, {
|
|
320
|
+
logger: createLogger('node:blob-sink:client')
|
|
321
|
+
});
|
|
323
322
|
const aztecNode = await AztecNodeService.createAndSync(config, {
|
|
324
323
|
dateProvider,
|
|
325
324
|
blobSinkClient,
|
|
@@ -521,7 +520,9 @@ export async function createAndSyncProverNode(proverNodePrivateKey, aztecNodeCon
|
|
|
521
520
|
getTxsByHash: aztecNode.getTxsByHash.bind(aztecNode),
|
|
522
521
|
stop: ()=>Promise.resolve()
|
|
523
522
|
};
|
|
524
|
-
const blobSinkClient = createBlobSinkClient(aztecNodeConfig
|
|
523
|
+
const blobSinkClient = createBlobSinkClient(aztecNodeConfig, {
|
|
524
|
+
logger: createLogger('prover-node:blob-sink:client')
|
|
525
|
+
});
|
|
525
526
|
// Creating temp store and archiver for simulated prover node
|
|
526
527
|
const archiverConfig = {
|
|
527
528
|
...aztecNodeConfig,
|
|
@@ -533,7 +534,7 @@ export async function createAndSyncProverNode(proverNodePrivateKey, aztecNodeCon
|
|
|
533
534
|
// Prover node config is for simulated proofs
|
|
534
535
|
const proverConfig = {
|
|
535
536
|
...aztecNodeConfig,
|
|
536
|
-
|
|
537
|
+
proverCoordinationNodeUrls: [],
|
|
537
538
|
dataDirectory: undefined,
|
|
538
539
|
realProofs: false,
|
|
539
540
|
proverAgentCount: 2,
|
|
@@ -541,9 +542,9 @@ export async function createAndSyncProverNode(proverNodePrivateKey, aztecNodeCon
|
|
|
541
542
|
proverNodeMaxPendingJobs: 10,
|
|
542
543
|
proverNodeMaxParallelBlocksPerEpoch: 32,
|
|
543
544
|
proverNodePollingIntervalMs: 200,
|
|
544
|
-
txGatheringTimeoutMs: 60000,
|
|
545
545
|
txGatheringIntervalMs: 1000,
|
|
546
|
-
|
|
546
|
+
txGatheringBatchSize: 10,
|
|
547
|
+
txGatheringMaxParallelRequestsPerNode: 10
|
|
547
548
|
};
|
|
548
549
|
const l1TxUtils = createDelayedL1TxUtils(aztecNodeConfig, proverNodePrivateKey, 'prover-node');
|
|
549
550
|
const proverNode = await createProverNode(proverConfig, {
|
|
@@ -554,20 +555,20 @@ export async function createAndSyncProverNode(proverNodePrivateKey, aztecNodeCon
|
|
|
554
555
|
prefilledPublicData
|
|
555
556
|
});
|
|
556
557
|
getLogger().info(`Created and synced prover node`, {
|
|
557
|
-
publisherAddress: l1TxUtils.
|
|
558
|
+
publisherAddress: l1TxUtils.client.account.address
|
|
558
559
|
});
|
|
559
|
-
proverNode.start();
|
|
560
|
+
await proverNode.start();
|
|
560
561
|
return proverNode;
|
|
561
562
|
}
|
|
562
563
|
function createDelayedL1TxUtils(aztecNodeConfig, privateKey, logName) {
|
|
563
|
-
const
|
|
564
|
+
const l1Client = createExtendedL1Client(aztecNodeConfig.l1RpcUrls, privateKey, foundry);
|
|
564
565
|
const log = createLogger(logName);
|
|
565
|
-
const l1TxUtils = new DelayedTxUtils(
|
|
566
|
+
const l1TxUtils = new DelayedTxUtils(l1Client, log, aztecNodeConfig);
|
|
566
567
|
l1TxUtils.enableDelayer(aztecNodeConfig.ethereumSlotDuration);
|
|
567
568
|
return l1TxUtils;
|
|
568
569
|
}
|
|
569
570
|
export async function createForwarderContract(aztecNodeConfig, privateKey, rollupAddress) {
|
|
570
|
-
const
|
|
571
|
-
const forwarderContract = await ForwarderContract.create(
|
|
571
|
+
const l1Client = createExtendedL1Client(aztecNodeConfig.l1RpcUrls, privateKey, foundry);
|
|
572
|
+
const forwarderContract = await ForwarderContract.create(l1Client.account.address, l1Client, createLogger('forwarder'), rollupAddress);
|
|
572
573
|
return forwarderContract;
|
|
573
574
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture_private_execution_steps.d.ts","sourceRoot":"","sources":["../../src/shared/capture_private_execution_steps.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EACV,2BAA2B,EAC3B,YAAY,EACZ,aAAa,EACb,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"capture_private_execution_steps.d.ts","sourceRoot":"","sources":["../../src/shared/capture_private_execution_steps.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EACV,2BAA2B,EAC3B,YAAY,EACZ,aAAa,EACb,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AASnC,wBAAsB,oCAAoC,CACxD,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,2BAA2B,GAAG,YAAY,EACvD,IAAI,CAAC,EAAE,IAAI,CAAC,oBAAoB,GAAG,aAAa,EAAE,aAAa,CAAC,EAChE,aAAa,CAAC,EAAE,MAAM,iBAsCvB"}
|
|
@@ -2,25 +2,10 @@
|
|
|
2
2
|
* This module exposes the ability to capture the private exection steps that go into our "Client IVC" prover.
|
|
3
3
|
* These are used for debugging and benchmarking barretenberg (the prover component).
|
|
4
4
|
*/ import { createLogger } from '@aztec/foundation/log';
|
|
5
|
-
import {
|
|
6
|
-
import { encode } from '@msgpack/msgpack';
|
|
5
|
+
import { serializePrivateExecutionSteps } from '@aztec/stdlib/kernel';
|
|
7
6
|
import { promises as fs } from 'fs';
|
|
8
7
|
import path from 'path';
|
|
9
8
|
const logger = createLogger('e2e:capture-private-execution-steps');
|
|
10
|
-
// TODO(#7371): This is duplicated.
|
|
11
|
-
// Longer term we won't use this hacked together msgpack format
|
|
12
|
-
// Leaving duplicated as this eventually bb will provide a serialization
|
|
13
|
-
// helper for passing to a generic msgpack RPC endpoint.
|
|
14
|
-
async function _createClientIvcProofFiles(directory, executionSteps) {
|
|
15
|
-
const acirPath = path.join(directory, 'acir.msgpack');
|
|
16
|
-
const witnessPath = path.join(directory, 'witnesses.msgpack');
|
|
17
|
-
await fs.writeFile(acirPath, encode(executionSteps.map((map)=>map.bytecode)));
|
|
18
|
-
await fs.writeFile(witnessPath, encode(executionSteps.map((map)=>serializeWitness(map.witness))));
|
|
19
|
-
return {
|
|
20
|
-
acirPath,
|
|
21
|
-
witnessPath
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
9
|
export async function capturePrivateExecutionStepsIfEnvSet(label, interaction, opts, expectedSteps) {
|
|
25
10
|
// Not included in env_var.ts as internal to e2e tests.
|
|
26
11
|
const ivcFolder = process.env.CAPTURE_IVC_FOLDER;
|
|
@@ -45,7 +30,8 @@ export async function capturePrivateExecutionStepsIfEnvSet(label, interaction, o
|
|
|
45
30
|
recursive: true
|
|
46
31
|
});
|
|
47
32
|
// Write the client IVC files read by the prover.
|
|
48
|
-
|
|
33
|
+
const ivcInputsPath = path.join(resultsDirectory, 'ivc-inputs.msgpack');
|
|
34
|
+
await fs.writeFile(ivcInputsPath, serializePrivateExecutionSteps(result.executionSteps));
|
|
49
35
|
if (profileMode === 'full') {
|
|
50
36
|
// If we have gate counts, write the steps in human-readable format.
|
|
51
37
|
await fs.writeFile(path.join(resultsDirectory, 'steps.json'), JSON.stringify(result.executionSteps.map((step)=>({
|