@aztec/sequencer-client 0.0.1-commit.9372f48 → 0.0.1-commit.967fc6998

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 (70) hide show
  1. package/dest/client/sequencer-client.d.ts +12 -7
  2. package/dest/client/sequencer-client.d.ts.map +1 -1
  3. package/dest/client/sequencer-client.js +15 -4
  4. package/dest/config.d.ts +3 -4
  5. package/dest/config.d.ts.map +1 -1
  6. package/dest/config.js +17 -12
  7. package/dest/global_variable_builder/global_builder.d.ts +2 -4
  8. package/dest/global_variable_builder/global_builder.d.ts.map +1 -1
  9. package/dest/publisher/config.d.ts +35 -17
  10. package/dest/publisher/config.d.ts.map +1 -1
  11. package/dest/publisher/config.js +106 -42
  12. package/dest/publisher/index.d.ts +2 -1
  13. package/dest/publisher/index.d.ts.map +1 -1
  14. package/dest/publisher/l1_tx_failed_store/factory.d.ts +11 -0
  15. package/dest/publisher/l1_tx_failed_store/factory.d.ts.map +1 -0
  16. package/dest/publisher/l1_tx_failed_store/factory.js +22 -0
  17. package/dest/publisher/l1_tx_failed_store/failed_tx_store.d.ts +59 -0
  18. package/dest/publisher/l1_tx_failed_store/failed_tx_store.d.ts.map +1 -0
  19. package/dest/publisher/l1_tx_failed_store/failed_tx_store.js +1 -0
  20. package/dest/publisher/l1_tx_failed_store/file_store_failed_tx_store.d.ts +15 -0
  21. package/dest/publisher/l1_tx_failed_store/file_store_failed_tx_store.d.ts.map +1 -0
  22. package/dest/publisher/l1_tx_failed_store/file_store_failed_tx_store.js +34 -0
  23. package/dest/publisher/l1_tx_failed_store/index.d.ts +4 -0
  24. package/dest/publisher/l1_tx_failed_store/index.d.ts.map +1 -0
  25. package/dest/publisher/l1_tx_failed_store/index.js +2 -0
  26. package/dest/publisher/sequencer-publisher-factory.d.ts +11 -3
  27. package/dest/publisher/sequencer-publisher-factory.d.ts.map +1 -1
  28. package/dest/publisher/sequencer-publisher-factory.js +13 -2
  29. package/dest/publisher/sequencer-publisher.d.ts +22 -7
  30. package/dest/publisher/sequencer-publisher.d.ts.map +1 -1
  31. package/dest/publisher/sequencer-publisher.js +258 -29
  32. package/dest/sequencer/checkpoint_proposal_job.d.ts +7 -1
  33. package/dest/sequencer/checkpoint_proposal_job.d.ts.map +1 -1
  34. package/dest/sequencer/checkpoint_proposal_job.js +67 -40
  35. package/dest/sequencer/metrics.d.ts +17 -5
  36. package/dest/sequencer/metrics.d.ts.map +1 -1
  37. package/dest/sequencer/metrics.js +86 -15
  38. package/dest/sequencer/sequencer.d.ts +17 -7
  39. package/dest/sequencer/sequencer.d.ts.map +1 -1
  40. package/dest/sequencer/sequencer.js +29 -26
  41. package/dest/sequencer/timetable.d.ts +1 -4
  42. package/dest/sequencer/timetable.d.ts.map +1 -1
  43. package/dest/sequencer/timetable.js +2 -5
  44. package/dest/test/index.d.ts +3 -5
  45. package/dest/test/index.d.ts.map +1 -1
  46. package/dest/test/mock_checkpoint_builder.d.ts +5 -3
  47. package/dest/test/mock_checkpoint_builder.d.ts.map +1 -1
  48. package/dest/test/mock_checkpoint_builder.js +6 -4
  49. package/dest/test/utils.d.ts +3 -3
  50. package/dest/test/utils.d.ts.map +1 -1
  51. package/dest/test/utils.js +5 -4
  52. package/package.json +28 -28
  53. package/src/client/sequencer-client.ts +25 -7
  54. package/src/config.ts +26 -19
  55. package/src/global_variable_builder/global_builder.ts +1 -1
  56. package/src/publisher/config.ts +121 -43
  57. package/src/publisher/index.ts +3 -0
  58. package/src/publisher/l1_tx_failed_store/factory.ts +32 -0
  59. package/src/publisher/l1_tx_failed_store/failed_tx_store.ts +55 -0
  60. package/src/publisher/l1_tx_failed_store/file_store_failed_tx_store.ts +46 -0
  61. package/src/publisher/l1_tx_failed_store/index.ts +3 -0
  62. package/src/publisher/sequencer-publisher-factory.ts +23 -6
  63. package/src/publisher/sequencer-publisher.ts +241 -36
  64. package/src/sequencer/checkpoint_proposal_job.ts +91 -39
  65. package/src/sequencer/metrics.ts +92 -18
  66. package/src/sequencer/sequencer.ts +39 -31
  67. package/src/sequencer/timetable.ts +7 -6
  68. package/src/test/index.ts +2 -4
  69. package/src/test/mock_checkpoint_builder.ts +12 -1
  70. package/src/test/utils.ts +5 -2
@@ -1,14 +1,15 @@
1
1
  import { createLogger } from '@aztec/aztec.js/log';
2
+ import {
3
+ CHECKPOINT_ASSEMBLE_TIME,
4
+ CHECKPOINT_INITIALIZATION_TIME,
5
+ DEFAULT_P2P_PROPAGATION_TIME,
6
+ MIN_EXECUTION_TIME,
7
+ } from '@aztec/stdlib/timetable';
2
8
 
3
- import { DEFAULT_ATTESTATION_PROPAGATION_TIME as DEFAULT_P2P_PROPAGATION_TIME } from '../config.js';
4
9
  import { SequencerTooSlowError } from './errors.js';
5
10
  import type { SequencerMetrics } from './metrics.js';
6
11
  import { SequencerState } from './utils.js';
7
12
 
8
- export const MIN_EXECUTION_TIME = 2;
9
- export const CHECKPOINT_INITIALIZATION_TIME = 1;
10
- export const CHECKPOINT_ASSEMBLE_TIME = 1;
11
-
12
13
  export class SequencerTimetable {
13
14
  /**
14
15
  * How late into the slot can we be to start working. Computed as the total time needed for assembling and publishing a block,
@@ -131,7 +132,7 @@ export class SequencerTimetable {
131
132
  const initializeDeadline = this.aztecSlotDuration - minWorkToDo;
132
133
  this.initializeDeadline = initializeDeadline;
133
134
 
134
- this.log.verbose(
135
+ this.log.info(
135
136
  `Sequencer timetable initialized with ${this.maxNumberOfBlocks} blocks per slot (${this.enforce ? 'enforced' : 'not enforced'})`,
136
137
  {
137
138
  ethereumSlotDuration: this.ethereumSlotDuration,
package/src/test/index.ts CHANGED
@@ -1,18 +1,16 @@
1
- import type { L1TxUtilsWithBlobs } from '@aztec/ethereum/l1-tx-utils-with-blobs';
1
+ import type { L1TxUtils } from '@aztec/ethereum/l1-tx-utils';
2
2
  import type { PublisherManager } from '@aztec/ethereum/publisher-manager';
3
3
  import type { PublicProcessorFactory } from '@aztec/simulator/server';
4
4
  import type { FullNodeCheckpointsBuilder, ValidatorClient } from '@aztec/validator-client';
5
5
 
6
6
  import { SequencerClient } from '../client/sequencer-client.js';
7
7
  import type { SequencerPublisherFactory } from '../publisher/sequencer-publisher-factory.js';
8
- import type { SequencerPublisher } from '../publisher/sequencer-publisher.js';
9
8
  import { Sequencer } from '../sequencer/sequencer.js';
10
9
  import type { SequencerTimetable } from '../sequencer/timetable.js';
11
10
 
12
11
  class TestSequencer_ extends Sequencer {
13
12
  declare public publicProcessorFactory: PublicProcessorFactory;
14
13
  declare public timetable: SequencerTimetable;
15
- declare public publisher: SequencerPublisher;
16
14
  declare public publisherFactory: SequencerPublisherFactory;
17
15
  declare public validatorClient: ValidatorClient;
18
16
  declare public checkpointsBuilder: FullNodeCheckpointsBuilder;
@@ -22,7 +20,7 @@ export type TestSequencer = TestSequencer_;
22
20
 
23
21
  class TestSequencerClient_ extends SequencerClient {
24
22
  declare public sequencer: TestSequencer;
25
- declare public publisherManager: PublisherManager<L1TxUtilsWithBlobs>;
23
+ declare public publisherManager: PublisherManager<L1TxUtils>;
26
24
  }
27
25
 
28
26
  export type TestSequencerClient = TestSequencerClient_;
@@ -205,6 +205,7 @@ export class MockCheckpointsBuilder implements ICheckpointsBuilder {
205
205
  constants: CheckpointGlobalVariables;
206
206
  l1ToL2Messages: Fr[];
207
207
  previousCheckpointOutHashes: Fr[];
208
+ feeAssetPriceModifier: bigint;
208
209
  }> = [];
209
210
  public openCheckpointCalls: Array<{
210
211
  checkpointNumber: CheckpointNumber;
@@ -212,6 +213,7 @@ export class MockCheckpointsBuilder implements ICheckpointsBuilder {
212
213
  l1ToL2Messages: Fr[];
213
214
  previousCheckpointOutHashes: Fr[];
214
215
  existingBlocks: L2Block[];
216
+ feeAssetPriceModifier: bigint;
215
217
  }> = [];
216
218
  public updateConfigCalls: Array<Partial<FullNodeBlockBuilderConfig>> = [];
217
219
 
@@ -257,11 +259,18 @@ export class MockCheckpointsBuilder implements ICheckpointsBuilder {
257
259
  startCheckpoint(
258
260
  checkpointNumber: CheckpointNumber,
259
261
  constants: CheckpointGlobalVariables,
262
+ feeAssetPriceModifier: bigint,
260
263
  l1ToL2Messages: Fr[],
261
264
  previousCheckpointOutHashes: Fr[],
262
265
  _fork: MerkleTreeWriteOperations,
263
266
  ): Promise<ICheckpointBlockBuilder> {
264
- this.startCheckpointCalls.push({ checkpointNumber, constants, l1ToL2Messages, previousCheckpointOutHashes });
267
+ this.startCheckpointCalls.push({
268
+ checkpointNumber,
269
+ constants,
270
+ l1ToL2Messages,
271
+ previousCheckpointOutHashes,
272
+ feeAssetPriceModifier,
273
+ });
265
274
 
266
275
  if (!this.checkpointBuilder) {
267
276
  // Auto-create a builder if none was set
@@ -274,6 +283,7 @@ export class MockCheckpointsBuilder implements ICheckpointsBuilder {
274
283
  openCheckpoint(
275
284
  checkpointNumber: CheckpointNumber,
276
285
  constants: CheckpointGlobalVariables,
286
+ feeAssetPriceModifier: bigint,
277
287
  l1ToL2Messages: Fr[],
278
288
  previousCheckpointOutHashes: Fr[],
279
289
  _fork: MerkleTreeWriteOperations,
@@ -285,6 +295,7 @@ export class MockCheckpointsBuilder implements ICheckpointsBuilder {
285
295
  l1ToL2Messages,
286
296
  previousCheckpointOutHashes,
287
297
  existingBlocks,
298
+ feeAssetPriceModifier,
288
299
  });
289
300
 
290
301
  if (!this.checkpointBuilder) {
package/src/test/utils.ts CHANGED
@@ -56,6 +56,7 @@ export async function makeBlock(txs: Tx[], globalVariables: GlobalVariables): Pr
56
56
  export function mockPendingTxs(p2p: MockProxy<P2P>, txs: Tx[]): void {
57
57
  p2p.getPendingTxCount.mockResolvedValue(txs.length);
58
58
  p2p.iteratePendingTxs.mockImplementation(() => mockTxIterator(Promise.resolve(txs)));
59
+ p2p.iterateEligiblePendingTxs.mockImplementation(() => mockTxIterator(Promise.resolve(txs)));
59
60
  }
60
61
 
61
62
  /**
@@ -118,10 +119,11 @@ export function createCheckpointProposal(
118
119
  block: L2Block,
119
120
  checkpointSignature: Signature,
120
121
  blockSignature?: Signature,
122
+ feeAssetPriceModifier: bigint = 0n,
121
123
  ): CheckpointProposal {
122
124
  const txHashes = block.body.txEffects.map(tx => tx.txHash);
123
125
  const checkpointHeader = createCheckpointHeaderFromBlock(block);
124
- return new CheckpointProposal(checkpointHeader, block.archive.root, checkpointSignature, {
126
+ return new CheckpointProposal(checkpointHeader, block.archive.root, feeAssetPriceModifier, checkpointSignature, {
125
127
  blockHeader: block.header,
126
128
  indexWithinCheckpoint: block.indexWithinCheckpoint,
127
129
  txHashes,
@@ -138,9 +140,10 @@ export function createCheckpointAttestation(
138
140
  block: L2Block,
139
141
  signature: Signature,
140
142
  sender: EthAddress,
143
+ feeAssetPriceModifier: bigint = 0n,
141
144
  ): CheckpointAttestation {
142
145
  const checkpointHeader = createCheckpointHeaderFromBlock(block);
143
- const payload = new ConsensusPayload(checkpointHeader, block.archive.root);
146
+ const payload = new ConsensusPayload(checkpointHeader, block.archive.root, feeAssetPriceModifier);
144
147
  const attestation = new CheckpointAttestation(payload, signature, signature);
145
148
  // Set sender directly for testing (bypasses signature recovery)
146
149
  (attestation as any).sender = sender;