@aztec/end-to-end 1.0.0-nightly.20250704 → 1.0.0-nightly.20250706
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/e2e_epochs/epochs_test.d.ts +15 -2
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +58 -2
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +1 -1
- package/package.json +35 -35
- package/src/e2e_epochs/epochs_test.ts +89 -22
- package/src/fixtures/utils.ts +5 -1
|
@@ -5,15 +5,23 @@ import { RollupContract } from '@aztec/ethereum/contracts';
|
|
|
5
5
|
import { ChainMonitor, type Delayer } from '@aztec/ethereum/test';
|
|
6
6
|
import { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
|
|
7
7
|
import { ProverNode } from '@aztec/prover-node';
|
|
8
|
-
import type
|
|
8
|
+
import { type SequencerClient, type SequencerEvents } from '@aztec/sequencer-client';
|
|
9
|
+
import type { EthAddress, L2BlockNumber } from '@aztec/stdlib/block';
|
|
9
10
|
import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
10
11
|
import { type EndToEndContext, type SetupOptions } from '../fixtures/utils.js';
|
|
11
12
|
export declare const WORLD_STATE_BLOCK_HISTORY = 2;
|
|
12
13
|
export declare const WORLD_STATE_BLOCK_CHECK_INTERVAL = 50;
|
|
13
14
|
export declare const ARCHIVER_POLL_INTERVAL = 50;
|
|
14
|
-
export type EpochsTestOpts = Partial<
|
|
15
|
+
export type EpochsTestOpts = Partial<SetupOptions> & {
|
|
15
16
|
numberOfAccounts?: number;
|
|
16
17
|
};
|
|
18
|
+
export type TrackedSequencerEvent = {
|
|
19
|
+
[K in keyof SequencerEvents]: Parameters<SequencerEvents[K]>[0] & {
|
|
20
|
+
type: K;
|
|
21
|
+
sequencerIndex: number;
|
|
22
|
+
validator: EthAddress;
|
|
23
|
+
};
|
|
24
|
+
}[keyof SequencerEvents];
|
|
17
25
|
/**
|
|
18
26
|
* Tests building of epochs using fast block times and short epochs.
|
|
19
27
|
* Spawns an aztec node and a prover node with fake proofs.
|
|
@@ -45,6 +53,7 @@ export declare class EpochsTestContext {
|
|
|
45
53
|
createProverNode(): Promise<ProverNode>;
|
|
46
54
|
createNonValidatorNode(opts?: Partial<AztecNodeConfig>): Promise<AztecNodeService>;
|
|
47
55
|
createValidatorNode(privateKeys: `0x${string}`[], opts?: Partial<AztecNodeConfig> & {
|
|
56
|
+
txDelayerMaxInclusionTimeIntoSlot?: number;
|
|
48
57
|
dontStartSequencer?: boolean;
|
|
49
58
|
}): Promise<AztecNodeService>;
|
|
50
59
|
private createNode;
|
|
@@ -68,5 +77,9 @@ export declare class EpochsTestContext {
|
|
|
68
77
|
}>;
|
|
69
78
|
/** Verifies whether the given block number is found on the aztec node. */
|
|
70
79
|
verifyHistoricBlock(blockNumber: L2BlockNumber, expectedSuccess: boolean): Promise<void>;
|
|
80
|
+
watchSequencerEvents(sequencers: SequencerClient[], getMetadata?: (i: number) => Record<string, any>): {
|
|
81
|
+
failEvents: TrackedSequencerEvent[];
|
|
82
|
+
stateChanges: TrackedSequencerEvent[];
|
|
83
|
+
};
|
|
71
84
|
}
|
|
72
85
|
//# sourceMappingURL=epochs_test.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epochs_test.d.ts","sourceRoot":"","sources":["../../src/e2e_epochs/epochs_test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EACL,EAAE,EACF,KAAK,MAAM,EAEX,KAAK,MAAM,EAKZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,wBAAwB,EAA0B,MAAM,iBAAiB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAkB,KAAK,OAAO,EAAqC,MAAM,sBAAsB,CAAC;AAIrH,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,UAAU,EAAuB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"epochs_test.d.ts","sourceRoot":"","sources":["../../src/e2e_epochs/epochs_test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EACL,EAAE,EACF,KAAK,MAAM,EAEX,KAAK,MAAM,EAKZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,wBAAwB,EAA0B,MAAM,iBAAiB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAkB,KAAK,OAAO,EAAqC,MAAM,sBAAsB,CAAC;AAIrH,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,UAAU,EAAuB,MAAM,oBAAoB,CAAC;AAErE,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,KAAK,iBAAiB,EAAuC,MAAM,6BAA6B,CAAC;AAO1G,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EAIlB,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,gCAAgC,KAAK,CAAC;AACnD,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnF,MAAM,MAAM,qBAAqB,GAAG;KACjC,CAAC,IAAI,MAAM,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QAChE,IAAI,EAAE,CAAC,CAAC;QACR,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,UAAU,CAAC;KACvB;CACF,CAAC,MAAM,eAAe,CAAC,CAAC;AAEzB;;;;GAIG;AACH,qBAAa,iBAAiB;IACrB,OAAO,EAAG,eAAe,CAAC;IAC1B,QAAQ,EAAG,wBAAwB,CAAC;IACpC,MAAM,EAAG,cAAc,CAAC;IACxB,SAAS,EAAG,iBAAiB,CAAC;IAC9B,MAAM,EAAG,MAAM,CAAC;IAChB,OAAO,EAAG,YAAY,CAAC;IACvB,aAAa,EAAG,OAAO,CAAC;IACxB,gBAAgB,EAAG,OAAO,CAAC;IAE3B,WAAW,EAAE,UAAU,EAAE,CAAM;IAC/B,KAAK,EAAE,gBAAgB,EAAE,CAAM;IAE/B,aAAa,EAAG,MAAM,CAAC;IAEvB,kBAAkB,EAAG,MAAM,CAAC;IAC5B,qBAAqB,EAAG,MAAM,CAAC;WAElB,KAAK,CAAC,IAAI,GAAE,cAAmB;WAMrC,gBAAgB,CAAC,IAAI,GAAE,cAAmB;;;;;;IAS3C,KAAK,CAAC,IAAI,GAAE,cAAmB;IA6E/B,QAAQ;IAOR,gBAAgB;IAgBtB,sBAAsB,CAAC,IAAI,GAAE,OAAO,CAAC,eAAe,CAAM;IAK1D,mBAAmB,CACxB,WAAW,EAAE,KAAK,MAAM,EAAE,EAAE,EAC5B,IAAI,GAAE,OAAO,CAAC,eAAe,CAAC,GAAG;QAAE,iCAAiC,CAAC,EAAE,MAAM,CAAC;QAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAO;YAMtG,UAAU;IAiDxB,OAAO,CAAC,iBAAiB;IAKzB,0FAA0F;IAC7E,oBAAoB,CAAC,KAAK,EAAE,MAAM;IAO/C,sDAAsD;IACzC,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,SAAK;IAShE,iEAAiE;IACpD,4BAA4B,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,SAAK;IAUjE,kFAAkF;IACrE,wCAAwC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAUlF,mEAAmE;IACtD,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,UAAU;IAoB7F,sDAAsD;IACzC,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,KAAU;IAYhE,0GAA0G;IAC7F,cAAc;;;;IAc3B,0EAA0E;IAC7D,mBAAmB,CAAC,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,OAAO;IAW9E,oBAAoB,CACzB,UAAU,EAAE,eAAe,EAAE,EAC7B,WAAW,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAc;;;;CAiD/D"}
|
|
@@ -2,12 +2,13 @@ import { AztecNodeService } from '@aztec/aztec-node';
|
|
|
2
2
|
import { Fr, MerkleTreeId, getContractInstanceFromDeployParams, getTimestampRangeForEpoch, retryUntil, sleep } from '@aztec/aztec.js';
|
|
3
3
|
import { createExtendedL1Client } from '@aztec/ethereum';
|
|
4
4
|
import { RollupContract } from '@aztec/ethereum/contracts';
|
|
5
|
-
import { ChainMonitor, waitUntilL1Timestamp, withDelayer } from '@aztec/ethereum/test';
|
|
5
|
+
import { ChainMonitor, DelayedTxUtils, waitUntilL1Timestamp, withDelayer } from '@aztec/ethereum/test';
|
|
6
6
|
import { SecretValue } from '@aztec/foundation/config';
|
|
7
7
|
import { randomBytes } from '@aztec/foundation/crypto';
|
|
8
8
|
import { withLogNameSuffix } from '@aztec/foundation/log';
|
|
9
9
|
import { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
|
|
10
10
|
import { getMockPubSubP2PServiceFactory } from '@aztec/p2p/test-helpers';
|
|
11
|
+
import { SequencerState } from '@aztec/sequencer-client';
|
|
11
12
|
import { getProofSubmissionDeadlineTimestamp } from '@aztec/stdlib/epoch-helpers';
|
|
12
13
|
import { tryStop } from '@aztec/stdlib/interfaces/server';
|
|
13
14
|
import { join } from 'path';
|
|
@@ -172,6 +173,18 @@ export const ARCHIVER_POLL_INTERVAL = 50;
|
|
|
172
173
|
prefilledPublicData: this.context.prefilledPublicData,
|
|
173
174
|
...opts
|
|
174
175
|
}));
|
|
176
|
+
// REFACTOR: We're getting too much into the internals of the sequencer here.
|
|
177
|
+
// We should have a single method for constructing an aztec node that returns a TestAztecNodeService
|
|
178
|
+
// which directly exposes the delayer and sets any test config.
|
|
179
|
+
if (opts.txDelayerMaxInclusionTimeIntoSlot !== undefined) {
|
|
180
|
+
this.logger.info(`Setting tx delayer max inclusion time into slot to ${opts.txDelayerMaxInclusionTimeIntoSlot} seconds`);
|
|
181
|
+
const sequencer = node.getSequencer();
|
|
182
|
+
const publisher = sequencer.sequencer.publisher;
|
|
183
|
+
const dateProvider = this.context.dateProvider;
|
|
184
|
+
const delayed = DelayedTxUtils.fromL1TxUtils(publisher.l1TxUtils, dateProvider, this.L1_BLOCK_TIME_IN_S);
|
|
185
|
+
delayed.delayer.setMaxInclusionTimeIntoSlot(opts.txDelayerMaxInclusionTimeIntoSlot);
|
|
186
|
+
publisher.l1TxUtils = delayed;
|
|
187
|
+
}
|
|
175
188
|
this.nodes.push(node);
|
|
176
189
|
return node;
|
|
177
190
|
}
|
|
@@ -242,7 +255,7 @@ export const ARCHIVER_POLL_INTERVAL = 50;
|
|
|
242
255
|
/** Creates an L1 client using a fresh account with funds from anvil, with a tx delayer already set up. */ async createL1Client() {
|
|
243
256
|
const { client, delayer } = withDelayer(createExtendedL1Client([
|
|
244
257
|
...this.l1Client.chain.rpcUrls.default.http
|
|
245
|
-
], privateKeyToAccount(this.getNextPrivateKey()), this.l1Client.chain), {
|
|
258
|
+
], privateKeyToAccount(this.getNextPrivateKey()), this.l1Client.chain), this.context.dateProvider, {
|
|
246
259
|
ethereumSlotDuration: this.L1_BLOCK_TIME_IN_S
|
|
247
260
|
});
|
|
248
261
|
expect(await client.getBalance({
|
|
@@ -262,4 +275,47 @@ export const ARCHIVER_POLL_INTERVAL = 50;
|
|
|
262
275
|
]).then((_)=>true).catch((_)=>false);
|
|
263
276
|
expect(result).toBe(expectedSuccess);
|
|
264
277
|
}
|
|
278
|
+
watchSequencerEvents(sequencers, getMetadata = ()=>({})) {
|
|
279
|
+
const stateChanges = [];
|
|
280
|
+
const failEvents = [];
|
|
281
|
+
// Note we do not include the 'tx-count-check-failed' event here, since it is fine if we dont build
|
|
282
|
+
// due to lack of txs available.
|
|
283
|
+
const failEventsKeys = [
|
|
284
|
+
'block-build-failed',
|
|
285
|
+
'block-publish-failed',
|
|
286
|
+
'proposer-rollup-check-failed'
|
|
287
|
+
];
|
|
288
|
+
const makeEvent = (i, eventName, args)=>({
|
|
289
|
+
...args,
|
|
290
|
+
type: eventName,
|
|
291
|
+
sequencerIndex: i + 2,
|
|
292
|
+
...getMetadata(i)
|
|
293
|
+
});
|
|
294
|
+
sequencers.forEach((sequencer, i)=>{
|
|
295
|
+
const sequencerIndex = i + 2;
|
|
296
|
+
sequencer.getSequencer().on('state-changed', (args)=>{
|
|
297
|
+
const noisyStates = [
|
|
298
|
+
SequencerState.IDLE,
|
|
299
|
+
SequencerState.PROPOSER_CHECK,
|
|
300
|
+
SequencerState.SYNCHRONIZING
|
|
301
|
+
];
|
|
302
|
+
if (!noisyStates.includes(args.newState)) {
|
|
303
|
+
const evt = makeEvent(i, 'state-changed', args);
|
|
304
|
+
stateChanges.push(evt);
|
|
305
|
+
this.logger.verbose(`Sequencer ${sequencerIndex} transitioned from state ${args.oldState} to state ${args.newState}`, evt);
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
failEventsKeys.forEach((eventName)=>{
|
|
309
|
+
sequencer.getSequencer().on(eventName, (args)=>{
|
|
310
|
+
const evt = makeEvent(i, eventName, args);
|
|
311
|
+
failEvents.push(evt);
|
|
312
|
+
this.logger.error(`Failed event ${eventName} from sequencer ${sequencerIndex}`, evt);
|
|
313
|
+
});
|
|
314
|
+
});
|
|
315
|
+
});
|
|
316
|
+
return {
|
|
317
|
+
failEvents,
|
|
318
|
+
stateChanges
|
|
319
|
+
};
|
|
320
|
+
}
|
|
265
321
|
}
|
|
@@ -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
|
@@ -373,7 +373,7 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
|
|
|
373
373
|
const sequencerClient = aztecNode.getSequencer();
|
|
374
374
|
if (sequencerClient) {
|
|
375
375
|
const publisher = sequencerClient.sequencer.publisher;
|
|
376
|
-
publisher.l1TxUtils = DelayedTxUtils.fromL1TxUtils(publisher.l1TxUtils, config.ethereumSlotDuration);
|
|
376
|
+
publisher.l1TxUtils = DelayedTxUtils.fromL1TxUtils(publisher.l1TxUtils, dateProvider, config.ethereumSlotDuration);
|
|
377
377
|
}
|
|
378
378
|
let proverNode = undefined;
|
|
379
379
|
if (opts.startProverNode) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/end-to-end",
|
|
3
|
-
"version": "1.0.0-nightly.
|
|
3
|
+
"version": "1.0.0-nightly.20250706",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"inherits": [
|
|
@@ -25,40 +25,40 @@
|
|
|
25
25
|
"formatting": "run -T prettier --check ./src && run -T eslint ./src"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@aztec/accounts": "1.0.0-nightly.
|
|
29
|
-
"@aztec/archiver": "1.0.0-nightly.
|
|
30
|
-
"@aztec/aztec": "1.0.0-nightly.
|
|
31
|
-
"@aztec/aztec-node": "1.0.0-nightly.
|
|
32
|
-
"@aztec/aztec.js": "1.0.0-nightly.
|
|
33
|
-
"@aztec/bb-prover": "1.0.0-nightly.
|
|
34
|
-
"@aztec/blob-lib": "1.0.0-nightly.
|
|
35
|
-
"@aztec/blob-sink": "1.0.0-nightly.
|
|
36
|
-
"@aztec/bot": "1.0.0-nightly.
|
|
37
|
-
"@aztec/cli": "1.0.0-nightly.
|
|
38
|
-
"@aztec/constants": "1.0.0-nightly.
|
|
39
|
-
"@aztec/entrypoints": "1.0.0-nightly.
|
|
40
|
-
"@aztec/epoch-cache": "1.0.0-nightly.
|
|
41
|
-
"@aztec/ethereum": "1.0.0-nightly.
|
|
42
|
-
"@aztec/foundation": "1.0.0-nightly.
|
|
43
|
-
"@aztec/kv-store": "1.0.0-nightly.
|
|
44
|
-
"@aztec/l1-artifacts": "1.0.0-nightly.
|
|
45
|
-
"@aztec/merkle-tree": "1.0.0-nightly.
|
|
46
|
-
"@aztec/noir-contracts.js": "1.0.0-nightly.
|
|
47
|
-
"@aztec/noir-noirc_abi": "1.0.0-nightly.
|
|
48
|
-
"@aztec/noir-protocol-circuits-types": "1.0.0-nightly.
|
|
49
|
-
"@aztec/noir-test-contracts.js": "1.0.0-nightly.
|
|
50
|
-
"@aztec/p2p": "1.0.0-nightly.
|
|
51
|
-
"@aztec/protocol-contracts": "1.0.0-nightly.
|
|
52
|
-
"@aztec/prover-client": "1.0.0-nightly.
|
|
53
|
-
"@aztec/prover-node": "1.0.0-nightly.
|
|
54
|
-
"@aztec/pxe": "1.0.0-nightly.
|
|
55
|
-
"@aztec/sequencer-client": "1.0.0-nightly.
|
|
56
|
-
"@aztec/simulator": "1.0.0-nightly.
|
|
57
|
-
"@aztec/slasher": "1.0.0-nightly.
|
|
58
|
-
"@aztec/stdlib": "1.0.0-nightly.
|
|
59
|
-
"@aztec/telemetry-client": "1.0.0-nightly.
|
|
60
|
-
"@aztec/validator-client": "1.0.0-nightly.
|
|
61
|
-
"@aztec/world-state": "1.0.0-nightly.
|
|
28
|
+
"@aztec/accounts": "1.0.0-nightly.20250706",
|
|
29
|
+
"@aztec/archiver": "1.0.0-nightly.20250706",
|
|
30
|
+
"@aztec/aztec": "1.0.0-nightly.20250706",
|
|
31
|
+
"@aztec/aztec-node": "1.0.0-nightly.20250706",
|
|
32
|
+
"@aztec/aztec.js": "1.0.0-nightly.20250706",
|
|
33
|
+
"@aztec/bb-prover": "1.0.0-nightly.20250706",
|
|
34
|
+
"@aztec/blob-lib": "1.0.0-nightly.20250706",
|
|
35
|
+
"@aztec/blob-sink": "1.0.0-nightly.20250706",
|
|
36
|
+
"@aztec/bot": "1.0.0-nightly.20250706",
|
|
37
|
+
"@aztec/cli": "1.0.0-nightly.20250706",
|
|
38
|
+
"@aztec/constants": "1.0.0-nightly.20250706",
|
|
39
|
+
"@aztec/entrypoints": "1.0.0-nightly.20250706",
|
|
40
|
+
"@aztec/epoch-cache": "1.0.0-nightly.20250706",
|
|
41
|
+
"@aztec/ethereum": "1.0.0-nightly.20250706",
|
|
42
|
+
"@aztec/foundation": "1.0.0-nightly.20250706",
|
|
43
|
+
"@aztec/kv-store": "1.0.0-nightly.20250706",
|
|
44
|
+
"@aztec/l1-artifacts": "1.0.0-nightly.20250706",
|
|
45
|
+
"@aztec/merkle-tree": "1.0.0-nightly.20250706",
|
|
46
|
+
"@aztec/noir-contracts.js": "1.0.0-nightly.20250706",
|
|
47
|
+
"@aztec/noir-noirc_abi": "1.0.0-nightly.20250706",
|
|
48
|
+
"@aztec/noir-protocol-circuits-types": "1.0.0-nightly.20250706",
|
|
49
|
+
"@aztec/noir-test-contracts.js": "1.0.0-nightly.20250706",
|
|
50
|
+
"@aztec/p2p": "1.0.0-nightly.20250706",
|
|
51
|
+
"@aztec/protocol-contracts": "1.0.0-nightly.20250706",
|
|
52
|
+
"@aztec/prover-client": "1.0.0-nightly.20250706",
|
|
53
|
+
"@aztec/prover-node": "1.0.0-nightly.20250706",
|
|
54
|
+
"@aztec/pxe": "1.0.0-nightly.20250706",
|
|
55
|
+
"@aztec/sequencer-client": "1.0.0-nightly.20250706",
|
|
56
|
+
"@aztec/simulator": "1.0.0-nightly.20250706",
|
|
57
|
+
"@aztec/slasher": "1.0.0-nightly.20250706",
|
|
58
|
+
"@aztec/stdlib": "1.0.0-nightly.20250706",
|
|
59
|
+
"@aztec/telemetry-client": "1.0.0-nightly.20250706",
|
|
60
|
+
"@aztec/validator-client": "1.0.0-nightly.20250706",
|
|
61
|
+
"@aztec/world-state": "1.0.0-nightly.20250706",
|
|
62
62
|
"@iarna/toml": "^2.2.5",
|
|
63
63
|
"@jest/globals": "^30.0.0",
|
|
64
64
|
"@noble/curves": "^1.0.0",
|
|
@@ -19,9 +19,14 @@ import { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
|
|
|
19
19
|
import { getMockPubSubP2PServiceFactory } from '@aztec/p2p/test-helpers';
|
|
20
20
|
import { ProverNode, ProverNodePublisher } from '@aztec/prover-node';
|
|
21
21
|
import type { TestProverNode } from '@aztec/prover-node/test';
|
|
22
|
-
import
|
|
22
|
+
import {
|
|
23
|
+
type SequencerClient,
|
|
24
|
+
type SequencerEvents,
|
|
25
|
+
type SequencerPublisher,
|
|
26
|
+
SequencerState,
|
|
27
|
+
} from '@aztec/sequencer-client';
|
|
23
28
|
import type { TestSequencerClient } from '@aztec/sequencer-client/test';
|
|
24
|
-
import type { L2BlockNumber } from '@aztec/stdlib/block';
|
|
29
|
+
import type { EthAddress, L2BlockNumber } from '@aztec/stdlib/block';
|
|
25
30
|
import { type L1RollupConstants, getProofSubmissionDeadlineTimestamp } from '@aztec/stdlib/epoch-helpers';
|
|
26
31
|
import { tryStop } from '@aztec/stdlib/interfaces/server';
|
|
27
32
|
|
|
@@ -41,24 +46,15 @@ export const WORLD_STATE_BLOCK_HISTORY = 2;
|
|
|
41
46
|
export const WORLD_STATE_BLOCK_CHECK_INTERVAL = 50;
|
|
42
47
|
export const ARCHIVER_POLL_INTERVAL = 50;
|
|
43
48
|
|
|
44
|
-
export type EpochsTestOpts = Partial<
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
| 'proverNodeConfig'
|
|
54
|
-
| 'ethereumSlotDuration'
|
|
55
|
-
| 'aztecSlotDuration'
|
|
56
|
-
| 'initialValidators'
|
|
57
|
-
| 'mockGossipSubNetwork'
|
|
58
|
-
| 'disableAnvilTestWatcher'
|
|
59
|
-
| 'enforceTimeTable'
|
|
60
|
-
>
|
|
61
|
-
> & { numberOfAccounts?: number };
|
|
49
|
+
export type EpochsTestOpts = Partial<SetupOptions> & { numberOfAccounts?: number };
|
|
50
|
+
|
|
51
|
+
export type TrackedSequencerEvent = {
|
|
52
|
+
[K in keyof SequencerEvents]: Parameters<SequencerEvents[K]>[0] & {
|
|
53
|
+
type: K;
|
|
54
|
+
sequencerIndex: number;
|
|
55
|
+
validator: EthAddress;
|
|
56
|
+
};
|
|
57
|
+
}[keyof SequencerEvents];
|
|
62
58
|
|
|
63
59
|
/**
|
|
64
60
|
* Tests building of epochs using fast block times and short epochs.
|
|
@@ -205,13 +201,15 @@ export class EpochsTestContext {
|
|
|
205
201
|
|
|
206
202
|
public createValidatorNode(
|
|
207
203
|
privateKeys: `0x${string}`[],
|
|
208
|
-
opts: Partial<AztecNodeConfig> & { dontStartSequencer?: boolean } = {},
|
|
204
|
+
opts: Partial<AztecNodeConfig> & { txDelayerMaxInclusionTimeIntoSlot?: number; dontStartSequencer?: boolean } = {},
|
|
209
205
|
) {
|
|
210
206
|
this.logger.warn('Creating and syncing a validator node...');
|
|
211
207
|
return this.createNode({ ...opts, disableValidator: false, validatorPrivateKeys: new SecretValue(privateKeys) });
|
|
212
208
|
}
|
|
213
209
|
|
|
214
|
-
private async createNode(
|
|
210
|
+
private async createNode(
|
|
211
|
+
opts: Partial<AztecNodeConfig> & { txDelayerMaxInclusionTimeIntoSlot?: number; dontStartSequencer?: boolean } = {},
|
|
212
|
+
) {
|
|
215
213
|
const suffix = (this.nodes.length + 1).toString();
|
|
216
214
|
const { mockGossipSubNetwork } = this.context;
|
|
217
215
|
const resolvedConfig = { ...this.context.config, ...opts };
|
|
@@ -238,6 +236,22 @@ export class EpochsTestContext {
|
|
|
238
236
|
},
|
|
239
237
|
),
|
|
240
238
|
);
|
|
239
|
+
|
|
240
|
+
// REFACTOR: We're getting too much into the internals of the sequencer here.
|
|
241
|
+
// We should have a single method for constructing an aztec node that returns a TestAztecNodeService
|
|
242
|
+
// which directly exposes the delayer and sets any test config.
|
|
243
|
+
if (opts.txDelayerMaxInclusionTimeIntoSlot !== undefined) {
|
|
244
|
+
this.logger.info(
|
|
245
|
+
`Setting tx delayer max inclusion time into slot to ${opts.txDelayerMaxInclusionTimeIntoSlot} seconds`,
|
|
246
|
+
);
|
|
247
|
+
const sequencer = node.getSequencer() as TestSequencerClient;
|
|
248
|
+
const publisher = sequencer.sequencer.publisher;
|
|
249
|
+
const dateProvider = this.context.dateProvider!;
|
|
250
|
+
const delayed = DelayedTxUtils.fromL1TxUtils(publisher.l1TxUtils, dateProvider, this.L1_BLOCK_TIME_IN_S);
|
|
251
|
+
delayed.delayer!.setMaxInclusionTimeIntoSlot(opts.txDelayerMaxInclusionTimeIntoSlot);
|
|
252
|
+
publisher.l1TxUtils = delayed;
|
|
253
|
+
}
|
|
254
|
+
|
|
241
255
|
this.nodes.push(node);
|
|
242
256
|
return node;
|
|
243
257
|
}
|
|
@@ -329,6 +343,7 @@ export class EpochsTestContext {
|
|
|
329
343
|
privateKeyToAccount(this.getNextPrivateKey()),
|
|
330
344
|
this.l1Client.chain,
|
|
331
345
|
),
|
|
346
|
+
this.context.dateProvider!,
|
|
332
347
|
{ ethereumSlotDuration: this.L1_BLOCK_TIME_IN_S },
|
|
333
348
|
);
|
|
334
349
|
expect(await client.getBalance({ address: client.account.address })).toBeGreaterThan(0n);
|
|
@@ -346,4 +361,56 @@ export class EpochsTestContext {
|
|
|
346
361
|
.catch(_ => false);
|
|
347
362
|
expect(result).toBe(expectedSuccess);
|
|
348
363
|
}
|
|
364
|
+
|
|
365
|
+
public watchSequencerEvents(
|
|
366
|
+
sequencers: SequencerClient[],
|
|
367
|
+
getMetadata: (i: number) => Record<string, any> = () => ({}),
|
|
368
|
+
) {
|
|
369
|
+
const stateChanges: TrackedSequencerEvent[] = [];
|
|
370
|
+
const failEvents: TrackedSequencerEvent[] = [];
|
|
371
|
+
|
|
372
|
+
// Note we do not include the 'tx-count-check-failed' event here, since it is fine if we dont build
|
|
373
|
+
// due to lack of txs available.
|
|
374
|
+
const failEventsKeys: (keyof SequencerEvents)[] = [
|
|
375
|
+
'block-build-failed',
|
|
376
|
+
'block-publish-failed',
|
|
377
|
+
'proposer-rollup-check-failed',
|
|
378
|
+
];
|
|
379
|
+
|
|
380
|
+
const makeEvent = (
|
|
381
|
+
i: number,
|
|
382
|
+
eventName: keyof SequencerEvents,
|
|
383
|
+
args: Parameters<SequencerEvents[keyof SequencerEvents]>[0],
|
|
384
|
+
) =>
|
|
385
|
+
({
|
|
386
|
+
...args,
|
|
387
|
+
type: eventName,
|
|
388
|
+
sequencerIndex: i + 2,
|
|
389
|
+
...getMetadata(i),
|
|
390
|
+
}) as TrackedSequencerEvent;
|
|
391
|
+
|
|
392
|
+
sequencers.forEach((sequencer, i) => {
|
|
393
|
+
const sequencerIndex = i + 2;
|
|
394
|
+
sequencer.getSequencer().on('state-changed', (args: Parameters<SequencerEvents['state-changed']>[0]) => {
|
|
395
|
+
const noisyStates = [SequencerState.IDLE, SequencerState.PROPOSER_CHECK, SequencerState.SYNCHRONIZING];
|
|
396
|
+
if (!noisyStates.includes(args.newState)) {
|
|
397
|
+
const evt = makeEvent(i, 'state-changed', args);
|
|
398
|
+
stateChanges.push(evt);
|
|
399
|
+
this.logger.verbose(
|
|
400
|
+
`Sequencer ${sequencerIndex} transitioned from state ${args.oldState} to state ${args.newState}`,
|
|
401
|
+
evt,
|
|
402
|
+
);
|
|
403
|
+
}
|
|
404
|
+
});
|
|
405
|
+
failEventsKeys.forEach(eventName => {
|
|
406
|
+
sequencer.getSequencer().on(eventName, (args: Parameters<SequencerEvents[typeof eventName]>[0]) => {
|
|
407
|
+
const evt = makeEvent(i, eventName, args);
|
|
408
|
+
failEvents.push(evt);
|
|
409
|
+
this.logger.error(`Failed event ${eventName} from sequencer ${sequencerIndex}`, evt);
|
|
410
|
+
});
|
|
411
|
+
});
|
|
412
|
+
});
|
|
413
|
+
|
|
414
|
+
return { failEvents, stateChanges };
|
|
415
|
+
}
|
|
349
416
|
}
|
package/src/fixtures/utils.ts
CHANGED
|
@@ -593,7 +593,11 @@ export async function setup(
|
|
|
593
593
|
|
|
594
594
|
if (sequencerClient) {
|
|
595
595
|
const publisher = (sequencerClient as TestSequencerClient).sequencer.publisher;
|
|
596
|
-
publisher.l1TxUtils = DelayedTxUtils.fromL1TxUtils(
|
|
596
|
+
publisher.l1TxUtils = DelayedTxUtils.fromL1TxUtils(
|
|
597
|
+
publisher.l1TxUtils,
|
|
598
|
+
dateProvider,
|
|
599
|
+
config.ethereumSlotDuration,
|
|
600
|
+
);
|
|
597
601
|
}
|
|
598
602
|
|
|
599
603
|
let proverNode: ProverNode | undefined = undefined;
|