@aztec/sequencer-client 0.67.1 → 0.68.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 (47) hide show
  1. package/dest/config.d.ts +3 -3
  2. package/dest/config.d.ts.map +1 -1
  3. package/dest/config.js +3 -56
  4. package/dest/index.d.ts +0 -1
  5. package/dest/index.d.ts.map +1 -1
  6. package/dest/index.js +1 -2
  7. package/dest/publisher/index.d.ts +0 -1
  8. package/dest/publisher/index.d.ts.map +1 -1
  9. package/dest/publisher/index.js +1 -2
  10. package/dest/publisher/l1-publisher-metrics.d.ts +5 -2
  11. package/dest/publisher/l1-publisher-metrics.d.ts.map +1 -1
  12. package/dest/publisher/l1-publisher-metrics.js +16 -1
  13. package/dest/publisher/l1-publisher.d.ts +4 -1
  14. package/dest/publisher/l1-publisher.d.ts.map +1 -1
  15. package/dest/publisher/l1-publisher.js +200 -44
  16. package/dest/publisher/utils.d.ts +1 -3
  17. package/dest/publisher/utils.d.ts.map +1 -1
  18. package/dest/publisher/utils.js +2 -8
  19. package/dest/sequencer/allowed.d.ts +3 -0
  20. package/dest/sequencer/allowed.d.ts.map +1 -0
  21. package/dest/sequencer/allowed.js +34 -0
  22. package/dest/sequencer/config.d.ts +1 -1
  23. package/dest/sequencer/config.d.ts.map +1 -1
  24. package/dest/sequencer/metrics.d.ts +2 -0
  25. package/dest/sequencer/metrics.d.ts.map +1 -1
  26. package/dest/sequencer/metrics.js +13 -2
  27. package/dest/sequencer/sequencer.d.ts +1 -4
  28. package/dest/sequencer/sequencer.d.ts.map +1 -1
  29. package/dest/sequencer/sequencer.js +51 -54
  30. package/dest/tx_validator/gas_validator.d.ts +3 -4
  31. package/dest/tx_validator/gas_validator.d.ts.map +1 -1
  32. package/dest/tx_validator/gas_validator.js +25 -8
  33. package/dest/tx_validator/tx_validator_factory.d.ts.map +1 -1
  34. package/dest/tx_validator/tx_validator_factory.js +6 -4
  35. package/package.json +26 -23
  36. package/src/config.ts +5 -60
  37. package/src/index.ts +0 -1
  38. package/src/publisher/index.ts +0 -1
  39. package/src/publisher/l1-publisher-metrics.ts +24 -3
  40. package/src/publisher/l1-publisher.ts +241 -68
  41. package/src/publisher/utils.ts +1 -10
  42. package/src/sequencer/allowed.ts +36 -0
  43. package/src/sequencer/config.ts +1 -1
  44. package/src/sequencer/metrics.ts +15 -1
  45. package/src/sequencer/sequencer.ts +61 -70
  46. package/src/tx_validator/gas_validator.ts +32 -6
  47. package/src/tx_validator/tx_validator_factory.ts +11 -3
@@ -1,41 +1,58 @@
1
- var _GasTxValidator_instances, _GasTxValidator_log, _GasTxValidator_publicDataSource, _GasTxValidator_feeJuiceAddress, _GasTxValidator_validateTxFee;
1
+ var _GasTxValidator_instances, _GasTxValidator_log, _GasTxValidator_publicDataSource, _GasTxValidator_feeJuiceAddress, _GasTxValidator_enforceFees, _GasTxValidator_gasFees, _GasTxValidator_shouldSkip, _GasTxValidator_validateTxFee;
2
2
  import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
3
  import { TxExecutionPhase } from '@aztec/circuit-types';
4
4
  import { FunctionSelector } from '@aztec/circuits.js';
5
5
  import { createLogger } from '@aztec/foundation/log';
6
6
  import { computeFeePayerBalanceStorageSlot, getExecutionRequestsByPhase } from '@aztec/simulator';
7
7
  export class GasTxValidator {
8
- constructor(publicDataSource, feeJuiceAddress, enforceFees) {
8
+ constructor(publicDataSource, feeJuiceAddress, enforceFees, gasFees) {
9
9
  _GasTxValidator_instances.add(this);
10
- this.enforceFees = enforceFees;
11
10
  _GasTxValidator_log.set(this, createLogger('sequencer:tx_validator:tx_gas'));
12
11
  _GasTxValidator_publicDataSource.set(this, void 0);
13
12
  _GasTxValidator_feeJuiceAddress.set(this, void 0);
13
+ _GasTxValidator_enforceFees.set(this, void 0);
14
+ _GasTxValidator_gasFees.set(this, void 0);
14
15
  __classPrivateFieldSet(this, _GasTxValidator_publicDataSource, publicDataSource, "f");
15
16
  __classPrivateFieldSet(this, _GasTxValidator_feeJuiceAddress, feeJuiceAddress, "f");
17
+ __classPrivateFieldSet(this, _GasTxValidator_enforceFees, enforceFees, "f");
18
+ __classPrivateFieldSet(this, _GasTxValidator_gasFees, gasFees, "f");
16
19
  }
17
20
  async validateTxs(txs) {
18
21
  const validTxs = [];
19
22
  const invalidTxs = [];
23
+ const skippedTxs = [];
20
24
  for (const tx of txs) {
21
- if (await __classPrivateFieldGet(this, _GasTxValidator_instances, "m", _GasTxValidator_validateTxFee).call(this, tx)) {
25
+ if (__classPrivateFieldGet(this, _GasTxValidator_instances, "m", _GasTxValidator_shouldSkip).call(this, tx)) {
26
+ skippedTxs.push(tx);
27
+ }
28
+ else if (await __classPrivateFieldGet(this, _GasTxValidator_instances, "m", _GasTxValidator_validateTxFee).call(this, tx)) {
22
29
  validTxs.push(tx);
23
30
  }
24
31
  else {
25
32
  invalidTxs.push(tx);
26
33
  }
27
34
  }
28
- return [validTxs, invalidTxs];
35
+ return [validTxs, invalidTxs, skippedTxs];
29
36
  }
30
37
  validateTx(tx) {
31
38
  return __classPrivateFieldGet(this, _GasTxValidator_instances, "m", _GasTxValidator_validateTxFee).call(this, tx);
32
39
  }
33
40
  }
34
- _GasTxValidator_log = new WeakMap(), _GasTxValidator_publicDataSource = new WeakMap(), _GasTxValidator_feeJuiceAddress = new WeakMap(), _GasTxValidator_instances = new WeakSet(), _GasTxValidator_validateTxFee = async function _GasTxValidator_validateTxFee(tx) {
41
+ _GasTxValidator_log = new WeakMap(), _GasTxValidator_publicDataSource = new WeakMap(), _GasTxValidator_feeJuiceAddress = new WeakMap(), _GasTxValidator_enforceFees = new WeakMap(), _GasTxValidator_gasFees = new WeakMap(), _GasTxValidator_instances = new WeakSet(), _GasTxValidator_shouldSkip = function _GasTxValidator_shouldSkip(tx) {
42
+ const gasSettings = tx.data.constants.txContext.gasSettings;
43
+ // Skip the tx if its max fees are not enough for the current block's gas fees.
44
+ const maxFeesPerGas = gasSettings.maxFeesPerGas;
45
+ const notEnoughMaxFees = maxFeesPerGas.feePerDaGas.lt(__classPrivateFieldGet(this, _GasTxValidator_gasFees, "f").feePerDaGas) ||
46
+ maxFeesPerGas.feePerL2Gas.lt(__classPrivateFieldGet(this, _GasTxValidator_gasFees, "f").feePerL2Gas);
47
+ if (notEnoughMaxFees) {
48
+ __classPrivateFieldGet(this, _GasTxValidator_log, "f").warn(`Skipping transaction ${tx.getTxHash()} due to insufficient fee per gas`);
49
+ }
50
+ return notEnoughMaxFees;
51
+ }, _GasTxValidator_validateTxFee = async function _GasTxValidator_validateTxFee(tx) {
35
52
  const feePayer = tx.data.feePayer;
36
53
  // TODO(@spalladino) Eventually remove the is_zero condition as we should always charge fees to every tx
37
54
  if (feePayer.isZero()) {
38
- if (this.enforceFees) {
55
+ if (__classPrivateFieldGet(this, _GasTxValidator_enforceFees, "f")) {
39
56
  __classPrivateFieldGet(this, _GasTxValidator_log, "f").warn(`Rejecting transaction ${tx.getTxHash()} due to missing fee payer`);
40
57
  }
41
58
  else {
@@ -66,4 +83,4 @@ _GasTxValidator_log = new WeakMap(), _GasTxValidator_publicDataSource = new Weak
66
83
  }
67
84
  return true;
68
85
  };
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FzX3ZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eF92YWxpZGF0b3IvZ2FzX3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBVyxnQkFBZ0IsRUFBb0IsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRixPQUFPLEVBQThCLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBT2xHLE1BQU0sT0FBTyxjQUFjO0lBS3pCLFlBQVksZ0JBQW1DLEVBQUUsZUFBNkIsRUFBUyxXQUFvQjs7UUFBcEIsZ0JBQVcsR0FBWCxXQUFXLENBQVM7UUFKM0csOEJBQU8sWUFBWSxDQUFDLCtCQUErQixDQUFDLEVBQUM7UUFDckQsbURBQXFDO1FBQ3JDLGtEQUErQjtRQUc3Qix1QkFBQSxJQUFJLG9DQUFxQixnQkFBZ0IsTUFBQSxDQUFDO1FBQzFDLHVCQUFBLElBQUksbUNBQW9CLGVBQWUsTUFBQSxDQUFDO0lBQzFDLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQVM7UUFDekIsTUFBTSxRQUFRLEdBQVMsRUFBRSxDQUFDO1FBQzFCLE1BQU0sVUFBVSxHQUFTLEVBQUUsQ0FBQztRQUU1QixLQUFLLE1BQU0sRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLElBQUksTUFBTSx1QkFBQSxJQUFJLGdFQUFlLE1BQW5CLElBQUksRUFBZ0IsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDbEMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNwQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN0QixDQUFDO1FBQ0gsQ0FBQztR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
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FzX3ZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eF92YWxpZGF0b3IvZ2FzX3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBVyxnQkFBZ0IsRUFBb0IsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRixPQUFPLEVBQThCLGdCQUFnQixFQUFnQixNQUFNLG9CQUFvQixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU9sRyxNQUFNLE9BQU8sY0FBYztJQU96QixZQUNFLGdCQUFtQyxFQUNuQyxlQUE2QixFQUM3QixXQUFvQixFQUNwQixPQUFnQjs7UUFWbEIsOEJBQU8sWUFBWSxDQUFDLCtCQUErQixDQUFDLEVBQUM7UUFDckQsbURBQXFDO1FBQ3JDLGtEQUErQjtRQUMvQiw4Q0FBc0I7UUFDdEIsMENBQWtCO1FBUWhCLHVCQUFBLElBQUksb0NBQXFCLGdCQUFnQixNQUFBLENBQUM7UUFDMUMsdUJBQUEsSUFBSSxtQ0FBb0IsZUFBZSxNQUFBLENBQUM7UUFDeEMsdUJBQUEsSUFBSSwrQkFBZ0IsV0FBVyxNQUFBLENBQUM7UUFDaEMsdUJBQUEsSUFBSSwyQkFBWSxPQUFPLE1BQUEsQ0FBQztJQUMxQixDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFTO1FBQ3pCLE1BQU0sUUFBUSxHQUFTLEVBQUUsQ0FBQztRQUMxQixNQUFNLFVBQVUsR0FBUyxFQUFFLENBQUM7UUFDNUIsTUFBTSxVQUFVLEdBQVMsRUFBRSxDQUFDO1FBRTVCLEtBQUssTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUM7WUFDckIsSUFBSSx1QkFBQSxJQUFJLDZEQUFZLE1BQWhCLElBQUksRUFBYSxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUN6QixVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3RCLENBQUM7aUJBQU0sSUFBSSxNQUFNLHVCQUFBLElBQUksZ0VBQWUsTUFBbkIsSUFBSSxFQUFnQixFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUN6QyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3BCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3RCLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELFVBQVUsQ0FBQyxFQUFNO1FBQ2YsT0FBTyx1QkFBQSxJQUFJLGdFQUFlLE1BQW5CLElBQUksRUFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztDQTRERjswVUExRGEsRUFBTTtJQUNoQixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO0lBRTVELCtFQUErRTtJQUMvRSxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDO0lBQ2hELE1BQU0sZ0JBQWdCLEdBQ3BCLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLHVCQUFBLElBQUksK0JBQVMsQ0FBQyxXQUFXLENBQUM7UUFDdkQsYUFBYSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsdUJBQUEsSUFBSSwrQkFBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFELElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUNyQix1QkFBQSxJQUFJLDJCQUFLLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUMsU0FBUyxFQUFFLGtDQUFrQyxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUNELE9BQU8sZ0JBQWdCLENBQUM7QUFDMUIsQ0FBQyxrQ0FFRCxLQUFLLHdDQUFnQixFQUFNO0lBQ3pCLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2xDLHdHQUF3RztJQUN4RyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBQ3RCLElBQUksdUJBQUEsSUFBSSxtQ0FBYSxFQUFFLENBQUM7WUFDdEIsdUJBQUEsSUFBSSwyQkFBSyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLFNBQVMsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVELHdGQUF3RjtJQUN4RixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBRXZFLHVDQUF1QztJQUN2QyxNQUFNLGNBQWMsR0FBRyxNQUFNLHVCQUFBLElBQUksd0NBQWtCLENBQUMsV0FBVyxDQUM3RCx1QkFBQSxJQUFJLHVDQUFpQixFQUNyQixpQ0FBaUMsQ0FBQyxRQUFRLENBQUMsQ0FDNUMsQ0FBQztJQUVGLHNHQUFzRztJQUN0RyxNQUFNLFFBQVEsR0FBRywyQkFBMkIsQ0FBQyxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekUsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUNyQyxFQUFFLENBQUMsRUFBRSxDQUNILEVBQUUsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyx1QkFBQSxJQUFJLHVDQUFpQixDQUFDO1FBQzVELEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyx1QkFBQSxJQUFJLHVDQUFpQixDQUFDO1FBQ3RELEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUM7UUFDbEIsbUhBQW1IO1FBQ25ILEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNyQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUMvQixDQUFDO0lBRUYsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztJQUNuRyxJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUN6Qix1QkFBQSxJQUFJLDJCQUFLLENBQUMsSUFBSSxDQUFDLDJEQUEyRCxFQUFFO1lBQzFFLFFBQVE7WUFDUixPQUFPLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUMzQixRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRTtTQUM5QixDQUFDLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"tx_validator_factory.d.ts","sourceRoot":"","sources":["../../src/tx_validator/tx_validator_factory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EAChB,KAAK,EAAE,EACP,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5E,qBAAa,kBAAkB;IAI3B,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,WAAW;IALrB,eAAe,EAAE,eAAe,CAAC;IACjC,iBAAiB,EAAE,iBAAiB,CAAC;gBAE3B,WAAW,EAAE,wBAAwB,EACrC,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,OAAO;IAa9B,kBAAkB,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC;IAUvG,wBAAwB,CAAC,IAAI,EAAE,wBAAwB,GAAG,WAAW,CAAC,WAAW,CAAC;CAKnF"}
1
+ {"version":3,"file":"tx_validator_factory.d.ts","sourceRoot":"","sources":["../../src/tx_validator/tx_validator_factory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EAChB,KAAK,EAAE,EACP,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5E,qBAAa,kBAAkB;IAI3B,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,WAAW;IALrB,eAAe,EAAE,eAAe,CAAC;IACjC,iBAAiB,EAAE,iBAAiB,CAAC;gBAE3B,WAAW,EAAE,wBAAwB,EACrC,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,OAAO;IAgB9B,kBAAkB,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC;IAevG,wBAAwB,CAAC,IAAI,EAAE,wBAAwB,GAAG,WAAW,CAAC,WAAW,CAAC;CAKnF"}
@@ -10,7 +10,9 @@ export class TxValidatorFactory {
10
10
  this.contractDataSource = contractDataSource;
11
11
  this.enforceFees = enforceFees;
12
12
  this.nullifierSource = {
13
- getNullifierIndex: nullifier => this.committedDb.findLeafIndex(MerkleTreeId.NULLIFIER_TREE, nullifier.toBuffer()),
13
+ getNullifierIndices: nullifiers => this.committedDb
14
+ .findLeafIndices(MerkleTreeId.NULLIFIER_TREE, nullifiers)
15
+ .then(x => x.filter(index => index !== undefined)),
14
16
  };
15
17
  this.publicStateSource = {
16
18
  storageRead: (contractAddress, slot) => {
@@ -19,12 +21,12 @@ export class TxValidatorFactory {
19
21
  };
20
22
  }
21
23
  validatorForNewTxs(globalVariables, setupAllowList) {
22
- return new AggregateTxValidator(new DataTxValidator(), new MetadataTxValidator(globalVariables.chainId, globalVariables.blockNumber), new DoubleSpendTxValidator(this.nullifierSource), new PhasesTxValidator(this.contractDataSource, setupAllowList), new GasTxValidator(this.publicStateSource, ProtocolContractAddress.FeeJuice, this.enforceFees));
24
+ return new AggregateTxValidator(new DataTxValidator(), new MetadataTxValidator(globalVariables.chainId, globalVariables.blockNumber), new DoubleSpendTxValidator(this.nullifierSource), new PhasesTxValidator(this.contractDataSource, setupAllowList), new GasTxValidator(this.publicStateSource, ProtocolContractAddress.FeeJuice, this.enforceFees, globalVariables.gasFees));
23
25
  }
24
26
  validatorForProcessedTxs(fork) {
25
27
  return new DoubleSpendTxValidator({
26
- getNullifierIndex: nullifier => fork.findLeafIndex(MerkleTreeId.NULLIFIER_TREE, nullifier.toBuffer()),
28
+ getNullifierIndices: nullifiers => fork.findLeafIndices(MerkleTreeId.NULLIFIER_TREE, nullifiers),
27
29
  });
28
30
  }
29
31
  }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfdmFsaWRhdG9yX2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHhfdmFsaWRhdG9yL3R4X3ZhbGlkYXRvcl9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxZQUFZLEdBS2IsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixzQkFBc0IsRUFDdEIsbUJBQW1CLEdBRXBCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsY0FBYyxFQUEwQixNQUFNLG9CQUFvQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE1BQU0sT0FBTyxrQkFBa0I7SUFHN0IsWUFDVSxXQUFxQyxFQUNyQyxrQkFBc0MsRUFDdEMsV0FBb0I7UUFGcEIsZ0JBQVcsR0FBWCxXQUFXLENBQTBCO1FBQ3JDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsZ0JBQVcsR0FBWCxXQUFXLENBQVM7UUFFNUIsSUFBSSxDQUFDLGVBQWUsR0FBRztZQUNyQixpQkFBaUIsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2xILENBQUM7UUFFRixJQUFJLENBQUMsaUJBQWlCLEdBQUc7WUFDdkIsV0FBVyxFQUFFLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUNyQyxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNsRSxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxlQUFnQyxFQUFFLGNBQWdDO1FBQ25GLE9BQU8sSUFBSSxvQkFBb0IsQ0FDN0IsSUFBSSxlQUFlLEVBQUUsRUFDckIsSUFBSSxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxXQUFXLENBQUMsRUFDN0UsSUFBSSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQ2hELElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLGNBQWMsQ0FBQyxFQUM5RCxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsdUJBQXVCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDL0YsQ0FBQztJQUNKLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxJQUE4QjtRQUNyRCxPQUFPLElBQUksc0JBQXNCLENBQUM7WUFDaEMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3RHLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiJ9
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfdmFsaWRhdG9yX2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHhfdmFsaWRhdG9yL3R4X3ZhbGlkYXRvcl9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxZQUFZLEdBS2IsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixzQkFBc0IsRUFDdEIsbUJBQW1CLEdBRXBCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsY0FBYyxFQUEwQixNQUFNLG9CQUFvQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE1BQU0sT0FBTyxrQkFBa0I7SUFHN0IsWUFDVSxXQUFxQyxFQUNyQyxrQkFBc0MsRUFDdEMsV0FBb0I7UUFGcEIsZ0JBQVcsR0FBWCxXQUFXLENBQTBCO1FBQ3JDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsZ0JBQVcsR0FBWCxXQUFXLENBQVM7UUFFNUIsSUFBSSxDQUFDLGVBQWUsR0FBRztZQUNyQixtQkFBbUIsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUNoQyxJQUFJLENBQUMsV0FBVztpQkFDYixlQUFlLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUM7aUJBQ3hELElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFhLENBQUM7U0FDbkUsQ0FBQztRQUVGLElBQUksQ0FBQyxpQkFBaUIsR0FBRztZQUN2QixXQUFXLEVBQUUsQ0FBQyxlQUFlLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ3JDLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2xFLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQixDQUFDLGVBQWdDLEVBQUUsY0FBZ0M7UUFDbkYsT0FBTyxJQUFJLG9CQUFvQixDQUM3QixJQUFJLGVBQWUsRUFBRSxFQUNyQixJQUFJLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLFdBQVcsQ0FBQyxFQUM3RSxJQUFJLHNCQUFzQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFDaEQsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsY0FBYyxDQUFDLEVBQzlELElBQUksY0FBYyxDQUNoQixJQUFJLENBQUMsaUJBQWlCLEVBQ3RCLHVCQUF1QixDQUFDLFFBQVEsRUFDaEMsSUFBSSxDQUFDLFdBQVcsRUFDaEIsZUFBZSxDQUFDLE9BQU8sQ0FDeEIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELHdCQUF3QixDQUFDLElBQThCO1FBQ3JELE9BQU8sSUFBSSxzQkFBc0IsQ0FBQztZQUNoQyxtQkFBbUIsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUM7U0FDakcsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIn0=
package/package.json CHANGED
@@ -1,8 +1,11 @@
1
1
  {
2
2
  "name": "@aztec/sequencer-client",
3
- "version": "0.67.1",
3
+ "version": "0.68.0",
4
4
  "type": "module",
5
- "exports": "./dest/index.js",
5
+ "exports": {
6
+ ".": "./dest/index.js",
7
+ "./config": "./dest/config.js"
8
+ },
6
9
  "typedocOptions": {
7
10
  "entryPoints": [
8
11
  "./src/index.ts"
@@ -19,29 +22,29 @@
19
22
  "clean": "rm -rf ./dest .tsbuildinfo",
20
23
  "formatting": "run -T prettier --check ./src && run -T eslint ./src",
21
24
  "formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src",
22
- "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests",
25
+ "test": "HARDWARE_CONCURRENCY=16 RAYON_NUM_THREADS=4 NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=8",
23
26
  "test:integration": "concurrently -k -s first -c reset,dim -n test,anvil \"yarn test:integration:run\" \"anvil\"",
24
27
  "test:integration:run": "NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --no-cache --config jest.integration.config.json"
25
28
  },
26
29
  "dependencies": {
27
- "@aztec/aztec.js": "0.67.1",
28
- "@aztec/bb-prover": "0.67.1",
29
- "@aztec/circuit-types": "0.67.1",
30
- "@aztec/circuits.js": "0.67.1",
31
- "@aztec/ethereum": "0.67.1",
32
- "@aztec/foundation": "0.67.1",
33
- "@aztec/l1-artifacts": "0.67.1",
34
- "@aztec/merkle-tree": "0.67.1",
35
- "@aztec/noir-contracts.js": "0.67.1",
36
- "@aztec/noir-protocol-circuits-types": "0.67.1",
37
- "@aztec/p2p": "0.67.1",
38
- "@aztec/protocol-contracts": "0.67.1",
39
- "@aztec/prover-client": "0.67.1",
40
- "@aztec/simulator": "0.67.1",
41
- "@aztec/telemetry-client": "0.67.1",
42
- "@aztec/types": "0.67.1",
43
- "@aztec/validator-client": "0.67.1",
44
- "@aztec/world-state": "0.67.1",
30
+ "@aztec/aztec.js": "0.68.0",
31
+ "@aztec/bb-prover": "0.68.0",
32
+ "@aztec/circuit-types": "0.68.0",
33
+ "@aztec/circuits.js": "0.68.0",
34
+ "@aztec/ethereum": "0.68.0",
35
+ "@aztec/foundation": "0.68.0",
36
+ "@aztec/l1-artifacts": "0.68.0",
37
+ "@aztec/merkle-tree": "0.68.0",
38
+ "@aztec/noir-contracts.js": "0.68.0",
39
+ "@aztec/noir-protocol-circuits-types": "0.68.0",
40
+ "@aztec/p2p": "0.68.0",
41
+ "@aztec/protocol-contracts": "0.68.0",
42
+ "@aztec/prover-client": "0.68.0",
43
+ "@aztec/simulator": "0.68.0",
44
+ "@aztec/telemetry-client": "0.68.0",
45
+ "@aztec/types": "0.68.0",
46
+ "@aztec/validator-client": "0.68.0",
47
+ "@aztec/world-state": "0.68.0",
45
48
  "@noir-lang/acvm_js": "portal:../../noir/packages/acvm_js",
46
49
  "@noir-lang/types": "portal:../../noir/packages/types",
47
50
  "lodash.chunk": "^4.2.0",
@@ -104,9 +107,9 @@
104
107
  "rootDir": "./src",
105
108
  "reporters": [
106
109
  [
107
- "default",
110
+ "jest-silent-reporter",
108
111
  {
109
- "summaryThreshold": 9999
112
+ "useDots": true
110
113
  }
111
114
  ]
112
115
  ],
package/src/config.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { type AllowedElement } from '@aztec/circuit-types';
2
- import { AztecAddress, Fr, FunctionSelector, getContractClassFromArtifact } from '@aztec/circuits.js';
1
+ import { type AllowedElement, type SequencerConfig } from '@aztec/circuit-types/config';
2
+ import { AztecAddress, Fr, FunctionSelector } from '@aztec/circuits.js';
3
3
  import {
4
4
  type L1ContractsConfig,
5
5
  type L1ReaderConfig,
@@ -14,9 +14,6 @@ import {
14
14
  } from '@aztec/foundation/config';
15
15
  import { pickConfigMappings } from '@aztec/foundation/config';
16
16
  import { EthAddress } from '@aztec/foundation/eth-address';
17
- import { FPCContract } from '@aztec/noir-contracts.js/FPC';
18
- import { TokenContractArtifact } from '@aztec/noir-contracts.js/Token';
19
- import { ProtocolContractAddress } from '@aztec/protocol-contracts';
20
17
 
21
18
  import {
22
19
  type PublisherConfig,
@@ -24,7 +21,9 @@ import {
24
21
  getPublisherConfigMappings,
25
22
  getTxSenderConfigMappings,
26
23
  } from './publisher/config.js';
27
- import { type SequencerConfig } from './sequencer/config.js';
24
+
25
+ export * from './publisher/config.js';
26
+ export { SequencerConfig };
28
27
 
29
28
  /** Chain configuration. */
30
29
  type ChainConfig = {
@@ -60,17 +59,6 @@ export const sequencerConfigMappings: ConfigMappingsType<SequencerConfig> = {
60
59
  description: 'The minimum number of txs to include in a block.',
61
60
  ...numberConfigHelper(1),
62
61
  },
63
- minSecondsBetweenBlocks: {
64
- env: 'SEQ_MIN_SECONDS_BETWEEN_BLOCKS',
65
- description: 'The minimum number of seconds in-between consecutive blocks.',
66
- ...numberConfigHelper(0),
67
- },
68
- maxSecondsBetweenBlocks: {
69
- env: 'SEQ_MAX_SECONDS_BETWEEN_BLOCKS',
70
- description:
71
- 'The maximum number of seconds in-between consecutive blocks. Sequencer will produce a block with less than minTxsPerBlock once this threshold is reached.',
72
- ...numberConfigHelper(0),
73
- },
74
62
  coinbase: {
75
63
  env: 'COINBASE',
76
64
  parseEnv: (val: string) => EthAddress.fromString(val),
@@ -92,18 +80,10 @@ export const sequencerConfigMappings: ConfigMappingsType<SequencerConfig> = {
92
80
  allowedInSetup: {
93
81
  env: 'SEQ_ALLOWED_SETUP_FN',
94
82
  parseEnv: (val: string) => parseSequencerAllowList(val),
95
- defaultValue: getDefaultAllowedSetupFunctions(),
96
83
  description: 'The list of functions calls allowed to run in setup',
97
84
  printDefault: () =>
98
85
  'AuthRegistry, FeeJuice.increase_public_balance, Token.increase_public_balance, FPC.prepare_fee',
99
86
  },
100
- allowedInTeardown: {
101
- env: 'SEQ_ALLOWED_TEARDOWN_FN',
102
- parseEnv: (val: string) => parseSequencerAllowList(val),
103
- defaultValue: getDefaultAllowedTeardownFunctions(),
104
- description: 'The list of functions calls allowed to run teardown',
105
- printDefault: () => 'FPC.pay_refund',
106
- },
107
87
  maxBlockSizeInBytes: {
108
88
  env: 'SEQ_MAX_BLOCK_SIZE_IN_BYTES',
109
89
  description: 'Max block size',
@@ -202,38 +182,3 @@ export function parseSequencerAllowList(value: string): AllowedElement[] {
202
182
 
203
183
  return entries;
204
184
  }
205
-
206
- function getDefaultAllowedSetupFunctions(): AllowedElement[] {
207
- return [
208
- // needed for authwit support
209
- {
210
- address: ProtocolContractAddress.AuthRegistry,
211
- },
212
- // needed for claiming on the same tx as a spend
213
- {
214
- address: ProtocolContractAddress.FeeJuice,
215
- // We can't restrict the selector because public functions get routed via dispatch.
216
- // selector: FunctionSelector.fromSignature('_increase_public_balance((Field),Field)'),
217
- },
218
- // needed for private transfers via FPC
219
- {
220
- classId: getContractClassFromArtifact(TokenContractArtifact).id,
221
- // We can't restrict the selector because public functions get routed via dispatch.
222
- // selector: FunctionSelector.fromSignature('_increase_public_balance((Field),Field)'),
223
- },
224
- {
225
- classId: getContractClassFromArtifact(FPCContract.artifact).id,
226
- // We can't restrict the selector because public functions get routed via dispatch.
227
- // selector: FunctionSelector.fromSignature('prepare_fee((Field),Field,(Field),Field)'),
228
- },
229
- ];
230
- }
231
-
232
- function getDefaultAllowedTeardownFunctions(): AllowedElement[] {
233
- return [
234
- {
235
- classId: getContractClassFromArtifact(FPCContract.artifact).id,
236
- selector: FunctionSelector.fromSignature('pay_refund((Field),Field,(Field))'),
237
- },
238
- ];
239
- }
package/src/index.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  export * from './client/index.js';
2
2
  export * from './config.js';
3
3
  export * from './publisher/index.js';
4
- export * from './sequencer/index.js';
5
4
 
6
5
  // Used by the node to simulate public parts of transactions. Should these be moved to a shared library?
7
6
  // ISSUE(#9832)
@@ -1,3 +1,2 @@
1
1
  export { L1Publisher, L1SubmitEpochProofArgs } from './l1-publisher.js';
2
2
  export * from './test-l1-publisher.js';
3
- export * from './config.js';
@@ -1,4 +1,4 @@
1
- import type { L1PublishBlockStats, L1PublishProofStats } from '@aztec/circuit-types/stats';
1
+ import type { L1PublishBlockStats, L1PublishProofStats, L1PublishStats } from '@aztec/circuit-types/stats';
2
2
  import {
3
3
  Attributes,
4
4
  type Histogram,
@@ -10,7 +10,7 @@ import {
10
10
 
11
11
  import { formatEther } from 'viem/utils';
12
12
 
13
- export type L1TxType = 'submitProof' | 'process';
13
+ export type L1TxType = 'submitProof' | 'process' | 'claimEpochProofRight';
14
14
 
15
15
  export class L1PublisherMetrics {
16
16
  private gasPrice: Histogram;
@@ -20,6 +20,8 @@ export class L1PublisherMetrics {
20
20
  private txGas: Histogram;
21
21
  private txCalldataSize: Histogram;
22
22
  private txCalldataGas: Histogram;
23
+ private txBlobDataGasUsed: Histogram;
24
+ private txBlobDataGasCost: Histogram;
23
25
 
24
26
  constructor(client: TelemetryClient, name = 'L1Publisher') {
25
27
  const meter = client.getMeter(name);
@@ -57,6 +59,18 @@ export class L1PublisherMetrics {
57
59
  unit: 'gas',
58
60
  valueType: ValueType.INT,
59
61
  });
62
+
63
+ this.txBlobDataGasUsed = meter.createHistogram(Metrics.L1_PUBLISHER_TX_BLOBDATA_GAS_USED, {
64
+ description: 'The amount of blob gas used in transactions',
65
+ unit: 'gas',
66
+ valueType: ValueType.INT,
67
+ });
68
+
69
+ this.txBlobDataGasCost = meter.createHistogram(Metrics.L1_PUBLISHER_TX_BLOBDATA_GAS_COST, {
70
+ description: 'The gas cost of blobs in transactions',
71
+ unit: 'gwei',
72
+ valueType: ValueType.INT,
73
+ });
60
74
  }
61
75
 
62
76
  recordFailedTx(txType: L1TxType) {
@@ -74,7 +88,11 @@ export class L1PublisherMetrics {
74
88
  this.recordTx('process', durationMs, stats);
75
89
  }
76
90
 
77
- private recordTx(txType: L1TxType, durationMs: number, stats: Omit<L1PublishProofStats, 'eventName'>) {
91
+ recordClaimEpochProofRightTx(durationMs: number, stats: L1PublishStats) {
92
+ this.recordTx('claimEpochProofRight', durationMs, stats);
93
+ }
94
+
95
+ private recordTx(txType: L1TxType, durationMs: number, stats: L1PublishStats) {
78
96
  const attributes = {
79
97
  [Attributes.L1_TX_TYPE]: txType,
80
98
  [Attributes.L1_SENDER]: stats.sender,
@@ -94,6 +112,9 @@ export class L1PublisherMetrics {
94
112
  this.txCalldataGas.record(stats.calldataGas, attributes);
95
113
  this.txCalldataSize.record(stats.calldataSize, attributes);
96
114
 
115
+ this.txBlobDataGasCost.record(Number(stats.blobDataGas), attributes);
116
+ this.txBlobDataGasUsed.record(Number(stats.blobGasUsed), attributes);
117
+
97
118
  try {
98
119
  this.gasPrice.record(parseInt(formatEther(stats.gasPrice, 'gwei'), 10));
99
120
  } catch (e) {