@aztec/sequencer-client 3.0.0-devnet.5 → 3.0.0-devnet.6-patch.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.
Files changed (61) hide show
  1. package/dest/client/index.d.ts +1 -1
  2. package/dest/client/sequencer-client.d.ts +2 -2
  3. package/dest/client/sequencer-client.d.ts.map +1 -1
  4. package/dest/client/sequencer-client.js +6 -2
  5. package/dest/config.d.ts +3 -2
  6. package/dest/config.d.ts.map +1 -1
  7. package/dest/config.js +11 -1
  8. package/dest/global_variable_builder/global_builder.d.ts +5 -7
  9. package/dest/global_variable_builder/global_builder.d.ts.map +1 -1
  10. package/dest/global_variable_builder/global_builder.js +12 -8
  11. package/dest/global_variable_builder/index.d.ts +1 -1
  12. package/dest/index.d.ts +1 -1
  13. package/dest/publisher/config.d.ts +7 -2
  14. package/dest/publisher/config.d.ts.map +1 -1
  15. package/dest/publisher/config.js +12 -1
  16. package/dest/publisher/index.d.ts +1 -1
  17. package/dest/publisher/sequencer-publisher-factory.d.ts +3 -2
  18. package/dest/publisher/sequencer-publisher-factory.d.ts.map +1 -1
  19. package/dest/publisher/sequencer-publisher-metrics.d.ts +1 -1
  20. package/dest/publisher/sequencer-publisher-metrics.d.ts.map +1 -1
  21. package/dest/publisher/sequencer-publisher.d.ts +40 -31
  22. package/dest/publisher/sequencer-publisher.d.ts.map +1 -1
  23. package/dest/publisher/sequencer-publisher.js +117 -62
  24. package/dest/sequencer/block_builder.d.ts +4 -3
  25. package/dest/sequencer/block_builder.d.ts.map +1 -1
  26. package/dest/sequencer/block_builder.js +5 -8
  27. package/dest/sequencer/config.d.ts +2 -2
  28. package/dest/sequencer/config.d.ts.map +1 -1
  29. package/dest/sequencer/errors.d.ts +1 -1
  30. package/dest/sequencer/errors.d.ts.map +1 -1
  31. package/dest/sequencer/index.d.ts +1 -1
  32. package/dest/sequencer/metrics.d.ts +12 -3
  33. package/dest/sequencer/metrics.d.ts.map +1 -1
  34. package/dest/sequencer/metrics.js +38 -0
  35. package/dest/sequencer/sequencer.d.ts +48 -27
  36. package/dest/sequencer/sequencer.d.ts.map +1 -1
  37. package/dest/sequencer/sequencer.js +418 -166
  38. package/dest/sequencer/timetable.d.ts +3 -1
  39. package/dest/sequencer/timetable.d.ts.map +1 -1
  40. package/dest/sequencer/utils.d.ts +1 -1
  41. package/dest/test/index.d.ts +2 -2
  42. package/dest/test/index.d.ts.map +1 -1
  43. package/dest/tx_validator/nullifier_cache.d.ts +1 -1
  44. package/dest/tx_validator/nullifier_cache.d.ts.map +1 -1
  45. package/dest/tx_validator/tx_validator_factory.d.ts +4 -3
  46. package/dest/tx_validator/tx_validator_factory.d.ts.map +1 -1
  47. package/dest/tx_validator/tx_validator_factory.js +1 -1
  48. package/package.json +31 -30
  49. package/src/client/sequencer-client.ts +6 -9
  50. package/src/config.ts +12 -6
  51. package/src/global_variable_builder/global_builder.ts +19 -17
  52. package/src/publisher/config.ts +17 -6
  53. package/src/publisher/sequencer-publisher-factory.ts +4 -2
  54. package/src/publisher/sequencer-publisher.ts +165 -94
  55. package/src/sequencer/block_builder.ts +8 -12
  56. package/src/sequencer/config.ts +1 -1
  57. package/src/sequencer/metrics.ts +52 -3
  58. package/src/sequencer/sequencer.ts +480 -198
  59. package/src/sequencer/timetable.ts +7 -0
  60. package/src/test/index.ts +1 -1
  61. package/src/tx_validator/tx_validator_factory.ts +3 -2
@@ -42,7 +42,9 @@ export declare class SequencerTimetable {
42
42
  getBlockProposalExecTimeEnd(secondsIntoSlot: number): number;
43
43
  private get afterBlockReexecTimeNeeded();
44
44
  getValidatorReexecTimeEnd(secondsIntoSlot?: number): number;
45
+ getMaxAllowedTime(state: Extract<SequencerState, SequencerState.STOPPED | SequencerState.IDLE | SequencerState.SYNCHRONIZING>): undefined;
46
+ getMaxAllowedTime(state: Exclude<SequencerState, SequencerState.STOPPED | SequencerState.IDLE | SequencerState.SYNCHRONIZING>): number;
45
47
  getMaxAllowedTime(state: SequencerState): number | undefined;
46
48
  assertTimeLeft(newState: SequencerState, secondsIntoSlot: number): void;
47
49
  }
48
- //# sourceMappingURL=timetable.d.ts.map
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXRhYmxlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VxdWVuY2VyL3RpbWV0YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBTTVDLHFCQUFhLGtCQUFrQjtJQStDM0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7SUFDekIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHO0lBL0N0Qjs7OztPQUlHO0lBQ0gsU0FBZ0Isa0JBQWtCLEVBQUUsTUFBTSxDQUFDO0lBRTNDOzs7O09BSUc7SUFDSCxTQUFnQixnQkFBZ0IsU0FBQztJQUVqQyxzSEFBc0g7SUFDdEgsU0FBZ0IsZ0JBQWdCLEVBQUUsTUFBTSxDQUFzQjtJQUU5RCx1REFBdUQ7SUFDdkQsU0FBZ0IsZ0JBQWdCLEVBQUUsTUFBTSxDQUFzQjtJQUU5RCxtR0FBbUc7SUFDbkcsU0FBZ0IsMEJBQTBCLEVBQUUsTUFBTSxDQUFDO0lBRW5ELG1JQUFtSTtJQUNuSSxTQUFnQixtQkFBbUIsRUFBRSxNQUFNLENBQXlCO0lBRXBFLHdDQUF3QztJQUN4QyxTQUFnQixvQkFBb0IsRUFBRSxNQUFNLENBQUM7SUFFN0Msa0ZBQWtGO0lBQ2xGLFNBQWdCLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUUxQywySUFBMkk7SUFDM0ksU0FBZ0IsNEJBQTRCLEVBQUUsTUFBTSxDQUFDO0lBRXJELDREQUE0RDtJQUM1RCxTQUFnQixPQUFPLEVBQUUsT0FBTyxDQUFDO0lBRWpDLFlBQ0UsSUFBSSxFQUFFO1FBQ0osb0JBQW9CLEVBQUUsTUFBTSxDQUFDO1FBQzdCLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztRQUMxQiw0QkFBNEIsRUFBRSxNQUFNLENBQUM7UUFDckMsMEJBQTBCLENBQUMsRUFBRSxNQUFNLENBQUM7UUFDcEMsT0FBTyxFQUFFLE9BQU8sQ0FBQztLQUNsQixFQUNnQixPQUFPLENBQUMsOEJBQWtCLEVBQzFCLEdBQUcsdUNBQXNDLEVBNkMzRDtJQUVELE9BQU8sS0FBSyx5Q0FBeUMsR0FFcEQ7SUFFTSwyQkFBMkIsQ0FBQyxlQUFlLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FhbEU7SUFFRCxPQUFPLEtBQUssMEJBQTBCLEdBRXJDO0lBRU0seUJBQXlCLENBQUMsZUFBZSxDQUFDLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FRakU7SUFFTSxpQkFBaUIsQ0FDdEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsR0FDMUcsU0FBUyxDQUFDO0lBQ04saUJBQWlCLENBQ3RCLEtBQUssRUFBRSxPQUFPLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxPQUFPLEdBQUcsY0FBYyxDQUFDLElBQUksR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDLEdBQzFHLE1BQU0sQ0FBQztJQUNILGlCQUFpQixDQUFDLEtBQUssRUFBRSxjQUFjLEdBQUcsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQXdCN0QsY0FBYyxDQUFDLFFBQVEsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sUUFpQnRFO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"timetable.d.ts","sourceRoot":"","sources":["../../src/sequencer/timetable.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAM5C,qBAAa,kBAAkB;IA+C3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IA/CtB;;;;OAIG;IACH,SAAgB,kBAAkB,EAAE,MAAM,CAAC;IAE3C;;;;OAIG;IACH,SAAgB,gBAAgB,SAAC;IAEjC,sHAAsH;IACtH,SAAgB,gBAAgB,EAAE,MAAM,CAAsB;IAE9D,uDAAuD;IACvD,SAAgB,gBAAgB,EAAE,MAAM,CAAsB;IAE9D,mGAAmG;IACnG,SAAgB,0BAA0B,EAAE,MAAM,CAAC;IAEnD,mIAAmI;IACnI,SAAgB,mBAAmB,EAAE,MAAM,CAAyB;IAEpE,wCAAwC;IACxC,SAAgB,oBAAoB,EAAE,MAAM,CAAC;IAE7C,kFAAkF;IAClF,SAAgB,iBAAiB,EAAE,MAAM,CAAC;IAE1C,2IAA2I;IAC3I,SAAgB,4BAA4B,EAAE,MAAM,CAAC;IAErD,4DAA4D;IAC5D,SAAgB,OAAO,EAAE,OAAO,CAAC;gBAG/B,IAAI,EAAE;QACJ,oBAAoB,EAAE,MAAM,CAAC;QAC7B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,4BAA4B,EAAE,MAAM,CAAC;QACrC,0BAA0B,CAAC,EAAE,MAAM,CAAC;QACpC,OAAO,EAAE,OAAO,CAAC;KAClB,EACgB,OAAO,CAAC,EAAE,gBAAgB,YAAA,EAC1B,GAAG,uCAAsC;IA+C5D,OAAO,KAAK,yCAAyC,GAEpD;IAEM,2BAA2B,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM;IAenE,OAAO,KAAK,0BAA0B,GAErC;IAEM,yBAAyB,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM;IAU3D,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS;IAuB5D,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM;CAkBxE"}
1
+ {"version":3,"file":"timetable.d.ts","sourceRoot":"","sources":["../../src/sequencer/timetable.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAM5C,qBAAa,kBAAkB;IA+C3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IA/CtB;;;;OAIG;IACH,SAAgB,kBAAkB,EAAE,MAAM,CAAC;IAE3C;;;;OAIG;IACH,SAAgB,gBAAgB,SAAC;IAEjC,sHAAsH;IACtH,SAAgB,gBAAgB,EAAE,MAAM,CAAsB;IAE9D,uDAAuD;IACvD,SAAgB,gBAAgB,EAAE,MAAM,CAAsB;IAE9D,mGAAmG;IACnG,SAAgB,0BAA0B,EAAE,MAAM,CAAC;IAEnD,mIAAmI;IACnI,SAAgB,mBAAmB,EAAE,MAAM,CAAyB;IAEpE,wCAAwC;IACxC,SAAgB,oBAAoB,EAAE,MAAM,CAAC;IAE7C,kFAAkF;IAClF,SAAgB,iBAAiB,EAAE,MAAM,CAAC;IAE1C,2IAA2I;IAC3I,SAAgB,4BAA4B,EAAE,MAAM,CAAC;IAErD,4DAA4D;IAC5D,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC,YACE,IAAI,EAAE;QACJ,oBAAoB,EAAE,MAAM,CAAC;QAC7B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,4BAA4B,EAAE,MAAM,CAAC;QACrC,0BAA0B,CAAC,EAAE,MAAM,CAAC;QACpC,OAAO,EAAE,OAAO,CAAC;KAClB,EACgB,OAAO,CAAC,8BAAkB,EAC1B,GAAG,uCAAsC,EA6C3D;IAED,OAAO,KAAK,yCAAyC,GAEpD;IAEM,2BAA2B,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAalE;IAED,OAAO,KAAK,0BAA0B,GAErC;IAEM,yBAAyB,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAQjE;IAEM,iBAAiB,CACtB,KAAK,EAAE,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,IAAI,GAAG,cAAc,CAAC,aAAa,CAAC,GAC1G,SAAS,CAAC;IACN,iBAAiB,CACtB,KAAK,EAAE,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,IAAI,GAAG,cAAc,CAAC,aAAa,CAAC,GAC1G,MAAM,CAAC;IACH,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAAC;IAwB7D,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,QAiBtE;CACF"}
@@ -21,4 +21,4 @@ export declare enum SequencerState {
21
21
  export type SequencerStateWithSlot = SequencerState.INITIALIZING_PROPOSAL | SequencerState.CREATING_BLOCK | SequencerState.COLLECTING_ATTESTATIONS | SequencerState.PUBLISHING_BLOCK | SequencerState.PROPOSER_CHECK;
22
22
  export type SequencerStateCallback = () => SequencerState;
23
23
  export declare function sequencerStateToNumber(state: SequencerState): number;
24
- //# sourceMappingURL=utils.d.ts.map
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXF1ZW5jZXIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQVksY0FBYztJQUN4QixxRUFBcUU7SUFDckUsT0FBTyxZQUFZO0lBQ25CLGdFQUFnRTtJQUNoRSxRQUFRLGFBQWE7SUFDckIscURBQXFEO0lBQ3JELElBQUksU0FBUztJQUNiLHVDQUF1QztJQUN2QyxhQUFhLGtCQUFrQjtJQUMvQiw0REFBNEQ7SUFDNUQsY0FBYyxtQkFBbUI7SUFDakMsMElBQTBJO0lBQzFJLHFCQUFxQiwwQkFBMEI7SUFDL0MsNklBQTZJO0lBQzdJLGNBQWMsbUJBQW1CO0lBQ2pDLDZFQUE2RTtJQUM3RSx1QkFBdUIsNEJBQTRCO0lBQ25ELDJHQUEyRztJQUMzRyxnQkFBZ0IscUJBQXFCO0NBQ3RDO0FBRUQsTUFBTSxNQUFNLHNCQUFzQixHQUM5QixjQUFjLENBQUMscUJBQXFCLEdBQ3BDLGNBQWMsQ0FBQyxjQUFjLEdBQzdCLGNBQWMsQ0FBQyx1QkFBdUIsR0FDdEMsY0FBYyxDQUFDLGdCQUFnQixHQUMvQixjQUFjLENBQUMsY0FBYyxDQUFDO0FBRWxDLE1BQU0sTUFBTSxzQkFBc0IsR0FBRyxNQUFNLGNBQWMsQ0FBQztBQUUxRCx3QkFBZ0Isc0JBQXNCLENBQUMsS0FBSyxFQUFFLGNBQWMsR0FBRyxNQUFNLENBRXBFIn0=
@@ -1,5 +1,5 @@
1
- import type { PublisherManager } from '@aztec/ethereum';
2
1
  import type { L1TxUtilsWithBlobs } from '@aztec/ethereum/l1-tx-utils-with-blobs';
2
+ import type { PublisherManager } from '@aztec/ethereum/publisher-manager';
3
3
  import type { PublicProcessorFactory } from '@aztec/simulator/server';
4
4
  import type { ValidatorClient } from '@aztec/validator-client';
5
5
  import { SequencerClient } from '../client/sequencer-client.js';
@@ -21,4 +21,4 @@ declare class TestSequencerClient_ extends SequencerClient {
21
21
  }
22
22
  export type TestSequencerClient = TestSequencerClient_;
23
23
  export {};
24
- //# sourceMappingURL=index.d.ts.map
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakYsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RFLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzdGLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFcEUsY0FBTSxjQUFlLFNBQVEsU0FBUztJQUNyQixzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQztJQUMvQyxTQUFTLEVBQUUsa0JBQWtCLENBQUM7SUFDOUIsU0FBUyxFQUFFLGtCQUFrQixDQUFDO0lBQzlCLGdCQUFnQixFQUFFLHlCQUF5QixDQUFDO0lBQzVDLGVBQWUsRUFBRSxlQUFlLENBQUM7Q0FDakQ7QUFFRCxNQUFNLE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQztBQUUzQyxjQUFNLG9CQUFxQixTQUFRLGVBQWU7SUFDakMsU0FBUyxFQUFFLGFBQWEsQ0FBQztJQUN6QixnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0NBQ3ZFO0FBRUQsTUFBTSxNQUFNLG1CQUFtQixHQUFHLG9CQUFvQixDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,cAAM,cAAe,SAAQ,SAAS;IACrB,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,SAAS,EAAE,kBAAkB,CAAC;IAC9B,SAAS,EAAE,kBAAkB,CAAC;IAC9B,gBAAgB,EAAE,yBAAyB,CAAC;IAC5C,eAAe,EAAE,eAAe,CAAC;CACjD;AAED,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC;AAE3C,cAAM,oBAAqB,SAAQ,eAAe;IACjC,SAAS,EAAE,aAAa,CAAC;IACzB,gBAAgB,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;CACvE;AAED,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,cAAM,cAAe,SAAQ,SAAS;IACrB,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,SAAS,EAAE,kBAAkB,CAAC;IAC9B,SAAS,EAAE,kBAAkB,CAAC;IAC9B,gBAAgB,EAAE,yBAAyB,CAAC;IAC5C,eAAe,EAAE,eAAe,CAAC;CACjD;AAED,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC;AAE3C,cAAM,oBAAqB,SAAQ,eAAe;IACjC,SAAS,EAAE,aAAa,CAAC;IACzB,gBAAgB,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;CACvE;AAED,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,CAAC"}
@@ -11,4 +11,4 @@ export declare class NullifierCache implements NullifierSource {
11
11
  nullifiersExist(nullifiers: Buffer[]): Promise<boolean[]>;
12
12
  addNullifiers(nullifiers: Buffer[]): void;
13
13
  }
14
- //# sourceMappingURL=nullifier_cache.d.ts.map
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVsbGlmaWVyX2NhY2hlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHhfdmFsaWRhdG9yL251bGxpZmllcl9jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbEQsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUdoRjs7O0dBR0c7QUFDSCxxQkFBYSxjQUFlLFlBQVcsZUFBZTtJQUd4QyxPQUFPLENBQUMsRUFBRTtJQUZ0QixVQUFVLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXhCLFlBQW9CLEVBQUUsRUFBRSx3QkFBd0IsRUFFL0M7SUFFWSxlQUFlLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQU9yRTtJQUVNLGFBQWEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBSXhDO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"nullifier_cache.d.ts","sourceRoot":"","sources":["../../src/tx_validator/nullifier_cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAGhF;;;GAGG;AACH,qBAAa,cAAe,YAAW,eAAe;IAGxC,OAAO,CAAC,EAAE;IAFtB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBAEJ,EAAE,EAAE,wBAAwB;IAInC,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAS/D,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE;CAK1C"}
1
+ {"version":3,"file":"nullifier_cache.d.ts","sourceRoot":"","sources":["../../src/tx_validator/nullifier_cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAGhF;;;GAGG;AACH,qBAAa,cAAe,YAAW,eAAe;IAGxC,OAAO,CAAC,EAAE;IAFtB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAExB,YAAoB,EAAE,EAAE,wBAAwB,EAE/C;IAEY,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAOrE;IAEM,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAIxC;CACF"}
@@ -1,17 +1,18 @@
1
+ import { BlockNumber } from '@aztec/foundation/branded-types';
1
2
  import type { ContractDataSource } from '@aztec/stdlib/contract';
2
3
  import type { GasFees } from '@aztec/stdlib/gas';
3
4
  import type { AllowedElement, ClientProtocolCircuitVerifier, MerkleTreeReadOperations, PublicProcessorValidator } from '@aztec/stdlib/interfaces/server';
4
5
  import { GlobalVariables, type Tx, type TxValidator } from '@aztec/stdlib/tx';
5
6
  import type { UInt64 } from '@aztec/stdlib/types';
6
- export declare function createValidatorForAcceptingTxs(db: MerkleTreeReadOperations, contractDataSource: ContractDataSource, verifier: ClientProtocolCircuitVerifier | undefined, { l1ChainId, rollupVersion, setupAllowList, gasFees, skipFeeEnforcement, timestamp, blockNumber, txsPermitted, }: {
7
+ export declare function createValidatorForAcceptingTxs(db: MerkleTreeReadOperations, contractDataSource: ContractDataSource, verifier: ClientProtocolCircuitVerifier | undefined, { l1ChainId, rollupVersion, setupAllowList, gasFees, skipFeeEnforcement, timestamp, blockNumber, txsPermitted }: {
7
8
  l1ChainId: number;
8
9
  rollupVersion: number;
9
10
  setupAllowList: AllowedElement[];
10
11
  gasFees: GasFees;
11
12
  skipFeeEnforcement?: boolean;
12
13
  timestamp: UInt64;
13
- blockNumber: number;
14
+ blockNumber: BlockNumber;
14
15
  txsPermitted: boolean;
15
16
  }): TxValidator<Tx>;
16
17
  export declare function createValidatorForBlockBuilding(db: MerkleTreeReadOperations, contractDataSource: ContractDataSource, globalVariables: GlobalVariables, setupAllowList: AllowedElement[]): PublicProcessorValidator;
17
- //# sourceMappingURL=tx_validator_factory.d.ts.map
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfdmFsaWRhdG9yX2ZhY3RvcnkuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eF92YWxpZGF0b3IvdHhfdmFsaWRhdG9yX2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBaUI5RCxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxFQUNWLGNBQWMsRUFDZCw2QkFBNkIsRUFDN0Isd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUN6QixNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5RSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUlsRCx3QkFBZ0IsOEJBQThCLENBQzVDLEVBQUUsRUFBRSx3QkFBd0IsRUFDNUIsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQ3RDLFFBQVEsRUFBRSw2QkFBNkIsR0FBRyxTQUFTLEVBQ25ELEVBQ0UsU0FBUyxFQUNULGFBQWEsRUFDYixjQUFjLEVBQ2QsT0FBTyxFQUNQLGtCQUFrQixFQUNsQixTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksRUFDYixFQUFFO0lBQ0QsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQixhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLGNBQWMsRUFBRSxjQUFjLEVBQUUsQ0FBQztJQUNqQyxPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQ2pCLGtCQUFrQixDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQzdCLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsV0FBVyxFQUFFLFdBQVcsQ0FBQztJQUN6QixZQUFZLEVBQUUsT0FBTyxDQUFDO0NBQ3ZCLEdBQ0EsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQTRCakI7QUFFRCx3QkFBZ0IsK0JBQStCLENBQzdDLEVBQUUsRUFBRSx3QkFBd0IsRUFDNUIsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQ3RDLGVBQWUsRUFBRSxlQUFlLEVBQ2hDLGNBQWMsRUFBRSxjQUFjLEVBQUUsR0FDL0Isd0JBQXdCLENBZ0IxQiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"tx_validator_factory.d.ts","sourceRoot":"","sources":["../../src/tx_validator/tx_validator_factory.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EACV,cAAc,EACd,6BAA6B,EAC7B,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAIlD,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,wBAAwB,EAC5B,kBAAkB,EAAE,kBAAkB,EACtC,QAAQ,EAAE,6BAA6B,GAAG,SAAS,EACnD,EACE,SAAS,EACT,aAAa,EACb,cAAc,EACd,OAAO,EACP,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,YAAY,GACb,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;CACvB,GACA,WAAW,CAAC,EAAE,CAAC,CA4BjB;AAED,wBAAgB,+BAA+B,CAC7C,EAAE,EAAE,wBAAwB,EAC5B,kBAAkB,EAAE,kBAAkB,EACtC,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,cAAc,EAAE,GAC/B,wBAAwB,CAgB1B"}
1
+ {"version":3,"file":"tx_validator_factory.d.ts","sourceRoot":"","sources":["../../src/tx_validator/tx_validator_factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAiB9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EACV,cAAc,EACd,6BAA6B,EAC7B,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAIlD,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,wBAAwB,EAC5B,kBAAkB,EAAE,kBAAkB,EACtC,QAAQ,EAAE,6BAA6B,GAAG,SAAS,EACnD,EACE,SAAS,EACT,aAAa,EACb,cAAc,EACd,OAAO,EACP,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,YAAY,EACb,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;CACvB,GACA,WAAW,CAAC,EAAE,CAAC,CA4BjB;AAED,wBAAgB,+BAA+B,CAC7C,EAAE,EAAE,wBAAwB,EAC5B,kBAAkB,EAAE,kBAAkB,EACtC,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,cAAc,EAAE,GAC/B,wBAAwB,CAgB1B"}
@@ -1,4 +1,4 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
3
3
  import { AggregateTxValidator, ArchiveCache, BlockHeaderTxValidator, DataTxValidator, DoubleSpendTxValidator, GasTxValidator, MetadataTxValidator, PhasesTxValidator, TimestampTxValidator, TxPermittedValidator, TxProofValidator } from '@aztec/p2p';
4
4
  import { ProtocolContractAddress, protocolContractsHash } from '@aztec/protocol-contracts';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/sequencer-client",
3
- "version": "3.0.0-devnet.5",
3
+ "version": "3.0.0-devnet.6-patch.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -18,50 +18,51 @@
18
18
  "../package.common.json"
19
19
  ],
20
20
  "scripts": {
21
- "build": "yarn clean && tsc -b",
22
- "build:dev": "tsc -b --watch",
21
+ "build": "yarn clean && ../scripts/tsc.sh",
22
+ "build:dev": "../scripts/tsc.sh --watch",
23
23
  "clean": "rm -rf ./dest .tsbuildinfo",
24
24
  "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}",
25
25
  "test:integration": "concurrently -k -s first -c reset,dim -n test,anvil \"yarn test:integration:run\" \"anvil\"",
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": "3.0.0-devnet.5",
30
- "@aztec/bb-prover": "3.0.0-devnet.5",
31
- "@aztec/blob-lib": "3.0.0-devnet.5",
32
- "@aztec/blob-sink": "3.0.0-devnet.5",
33
- "@aztec/constants": "3.0.0-devnet.5",
34
- "@aztec/epoch-cache": "3.0.0-devnet.5",
35
- "@aztec/ethereum": "3.0.0-devnet.5",
36
- "@aztec/foundation": "3.0.0-devnet.5",
37
- "@aztec/l1-artifacts": "3.0.0-devnet.5",
38
- "@aztec/merkle-tree": "3.0.0-devnet.5",
39
- "@aztec/node-keystore": "3.0.0-devnet.5",
40
- "@aztec/noir-acvm_js": "3.0.0-devnet.5",
41
- "@aztec/noir-contracts.js": "3.0.0-devnet.5",
42
- "@aztec/noir-protocol-circuits-types": "3.0.0-devnet.5",
43
- "@aztec/noir-types": "3.0.0-devnet.5",
44
- "@aztec/p2p": "3.0.0-devnet.5",
45
- "@aztec/protocol-contracts": "3.0.0-devnet.5",
46
- "@aztec/prover-client": "3.0.0-devnet.5",
47
- "@aztec/simulator": "3.0.0-devnet.5",
48
- "@aztec/slasher": "3.0.0-devnet.5",
49
- "@aztec/stdlib": "3.0.0-devnet.5",
50
- "@aztec/telemetry-client": "3.0.0-devnet.5",
51
- "@aztec/validator-client": "3.0.0-devnet.5",
52
- "@aztec/world-state": "3.0.0-devnet.5",
29
+ "@aztec/aztec.js": "3.0.0-devnet.6-patch.1",
30
+ "@aztec/bb-prover": "3.0.0-devnet.6-patch.1",
31
+ "@aztec/blob-lib": "3.0.0-devnet.6-patch.1",
32
+ "@aztec/blob-sink": "3.0.0-devnet.6-patch.1",
33
+ "@aztec/constants": "3.0.0-devnet.6-patch.1",
34
+ "@aztec/epoch-cache": "3.0.0-devnet.6-patch.1",
35
+ "@aztec/ethereum": "3.0.0-devnet.6-patch.1",
36
+ "@aztec/foundation": "3.0.0-devnet.6-patch.1",
37
+ "@aztec/l1-artifacts": "3.0.0-devnet.6-patch.1",
38
+ "@aztec/merkle-tree": "3.0.0-devnet.6-patch.1",
39
+ "@aztec/node-keystore": "3.0.0-devnet.6-patch.1",
40
+ "@aztec/noir-acvm_js": "3.0.0-devnet.6-patch.1",
41
+ "@aztec/noir-contracts.js": "3.0.0-devnet.6-patch.1",
42
+ "@aztec/noir-protocol-circuits-types": "3.0.0-devnet.6-patch.1",
43
+ "@aztec/noir-types": "3.0.0-devnet.6-patch.1",
44
+ "@aztec/p2p": "3.0.0-devnet.6-patch.1",
45
+ "@aztec/protocol-contracts": "3.0.0-devnet.6-patch.1",
46
+ "@aztec/prover-client": "3.0.0-devnet.6-patch.1",
47
+ "@aztec/simulator": "3.0.0-devnet.6-patch.1",
48
+ "@aztec/slasher": "3.0.0-devnet.6-patch.1",
49
+ "@aztec/stdlib": "3.0.0-devnet.6-patch.1",
50
+ "@aztec/telemetry-client": "3.0.0-devnet.6-patch.1",
51
+ "@aztec/validator-client": "3.0.0-devnet.6-patch.1",
52
+ "@aztec/world-state": "3.0.0-devnet.6-patch.1",
53
53
  "lodash.chunk": "^4.2.0",
54
54
  "tslib": "^2.4.0",
55
- "viem": "npm:@spalladino/viem@2.38.2-eip7594.0"
55
+ "viem": "npm:@aztec/viem@2.38.2"
56
56
  },
57
57
  "devDependencies": {
58
- "@aztec/archiver": "3.0.0-devnet.5",
59
- "@aztec/kv-store": "3.0.0-devnet.5",
58
+ "@aztec/archiver": "3.0.0-devnet.6-patch.1",
59
+ "@aztec/kv-store": "3.0.0-devnet.6-patch.1",
60
60
  "@jest/globals": "^30.0.0",
61
61
  "@types/jest": "^30.0.0",
62
62
  "@types/lodash.chunk": "^4.2.7",
63
63
  "@types/lodash.pick": "^4.4.7",
64
64
  "@types/node": "^22.15.17",
65
+ "@typescript/native-preview": "7.0.0-dev.20251126.1",
65
66
  "concurrently": "^7.6.0",
66
67
  "eslint": "^9.26.0",
67
68
  "express": "^4.21.2",
@@ -1,13 +1,10 @@
1
1
  import type { BlobSinkClientInterface } from '@aztec/blob-sink/client';
2
2
  import { EpochCache } from '@aztec/epoch-cache';
3
- import {
4
- GovernanceProposerContract,
5
- PublisherManager,
6
- RollupContract,
7
- getPublicClient,
8
- isAnvilTestChain,
9
- } from '@aztec/ethereum';
3
+ import { isAnvilTestChain } from '@aztec/ethereum/chain';
4
+ import { getPublicClient } from '@aztec/ethereum/client';
5
+ import { GovernanceProposerContract, RollupContract } from '@aztec/ethereum/contracts';
10
6
  import { L1TxUtilsWithBlobs } from '@aztec/ethereum/l1-tx-utils-with-blobs';
7
+ import { PublisherManager } from '@aztec/ethereum/publisher-manager';
11
8
  import { EthAddress } from '@aztec/foundation/eth-address';
12
9
  import { createLogger } from '@aztec/foundation/log';
13
10
  import type { DateProvider } from '@aztec/foundation/timer';
@@ -154,8 +151,8 @@ export class SequencerClient {
154
151
  // In theory, the L1 slot has an initial 4s phase where the block is propagated, so we could
155
152
  // make it with a propagation time into slot equal to 4s. However, we prefer being conservative.
156
153
  // See https://www.blocknative.com/blog/anatomy-of-a-slot#7 for more info.
157
- const maxL1TxInclusionTimeIntoSlot =
158
- (config.maxL1TxInclusionTimeIntoSlot ?? isAnvilTestChain(config.l1ChainId)) ? ethereumSlotDuration - 1 : 0;
154
+ const maxInclusionBasedOnChain = isAnvilTestChain(config.l1ChainId) ? ethereumSlotDuration - 1 : 0;
155
+ const maxL1TxInclusionTimeIntoSlot = config.maxL1TxInclusionTimeIntoSlot ?? maxInclusionBasedOnChain;
159
156
 
160
157
  const l1Constants = {
161
158
  l1GenesisTime,
package/src/config.ts CHANGED
@@ -1,9 +1,5 @@
1
- import {
2
- type L1ContractsConfig,
3
- type L1ReaderConfig,
4
- l1ContractsConfigMappings,
5
- l1ReaderConfigMappings,
6
- } from '@aztec/ethereum';
1
+ import { type L1ContractsConfig, l1ContractsConfigMappings } from '@aztec/ethereum/config';
2
+ import { type L1ReaderConfig, l1ReaderConfigMappings } from '@aztec/ethereum/l1-reader';
7
3
  import {
8
4
  type ConfigMappingsType,
9
5
  booleanConfigHelper,
@@ -153,6 +149,16 @@ export const sequencerConfigMappings: ConfigMappingsType<SequencerConfig> = {
153
149
  description: 'Inject a fake attestation (for testing only)',
154
150
  ...booleanConfigHelper(false),
155
151
  },
152
+ fishermanMode: {
153
+ env: 'FISHERMAN_MODE',
154
+ description:
155
+ 'Whether to run in fisherman mode: builds blocks on every slot for validation without publishing to L1',
156
+ ...booleanConfigHelper(false),
157
+ },
158
+ shuffleAttestationOrdering: {
159
+ description: 'Shuffle attestation ordering to create invalid ordering (for testing only)',
160
+ ...booleanConfigHelper(false),
161
+ },
156
162
  ...pickConfigMappings(p2pConfigMappings, ['txPublicSetupAllowList']),
157
163
  };
158
164
 
@@ -1,12 +1,11 @@
1
- import {
2
- type L1ContractsConfig,
3
- type L1ReaderConfig,
4
- RollupContract,
5
- type ViemPublicClient,
6
- createEthereumChain,
7
- } from '@aztec/ethereum';
1
+ import { createEthereumChain } from '@aztec/ethereum/chain';
2
+ import type { L1ContractsConfig } from '@aztec/ethereum/config';
3
+ import { RollupContract } from '@aztec/ethereum/contracts';
4
+ import type { L1ReaderConfig } from '@aztec/ethereum/l1-reader';
5
+ import type { ViemPublicClient } from '@aztec/ethereum/types';
6
+ import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
7
+ import { Fr } from '@aztec/foundation/curves/bn254';
8
8
  import type { EthAddress } from '@aztec/foundation/eth-address';
9
- import { Fr } from '@aztec/foundation/fields';
10
9
  import { createLogger } from '@aztec/foundation/log';
11
10
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
12
11
  import { GasFees } from '@aztec/stdlib/gas';
@@ -55,8 +54,10 @@ export class GlobalVariableBuilder implements GlobalVariableBuilderInterface {
55
54
  // we need to fetch the last block written, and estimate the earliest timestamp for the next block.
56
55
  // The timestamp of that last block will act as a lower bound for the next block.
57
56
 
58
- const lastBlock = await this.rollupContract.getBlock(await this.rollupContract.getBlockNumber());
59
- const earliestTimestamp = await this.rollupContract.getTimestampForSlot(lastBlock.slotNumber + 1n);
57
+ const lastBlock = await this.rollupContract.getCheckpoint(await this.rollupContract.getCheckpointNumber());
58
+ const earliestTimestamp = await this.rollupContract.getTimestampForSlot(
59
+ SlotNumber.fromBigInt(lastBlock.slotNumber + 1n),
60
+ );
60
61
  const nextEthTimestamp = BigInt((await this.publicClient.getBlock()).timestamp + BigInt(this.ethereumSlotDuration));
61
62
  const timestamp = earliestTimestamp > nextEthTimestamp ? earliestTimestamp : nextEthTimestamp;
62
63
 
@@ -94,21 +95,22 @@ export class GlobalVariableBuilder implements GlobalVariableBuilderInterface {
94
95
  * @returns The global variables for the given block number.
95
96
  */
96
97
  public async buildGlobalVariables(
97
- blockNumber: number,
98
+ blockNumber: BlockNumber,
98
99
  coinbase: EthAddress,
99
100
  feeRecipient: AztecAddress,
100
- slotNumber?: bigint,
101
+ slotNumber?: SlotNumber,
101
102
  ): Promise<GlobalVariables> {
102
103
  const { chainId, version } = await this.getGlobalConstantVariables();
103
104
 
105
+ let slot: SlotNumber;
104
106
  if (slotNumber === undefined) {
105
107
  const ts = BigInt((await this.publicClient.getBlock()).timestamp + BigInt(this.ethereumSlotDuration));
106
- slotNumber = await this.rollupContract.getSlotAt(ts);
108
+ slot = await this.rollupContract.getSlotAt(ts);
109
+ } else {
110
+ slot = slotNumber;
107
111
  }
108
112
 
109
- const timestamp = await this.rollupContract.getTimestampForSlot(slotNumber);
110
-
111
- const slotFr = new Fr(slotNumber);
113
+ const timestamp = await this.rollupContract.getTimestampForSlot(slot);
112
114
 
113
115
  // We can skip much of the logic in getCurrentBaseFees since it we already check that we are not within a slot elsewhere.
114
116
  const gasFees = new GasFees(0, await this.rollupContract.getManaBaseFeeAt(timestamp, true));
@@ -117,7 +119,7 @@ export class GlobalVariableBuilder implements GlobalVariableBuilderInterface {
117
119
  chainId,
118
120
  version,
119
121
  blockNumber,
120
- slotFr,
122
+ slot,
121
123
  timestamp,
122
124
  coinbase,
123
125
  feeRecipient,
@@ -1,10 +1,6 @@
1
1
  import { type BlobSinkConfig, blobSinkConfigMapping } from '@aztec/blob-sink/client';
2
- import {
3
- type L1ReaderConfig,
4
- type L1TxUtilsConfig,
5
- l1ReaderConfigMappings,
6
- l1TxUtilsConfigMappings,
7
- } from '@aztec/ethereum';
2
+ import { type L1ReaderConfig, l1ReaderConfigMappings } from '@aztec/ethereum/l1-reader';
3
+ import { type L1TxUtilsConfig, l1TxUtilsConfigMappings } from '@aztec/ethereum/l1-tx-utils';
8
4
  import {
9
5
  type ConfigMappingsType,
10
6
  SecretValue,
@@ -35,6 +31,10 @@ export type PublisherConfig = L1TxUtilsConfig &
35
31
  BlobSinkConfig & {
36
32
  /** True to use publishers in invalid states (timed out, cancelled, etc) if no other is available */
37
33
  publisherAllowInvalidStates?: boolean;
34
+ /** Whether to run in fisherman mode: builds blocks on every slot for validation without publishing to L1 */
35
+ fishermanMode?: boolean;
36
+ /** Address of the forwarder contract to wrap all L1 transactions through (for testing purposes only) */
37
+ publisherForwarderAddress?: EthAddress;
38
38
  };
39
39
 
40
40
  export const getTxSenderConfigMappings: (
@@ -68,6 +68,17 @@ export const getPublisherConfigMappings: (
68
68
  env: scope === `PROVER` ? `PROVER_PUBLISHER_ALLOW_INVALID_STATES` : `SEQ_PUBLISHER_ALLOW_INVALID_STATES`,
69
69
  ...booleanConfigHelper(true),
70
70
  },
71
+ fishermanMode: {
72
+ env: 'FISHERMAN_MODE',
73
+ description:
74
+ 'Whether to run in fisherman mode: builds blocks on every slot for validation without publishing to L1',
75
+ ...booleanConfigHelper(false),
76
+ },
77
+ publisherForwarderAddress: {
78
+ env: scope === `PROVER` ? `PROVER_PUBLISHER_FORWARDER_ADDRESS` : `SEQ_PUBLISHER_FORWARDER_ADDRESS`,
79
+ description: 'Address of the forwarder contract to wrap all L1 transactions through (for testing purposes only)',
80
+ parseEnv: (val: string) => (val ? EthAddress.fromString(val) : undefined),
81
+ },
71
82
  ...l1TxUtilsConfigMappings,
72
83
  ...blobSinkConfigMapping,
73
84
  });
@@ -2,8 +2,10 @@ import { EthAddress } from '@aztec/aztec.js/addresses';
2
2
  import { type Logger, createLogger } from '@aztec/aztec.js/log';
3
3
  import type { BlobSinkClientInterface } from '@aztec/blob-sink/client';
4
4
  import type { EpochCache } from '@aztec/epoch-cache';
5
- import type { GovernanceProposerContract, PublisherFilter, PublisherManager, RollupContract } from '@aztec/ethereum';
5
+ import type { GovernanceProposerContract, RollupContract } from '@aztec/ethereum/contracts';
6
6
  import type { L1TxUtilsWithBlobs } from '@aztec/ethereum/l1-tx-utils-with-blobs';
7
+ import type { PublisherFilter, PublisherManager } from '@aztec/ethereum/publisher-manager';
8
+ import { SlotNumber } from '@aztec/foundation/branded-types';
7
9
  import type { DateProvider } from '@aztec/foundation/timer';
8
10
  import type { SlashFactoryContract } from '@aztec/stdlib/l1-contracts';
9
11
  import type { TelemetryClient } from '@aztec/telemetry-client';
@@ -22,7 +24,7 @@ export class SequencerPublisherFactory {
22
24
  private publisherMetrics: SequencerPublisherMetrics;
23
25
 
24
26
  /** Stores the last slot in which every action was carried out by a publisher */
25
- private lastActions: Partial<Record<Action, bigint>> = {};
27
+ private lastActions: Partial<Record<Action, SlotNumber>> = {};
26
28
 
27
29
  private logger: Logger;
28
30