@aztec/sequencer-client 4.1.0-rc.4 → 4.2.0-nightly.20260320

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.
@@ -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":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAEzG,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC3G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EAEpB,KAAK,sBAAsB,EAC5B,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,EAAc,KAAK,eAAe,EAAE,KAAK,MAAM,EAAiC,MAAM,yBAAyB,CAAC;AACvH,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAKhH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAC1F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,KAAK,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC3G,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAGrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,CAAC;;AAE1B;;;;;;;GAOG;AACH,qBAAa,SAAU,SAAQ,cAA8D;IA2BzF,SAAS,CAAC,gBAAgB,EAAE,yBAAyB;IACrD,SAAS,CAAC,eAAe,EAAE,eAAe;IAC1C,SAAS,CAAC,cAAc,EAAE,qBAAqB;IAC/C,SAAS,CAAC,SAAS,EAAE,GAAG;IACxB,SAAS,CAAC,UAAU,EAAE,sBAAsB;IAC5C,SAAS,CAAC,aAAa,EAAE,sBAAsB,GAAG,SAAS;IAC3D,SAAS,CAAC,aAAa,EAAE,aAAa,GAAG,WAAW;IACpD,SAAS,CAAC,mBAAmB,EAAE,mBAAmB;IAClD,SAAS,CAAC,kBAAkB,EAAE,0BAA0B;IACxD,SAAS,CAAC,WAAW,EAAE,wBAAwB;IAC/C,SAAS,CAAC,YAAY,EAAE,YAAY;IACpC,SAAS,CAAC,UAAU,EAAE,UAAU;IAChC,SAAS,CAAC,cAAc,EAAE,cAAc;IAExC,SAAS,CAAC,SAAS,EAAE,eAAe;IACpC,SAAS,CAAC,GAAG;IAzCf,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,OAAO,CAAmB;IAElC,uGAAuG;IACvG,OAAO,CAAC,uBAAuB,CAAyB;IAExD,8EAA8E;IAC9E,OAAO,CAAC,6BAA6B,CAAyB;IAE9D,qGAAqG;IACrG,OAAO,CAAC,gCAAgC,CAAyB;IAEjE,0CAA0C;IAC1C,OAAO,CAAC,sBAAsB,CAAyB;IAEvD,gFAAgF;IAChF,OAAO,CAAC,8BAA8B,CAA0B;IAEhE,+GAA+G;IAC/G,SAAS,CAAC,SAAS,EAAG,kBAAkB,CAAC;IAEzC,+BAA+B;IAC/B,SAAS,CAAC,MAAM,EAAE,uBAAuB,CAA0B;IAEnE,YACY,gBAAgB,EAAE,yBAAyB,EAC3C,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,qBAAqB,EACrC,SAAS,EAAE,GAAG,EACd,UAAU,EAAE,sBAAsB,EAClC,aAAa,EAAE,sBAAsB,GAAG,SAAS,EACjD,aAAa,EAAE,aAAa,GAAG,WAAW,EAC1C,mBAAmB,EAAE,mBAAmB,EACxC,kBAAkB,EAAE,0BAA0B,EAC9C,WAAW,EAAE,wBAAwB,EACrC,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EACxC,MAAM,EAAE,eAAe,EACb,SAAS,GAAE,eAAsC,EACjD,GAAG,yCAA4B,EAW1C;IAED,+EAA+E;IACxE,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,QAgBnD;IAED,sEAAsE;IAC/D,IAAI,SAEV;IAED,oDAAoD;IAC7C,KAAK,SASX;IAED,2EAA2E;IAC9D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAOjC;IAED,2CAA2C;IAC3C,UAAgB,QAAQ,kBAoBvB;IAED,kDAAkD;IAC3C,MAAM;;MAEZ;IAED;;;;;;;OAOG;IACH,UACgB,IAAI,oCA4BnB;YAQa,yBAAyB;IA0JvC,SAAS,CAAC,2BAA2B,CACnC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,UAAU,EAChB,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,WAAW,EAChC,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,SAAS,EAAE,kBAAkB,EAC7B,eAAe,EAAE,UAAU,EAC3B,oBAAoB,EAAE,2BAA2B,GAAG,SAAS,GAC5D,qBAAqB,CA8BvB;IAED;;OAEG;IACI,QAAQ,IAAI,cAAc,CAEhC;IAED;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAChB,aAAa,EAAE,cAAc,EAC7B,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAC7B,IAAI,CA6BN;IAED;;;OAGG;IACH,UAAgB,SAAS,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,GAAG,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAqE/G;IAED;;;OAGG;IACH,UAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,CAAC,CAmC5F;IAED;;;OAGG;IACH,UACgB,oBAAoB,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoE1F;IAED;;;OAGG;IACH,UACgB,0BAA0B,CAAC,IAAI,EAAE;QAC/C,IAAI,EAAE,UAAU,CAAC;QACjB,QAAQ,EAAE,UAAU,GAAG,SAAS,CAAC;KAClC,GAAG,OAAO,CAAC,IAAI,CAAC,CAsChB;IAED;;;;;OAKG;IACH,UAAgB,8BAA8B,CAC5C,QAAQ,EAAE,wBAAwB,EAClC,WAAW,EAAE,UAAU,GACtB,OAAO,CAAC,IAAI,CAAC,CAoFf;IAED,OAAO,CAAC,qBAAqB;IA6B7B,OAAO,CAAC,0BAA0B;IAIlC,OAAO,CAAC,kBAAkB;IAK1B,IAAW,iBAAiB,WAE3B;IAED,IAAW,aAAa,IAAI,MAAM,GAAG,SAAS,CAE7C;IAEM,gBAAgB,IAAI,sBAAsB,GAAG,SAAS,CAE5D;IAED,IAAW,MAAM,IAAI,MAAM,CAE1B;IAEM,qBAAqB,iBAE3B;IAED,qFAAqF;IAC9E,2BAA2B,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAErE;IAEM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAEf;IAED,OAAO,KAAK,gBAAgB,GAE3B;CACF;AAED,KAAK,wBAAwB,GAAG;IAC9B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,EAAE,CAAC;IACZ,YAAY,EAAE,UAAU,CAAC;IACzB,4BAA4B,EAAE,wBAAwB,CAAC;CACxD,CAAC"}
@@ -2,7 +2,7 @@ import { type BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-ty
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { L2Block } from '@aztec/stdlib/block';
4
4
  import { Checkpoint } from '@aztec/stdlib/checkpoint';
5
- import type { FullNodeBlockBuilderConfig, ICheckpointBlockBuilder, ICheckpointsBuilder, MerkleTreeWriteOperations, PublicProcessorLimits } from '@aztec/stdlib/interfaces/server';
5
+ import type { BlockBuilderOptions, FullNodeBlockBuilderConfig, ICheckpointBlockBuilder, ICheckpointsBuilder, MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
6
6
  import type { CheckpointGlobalVariables, Tx } from '@aztec/stdlib/tx';
7
7
  import type { BuildBlockInCheckpointResult } from '@aztec/validator-client';
8
8
  /**
@@ -22,9 +22,7 @@ export declare class MockCheckpointBuilder implements ICheckpointBlockBuilder {
22
22
  buildBlockCalls: Array<{
23
23
  blockNumber: BlockNumber;
24
24
  timestamp: bigint;
25
- opts: PublicProcessorLimits & {
26
- minValidTxs?: number;
27
- };
25
+ opts: BlockBuilderOptions;
28
26
  }>;
29
27
  /** Track all consumed transaction hashes across buildBlock calls */
30
28
  consumedTxHashes: Set<string>;
@@ -41,9 +39,7 @@ export declare class MockCheckpointBuilder implements ICheckpointBlockBuilder {
41
39
  */
42
40
  setBlockProvider(provider: () => L2Block): this;
43
41
  getConstantData(): CheckpointGlobalVariables;
44
- buildBlock(pendingTxs: Iterable<Tx> | AsyncIterable<Tx>, blockNumber: BlockNumber, timestamp: bigint, opts: PublicProcessorLimits & {
45
- minValidTxs?: number;
46
- }): Promise<BuildBlockInCheckpointResult>;
42
+ buildBlock(pendingTxs: Iterable<Tx> | AsyncIterable<Tx>, blockNumber: BlockNumber, timestamp: bigint, opts: BlockBuilderOptions): Promise<BuildBlockInCheckpointResult>;
47
43
  completeCheckpoint(): Promise<Checkpoint>;
48
44
  getCheckpoint(): Promise<Checkpoint>;
49
45
  private buildCheckpoint;
@@ -96,4 +92,4 @@ export declare class MockCheckpointsBuilder implements ICheckpointsBuilder {
96
92
  /** Reset for reuse in another test */
97
93
  reset(): void;
98
94
  }
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19jaGVja3BvaW50X2J1aWxkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L21vY2tfY2hlY2twb2ludF9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRSxnQkFBZ0IsRUFBeUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFDViwwQkFBMEIsRUFDMUIsdUJBQXVCLEVBQ3ZCLG1CQUFtQixFQUNuQix5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3RCLE1BQU0saUNBQWlDLENBQUM7QUFHekMsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsRUFBRSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RTs7O0dBR0c7QUFDSCxxQkFBYSxxQkFBc0IsWUFBVyx1QkFBdUI7SUF3QmpFLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUztJQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLGdCQUFnQjtJQXhCbkMsT0FBTyxDQUFDLE1BQU0sQ0FBaUI7SUFDL0IsT0FBTyxDQUFDLFdBQVcsQ0FBaUI7SUFDcEMsT0FBTyxDQUFDLGVBQWUsQ0FBYztJQUNyQyxPQUFPLENBQUMsVUFBVSxDQUFLO0lBRXZCLHFGQUFxRjtJQUNyRixPQUFPLENBQUMsYUFBYSxDQUEwQztJQUUvRCxpQ0FBaUM7SUFDMUIsZUFBZSxFQUFFLEtBQUssQ0FBQztRQUM1QixXQUFXLEVBQUUsV0FBVyxDQUFDO1FBQ3pCLFNBQVMsRUFBRSxNQUFNLENBQUM7UUFDbEIs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
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19jaGVja3BvaW50X2J1aWxkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L21vY2tfY2hlY2twb2ludF9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRSxnQkFBZ0IsRUFBeUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFDVixtQkFBbUIsRUFDbkIsMEJBQTBCLEVBQzFCLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIseUJBQXlCLEVBQzFCLE1BQU0saUNBQWlDLENBQUM7QUFHekMsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsRUFBRSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RTs7O0dBR0c7QUFDSCxxQkFBYSxxQkFBc0IsWUFBVyx1QkFBdUI7SUF3QmpFLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUztJQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLGdCQUFnQjtJQXhCbkMsT0FBTyxDQUFDLE1BQU0sQ0FBaUI7SUFDL0IsT0FBTyxDQUFDLFdBQVcsQ0FBaUI7SUFDcEMsT0FBTyxDQUFDLGVBQWUsQ0FBYztJQUNyQyxPQUFPLENBQUMsVUFBVSxDQUFLO0lBRXZCLHFGQUFxRjtJQUNyRixPQUFPLENBQUMsYUFBYSxDQUEwQztJQUUvRCxpQ0FBaUM7SUFDMUIsZUFBZSxFQUFFLEtBQUssQ0FBQztRQUM1QixXQUFXLEVBQUUsV0FBVyxDQUFDO1FBQ3pCLFNBQVMsRUFBRSxNQUFNLENBQUM7UUFDbEIs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
@@ -1 +1 @@
1
- {"version":3,"file":"mock_checkpoint_builder.d.ts","sourceRoot":"","sources":["../../src/test/mock_checkpoint_builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mock_checkpoint_builder.d.ts","sourceRoot":"","sources":["../../src/test/mock_checkpoint_builder.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/sequencer-client",
3
- "version": "4.1.0-rc.4",
3
+ "version": "4.2.0-nightly.20260320",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -26,38 +26,38 @@
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": "4.1.0-rc.4",
30
- "@aztec/bb-prover": "4.1.0-rc.4",
31
- "@aztec/blob-client": "4.1.0-rc.4",
32
- "@aztec/blob-lib": "4.1.0-rc.4",
33
- "@aztec/constants": "4.1.0-rc.4",
34
- "@aztec/epoch-cache": "4.1.0-rc.4",
35
- "@aztec/ethereum": "4.1.0-rc.4",
36
- "@aztec/foundation": "4.1.0-rc.4",
37
- "@aztec/l1-artifacts": "4.1.0-rc.4",
38
- "@aztec/merkle-tree": "4.1.0-rc.4",
39
- "@aztec/node-keystore": "4.1.0-rc.4",
40
- "@aztec/noir-acvm_js": "4.1.0-rc.4",
41
- "@aztec/noir-contracts.js": "4.1.0-rc.4",
42
- "@aztec/noir-protocol-circuits-types": "4.1.0-rc.4",
43
- "@aztec/noir-types": "4.1.0-rc.4",
44
- "@aztec/p2p": "4.1.0-rc.4",
45
- "@aztec/protocol-contracts": "4.1.0-rc.4",
46
- "@aztec/prover-client": "4.1.0-rc.4",
47
- "@aztec/simulator": "4.1.0-rc.4",
48
- "@aztec/slasher": "4.1.0-rc.4",
49
- "@aztec/stdlib": "4.1.0-rc.4",
50
- "@aztec/telemetry-client": "4.1.0-rc.4",
51
- "@aztec/validator-client": "4.1.0-rc.4",
52
- "@aztec/validator-ha-signer": "4.1.0-rc.4",
53
- "@aztec/world-state": "4.1.0-rc.4",
29
+ "@aztec/aztec.js": "4.2.0-nightly.20260320",
30
+ "@aztec/bb-prover": "4.2.0-nightly.20260320",
31
+ "@aztec/blob-client": "4.2.0-nightly.20260320",
32
+ "@aztec/blob-lib": "4.2.0-nightly.20260320",
33
+ "@aztec/constants": "4.2.0-nightly.20260320",
34
+ "@aztec/epoch-cache": "4.2.0-nightly.20260320",
35
+ "@aztec/ethereum": "4.2.0-nightly.20260320",
36
+ "@aztec/foundation": "4.2.0-nightly.20260320",
37
+ "@aztec/l1-artifacts": "4.2.0-nightly.20260320",
38
+ "@aztec/merkle-tree": "4.2.0-nightly.20260320",
39
+ "@aztec/node-keystore": "4.2.0-nightly.20260320",
40
+ "@aztec/noir-acvm_js": "4.2.0-nightly.20260320",
41
+ "@aztec/noir-contracts.js": "4.2.0-nightly.20260320",
42
+ "@aztec/noir-protocol-circuits-types": "4.2.0-nightly.20260320",
43
+ "@aztec/noir-types": "4.2.0-nightly.20260320",
44
+ "@aztec/p2p": "4.2.0-nightly.20260320",
45
+ "@aztec/protocol-contracts": "4.2.0-nightly.20260320",
46
+ "@aztec/prover-client": "4.2.0-nightly.20260320",
47
+ "@aztec/simulator": "4.2.0-nightly.20260320",
48
+ "@aztec/slasher": "4.2.0-nightly.20260320",
49
+ "@aztec/stdlib": "4.2.0-nightly.20260320",
50
+ "@aztec/telemetry-client": "4.2.0-nightly.20260320",
51
+ "@aztec/validator-client": "4.2.0-nightly.20260320",
52
+ "@aztec/validator-ha-signer": "4.2.0-nightly.20260320",
53
+ "@aztec/world-state": "4.2.0-nightly.20260320",
54
54
  "lodash.chunk": "^4.2.0",
55
55
  "tslib": "^2.4.0",
56
56
  "viem": "npm:@aztec/viem@2.38.2"
57
57
  },
58
58
  "devDependencies": {
59
- "@aztec/archiver": "4.1.0-rc.4",
60
- "@aztec/kv-store": "4.1.0-rc.4",
59
+ "@aztec/archiver": "4.2.0-nightly.20260320",
60
+ "@aztec/kv-store": "4.2.0-nightly.20260320",
61
61
  "@electric-sql/pglite": "^0.3.14",
62
62
  "@jest/globals": "^30.0.0",
63
63
  "@types/jest": "^30.0.0",
@@ -19,15 +19,10 @@ import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
19
19
  import { L1Metrics, type TelemetryClient } from '@aztec/telemetry-client';
20
20
  import { FullNodeCheckpointsBuilder, NodeKeystoreAdapter, type ValidatorClient } from '@aztec/validator-client';
21
21
 
22
- import {
23
- DefaultSequencerConfig,
24
- type SequencerClientConfig,
25
- getPublisherConfigFromSequencerConfig,
26
- } from '../config.js';
22
+ import { type SequencerClientConfig, getPublisherConfigFromSequencerConfig } from '../config.js';
27
23
  import { GlobalVariableBuilder } from '../global_variable_builder/index.js';
28
24
  import { SequencerPublisherFactory } from '../publisher/sequencer-publisher-factory.js';
29
25
  import { Sequencer, type SequencerConfig } from '../sequencer/index.js';
30
- import { SequencerTimetable } from '../sequencer/timetable.js';
31
26
 
32
27
  /**
33
28
  * Encapsulates the full sequencer and publisher.
@@ -160,12 +155,7 @@ export class SequencerClient {
160
155
  const l1PublishingTimeBasedOnChain = isAnvilTestChain(config.l1ChainId) ? 1 : ethereumSlotDuration;
161
156
  const l1PublishingTime = config.l1PublishingTime ?? l1PublishingTimeBasedOnChain;
162
157
 
163
- const { maxL2BlockGas, maxDABlockGas, maxTxsPerBlock } = computeBlockLimits(
164
- config,
165
- rollupManaLimit,
166
- l1PublishingTime,
167
- log,
168
- );
158
+ const { maxL2BlockGas, maxDABlockGas, maxTxsPerBlock } = capPerBlockLimits(config, rollupManaLimit, log);
169
159
 
170
160
  const l1Constants = { l1GenesisTime, slotDuration: Number(slotDuration), ethereumSlotDuration, rollupManaLimit };
171
161
 
@@ -248,88 +238,39 @@ export class SequencerClient {
248
238
  }
249
239
 
250
240
  /**
251
- * Computes per-block L2 gas, DA gas, and TX count budgets based on the L1 rollup limits and the timetable.
252
- * If the user explicitly set a limit, it is capped at the corresponding checkpoint limit.
253
- * Otherwise, derives it as (checkpointLimit / maxBlocks) * multiplier, capped at the checkpoint limit.
241
+ * Caps operator-provided per-block limits at checkpoint-level limits.
242
+ * Returns undefined for any limit the operator didn't set — the checkpoint builder handles redistribution.
254
243
  */
255
- export function computeBlockLimits(
244
+ function capPerBlockLimits(
256
245
  config: SequencerClientConfig,
257
246
  rollupManaLimit: number,
258
- l1PublishingTime: number,
259
247
  log: ReturnType<typeof createLogger>,
260
- ): { maxL2BlockGas: number; maxDABlockGas: number; maxTxsPerBlock: number } {
261
- const maxNumberOfBlocks = new SequencerTimetable({
262
- ethereumSlotDuration: config.ethereumSlotDuration,
263
- aztecSlotDuration: config.aztecSlotDuration,
264
- l1PublishingTime,
265
- p2pPropagationTime: config.attestationPropagationTime,
266
- blockDurationMs: config.blockDurationMs,
267
- enforce: config.enforceTimeTable ?? DefaultSequencerConfig.enforceTimeTable,
268
- }).maxNumberOfBlocks;
269
-
270
- const multiplier = config.perBlockAllocationMultiplier ?? DefaultSequencerConfig.perBlockAllocationMultiplier;
271
-
272
- // Compute maxL2BlockGas
273
- let maxL2BlockGas: number;
274
- if (config.maxL2BlockGas !== undefined) {
275
- if (config.maxL2BlockGas > rollupManaLimit) {
276
- log.warn(
277
- `Provided MAX_L2_BLOCK_GAS ${config.maxL2BlockGas} exceeds L1 rollup mana limit ${rollupManaLimit} (capping)`,
278
- );
279
- maxL2BlockGas = rollupManaLimit;
280
- } else {
281
- maxL2BlockGas = config.maxL2BlockGas;
282
- }
283
- } else {
284
- maxL2BlockGas = Math.min(rollupManaLimit, Math.ceil((rollupManaLimit / maxNumberOfBlocks) * multiplier));
248
+ ): { maxL2BlockGas: number | undefined; maxDABlockGas: number | undefined; maxTxsPerBlock: number | undefined } {
249
+ let maxL2BlockGas = config.maxL2BlockGas;
250
+ if (maxL2BlockGas !== undefined && maxL2BlockGas > rollupManaLimit) {
251
+ log.warn(`Provided MAX_L2_BLOCK_GAS ${maxL2BlockGas} exceeds rollup mana limit ${rollupManaLimit} (capping)`);
252
+ maxL2BlockGas = rollupManaLimit;
285
253
  }
286
254
 
287
- // Compute maxDABlockGas
288
- const daCheckpointLimit = MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT;
289
- let maxDABlockGas: number;
290
- if (config.maxDABlockGas !== undefined) {
291
- if (config.maxDABlockGas > daCheckpointLimit) {
292
- log.warn(
293
- `Provided MAX_DA_BLOCK_GAS ${config.maxDABlockGas} exceeds DA checkpoint limit ${daCheckpointLimit} (capping)`,
294
- );
295
- maxDABlockGas = daCheckpointLimit;
296
- } else {
297
- maxDABlockGas = config.maxDABlockGas;
298
- }
299
- } else {
300
- maxDABlockGas = Math.min(daCheckpointLimit, Math.ceil((daCheckpointLimit / maxNumberOfBlocks) * multiplier));
255
+ let maxDABlockGas = config.maxDABlockGas;
256
+ if (maxDABlockGas !== undefined && maxDABlockGas > MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT) {
257
+ log.warn(
258
+ `Provided MAX_DA_BLOCK_GAS ${maxDABlockGas} exceeds DA checkpoint limit ${MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT} (capping)`,
259
+ );
260
+ maxDABlockGas = MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT;
301
261
  }
302
262
 
303
- // Compute maxTxsPerBlock
304
- const defaultMaxTxsPerBlock = 32;
305
- let maxTxsPerBlock: number;
306
- if (config.maxTxsPerBlock !== undefined) {
307
- if (config.maxTxsPerCheckpoint !== undefined && config.maxTxsPerBlock > config.maxTxsPerCheckpoint) {
308
- log.warn(
309
- `Provided MAX_TX_PER_BLOCK ${config.maxTxsPerBlock} exceeds MAX_TX_PER_CHECKPOINT ${config.maxTxsPerCheckpoint} (capping)`,
310
- );
311
- maxTxsPerBlock = config.maxTxsPerCheckpoint;
312
- } else {
313
- maxTxsPerBlock = config.maxTxsPerBlock;
314
- }
315
- } else if (config.maxTxsPerCheckpoint !== undefined) {
316
- maxTxsPerBlock = Math.min(
317
- config.maxTxsPerCheckpoint,
318
- Math.ceil((config.maxTxsPerCheckpoint / maxNumberOfBlocks) * multiplier),
263
+ let maxTxsPerBlock = config.maxTxsPerBlock;
264
+ if (
265
+ maxTxsPerBlock !== undefined &&
266
+ config.maxTxsPerCheckpoint !== undefined &&
267
+ maxTxsPerBlock > config.maxTxsPerCheckpoint
268
+ ) {
269
+ log.warn(
270
+ `Provided MAX_TX_PER_BLOCK ${maxTxsPerBlock} exceeds MAX_TX_PER_CHECKPOINT ${config.maxTxsPerCheckpoint} (capping)`,
319
271
  );
320
- } else {
321
- maxTxsPerBlock = defaultMaxTxsPerBlock;
272
+ maxTxsPerBlock = config.maxTxsPerCheckpoint;
322
273
  }
323
274
 
324
- log.info(`Computed block limits L2=${maxL2BlockGas} DA=${maxDABlockGas} maxTxs=${maxTxsPerBlock}`, {
325
- maxL2BlockGas,
326
- maxDABlockGas,
327
- maxTxsPerBlock,
328
- rollupManaLimit,
329
- daCheckpointLimit,
330
- maxNumberOfBlocks,
331
- multiplier,
332
- });
333
-
334
275
  return { maxL2BlockGas, maxDABlockGas, maxTxsPerBlock };
335
276
  }
package/src/config.ts CHANGED
@@ -41,6 +41,7 @@ export const DefaultSequencerConfig = {
41
41
  buildCheckpointIfEmpty: false,
42
42
  publishTxsWithProposals: false,
43
43
  perBlockAllocationMultiplier: 1.2,
44
+ redistributeCheckpointBudget: true,
44
45
  enforceTimeTable: true,
45
46
  attestationPropagationTime: DEFAULT_P2P_PROPAGATION_TIME,
46
47
  secondsBeforeInvalidatingBlockAsCommitteeMember: 144, // 12 L1 blocks
@@ -112,6 +113,12 @@ export const sequencerConfigMappings: ConfigMappingsType<SequencerConfig> = {
112
113
  ' Values greater than one allow early blocks to use more than their even share, relying on checkpoint-level capping for later blocks.',
113
114
  ...numberConfigHelper(DefaultSequencerConfig.perBlockAllocationMultiplier),
114
115
  },
116
+ redistributeCheckpointBudget: {
117
+ env: 'SEQ_REDISTRIBUTE_CHECKPOINT_BUDGET',
118
+ description:
119
+ 'Redistribute remaining checkpoint budget evenly across remaining blocks instead of allowing a single block to consume the entire remaining budget.',
120
+ ...booleanConfigHelper(DefaultSequencerConfig.redistributeCheckpointBudget),
121
+ },
115
122
  coinbase: {
116
123
  env: 'COINBASE',
117
124
  parseEnv: (val: string) => (val ? EthAddress.fromString(val) : undefined),
@@ -1,4 +1,5 @@
1
1
  import { createEthereumChain } from '@aztec/ethereum/chain';
2
+ import { makeL1HttpTransport } from '@aztec/ethereum/client';
2
3
  import type { L1ContractsConfig } from '@aztec/ethereum/config';
3
4
  import { RollupContract } from '@aztec/ethereum/contracts';
4
5
  import type { L1ReaderConfig } from '@aztec/ethereum/l1-reader';
@@ -16,7 +17,7 @@ import type {
16
17
  } from '@aztec/stdlib/tx';
17
18
  import { GlobalVariables } from '@aztec/stdlib/tx';
18
19
 
19
- import { createPublicClient, fallback, http } from 'viem';
20
+ import { createPublicClient } from 'viem';
20
21
 
21
22
  /**
22
23
  * Simple global variables builder.
@@ -53,7 +54,7 @@ export class GlobalVariableBuilder implements GlobalVariableBuilderInterface {
53
54
 
54
55
  this.publicClient = createPublicClient({
55
56
  chain: chain.chainInfo,
56
- transport: fallback(chain.rpcUrls.map(url => http(url, { batch: false }))),
57
+ transport: makeL1HttpTransport(chain.rpcUrls, { timeout: config.l1HttpTimeoutMS }),
57
58
  pollingInterval: config.viemPollingIntervalMS,
58
59
  });
59
60
 
@@ -28,6 +28,7 @@ import { FormattedViemError, formatViemError, mergeAbis, tryExtractEvent } from
28
28
  import { sumBigint } from '@aztec/foundation/bigint';
29
29
  import { toHex as toPaddedHex } from '@aztec/foundation/bigint-buffer';
30
30
  import { CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
31
+ import { trimmedBytesLength } from '@aztec/foundation/buffer';
31
32
  import { pick } from '@aztec/foundation/collection';
32
33
  import type { Fr } from '@aztec/foundation/curves/bn254';
33
34
  import { EthAddress } from '@aztec/foundation/eth-address';
@@ -356,8 +357,8 @@ export class SequencerPublisher {
356
357
  // @note - we can only have one blob config per bundle
357
358
  // find requests with gas and blob configs
358
359
  // See https://github.com/AztecProtocol/aztec-packages/issues/11513
359
- const gasConfigs = requestsToProcess.filter(request => request.gasConfig).map(request => request.gasConfig);
360
- const blobConfigs = requestsToProcess.filter(request => request.blobConfig).map(request => request.blobConfig);
360
+ const gasConfigs = validRequests.filter(request => request.gasConfig).map(request => request.gasConfig);
361
+ const blobConfigs = validRequests.filter(request => request.blobConfig).map(request => request.blobConfig);
361
362
 
362
363
  if (blobConfigs.length > 1) {
363
364
  throw new Error('Multiple blob configs found');
@@ -425,7 +426,16 @@ export class SequencerPublisher {
425
426
  this.log.error(`Failed to publish bundled transactions (${actionsListStr})`, result);
426
427
  return { failedActions: requests.map(r => r.action) };
427
428
  } else {
428
- this.log.verbose(`Published bundled transactions (${actionsListStr})`, { result, requests });
429
+ this.log.verbose(`Published bundled transactions (${actionsListStr})`, {
430
+ result,
431
+ requests: requests.map(r => ({
432
+ ...r,
433
+ // Avoid logging large blob data
434
+ blobConfig: r.blobConfig
435
+ ? { ...r.blobConfig, blobs: r.blobConfig.blobs.map(b => ({ size: trimmedBytesLength(b) })) }
436
+ : undefined,
437
+ })),
438
+ });
429
439
  const successfulActions: Action[] = [];
430
440
  const failedActions: Action[] = [];
431
441
  for (const request of requests) {
@@ -34,13 +34,18 @@ import { type Checkpoint, validateCheckpoint } from '@aztec/stdlib/checkpoint';
34
34
  import { getSlotStartBuildTimestamp } from '@aztec/stdlib/epoch-helpers';
35
35
  import { Gas } from '@aztec/stdlib/gas';
36
36
  import {
37
+ type BlockBuilderOptions,
37
38
  InsufficientValidTxsError,
38
- type PublicProcessorLimits,
39
39
  type ResolvedSequencerConfig,
40
40
  type WorldStateSynchronizer,
41
41
  } from '@aztec/stdlib/interfaces/server';
42
42
  import { type L1ToL2MessageSource, computeInHashFromL1ToL2Messages } from '@aztec/stdlib/messaging';
43
- import type { BlockProposalOptions, CheckpointProposal, CheckpointProposalOptions } from '@aztec/stdlib/p2p';
43
+ import type {
44
+ BlockProposal,
45
+ BlockProposalOptions,
46
+ CheckpointProposal,
47
+ CheckpointProposalOptions,
48
+ } from '@aztec/stdlib/p2p';
44
49
  import { orderAttestations, trimAttestations } from '@aztec/stdlib/p2p';
45
50
  import type { L2BlockBuiltStats } from '@aztec/stdlib/stats';
46
51
  import { type FailedTx, Tx } from '@aztec/stdlib/tx';
@@ -265,7 +270,8 @@ export class CheckpointProposalJob implements Traceable {
265
270
  this.setStateFn(SequencerState.ASSEMBLING_CHECKPOINT, this.slot);
266
271
  const checkpoint = await checkpointBuilder.completeCheckpoint();
267
272
 
268
- // Final validation round for the checkpoint before we propose it, just for safety
273
+ // Final validation: per-block limits are only checked if the operator set them explicitly.
274
+ // Otherwise, checkpoint-level budgets were already enforced by the redistribution logic.
269
275
  try {
270
276
  validateCheckpoint(checkpoint, {
271
277
  rollupManaLimit: this.l1Constants.rollupManaLimit,
@@ -402,6 +408,7 @@ export class CheckpointProposalJob implements Traceable {
402
408
  const blocksInCheckpoint: L2Block[] = [];
403
409
  const txHashesAlreadyIncluded = new Set<string>();
404
410
  const initialBlockNumber = BlockNumber(this.syncedToBlockNumber + 1);
411
+ const slot = this.slot;
405
412
 
406
413
  // Last block in the checkpoint will usually be flagged as pending broadcast, so we send it along with the checkpoint proposal
407
414
  let blockPendingBroadcast: { block: L2Block; txs: Tx[] } | undefined = undefined;
@@ -415,11 +422,7 @@ export class CheckpointProposalJob implements Traceable {
415
422
  const timingInfo = this.timetable.canStartNextBlock(secondsIntoSlot);
416
423
 
417
424
  if (!timingInfo.canStart) {
418
- this.log.debug(`Not enough time left in slot to start another block`, {
419
- slot: this.slot,
420
- blocksBuilt,
421
- secondsIntoSlot,
422
- });
425
+ this.log.debug(`Not enough time left in slot to start another block`, { slot, blocksBuilt, secondsIntoSlot });
423
426
  break;
424
427
  }
425
428
 
@@ -451,53 +454,37 @@ export class CheckpointProposalJob implements Traceable {
451
454
  } else if ('error' in buildResult) {
452
455
  // If there was an error building the block, just exit the loop and give up the rest of the slot
453
456
  if (!(buildResult.error instanceof SequencerInterruptedError)) {
454
- this.log.warn(`Halting block building for slot ${this.slot}`, {
455
- slot: this.slot,
456
- blocksBuilt,
457
- error: buildResult.error,
458
- });
457
+ this.log.warn(`Halting block building for slot ${slot}`, { slot, blocksBuilt, error: buildResult.error });
459
458
  }
460
459
  break;
461
460
  }
462
461
 
463
462
  const { block, usedTxs } = buildResult;
464
463
  blocksInCheckpoint.push(block);
465
-
466
- // Sync the proposed block to the archiver to make it available
467
- // Note that the checkpoint builder uses its own fork so it should not need to wait for this syncing
468
- // Eventually we should refactor the checkpoint builder to not need a separate long-lived fork
469
- // Fire and forget - don't block the critical path, but log errors
470
- this.syncProposedBlockToArchiver(block).catch(err => {
471
- this.log.error(`Failed to sync proposed block ${block.number} to archiver`, { blockNumber: block.number, err });
472
- });
473
-
474
464
  usedTxs.forEach(tx => txHashesAlreadyIncluded.add(tx.txHash.toString()));
475
465
 
476
- // If this is the last block, exit the loop now so we start collecting attestations
466
+ // If this is the last block, send the proposed block to the archiver,
467
+ // and exit the loop now so we can build the checkpoint and start collecting attestations.
477
468
  if (timingInfo.isLastBlock) {
478
- this.log.verbose(`Completed final block ${blockNumber} for slot ${this.slot}`, {
479
- slot: this.slot,
480
- blockNumber,
481
- blocksBuilt,
482
- });
469
+ await this.syncProposedBlockToArchiver(block);
470
+ this.log.verbose(`Completed final block ${blockNumber} for slot ${slot}`, { slot, blockNumber, blocksBuilt });
483
471
  blockPendingBroadcast = { block, txs: usedTxs };
484
472
  break;
485
473
  }
486
474
 
487
- // For non-last blocks, broadcast the block proposal (unless we're in fisherman mode)
488
- // If the block is the last one, we'll broadcast it along with the checkpoint at the end of the loop
489
- if (!this.config.fishermanMode) {
490
- const proposal = await this.validatorClient.createBlockProposal(
491
- block.header,
492
- block.indexWithinCheckpoint,
493
- inHash,
494
- block.archive.root,
495
- usedTxs,
496
- this.proposer,
497
- blockProposalOptions,
498
- );
499
- await this.p2pClient.broadcastProposal(proposal);
500
- }
475
+ // Broadcast the block proposal (unless we're in fisherman mode) unless the block is the last one,
476
+ // in which case we'll broadcast it along with the checkpoint at the end of the loop.
477
+ // Note that we only send the block to the archiver if we manage to create the proposal, so if there's
478
+ // a HA error we don't pollute our archiver with a block that won't make it to the chain.
479
+ const proposal = await this.createBlockProposal(block, inHash, usedTxs, blockProposalOptions);
480
+
481
+ // Sync the proposed block to the archiver to make it available, only after we've managed to sign the proposal.
482
+ // We wait for the sync to succeed, as this helps catch consistency errors, even if it means we lose some time for block-building.
483
+ // If this throws, we abort the entire checkpoint.
484
+ await this.syncProposedBlockToArchiver(block);
485
+
486
+ // Once we have a signed proposal and the archiver agreed with our proposed block, then we broadcast it.
487
+ proposal && (await this.p2pClient.broadcastProposal(proposal));
501
488
 
502
489
  // Wait until the next block's start time
503
490
  await this.waitUntilNextSubslot(timingInfo.deadline);
@@ -511,6 +498,28 @@ export class CheckpointProposalJob implements Traceable {
511
498
  return { blocksInCheckpoint, blockPendingBroadcast };
512
499
  }
513
500
 
501
+ /** Creates a block proposal for a given block via the validator client (unless in fisherman mode) */
502
+ private createBlockProposal(
503
+ block: L2Block,
504
+ inHash: Fr,
505
+ usedTxs: Tx[],
506
+ blockProposalOptions: BlockProposalOptions,
507
+ ): Promise<BlockProposal | undefined> {
508
+ if (this.config.fishermanMode) {
509
+ this.log.info(`Skipping block proposal for block ${block.number} in fisherman mode`);
510
+ return Promise.resolve(undefined);
511
+ }
512
+ return this.validatorClient.createBlockProposal(
513
+ block.header,
514
+ block.indexWithinCheckpoint,
515
+ inHash,
516
+ block.archive.root,
517
+ usedTxs,
518
+ this.proposer,
519
+ blockProposalOptions,
520
+ );
521
+ }
522
+
514
523
  /** Sleeps until it is time to produce the next block in the slot */
515
524
  @trackSpan('CheckpointProposalJob.waitUntilNextSubslot')
516
525
  private async waitUntilNextSubslot(nextSubslotStart: number) {
@@ -566,11 +575,11 @@ export class CheckpointProposalJob implements Traceable {
566
575
  );
567
576
  this.setStateFn(SequencerState.CREATING_BLOCK, this.slot);
568
577
 
569
- // Per-block limits derived at startup by computeBlockLimits(), further capped
578
+ // Per-block limits are operator overrides (from SEQ_MAX_L2_BLOCK_GAS etc.) further capped
570
579
  // by remaining checkpoint-level budgets inside CheckpointBuilder before each block is built.
571
580
  // minValidTxs is passed into the builder so it can reject the block *before* updating state.
572
581
  const minValidTxs = forceCreate ? 0 : (this.config.minValidTxsPerBlock ?? minTxs);
573
- const blockBuilderOptions: PublicProcessorLimits & { minValidTxs?: number } = {
582
+ const blockBuilderOptions: BlockBuilderOptions = {
574
583
  maxTransactions: this.config.maxTxsPerBlock,
575
584
  maxBlockGas:
576
585
  this.config.maxL2BlockGas !== undefined || this.config.maxDABlockGas !== undefined
@@ -579,6 +588,8 @@ export class CheckpointProposalJob implements Traceable {
579
588
  deadline: buildDeadline,
580
589
  isBuildingProposal: true,
581
590
  minValidTxs,
591
+ maxBlocksPerCheckpoint: this.timetable.maxNumberOfBlocks,
592
+ perBlockAllocationMultiplier: this.config.perBlockAllocationMultiplier,
582
593
  };
583
594
 
584
595
  // Actually build the block by executing txs. The builder throws InsufficientValidTxsError
@@ -649,7 +660,7 @@ export class CheckpointProposalJob implements Traceable {
649
660
  pendingTxs: AsyncIterable<Tx>,
650
661
  blockNumber: BlockNumber,
651
662
  blockTimestamp: bigint,
652
- blockBuilderOptions: PublicProcessorLimits & { minValidTxs?: number },
663
+ blockBuilderOptions: BlockBuilderOptions,
653
664
  ) {
654
665
  try {
655
666
  const workTimer = new Timer();
@@ -4,11 +4,11 @@ import { unfreeze } from '@aztec/foundation/types';
4
4
  import { L2Block } from '@aztec/stdlib/block';
5
5
  import { Checkpoint } from '@aztec/stdlib/checkpoint';
6
6
  import type {
7
+ BlockBuilderOptions,
7
8
  FullNodeBlockBuilderConfig,
8
9
  ICheckpointBlockBuilder,
9
10
  ICheckpointsBuilder,
10
11
  MerkleTreeWriteOperations,
11
- PublicProcessorLimits,
12
12
  } from '@aztec/stdlib/interfaces/server';
13
13
  import { CheckpointHeader } from '@aztec/stdlib/rollup';
14
14
  import { makeAppendOnlyTreeSnapshot } from '@aztec/stdlib/testing';
@@ -32,7 +32,7 @@ export class MockCheckpointBuilder implements ICheckpointBlockBuilder {
32
32
  public buildBlockCalls: Array<{
33
33
  blockNumber: BlockNumber;
34
34
  timestamp: bigint;
35
- opts: PublicProcessorLimits & { minValidTxs?: number };
35
+ opts: BlockBuilderOptions;
36
36
  }> = [];
37
37
  /** Track all consumed transaction hashes across buildBlock calls */
38
38
  public consumedTxHashes: Set<string> = new Set();
@@ -74,7 +74,7 @@ export class MockCheckpointBuilder implements ICheckpointBlockBuilder {
74
74
  pendingTxs: Iterable<Tx> | AsyncIterable<Tx>,
75
75
  blockNumber: BlockNumber,
76
76
  timestamp: bigint,
77
- opts: PublicProcessorLimits & { minValidTxs?: number },
77
+ opts: BlockBuilderOptions,
78
78
  ): Promise<BuildBlockInCheckpointResult> {
79
79
  this.buildBlockCalls.push({ blockNumber, timestamp, opts });
80
80