@aztec/sequencer-client 5.0.0-private.20260319 → 5.0.0-rc.2

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.
Files changed (101) hide show
  1. package/README.md +281 -21
  2. package/dest/client/sequencer-client.d.ts +8 -3
  3. package/dest/client/sequencer-client.d.ts.map +1 -1
  4. package/dest/client/sequencer-client.js +17 -32
  5. package/dest/config.d.ts +10 -4
  6. package/dest/config.d.ts.map +1 -1
  7. package/dest/config.js +49 -25
  8. package/dest/global_variable_builder/fee_predictor.d.ts +37 -0
  9. package/dest/global_variable_builder/fee_predictor.d.ts.map +1 -0
  10. package/dest/global_variable_builder/fee_predictor.js +128 -0
  11. package/dest/global_variable_builder/fee_provider.d.ts +21 -0
  12. package/dest/global_variable_builder/fee_provider.d.ts.map +1 -0
  13. package/dest/global_variable_builder/fee_provider.js +67 -0
  14. package/dest/global_variable_builder/global_builder.d.ts +13 -26
  15. package/dest/global_variable_builder/global_builder.d.ts.map +1 -1
  16. package/dest/global_variable_builder/global_builder.js +9 -67
  17. package/dest/global_variable_builder/index.d.ts +4 -2
  18. package/dest/global_variable_builder/index.d.ts.map +1 -1
  19. package/dest/global_variable_builder/index.js +2 -0
  20. package/dest/publisher/config.d.ts +19 -3
  21. package/dest/publisher/config.d.ts.map +1 -1
  22. package/dest/publisher/config.js +30 -5
  23. package/dest/publisher/l1_tx_failed_store/failed_tx_store.d.ts +3 -4
  24. package/dest/publisher/l1_tx_failed_store/failed_tx_store.d.ts.map +1 -1
  25. package/dest/publisher/sequencer-bundle-simulator.d.ts +96 -0
  26. package/dest/publisher/sequencer-bundle-simulator.d.ts.map +1 -0
  27. package/dest/publisher/sequencer-bundle-simulator.js +198 -0
  28. package/dest/publisher/sequencer-publisher-factory.d.ts +3 -5
  29. package/dest/publisher/sequencer-publisher-factory.d.ts.map +1 -1
  30. package/dest/publisher/sequencer-publisher-factory.js +2 -3
  31. package/dest/publisher/sequencer-publisher.d.ts +84 -65
  32. package/dest/publisher/sequencer-publisher.d.ts.map +1 -1
  33. package/dest/publisher/sequencer-publisher.js +403 -531
  34. package/dest/sequencer/automine/automine_factory.d.ts +56 -0
  35. package/dest/sequencer/automine/automine_factory.d.ts.map +1 -0
  36. package/dest/sequencer/automine/automine_factory.js +85 -0
  37. package/dest/sequencer/automine/automine_sequencer.d.ts +189 -0
  38. package/dest/sequencer/automine/automine_sequencer.d.ts.map +1 -0
  39. package/dest/sequencer/automine/automine_sequencer.js +689 -0
  40. package/dest/sequencer/automine/index.d.ts +3 -0
  41. package/dest/sequencer/automine/index.d.ts.map +1 -0
  42. package/dest/sequencer/automine/index.js +2 -0
  43. package/dest/sequencer/checkpoint_proposal_job.d.ts +73 -21
  44. package/dest/sequencer/checkpoint_proposal_job.d.ts.map +1 -1
  45. package/dest/sequencer/checkpoint_proposal_job.js +709 -200
  46. package/dest/sequencer/checkpoint_proposal_job_metrics.d.ts +34 -0
  47. package/dest/sequencer/checkpoint_proposal_job_metrics.d.ts.map +1 -0
  48. package/dest/sequencer/checkpoint_proposal_job_metrics.js +72 -0
  49. package/dest/sequencer/checkpoint_voter.d.ts +1 -2
  50. package/dest/sequencer/checkpoint_voter.d.ts.map +1 -1
  51. package/dest/sequencer/checkpoint_voter.js +2 -5
  52. package/dest/sequencer/errors.d.ts +1 -8
  53. package/dest/sequencer/errors.d.ts.map +1 -1
  54. package/dest/sequencer/errors.js +0 -9
  55. package/dest/sequencer/events.d.ts +61 -4
  56. package/dest/sequencer/events.d.ts.map +1 -1
  57. package/dest/sequencer/metrics.d.ts +9 -10
  58. package/dest/sequencer/metrics.d.ts.map +1 -1
  59. package/dest/sequencer/metrics.js +34 -20
  60. package/dest/sequencer/sequencer.d.ts +117 -30
  61. package/dest/sequencer/sequencer.d.ts.map +1 -1
  62. package/dest/sequencer/sequencer.js +483 -158
  63. package/dest/sequencer/types.d.ts +2 -2
  64. package/dest/sequencer/types.d.ts.map +1 -1
  65. package/dest/test/index.d.ts +3 -3
  66. package/dest/test/index.d.ts.map +1 -1
  67. package/dest/test/utils.d.ts +15 -1
  68. package/dest/test/utils.d.ts.map +1 -1
  69. package/dest/test/utils.js +24 -7
  70. package/package.json +28 -27
  71. package/src/client/sequencer-client.ts +29 -41
  72. package/src/config.ts +58 -25
  73. package/src/global_variable_builder/README.md +44 -0
  74. package/src/global_variable_builder/fee_predictor.ts +172 -0
  75. package/src/global_variable_builder/fee_provider.ts +80 -0
  76. package/src/global_variable_builder/global_builder.ts +19 -89
  77. package/src/global_variable_builder/index.ts +3 -1
  78. package/src/publisher/config.ts +62 -7
  79. package/src/publisher/l1_tx_failed_store/failed_tx_store.ts +3 -1
  80. package/src/publisher/sequencer-bundle-simulator.ts +254 -0
  81. package/src/publisher/sequencer-publisher-factory.ts +3 -6
  82. package/src/publisher/sequencer-publisher.ts +456 -578
  83. package/src/sequencer/automine/README.md +60 -0
  84. package/src/sequencer/automine/automine_factory.ts +152 -0
  85. package/src/sequencer/automine/automine_sequencer.ts +795 -0
  86. package/src/sequencer/automine/index.ts +6 -0
  87. package/src/sequencer/checkpoint_proposal_job.ts +817 -225
  88. package/src/sequencer/checkpoint_proposal_job_metrics.ts +128 -0
  89. package/src/sequencer/checkpoint_voter.ts +1 -12
  90. package/src/sequencer/errors.ts +0 -15
  91. package/src/sequencer/events.ts +65 -4
  92. package/src/sequencer/metrics.ts +43 -24
  93. package/src/sequencer/sequencer.ts +557 -175
  94. package/src/sequencer/types.ts +1 -1
  95. package/src/test/index.ts +2 -2
  96. package/src/test/utils.ts +60 -10
  97. package/dest/sequencer/timetable.d.ts +0 -88
  98. package/dest/sequencer/timetable.d.ts.map +0 -1
  99. package/dest/sequencer/timetable.js +0 -222
  100. package/src/sequencer/README.md +0 -531
  101. package/src/sequencer/timetable.ts +0 -283
@@ -0,0 +1,56 @@
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' | 'removeUncheckpointedBlocksAfter'>;
37
+ p2pClient: P2P & Pick<ConcreteP2PClient, 'sync'>;
38
+ l1Constants: {
39
+ l1GenesisTime: bigint;
40
+ slotDuration: number;
41
+ ethereumSlotDuration: number;
42
+ rollupManaLimit: number;
43
+ };
44
+ /** When true, run the auto-settle / clock-reconcile loop (local-network only). */
45
+ autoSettle?: boolean;
46
+ log: Logger;
47
+ };
48
+ /**
49
+ * Builds an {@link AutomineSequencer} for use in single-sequencer e2e tests.
50
+ *
51
+ * Constructs the PublisherManager, GovernanceProposerContract, SequencerPublisherFactory,
52
+ * looks up the attestor/coinbase/feeRecipient from the keystore, wires EthCheatCodes,
53
+ * and starts the publisher manager before returning.
54
+ */
55
+ export declare function createAutomineSequencer({ config, l1TxUtils, funderL1TxUtils, publicClient, rollupContract, epochCache, blobClient, telemetry, dateProvider, keyStoreManager, validatorClient, checkpointsBuilder, globalVariableBuilder, worldStateSynchronizer, archiver, p2pClient, l1Constants, autoSettle, log }: CreateAutomineSequencerArgs): Promise<AutomineSequencer>;
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b21pbmVfZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcXVlbmNlci9hdXRvbWluZS9hdXRvbWluZV9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUE4QixLQUFLLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVGLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRzdELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEVBQUUsU0FBUyxJQUFJLGlCQUFpQixFQUFFLEdBQUcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0RSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlFLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLEtBQUssMEJBQTBCLEVBQXVCLEtBQUssZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFckgsT0FBTyxFQUFFLEtBQUsscUJBQXFCLEVBQXlDLE1BQU0saUJBQWlCLENBQUM7QUFDcEcsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUU3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxxREFBcUQ7QUFDckQsTUFBTSxNQUFNLDJCQUEyQixHQUFHO0lBQ3hDLE1BQU0sRUFBRSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVcsR0FBRyxlQUFlLENBQUMsQ0FBQztJQUNqRixTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDdkIsZUFBZSxFQUFFLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDdkMsWUFBWSxFQUFFLGdCQUFnQixDQUFDO0lBQy9CLGNBQWMsRUFBRSxjQUFjLENBQUM7SUFDL0IsVUFBVSxFQUFFLFVBQVUsQ0FBQztJQUN2QixVQUFVLEVBQUUsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO0lBQzVDLFNBQVMsRUFBRSxlQUFlLENBQUM7SUFDM0IsWUFBWSxFQUFFLFlBQVksQ0FBQztJQUMzQixlQUFlLEVBQUUsZUFBZSxDQUFDO0lBQ2pDLGVBQWUsRUFBRSxlQUFlLENBQUM7SUFDakMsa0JBQWtCLEVBQUUsMEJBQTBCLENBQUM7SUFDL0MscUJBQXFCLEVBQUUscUJBQXFCLENBQUM7SUFDN0Msc0JBQXNCLEVBQUUsc0JBQXNCLENBQUM7SUFDL0MsUUFBUSxFQUFFLGFBQWEsR0FDckIsbUJBQW1CLEdBQ25CLElBQUksQ0FDRixRQUFRLEVBQ1IsWUFBWSxHQUFHLFVBQVUsR0FBRyx1QkFBdUIsR0FBRyxlQUFlLEdBQUcsaUNBQWlDLENBQzFHLENBQUM7SUFDSixTQUFTLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRCxXQUFXLEVBQUU7UUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDO1FBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQztRQUFDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQztRQUFDLGVBQWUsRUFBRSxNQUFNLENBQUE7S0FBRSxDQUFDO0lBQ3BILGtGQUFrRjtJQUNsRixVQUFVLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDckIsR0FBRyxFQUFFLE1BQU0sQ0FBQztDQUNiLENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDSCx3QkFBc0IsdUJBQXVCLENBQUMsRUFDNUMsTUFBTSxFQUNOLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLGNBQWMsRUFDZCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixRQUFRLEVBQ1IsU0FBUyxFQUNULFdBQVcsRUFDWCxVQUFVLEVBQ1YsR0FBRyxFQUNKLEVBQUUsMkJBQTJCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBdUUxRCJ9
@@ -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,85 @@
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, autoSettle, 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
+ autoSettle,
80
+ stopExtras: ()=>publisherManager.stop(),
81
+ log: log.createChild('automine-sequencer')
82
+ });
83
+ await publisherManager.start();
84
+ return automineSequencer;
85
+ }
@@ -0,0 +1,189 @@
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 { CheckpointNumber } from '@aztec/foundation/branded-types';
5
+ import type { EthAddress } from '@aztec/foundation/eth-address';
6
+ import { type Logger } from '@aztec/foundation/log';
7
+ import type { TestDateProvider } from '@aztec/foundation/timer';
8
+ import type { P2PClient as ConcreteP2PClient, P2P } from '@aztec/p2p';
9
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
10
+ import { type L2Block, type L2BlockSource } from '@aztec/stdlib/block';
11
+ import type { ChainConfig } from '@aztec/stdlib/config';
12
+ import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
13
+ import { type WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
14
+ import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
15
+ import type { CoordinationSignatureContext } from '@aztec/stdlib/p2p';
16
+ import type { FullNodeCheckpointsBuilder } from '@aztec/validator-client';
17
+ import type { GlobalVariableBuilder } from '../../global_variable_builder/global_builder.js';
18
+ import type { SequencerPublisherFactory } from '../../publisher/sequencer-publisher-factory.js';
19
+ import type { SequencerConfig } from '../config.js';
20
+ /**
21
+ * L1 rollup constants needed by the AutomineSequencer. Same as SequencerRollupConstants
22
+ * plus `epochDuration` for the epoch-based checkpoint out-hash lookup.
23
+ */
24
+ export type AutomineSequencerConstants = Pick<L1RollupConstants, 'ethereumSlotDuration' | 'l1GenesisTime' | 'slotDuration' | 'rollupManaLimit' | 'epochDuration'>;
25
+ /** Dependencies for the AutomineSequencer. */
26
+ export type AutomineSequencerDeps = {
27
+ publisherFactory: SequencerPublisherFactory;
28
+ checkpointsBuilder: FullNodeCheckpointsBuilder;
29
+ globalsBuilder: GlobalVariableBuilder;
30
+ worldState: WorldStateSynchronizer;
31
+ l2BlockSource: L2BlockSource;
32
+ l1ToL2MessageSource: L1ToL2MessageSource;
33
+ /** P2P client; must also expose `sync()` for post-rollback pool recovery. */
34
+ p2pClient: P2P & Pick<ConcreteP2PClient, 'sync'>;
35
+ ethCheatCodes: EthCheatCodes;
36
+ dateProvider: TestDateProvider;
37
+ l1Constants: AutomineSequencerConstants;
38
+ coinbase: EthAddress;
39
+ feeRecipient: AztecAddress;
40
+ signatureContext: CoordinationSignatureContext;
41
+ config: SequencerConfig & Pick<ChainConfig, 'l1ChainId' | 'rollupAddress'>;
42
+ /**
43
+ * Archiver used to push locally-built blocks and proposed checkpoints into the in-memory
44
+ * store, force an immediate L1 sync after publishing, and roll back state during reorgs.
45
+ */
46
+ archiver: Pick<Archiver, 'rollbackTo' | 'addBlock' | 'addProposedCheckpoint' | 'syncImmediate' | 'removeUncheckpointedBlocksAfter'>;
47
+ /** L1 tx utils whose cached nonces must be reset after an L1 reorg. */
48
+ l1TxUtils: Pick<L1TxUtils, 'resetNonce'>[];
49
+ /**
50
+ * Optional extra cleanup hook awaited inside {@link AutomineSequencer.stop}. Used by the
51
+ * factory to shut down the PublisherManager funding loop after the queue and poller drain.
52
+ */
53
+ stopExtras?: () => Promise<void>;
54
+ /** How often to poll the mempool for new txs while running. Defaults to 50ms. */
55
+ pollIntervalMs?: number;
56
+ /**
57
+ * When true, run a loop that synthetically settles epochs (writes outbox roots and advances the
58
+ * proven tip) as checkpoints land, replacing the standalone `EpochTestSettler`. Local-network only;
59
+ * e2e tests leave this off and drive proving explicitly.
60
+ */
61
+ autoSettle?: boolean;
62
+ /** How often the auto-settle / clock-reconcile loop runs while {@link autoSettle} is enabled. Defaults to 200ms. */
63
+ settlePollIntervalMs?: number;
64
+ log?: Logger;
65
+ };
66
+ /**
67
+ * Minimal, deterministic, queue-driven sequencer for e2e tests that don't exercise
68
+ * block-building or consensus (e.g. e2e_token, e2e_amm, e2e_authwit).
69
+ *
70
+ * Differences from the production `Sequencer`:
71
+ * - No proposer-turn check (single sequencer).
72
+ * - No sync check, no pipelining, no validator orchestration, no attestations,
73
+ * no slashing, no votes, no P2P proposal gossip, no timetable enforcement.
74
+ * - No event emission — consumers (archiver, world-state, `EpochTestSettler`) observe
75
+ * L1 and the archiver tip rather than sequencer events.
76
+ * - All test-driven time control (warp / mine empty block) goes through a single
77
+ * serial queue alongside mempool-driven builds; the three never interleave.
78
+ *
79
+ * Requires `aztecTargetCommitteeSize == 0` on the deployed rollup so that the
80
+ * L1 `verifyProposer` / `verifyAttestations` short-circuits accept an empty
81
+ * `CommitteeAttestationsAndSigners` (see
82
+ * `l1-contracts/src/core/libraries/rollup/ValidatorSelectionLib.sol:244`).
83
+ */
84
+ export declare class AutomineSequencer {
85
+ private readonly log;
86
+ private readonly queue;
87
+ private readonly pollIntervalMs;
88
+ private readonly deps;
89
+ private running;
90
+ private stopped;
91
+ private paused;
92
+ private mempoolPoller?;
93
+ /** Loop that settles epochs and reconciles the clock while {@link AutomineSequencerDeps.autoSettle} is set. */
94
+ private settler?;
95
+ private publisher?;
96
+ private attestorAddress?;
97
+ /** Set while a mempool-driven build is queued but not yet run; used to coalesce. */
98
+ private buildQueued;
99
+ /** Last L2 slot we published a checkpoint for (-1 means none yet). */
100
+ private lastBuiltSlot;
101
+ /** Lazily-built cheat codes for synthetic epoch settlement (outbox roots + proven tip). */
102
+ private rollupCheatCodes?;
103
+ constructor(deps: AutomineSequencerDeps);
104
+ /** Cheat codes for the rollup, built from the same EthCheatCodes the sequencer uses for time control. */
105
+ private getRollupCheatCodes;
106
+ /**
107
+ * Starts the sequencer. Switches anvil into automine mode (no interval mining),
108
+ * acquires a publisher, and begins polling the mempool for pending txs.
109
+ */
110
+ start(): Promise<void>;
111
+ /**
112
+ * Stops the sequencer. Drains the queue, unsubscribes the mempool poller, and runs any
113
+ * registered {@link AutomineSequencerDeps.stopExtras} hook (e.g. the PublisherManager's
114
+ * funding loop). Idempotent: subsequent calls return without re-running cleanup.
115
+ */
116
+ stop(): Promise<void>;
117
+ /**
118
+ * Enqueues a mempool-driven build. Coalesces consecutive calls so a burst of new txs
119
+ * collapses into one build job. Returns the built block (or undefined if nothing was built
120
+ * or the sequencer is paused).
121
+ */
122
+ buildIfPending(): Promise<L2Block | undefined>;
123
+ /**
124
+ * Pauses mempool-driven block production. Pending txs accumulate in the pool without being
125
+ * mined. Explicit test-harness operations (`buildEmptyBlock`, `warpTo`, `revertToCheckpoint`)
126
+ * continue to work; this only gates the mempool poller and `buildIfPending`.
127
+ */
128
+ pause(): void;
129
+ /** Resumes mempool-driven block production after a previous {@link pause}. */
130
+ resume(): void;
131
+ /**
132
+ * Updates the in-memory sequencer config. Mirrors {@link SequencerClient.updateConfig} so that
133
+ * `AztecNode.setConfig` (e.g. tests bumping `minTxsPerBlock` to bundle multiple txs into one
134
+ * block) propagates to the AutomineSequencer's gating logic in {@link runBuild}.
135
+ */
136
+ updateConfig(config: Partial<SequencerConfig>): void;
137
+ /** Returns a snapshot of the current sequencer config (used by pause/resume bookkeeping). */
138
+ getConfig(): SequencerConfig;
139
+ /** Enqueues an empty-block build. Resolves to the built block. */
140
+ buildEmptyBlock(): Promise<L2Block>;
141
+ /**
142
+ * Warps L1 timestamp to `targetTimestampSec`. Rounded up to the next aztec-slot
143
+ * boundary so the next build lands on a fresh slot. Atomic with respect to builds —
144
+ * the queue ensures no build is in flight while the warp executes. A no-op when the
145
+ * target is already at or behind the current L1 time (see {@link runWarp}).
146
+ */
147
+ warpTo(targetTimestampSec: number): Promise<void>;
148
+ /**
149
+ * Warps L1 timestamp forward by `deltaSec` seconds from the current L1 time, rounded up to the next
150
+ * aztec-slot boundary. Throws if `deltaSec` is not positive (warping "by" a non-positive amount is a
151
+ * caller bug — unlike {@link warpTo}, which no-ops on a past target).
152
+ */
153
+ warpBy(deltaSec: number): Promise<void>;
154
+ /**
155
+ * Reorgs L1 so that every L1 block strictly after the one that published
156
+ * `targetCheckpoint` is removed. The archiver, world-state, and date provider
157
+ * are all brought back in sync before the promise resolves.
158
+ *
159
+ * Runs inside the serial queue so it never interleaves with a build or warp.
160
+ */
161
+ revertToCheckpoint(targetCheckpoint: number): Promise<void>;
162
+ /** Awaits the queue draining to a fully idle state. */
163
+ syncPoint(): Promise<void>;
164
+ /**
165
+ * Synthetically "proves" the L2 chain up to `upToCheckpoint` (default: the latest checkpointed
166
+ * checkpoint). For every epoch newly covered — including a partial final epoch — the epoch out hash
167
+ * is written into the L1 Outbox so the L2-to-L1 messages in those checkpoints become consumable,
168
+ * then the rollup's proven tip is advanced to the target. There is no real proof; this is the
169
+ * local-network equivalent of an epoch proof landing on L1.
170
+ *
171
+ * Clamps the target down to the latest checkpointed checkpoint and no-ops when it is already proven.
172
+ * Runs inside the serial queue so it never interleaves with a build or warp.
173
+ *
174
+ * @returns The proven checkpoint after the call (the target, or the existing proven tip on no-op).
175
+ */
176
+ prove(upToCheckpoint?: CheckpointNumber): Promise<CheckpointNumber>;
177
+ private maybeSettle;
178
+ private reconcileDateProvider;
179
+ private maybeEnqueueBuild;
180
+ private runBuild;
181
+ private rollbackOptimisticInsert;
182
+ private runWarp;
183
+ private runRevert;
184
+ private runProve;
185
+ private getEpochOfCheckpoint;
186
+ private tryBuildBlock;
187
+ private dropFailedTxsFromP2P;
188
+ }
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b21pbmVfc2VxdWVuY2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VxdWVuY2VyL2F1dG9taW5lL2F1dG9taW5lX3NlcXVlbmNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsS0FBSyxhQUFhLEVBQW9CLE1BQU0sc0JBQXNCLENBQUM7QUFDNUUsT0FBTyxFQUFlLGdCQUFnQixFQUEyQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pHLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUdsRSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhFLE9BQU8sS0FBSyxFQUFFLFNBQVMsSUFBSSxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFdEUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFtQyxLQUFLLE9BQU8sRUFBRSxLQUFLLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhHLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFDTCxLQUFLLGlCQUFpQixFQUl2QixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBNkIsS0FBSyxzQkFBc0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pHLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkUsT0FBTyxLQUFLLEVBQUUsNEJBQTRCLEVB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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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"}