@aztec/sequencer-client 0.71.0 → 0.73.0

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 (66) hide show
  1. package/dest/client/sequencer-client.d.ts +11 -6
  2. package/dest/client/sequencer-client.d.ts.map +1 -1
  3. package/dest/client/sequencer-client.js +41 -10
  4. package/dest/config.d.ts +1 -1
  5. package/dest/config.d.ts.map +1 -1
  6. package/dest/config.js +3 -4
  7. package/dest/publisher/config.d.ts +5 -0
  8. package/dest/publisher/config.d.ts.map +1 -1
  9. package/dest/publisher/config.js +9 -2
  10. package/dest/publisher/index.d.ts +1 -1
  11. package/dest/publisher/index.d.ts.map +1 -1
  12. package/dest/publisher/index.js +2 -2
  13. package/dest/publisher/{l1-publisher-metrics.d.ts → sequencer-publisher-metrics.d.ts} +6 -2
  14. package/dest/publisher/sequencer-publisher-metrics.d.ts.map +1 -0
  15. package/dest/publisher/sequencer-publisher-metrics.js +111 -0
  16. package/dest/publisher/sequencer-publisher.d.ts +158 -0
  17. package/dest/publisher/sequencer-publisher.d.ts.map +1 -0
  18. package/dest/publisher/sequencer-publisher.js +555 -0
  19. package/dest/sequencer/allowed.d.ts +1 -1
  20. package/dest/sequencer/allowed.d.ts.map +1 -1
  21. package/dest/sequencer/allowed.js +6 -6
  22. package/dest/sequencer/metrics.d.ts +1 -1
  23. package/dest/sequencer/metrics.d.ts.map +1 -1
  24. package/dest/sequencer/metrics.js +3 -4
  25. package/dest/sequencer/sequencer.d.ts +18 -12
  26. package/dest/sequencer/sequencer.d.ts.map +1 -1
  27. package/dest/sequencer/sequencer.js +118 -125
  28. package/dest/sequencer/utils.d.ts +1 -1
  29. package/dest/sequencer/utils.d.ts.map +1 -1
  30. package/dest/sequencer/utils.js +3 -3
  31. package/dest/slasher/slasher_client.d.ts.map +1 -1
  32. package/dest/slasher/slasher_client.js +6 -3
  33. package/dest/test/index.d.ts +3 -3
  34. package/dest/test/index.d.ts.map +1 -1
  35. package/dest/test/index.js +1 -2
  36. package/dest/tx_validator/gas_validator.d.ts +1 -1
  37. package/dest/tx_validator/gas_validator.d.ts.map +1 -1
  38. package/dest/tx_validator/gas_validator.js +10 -5
  39. package/dest/tx_validator/test_utils.d.ts +4 -4
  40. package/dest/tx_validator/test_utils.d.ts.map +1 -1
  41. package/dest/tx_validator/test_utils.js +3 -3
  42. package/package.json +22 -21
  43. package/src/client/sequencer-client.ts +60 -14
  44. package/src/config.ts +3 -3
  45. package/src/publisher/config.ts +13 -1
  46. package/src/publisher/index.ts +1 -1
  47. package/src/publisher/{l1-publisher-metrics.ts → sequencer-publisher-metrics.ts} +41 -2
  48. package/src/publisher/sequencer-publisher.ts +730 -0
  49. package/src/sequencer/allowed.ts +5 -5
  50. package/src/sequencer/metrics.ts +2 -3
  51. package/src/sequencer/sequencer.ts +153 -150
  52. package/src/sequencer/utils.ts +5 -2
  53. package/src/slasher/slasher_client.ts +7 -2
  54. package/src/test/index.ts +2 -4
  55. package/src/tx_validator/gas_validator.ts +17 -4
  56. package/src/tx_validator/test_utils.ts +5 -5
  57. package/dest/publisher/l1-publisher-metrics.d.ts.map +0 -1
  58. package/dest/publisher/l1-publisher-metrics.js +0 -85
  59. package/dest/publisher/l1-publisher.d.ts +0 -195
  60. package/dest/publisher/l1-publisher.d.ts.map +0 -1
  61. package/dest/publisher/l1-publisher.js +0 -864
  62. package/dest/test/test-l1-publisher.d.ts +0 -9
  63. package/dest/test/test-l1-publisher.d.ts.map +0 -1
  64. package/dest/test/test-l1-publisher.js +0 -11
  65. package/src/publisher/l1-publisher.ts +0 -1208
  66. package/src/test/test-l1-publisher.ts +0 -20
@@ -12,7 +12,7 @@ import { formatEther } from 'viem/utils';
12
12
 
13
13
  export type L1TxType = 'submitProof' | 'process' | 'claimEpochProofRight';
14
14
 
15
- export class L1PublisherMetrics {
15
+ export class SequencerPublisherMetrics {
16
16
  private gasPrice: Histogram;
17
17
 
18
18
  private txCount: UpDownCounter;
@@ -23,7 +23,12 @@ export class L1PublisherMetrics {
23
23
  private txBlobDataGasUsed: Histogram;
24
24
  private txBlobDataGasCost: Histogram;
25
25
 
26
- constructor(client: TelemetryClient, name = 'L1Publisher') {
26
+ private readonly blobCountHistogram: Histogram;
27
+ private readonly blobInclusionBlocksHistogram: Histogram;
28
+ private readonly blobTxSuccessCounter: UpDownCounter;
29
+ private readonly blobTxFailureCounter: UpDownCounter;
30
+
31
+ constructor(client: TelemetryClient, name = 'SequencerPublisher') {
27
32
  const meter = client.getMeter(name);
28
33
 
29
34
  this.gasPrice = meter.createHistogram(Metrics.L1_PUBLISHER_GAS_PRICE, {
@@ -71,6 +76,26 @@ export class L1PublisherMetrics {
71
76
  unit: 'gwei',
72
77
  valueType: ValueType.INT,
73
78
  });
79
+
80
+ this.blobCountHistogram = meter.createHistogram(Metrics.L1_PUBLISHER_BLOB_COUNT, {
81
+ description: 'Number of blobs in L1 transactions',
82
+ unit: 'blobs',
83
+ valueType: ValueType.INT,
84
+ });
85
+
86
+ this.blobInclusionBlocksHistogram = meter.createHistogram(Metrics.L1_PUBLISHER_BLOB_INCLUSION_BLOCKS, {
87
+ description: 'Number of L1 blocks between blob tx submission and inclusion',
88
+ unit: 'blocks',
89
+ valueType: ValueType.INT,
90
+ });
91
+
92
+ this.blobTxSuccessCounter = meter.createUpDownCounter(Metrics.L1_PUBLISHER_BLOB_TX_SUCCESS, {
93
+ description: 'Number of successful L1 transactions with blobs',
94
+ });
95
+
96
+ this.blobTxFailureCounter = meter.createUpDownCounter(Metrics.L1_PUBLISHER_BLOB_TX_FAILURE, {
97
+ description: 'Number of failed L1 transactions with blobs',
98
+ });
74
99
  }
75
100
 
76
101
  recordFailedTx(txType: L1TxType) {
@@ -78,6 +103,10 @@ export class L1PublisherMetrics {
78
103
  [Attributes.L1_TX_TYPE]: txType,
79
104
  [Attributes.OK]: false,
80
105
  });
106
+
107
+ if (txType === 'process') {
108
+ this.blobTxFailureCounter.add(1);
109
+ }
81
110
  }
82
111
 
83
112
  recordSubmitProof(durationMs: number, stats: L1PublishProofStats) {
@@ -86,6 +115,16 @@ export class L1PublisherMetrics {
86
115
 
87
116
  recordProcessBlockTx(durationMs: number, stats: L1PublishBlockStats) {
88
117
  this.recordTx('process', durationMs, stats);
118
+
119
+ if (stats.blobCount && stats.blobCount > 0) {
120
+ this.blobCountHistogram.record(stats.blobCount);
121
+
122
+ if (stats.inclusionBlocks !== undefined) {
123
+ this.blobInclusionBlocksHistogram.record(stats.inclusionBlocks);
124
+ }
125
+
126
+ this.blobTxSuccessCounter.add(1);
127
+ }
89
128
  }
90
129
 
91
130
  recordClaimEpochProofRightTx(durationMs: number, stats: L1PublishStats) {