@aztec/sequencer-client 0.0.1-commit.04852196a → 0.0.1-commit.04d373f
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/README.md +282 -21
- package/dest/client/sequencer-client.d.ts +8 -14
- package/dest/client/sequencer-client.d.ts.map +1 -1
- package/dest/client/sequencer-client.js +35 -84
- package/dest/config.d.ts +7 -3
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +43 -15
- package/dest/global_variable_builder/fee_predictor.d.ts +37 -0
- package/dest/global_variable_builder/fee_predictor.d.ts.map +1 -0
- package/dest/global_variable_builder/fee_predictor.js +128 -0
- package/dest/global_variable_builder/fee_provider.d.ts +21 -0
- package/dest/global_variable_builder/fee_provider.d.ts.map +1 -0
- package/dest/global_variable_builder/fee_provider.js +58 -0
- package/dest/global_variable_builder/global_builder.d.ts +14 -14
- package/dest/global_variable_builder/global_builder.d.ts.map +1 -1
- package/dest/global_variable_builder/global_builder.js +16 -50
- package/dest/global_variable_builder/index.d.ts +4 -2
- package/dest/global_variable_builder/index.d.ts.map +1 -1
- package/dest/global_variable_builder/index.js +2 -0
- package/dest/index.d.ts +2 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -1
- package/dest/publisher/config.d.ts +15 -3
- package/dest/publisher/config.d.ts.map +1 -1
- package/dest/publisher/config.js +19 -4
- package/dest/publisher/l1_tx_failed_store/failed_tx_store.d.ts +3 -4
- package/dest/publisher/l1_tx_failed_store/failed_tx_store.d.ts.map +1 -1
- package/dest/publisher/sequencer-bundle-simulator.d.ts +96 -0
- package/dest/publisher/sequencer-bundle-simulator.d.ts.map +1 -0
- package/dest/publisher/sequencer-bundle-simulator.js +198 -0
- package/dest/publisher/sequencer-publisher-factory.d.ts +3 -5
- package/dest/publisher/sequencer-publisher-factory.d.ts.map +1 -1
- package/dest/publisher/sequencer-publisher-factory.js +2 -3
- package/dest/publisher/sequencer-publisher.d.ts +73 -65
- package/dest/publisher/sequencer-publisher.d.ts.map +1 -1
- package/dest/publisher/sequencer-publisher.js +316 -523
- package/dest/sequencer/automine/automine_factory.d.ts +54 -0
- package/dest/sequencer/automine/automine_factory.d.ts.map +1 -0
- package/dest/sequencer/automine/automine_factory.js +84 -0
- package/dest/sequencer/automine/automine_sequencer.d.ts +151 -0
- package/dest/sequencer/automine/automine_sequencer.d.ts.map +1 -0
- package/dest/sequencer/automine/automine_sequencer.js +506 -0
- package/dest/sequencer/chain_state_overrides.d.ts +61 -0
- package/dest/sequencer/chain_state_overrides.d.ts.map +1 -0
- package/dest/sequencer/chain_state_overrides.js +98 -0
- package/dest/sequencer/checkpoint_proposal_job.d.ts +54 -9
- package/dest/sequencer/checkpoint_proposal_job.d.ts.map +1 -1
- package/dest/sequencer/checkpoint_proposal_job.js +723 -199
- package/dest/sequencer/checkpoint_proposal_job_metrics.d.ts +34 -0
- package/dest/sequencer/checkpoint_proposal_job_metrics.d.ts.map +1 -0
- package/dest/sequencer/checkpoint_proposal_job_metrics.js +72 -0
- package/dest/sequencer/checkpoint_voter.d.ts +1 -2
- package/dest/sequencer/checkpoint_voter.d.ts.map +1 -1
- package/dest/sequencer/checkpoint_voter.js +2 -5
- package/dest/sequencer/events.d.ts +47 -2
- package/dest/sequencer/events.d.ts.map +1 -1
- package/dest/sequencer/index.d.ts +3 -1
- package/dest/sequencer/index.d.ts.map +1 -1
- package/dest/sequencer/index.js +2 -0
- package/dest/sequencer/metrics.d.ts +13 -10
- package/dest/sequencer/metrics.d.ts.map +1 -1
- package/dest/sequencer/metrics.js +45 -20
- package/dest/sequencer/sequencer.d.ts +53 -13
- package/dest/sequencer/sequencer.d.ts.map +1 -1
- package/dest/sequencer/sequencer.js +332 -118
- package/dest/sequencer/timetable.d.ts +14 -1
- package/dest/sequencer/timetable.d.ts.map +1 -1
- package/dest/sequencer/timetable.js +45 -36
- package/dest/sequencer/types.d.ts +2 -5
- package/dest/sequencer/types.d.ts.map +1 -1
- package/dest/test/mock_checkpoint_builder.d.ts +4 -4
- package/dest/test/mock_checkpoint_builder.d.ts.map +1 -1
- package/dest/test/utils.d.ts +1 -1
- package/dest/test/utils.d.ts.map +1 -1
- package/dest/test/utils.js +7 -6
- package/package.json +27 -28
- package/src/client/sequencer-client.ts +54 -114
- package/src/config.ts +52 -12
- package/src/global_variable_builder/README.md +44 -0
- package/src/global_variable_builder/fee_predictor.ts +172 -0
- package/src/global_variable_builder/fee_provider.ts +75 -0
- package/src/global_variable_builder/global_builder.ts +25 -62
- package/src/global_variable_builder/index.ts +3 -1
- package/src/index.ts +10 -1
- package/src/publisher/config.ts +40 -6
- package/src/publisher/l1_tx_failed_store/failed_tx_store.ts +3 -1
- package/src/publisher/sequencer-bundle-simulator.ts +254 -0
- package/src/publisher/sequencer-publisher-factory.ts +3 -6
- package/src/publisher/sequencer-publisher.ts +375 -568
- package/src/sequencer/README.md +152 -450
- package/src/sequencer/automine/README.md +46 -0
- package/src/sequencer/automine/automine_factory.ts +145 -0
- package/src/sequencer/automine/automine_sequencer.ts +592 -0
- package/src/sequencer/chain_state_overrides.ts +162 -0
- package/src/sequencer/checkpoint_proposal_job.ts +871 -220
- package/src/sequencer/checkpoint_proposal_job_metrics.ts +128 -0
- package/src/sequencer/checkpoint_voter.ts +1 -12
- package/src/sequencer/events.ts +50 -2
- package/src/sequencer/index.ts +2 -0
- package/src/sequencer/metrics.ts +57 -24
- package/src/sequencer/sequencer.ts +413 -131
- package/src/sequencer/timetable.ts +57 -45
- package/src/sequencer/types.ts +2 -5
- package/src/test/mock_checkpoint_builder.ts +3 -3
- package/src/test/utils.ts +28 -10
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { Archiver } from '@aztec/archiver';
|
|
2
|
+
import type { BlobClientInterface } from '@aztec/blob-client/client';
|
|
3
|
+
import type { EpochCache } from '@aztec/epoch-cache';
|
|
4
|
+
import { type RollupContract } from '@aztec/ethereum/contracts';
|
|
5
|
+
import type { L1TxUtils } from '@aztec/ethereum/l1-tx-utils';
|
|
6
|
+
import type { ViemPublicClient } from '@aztec/ethereum/types';
|
|
7
|
+
import type { Logger } from '@aztec/foundation/log';
|
|
8
|
+
import type { DateProvider } from '@aztec/foundation/timer';
|
|
9
|
+
import type { KeystoreManager } from '@aztec/node-keystore';
|
|
10
|
+
import type { P2PClient as ConcreteP2PClient, P2P } from '@aztec/p2p';
|
|
11
|
+
import type { L2BlockSource } from '@aztec/stdlib/block';
|
|
12
|
+
import type { ChainConfig } from '@aztec/stdlib/config';
|
|
13
|
+
import type { WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
|
|
14
|
+
import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
15
|
+
import type { TelemetryClient } from '@aztec/telemetry-client';
|
|
16
|
+
import { type FullNodeCheckpointsBuilder, type ValidatorClient } from '@aztec/validator-client';
|
|
17
|
+
import { type SequencerClientConfig } from '../../config.js';
|
|
18
|
+
import type { GlobalVariableBuilder } from '../../global_variable_builder/global_builder.js';
|
|
19
|
+
import { AutomineSequencer } from './automine_sequencer.js';
|
|
20
|
+
/** Arguments for {@link createAutomineSequencer}. */
|
|
21
|
+
export type CreateAutomineSequencerArgs = {
|
|
22
|
+
config: SequencerClientConfig & Pick<ChainConfig, 'l1ChainId' | 'rollupAddress'>;
|
|
23
|
+
l1TxUtils: L1TxUtils[];
|
|
24
|
+
funderL1TxUtils: L1TxUtils | undefined;
|
|
25
|
+
publicClient: ViemPublicClient;
|
|
26
|
+
rollupContract: RollupContract;
|
|
27
|
+
epochCache: EpochCache;
|
|
28
|
+
blobClient: BlobClientInterface | undefined;
|
|
29
|
+
telemetry: TelemetryClient;
|
|
30
|
+
dateProvider: DateProvider;
|
|
31
|
+
keyStoreManager: KeystoreManager;
|
|
32
|
+
validatorClient: ValidatorClient;
|
|
33
|
+
checkpointsBuilder: FullNodeCheckpointsBuilder;
|
|
34
|
+
globalVariableBuilder: GlobalVariableBuilder;
|
|
35
|
+
worldStateSynchronizer: WorldStateSynchronizer;
|
|
36
|
+
archiver: L2BlockSource & L1ToL2MessageSource & Pick<Archiver, 'rollbackTo' | 'addBlock' | 'addProposedCheckpoint' | 'syncImmediate'>;
|
|
37
|
+
p2pClient: P2P & Pick<ConcreteP2PClient, 'sync'>;
|
|
38
|
+
l1Constants: {
|
|
39
|
+
l1GenesisTime: bigint;
|
|
40
|
+
slotDuration: number;
|
|
41
|
+
ethereumSlotDuration: number;
|
|
42
|
+
rollupManaLimit: number;
|
|
43
|
+
};
|
|
44
|
+
log: Logger;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Builds an {@link AutomineSequencer} for use in single-sequencer e2e tests.
|
|
48
|
+
*
|
|
49
|
+
* Constructs the PublisherManager, GovernanceProposerContract, SequencerPublisherFactory,
|
|
50
|
+
* looks up the attestor/coinbase/feeRecipient from the keystore, wires EthCheatCodes,
|
|
51
|
+
* and starts the publisher manager before returning.
|
|
52
|
+
*/
|
|
53
|
+
export declare function createAutomineSequencer({ config, l1TxUtils, funderL1TxUtils, publicClient, rollupContract, epochCache, blobClient, telemetry, dateProvider, keyStoreManager, validatorClient, checkpointsBuilder, globalVariableBuilder, worldStateSynchronizer, archiver, p2pClient, l1Constants, log }: CreateAutomineSequencerArgs): Promise<AutomineSequencer>;
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b21pbmVfZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcXVlbmNlci9hdXRvbWluZS9hdXRvbWluZV9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUE4QixLQUFLLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVGLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRzdELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEVBQUUsU0FBUyxJQUFJLGlCQUFpQixFQUFFLEdBQUcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0RSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlFLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLEtBQUssMEJBQTBCLEVBQXVCLEtBQUssZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFckgsT0FBTyxFQUFFLEtBQUsscUJBQXFCLEVBQXlDLE1BQU0saUJBQWlCLENBQUM7QUFDcEcsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUU3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxxREFBcUQ7QUFDckQsTUFBTSxNQUFNLDJCQUEyQixHQUFHO0lBQ3hDLE1BQU0sRUFBRSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVcsR0FBRyxlQUFlLENBQUMsQ0FBQztJQUNqRixTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDdkIsZUFBZSxFQUFFLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDdkMsWUFBWSxFQUFFLGdCQUFnQixDQUFDO0lBQy9CLGNBQWMsRUFBRSxjQUFjLENBQUM7SUFDL0IsVUFBVSxFQUFFLFVBQVUsQ0FBQztJQUN2QixVQUFVLEVBQUUsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO0lBQzVDLFNBQVMsRUFBRSxlQUFlLENBQUM7SUFDM0IsWUFBWSxFQUFFLFlBQVksQ0FBQztJQUMzQixlQUFlLEVBQUUsZUFBZSxDQUFDO0lBQ2pDLGVBQWUsRUFBRSxlQUFlLENBQUM7SUFDakMsa0JBQWtCLEVBQUUsMEJBQTBCLENBQUM7SUFDL0MscUJBQXFCLEVBQUUscUJBQXFCLENBQUM7SUFDN0Msc0JBQXNCLEVBQUUsc0JBQXNCLENBQUM7SUFDL0MsUUFBUSxFQUFFLGFBQWEsR0FDckIsbUJBQW1CLEdBQ25CLElBQUksQ0FBQyxRQUFRLEVBQUUsWUFBWSxHQUFHLFVBQVUsR0FBRyx1QkFBdUIsR0FBRyxlQUFlLENBQUMsQ0FBQztJQUN4RixTQUFTLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRCxXQUFXLEVBQUU7UUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDO1FBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQztRQUFDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQztRQUFDLGVBQWUsRUFBRSxNQUFNLENBQUE7S0FBRSxDQUFDO0lBQ3BILEdBQUcsRUFBRSxNQUFNLENBQUM7Q0FDYixDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsd0JBQXNCLHVCQUF1QixDQUFDLEVBQzVDLE1BQU0sRUFDTixTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWixjQUFjLEVBQ2QsVUFBVSxFQUNWLFVBQVUsRUFDVixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsUUFBUSxFQUNSLFNBQVMsRUFDVCxXQUFXLEVBQ1gsR0FBRyxFQUNKLEVBQUUsMkJBQTJCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBc0UxRCJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automine_factory.d.ts","sourceRoot":"","sources":["../../../src/sequencer/automine/automine_factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { GovernanceProposerContract } from '@aztec/ethereum/contracts';
|
|
2
|
+
import { PublisherManager } from '@aztec/ethereum/publisher-manager';
|
|
3
|
+
import { EthCheatCodes } from '@aztec/ethereum/test';
|
|
4
|
+
import { NodeKeystoreAdapter } from '@aztec/validator-client';
|
|
5
|
+
import { getPublisherConfigFromSequencerConfig } from '../../config.js';
|
|
6
|
+
import { SequencerPublisherFactory } from '../../publisher/sequencer-publisher-factory.js';
|
|
7
|
+
import { AutomineSequencer } from './automine_sequencer.js';
|
|
8
|
+
/**
|
|
9
|
+
* Builds an {@link AutomineSequencer} for use in single-sequencer e2e tests.
|
|
10
|
+
*
|
|
11
|
+
* Constructs the PublisherManager, GovernanceProposerContract, SequencerPublisherFactory,
|
|
12
|
+
* looks up the attestor/coinbase/feeRecipient from the keystore, wires EthCheatCodes,
|
|
13
|
+
* and starts the publisher manager before returning.
|
|
14
|
+
*/ export async function createAutomineSequencer({ config, l1TxUtils, funderL1TxUtils, publicClient, rollupContract, epochCache, blobClient, telemetry, dateProvider, keyStoreManager, validatorClient, checkpointsBuilder, globalVariableBuilder, worldStateSynchronizer, archiver, p2pClient, l1Constants, log }) {
|
|
15
|
+
const publisherManager = new PublisherManager(l1TxUtils, getPublisherConfigFromSequencerConfig(config), {
|
|
16
|
+
bindings: log.getBindings(),
|
|
17
|
+
funder: funderL1TxUtils
|
|
18
|
+
});
|
|
19
|
+
const governanceProposerContract = new GovernanceProposerContract(publicClient, config.governanceProposerAddress.toString());
|
|
20
|
+
const publisherFactory = new SequencerPublisherFactory(config, {
|
|
21
|
+
telemetry,
|
|
22
|
+
blobClient: blobClient,
|
|
23
|
+
epochCache,
|
|
24
|
+
governanceProposerContract,
|
|
25
|
+
rollupContract,
|
|
26
|
+
dateProvider,
|
|
27
|
+
publisherManager,
|
|
28
|
+
nodeKeyStore: NodeKeystoreAdapter.fromKeyStoreManager(keyStoreManager),
|
|
29
|
+
logger: log
|
|
30
|
+
});
|
|
31
|
+
const attestorAddresses = NodeKeystoreAdapter.fromKeyStoreManager(keyStoreManager).getAttesterAddresses();
|
|
32
|
+
const attestor = attestorAddresses[0];
|
|
33
|
+
if (!attestor) {
|
|
34
|
+
throw new Error('AutomineSequencer requires at least one attestor address in the keystore');
|
|
35
|
+
}
|
|
36
|
+
const coinbase = validatorClient.getCoinbaseForAttestor(attestor);
|
|
37
|
+
const feeRecipient = validatorClient.getFeeRecipientForAttestor(attestor);
|
|
38
|
+
const ethCheatCodes = new EthCheatCodes(config.l1RpcUrls, dateProvider, log.createChild('eth-cheat-codes'));
|
|
39
|
+
// Include the funder's L1TxUtils in the reorg reset list so funding-tx nonces don't
|
|
40
|
+
// go stale after L1 rollbacks. Dedupe by sender address in case the funder reuses a
|
|
41
|
+
// publisher's signer.
|
|
42
|
+
const reorgResetL1TxUtils = (()=>{
|
|
43
|
+
if (!funderL1TxUtils) {
|
|
44
|
+
return l1TxUtils;
|
|
45
|
+
}
|
|
46
|
+
const funderAddress = funderL1TxUtils.getSenderAddress().toString();
|
|
47
|
+
const alreadyIncluded = l1TxUtils.some((utils)=>utils.getSenderAddress().toString() === funderAddress);
|
|
48
|
+
return alreadyIncluded ? l1TxUtils : [
|
|
49
|
+
...l1TxUtils,
|
|
50
|
+
funderL1TxUtils
|
|
51
|
+
];
|
|
52
|
+
})();
|
|
53
|
+
const automineSequencer = new AutomineSequencer({
|
|
54
|
+
publisherFactory,
|
|
55
|
+
checkpointsBuilder,
|
|
56
|
+
globalsBuilder: globalVariableBuilder,
|
|
57
|
+
worldState: worldStateSynchronizer,
|
|
58
|
+
l2BlockSource: archiver,
|
|
59
|
+
l1ToL2MessageSource: archiver,
|
|
60
|
+
p2pClient,
|
|
61
|
+
ethCheatCodes,
|
|
62
|
+
dateProvider: dateProvider,
|
|
63
|
+
l1Constants: {
|
|
64
|
+
l1GenesisTime: l1Constants.l1GenesisTime,
|
|
65
|
+
slotDuration: l1Constants.slotDuration,
|
|
66
|
+
ethereumSlotDuration: l1Constants.ethereumSlotDuration,
|
|
67
|
+
rollupManaLimit: l1Constants.rollupManaLimit,
|
|
68
|
+
epochDuration: config.aztecEpochDuration
|
|
69
|
+
},
|
|
70
|
+
coinbase,
|
|
71
|
+
feeRecipient,
|
|
72
|
+
signatureContext: {
|
|
73
|
+
chainId: config.l1ChainId,
|
|
74
|
+
rollupAddress: config.rollupAddress
|
|
75
|
+
},
|
|
76
|
+
config,
|
|
77
|
+
archiver,
|
|
78
|
+
l1TxUtils: reorgResetL1TxUtils,
|
|
79
|
+
stopExtras: ()=>publisherManager.stop(),
|
|
80
|
+
log: log.createChild('automine-sequencer')
|
|
81
|
+
});
|
|
82
|
+
await publisherManager.start();
|
|
83
|
+
return automineSequencer;
|
|
84
|
+
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import type { Archiver } from '@aztec/archiver';
|
|
2
|
+
import type { L1TxUtils } from '@aztec/ethereum/l1-tx-utils';
|
|
3
|
+
import type { EthCheatCodes } from '@aztec/ethereum/test';
|
|
4
|
+
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
|
+
import { type Logger } from '@aztec/foundation/log';
|
|
6
|
+
import type { TestDateProvider } from '@aztec/foundation/timer';
|
|
7
|
+
import type { P2PClient as ConcreteP2PClient, P2P } from '@aztec/p2p';
|
|
8
|
+
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
9
|
+
import { type L2Block, type L2BlockSource } from '@aztec/stdlib/block';
|
|
10
|
+
import type { ChainConfig } from '@aztec/stdlib/config';
|
|
11
|
+
import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
12
|
+
import { type WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
|
|
13
|
+
import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
14
|
+
import type { CoordinationSignatureContext } from '@aztec/stdlib/p2p';
|
|
15
|
+
import type { FullNodeCheckpointsBuilder } from '@aztec/validator-client';
|
|
16
|
+
import type { GlobalVariableBuilder } from '../../global_variable_builder/global_builder.js';
|
|
17
|
+
import type { SequencerPublisherFactory } from '../../publisher/sequencer-publisher-factory.js';
|
|
18
|
+
import type { SequencerConfig } from '../config.js';
|
|
19
|
+
/**
|
|
20
|
+
* L1 rollup constants needed by the AutomineSequencer. Same as SequencerRollupConstants
|
|
21
|
+
* plus `epochDuration` for the epoch-based checkpoint out-hash lookup.
|
|
22
|
+
*/
|
|
23
|
+
export type AutomineSequencerConstants = Pick<L1RollupConstants, 'ethereumSlotDuration' | 'l1GenesisTime' | 'slotDuration' | 'rollupManaLimit' | 'epochDuration'>;
|
|
24
|
+
/** Dependencies for the AutomineSequencer. */
|
|
25
|
+
export type AutomineSequencerDeps = {
|
|
26
|
+
publisherFactory: SequencerPublisherFactory;
|
|
27
|
+
checkpointsBuilder: FullNodeCheckpointsBuilder;
|
|
28
|
+
globalsBuilder: GlobalVariableBuilder;
|
|
29
|
+
worldState: WorldStateSynchronizer;
|
|
30
|
+
l2BlockSource: L2BlockSource;
|
|
31
|
+
l1ToL2MessageSource: L1ToL2MessageSource;
|
|
32
|
+
/** P2P client; must also expose `sync()` for post-rollback pool recovery. */
|
|
33
|
+
p2pClient: P2P & Pick<ConcreteP2PClient, 'sync'>;
|
|
34
|
+
ethCheatCodes: EthCheatCodes;
|
|
35
|
+
dateProvider: TestDateProvider;
|
|
36
|
+
l1Constants: AutomineSequencerConstants;
|
|
37
|
+
coinbase: EthAddress;
|
|
38
|
+
feeRecipient: AztecAddress;
|
|
39
|
+
signatureContext: CoordinationSignatureContext;
|
|
40
|
+
config: SequencerConfig & Pick<ChainConfig, 'l1ChainId' | 'rollupAddress'>;
|
|
41
|
+
/**
|
|
42
|
+
* Archiver used to push locally-built blocks and proposed checkpoints into the in-memory
|
|
43
|
+
* store, force an immediate L1 sync after publishing, and roll back state during reorgs.
|
|
44
|
+
*/
|
|
45
|
+
archiver: Pick<Archiver, 'rollbackTo' | 'addBlock' | 'addProposedCheckpoint' | 'syncImmediate'>;
|
|
46
|
+
/** L1 tx utils whose cached nonces must be reset after an L1 reorg. */
|
|
47
|
+
l1TxUtils: Pick<L1TxUtils, 'resetNonce'>[];
|
|
48
|
+
/**
|
|
49
|
+
* Optional extra cleanup hook awaited inside {@link AutomineSequencer.stop}. Used by the
|
|
50
|
+
* factory to shut down the PublisherManager funding loop after the queue and poller drain.
|
|
51
|
+
*/
|
|
52
|
+
stopExtras?: () => Promise<void>;
|
|
53
|
+
/** How often to poll the mempool for new txs while running. Defaults to 50ms. */
|
|
54
|
+
pollIntervalMs?: number;
|
|
55
|
+
log?: Logger;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Minimal, deterministic, queue-driven sequencer for e2e tests that don't exercise
|
|
59
|
+
* block-building or consensus (e.g. e2e_token, e2e_amm, e2e_authwit).
|
|
60
|
+
*
|
|
61
|
+
* Differences from the production `Sequencer`:
|
|
62
|
+
* - No proposer-turn check (single sequencer).
|
|
63
|
+
* - No sync check, no pipelining, no validator orchestration, no attestations,
|
|
64
|
+
* no slashing, no votes, no P2P proposal gossip, no timetable enforcement.
|
|
65
|
+
* - No event emission — consumers (archiver, world-state, `EpochTestSettler`) observe
|
|
66
|
+
* L1 and the archiver tip rather than sequencer events.
|
|
67
|
+
* - All test-driven time control (warp / mine empty block) goes through a single
|
|
68
|
+
* serial queue alongside mempool-driven builds; the three never interleave.
|
|
69
|
+
*
|
|
70
|
+
* Requires `aztecTargetCommitteeSize == 0` on the deployed rollup so that the
|
|
71
|
+
* L1 `verifyProposer` / `verifyAttestations` short-circuits accept an empty
|
|
72
|
+
* `CommitteeAttestationsAndSigners` (see
|
|
73
|
+
* `l1-contracts/src/core/libraries/rollup/ValidatorSelectionLib.sol:244`).
|
|
74
|
+
*/
|
|
75
|
+
export declare class AutomineSequencer {
|
|
76
|
+
private readonly log;
|
|
77
|
+
private readonly queue;
|
|
78
|
+
private readonly pollIntervalMs;
|
|
79
|
+
private readonly deps;
|
|
80
|
+
private running;
|
|
81
|
+
private stopped;
|
|
82
|
+
private paused;
|
|
83
|
+
private mempoolPoller?;
|
|
84
|
+
private publisher?;
|
|
85
|
+
private attestorAddress?;
|
|
86
|
+
/** Set while a mempool-driven build is queued but not yet run; used to coalesce. */
|
|
87
|
+
private buildQueued;
|
|
88
|
+
/** Last L2 slot we published a checkpoint for (-1 means none yet). */
|
|
89
|
+
private lastBuiltSlot;
|
|
90
|
+
constructor(deps: AutomineSequencerDeps);
|
|
91
|
+
/**
|
|
92
|
+
* Starts the sequencer. Switches anvil into automine mode (no interval mining),
|
|
93
|
+
* acquires a publisher, and begins polling the mempool for pending txs.
|
|
94
|
+
*/
|
|
95
|
+
start(): Promise<void>;
|
|
96
|
+
/**
|
|
97
|
+
* Stops the sequencer. Drains the queue, unsubscribes the mempool poller, and runs any
|
|
98
|
+
* registered {@link AutomineSequencerDeps.stopExtras} hook (e.g. the PublisherManager's
|
|
99
|
+
* funding loop). Idempotent: subsequent calls return without re-running cleanup.
|
|
100
|
+
*/
|
|
101
|
+
stop(): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* Enqueues a mempool-driven build. Coalesces consecutive calls so a burst of new txs
|
|
104
|
+
* collapses into one build job. Returns the built block (or undefined if nothing was built
|
|
105
|
+
* or the sequencer is paused).
|
|
106
|
+
*/
|
|
107
|
+
buildIfPending(): Promise<L2Block | undefined>;
|
|
108
|
+
/**
|
|
109
|
+
* Pauses mempool-driven block production. Pending txs accumulate in the pool without being
|
|
110
|
+
* mined. Explicit test-harness operations (`buildEmptyBlock`, `warpTo`, `revertToCheckpoint`)
|
|
111
|
+
* continue to work; this only gates the mempool poller and `buildIfPending`.
|
|
112
|
+
*/
|
|
113
|
+
pause(): void;
|
|
114
|
+
/** Resumes mempool-driven block production after a previous {@link pause}. */
|
|
115
|
+
resume(): void;
|
|
116
|
+
/**
|
|
117
|
+
* Updates the in-memory sequencer config. Mirrors {@link SequencerClient.updateConfig} so that
|
|
118
|
+
* `AztecNode.setConfig` (e.g. tests bumping `minTxsPerBlock` to bundle multiple txs into one
|
|
119
|
+
* block) propagates to the AutomineSequencer's gating logic in {@link runBuild}.
|
|
120
|
+
*/
|
|
121
|
+
updateConfig(config: Partial<SequencerConfig>): void;
|
|
122
|
+
/** Returns a snapshot of the current sequencer config (used by pause/resume bookkeeping). */
|
|
123
|
+
getConfig(): SequencerConfig;
|
|
124
|
+
/** Enqueues an empty-block build. Resolves to the built block. */
|
|
125
|
+
buildEmptyBlock(): Promise<L2Block>;
|
|
126
|
+
/**
|
|
127
|
+
* Warps L1 timestamp to `targetTimestampSec`. Rounded up to the next aztec-slot
|
|
128
|
+
* boundary so the next build lands on a fresh slot. Atomic with respect to builds —
|
|
129
|
+
* the queue ensures no build is in flight while the warp executes.
|
|
130
|
+
*/
|
|
131
|
+
warpTo(targetTimestampSec: number): Promise<void>;
|
|
132
|
+
/** Warps L1 timestamp forward by `deltaSec` seconds from the current L1 time. */
|
|
133
|
+
warpBy(deltaSec: number): Promise<void>;
|
|
134
|
+
/**
|
|
135
|
+
* Reorgs L1 so that every L1 block strictly after the one that published
|
|
136
|
+
* `targetCheckpoint` is removed. The archiver, world-state, and date provider
|
|
137
|
+
* are all brought back in sync before the promise resolves.
|
|
138
|
+
*
|
|
139
|
+
* Runs inside the serial queue so it never interleaves with a build or warp.
|
|
140
|
+
*/
|
|
141
|
+
revertToCheckpoint(targetCheckpoint: number): Promise<void>;
|
|
142
|
+
/** Awaits the queue draining to a fully idle state. */
|
|
143
|
+
syncPoint(): Promise<void>;
|
|
144
|
+
private maybeEnqueueBuild;
|
|
145
|
+
private runBuild;
|
|
146
|
+
private runWarp;
|
|
147
|
+
private runRevert;
|
|
148
|
+
private tryBuildBlock;
|
|
149
|
+
private dropFailedTxsFromP2P;
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b21pbmVfc2VxdWVuY2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VxdWVuY2VyL2F1dG9taW5lL2F1dG9taW5lX3NlcXVlbmNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUxRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFHbEUsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRSxPQUFPLEtBQUssRUFBRSxTQUFTLElBQUksaUJBQWlCLEVBQUUsR0FBRyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3RFLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBbUMsS0FBSyxPQUFPLEVBQUUsS0FBSyxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RyxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsS0FBSyxpQkFBaUIsRUFJdkIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQTZCLEtBQUssc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RyxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdEUsT0FBTyxLQUFLLEVBR1YsMEJBQTBC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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automine_sequencer.d.ts","sourceRoot":"","sources":["../../../src/sequencer/automine/automine_sequencer.ts"],"names":[],"mappings":"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"}
|