@aztec/sequencer-client 3.0.0-canary.a9708bd → 3.0.0-devnet.2-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 (73) hide show
  1. package/dest/client/index.d.ts +1 -1
  2. package/dest/client/sequencer-client.d.ts +7 -6
  3. package/dest/client/sequencer-client.d.ts.map +1 -1
  4. package/dest/client/sequencer-client.js +23 -14
  5. package/dest/config.d.ts +5 -3
  6. package/dest/config.d.ts.map +1 -1
  7. package/dest/config.js +21 -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 +9 -10
  14. package/dest/publisher/config.d.ts.map +1 -1
  15. package/dest/publisher/config.js +19 -17
  16. package/dest/publisher/index.d.ts +2 -2
  17. package/dest/publisher/index.d.ts.map +1 -1
  18. package/dest/publisher/index.js +1 -1
  19. package/dest/publisher/sequencer-publisher-factory.d.ts +9 -3
  20. package/dest/publisher/sequencer-publisher-factory.d.ts.map +1 -1
  21. package/dest/publisher/sequencer-publisher-factory.js +8 -1
  22. package/dest/publisher/sequencer-publisher-metrics.d.ts +2 -2
  23. package/dest/publisher/sequencer-publisher-metrics.d.ts.map +1 -1
  24. package/dest/publisher/sequencer-publisher-metrics.js +1 -1
  25. package/dest/publisher/sequencer-publisher.d.ts +53 -50
  26. package/dest/publisher/sequencer-publisher.d.ts.map +1 -1
  27. package/dest/publisher/sequencer-publisher.js +187 -132
  28. package/dest/sequencer/block_builder.d.ts +6 -8
  29. package/dest/sequencer/block_builder.d.ts.map +1 -1
  30. package/dest/sequencer/block_builder.js +18 -9
  31. package/dest/sequencer/config.d.ts +2 -2
  32. package/dest/sequencer/config.d.ts.map +1 -1
  33. package/dest/sequencer/errors.d.ts +11 -0
  34. package/dest/sequencer/errors.d.ts.map +1 -0
  35. package/dest/sequencer/errors.js +15 -0
  36. package/dest/sequencer/index.d.ts +1 -1
  37. package/dest/sequencer/metrics.d.ts +17 -20
  38. package/dest/sequencer/metrics.d.ts.map +1 -1
  39. package/dest/sequencer/metrics.js +59 -87
  40. package/dest/sequencer/sequencer.d.ts +54 -32
  41. package/dest/sequencer/sequencer.d.ts.map +1 -1
  42. package/dest/sequencer/sequencer.js +458 -184
  43. package/dest/sequencer/timetable.d.ts +4 -8
  44. package/dest/sequencer/timetable.d.ts.map +1 -1
  45. package/dest/sequencer/timetable.js +3 -10
  46. package/dest/sequencer/utils.d.ts +11 -25
  47. package/dest/sequencer/utils.d.ts.map +1 -1
  48. package/dest/sequencer/utils.js +9 -24
  49. package/dest/test/index.d.ts +2 -2
  50. package/dest/test/index.d.ts.map +1 -1
  51. package/dest/tx_validator/nullifier_cache.d.ts +1 -1
  52. package/dest/tx_validator/nullifier_cache.d.ts.map +1 -1
  53. package/dest/tx_validator/tx_validator_factory.d.ts +4 -3
  54. package/dest/tx_validator/tx_validator_factory.d.ts.map +1 -1
  55. package/dest/tx_validator/tx_validator_factory.js +12 -9
  56. package/package.json +32 -31
  57. package/src/client/sequencer-client.ts +24 -18
  58. package/src/config.ts +23 -6
  59. package/src/global_variable_builder/global_builder.ts +19 -17
  60. package/src/publisher/config.ts +29 -27
  61. package/src/publisher/index.ts +1 -1
  62. package/src/publisher/sequencer-publisher-factory.ts +16 -3
  63. package/src/publisher/sequencer-publisher-metrics.ts +1 -1
  64. package/src/publisher/sequencer-publisher.ts +257 -183
  65. package/src/sequencer/block_builder.ts +23 -28
  66. package/src/sequencer/config.ts +1 -1
  67. package/src/sequencer/errors.ts +21 -0
  68. package/src/sequencer/metrics.ts +71 -98
  69. package/src/sequencer/sequencer.ts +546 -237
  70. package/src/sequencer/timetable.ts +10 -14
  71. package/src/sequencer/utils.ts +10 -24
  72. package/src/test/index.ts +1 -1
  73. package/src/tx_validator/tx_validator_factory.ts +13 -7
@@ -1,2 +1,2 @@
1
1
  export * from './sequencer-client.js';
2
- //# sourceMappingURL=index.d.ts.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQyJ9
@@ -1,14 +1,14 @@
1
1
  import type { BlobSinkClientInterface } from '@aztec/blob-sink/client';
2
2
  import { EpochCache } from '@aztec/epoch-cache';
3
- import { PublisherManager } from '@aztec/ethereum';
4
3
  import { L1TxUtilsWithBlobs } from '@aztec/ethereum/l1-tx-utils-with-blobs';
4
+ import { PublisherManager } from '@aztec/ethereum/publisher-manager';
5
5
  import { EthAddress } from '@aztec/foundation/eth-address';
6
6
  import type { DateProvider } from '@aztec/foundation/timer';
7
7
  import type { KeystoreManager } from '@aztec/node-keystore';
8
8
  import type { P2P } from '@aztec/p2p';
9
9
  import type { SlasherClientInterface } from '@aztec/slasher';
10
10
  import type { L2BlockSource } from '@aztec/stdlib/block';
11
- import type { IFullNodeBlockBuilder, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
11
+ import type { IFullNodeBlockBuilder, ValidatorClientFullConfig, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
12
12
  import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
13
13
  import { L1Metrics, type TelemetryClient } from '@aztec/telemetry-client';
14
14
  import { type ValidatorClient } from '@aztec/validator-client';
@@ -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.
@@ -53,10 +54,10 @@ export declare class SequencerClient {
53
54
  nodeKeyStore: KeystoreManager;
54
55
  }): Promise<SequencerClient>;
55
56
  /**
56
- * Updates sequencer config.
57
+ * Updates sequencer and validator client config.
57
58
  * @param config - New parameters.
58
59
  */
59
- updateSequencerConfig(config: SequencerConfig): void;
60
+ updateConfig(config: SequencerConfig & Partial<ValidatorClientFullConfig>): void;
60
61
  /** Starts the sequencer. */
61
62
  start(): Promise<void>;
62
63
  /**
@@ -67,4 +68,4 @@ export declare class SequencerClient {
67
68
  get validatorAddresses(): EthAddress[] | undefined;
68
69
  get maxL2BlockGas(): number | undefined;
69
70
  }
70
- //# sourceMappingURL=sequencer-client.d.ts.map
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLWNsaWVudC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9zZXF1ZW5jZXItY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSWhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdEMsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFDVixxQkFBcUIsRUFDckIseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN2QixNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFFLE9BQU8sRUFBdUIsS0FBSyxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVwRixPQUFPLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUxRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN4RixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFeEU7O0dBRUc7QUFDSCxxQkFBYSxlQUFlO0lBRXhCLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQztJQUNoRSxTQUFTLENBQUMsU0FBUyxFQUFFLFNBQVM7SUFDOUIsU0FBUyxDQUFDLFlBQVksRUFBRSxxQkFBcUI7SUFDN0MsU0FBUyxDQUFDLGVBQWUsQ0FBQztJQUMxQixPQUFPLENBQUMsU0FBUyxDQUFDO0lBTHBCLFlBQ1ksZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsRUFDdEQsU0FBUyxFQUFFLFNBQVMsRUFDcEIsWUFBWSxFQUFFLHFCQUFxQixFQUNuQyxlQUFlLENBQUMsNkJBQWlCLEVBQ25DLFNBQVMsQ0FBQyx1QkFBVyxFQUMzQjtJQUVKOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsT0FBb0IsR0FBRyxDQUNyQixNQUFNLEVBQUUscUJBQXFCLEVBQzdCLElBQUksRUFBRTtRQUNKLGVBQWUsRUFBRSxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQzdDLFNBQVMsRUFBRSxHQUFHLENBQUM7UUFDZixzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQztRQUMvQyxhQUFhLEVBQUUsc0JBQXNCLEdBQUcsU0FBUyxDQUFDO1FBQ2xELFlBQVksRUFBRSxxQkFBcUIsQ0FBQztRQUNwQyxhQUFhLEVBQUUsYUFBYSxDQUFDO1FBQzdCLG1CQUFtQixFQUFFLG1CQUFtQixDQUFDO1FBQ3pDLFNBQVMsRUFBRSxlQUFlLENBQUM7UUFDM0IsZ0JBQWdCLENBQUMsRUFBRSx5QkFBeUIsQ0FBQztRQUM3QyxjQUFjLENBQUMsRUFBRSx1QkFBdUIsQ0FBQztRQUN6QyxZQUFZLEVBQUUsWUFBWSxDQUFDO1FBQzNCLFVBQVUsQ0FBQyxFQUFFLFVBQVUsQ0FBQztRQUN4QixTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztRQUNoQyxZQUFZLEVBQUUsZUFBZSxDQUFDO0tBQy9CLDRCQWtIRjtJQUVEOzs7T0FHRztJQUNJLFlBQVksQ0FBQyxNQUFNLEVBQUUsZUFBZSxHQUFHLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxRQUkvRTtJQUVELDRCQUE0QjtJQUNmLEtBQUssa0JBS2pCO0lBRUQ7O09BRUc7SUFDVSxJQUFJLGtCQUtoQjtJQUVNLFlBQVksSUFBSSxTQUFTLENBRS9CO0lBRUQsSUFBSSxrQkFBa0IsSUFBSSxVQUFVLEVBQUUsR0FBRyxTQUFTLENBRWpEO0lBRUQsSUFBSSxhQUFhLElBQUksTUFBTSxHQUFHLFNBQVMsQ0FFdEM7Q0FDRiJ9
@@ -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,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAErG,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,qBAAqB,CAAC,MAAM,EAAE,eAAe;IAIpD,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;AAIhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,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;IAC1B,OAAO,CAAC,SAAS,CAAC;IALpB,YACY,gBAAgB,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EACtD,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,qBAAqB,EACnC,eAAe,CAAC,6BAAiB,EACnC,SAAS,CAAC,uBAAW,EAC3B;IAEJ;;;;;;;;;;;OAWG;IACH,OAAoB,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,4BAkHF;IAED;;;OAGG;IACI,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,yBAAyB,CAAC,QAI/E;IAED,4BAA4B;IACf,KAAK,kBAKjB;IAED;;OAEG;IACU,IAAI,kBAKhB;IAEM,YAAY,IAAI,SAAS,CAE/B;IAED,IAAI,kBAAkB,IAAI,UAAU,EAAE,GAAG,SAAS,CAEjD;IAED,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;CACF"}
@@ -1,5 +1,8 @@
1
1
  import { EpochCache } from '@aztec/epoch-cache';
2
- import { GovernanceProposerContract, PublisherManager, RollupContract, getPublicClient, isAnvilTestChain } from '@aztec/ethereum';
2
+ import { isAnvilTestChain } from '@aztec/ethereum/chain';
3
+ import { getPublicClient } from '@aztec/ethereum/client';
4
+ import { GovernanceProposerContract, RollupContract } from '@aztec/ethereum/contracts';
5
+ import { PublisherManager } from '@aztec/ethereum/publisher-manager';
3
6
  import { EthAddress } from '@aztec/foundation/eth-address';
4
7
  import { createLogger } from '@aztec/foundation/log';
5
8
  import { SlashFactoryContract } from '@aztec/stdlib/l1-contracts';
@@ -13,11 +16,13 @@ import { Sequencer } from '../sequencer/index.js';
13
16
  */ export class SequencerClient {
14
17
  publisherManager;
15
18
  sequencer;
19
+ blockBuilder;
16
20
  validatorClient;
17
21
  l1Metrics;
18
- constructor(publisherManager, sequencer, validatorClient, l1Metrics){
22
+ constructor(publisherManager, sequencer, blockBuilder, validatorClient, l1Metrics){
19
23
  this.publisherManager = publisherManager;
20
24
  this.sequencer = sequencer;
25
+ this.blockBuilder = blockBuilder;
21
26
  this.validatorClient = validatorClient;
22
27
  this.l1Metrics = l1Metrics;
23
28
  }
@@ -35,11 +40,11 @@ import { Sequencer } from '../sequencer/index.js';
35
40
  */ static async new(config, deps) {
36
41
  const { validatorClient, p2pClient, worldStateSynchronizer, slasherClient, blockBuilder, l2BlockSource, l1ToL2MessageSource, telemetry: telemetryClient } = deps;
37
42
  const { l1RpcUrls: rpcUrls, l1ChainId: chainId } = config;
38
- const log = createLogger('sequencer-client');
43
+ const log = createLogger('sequencer');
39
44
  const publicClient = getPublicClient(config);
40
45
  const l1TxUtils = deps.l1TxUtils;
41
46
  const l1Metrics = new L1Metrics(telemetryClient.getMeter('L1PublisherMetrics'), publicClient, l1TxUtils.map((x)=>x.getSenderAddress()));
42
- const publisherManager = new PublisherManager(l1TxUtils);
47
+ const publisherManager = new PublisherManager(l1TxUtils, config);
43
48
  const rollupContract = new RollupContract(publicClient, config.l1Contracts.rollupAddress.toString());
44
49
  const [l1GenesisTime, slotDuration] = await Promise.all([
45
50
  rollupContract.getL1GenesisTime(),
@@ -50,9 +55,7 @@ import { Sequencer } from '../sequencer/index.js';
50
55
  l1RpcUrls: rpcUrls,
51
56
  l1ChainId: chainId,
52
57
  viemPollingIntervalMS: config.viemPollingIntervalMS,
53
- aztecSlotDuration: config.aztecSlotDuration,
54
- ethereumSlotDuration: config.ethereumSlotDuration,
55
- aztecEpochDuration: config.aztecEpochDuration
58
+ ethereumSlotDuration: config.ethereumSlotDuration
56
59
  }, {
57
60
  dateProvider: deps.dateProvider
58
61
  });
@@ -66,7 +69,8 @@ import { Sequencer } from '../sequencer/index.js';
66
69
  rollupContract,
67
70
  dateProvider: deps.dateProvider,
68
71
  publisherManager,
69
- nodeKeyStore: NodeKeystoreAdapter.fromKeyStoreManager(deps.nodeKeyStore)
72
+ nodeKeyStore: NodeKeystoreAdapter.fromKeyStoreManager(deps.nodeKeyStore),
73
+ logger: log
70
74
  });
71
75
  const globalsBuilder = new GlobalVariableBuilder(config);
72
76
  const ethereumSlotDuration = config.ethereumSlotDuration;
@@ -82,7 +86,8 @@ import { Sequencer } from '../sequencer/index.js';
82
86
  // In theory, the L1 slot has an initial 4s phase where the block is propagated, so we could
83
87
  // make it with a propagation time into slot equal to 4s. However, we prefer being conservative.
84
88
  // See https://www.blocknative.com/blog/anatomy-of-a-slot#7 for more info.
85
- const maxL1TxInclusionTimeIntoSlot = config.maxL1TxInclusionTimeIntoSlot ?? isAnvilTestChain(config.l1ChainId) ? ethereumSlotDuration - 1 : 0;
89
+ const maxInclusionBasedOnChain = isAnvilTestChain(config.l1ChainId) ? ethereumSlotDuration - 1 : 0;
90
+ const maxL1TxInclusionTimeIntoSlot = config.maxL1TxInclusionTimeIntoSlot ?? maxInclusionBasedOnChain;
86
91
  const l1Constants = {
87
92
  l1GenesisTime,
88
93
  slotDuration: Number(slotDuration),
@@ -92,25 +97,29 @@ import { Sequencer } from '../sequencer/index.js';
92
97
  ...config,
93
98
  maxL1TxInclusionTimeIntoSlot,
94
99
  maxL2BlockGas: sequencerManaLimit
95
- }, telemetryClient);
100
+ }, telemetryClient, log);
96
101
  await sequencer.init();
97
- return new SequencerClient(publisherManager, sequencer, validatorClient, l1Metrics);
102
+ return new SequencerClient(publisherManager, sequencer, blockBuilder, validatorClient, l1Metrics);
98
103
  }
99
104
  /**
100
- * Updates sequencer config.
105
+ * Updates sequencer and validator client config.
101
106
  * @param config - New parameters.
102
- */ updateSequencerConfig(config) {
103
- return this.sequencer.updateConfig(config);
107
+ */ updateConfig(config) {
108
+ this.sequencer.updateConfig(config);
109
+ this.blockBuilder.updateConfig(config);
110
+ this.validatorClient?.updateConfig(config);
104
111
  }
105
112
  /** Starts the sequencer. */ async start() {
106
113
  await this.validatorClient?.start();
107
114
  this.sequencer.start();
108
115
  this.l1Metrics?.start();
116
+ await this.publisherManager.loadState();
109
117
  }
110
118
  /**
111
119
  * Stops the sequencer from processing new txs.
112
120
  */ async stop() {
113
121
  await this.sequencer.stop();
122
+ await this.validatorClient?.stop();
114
123
  this.publisherManager.interrupt();
115
124
  this.l1Metrics?.stop();
116
125
  }
package/dest/config.d.ts CHANGED
@@ -1,5 +1,7 @@
1
- import { type L1ContractsConfig, type L1ReaderConfig } from '@aztec/ethereum';
1
+ import { type L1ContractsConfig } from '@aztec/ethereum/config';
2
+ import { type L1ReaderConfig } from '@aztec/ethereum/l1-reader';
2
3
  import { type ConfigMappingsType } from '@aztec/foundation/config';
4
+ import { type KeyStoreConfig } from '@aztec/node-keystore';
3
5
  import { type P2PConfig } from '@aztec/p2p';
4
6
  import { type ChainConfig, type SequencerConfig } from '@aztec/stdlib/config';
5
7
  import { type ValidatorClientConfig } from '@aztec/validator-client';
@@ -10,11 +12,11 @@ export declare const DEFAULT_ATTESTATION_PROPAGATION_TIME = 2;
10
12
  /**
11
13
  * Configuration settings for the SequencerClient.
12
14
  */
13
- export type SequencerClientConfig = PublisherConfig & ValidatorClientConfig & TxSenderConfig & SequencerConfig & L1ReaderConfig & ChainConfig & Pick<P2PConfig, 'txPublicSetupAllowList'> & Pick<L1ContractsConfig, 'ethereumSlotDuration' | 'aztecSlotDuration' | 'aztecEpochDuration'>;
15
+ export type SequencerClientConfig = PublisherConfig & KeyStoreConfig & ValidatorClientConfig & TxSenderConfig & SequencerConfig & L1ReaderConfig & ChainConfig & Pick<P2PConfig, 'txPublicSetupAllowList'> & Pick<L1ContractsConfig, 'ethereumSlotDuration' | 'aztecSlotDuration' | 'aztecEpochDuration'>;
14
16
  export declare const sequencerConfigMappings: ConfigMappingsType<SequencerConfig>;
15
17
  export declare const sequencerClientConfigMappings: ConfigMappingsType<SequencerClientConfig>;
16
18
  /**
17
19
  * Creates an instance of SequencerClientConfig out of environment variables using sensible defaults for integration testing if not set.
18
20
  */
19
21
  export declare function getConfigEnvVars(): SequencerClientConfig;
20
- //# sourceMappingURL=config.d.ts.map
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLGlCQUFpQixFQUE2QixNQUFNLHdCQUF3QixDQUFDO0FBQzNGLE9BQU8sRUFBRSxLQUFLLGNBQWMsRUFBMEIsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RixPQUFPLEVBQ0wsS0FBSyxrQkFBa0IsRUFLeEIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxPQUFPLEVBQUUsS0FBSyxjQUFjLEVBQTBCLE1BQU0sc0JBQXNCLENBQUM7QUFDbkYsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFxQixNQUFNLFlBQVksQ0FBQztBQUUvRCxPQUFPLEVBQUUsS0FBSyxXQUFXLEVBQUUsS0FBSyxlQUFlLEVBQXVCLE1BQU0sc0JBQXNCLENBQUM7QUFDbkcsT0FBTyxFQUFFLEtBQUsscUJBQXFCLEVBQWlDLE1BQU0seUJBQXlCLENBQUM7QUFFcEcsT0FBTyxFQUNMLEtBQUssZUFBZSxFQUNwQixLQUFLLGNBQWMsRUFHcEIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLFlBQVksRUFBRSxlQUFlLEVBQUUsQ0FBQztBQUVoQyxlQUFPLE1BQU0sb0NBQW9DLElBQUksQ0FBQztBQUV0RDs7R0FFRztBQUNILE1BQU0sTUFBTSxxQkFBcUIsR0FBRyxlQUFlLEdBQ2pELGNBQWMsR0FDZCxxQkFBcUIsR0FDckIsY0FBYyxHQUNkLGVBQWUsR0FDZixjQUFjLEdBQ2QsV0FBVyxHQUNYLElBQUksQ0FBQyxTQUFTLEVBQUUsd0JBQXdCLENBQUMsR0FDekMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLHNCQUFzQixHQUFHLG1CQUFtQixHQUFHLG9CQUFvQixDQUFDLENBQUM7QUFFL0YsZUFBTyxNQUFNLHVCQUF1QixFQUFFLGtCQUFrQixDQUFDLGVBQWUsQ0F5SHZFLENBQUM7QUFFRixlQUFPLE1BQU0sNkJBQTZCLEVBQUUsa0JBQWtCLENBQUMscUJBQXFCLENBU25GLENBQUM7QUFFRjs7R0FFRztBQUNILHdCQUFnQixnQkFBZ0IsSUFBSSxxQkFBcUIsQ0FFeEQifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAGpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,YAAY,CAAC;AAE/D,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAuB,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,KAAK,qBAAqB,EAAiC,MAAM,yBAAyB,CAAC;AAEpG,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAGpB,MAAM,uBAAuB,CAAC;AAE/B,cAAc,uBAAuB,CAAC;AACtC,YAAY,EAAE,eAAe,EAAE,CAAC;AAEhC,eAAO,MAAM,oCAAoC,IAAI,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,eAAe,GACjD,qBAAqB,GACrB,cAAc,GACd,eAAe,GACf,cAAc,GACd,WAAW,GACX,IAAI,CAAC,SAAS,EAAE,wBAAwB,CAAC,GACzC,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,GAAG,mBAAmB,GAAG,oBAAoB,CAAC,CAAC;AAE/F,eAAO,MAAM,uBAAuB,EAAE,kBAAkB,CAAC,eAAe,CAuGvE,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,kBAAkB,CAAC,qBAAqB,CAQnF,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,qBAAqB,CAExD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAA6B,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,2BAA2B,CAAC;AACxF,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,YAAY,CAAC;AAE/D,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAuB,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,KAAK,qBAAqB,EAAiC,MAAM,yBAAyB,CAAC;AAEpG,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAGpB,MAAM,uBAAuB,CAAC;AAE/B,cAAc,uBAAuB,CAAC;AACtC,YAAY,EAAE,eAAe,EAAE,CAAC;AAEhC,eAAO,MAAM,oCAAoC,IAAI,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,eAAe,GACjD,cAAc,GACd,qBAAqB,GACrB,cAAc,GACd,eAAe,GACf,cAAc,GACd,WAAW,GACX,IAAI,CAAC,SAAS,EAAE,wBAAwB,CAAC,GACzC,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,GAAG,mBAAmB,GAAG,oBAAoB,CAAC,CAAC;AAE/F,eAAO,MAAM,uBAAuB,EAAE,kBAAkB,CAAC,eAAe,CAyHvE,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,kBAAkB,CAAC,qBAAqB,CASnF,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,qBAAqB,CAExD"}
package/dest/config.js CHANGED
@@ -1,6 +1,8 @@
1
- import { l1ContractsConfigMappings, l1ReaderConfigMappings } from '@aztec/ethereum';
1
+ import { l1ContractsConfigMappings } from '@aztec/ethereum/config';
2
+ import { l1ReaderConfigMappings } from '@aztec/ethereum/l1-reader';
2
3
  import { booleanConfigHelper, getConfigFromMappings, numberConfigHelper, pickConfigMappings } from '@aztec/foundation/config';
3
4
  import { EthAddress } from '@aztec/foundation/eth-address';
5
+ import { keyStoreConfigMappings } from '@aztec/node-keystore';
4
6
  import { p2pConfigMappings } from '@aztec/p2p';
5
7
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
6
8
  import { chainConfigMappings } from '@aztec/stdlib/config';
@@ -105,6 +107,23 @@ export const sequencerConfigMappings = {
105
107
  description: 'Do not invalidate the previous block if invalid when we are the proposer (for testing only)',
106
108
  ...booleanConfigHelper(false)
107
109
  },
110
+ broadcastInvalidBlockProposal: {
111
+ description: 'Broadcast invalid block proposals with corrupted state (for testing only)',
112
+ ...booleanConfigHelper(false)
113
+ },
114
+ injectFakeAttestation: {
115
+ description: 'Inject a fake attestation (for testing only)',
116
+ ...booleanConfigHelper(false)
117
+ },
118
+ fishermanMode: {
119
+ env: 'FISHERMAN_MODE',
120
+ description: 'Whether to run in fisherman mode: builds blocks on every slot for validation without publishing to L1',
121
+ ...booleanConfigHelper(false)
122
+ },
123
+ shuffleAttestationOrdering: {
124
+ description: 'Shuffle attestation ordering to create invalid ordering (for testing only)',
125
+ ...booleanConfigHelper(false)
126
+ },
108
127
  ...pickConfigMappings(p2pConfigMappings, [
109
128
  'txPublicSetupAllowList'
110
129
  ])
@@ -112,6 +131,7 @@ export const sequencerConfigMappings = {
112
131
  export const sequencerClientConfigMappings = {
113
132
  ...validatorClientConfigMappings,
114
133
  ...sequencerConfigMappings,
134
+ ...keyStoreConfigMappings,
115
135
  ...l1ReaderConfigMappings,
116
136
  ...getTxSenderConfigMappings('SEQ'),
117
137
  ...getPublisherConfigMappings('SEQ'),
@@ -1,4 +1,6 @@
1
- import { type L1ContractsConfig, type L1ReaderConfig } from '@aztec/ethereum';
1
+ import type { L1ContractsConfig } from '@aztec/ethereum/config';
2
+ import type { L1ReaderConfig } from '@aztec/ethereum/l1-reader';
3
+ import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
2
4
  import type { EthAddress } from '@aztec/foundation/eth-address';
3
5
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
6
  import { GasFees } from '@aztec/stdlib/gas';
@@ -17,10 +19,6 @@ export declare class GlobalVariableBuilder implements GlobalVariableBuilderInter
17
19
  private chainId?;
18
20
  private version?;
19
21
  constructor(config: L1ReaderConfig & Pick<L1ContractsConfig, 'ethereumSlotDuration'>);
20
- /**
21
- * Computes the "current" base fees, e.g., the price that you currently should pay to get include in the next block
22
- * @returns Base fees for the next block
23
- */
24
22
  private computeCurrentBaseFees;
25
23
  getCurrentBaseFees(): Promise<GasFees>;
26
24
  getGlobalConstantVariables(): Promise<Pick<GlobalVariables, 'chainId' | 'version'>>;
@@ -32,6 +30,6 @@ export declare class GlobalVariableBuilder implements GlobalVariableBuilderInter
32
30
  * @param slotNumber - The slot number to use for the global variables, if undefined it will be calculated.
33
31
  * @returns The global variables for the given block number.
34
32
  */
35
- buildGlobalVariables(blockNumber: number, coinbase: EthAddress, feeRecipient: AztecAddress, slotNumber?: bigint): Promise<GlobalVariables>;
33
+ buildGlobalVariables(blockNumber: BlockNumber, coinbase: EthAddress, feeRecipient: AztecAddress, slotNumber?: SlotNumber): Promise<GlobalVariables>;
36
34
  }
37
- //# sourceMappingURL=global_builder.d.ts.map
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsX2J1aWxkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nbG9iYWxfdmFyaWFibGVfYnVpbGRlci9nbG9iYWxfYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWhFLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFaEUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixJQUFJLDhCQUE4QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSW5EOztHQUVHO0FBQ0gscUJBQWEscUJBQXNCLFlBQVcsOEJBQThCO0lBQzFFLE9BQU8sQ0FBQyxHQUFHLENBQXFEO0lBQ2hFLE9BQU8sQ0FBQyxlQUFlLENBQXdEO0lBQy9FLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBaUM7SUFFN0QsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQWlCO0lBQ2hELE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFtQjtJQUNoRCxPQUFPLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFTO0lBRTlDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBSztJQUNyQixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUs7SUFFckIsWUFBWSxNQUFNLEVBQUUsY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxzQkFBc0IsQ0FBQyxFQWNuRjtZQU1hLHNCQUFzQjtJQWV2QixrQkFBa0IsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBVWxEO0lBRVksMEJBQTBCLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsU0FBUyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBUS9GO0lBRUQ7Ozs7Ozs7T0FPRztJQUNVLG9CQUFvQixDQUMvQixXQUFXLEVBQUUsV0FBVyxFQUN4QixRQUFRLEVBQUUsVUFBVSxFQUNwQixZQUFZLEVBQUUsWUFBWSxFQUMxQixVQUFVLENBQUMsRUFBRSxVQUFVLEdBQ3RCLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0E0QjFCO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"global_builder.d.ts","sourceRoot":"","sources":["../../src/global_variable_builder/global_builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAIpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,EAAE,qBAAqB,IAAI,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAInD;;GAEG;AACH,qBAAa,qBAAsB,YAAW,8BAA8B;IAC1E,OAAO,CAAC,GAAG,CAAqD;IAChE,OAAO,CAAC,eAAe,CAAwD;IAC/E,OAAO,CAAC,oBAAoB,CAAiC;IAE7D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAE9C,OAAO,CAAC,OAAO,CAAC,CAAK;IACrB,OAAO,CAAC,OAAO,CAAC,CAAK;gBAET,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;IAgBpF;;;OAGG;YACW,sBAAsB;IAavB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAYtC,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;IAUhG;;;;;;;OAOG;IACU,oBAAoB,CAC/B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,UAAU,EACpB,YAAY,EAAE,YAAY,EAC1B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC;CA4B5B"}
1
+ {"version":3,"file":"global_builder.d.ts","sourceRoot":"","sources":["../../src/global_variable_builder/global_builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,EAAE,qBAAqB,IAAI,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAInD;;GAEG;AACH,qBAAa,qBAAsB,YAAW,8BAA8B;IAC1E,OAAO,CAAC,GAAG,CAAqD;IAChE,OAAO,CAAC,eAAe,CAAwD;IAC/E,OAAO,CAAC,oBAAoB,CAAiC;IAE7D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAE9C,OAAO,CAAC,OAAO,CAAC,CAAK;IACrB,OAAO,CAAC,OAAO,CAAC,CAAK;IAErB,YAAY,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,EAcnF;YAMa,sBAAsB;IAevB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAUlD;IAEY,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC,CAQ/F;IAED;;;;;;;OAOG;IACU,oBAAoB,CAC/B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,UAAU,EACpB,YAAY,EAAE,YAAY,EAC1B,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC,eAAe,CAAC,CA4B1B;CACF"}
@@ -1,5 +1,7 @@
1
- import { RollupContract, createEthereumChain } from '@aztec/ethereum';
2
- import { Fr } from '@aztec/foundation/fields';
1
+ import { createEthereumChain } from '@aztec/ethereum/chain';
2
+ import { RollupContract } from '@aztec/ethereum/contracts';
3
+ import { SlotNumber } from '@aztec/foundation/branded-types';
4
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
5
  import { createLogger } from '@aztec/foundation/log';
4
6
  import { GasFees } from '@aztec/stdlib/gas';
5
7
  import { GlobalVariables } from '@aztec/stdlib/tx';
@@ -33,8 +35,8 @@ import { createPublicClient, fallback, http } from 'viem';
33
35
  // Since this might be called in the middle of a slot where a block might have been published,
34
36
  // we need to fetch the last block written, and estimate the earliest timestamp for the next block.
35
37
  // The timestamp of that last block will act as a lower bound for the next block.
36
- const lastBlock = await this.rollupContract.getBlock(await this.rollupContract.getBlockNumber());
37
- const earliestTimestamp = await this.rollupContract.getTimestampForSlot(lastBlock.slotNumber + 1n);
38
+ const lastBlock = await this.rollupContract.getCheckpoint(await this.rollupContract.getCheckpointNumber());
39
+ const earliestTimestamp = await this.rollupContract.getTimestampForSlot(SlotNumber.fromBigInt(lastBlock.slotNumber + 1n));
38
40
  const nextEthTimestamp = BigInt((await this.publicClient.getBlock()).timestamp + BigInt(this.ethereumSlotDuration));
39
41
  const timestamp = earliestTimestamp > nextEthTimestamp ? earliestTimestamp : nextEthTimestamp;
40
42
  return new GasFees(0, await this.rollupContract.getManaBaseFeeAt(timestamp, true));
@@ -70,15 +72,17 @@ import { createPublicClient, fallback, http } from 'viem';
70
72
  * @returns The global variables for the given block number.
71
73
  */ async buildGlobalVariables(blockNumber, coinbase, feeRecipient, slotNumber) {
72
74
  const { chainId, version } = await this.getGlobalConstantVariables();
75
+ let slot;
73
76
  if (slotNumber === undefined) {
74
77
  const ts = BigInt((await this.publicClient.getBlock()).timestamp + BigInt(this.ethereumSlotDuration));
75
- slotNumber = await this.rollupContract.getSlotAt(ts);
78
+ slot = await this.rollupContract.getSlotAt(ts);
79
+ } else {
80
+ slot = slotNumber;
76
81
  }
77
- const timestamp = await this.rollupContract.getTimestampForSlot(slotNumber);
78
- const slotFr = new Fr(slotNumber);
82
+ const timestamp = await this.rollupContract.getTimestampForSlot(slot);
79
83
  // We can skip much of the logic in getCurrentBaseFees since it we already check that we are not within a slot elsewhere.
80
84
  const gasFees = new GasFees(0, await this.rollupContract.getManaBaseFeeAt(timestamp, true));
81
- const globalVariables = new GlobalVariables(chainId, version, blockNumber, slotFr, timestamp, coinbase, feeRecipient, gasFees);
85
+ const globalVariables = new GlobalVariables(chainId, version, blockNumber, slot, timestamp, coinbase, feeRecipient, gasFees);
82
86
  return globalVariables;
83
87
  }
84
88
  }
@@ -1,2 +1,2 @@
1
1
  export { GlobalVariableBuilder } from './global_builder.js';
2
- //# sourceMappingURL=index.d.ts.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nbG9iYWxfdmFyaWFibGVfYnVpbGRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQyJ9
package/dest/index.d.ts CHANGED
@@ -4,4 +4,4 @@ export * from './publisher/index.js';
4
4
  export { FullNodeBlockBuilder as BlockBuilder, Sequencer, SequencerState, type SequencerEvents, } from './sequencer/index.js';
5
5
  export * from './tx_validator/tx_validator_factory.js';
6
6
  export * from './global_variable_builder/index.js';
7
- //# sourceMappingURL=index.d.ts.map
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsT0FBTyxFQUNMLG9CQUFvQixJQUFJLFlBQVksRUFDcEMsU0FBUyxFQUNULGNBQWMsRUFDZCxLQUFLLGVBQWUsR0FDckIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixjQUFjLHdDQUF3QyxDQUFDO0FBSXZELGNBQWMsb0NBQW9DLENBQUMifQ==
@@ -1,5 +1,6 @@
1
1
  import { type BlobSinkConfig } from '@aztec/blob-sink/client';
2
- import { type L1ReaderConfig, type L1TxUtilsConfig } from '@aztec/ethereum';
2
+ import { type L1ReaderConfig } from '@aztec/ethereum/l1-reader';
3
+ import { type L1TxUtilsConfig } from '@aztec/ethereum/l1-tx-utils';
3
4
  import { type ConfigMappingsType, SecretValue } from '@aztec/foundation/config';
4
5
  import { EthAddress } from '@aztec/foundation/eth-address';
5
6
  /**
@@ -14,22 +15,20 @@ export type TxSenderConfig = L1ReaderConfig & {
14
15
  * Publisher addresses to be used with a remote signer
15
16
  */
16
17
  publisherAddresses?: EthAddress[];
17
- /**
18
- * The address of the custom forwarder contract.
19
- */
20
- customForwarderContractAddress: EthAddress;
21
18
  };
22
19
  /**
23
20
  * Configuration of the L1Publisher.
24
21
  */
25
22
  export type PublisherConfig = L1TxUtilsConfig & BlobSinkConfig & {
26
- /**
27
- * The interval to wait between publish retries.
28
- */
29
- l1PublishRetryIntervalMS: number;
23
+ /** True to use publishers in invalid states (timed out, cancelled, etc) if no other is available */
24
+ publisherAllowInvalidStates?: boolean;
25
+ /** Whether to run in fisherman mode: builds blocks on every slot for validation without publishing to L1 */
26
+ fishermanMode?: boolean;
27
+ /** Address of the forwarder contract to wrap all L1 transactions through (for testing purposes only) */
28
+ publisherForwarderAddress?: EthAddress;
30
29
  };
31
30
  export declare const getTxSenderConfigMappings: (scope: 'PROVER' | 'SEQ') => ConfigMappingsType<Omit<TxSenderConfig, 'l1Contracts'>>;
32
31
  export declare function getTxSenderConfigFromEnv(scope: 'PROVER' | 'SEQ'): Omit<TxSenderConfig, 'l1Contracts'>;
33
32
  export declare const getPublisherConfigMappings: (scope: 'PROVER' | 'SEQ') => ConfigMappingsType<PublisherConfig & L1TxUtilsConfig>;
34
33
  export declare function getPublisherConfigFromEnv(scope: 'PROVER' | 'SEQ'): PublisherConfig;
35
- //# sourceMappingURL=config.d.ts.map
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGlzaGVyL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxjQUFjLEVBQXlCLE1BQU0seUJBQXlCLENBQUM7QUFDckYsT0FBTyxFQUFFLEtBQUssY0FBYyxFQUEwQixNQUFNLDJCQUEyQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBMkIsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RixPQUFPLEVBQ0wsS0FBSyxrQkFBa0IsRUFDdkIsV0FBVyxFQUdaLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNEOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGNBQWMsR0FBRyxjQUFjLEdBQUc7SUFDNUM7O09BRUc7SUFDSCxvQkFBb0IsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxLQUFLLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUVwRDs7T0FFRztJQUNILGtCQUFrQixDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUM7Q0FDbkMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGVBQWUsR0FBRyxlQUFlLEdBQzNDLGNBQWMsR0FBRztJQUNmLG9HQUFvRztJQUNwRywyQkFBMkIsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUN0Qyw0R0FBNEc7SUFDNUcsYUFBYSxDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQ3hCLHdHQUF3RztJQUN4Ryx5QkFBeUIsQ0FBQyxFQUFFLFVBQVUsQ0FBQztDQUN4QyxDQUFDO0FBRUosZUFBTyxNQUFNLHlCQUF5QixFQUFFLENBQ3RDLEtBQUssRUFBRSxRQUFRLEdBQUcsS0FBSyxLQUNwQixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLGFBQWEsQ0FBQyxDQWV6RCxDQUFDO0FBRUgsd0JBQWdCLHdCQUF3QixDQUFDLEtBQUssRUFBRSxRQUFRLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFDLENBRXJHO0FBRUQsZUFBTyxNQUFNLDBCQUEwQixFQUFFLENBQ3ZDLEtBQUssRUFBRSxRQUFRLEdBQUcsS0FBSyxLQUNwQixrQkFBa0IsQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQW1CdkQsQ0FBQztBQUVILHdCQUFnQix5QkFBeUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxHQUFHLEtBQUssR0FBRyxlQUFlLENBRWxGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/publisher/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAyB,MAAM,yBAAyB,CAAC;AACrF,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,eAAe,EAGrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,kBAAkB,EAAE,WAAW,EAAyB,MAAM,0BAA0B,CAAC;AACvG,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C;;OAEG;IACH,oBAAoB,CAAC,EAAE,WAAW,CAAC,KAAK,MAAM,EAAE,CAAC,EAAE,CAAC;IAEpD;;OAEG;IACH,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC;IAElC;;OAEG;IACH,8BAA8B,EAAE,UAAU,CAAC;CAC5C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,eAAe,GAC3C,cAAc,GAAG;IACf;;OAEG;IACH,wBAAwB,EAAE,MAAM,CAAC;CAClC,CAAC;AAEJ,eAAO,MAAM,yBAAyB,EAAE,CACtC,KAAK,EAAE,QAAQ,GAAG,KAAK,KACpB,kBAAkB,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAqBzD,CAAC;AAEH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAErG;AAED,eAAO,MAAM,0BAA0B,EAAE,CACvC,KAAK,EAAE,QAAQ,GAAG,KAAK,KACpB,kBAAkB,CAAC,eAAe,GAAG,eAAe,CASvD,CAAC;AAEH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,eAAe,CAElF"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/publisher/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAyB,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,2BAA2B,CAAC;AACxF,OAAO,EAAE,KAAK,eAAe,EAA2B,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EACL,KAAK,kBAAkB,EACvB,WAAW,EAGZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C;;OAEG;IACH,oBAAoB,CAAC,EAAE,WAAW,CAAC,KAAK,MAAM,EAAE,CAAC,EAAE,CAAC;IAEpD;;OAEG;IACH,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC;CACnC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,eAAe,GAC3C,cAAc,GAAG;IACf,oGAAoG;IACpG,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,4GAA4G;IAC5G,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wGAAwG;IACxG,yBAAyB,CAAC,EAAE,UAAU,CAAC;CACxC,CAAC;AAEJ,eAAO,MAAM,yBAAyB,EAAE,CACtC,KAAK,EAAE,QAAQ,GAAG,KAAK,KACpB,kBAAkB,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAezD,CAAC;AAEH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAErG;AAED,eAAO,MAAM,0BAA0B,EAAE,CACvC,KAAK,EAAE,QAAQ,GAAG,KAAK,KACpB,kBAAkB,CAAC,eAAe,GAAG,eAAe,CAmBvD,CAAC;AAEH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,eAAe,CAElF"}
@@ -1,24 +1,17 @@
1
1
  import { blobSinkConfigMapping } from '@aztec/blob-sink/client';
2
- import { l1ReaderConfigMappings, l1TxUtilsConfigMappings } from '@aztec/ethereum';
3
- import { SecretValue, getConfigFromMappings } from '@aztec/foundation/config';
2
+ import { l1ReaderConfigMappings } from '@aztec/ethereum/l1-reader';
3
+ import { l1TxUtilsConfigMappings } from '@aztec/ethereum/l1-tx-utils';
4
+ import { SecretValue, booleanConfigHelper, getConfigFromMappings } from '@aztec/foundation/config';
4
5
  import { EthAddress } from '@aztec/foundation/eth-address';
5
6
  export const getTxSenderConfigMappings = (scope)=>({
6
7
  ...l1ReaderConfigMappings,
7
- customForwarderContractAddress: {
8
- env: `CUSTOM_FORWARDER_CONTRACT_ADDRESS`,
9
- parseEnv: (val)=>EthAddress.fromString(val),
10
- description: 'The address of the custom forwarder contract.',
11
- defaultValue: EthAddress.ZERO
12
- },
13
8
  publisherPrivateKeys: {
14
9
  env: scope === 'PROVER' ? `PROVER_PUBLISHER_PRIVATE_KEYS` : `SEQ_PUBLISHER_PRIVATE_KEYS`,
15
10
  description: 'The private keys to be used by the publisher.',
16
11
  parseEnv: (val)=>val.split(',').map((key)=>new SecretValue(`0x${key.replace('0x', '')}`)),
17
12
  defaultValue: [],
18
- fallback: scope === 'PROVER' ? [
19
- 'PROVER_PUBLISHER_PRIVATE_KEY'
20
- ] : [
21
- 'SEQ_PUBLISHER_PRIVATE_KEY'
13
+ fallback: [
14
+ scope === 'PROVER' ? `PROVER_PUBLISHER_PRIVATE_KEY` : `SEQ_PUBLISHER_PRIVATE_KEY`
22
15
  ]
23
16
  },
24
17
  publisherAddresses: {
@@ -32,11 +25,20 @@ export function getTxSenderConfigFromEnv(scope) {
32
25
  return getConfigFromMappings(getTxSenderConfigMappings(scope));
33
26
  }
34
27
  export const getPublisherConfigMappings = (scope)=>({
35
- l1PublishRetryIntervalMS: {
36
- env: scope === `PROVER` ? `PROVER_PUBLISH_RETRY_INTERVAL_MS` : `SEQ_PUBLISH_RETRY_INTERVAL_MS`,
37
- parseEnv: (val)=>+val,
38
- defaultValue: 1000,
39
- description: 'The interval to wait between publish retries.'
28
+ publisherAllowInvalidStates: {
29
+ description: 'True to use publishers in invalid states (timed out, cancelled, etc) if no other is available',
30
+ env: scope === `PROVER` ? `PROVER_PUBLISHER_ALLOW_INVALID_STATES` : `SEQ_PUBLISHER_ALLOW_INVALID_STATES`,
31
+ ...booleanConfigHelper(true)
32
+ },
33
+ fishermanMode: {
34
+ env: 'FISHERMAN_MODE',
35
+ description: 'Whether to run in fisherman mode: builds blocks on every slot for validation without publishing to L1',
36
+ ...booleanConfigHelper(false)
37
+ },
38
+ publisherForwarderAddress: {
39
+ env: scope === `PROVER` ? `PROVER_PUBLISHER_FORWARDER_ADDRESS` : `SEQ_PUBLISHER_FORWARDER_ADDRESS`,
40
+ description: 'Address of the forwarder contract to wrap all L1 transactions through (for testing purposes only)',
41
+ parseEnv: (val)=>val ? EthAddress.fromString(val) : undefined
40
42
  },
41
43
  ...l1TxUtilsConfigMappings,
42
44
  ...blobSinkConfigMapping
@@ -1,4 +1,4 @@
1
- export { SequencerPublisher, SignalType } from './sequencer-publisher.js';
1
+ export { SequencerPublisher } from './sequencer-publisher.js';
2
2
  export { SequencerPublisherFactory } from './sequencer-publisher-factory.js';
3
3
  export { SequencerPublisherMetrics } from './sequencer-publisher-metrics.js';
4
- //# sourceMappingURL=index.d.ts.map
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaXNoZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHN0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0NBQWtDLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/publisher/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAG7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/publisher/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAG7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC"}
@@ -1,4 +1,4 @@
1
- export { SequencerPublisher, SignalType } from './sequencer-publisher.js';
1
+ export { SequencerPublisher } from './sequencer-publisher.js';
2
2
  export { SequencerPublisherFactory } from './sequencer-publisher-factory.js';
3
3
  // Used for tests
4
4
  export { SequencerPublisherMetrics } from './sequencer-publisher-metrics.js';
@@ -1,8 +1,10 @@
1
- import { EthAddress } from '@aztec/aztec.js';
1
+ import { EthAddress } from '@aztec/aztec.js/addresses';
2
+ import { type Logger } from '@aztec/aztec.js/log';
2
3
  import type { BlobSinkClientInterface } from '@aztec/blob-sink/client';
3
4
  import type { EpochCache } from '@aztec/epoch-cache';
4
- import type { GovernanceProposerContract, PublisherManager, RollupContract } from '@aztec/ethereum';
5
+ import type { GovernanceProposerContract, RollupContract } from '@aztec/ethereum/contracts';
5
6
  import type { L1TxUtilsWithBlobs } from '@aztec/ethereum/l1-tx-utils-with-blobs';
7
+ import type { PublisherManager } from '@aztec/ethereum/publisher-manager';
6
8
  import type { DateProvider } from '@aztec/foundation/timer';
7
9
  import type { SlashFactoryContract } from '@aztec/stdlib/l1-contracts';
8
10
  import type { TelemetryClient } from '@aztec/telemetry-client';
@@ -17,6 +19,9 @@ export declare class SequencerPublisherFactory {
17
19
  private sequencerConfig;
18
20
  private deps;
19
21
  private publisherMetrics;
22
+ /** Stores the last slot in which every action was carried out by a publisher */
23
+ private lastActions;
24
+ private logger;
20
25
  constructor(sequencerConfig: SequencerClientConfig, deps: {
21
26
  telemetry: TelemetryClient;
22
27
  publisherManager: PublisherManager<L1TxUtilsWithBlobs>;
@@ -27,6 +32,7 @@ export declare class SequencerPublisherFactory {
27
32
  governanceProposerContract: GovernanceProposerContract;
28
33
  slashFactoryContract: SlashFactoryContract;
29
34
  nodeKeyStore: NodeKeystoreAdapter;
35
+ logger?: Logger;
30
36
  });
31
37
  /**
32
38
  * Creates a new SequencerPublisher instance.
@@ -35,4 +41,4 @@ export declare class SequencerPublisherFactory {
35
41
  */
36
42
  create(validatorAddress?: EthAddress): Promise<AttestorPublisherPair>;
37
43
  }
38
- //# sourceMappingURL=sequencer-publisher-factory.d.ts.map
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLXB1Ymxpc2hlci1mYWN0b3J5LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGlzaGVyL3NlcXVlbmNlci1wdWJsaXNoZXItZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsMEJBQTBCLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUYsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBbUIsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzRixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlELE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTFELE9BQU8sRUFBZSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNFLE1BQU0sTUFBTSxxQkFBcUIsR0FBRztJQUNsQyxlQUFlLEVBQUUsVUFBVSxDQUFDO0lBQzVCLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQztDQUMvQixDQUFDO0FBRUYscUJBQWEseUJBQXlCO0lBU2xDLE9BQU8sQ0FBQyxlQUFlO0lBQ3ZCLE9BQU8sQ0FBQyxJQUFJO0lBVGQsT0FBTyxDQUFDLGdCQUFnQixDQUE0QjtJQUVwRCxnRkFBZ0Y7SUFDaEYsT0FBTyxDQUFDLFdBQVcsQ0FBMkM7SUFFOUQsT0FBTyxDQUFDLE1BQU0sQ0FBUztJQUV2QixZQUNVLGVBQWUsRUFBRSxxQkFBcUIsRUFDdEMsSUFBSSxFQUFFO1FBQ1osU0FBUyxFQUFFLGVBQWUsQ0FBQztRQUMzQixnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3ZELGNBQWMsQ0FBQyxFQUFFLHVCQUF1QixDQUFDO1FBQ3pDLFlBQVksRUFBRSxZQUFZLENBQUM7UUFDM0IsVUFBVSxFQUFFLFVBQVUsQ0FBQztRQUN2QixjQUFjLEVBQUUsY0FBYyxDQUFDO1FBQy9CLDBCQUEwQixFQUFFLDBCQUEwQixDQUFDO1FBQ3ZELG9CQUFvQixFQUFFLG9CQUFvQixDQUFDO1FBQzNDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQztRQUNsQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUM7S0FDakIsRUFJRjtJQUNEOzs7O09BSUc7SUFDVSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBcUNqRjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"sequencer-publisher-factory.d.ts","sourceRoot":"","sources":["../../src/publisher/sequencer-publisher-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,0BAA0B,EAAmB,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACrH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,MAAM,qBAAqB,GAAG;IAClC,eAAe,EAAE,UAAU,CAAC;IAC5B,SAAS,EAAE,kBAAkB,CAAC;CAC/B,CAAC;AAEF,qBAAa,yBAAyB;IAGlC,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,IAAI;IAHd,OAAO,CAAC,gBAAgB,CAA4B;gBAE1C,eAAe,EAAE,qBAAqB,EACtC,IAAI,EAAE;QACZ,SAAS,EAAE,eAAe,CAAC;QAC3B,gBAAgB,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;QACvD,cAAc,CAAC,EAAE,uBAAuB,CAAC;QACzC,YAAY,EAAE,YAAY,CAAC;QAC3B,UAAU,EAAE,UAAU,CAAC;QACvB,cAAc,EAAE,cAAc,CAAC;QAC/B,0BAA0B,EAAE,0BAA0B,CAAC;QACvD,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,YAAY,EAAE,mBAAmB,CAAC;KACnC;IAIH;;;;OAIG;IACU,MAAM,CAAC,gBAAgB,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAoCnF"}
1
+ {"version":3,"file":"sequencer-publisher-factory.d.ts","sourceRoot":"","sources":["../../src/publisher/sequencer-publisher-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC5F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE3F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAe,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE3E,MAAM,MAAM,qBAAqB,GAAG;IAClC,eAAe,EAAE,UAAU,CAAC;IAC5B,SAAS,EAAE,kBAAkB,CAAC;CAC/B,CAAC;AAEF,qBAAa,yBAAyB;IASlC,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,IAAI;IATd,OAAO,CAAC,gBAAgB,CAA4B;IAEpD,gFAAgF;IAChF,OAAO,CAAC,WAAW,CAA2C;IAE9D,OAAO,CAAC,MAAM,CAAS;IAEvB,YACU,eAAe,EAAE,qBAAqB,EACtC,IAAI,EAAE;QACZ,SAAS,EAAE,eAAe,CAAC;QAC3B,gBAAgB,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;QACvD,cAAc,CAAC,EAAE,uBAAuB,CAAC;QACzC,YAAY,EAAE,YAAY,CAAC;QAC3B,UAAU,EAAE,UAAU,CAAC;QACvB,cAAc,EAAE,cAAc,CAAC;QAC/B,0BAA0B,EAAE,0BAA0B,CAAC;QACvD,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,YAAY,EAAE,mBAAmB,CAAC;QAClC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,EAIF;IACD;;;;OAIG;IACU,MAAM,CAAC,gBAAgB,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAqCjF;CACF"}
@@ -1,13 +1,18 @@
1
+ import { createLogger } from '@aztec/aztec.js/log';
1
2
  import { SequencerPublisherMetrics } from './sequencer-publisher-metrics.js';
2
3
  import { SequencerPublisher } from './sequencer-publisher.js';
3
4
  export class SequencerPublisherFactory {
4
5
  sequencerConfig;
5
6
  deps;
6
7
  publisherMetrics;
8
+ /** Stores the last slot in which every action was carried out by a publisher */ lastActions;
9
+ logger;
7
10
  constructor(sequencerConfig, deps){
8
11
  this.sequencerConfig = sequencerConfig;
9
12
  this.deps = deps;
13
+ this.lastActions = {};
10
14
  this.publisherMetrics = new SequencerPublisherMetrics(deps.telemetry, 'SequencerPublisher');
15
+ this.logger = deps.logger ?? createLogger('sequencer');
11
16
  }
12
17
  /**
13
18
  * Creates a new SequencerPublisher instance.
@@ -34,7 +39,9 @@ export class SequencerPublisherFactory {
34
39
  slashingProposerContract,
35
40
  slashFactoryContract: this.deps.slashFactoryContract,
36
41
  dateProvider: this.deps.dateProvider,
37
- metrics: this.publisherMetrics
42
+ metrics: this.publisherMetrics,
43
+ lastActions: this.lastActions,
44
+ log: this.logger.createChild('publisher')
38
45
  });
39
46
  return {
40
47
  attestorAddress,
@@ -17,10 +17,10 @@ export declare class SequencerPublisherMetrics {
17
17
  private readonly blobTxSuccessCounter;
18
18
  private readonly blobTxFailureCounter;
19
19
  private senderBalance;
20
- constructor(client: TelemetryClient, name?: string, logger?: import("@aztec/aztec.js").Logger);
20
+ constructor(client: TelemetryClient, name?: string, logger?: import("@aztec/aztec.js/log").Logger);
21
21
  recordFailedTx(txType: L1TxType): void;
22
22
  recordProcessBlockTx(durationMs: number, stats: L1PublishBlockStats): void;
23
23
  recordSenderBalance(wei: bigint, senderAddress: string): void;
24
24
  private recordTx;
25
25
  }
26
- //# sourceMappingURL=sequencer-publisher-metrics.d.ts.map
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLXB1Ymxpc2hlci1tZXRyaWNzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGlzaGVyL3NlcXVlbmNlci1wdWJsaXNoZXItbWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBa0IsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRSxPQUFPLEVBS0wsS0FBSyxlQUFlLEVBR3JCLE1BQU0seUJBQXlCLENBQUM7QUFJakMsTUFBTSxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUM7QUFFakMscUJBQWEseUJBQXlCO0lBc0JsQyxPQUFPLENBQUMsTUFBTTtJQXJCaEIsT0FBTyxDQUFDLFFBQVEsQ0FBWTtJQUU1QixPQUFPLENBQUMsT0FBTyxDQUFnQjtJQUMvQixPQUFPLENBQUMsVUFBVSxDQUFZO0lBQzlCLE9BQU8sQ0FBQyxLQUFLLENBQVk7SUFDekIsT0FBTyxDQUFDLGNBQWMsQ0FBWTtJQUNsQyxPQUFPLENBQUMsYUFBYSxDQUFZO0lBQ2pDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBWTtJQUNyQyxPQUFPLENBQUMsaUJBQWlCLENBQVk7SUFDckMsT0FBTyxDQUFDLFVBQVUsQ0FBWTtJQUU5QixPQUFPLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFZO0lBQy9DLE9BQU8sQ0FBQyxRQUFRLENBQUMsNEJBQTRCLENBQVk7SUFDekQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBZ0I7SUFDckQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBZ0I7SUFFckQsT0FBTyxDQUFDLGFBQWEsQ0FBUTtJQUU3QixZQUNFLE1BQU0sRUFBRSxlQUFlLEVBQ3ZCLElBQUksU0FBdUIsRUFDbkIsTUFBTSx1Q0FBOEMsRUFzRjdEO0lBRUQsY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLFFBUzlCO0lBRUQsb0JBQW9CLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsbUJBQW1CLFFBWWxFO0lBRUQsbUJBQW1CLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxRQUtyRDtJQUVELE9BQU8sQ0FBQyxRQUFRO0NBdUNqQiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"sequencer-publisher-metrics.d.ts","sourceRoot":"","sources":["../../src/publisher/sequencer-publisher-metrics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAkB,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAKL,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAIjC,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC;AAEjC,qBAAa,yBAAyB;IAsBlC,OAAO,CAAC,MAAM;IArBhB,OAAO,CAAC,QAAQ,CAAY;IAE5B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,cAAc,CAAY;IAClC,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,iBAAiB,CAAY;IACrC,OAAO,CAAC,iBAAiB,CAAY;IACrC,OAAO,CAAC,UAAU,CAAY;IAE9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAY;IAC/C,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAY;IACzD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgB;IACrD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgB;IAErD,OAAO,CAAC,aAAa,CAAQ;gBAG3B,MAAM,EAAE,eAAe,EACvB,IAAI,SAAuB,EACnB,MAAM,mCAA8C;IAwF9D,cAAc,CAAC,MAAM,EAAE,QAAQ;IAW/B,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB;IAcnE,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAOtD,OAAO,CAAC,QAAQ;CAuCjB"}
1
+ {"version":3,"file":"sequencer-publisher-metrics.d.ts","sourceRoot":"","sources":["../../src/publisher/sequencer-publisher-metrics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAkB,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAKL,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAIjC,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC;AAEjC,qBAAa,yBAAyB;IAsBlC,OAAO,CAAC,MAAM;IArBhB,OAAO,CAAC,QAAQ,CAAY;IAE5B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,cAAc,CAAY;IAClC,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,iBAAiB,CAAY;IACrC,OAAO,CAAC,iBAAiB,CAAY;IACrC,OAAO,CAAC,UAAU,CAAY;IAE9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAY;IAC/C,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAY;IACzD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgB;IACrD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgB;IAErD,OAAO,CAAC,aAAa,CAAQ;IAE7B,YACE,MAAM,EAAE,eAAe,EACvB,IAAI,SAAuB,EACnB,MAAM,uCAA8C,EAsF7D;IAED,cAAc,CAAC,MAAM,EAAE,QAAQ,QAS9B;IAED,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,QAYlE;IAED,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,QAKrD;IAED,OAAO,CAAC,QAAQ;CAuCjB"}
@@ -1,4 +1,4 @@
1
- import { createLogger } from '@aztec/aztec.js';
1
+ import { createLogger } from '@aztec/aztec.js/log';
2
2
  import { Attributes, Metrics, ValueType } from '@aztec/telemetry-client';
3
3
  import { formatEther } from 'viem/utils';
4
4
  export class SequencerPublisherMetrics {