@aztec/sequencer-client 2.0.0-rc.7 → 2.0.2-rc.1

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.
@@ -21,9 +21,10 @@ import { Sequencer, type SequencerConfig } from '../sequencer/index.js';
21
21
  export declare class SequencerClient {
22
22
  protected publisherManager: PublisherManager<L1TxUtilsWithBlobs>;
23
23
  protected sequencer: Sequencer;
24
+ protected blockBuilder: IFullNodeBlockBuilder;
24
25
  protected validatorClient?: ValidatorClient | undefined;
25
26
  private l1Metrics?;
26
- constructor(publisherManager: PublisherManager<L1TxUtilsWithBlobs>, sequencer: Sequencer, validatorClient?: ValidatorClient | undefined, l1Metrics?: L1Metrics | undefined);
27
+ constructor(publisherManager: PublisherManager<L1TxUtilsWithBlobs>, sequencer: Sequencer, blockBuilder: IFullNodeBlockBuilder, validatorClient?: ValidatorClient | undefined, l1Metrics?: L1Metrics | undefined);
27
28
  /**
28
29
  * Initializes a new instance.
29
30
  * @param config - Configuration for the sequencer, publisher, and L1 tx sender.
@@ -1 +1 @@
1
- {"version":3,"file":"sequencer-client.d.ts","sourceRoot":"","sources":["../../src/client/sequencer-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAEL,gBAAgB,EAIjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EACV,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEpF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExE;;GAEG;AACH,qBAAa,eAAe;IAExB,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,kBAAkB,CAAC;IAChE,SAAS,CAAC,SAAS,EAAE,SAAS;IAC9B,SAAS,CAAC,eAAe,CAAC,EAAE,eAAe;IAC3C,OAAO,CAAC,SAAS,CAAC;gBAHR,gBAAgB,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EACtD,SAAS,EAAE,SAAS,EACpB,eAAe,CAAC,EAAE,eAAe,YAAA,EACnC,SAAS,CAAC,EAAE,SAAS,YAAA;IAG/B;;;;;;;;;;;OAWG;WACiB,GAAG,CACrB,MAAM,EAAE,qBAAqB,EAC7B,IAAI,EAAE;QACJ,eAAe,EAAE,eAAe,GAAG,SAAS,CAAC;QAC7C,SAAS,EAAE,GAAG,CAAC;QACf,sBAAsB,EAAE,sBAAsB,CAAC;QAC/C,aAAa,EAAE,sBAAsB,GAAG,SAAS,CAAC;QAClD,YAAY,EAAE,qBAAqB,CAAC;QACpC,aAAa,EAAE,aAAa,CAAC;QAC7B,mBAAmB,EAAE,mBAAmB,CAAC;QACzC,SAAS,EAAE,eAAe,CAAC;QAC3B,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;QAC7C,cAAc,CAAC,EAAE,uBAAuB,CAAC;QACzC,YAAY,EAAE,YAAY,CAAC;QAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,SAAS,EAAE,kBAAkB,EAAE,CAAC;QAChC,YAAY,EAAE,eAAe,CAAC;KAC/B;IAoHH;;;OAGG;IACI,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAKhF,4BAA4B;IACf,KAAK;IAMlB;;OAEG;IACU,IAAI;IAMV,YAAY,IAAI,SAAS;IAIhC,IAAI,kBAAkB,IAAI,UAAU,EAAE,GAAG,SAAS,CAEjD;IAED,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;CACF"}
1
+ {"version":3,"file":"sequencer-client.d.ts","sourceRoot":"","sources":["../../src/client/sequencer-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAEL,gBAAgB,EAIjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EACV,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEpF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExE;;GAEG;AACH,qBAAa,eAAe;IAExB,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,kBAAkB,CAAC;IAChE,SAAS,CAAC,SAAS,EAAE,SAAS;IAC9B,SAAS,CAAC,YAAY,EAAE,qBAAqB;IAC7C,SAAS,CAAC,eAAe,CAAC,EAAE,eAAe;IAC3C,OAAO,CAAC,SAAS,CAAC;gBAJR,gBAAgB,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EACtD,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,qBAAqB,EACnC,eAAe,CAAC,EAAE,eAAe,YAAA,EACnC,SAAS,CAAC,EAAE,SAAS,YAAA;IAG/B;;;;;;;;;;;OAWG;WACiB,GAAG,CACrB,MAAM,EAAE,qBAAqB,EAC7B,IAAI,EAAE;QACJ,eAAe,EAAE,eAAe,GAAG,SAAS,CAAC;QAC7C,SAAS,EAAE,GAAG,CAAC;QACf,sBAAsB,EAAE,sBAAsB,CAAC;QAC/C,aAAa,EAAE,sBAAsB,GAAG,SAAS,CAAC;QAClD,YAAY,EAAE,qBAAqB,CAAC;QACpC,aAAa,EAAE,aAAa,CAAC;QAC7B,mBAAmB,EAAE,mBAAmB,CAAC;QACzC,SAAS,EAAE,eAAe,CAAC;QAC3B,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;QAC7C,cAAc,CAAC,EAAE,uBAAuB,CAAC;QACzC,YAAY,EAAE,YAAY,CAAC;QAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,SAAS,EAAE,kBAAkB,EAAE,CAAC;QAChC,YAAY,EAAE,eAAe,CAAC;KAC/B;IAkHH;;;OAGG;IACI,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAMhF,4BAA4B;IACf,KAAK;IAMlB;;OAEG;IACU,IAAI;IAMV,YAAY,IAAI,SAAS;IAIhC,IAAI,kBAAkB,IAAI,UAAU,EAAE,GAAG,SAAS,CAEjD;IAED,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;CACF"}
@@ -13,11 +13,13 @@ import { Sequencer } from '../sequencer/index.js';
13
13
  */ export class SequencerClient {
14
14
  publisherManager;
15
15
  sequencer;
16
+ blockBuilder;
16
17
  validatorClient;
17
18
  l1Metrics;
18
- constructor(publisherManager, sequencer, validatorClient, l1Metrics){
19
+ constructor(publisherManager, sequencer, blockBuilder, validatorClient, l1Metrics){
19
20
  this.publisherManager = publisherManager;
20
21
  this.sequencer = sequencer;
22
+ this.blockBuilder = blockBuilder;
21
23
  this.validatorClient = validatorClient;
22
24
  this.l1Metrics = l1Metrics;
23
25
  }
@@ -50,9 +52,7 @@ import { Sequencer } from '../sequencer/index.js';
50
52
  l1RpcUrls: rpcUrls,
51
53
  l1ChainId: chainId,
52
54
  viemPollingIntervalMS: config.viemPollingIntervalMS,
53
- aztecSlotDuration: config.aztecSlotDuration,
54
- ethereumSlotDuration: config.ethereumSlotDuration,
55
- aztecEpochDuration: config.aztecEpochDuration
55
+ ethereumSlotDuration: config.ethereumSlotDuration
56
56
  }, {
57
57
  dateProvider: deps.dateProvider
58
58
  });
@@ -94,13 +94,14 @@ import { Sequencer } from '../sequencer/index.js';
94
94
  maxL2BlockGas: sequencerManaLimit
95
95
  }, telemetryClient);
96
96
  await sequencer.init();
97
- return new SequencerClient(publisherManager, sequencer, validatorClient, l1Metrics);
97
+ return new SequencerClient(publisherManager, sequencer, blockBuilder, validatorClient, l1Metrics);
98
98
  }
99
99
  /**
100
100
  * Updates sequencer and validator client config.
101
101
  * @param config - New parameters.
102
102
  */ updateConfig(config) {
103
103
  this.sequencer.updateConfig(config);
104
+ this.blockBuilder.updateConfig(config);
104
105
  this.validatorClient?.updateConfig(config);
105
106
  }
106
107
  /** Starts the sequencer. */ async start() {
@@ -278,13 +278,13 @@ export class SequencerPublisher {
278
278
  return undefined;
279
279
  }
280
280
  const { reason, block } = validationResult;
281
- const blockNumber = block.block.number;
281
+ const blockNumber = block.blockNumber;
282
282
  const logData = {
283
- ...block.block.toBlockInfo(),
283
+ ...block,
284
284
  reason
285
285
  };
286
286
  const currentBlockNumber = await this.rollupContract.getBlockNumber();
287
- if (currentBlockNumber < validationResult.block.block.number) {
287
+ if (currentBlockNumber < validationResult.block.blockNumber) {
288
288
  this.log.verbose(`Skipping block ${blockNumber} invalidation since it has already been removed from the pending chain`, {
289
289
  currentBlockNumber,
290
290
  ...logData
@@ -292,7 +292,10 @@ export class SequencerPublisher {
292
292
  return undefined;
293
293
  }
294
294
  const request = this.buildInvalidateBlockRequest(validationResult);
295
- this.log.debug(`Simulating invalidate block ${blockNumber}`, logData);
295
+ this.log.debug(`Simulating invalidate block ${blockNumber}`, {
296
+ ...logData,
297
+ request
298
+ });
296
299
  try {
297
300
  const { gasUsed } = await this.l1TxUtils.simulate(request, undefined, undefined, ErrorsAbi);
298
301
  this.log.verbose(`Simulation for invalidate block ${blockNumber} succeeded`, {
@@ -341,16 +344,16 @@ export class SequencerPublisher {
341
344
  if (validationResult.valid) {
342
345
  throw new Error('Cannot invalidate a valid block');
343
346
  }
344
- const { block, committee, reason } = validationResult;
347
+ const { block, committee, reason, attestations } = validationResult;
345
348
  const logData = {
346
- ...block.block.toBlockInfo(),
349
+ ...block,
347
350
  reason
348
351
  };
349
- this.log.debug(`Simulating invalidate block ${block.block.number}`, logData);
352
+ this.log.debug(`Simulating invalidate block ${block.blockNumber}`, logData);
350
353
  if (reason === 'invalid-attestation') {
351
- return this.rollupContract.buildInvalidateBadAttestationRequest(block.block.number, block.attestations.map((a)=>a.toViem()), committee, validationResult.invalidIndex);
354
+ return this.rollupContract.buildInvalidateBadAttestationRequest(block.blockNumber, attestations.map((a)=>a.toViem()), committee, validationResult.invalidIndex);
352
355
  } else if (reason === 'insufficient-attestations') {
353
- return this.rollupContract.buildInvalidateInsufficientAttestationsRequest(block.block.number, block.attestations.map((a)=>a.toViem()), committee);
356
+ return this.rollupContract.buildInvalidateInsufficientAttestationsRequest(block.blockNumber, attestations.map((a)=>a.toViem()), committee);
354
357
  } else {
355
358
  const _ = reason;
356
359
  throw new Error(`Unknown reason for invalidation`);
@@ -1,14 +1,12 @@
1
1
  import type { Fr } from '@aztec/foundation/fields';
2
2
  import { DateProvider } from '@aztec/foundation/timer';
3
3
  import { PublicProcessor } from '@aztec/simulator/server';
4
- import type { ChainConfig, SequencerConfig } from '@aztec/stdlib/config';
5
4
  import type { ContractDataSource } from '@aztec/stdlib/contract';
6
5
  import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
7
- import type { BuildBlockResult, IFullNodeBlockBuilder, MerkleTreeWriteOperations, PublicProcessorLimits, PublicProcessorValidator, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
6
+ import type { BuildBlockResult, FullNodeBlockBuilderConfig, IFullNodeBlockBuilder, MerkleTreeWriteOperations, PublicProcessorLimits, PublicProcessorValidator, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
8
7
  import { GlobalVariables, Tx } from '@aztec/stdlib/tx';
9
8
  import { type TelemetryClient } from '@aztec/telemetry-client';
10
9
  export declare function buildBlock(pendingTxs: Iterable<Tx> | AsyncIterable<Tx>, l1ToL2Messages: Fr[], newGlobalVariables: GlobalVariables, opts: PublicProcessorLimits | undefined, worldStateFork: MerkleTreeWriteOperations, processor: PublicProcessor, validator: PublicProcessorValidator, l1Constants: Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration'>, dateProvider: DateProvider, telemetryClient?: TelemetryClient): Promise<BuildBlockResult>;
11
- type FullNodeBlockBuilderConfig = Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration'> & Pick<ChainConfig, 'l1ChainId' | 'rollupVersion'> & Pick<SequencerConfig, 'txPublicSetupAllowList' | 'fakeProcessingDelayPerTxMs'>;
12
10
  export declare class FullNodeBlockBuilder implements IFullNodeBlockBuilder {
13
11
  private config;
14
12
  private worldState;
@@ -17,7 +15,7 @@ export declare class FullNodeBlockBuilder implements IFullNodeBlockBuilder {
17
15
  private telemetryClient;
18
16
  constructor(config: FullNodeBlockBuilderConfig, worldState: WorldStateSynchronizer, contractDataSource: ContractDataSource, dateProvider: DateProvider, telemetryClient?: TelemetryClient);
19
17
  getConfig(): FullNodeBlockBuilderConfig;
20
- updateConfig(config: FullNodeBlockBuilderConfig): void;
18
+ updateConfig(config: Partial<FullNodeBlockBuilderConfig>): void;
21
19
  makeBlockBuilderDeps(globalVariables: GlobalVariables, fork: MerkleTreeWriteOperations): Promise<{
22
20
  processor: PublicProcessor;
23
21
  validator: PublicProcessorValidator;
@@ -26,5 +24,4 @@ export declare class FullNodeBlockBuilder implements IFullNodeBlockBuilder {
26
24
  buildBlock(pendingTxs: Iterable<Tx> | AsyncIterable<Tx>, l1ToL2Messages: Fr[], globalVariables: GlobalVariables, opts: PublicProcessorLimits, suppliedFork?: MerkleTreeWriteOperations): Promise<BuildBlockResult>;
27
25
  getFork(blockNumber: number): Promise<MerkleTreeWriteOperations>;
28
26
  }
29
- export {};
30
27
  //# sourceMappingURL=block_builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"block_builder.d.ts","sourceRoot":"","sources":["../../src/sequencer/block_builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAInD,OAAO,EAAE,YAAY,EAAS,MAAM,yBAAyB,CAAC;AAG9D,OAAO,EAGL,eAAe,EAEhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,KAAK,iBAAiB,EAAuB,MAAM,6BAA6B,CAAC;AAE1F,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAMnF,wBAAsB,UAAU,CAC9B,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,EAC5C,cAAc,EAAE,EAAE,EAAE,EACpB,kBAAkB,EAAE,eAAe,EACnC,IAAI,EAAE,qBAAqB,YAAK,EAChC,cAAc,EAAE,yBAAyB,EACzC,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,wBAAwB,EACnC,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,GAAG,cAAc,CAAC,EACtE,YAAY,EAAE,YAAY,EAC1B,eAAe,GAAE,eAAsC,GACtD,OAAO,CAAC,gBAAgB,CAAC,CA4C3B;AAED,KAAK,0BAA0B,GAAG,IAAI,CAAC,iBAAiB,EAAE,eAAe,GAAG,cAAc,CAAC,GACzF,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,eAAe,CAAC,GAChD,IAAI,CAAC,eAAe,EAAE,wBAAwB,GAAG,4BAA4B,CAAC,CAAC;AAEjF,qBAAa,oBAAqB,YAAW,qBAAqB;IAE9D,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,eAAe;gBAJf,MAAM,EAAE,0BAA0B,EAClC,UAAU,EAAE,sBAAsB,EAClC,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,eAAe,GAAE,eAAsC;IAG1D,SAAS,IAAI,0BAA0B;IAYvC,YAAY,CAAC,MAAM,EAAE,0BAA0B;IAIzC,oBAAoB,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,yBAAyB;;;;YAuCrF,mBAAmB;IAU3B,UAAU,CACd,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,EAC5C,cAAc,EAAE,EAAE,EAAE,EACpB,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,qBAAqB,EAC3B,YAAY,CAAC,EAAE,yBAAyB,GACvC,OAAO,CAAC,gBAAgB,CAAC;IAwC5B,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAGjE"}
1
+ {"version":3,"file":"block_builder.d.ts","sourceRoot":"","sources":["../../src/sequencer/block_builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAInD,OAAO,EAAE,YAAY,EAAS,MAAM,yBAAyB,CAAC;AAG9D,OAAO,EAGL,eAAe,EAEhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,KAAK,iBAAiB,EAAuB,MAAM,6BAA6B,CAAC;AAE1F,OAAO,KAAK,EACV,gBAAgB,EAChB,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAMnF,wBAAsB,UAAU,CAC9B,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,EAC5C,cAAc,EAAE,EAAE,EAAE,EACpB,kBAAkB,EAAE,eAAe,EACnC,IAAI,EAAE,qBAAqB,YAAK,EAChC,cAAc,EAAE,yBAAyB,EACzC,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,wBAAwB,EACnC,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,GAAG,cAAc,CAAC,EACtE,YAAY,EAAE,YAAY,EAC1B,eAAe,GAAE,eAAsC,GACtD,OAAO,CAAC,gBAAgB,CAAC,CA4C3B;AAWD,qBAAa,oBAAqB,YAAW,qBAAqB;IAE9D,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,eAAe;gBAJf,MAAM,EAAE,0BAA0B,EAClC,UAAU,EAAE,sBAAsB,EAClC,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,eAAe,GAAE,eAAsC;IAG1D,SAAS,IAAI,0BAA0B;IAIvC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,0BAA0B,CAAC;IAIlD,oBAAoB,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,yBAAyB;;;;YAuCrF,mBAAmB;IAU3B,UAAU,CACd,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,EAC5C,cAAc,EAAE,EAAE,EAAE,EACpB,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,qBAAqB,EAC3B,YAAY,CAAC,EAAE,yBAAyB,GACvC,OAAO,CAAC,gBAAgB,CAAC;IAwC5B,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAGjE"}
@@ -1,5 +1,5 @@
1
1
  import { MerkleTreeId, elapsed } from '@aztec/aztec.js';
2
- import { pick } from '@aztec/foundation/collection';
2
+ import { merge, pick } from '@aztec/foundation/collection';
3
3
  import { createLogger } from '@aztec/foundation/log';
4
4
  import { retryUntil } from '@aztec/foundation/retry';
5
5
  import { bufferToHex } from '@aztec/foundation/string';
@@ -50,6 +50,14 @@ export async function buildBlock(pendingTxs, l1ToL2Messages, newGlobalVariables,
50
50
  log.trace('Built block', res.block.header);
51
51
  return res;
52
52
  }
53
+ const FullNodeBlockBuilderConfigKeys = [
54
+ 'l1GenesisTime',
55
+ 'slotDuration',
56
+ 'l1ChainId',
57
+ 'rollupVersion',
58
+ 'txPublicSetupAllowList',
59
+ 'fakeProcessingDelayPerTxMs'
60
+ ];
53
61
  export class FullNodeBlockBuilder {
54
62
  config;
55
63
  worldState;
@@ -64,10 +72,10 @@ export class FullNodeBlockBuilder {
64
72
  this.telemetryClient = telemetryClient;
65
73
  }
66
74
  getConfig() {
67
- return pick(this.config, 'l1GenesisTime', 'slotDuration', 'l1ChainId', 'rollupVersion', 'txPublicSetupAllowList', 'fakeProcessingDelayPerTxMs');
75
+ return pick(this.config, ...FullNodeBlockBuilderConfigKeys);
68
76
  }
69
77
  updateConfig(config) {
70
- this.config = config;
78
+ this.config = merge(this.config, pick(config, ...FullNodeBlockBuilderConfigKeys));
71
79
  }
72
80
  async makeBlockBuilderDeps(globalVariables, fork) {
73
81
  const txPublicSetupAllowList = this.config.txPublicSetupAllowList ?? await getDefaultAllowedSetupFunctions();
@@ -1 +1 @@
1
- {"version":3,"file":"sequencer.d.ts","sourceRoot":"","sources":["../../src/sequencer/sequencer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sequencer.d.ts","sourceRoot":"","sources":["../../src/sequencer/sequencer.ts"],"names":[],"mappings":"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"}
@@ -416,7 +416,12 @@ export { SequencerState };
416
416
  secondsIntoSlot = this.getSecondsIntoSlot(slotNumber);
417
417
  this.timetable.assertTimeLeft(proposedState, secondsIntoSlot);
418
418
  }
419
- this.log.debug(`Transitioning from ${this.state} to ${proposedState}`, {
419
+ const boringStates = [
420
+ SequencerState.IDLE,
421
+ SequencerState.SYNCHRONIZING
422
+ ];
423
+ const logLevel = boringStates.includes(proposedState) && boringStates.includes(this.state) ? 'trace' : 'debug';
424
+ this.log[logLevel](`Transitioning from ${this.state} to ${proposedState}`, {
420
425
  slotNumber,
421
426
  secondsIntoSlot
422
427
  });
@@ -654,14 +659,14 @@ export { SequencerState };
654
659
  if (pendingChainValidationStatus.valid) {
655
660
  return;
656
661
  }
657
- const invalidL1Timestamp = pendingChainValidationStatus.block.l1.timestamp;
658
- const timeSinceChainInvalid = this.dateProvider.nowInSeconds() - Number(invalidL1Timestamp);
659
- const invalidBlockNumber = pendingChainValidationStatus.block.block.number;
662
+ const invalidBlockNumber = pendingChainValidationStatus.block.blockNumber;
663
+ const invalidBlockTimestamp = pendingChainValidationStatus.block.timestamp;
664
+ const timeSinceChainInvalid = this.dateProvider.nowInSeconds() - Number(invalidBlockTimestamp);
660
665
  const { secondsBeforeInvalidatingBlockAsCommitteeMember, secondsBeforeInvalidatingBlockAsNonCommitteeMember } = this.config;
661
666
  const logData = {
662
- invalidL1Timestamp,
667
+ invalidL1Timestamp: invalidBlockTimestamp,
663
668
  l1Timestamp,
664
- invalidBlock: pendingChainValidationStatus.block.block.toBlockInfo(),
669
+ invalidBlock: pendingChainValidationStatus.block,
665
670
  secondsBeforeInvalidatingBlockAsCommitteeMember,
666
671
  secondsBeforeInvalidatingBlockAsNonCommitteeMember,
667
672
  ourValidatorAddresses,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/sequencer-client",
3
- "version": "2.0.0-rc.7",
3
+ "version": "2.0.2-rc.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -26,37 +26,37 @@
26
26
  "test:integration:run": "NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --no-cache --config jest.integration.config.json"
27
27
  },
28
28
  "dependencies": {
29
- "@aztec/aztec.js": "2.0.0-rc.7",
30
- "@aztec/bb-prover": "2.0.0-rc.7",
31
- "@aztec/blob-lib": "2.0.0-rc.7",
32
- "@aztec/blob-sink": "2.0.0-rc.7",
33
- "@aztec/constants": "2.0.0-rc.7",
34
- "@aztec/epoch-cache": "2.0.0-rc.7",
35
- "@aztec/ethereum": "2.0.0-rc.7",
36
- "@aztec/foundation": "2.0.0-rc.7",
37
- "@aztec/l1-artifacts": "2.0.0-rc.7",
38
- "@aztec/merkle-tree": "2.0.0-rc.7",
39
- "@aztec/noir-acvm_js": "2.0.0-rc.7",
40
- "@aztec/noir-contracts.js": "2.0.0-rc.7",
41
- "@aztec/noir-protocol-circuits-types": "2.0.0-rc.7",
42
- "@aztec/noir-types": "2.0.0-rc.7",
43
- "@aztec/p2p": "2.0.0-rc.7",
44
- "@aztec/protocol-contracts": "2.0.0-rc.7",
45
- "@aztec/prover-client": "2.0.0-rc.7",
46
- "@aztec/simulator": "2.0.0-rc.7",
47
- "@aztec/slasher": "2.0.0-rc.7",
48
- "@aztec/stdlib": "2.0.0-rc.7",
49
- "@aztec/telemetry-client": "2.0.0-rc.7",
50
- "@aztec/validator-client": "2.0.0-rc.7",
51
- "@aztec/world-state": "2.0.0-rc.7",
29
+ "@aztec/aztec.js": "2.0.2-rc.1",
30
+ "@aztec/bb-prover": "2.0.2-rc.1",
31
+ "@aztec/blob-lib": "2.0.2-rc.1",
32
+ "@aztec/blob-sink": "2.0.2-rc.1",
33
+ "@aztec/constants": "2.0.2-rc.1",
34
+ "@aztec/epoch-cache": "2.0.2-rc.1",
35
+ "@aztec/ethereum": "2.0.2-rc.1",
36
+ "@aztec/foundation": "2.0.2-rc.1",
37
+ "@aztec/l1-artifacts": "2.0.2-rc.1",
38
+ "@aztec/merkle-tree": "2.0.2-rc.1",
39
+ "@aztec/noir-acvm_js": "2.0.2-rc.1",
40
+ "@aztec/noir-contracts.js": "2.0.2-rc.1",
41
+ "@aztec/noir-protocol-circuits-types": "2.0.2-rc.1",
42
+ "@aztec/noir-types": "2.0.2-rc.1",
43
+ "@aztec/p2p": "2.0.2-rc.1",
44
+ "@aztec/protocol-contracts": "2.0.2-rc.1",
45
+ "@aztec/prover-client": "2.0.2-rc.1",
46
+ "@aztec/simulator": "2.0.2-rc.1",
47
+ "@aztec/slasher": "2.0.2-rc.1",
48
+ "@aztec/stdlib": "2.0.2-rc.1",
49
+ "@aztec/telemetry-client": "2.0.2-rc.1",
50
+ "@aztec/validator-client": "2.0.2-rc.1",
51
+ "@aztec/world-state": "2.0.2-rc.1",
52
52
  "lodash.chunk": "^4.2.0",
53
53
  "lodash.pick": "^4.4.0",
54
54
  "tslib": "^2.4.0",
55
55
  "viem": "2.23.7"
56
56
  },
57
57
  "devDependencies": {
58
- "@aztec/archiver": "2.0.0-rc.7",
59
- "@aztec/kv-store": "2.0.0-rc.7",
58
+ "@aztec/archiver": "2.0.2-rc.1",
59
+ "@aztec/kv-store": "2.0.2-rc.1",
60
60
  "@jest/globals": "^30.0.0",
61
61
  "@types/jest": "^30.0.0",
62
62
  "@types/lodash.chunk": "^4.2.7",
@@ -37,6 +37,7 @@ export class SequencerClient {
37
37
  constructor(
38
38
  protected publisherManager: PublisherManager<L1TxUtilsWithBlobs>,
39
39
  protected sequencer: Sequencer,
40
+ protected blockBuilder: IFullNodeBlockBuilder,
40
41
  protected validatorClient?: ValidatorClient,
41
42
  private l1Metrics?: L1Metrics,
42
43
  ) {}
@@ -110,9 +111,7 @@ export class SequencerClient {
110
111
  l1RpcUrls: rpcUrls,
111
112
  l1ChainId: chainId,
112
113
  viemPollingIntervalMS: config.viemPollingIntervalMS,
113
- aztecSlotDuration: config.aztecSlotDuration,
114
114
  ethereumSlotDuration: config.ethereumSlotDuration,
115
- aztecEpochDuration: config.aztecEpochDuration,
116
115
  },
117
116
  { dateProvider: deps.dateProvider },
118
117
  ));
@@ -183,7 +182,7 @@ export class SequencerClient {
183
182
 
184
183
  await sequencer.init();
185
184
 
186
- return new SequencerClient(publisherManager, sequencer, validatorClient, l1Metrics);
185
+ return new SequencerClient(publisherManager, sequencer, blockBuilder, validatorClient, l1Metrics);
187
186
  }
188
187
 
189
188
  /**
@@ -192,6 +191,7 @@ export class SequencerClient {
192
191
  */
193
192
  public updateConfig(config: SequencerConfig & Partial<ValidatorClientFullConfig>) {
194
193
  this.sequencer.updateConfig(config);
194
+ this.blockBuilder.updateConfig(config);
195
195
  this.validatorClient?.updateConfig(config);
196
196
  }
197
197
 
@@ -385,11 +385,11 @@ export class SequencerPublisher {
385
385
  }
386
386
 
387
387
  const { reason, block } = validationResult;
388
- const blockNumber = block.block.number;
389
- const logData = { ...block.block.toBlockInfo(), reason };
388
+ const blockNumber = block.blockNumber;
389
+ const logData = { ...block, reason };
390
390
 
391
391
  const currentBlockNumber = await this.rollupContract.getBlockNumber();
392
- if (currentBlockNumber < validationResult.block.block.number) {
392
+ if (currentBlockNumber < validationResult.block.blockNumber) {
393
393
  this.log.verbose(
394
394
  `Skipping block ${blockNumber} invalidation since it has already been removed from the pending chain`,
395
395
  { currentBlockNumber, ...logData },
@@ -398,7 +398,7 @@ export class SequencerPublisher {
398
398
  }
399
399
 
400
400
  const request = this.buildInvalidateBlockRequest(validationResult);
401
- this.log.debug(`Simulating invalidate block ${blockNumber}`, logData);
401
+ this.log.debug(`Simulating invalidate block ${blockNumber}`, { ...logData, request });
402
402
 
403
403
  try {
404
404
  const { gasUsed } = await this.l1TxUtils.simulate(request, undefined, undefined, ErrorsAbi);
@@ -442,21 +442,21 @@ export class SequencerPublisher {
442
442
  throw new Error('Cannot invalidate a valid block');
443
443
  }
444
444
 
445
- const { block, committee, reason } = validationResult;
446
- const logData = { ...block.block.toBlockInfo(), reason };
447
- this.log.debug(`Simulating invalidate block ${block.block.number}`, logData);
445
+ const { block, committee, reason, attestations } = validationResult;
446
+ const logData = { ...block, reason };
447
+ this.log.debug(`Simulating invalidate block ${block.blockNumber}`, logData);
448
448
 
449
449
  if (reason === 'invalid-attestation') {
450
450
  return this.rollupContract.buildInvalidateBadAttestationRequest(
451
- block.block.number,
452
- block.attestations.map(a => a.toViem()),
451
+ block.blockNumber,
452
+ attestations.map(a => a.toViem()),
453
453
  committee,
454
454
  validationResult.invalidIndex,
455
455
  );
456
456
  } else if (reason === 'insufficient-attestations') {
457
457
  return this.rollupContract.buildInvalidateInsufficientAttestationsRequest(
458
- block.block.number,
459
- block.attestations.map(a => a.toViem()),
458
+ block.blockNumber,
459
+ attestations.map(a => a.toViem()),
460
460
  committee,
461
461
  );
462
462
  } else {
@@ -1,5 +1,5 @@
1
1
  import { MerkleTreeId, elapsed } from '@aztec/aztec.js';
2
- import { pick } from '@aztec/foundation/collection';
2
+ import { merge, pick } from '@aztec/foundation/collection';
3
3
  import type { Fr } from '@aztec/foundation/fields';
4
4
  import { createLogger } from '@aztec/foundation/log';
5
5
  import { retryUntil } from '@aztec/foundation/retry';
@@ -13,12 +13,12 @@ import {
13
13
  PublicProcessor,
14
14
  TelemetryPublicTxSimulator,
15
15
  } from '@aztec/simulator/server';
16
- import type { ChainConfig, SequencerConfig } from '@aztec/stdlib/config';
17
16
  import type { ContractDataSource } from '@aztec/stdlib/contract';
18
17
  import { type L1RollupConstants, getTimestampForSlot } from '@aztec/stdlib/epoch-helpers';
19
18
  import { Gas } from '@aztec/stdlib/gas';
20
19
  import type {
21
20
  BuildBlockResult,
21
+ FullNodeBlockBuilderConfig,
22
22
  IFullNodeBlockBuilder,
23
23
  MerkleTreeWriteOperations,
24
24
  PublicProcessorLimits,
@@ -89,9 +89,14 @@ export async function buildBlock(
89
89
  return res;
90
90
  }
91
91
 
92
- type FullNodeBlockBuilderConfig = Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration'> &
93
- Pick<ChainConfig, 'l1ChainId' | 'rollupVersion'> &
94
- Pick<SequencerConfig, 'txPublicSetupAllowList' | 'fakeProcessingDelayPerTxMs'>;
92
+ const FullNodeBlockBuilderConfigKeys = [
93
+ 'l1GenesisTime',
94
+ 'slotDuration',
95
+ 'l1ChainId',
96
+ 'rollupVersion',
97
+ 'txPublicSetupAllowList',
98
+ 'fakeProcessingDelayPerTxMs',
99
+ ] as const;
95
100
 
96
101
  export class FullNodeBlockBuilder implements IFullNodeBlockBuilder {
97
102
  constructor(
@@ -103,19 +108,11 @@ export class FullNodeBlockBuilder implements IFullNodeBlockBuilder {
103
108
  ) {}
104
109
 
105
110
  public getConfig(): FullNodeBlockBuilderConfig {
106
- return pick(
107
- this.config,
108
- 'l1GenesisTime',
109
- 'slotDuration',
110
- 'l1ChainId',
111
- 'rollupVersion',
112
- 'txPublicSetupAllowList',
113
- 'fakeProcessingDelayPerTxMs',
114
- );
111
+ return pick(this.config, ...FullNodeBlockBuilderConfigKeys);
115
112
  }
116
113
 
117
- public updateConfig(config: FullNodeBlockBuilderConfig) {
118
- this.config = config;
114
+ public updateConfig(config: Partial<FullNodeBlockBuilderConfig>) {
115
+ this.config = merge(this.config, pick(config, ...FullNodeBlockBuilderConfigKeys));
119
116
  }
120
117
 
121
118
  public async makeBlockBuilderDeps(globalVariables: GlobalVariables, fork: MerkleTreeWriteOperations) {
@@ -545,7 +545,13 @@ export class Sequencer extends (EventEmitter as new () => TypedEventEmitter<Sequ
545
545
  this.timetable.assertTimeLeft(proposedState, secondsIntoSlot);
546
546
  }
547
547
 
548
- this.log.debug(`Transitioning from ${this.state} to ${proposedState}`, { slotNumber, secondsIntoSlot });
548
+ const boringStates = [SequencerState.IDLE, SequencerState.SYNCHRONIZING];
549
+ const logLevel =
550
+ boringStates.includes(proposedState) && boringStates.includes(this.state)
551
+ ? ('trace' as const)
552
+ : ('debug' as const);
553
+ this.log[logLevel](`Transitioning from ${this.state} to ${proposedState}`, { slotNumber, secondsIntoSlot });
554
+
549
555
  this.emit('state-changed', {
550
556
  oldState: this.state,
551
557
  newState: proposedState,
@@ -884,17 +890,17 @@ export class Sequencer extends (EventEmitter as new () => TypedEventEmitter<Sequ
884
890
  return;
885
891
  }
886
892
 
887
- const invalidL1Timestamp = pendingChainValidationStatus.block.l1.timestamp;
888
- const timeSinceChainInvalid = this.dateProvider.nowInSeconds() - Number(invalidL1Timestamp);
889
- const invalidBlockNumber = pendingChainValidationStatus.block.block.number;
893
+ const invalidBlockNumber = pendingChainValidationStatus.block.blockNumber;
894
+ const invalidBlockTimestamp = pendingChainValidationStatus.block.timestamp;
895
+ const timeSinceChainInvalid = this.dateProvider.nowInSeconds() - Number(invalidBlockTimestamp);
890
896
 
891
897
  const { secondsBeforeInvalidatingBlockAsCommitteeMember, secondsBeforeInvalidatingBlockAsNonCommitteeMember } =
892
898
  this.config;
893
899
 
894
900
  const logData = {
895
- invalidL1Timestamp,
901
+ invalidL1Timestamp: invalidBlockTimestamp,
896
902
  l1Timestamp,
897
- invalidBlock: pendingChainValidationStatus.block.block.toBlockInfo(),
903
+ invalidBlock: pendingChainValidationStatus.block,
898
904
  secondsBeforeInvalidatingBlockAsCommitteeMember,
899
905
  secondsBeforeInvalidatingBlockAsNonCommitteeMember,
900
906
  ourValidatorAddresses,