@aztec/end-to-end 3.0.0-nightly.20250923 → 3.0.0-nightly.20250924
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.js +2 -3
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +1 -2
- package/dest/e2e_fees/fees_test.js +2 -3
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +2 -4
- package/dest/e2e_p2p/shared.d.ts +3 -3
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +21 -11
- package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
- package/dest/fixtures/snapshot_manager.js +9 -9
- package/dest/fixtures/utils.d.ts +0 -6
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +9 -25
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +9 -2
- package/package.json +37 -37
- package/src/bench/client_flows/client_flows_benchmark.ts +2 -2
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +1 -1
- package/src/e2e_fees/fees_test.ts +2 -2
- package/src/e2e_p2p/p2p_network.ts +54 -60
- package/src/e2e_p2p/shared.ts +21 -13
- package/src/fixtures/snapshot_manager.ts +11 -10
- package/src/fixtures/utils.ts +8 -25
- package/src/spartan/setup_test_wallets.ts +3 -2
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { FeeJuicePaymentMethod, FeeJuicePaymentMethodWithClaim, PrivateFeePaymentMethod, SponsoredFeePaymentMethod, createLogger } from '@aztec/aztec.js';
|
|
2
|
-
import { CheatCodes } from '@aztec/aztec/testing';
|
|
3
2
|
import { RollupContract, createExtendedL1Client, deployL1Contract } from '@aztec/ethereum';
|
|
4
3
|
import { ChainMonitor } from '@aztec/ethereum/test';
|
|
5
4
|
import { randomBytes } from '@aztec/foundation/crypto';
|
|
@@ -149,10 +148,10 @@ export class ClientFlowsBenchmark {
|
|
|
149
148
|
await this.applySetupFeeJuiceSnapshot();
|
|
150
149
|
}
|
|
151
150
|
async applyInitialAccountsSnapshot() {
|
|
152
|
-
await this.snapshotManager.snapshot('initial_accounts', deployAccounts(2, this.logger), async ({ deployedAccounts: [{ address: adminAddress }, { address: sequencerAddress }] }, { wallet, aztecNode,
|
|
151
|
+
await this.snapshotManager.snapshot('initial_accounts', deployAccounts(2, this.logger), async ({ deployedAccounts: [{ address: adminAddress }, { address: sequencerAddress }] }, { wallet, aztecNode, cheatCodes })=>{
|
|
153
152
|
this.adminWallet = wallet;
|
|
154
153
|
this.aztecNode = aztecNode;
|
|
155
|
-
this.cheatCodes =
|
|
154
|
+
this.cheatCodes = cheatCodes;
|
|
156
155
|
this.adminAddress = adminAddress;
|
|
157
156
|
this.sequencerAddress = sequencerAddress;
|
|
158
157
|
const canonicalFeeJuice = await getCanonicalFeeJuice();
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { EthAddress, createLogger } from '@aztec/aztec.js';
|
|
2
|
-
import { CheatCodes } from '@aztec/aztec/testing';
|
|
3
2
|
import { createExtendedL1Client, deployL1Contract } from '@aztec/ethereum';
|
|
4
3
|
import { InboxAbi, OutboxAbi, TestERC20Abi, TestERC20Bytecode } from '@aztec/l1-artifacts';
|
|
5
4
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
@@ -44,7 +43,7 @@ export class CrossChainMessagingTest {
|
|
|
44
43
|
this.aztecNode = this.ctx.aztecNode;
|
|
45
44
|
this.wallet = this.ctx.wallet;
|
|
46
45
|
this.aztecNodeConfig = this.ctx.aztecNodeConfig;
|
|
47
|
-
this.cheatCodes =
|
|
46
|
+
this.cheatCodes = this.ctx.cheatCodes;
|
|
48
47
|
this.deployL1ContractsValues = this.ctx.deployL1ContractsValues;
|
|
49
48
|
this.aztecNodeAdmin = this.ctx.aztecNode;
|
|
50
49
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { SchnorrAccountContract } from '@aztec/accounts/schnorr';
|
|
2
2
|
import { createLogger, sleep } from '@aztec/aztec.js';
|
|
3
|
-
import { CheatCodes } from '@aztec/aztec/testing';
|
|
4
3
|
import { RollupContract, createExtendedL1Client } from '@aztec/ethereum';
|
|
5
4
|
import { ChainMonitor } from '@aztec/ethereum/test';
|
|
6
5
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
@@ -135,13 +134,13 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
135
134
|
await this.applyDeployBananaTokenSnapshot();
|
|
136
135
|
}
|
|
137
136
|
async applyInitialAccountsSnapshot() {
|
|
138
|
-
await this.snapshotManager.snapshot('initial_accounts', deployAccounts(this.numberOfAccounts, this.logger), async ({ deployedAccounts }, { wallet, aztecNode,
|
|
137
|
+
await this.snapshotManager.snapshot('initial_accounts', deployAccounts(this.numberOfAccounts, this.logger), async ({ deployedAccounts }, { wallet, aztecNode, cheatCodes })=>{
|
|
139
138
|
this.wallet = wallet;
|
|
140
139
|
this.aztecNode = aztecNode;
|
|
141
140
|
this.gasSettings = GasSettings.default({
|
|
142
141
|
maxFeesPerGas: (await this.aztecNode.getCurrentBaseFees()).mul(2)
|
|
143
142
|
});
|
|
144
|
-
this.cheatCodes =
|
|
143
|
+
this.cheatCodes = cheatCodes;
|
|
145
144
|
this.accounts = deployedAccounts.map((a)=>a.address);
|
|
146
145
|
this.accounts.forEach((a, i)=>this.logger.verbose(`Account ${i} address: ${a}`));
|
|
147
146
|
[this.aliceAddress, this.bobAddress, this.sequencerAddress] = this.accounts.slice(0, 3);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p2p_network.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/p2p_network.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"p2p_network.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/p2p_network.ts"],"names":[],"mappings":"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"}
|
|
@@ -140,7 +140,7 @@ export class P2PNetworkTest {
|
|
|
140
140
|
}
|
|
141
141
|
async applyBaseSnapshots() {
|
|
142
142
|
await this.addBootstrapNode();
|
|
143
|
-
await this.snapshotManager.snapshot('add-validators', async ({ deployL1ContractsValues,
|
|
143
|
+
await this.snapshotManager.snapshot('add-validators', async ({ deployL1ContractsValues, cheatCodes })=>{
|
|
144
144
|
const rollup = getContract({
|
|
145
145
|
address: deployL1ContractsValues.l1ContractAddresses.rollupAddress.toString(),
|
|
146
146
|
abi: RollupAbi,
|
|
@@ -191,9 +191,7 @@ export class P2PNetworkTest {
|
|
|
191
191
|
validatorTuples
|
|
192
192
|
])
|
|
193
193
|
});
|
|
194
|
-
await cheatCodes.rollup.advanceToEpoch(await cheatCodes.rollup.getEpoch() + await rollup.read.getLagInEpochs() + 1n
|
|
195
|
-
updateDateProvider: dateProvider
|
|
196
|
-
});
|
|
194
|
+
await cheatCodes.rollup.advanceToEpoch(await cheatCodes.rollup.getEpoch() + await rollup.read.getLagInEpochs() + 1n);
|
|
197
195
|
// Send and await a tx to make sure we mine a block for the warp to correctly progress.
|
|
198
196
|
await this._sendDummyTx(deployL1ContractsValues.l1Client);
|
|
199
197
|
});
|
package/dest/e2e_p2p/shared.d.ts
CHANGED
|
@@ -3,7 +3,6 @@ import type { AztecNodeService } from '@aztec/aztec-node';
|
|
|
3
3
|
import { AztecAddress, type Logger, ProvenTx, type SentTx } from '@aztec/aztec.js';
|
|
4
4
|
import type { RollupCheatCodes } from '@aztec/aztec/testing';
|
|
5
5
|
import type { EmpireSlashingProposerContract, RollupContract, TallySlashingProposerContract } from '@aztec/ethereum';
|
|
6
|
-
import type { TestDateProvider } from '@aztec/foundation/timer';
|
|
7
6
|
import type { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
|
|
8
7
|
import { PXEService } from '@aztec/pxe/server';
|
|
9
8
|
import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
|
|
@@ -34,7 +33,7 @@ export declare function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundS
|
|
|
34
33
|
* Await the committee to be slashed out of the validator set.
|
|
35
34
|
* Currently assumes that the committee is the same size as the validator set.
|
|
36
35
|
*/
|
|
37
|
-
export declare function awaitCommitteeKicked({ rollup, cheatCodes, committee, slashFactory, slashingProposer, slashingRoundSize, aztecSlotDuration, logger,
|
|
36
|
+
export declare function awaitCommitteeKicked({ rollup, cheatCodes, committee, slashFactory, slashingProposer, slashingRoundSize, aztecSlotDuration, aztecEpochDuration, logger, offenseEpoch, }: {
|
|
38
37
|
rollup: RollupContract;
|
|
39
38
|
cheatCodes: RollupCheatCodes;
|
|
40
39
|
committee: readonly `0x${string}`[];
|
|
@@ -42,7 +41,8 @@ export declare function awaitCommitteeKicked({ rollup, cheatCodes, committee, sl
|
|
|
42
41
|
slashingProposer: EmpireSlashingProposerContract | TallySlashingProposerContract | undefined;
|
|
43
42
|
slashingRoundSize: number;
|
|
44
43
|
aztecSlotDuration: number;
|
|
45
|
-
|
|
44
|
+
aztecEpochDuration: number;
|
|
46
45
|
logger: Logger;
|
|
46
|
+
offenseEpoch: number;
|
|
47
47
|
}): Promise<void>;
|
|
48
48
|
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EACL,YAAY,EAEZ,KAAK,MAAM,EACX,QAAQ,EACR,KAAK,MAAM,EAIZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,8BAA8B,EAAE,cAAc,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAGrH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/shared.ts"],"names":[],"mappings":"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"}
|
package/dest/e2e_p2p/shared.js
CHANGED
|
@@ -117,23 +117,24 @@ export async function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundSiz
|
|
|
117
117
|
logger.info(`Hit ${offenses.length} offenses on rounds ${unique(offenses.map((o)=>getRoundForOffense(o, {
|
|
118
118
|
slashingRoundSize,
|
|
119
119
|
epochDuration
|
|
120
|
-
})))}`,
|
|
120
|
+
})))}`, {
|
|
121
|
+
offenses
|
|
122
|
+
});
|
|
121
123
|
return offenses;
|
|
122
124
|
}
|
|
123
125
|
/**
|
|
124
126
|
* Await the committee to be slashed out of the validator set.
|
|
125
127
|
* Currently assumes that the committee is the same size as the validator set.
|
|
126
|
-
*/ export async function awaitCommitteeKicked({ rollup, cheatCodes, committee, slashFactory, slashingProposer, slashingRoundSize, aztecSlotDuration, logger,
|
|
128
|
+
*/ export async function awaitCommitteeKicked({ rollup, cheatCodes, committee, slashFactory, slashingProposer, slashingRoundSize, aztecSlotDuration, aztecEpochDuration, logger, offenseEpoch }) {
|
|
127
129
|
if (!slashingProposer) {
|
|
128
130
|
throw new Error('No slashing proposer configured. Cannot test slashing.');
|
|
129
131
|
}
|
|
130
|
-
logger.info(`Advancing epochs so we start slashing`);
|
|
131
132
|
await cheatCodes.debugRollup();
|
|
132
|
-
await cheatCodes.advanceToEpoch(await cheatCodes.getEpoch() + await rollup.getLagInEpochs() + 1n, {
|
|
133
|
-
updateDateProvider: dateProvider
|
|
134
|
-
});
|
|
135
|
-
// Await for the slash payload to be created if empire (no payload is created on tally until execution time)
|
|
136
133
|
if (slashingProposer.type === 'empire') {
|
|
134
|
+
// Await for the slash payload to be created if empire (no payload is created on tally until execution time)
|
|
135
|
+
const targetEpoch = await cheatCodes.getEpoch() + await rollup.getLagInEpochs() + 1n;
|
|
136
|
+
logger.info(`Advancing to epoch ${targetEpoch} so we start slashing`);
|
|
137
|
+
await cheatCodes.advanceToEpoch(targetEpoch);
|
|
137
138
|
const slashPayloadEvents = await retryUntil(async ()=>{
|
|
138
139
|
const events = await slashFactory.getSlashPayloadCreatedEvents();
|
|
139
140
|
return events.length > 0 ? events : undefined;
|
|
@@ -141,6 +142,17 @@ export async function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundSiz
|
|
|
141
142
|
expect(slashPayloadEvents.length).toBe(1);
|
|
142
143
|
// The uniqueness check is needed since a validator may be slashed more than once on the same round (eg because they let two epochs be pruned)
|
|
143
144
|
expect(unique(slashPayloadEvents[0].slashes.map((slash)=>slash.validator.toString()))).toHaveLength(committee.length);
|
|
145
|
+
} else {
|
|
146
|
+
// Use the slash offset to ensure we are in the right epoch for tally
|
|
147
|
+
const slashOffsetInRounds = await slashingProposer.getSlashOffsetInRounds();
|
|
148
|
+
const slashingRoundSizeInEpochs = slashingRoundSize / aztecEpochDuration;
|
|
149
|
+
const slashingOffsetInEpochs = Number(slashOffsetInRounds) * slashingRoundSizeInEpochs;
|
|
150
|
+
const firstEpochInOffenseRound = offenseEpoch - offenseEpoch % slashingRoundSizeInEpochs;
|
|
151
|
+
const targetEpoch = firstEpochInOffenseRound + slashingOffsetInEpochs;
|
|
152
|
+
logger.info(`Advancing to epoch ${targetEpoch} so we start slashing`);
|
|
153
|
+
await cheatCodes.advanceToEpoch(targetEpoch, {
|
|
154
|
+
offset: -aztecSlotDuration / 2
|
|
155
|
+
});
|
|
144
156
|
}
|
|
145
157
|
const attestersPre = await rollup.getAttesters();
|
|
146
158
|
expect(attestersPre.length).toBe(committee.length);
|
|
@@ -148,7 +160,7 @@ export async function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundSiz
|
|
|
148
160
|
const attesterInfo = await rollup.getAttesterView(attester);
|
|
149
161
|
expect(attesterInfo.status).toEqual(1); // Validating
|
|
150
162
|
}
|
|
151
|
-
const timeout = slashingRoundSize * 2 * aztecSlotDuration;
|
|
163
|
+
const timeout = slashingRoundSize * 2 * aztecSlotDuration + 30;
|
|
152
164
|
logger.info(`Waiting for slash to be executed (timeout ${timeout}s)`);
|
|
153
165
|
await awaitProposalExecution(slashingProposer, timeout, logger);
|
|
154
166
|
// The attesters should still form the committee but they should be reduced to the "living" status
|
|
@@ -163,9 +175,7 @@ export async function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundSiz
|
|
|
163
175
|
}
|
|
164
176
|
logger.info(`Advancing to check current committee`);
|
|
165
177
|
await cheatCodes.debugRollup();
|
|
166
|
-
await cheatCodes.advanceToEpoch(await cheatCodes.getEpoch() + await rollup.getLagInEpochs() + 1n
|
|
167
|
-
updateDateProvider: dateProvider
|
|
168
|
-
});
|
|
178
|
+
await cheatCodes.advanceToEpoch(await cheatCodes.getEpoch() + await rollup.getLagInEpochs() + 1n);
|
|
169
179
|
await cheatCodes.debugRollup();
|
|
170
180
|
const committeeNextEpoch = await rollup.getCurrentEpochCommittee();
|
|
171
181
|
// The committee should be undefined, since the validator set is empty
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot_manager.d.ts","sourceRoot":"","sources":["../../src/fixtures/snapshot_manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAA2B,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAoB,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,SAAS,EAId,KAAK,MAAM,EACX,KAAK,MAAM,EAGZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,KAAK,cAAc,EAAwB,MAAM,yBAAyB,CAAC;AACpF,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAIjC,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAezC,OAAO,EACL,KAAK,YAAY,EAKlB,MAAM,YAAY,CAAC;AAGpB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,GAAG,CAAC;IAChB,QAAQ,EAAE,GAAG,CAAC;IACd,SAAS,EAAE,gBAAgB,CAAC;IAC5B,eAAe,EAAE,eAAe,CAAC;IACjC,MAAM,EAAE,UAAU,CAAC;IACnB,uBAAuB,EAAE,2BAA2B,CAAC;IACrD,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,eAAe,CAAC;IAC3B,YAAY,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,qBAAqB,EAAE,kBAAkB,EAAE,CAAC;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AASF,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM,EAClC,qBAAqB,GAAE,OAAO,CAAC,qBAAqB,CAEnD,yCAKF;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,CAAC,EACR,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,EACjD,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,GACvE,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,KAAK,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEpC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,qIAAqI;AACrI,cAAM,mBAAoB,YAAW,gBAAgB;IAMjD,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,qBAAqB;IAN/B,OAAO,CAAC,OAAO,CAAC,CAAoB;IACpC,OAAO,CAAC,MAAM,CAAS;gBAGrB,QAAQ,EAAE,MAAM,EACR,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,EACrC,qBAAqB,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAMvD,QAAQ,CAAC,CAAC,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,EACjD,OAAO,GAAE,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAA2B;IAYtF,KAAK;IAOL,QAAQ;CAItB;AAED;;;GAGG;AACH,cAAM,eAAgB,YAAW,gBAAgB;IAQ7C,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,qBAAqB;IAT/B,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,OAAO,CAAC,CAAoB;IACpC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;gBAGrB,QAAQ,EAAE,MAAM,EACR,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM,EAClC,qBAAqB,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAMvD,QAAQ,CAAC,CAAC,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,EACjD,OAAO,GAAE,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAA2B;IA4CnG;;;;OAIG;IACU,KAAK;IA0BlB;;OAEG;IACU,QAAQ;CAKtB;
|
|
1
|
+
{"version":3,"file":"snapshot_manager.d.ts","sourceRoot":"","sources":["../../src/fixtures/snapshot_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -119,7 +119,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
119
119
|
// Execute the restoration function.
|
|
120
120
|
await restore(snapshotData, context);
|
|
121
121
|
// Save the snapshot data.
|
|
122
|
-
const ethCheatCodes = new EthCheatCodesWithState(context.aztecNodeConfig.l1RpcUrls);
|
|
122
|
+
const ethCheatCodes = new EthCheatCodesWithState(context.aztecNodeConfig.l1RpcUrls, context.dateProvider);
|
|
123
123
|
const anvilStateFile = `${this.livePath}/anvil.dat`;
|
|
124
124
|
await ethCheatCodes.dumpChainState(anvilStateFile);
|
|
125
125
|
writeFileSync(`${this.livePath}/${name}.json`, JSON.stringify(snapshotData || {}, resolver));
|
|
@@ -262,7 +262,8 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
262
262
|
aztecNodeConfig.l1RpcUrls = [
|
|
263
263
|
res.rpcUrl
|
|
264
264
|
];
|
|
265
|
-
const
|
|
265
|
+
const dateProvider = new TestDateProvider();
|
|
266
|
+
const ethCheatCodes = new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls, dateProvider);
|
|
266
267
|
// Deploy our L1 contracts.
|
|
267
268
|
logger.verbose('Deploying L1 contracts...');
|
|
268
269
|
if (opts.l1StartTime) {
|
|
@@ -285,8 +286,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
285
286
|
aztecNodeConfig.l1Contracts = deployL1ContractsValues.l1ContractAddresses;
|
|
286
287
|
aztecNodeConfig.rollupVersion = deployL1ContractsValues.rollupVersion;
|
|
287
288
|
aztecNodeConfig.l1PublishRetryIntervalMS = 100;
|
|
288
|
-
const
|
|
289
|
-
const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls), deployL1ContractsValues.l1ContractAddresses.rollupAddress, deployL1ContractsValues.l1Client, dateProvider);
|
|
289
|
+
const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls, dateProvider), deployL1ContractsValues.l1ContractAddresses.rollupAddress, deployL1ContractsValues.l1Client, dateProvider);
|
|
290
290
|
await watcher.start();
|
|
291
291
|
const acvmConfig = await getACVMConfig(logger);
|
|
292
292
|
if (acvmConfig) {
|
|
@@ -332,7 +332,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
332
332
|
pxeConfig.proverEnabled = !!opts.realProofs;
|
|
333
333
|
const pxe = await createPXEService(aztecNode, pxeConfig);
|
|
334
334
|
const wallet = new TestWallet(pxe, aztecNode);
|
|
335
|
-
const cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, wallet, aztecNode);
|
|
335
|
+
const cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, wallet, aztecNode, dateProvider);
|
|
336
336
|
if (statePath) {
|
|
337
337
|
writeFileSync(`${statePath}/aztec_node_config.json`, JSON.stringify(aztecNodeConfig, resolver));
|
|
338
338
|
writeFileSync(`${statePath}/accounts.json`, JSON.stringify(initialFundedAccounts, resolver));
|
|
@@ -379,7 +379,8 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
379
379
|
];
|
|
380
380
|
// Load anvil state.
|
|
381
381
|
const anvilStateFile = `${statePath}/anvil.dat`;
|
|
382
|
-
const
|
|
382
|
+
const dateProvider = new TestDateProvider();
|
|
383
|
+
const ethCheatCodes = new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls, dateProvider);
|
|
383
384
|
await ethCheatCodes.loadChainState(anvilStateFile);
|
|
384
385
|
// TODO: Encapsulate this in a NativeAcvm impl.
|
|
385
386
|
const acvmConfig = await getACVMConfig(logger);
|
|
@@ -394,8 +395,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
394
395
|
}
|
|
395
396
|
logger.verbose('Creating ETH clients...');
|
|
396
397
|
const l1Client = createExtendedL1Client(aztecNodeConfig.l1RpcUrls, mnemonicToAccount(MNEMONIC));
|
|
397
|
-
const
|
|
398
|
-
const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls), aztecNodeConfig.l1Contracts.rollupAddress, l1Client, dateProvider);
|
|
398
|
+
const watcher = new AnvilTestWatcher(ethCheatCodes, aztecNodeConfig.l1Contracts.rollupAddress, l1Client, dateProvider);
|
|
399
399
|
await watcher.start();
|
|
400
400
|
const telemetry = initTelemetryClient(getTelemetryConfig());
|
|
401
401
|
const blobSink = await createBlobSinkServer({
|
|
@@ -430,7 +430,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
430
430
|
pxeConfig.dataDirectory = statePath;
|
|
431
431
|
const pxe = await createPXEService(aztecNode, pxeConfig);
|
|
432
432
|
const wallet = new TestWallet(pxe, aztecNode);
|
|
433
|
-
const cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, wallet, aztecNode);
|
|
433
|
+
const cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, wallet, aztecNode, dateProvider);
|
|
434
434
|
return {
|
|
435
435
|
aztecNodeConfig,
|
|
436
436
|
anvil,
|
package/dest/fixtures/utils.d.ts
CHANGED
|
@@ -151,12 +151,6 @@ export declare function setup(numberOfAccounts?: number, opts?: SetupOptions, px
|
|
|
151
151
|
* @param accountsToDeploy - Which accounts to publicly deploy.
|
|
152
152
|
*/
|
|
153
153
|
export declare function ensureAccountContractsPublished(wallet: Wallet, accountsToDeploy: AztecAddress[]): Promise<void>;
|
|
154
|
-
/**
|
|
155
|
-
* Sets the timestamp of the next block.
|
|
156
|
-
* @param rpcUrl - rpc url of the blockchain instance to connect to
|
|
157
|
-
* @param timestamp - the timestamp for the next block
|
|
158
|
-
*/
|
|
159
|
-
export declare function setNextBlockTimestamp(rpcUrl: string, timestamp: number): Promise<void>;
|
|
160
154
|
/**
|
|
161
155
|
* Returns a logger instance for the current test.
|
|
162
156
|
* @returns a logger instance for the current test.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/utils.ts"],"names":[],"mappings":"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
|
|
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
|
@@ -17,7 +17,7 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
17
17
|
import { tryRmDir } from '@aztec/foundation/fs';
|
|
18
18
|
import { withLogNameSuffix } from '@aztec/foundation/log';
|
|
19
19
|
import { retryUntil } from '@aztec/foundation/retry';
|
|
20
|
-
import { TestDateProvider } from '@aztec/foundation/timer';
|
|
20
|
+
import { DateProvider, TestDateProvider } from '@aztec/foundation/timer';
|
|
21
21
|
import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
|
|
22
22
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
23
23
|
import { MockGossipSubNetwork, getMockPubSubP2PServiceFactory } from '@aztec/p2p/test-helpers';
|
|
@@ -145,9 +145,9 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
|
|
|
145
145
|
l1Client,
|
|
146
146
|
rollupVersion
|
|
147
147
|
};
|
|
148
|
-
const ethCheatCodes = new EthCheatCodes(config.l1RpcUrls);
|
|
148
|
+
const ethCheatCodes = new EthCheatCodes(config.l1RpcUrls, new DateProvider());
|
|
149
149
|
const wallet = new TestWallet(pxeClient, aztecNode);
|
|
150
|
-
const cheatCodes = await CheatCodes.create(config.l1RpcUrls, wallet, aztecNode);
|
|
150
|
+
const cheatCodes = await CheatCodes.create(config.l1RpcUrls, wallet, aztecNode, new DateProvider());
|
|
151
151
|
const teardown = ()=>Promise.resolve();
|
|
152
152
|
logger.verbose('Populating wallet from already registered accounts...');
|
|
153
153
|
const initialFundedAccounts = await getDeployedTestAccounts(wallet);
|
|
@@ -234,7 +234,8 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
|
|
|
234
234
|
logger.info(`Logging metrics to ${filename}`);
|
|
235
235
|
setupMetricsLogger(filename);
|
|
236
236
|
}
|
|
237
|
-
const
|
|
237
|
+
const dateProvider = new TestDateProvider();
|
|
238
|
+
const ethCheatCodes = new EthCheatCodesWithState(config.l1RpcUrls, dateProvider);
|
|
238
239
|
if (opts.stateLoad) {
|
|
239
240
|
await ethCheatCodes.loadChainState(opts.stateLoad);
|
|
240
241
|
}
|
|
@@ -305,6 +306,7 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
|
|
|
305
306
|
if (enableAutomine) {
|
|
306
307
|
await ethCheatCodes.setAutomine(false);
|
|
307
308
|
await ethCheatCodes.setIntervalMining(config.ethereumSlotDuration);
|
|
309
|
+
dateProvider.setTime(await ethCheatCodes.timestamp() * 1000);
|
|
308
310
|
}
|
|
309
311
|
if (opts.l2StartTime) {
|
|
310
312
|
// This should only be used in synching test or when you need to have a stable
|
|
@@ -313,9 +315,7 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
|
|
|
313
315
|
resetBlockInterval: true
|
|
314
316
|
});
|
|
315
317
|
}
|
|
316
|
-
const
|
|
317
|
-
dateProvider.setTime(await ethCheatCodes.timestamp() * 1000);
|
|
318
|
-
const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(config.l1RpcUrls), deployL1ContractsValues.l1ContractAddresses.rollupAddress, deployL1ContractsValues.l1Client, dateProvider);
|
|
318
|
+
const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(config.l1RpcUrls, dateProvider), deployL1ContractsValues.l1ContractAddresses.rollupAddress, deployL1ContractsValues.l1Client, dateProvider);
|
|
319
319
|
if (!opts.disableAnvilTestWatcher) {
|
|
320
320
|
await watcher.start();
|
|
321
321
|
}
|
|
@@ -410,12 +410,10 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
|
|
|
410
410
|
}
|
|
411
411
|
logger.verbose('Creating a pxe...');
|
|
412
412
|
const { wallet, teardown: pxeTeardown } = await setupPXEServiceAndGetWallet(aztecNode, pxeOpts, logger);
|
|
413
|
-
const cheatCodes = await CheatCodes.create(config.l1RpcUrls, wallet, aztecNode);
|
|
413
|
+
const cheatCodes = await CheatCodes.create(config.l1RpcUrls, wallet, aztecNode, dateProvider);
|
|
414
414
|
if (opts.aztecTargetCommitteeSize && opts.aztecTargetCommitteeSize > 0 || opts.initialValidators && opts.initialValidators.length > 0) {
|
|
415
415
|
// We need to advance such that the committee is set up.
|
|
416
|
-
await cheatCodes.rollup.advanceToEpoch(await cheatCodes.rollup.getEpoch() + BigInt(config.lagInEpochs + 1)
|
|
417
|
-
updateDateProvider: dateProvider
|
|
418
|
-
});
|
|
416
|
+
await cheatCodes.rollup.advanceToEpoch(await cheatCodes.rollup.getEpoch() + BigInt(config.lagInEpochs + 1));
|
|
419
417
|
await cheatCodes.rollup.setupEpoch();
|
|
420
418
|
await cheatCodes.rollup.debugRollup();
|
|
421
419
|
}
|
|
@@ -515,20 +513,6 @@ export async function ensureAccountContractsPublished(wallet, accountsToDeploy)
|
|
|
515
513
|
}).wait();
|
|
516
514
|
}
|
|
517
515
|
// docs:end:public_deploy_accounts
|
|
518
|
-
/**
|
|
519
|
-
* Sets the timestamp of the next block.
|
|
520
|
-
* @param rpcUrl - rpc url of the blockchain instance to connect to
|
|
521
|
-
* @param timestamp - the timestamp for the next block
|
|
522
|
-
*/ export async function setNextBlockTimestamp(rpcUrl, timestamp) {
|
|
523
|
-
const params = `[${timestamp}]`;
|
|
524
|
-
await fetch(rpcUrl, {
|
|
525
|
-
body: `{"jsonrpc":"2.0", "method": "evm_setNextBlockTimestamp", "params": ${params}, "id": 1}`,
|
|
526
|
-
method: 'POST',
|
|
527
|
-
headers: {
|
|
528
|
-
'Content-Type': 'application/json'
|
|
529
|
-
}
|
|
530
|
-
});
|
|
531
|
-
}
|
|
532
516
|
/** Returns the job name for the current test. */ function getJobName() {
|
|
533
517
|
return process.env.JOB_NAME ?? expect.getState().currentTestName?.split(' ')[0].replaceAll('/', '_') ?? 'unknown';
|
|
534
518
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup_test_wallets.d.ts","sourceRoot":"","sources":["../../src/spartan/setup_test_wallets.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,SAAS,EAEd,KAAK,gBAAgB,EAQtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMhD,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,iBAAiB,EAAE,YAAY,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,YAAY,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;CAC5B;AAMD,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CA8BvB;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,qBAAqB,SAAI,GACxB,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"setup_test_wallets.d.ts","sourceRoot":"","sources":["../../src/spartan/setup_test_wallets.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,SAAS,EAEd,KAAK,gBAAgB,EAQtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMhD,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,iBAAiB,EAAE,YAAY,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,YAAY,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;CAC5B;AAMD,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CA8BvB;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,qBAAqB,SAAI,GACxB,OAAO,CAAC,YAAY,CAAC,CAqCvB;AAED,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EAAE,EACnB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,qBAAqB,SAAI,GACxB,OAAO,CAAC,YAAY,CAAC,CAiDvB;AA+ED,wBAAsB,gBAAgB,CAAC,EACrC,YAAY,EACZ,MAAM,EACN,cAAc,EACd,MAAM,EACN,gBAAgB,GACjB,EAAE;IACD,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,iBAiBA;AAED,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAqBrF"}
|
|
@@ -35,9 +35,16 @@ export async function deploySponsoredTestAccounts(wallet, aztecNode, mintAmount,
|
|
|
35
35
|
const recipientAccount = await wallet.createSchnorrAccount(recipient.secret, recipient.salt);
|
|
36
36
|
const fundedAccounts = await Promise.all(funded.map((a)=>wallet.createSchnorrAccount(a.secret, a.salt)));
|
|
37
37
|
await registerSponsoredFPC(wallet);
|
|
38
|
+
const paymentMethod = new SponsoredFeePaymentMethod(await getSponsoredFPCAddress());
|
|
39
|
+
await recipientAccount.deploy({
|
|
40
|
+
fee: {
|
|
41
|
+
paymentMethod
|
|
42
|
+
}
|
|
43
|
+
}).wait({
|
|
44
|
+
timeout: 2400
|
|
45
|
+
});
|
|
38
46
|
await Promise.all(fundedAccounts.map(async (a)=>{
|
|
39
|
-
|
|
40
|
-
await recipientAccount.deploy({
|
|
47
|
+
await a.deploy({
|
|
41
48
|
fee: {
|
|
42
49
|
paymentMethod
|
|
43
50
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/end-to-end",
|
|
3
|
-
"version": "3.0.0-nightly.
|
|
3
|
+
"version": "3.0.0-nightly.20250924",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"inherits": [
|
|
@@ -25,42 +25,42 @@
|
|
|
25
25
|
"formatting": "run -T prettier --check ./src && run -T eslint ./src"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@aztec/accounts": "3.0.0-nightly.
|
|
29
|
-
"@aztec/archiver": "3.0.0-nightly.
|
|
30
|
-
"@aztec/aztec": "3.0.0-nightly.
|
|
31
|
-
"@aztec/aztec-node": "3.0.0-nightly.
|
|
32
|
-
"@aztec/aztec.js": "3.0.0-nightly.
|
|
33
|
-
"@aztec/bb-prover": "3.0.0-nightly.
|
|
34
|
-
"@aztec/blob-lib": "3.0.0-nightly.
|
|
35
|
-
"@aztec/blob-sink": "3.0.0-nightly.
|
|
36
|
-
"@aztec/bot": "3.0.0-nightly.
|
|
37
|
-
"@aztec/cli": "3.0.0-nightly.
|
|
38
|
-
"@aztec/constants": "3.0.0-nightly.
|
|
39
|
-
"@aztec/entrypoints": "3.0.0-nightly.
|
|
40
|
-
"@aztec/epoch-cache": "3.0.0-nightly.
|
|
41
|
-
"@aztec/ethereum": "3.0.0-nightly.
|
|
42
|
-
"@aztec/foundation": "3.0.0-nightly.
|
|
43
|
-
"@aztec/kv-store": "3.0.0-nightly.
|
|
44
|
-
"@aztec/l1-artifacts": "3.0.0-nightly.
|
|
45
|
-
"@aztec/merkle-tree": "3.0.0-nightly.
|
|
46
|
-
"@aztec/node-keystore": "3.0.0-nightly.
|
|
47
|
-
"@aztec/noir-contracts.js": "3.0.0-nightly.
|
|
48
|
-
"@aztec/noir-noirc_abi": "3.0.0-nightly.
|
|
49
|
-
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.
|
|
50
|
-
"@aztec/noir-test-contracts.js": "3.0.0-nightly.
|
|
51
|
-
"@aztec/p2p": "3.0.0-nightly.
|
|
52
|
-
"@aztec/protocol-contracts": "3.0.0-nightly.
|
|
53
|
-
"@aztec/prover-client": "3.0.0-nightly.
|
|
54
|
-
"@aztec/prover-node": "3.0.0-nightly.
|
|
55
|
-
"@aztec/pxe": "3.0.0-nightly.
|
|
56
|
-
"@aztec/sequencer-client": "3.0.0-nightly.
|
|
57
|
-
"@aztec/simulator": "3.0.0-nightly.
|
|
58
|
-
"@aztec/slasher": "3.0.0-nightly.
|
|
59
|
-
"@aztec/stdlib": "3.0.0-nightly.
|
|
60
|
-
"@aztec/telemetry-client": "3.0.0-nightly.
|
|
61
|
-
"@aztec/test-wallet": "3.0.0-nightly.
|
|
62
|
-
"@aztec/validator-client": "3.0.0-nightly.
|
|
63
|
-
"@aztec/world-state": "3.0.0-nightly.
|
|
28
|
+
"@aztec/accounts": "3.0.0-nightly.20250924",
|
|
29
|
+
"@aztec/archiver": "3.0.0-nightly.20250924",
|
|
30
|
+
"@aztec/aztec": "3.0.0-nightly.20250924",
|
|
31
|
+
"@aztec/aztec-node": "3.0.0-nightly.20250924",
|
|
32
|
+
"@aztec/aztec.js": "3.0.0-nightly.20250924",
|
|
33
|
+
"@aztec/bb-prover": "3.0.0-nightly.20250924",
|
|
34
|
+
"@aztec/blob-lib": "3.0.0-nightly.20250924",
|
|
35
|
+
"@aztec/blob-sink": "3.0.0-nightly.20250924",
|
|
36
|
+
"@aztec/bot": "3.0.0-nightly.20250924",
|
|
37
|
+
"@aztec/cli": "3.0.0-nightly.20250924",
|
|
38
|
+
"@aztec/constants": "3.0.0-nightly.20250924",
|
|
39
|
+
"@aztec/entrypoints": "3.0.0-nightly.20250924",
|
|
40
|
+
"@aztec/epoch-cache": "3.0.0-nightly.20250924",
|
|
41
|
+
"@aztec/ethereum": "3.0.0-nightly.20250924",
|
|
42
|
+
"@aztec/foundation": "3.0.0-nightly.20250924",
|
|
43
|
+
"@aztec/kv-store": "3.0.0-nightly.20250924",
|
|
44
|
+
"@aztec/l1-artifacts": "3.0.0-nightly.20250924",
|
|
45
|
+
"@aztec/merkle-tree": "3.0.0-nightly.20250924",
|
|
46
|
+
"@aztec/node-keystore": "3.0.0-nightly.20250924",
|
|
47
|
+
"@aztec/noir-contracts.js": "3.0.0-nightly.20250924",
|
|
48
|
+
"@aztec/noir-noirc_abi": "3.0.0-nightly.20250924",
|
|
49
|
+
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20250924",
|
|
50
|
+
"@aztec/noir-test-contracts.js": "3.0.0-nightly.20250924",
|
|
51
|
+
"@aztec/p2p": "3.0.0-nightly.20250924",
|
|
52
|
+
"@aztec/protocol-contracts": "3.0.0-nightly.20250924",
|
|
53
|
+
"@aztec/prover-client": "3.0.0-nightly.20250924",
|
|
54
|
+
"@aztec/prover-node": "3.0.0-nightly.20250924",
|
|
55
|
+
"@aztec/pxe": "3.0.0-nightly.20250924",
|
|
56
|
+
"@aztec/sequencer-client": "3.0.0-nightly.20250924",
|
|
57
|
+
"@aztec/simulator": "3.0.0-nightly.20250924",
|
|
58
|
+
"@aztec/slasher": "3.0.0-nightly.20250924",
|
|
59
|
+
"@aztec/stdlib": "3.0.0-nightly.20250924",
|
|
60
|
+
"@aztec/telemetry-client": "3.0.0-nightly.20250924",
|
|
61
|
+
"@aztec/test-wallet": "3.0.0-nightly.20250924",
|
|
62
|
+
"@aztec/validator-client": "3.0.0-nightly.20250924",
|
|
63
|
+
"@aztec/world-state": "3.0.0-nightly.20250924",
|
|
64
64
|
"@iarna/toml": "^2.2.5",
|
|
65
65
|
"@jest/globals": "^30.0.0",
|
|
66
66
|
"@noble/curves": "=1.0.0",
|
|
@@ -201,11 +201,11 @@ export class ClientFlowsBenchmark {
|
|
|
201
201
|
deployAccounts(2, this.logger),
|
|
202
202
|
async (
|
|
203
203
|
{ deployedAccounts: [{ address: adminAddress }, { address: sequencerAddress }] },
|
|
204
|
-
{ wallet, aztecNode,
|
|
204
|
+
{ wallet, aztecNode, cheatCodes },
|
|
205
205
|
) => {
|
|
206
206
|
this.adminWallet = wallet;
|
|
207
207
|
this.aztecNode = aztecNode;
|
|
208
|
-
this.cheatCodes =
|
|
208
|
+
this.cheatCodes = cheatCodes;
|
|
209
209
|
|
|
210
210
|
this.adminAddress = adminAddress;
|
|
211
211
|
this.sequencerAddress = sequencerAddress;
|
|
@@ -71,7 +71,7 @@ export class CrossChainMessagingTest {
|
|
|
71
71
|
this.aztecNode = this.ctx.aztecNode;
|
|
72
72
|
this.wallet = this.ctx.wallet;
|
|
73
73
|
this.aztecNodeConfig = this.ctx.aztecNodeConfig;
|
|
74
|
-
this.cheatCodes =
|
|
74
|
+
this.cheatCodes = this.ctx.cheatCodes;
|
|
75
75
|
this.deployL1ContractsValues = this.ctx.deployL1ContractsValues;
|
|
76
76
|
this.aztecNodeAdmin = this.ctx.aztecNode;
|
|
77
77
|
}
|
|
@@ -182,11 +182,11 @@ export class FeesTest {
|
|
|
182
182
|
await this.snapshotManager.snapshot(
|
|
183
183
|
'initial_accounts',
|
|
184
184
|
deployAccounts(this.numberOfAccounts, this.logger),
|
|
185
|
-
async ({ deployedAccounts }, { wallet, aztecNode,
|
|
185
|
+
async ({ deployedAccounts }, { wallet, aztecNode, cheatCodes }) => {
|
|
186
186
|
this.wallet = wallet;
|
|
187
187
|
this.aztecNode = aztecNode;
|
|
188
188
|
this.gasSettings = GasSettings.default({ maxFeesPerGas: (await this.aztecNode.getCurrentBaseFees()).mul(2) });
|
|
189
|
-
this.cheatCodes =
|
|
189
|
+
this.cheatCodes = cheatCodes;
|
|
190
190
|
this.accounts = deployedAccounts.map(a => a.address);
|
|
191
191
|
this.accounts.forEach((a, i) => this.logger.verbose(`Account ${i} address: ${a}`));
|
|
192
192
|
[this.aliceAddress, this.bobAddress, this.sequencerAddress] = this.accounts.slice(0, 3);
|
|
@@ -230,78 +230,72 @@ export class P2PNetworkTest {
|
|
|
230
230
|
|
|
231
231
|
async applyBaseSnapshots() {
|
|
232
232
|
await this.addBootstrapNode();
|
|
233
|
-
await this.snapshotManager.snapshot(
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
client: deployL1ContractsValues.l1Client,
|
|
240
|
-
});
|
|
233
|
+
await this.snapshotManager.snapshot('add-validators', async ({ deployL1ContractsValues, cheatCodes }) => {
|
|
234
|
+
const rollup = getContract({
|
|
235
|
+
address: deployL1ContractsValues.l1ContractAddresses.rollupAddress.toString(),
|
|
236
|
+
abi: RollupAbi,
|
|
237
|
+
client: deployL1ContractsValues.l1Client,
|
|
238
|
+
});
|
|
241
239
|
|
|
242
|
-
|
|
240
|
+
this.logger.info(`Adding ${this.numberOfValidators} validators`);
|
|
243
241
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
242
|
+
const stakingAsset = getContract({
|
|
243
|
+
address: deployL1ContractsValues.l1ContractAddresses.stakingAssetAddress.toString(),
|
|
244
|
+
abi: TestERC20Abi,
|
|
245
|
+
client: deployL1ContractsValues.l1Client,
|
|
246
|
+
});
|
|
249
247
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
248
|
+
const { address: multiAdderAddress } = await deployL1Contract(
|
|
249
|
+
deployL1ContractsValues.l1Client,
|
|
250
|
+
MultiAdderArtifact.contractAbi,
|
|
251
|
+
MultiAdderArtifact.contractBytecode,
|
|
252
|
+
[rollup.address, deployL1ContractsValues.l1Client.account.address],
|
|
253
|
+
);
|
|
254
|
+
|
|
255
|
+
const multiAdder = getContract({
|
|
256
|
+
address: multiAdderAddress.toString(),
|
|
257
|
+
abi: MultiAdderArtifact.contractAbi,
|
|
258
|
+
client: deployL1ContractsValues.l1Client,
|
|
259
|
+
});
|
|
262
260
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
261
|
+
const stakeNeeded = (await rollup.read.getActivationThreshold()) * BigInt(this.numberOfValidators);
|
|
262
|
+
await Promise.all(
|
|
263
|
+
[await stakingAsset.write.mint([multiAdder.address, stakeNeeded], {} as any)].map(txHash =>
|
|
264
|
+
deployL1ContractsValues.l1Client.waitForTransactionReceipt({ hash: txHash }),
|
|
265
|
+
),
|
|
266
|
+
);
|
|
269
267
|
|
|
270
|
-
|
|
271
|
-
|
|
268
|
+
const { validators } = this.getValidators();
|
|
269
|
+
this.validators = validators;
|
|
272
270
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
271
|
+
const gseAddress = deployL1ContractsValues.l1ContractAddresses.gseAddress!;
|
|
272
|
+
if (!gseAddress) {
|
|
273
|
+
throw new Error('GSE contract not deployed');
|
|
274
|
+
}
|
|
277
275
|
|
|
278
|
-
|
|
276
|
+
const gseContract = new GSEContract(deployL1ContractsValues.l1Client, gseAddress.toString());
|
|
279
277
|
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
};
|
|
278
|
+
const makeValidatorTuples = async (validator: Operator) => {
|
|
279
|
+
const registrationTuple = await gseContract.makeRegistrationTuple(validator.bn254SecretKey.getValue());
|
|
280
|
+
return {
|
|
281
|
+
attester: validator.attester.toString() as `0x${string}`,
|
|
282
|
+
withdrawer: validator.withdrawer.toString() as `0x${string}`,
|
|
283
|
+
...registrationTuple,
|
|
287
284
|
};
|
|
288
|
-
|
|
285
|
+
};
|
|
286
|
+
const validatorTuples = await Promise.all(validators.map(makeValidatorTuples));
|
|
289
287
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
288
|
+
await deployL1ContractsValues.l1Client.waitForTransactionReceipt({
|
|
289
|
+
hash: await multiAdder.write.addValidators([validatorTuples]),
|
|
290
|
+
});
|
|
293
291
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
updateDateProvider: dateProvider,
|
|
298
|
-
},
|
|
299
|
-
);
|
|
292
|
+
await cheatCodes.rollup.advanceToEpoch(
|
|
293
|
+
(await cheatCodes.rollup.getEpoch()) + (await rollup.read.getLagInEpochs()) + 1n,
|
|
294
|
+
);
|
|
300
295
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
);
|
|
296
|
+
// Send and await a tx to make sure we mine a block for the warp to correctly progress.
|
|
297
|
+
await this._sendDummyTx(deployL1ContractsValues.l1Client);
|
|
298
|
+
});
|
|
305
299
|
}
|
|
306
300
|
|
|
307
301
|
async setupAccount() {
|
package/src/e2e_p2p/shared.ts
CHANGED
|
@@ -14,7 +14,6 @@ import type { RollupCheatCodes } from '@aztec/aztec/testing';
|
|
|
14
14
|
import type { EmpireSlashingProposerContract, RollupContract, TallySlashingProposerContract } from '@aztec/ethereum';
|
|
15
15
|
import { timesAsync, unique } from '@aztec/foundation/collection';
|
|
16
16
|
import { pluralize } from '@aztec/foundation/string';
|
|
17
|
-
import type { TestDateProvider } from '@aztec/foundation/timer';
|
|
18
17
|
import type { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
|
|
19
18
|
import { TestContract, TestContractArtifact } from '@aztec/noir-test-contracts.js/Test';
|
|
20
19
|
import { PXEService, createPXEService, getPXEServiceConfig as getRpcConfig } from '@aztec/pxe/server';
|
|
@@ -180,7 +179,7 @@ export async function awaitOffenseDetected({
|
|
|
180
179
|
);
|
|
181
180
|
logger.info(
|
|
182
181
|
`Hit ${offenses.length} offenses on rounds ${unique(offenses.map(o => getRoundForOffense(o, { slashingRoundSize, epochDuration })))}`,
|
|
183
|
-
offenses,
|
|
182
|
+
{ offenses },
|
|
184
183
|
);
|
|
185
184
|
return offenses;
|
|
186
185
|
}
|
|
@@ -197,8 +196,9 @@ export async function awaitCommitteeKicked({
|
|
|
197
196
|
slashingProposer,
|
|
198
197
|
slashingRoundSize,
|
|
199
198
|
aztecSlotDuration,
|
|
199
|
+
aztecEpochDuration,
|
|
200
200
|
logger,
|
|
201
|
-
|
|
201
|
+
offenseEpoch,
|
|
202
202
|
}: {
|
|
203
203
|
rollup: RollupContract;
|
|
204
204
|
cheatCodes: RollupCheatCodes;
|
|
@@ -207,21 +207,22 @@ export async function awaitCommitteeKicked({
|
|
|
207
207
|
slashingProposer: EmpireSlashingProposerContract | TallySlashingProposerContract | undefined;
|
|
208
208
|
slashingRoundSize: number;
|
|
209
209
|
aztecSlotDuration: number;
|
|
210
|
-
|
|
210
|
+
aztecEpochDuration: number;
|
|
211
211
|
logger: Logger;
|
|
212
|
+
offenseEpoch: number;
|
|
212
213
|
}) {
|
|
213
214
|
if (!slashingProposer) {
|
|
214
215
|
throw new Error('No slashing proposer configured. Cannot test slashing.');
|
|
215
216
|
}
|
|
216
217
|
|
|
217
|
-
logger.info(`Advancing epochs so we start slashing`);
|
|
218
218
|
await cheatCodes.debugRollup();
|
|
219
|
-
await cheatCodes.advanceToEpoch((await cheatCodes.getEpoch()) + (await rollup.getLagInEpochs()) + 1n, {
|
|
220
|
-
updateDateProvider: dateProvider,
|
|
221
|
-
});
|
|
222
219
|
|
|
223
|
-
// Await for the slash payload to be created if empire (no payload is created on tally until execution time)
|
|
224
220
|
if (slashingProposer.type === 'empire') {
|
|
221
|
+
// Await for the slash payload to be created if empire (no payload is created on tally until execution time)
|
|
222
|
+
const targetEpoch = (await cheatCodes.getEpoch()) + (await rollup.getLagInEpochs()) + 1n;
|
|
223
|
+
logger.info(`Advancing to epoch ${targetEpoch} so we start slashing`);
|
|
224
|
+
await cheatCodes.advanceToEpoch(targetEpoch);
|
|
225
|
+
|
|
225
226
|
const slashPayloadEvents = await retryUntil(
|
|
226
227
|
async () => {
|
|
227
228
|
const events = await slashFactory.getSlashPayloadCreatedEvents();
|
|
@@ -236,6 +237,15 @@ export async function awaitCommitteeKicked({
|
|
|
236
237
|
expect(unique(slashPayloadEvents[0].slashes.map(slash => slash.validator.toString()))).toHaveLength(
|
|
237
238
|
committee.length,
|
|
238
239
|
);
|
|
240
|
+
} else {
|
|
241
|
+
// Use the slash offset to ensure we are in the right epoch for tally
|
|
242
|
+
const slashOffsetInRounds = await slashingProposer.getSlashOffsetInRounds();
|
|
243
|
+
const slashingRoundSizeInEpochs = slashingRoundSize / aztecEpochDuration;
|
|
244
|
+
const slashingOffsetInEpochs = Number(slashOffsetInRounds) * slashingRoundSizeInEpochs;
|
|
245
|
+
const firstEpochInOffenseRound = offenseEpoch - (offenseEpoch % slashingRoundSizeInEpochs);
|
|
246
|
+
const targetEpoch = firstEpochInOffenseRound + slashingOffsetInEpochs;
|
|
247
|
+
logger.info(`Advancing to epoch ${targetEpoch} so we start slashing`);
|
|
248
|
+
await cheatCodes.advanceToEpoch(targetEpoch, { offset: -aztecSlotDuration / 2 });
|
|
239
249
|
}
|
|
240
250
|
|
|
241
251
|
const attestersPre = await rollup.getAttesters();
|
|
@@ -246,7 +256,7 @@ export async function awaitCommitteeKicked({
|
|
|
246
256
|
expect(attesterInfo.status).toEqual(1); // Validating
|
|
247
257
|
}
|
|
248
258
|
|
|
249
|
-
const timeout = slashingRoundSize * 2 * aztecSlotDuration;
|
|
259
|
+
const timeout = slashingRoundSize * 2 * aztecSlotDuration + 30;
|
|
250
260
|
logger.info(`Waiting for slash to be executed (timeout ${timeout}s)`);
|
|
251
261
|
await awaitProposalExecution(slashingProposer, timeout, logger);
|
|
252
262
|
|
|
@@ -265,9 +275,7 @@ export async function awaitCommitteeKicked({
|
|
|
265
275
|
|
|
266
276
|
logger.info(`Advancing to check current committee`);
|
|
267
277
|
await cheatCodes.debugRollup();
|
|
268
|
-
await cheatCodes.advanceToEpoch((await cheatCodes.getEpoch()) + (await rollup.getLagInEpochs()) + 1n
|
|
269
|
-
updateDateProvider: dateProvider,
|
|
270
|
-
});
|
|
278
|
+
await cheatCodes.advanceToEpoch((await cheatCodes.getEpoch()) + (await rollup.getLagInEpochs()) + 1n);
|
|
271
279
|
await cheatCodes.debugRollup();
|
|
272
280
|
|
|
273
281
|
const committeeNextEpoch = await rollup.getCurrentEpochCommittee();
|
|
@@ -204,7 +204,7 @@ class SnapshotManager implements ISnapshotManager {
|
|
|
204
204
|
await restore(snapshotData, context);
|
|
205
205
|
|
|
206
206
|
// Save the snapshot data.
|
|
207
|
-
const ethCheatCodes = new EthCheatCodesWithState(context.aztecNodeConfig.l1RpcUrls);
|
|
207
|
+
const ethCheatCodes = new EthCheatCodesWithState(context.aztecNodeConfig.l1RpcUrls, context.dateProvider);
|
|
208
208
|
const anvilStateFile = `${this.livePath}/anvil.dat`;
|
|
209
209
|
await ethCheatCodes.dumpChainState(anvilStateFile);
|
|
210
210
|
writeFileSync(`${this.livePath}/${name}.json`, JSON.stringify(snapshotData || {}, resolver));
|
|
@@ -351,7 +351,9 @@ async function setupFromFresh(
|
|
|
351
351
|
const res = await startAnvil({ l1BlockTime: opts.ethereumSlotDuration });
|
|
352
352
|
const anvil = res.anvil;
|
|
353
353
|
aztecNodeConfig.l1RpcUrls = [res.rpcUrl];
|
|
354
|
-
|
|
354
|
+
|
|
355
|
+
const dateProvider = new TestDateProvider();
|
|
356
|
+
const ethCheatCodes = new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls, dateProvider);
|
|
355
357
|
|
|
356
358
|
// Deploy our L1 contracts.
|
|
357
359
|
logger.verbose('Deploying L1 contracts...');
|
|
@@ -380,10 +382,8 @@ async function setupFromFresh(
|
|
|
380
382
|
aztecNodeConfig.rollupVersion = deployL1ContractsValues.rollupVersion;
|
|
381
383
|
aztecNodeConfig.l1PublishRetryIntervalMS = 100;
|
|
382
384
|
|
|
383
|
-
const dateProvider = new TestDateProvider();
|
|
384
|
-
|
|
385
385
|
const watcher = new AnvilTestWatcher(
|
|
386
|
-
new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls),
|
|
386
|
+
new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls, dateProvider),
|
|
387
387
|
deployL1ContractsValues.l1ContractAddresses.rollupAddress,
|
|
388
388
|
deployL1ContractsValues.l1Client,
|
|
389
389
|
dateProvider,
|
|
@@ -448,7 +448,7 @@ async function setupFromFresh(
|
|
|
448
448
|
pxeConfig.proverEnabled = !!opts.realProofs;
|
|
449
449
|
const pxe = await createPXEService(aztecNode, pxeConfig);
|
|
450
450
|
const wallet = new TestWallet(pxe, aztecNode);
|
|
451
|
-
const cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, wallet, aztecNode);
|
|
451
|
+
const cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, wallet, aztecNode, dateProvider);
|
|
452
452
|
|
|
453
453
|
if (statePath) {
|
|
454
454
|
writeFileSync(`${statePath}/aztec_node_config.json`, JSON.stringify(aztecNodeConfig, resolver));
|
|
@@ -504,7 +504,9 @@ async function setupFromState(statePath: string, logger: Logger): Promise<Subsys
|
|
|
504
504
|
aztecNodeConfig.l1RpcUrls = [rpcUrl];
|
|
505
505
|
// Load anvil state.
|
|
506
506
|
const anvilStateFile = `${statePath}/anvil.dat`;
|
|
507
|
-
|
|
507
|
+
|
|
508
|
+
const dateProvider = new TestDateProvider();
|
|
509
|
+
const ethCheatCodes = new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls, dateProvider);
|
|
508
510
|
await ethCheatCodes.loadChainState(anvilStateFile);
|
|
509
511
|
|
|
510
512
|
// TODO: Encapsulate this in a NativeAcvm impl.
|
|
@@ -523,9 +525,8 @@ async function setupFromState(statePath: string, logger: Logger): Promise<Subsys
|
|
|
523
525
|
logger.verbose('Creating ETH clients...');
|
|
524
526
|
const l1Client = createExtendedL1Client(aztecNodeConfig.l1RpcUrls, mnemonicToAccount(MNEMONIC));
|
|
525
527
|
|
|
526
|
-
const dateProvider = new TestDateProvider();
|
|
527
528
|
const watcher = new AnvilTestWatcher(
|
|
528
|
-
|
|
529
|
+
ethCheatCodes,
|
|
529
530
|
aztecNodeConfig.l1Contracts.rollupAddress,
|
|
530
531
|
l1Client,
|
|
531
532
|
dateProvider,
|
|
@@ -576,7 +577,7 @@ async function setupFromState(statePath: string, logger: Logger): Promise<Subsys
|
|
|
576
577
|
pxeConfig.dataDirectory = statePath;
|
|
577
578
|
const pxe = await createPXEService(aztecNode, pxeConfig);
|
|
578
579
|
const wallet = new TestWallet(pxe, aztecNode);
|
|
579
|
-
const cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, wallet, aztecNode);
|
|
580
|
+
const cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, wallet, aztecNode, dateProvider);
|
|
580
581
|
|
|
581
582
|
return {
|
|
582
583
|
aztecNodeConfig,
|
package/src/fixtures/utils.ts
CHANGED
|
@@ -231,9 +231,9 @@ async function setupWithRemoteEnvironment(
|
|
|
231
231
|
l1Client,
|
|
232
232
|
rollupVersion,
|
|
233
233
|
};
|
|
234
|
-
const ethCheatCodes = new EthCheatCodes(config.l1RpcUrls);
|
|
234
|
+
const ethCheatCodes = new EthCheatCodes(config.l1RpcUrls, new DateProvider());
|
|
235
235
|
const wallet = new TestWallet(pxeClient, aztecNode);
|
|
236
|
-
const cheatCodes = await CheatCodes.create(config.l1RpcUrls, wallet, aztecNode);
|
|
236
|
+
const cheatCodes = await CheatCodes.create(config.l1RpcUrls, wallet, aztecNode, new DateProvider());
|
|
237
237
|
const teardown = () => Promise.resolve();
|
|
238
238
|
|
|
239
239
|
logger.verbose('Populating wallet from already registered accounts...');
|
|
@@ -426,7 +426,8 @@ export async function setup(
|
|
|
426
426
|
setupMetricsLogger(filename);
|
|
427
427
|
}
|
|
428
428
|
|
|
429
|
-
const
|
|
429
|
+
const dateProvider = new TestDateProvider();
|
|
430
|
+
const ethCheatCodes = new EthCheatCodesWithState(config.l1RpcUrls, dateProvider);
|
|
430
431
|
|
|
431
432
|
if (opts.stateLoad) {
|
|
432
433
|
await ethCheatCodes.loadChainState(opts.stateLoad);
|
|
@@ -527,6 +528,7 @@ export async function setup(
|
|
|
527
528
|
if (enableAutomine) {
|
|
528
529
|
await ethCheatCodes.setAutomine(false);
|
|
529
530
|
await ethCheatCodes.setIntervalMining(config.ethereumSlotDuration);
|
|
531
|
+
dateProvider.setTime((await ethCheatCodes.timestamp()) * 1000);
|
|
530
532
|
}
|
|
531
533
|
|
|
532
534
|
if (opts.l2StartTime) {
|
|
@@ -535,11 +537,8 @@ export async function setup(
|
|
|
535
537
|
await ethCheatCodes.warp(opts.l2StartTime, { resetBlockInterval: true });
|
|
536
538
|
}
|
|
537
539
|
|
|
538
|
-
const dateProvider = new TestDateProvider();
|
|
539
|
-
dateProvider.setTime((await ethCheatCodes.timestamp()) * 1000);
|
|
540
|
-
|
|
541
540
|
const watcher = new AnvilTestWatcher(
|
|
542
|
-
new EthCheatCodesWithState(config.l1RpcUrls),
|
|
541
|
+
new EthCheatCodesWithState(config.l1RpcUrls, dateProvider),
|
|
543
542
|
deployL1ContractsValues.l1ContractAddresses.rollupAddress,
|
|
544
543
|
deployL1ContractsValues.l1Client,
|
|
545
544
|
dateProvider,
|
|
@@ -650,16 +649,14 @@ export async function setup(
|
|
|
650
649
|
logger.verbose('Creating a pxe...');
|
|
651
650
|
const { wallet, teardown: pxeTeardown } = await setupPXEServiceAndGetWallet(aztecNode!, pxeOpts, logger);
|
|
652
651
|
|
|
653
|
-
const cheatCodes = await CheatCodes.create(config.l1RpcUrls, wallet, aztecNode);
|
|
652
|
+
const cheatCodes = await CheatCodes.create(config.l1RpcUrls, wallet, aztecNode, dateProvider);
|
|
654
653
|
|
|
655
654
|
if (
|
|
656
655
|
(opts.aztecTargetCommitteeSize && opts.aztecTargetCommitteeSize > 0) ||
|
|
657
656
|
(opts.initialValidators && opts.initialValidators.length > 0)
|
|
658
657
|
) {
|
|
659
658
|
// We need to advance such that the committee is set up.
|
|
660
|
-
await cheatCodes.rollup.advanceToEpoch((await cheatCodes.rollup.getEpoch()) + BigInt(config.lagInEpochs + 1)
|
|
661
|
-
updateDateProvider: dateProvider,
|
|
662
|
-
});
|
|
659
|
+
await cheatCodes.rollup.advanceToEpoch((await cheatCodes.rollup.getEpoch()) + BigInt(config.lagInEpochs + 1));
|
|
663
660
|
await cheatCodes.rollup.setupEpoch();
|
|
664
661
|
await cheatCodes.rollup.debugRollup();
|
|
665
662
|
}
|
|
@@ -780,20 +777,6 @@ export async function ensureAccountContractsPublished(wallet: Wallet, accountsTo
|
|
|
780
777
|
}
|
|
781
778
|
// docs:end:public_deploy_accounts
|
|
782
779
|
|
|
783
|
-
/**
|
|
784
|
-
* Sets the timestamp of the next block.
|
|
785
|
-
* @param rpcUrl - rpc url of the blockchain instance to connect to
|
|
786
|
-
* @param timestamp - the timestamp for the next block
|
|
787
|
-
*/
|
|
788
|
-
export async function setNextBlockTimestamp(rpcUrl: string, timestamp: number) {
|
|
789
|
-
const params = `[${timestamp}]`;
|
|
790
|
-
await fetch(rpcUrl, {
|
|
791
|
-
body: `{"jsonrpc":"2.0", "method": "evm_setNextBlockTimestamp", "params": ${params}, "id": 1}`,
|
|
792
|
-
method: 'POST',
|
|
793
|
-
headers: { 'Content-Type': 'application/json' },
|
|
794
|
-
});
|
|
795
|
-
}
|
|
796
|
-
|
|
797
780
|
/** Returns the job name for the current test. */
|
|
798
781
|
function getJobName() {
|
|
799
782
|
return process.env.JOB_NAME ?? expect.getState().currentTestName?.split(' ')[0].replaceAll('/', '_') ?? 'unknown';
|
|
@@ -88,10 +88,11 @@ export async function deploySponsoredTestAccounts(
|
|
|
88
88
|
|
|
89
89
|
await registerSponsoredFPC(wallet);
|
|
90
90
|
|
|
91
|
+
const paymentMethod = new SponsoredFeePaymentMethod(await getSponsoredFPCAddress());
|
|
92
|
+
await recipientAccount.deploy({ fee: { paymentMethod } }).wait({ timeout: 2400 });
|
|
91
93
|
await Promise.all(
|
|
92
94
|
fundedAccounts.map(async a => {
|
|
93
|
-
|
|
94
|
-
await recipientAccount.deploy({ fee: { paymentMethod } }).wait({ timeout: 2400 }); // increase timeout on purpose in order to account for two empty epochs
|
|
95
|
+
await a.deploy({ fee: { paymentMethod } }).wait({ timeout: 2400 }); // increase timeout on purpose in order to account for two empty epochs
|
|
95
96
|
logger.info(`Account deployed at ${a.getAddress()}`);
|
|
96
97
|
}),
|
|
97
98
|
);
|