@aztec-labs/stdlib 6.0.0 → 6.1.0-nightly.20261024

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/avm/avm.d.ts +210 -210
  2. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts +25 -3
  3. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts.map +1 -1
  4. package/dest/checkpoint/checkpoint_reexecution_tracker.js +22 -1
  5. package/dest/checkpoint/simulation_overrides.d.ts +8 -1
  6. package/dest/checkpoint/simulation_overrides.d.ts.map +1 -1
  7. package/dest/checkpoint/simulation_overrides.js +6 -2
  8. package/dest/epoch-helpers/index.d.ts +1 -3
  9. package/dest/epoch-helpers/index.d.ts.map +1 -1
  10. package/dest/epoch-helpers/index.js +2 -4
  11. package/dest/gas/index.d.ts +2 -1
  12. package/dest/gas/index.d.ts.map +1 -1
  13. package/dest/gas/index.js +1 -0
  14. package/dest/gas/rollup_fee_config.d.ts +50 -0
  15. package/dest/gas/rollup_fee_config.d.ts.map +1 -0
  16. package/dest/gas/rollup_fee_config.js +105 -0
  17. package/dest/gas/tx_gas_limits.d.ts +9 -9
  18. package/dest/gas/tx_gas_limits.d.ts.map +1 -1
  19. package/dest/gas/tx_gas_limits.js +8 -7
  20. package/dest/interfaces/block-builder.d.ts +2 -2
  21. package/dest/interfaces/block-builder.d.ts.map +1 -1
  22. package/dest/interfaces/block-builder.js +1 -2
  23. package/dest/p2p/checkpoint_proposal.d.ts +1 -1
  24. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  25. package/dest/p2p/checkpoint_proposal.js +5 -3
  26. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +1 -1
  27. package/dest/validators/errors.d.ts +4 -2
  28. package/dest/validators/errors.d.ts.map +1 -1
  29. package/dest/validators/errors.js +6 -2
  30. package/dest/validators/schemas.d.ts +15 -1
  31. package/dest/validators/schemas.d.ts.map +1 -1
  32. package/dest/validators/schemas.js +2 -0
  33. package/dest/validators/types.d.ts +10 -4
  34. package/dest/validators/types.d.ts.map +1 -1
  35. package/package.json +7 -7
  36. package/src/checkpoint/checkpoint_reexecution_tracker.ts +48 -2
  37. package/src/checkpoint/simulation_overrides.ts +11 -2
  38. package/src/epoch-helpers/index.ts +0 -3
  39. package/src/gas/README.md +3 -3
  40. package/src/gas/index.ts +1 -0
  41. package/src/gas/rollup_fee_config.ts +141 -0
  42. package/src/gas/tx_gas_limits.ts +10 -7
  43. package/src/interfaces/block-builder.ts +1 -2
  44. package/src/p2p/checkpoint_proposal.ts +5 -3
  45. package/src/validators/errors.ts +4 -0
  46. package/src/validators/schemas.ts +2 -0
  47. package/src/validators/types.ts +10 -2
@@ -1,4 +1,4 @@
1
- import type { CheckpointNumber, SlotNumber } from '@aztec-labs/foundation/branded-types';
1
+ import type { CheckpointNumber, CheckpointProposalHash, SlotNumber } from '@aztec-labs/foundation/branded-types';
2
2
  import type { Fr } from '@aztec-labs/foundation/curves/bn254';
3
3
  /**
4
4
  * Outcome of attempting to re-execute a checkpoint proposal locally.
@@ -11,6 +11,24 @@ import type { Fr } from '@aztec-labs/foundation/curves/bn254';
11
11
  * slashing but surfaced separately for telemetry.
12
12
  */
13
13
  export type ReexecutionOutcome = 'valid' | 'invalid' | 'unvalidated';
14
+ /** What the tracker recorded about the checkpoint proposal evaluated for a slot. */
15
+ export type ReexecutionRecord = {
16
+ outcome: ReexecutionOutcome;
17
+ checkpointNumber?: CheckpointNumber;
18
+ /** Archive root in the evaluated proposal. */
19
+ archiveRoot?: string;
20
+ /** Archive root of the parent checkpoint the proposal builds on, when known. */
21
+ lastArchiveRoot?: string;
22
+ /** Hash of the evaluated proposal's signed payload, which its attestations sign. */
23
+ payloadHash?: CheckpointProposalHash;
24
+ };
25
+ /** Optional details of an evaluated checkpoint proposal, beyond what identifies it. */
26
+ export type ReexecutionDetails = {
27
+ /** Archive root of the parent checkpoint the proposal builds on (the checkpoint header's `lastArchiveRoot`). */
28
+ lastArchiveRoot?: Fr;
29
+ /** Hash of the proposal's signed payload. */
30
+ payloadHash?: CheckpointProposalHash;
31
+ };
14
32
  export declare class CheckpointReexecutionTracker {
15
33
  private readonly byCheckpoint;
16
34
  private readonly bySlot;
@@ -21,8 +39,10 @@ export declare class CheckpointReexecutionTracker {
21
39
  * @param outcome - Outcome of evaluation.
22
40
  * @param checkpointNumber - Checkpoint number, if known. Required for `valid` outcomes; optional
23
41
  * for `invalid`/`unvalidated` because some early rejections fire before blocks are loaded.
42
+ * @param details - The proposal's parent archive root and payload hash, if known. They let the sentinel tell whether
43
+ * a valid proposal that never landed was built on a parent that is on L1, and count only the attestations for it.
24
44
  */
25
- recordOutcome(slot: SlotNumber, archiveRoot: Fr, outcome: ReexecutionOutcome, checkpointNumber?: CheckpointNumber): void;
45
+ recordOutcome(slot: SlotNumber, archiveRoot: Fr, outcome: ReexecutionOutcome, checkpointNumber?: CheckpointNumber, details?: ReexecutionDetails): void;
26
46
  /**
27
47
  * Record whether the local node successfully collected the transactions for a block proposal.
28
48
  * Called from the validator's proposal handler immediately after tx collection completes
@@ -51,6 +71,8 @@ export declare class CheckpointReexecutionTracker {
51
71
  hasReexecuted(checkpointNumber: CheckpointNumber, archiveRoot: Fr): boolean;
52
72
  /** Returns the recorded outcome for a given slot, or undefined if no proposal was evaluated. */
53
73
  getOutcomeForSlot(slot: SlotNumber): ReexecutionOutcome | undefined;
74
+ /** Returns the full record of the proposal evaluated for a slot, or undefined if none was evaluated. */
75
+ getRecordForSlot(slot: SlotNumber): ReexecutionRecord | undefined;
54
76
  /**
55
77
  * Whether this slot's recorded outcome is `valid` *and* was recorded for this archive root.
56
78
  *
@@ -75,4 +97,4 @@ export declare class CheckpointReexecutionTracker {
75
97
  /** Drops entries for checkpoints with `number < checkpointNumber`. */
76
98
  removeBefore(checkpointNumber: CheckpointNumber): void;
77
99
  }
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9yZWV4ZWN1dGlvbl90cmFja2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2hlY2twb2ludC9jaGVja3BvaW50X3JlZXhlY3V0aW9uX3RyYWNrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekYsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFOUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxNQUFNLGtCQUFrQixHQUFHLE9BQU8sR0FBRyxTQUFTLEdBQUcsYUFBYSxDQUFDO0FBZ0NyRSxxQkFBYSw0QkFBNEI7SUFDdkMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQW1EO0lBQ2hGLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFnQztJQUV2RDs7Ozs7OztPQU9HO0lBQ0ksYUFBYSxDQUNsQixJQUFJLEVBQUUsVUFBVSxFQUNoQixXQUFXLEVBQUUsRUFBRSxFQUNmLE9BQU8sRUFBRSxrQkFBa0IsRUFDM0IsZ0JBQWdCLENBQUMsRUFBRSxnQkFBZ0IsR0FDbEMsSUFBSSxDQXdCTjtJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksa0JBQWtCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sR0FBRyxJQUFJLENBY25HO0lBRUQ7Ozs7T0FJRztJQUNJLGtCQUFrQixDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsSUFBSSxDQWNoRDtJQUVELHlFQUF5RTtJQUNsRSxlQUFlLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxPQUFPLENBRWhEO0lBRUQ7OztPQUdHO0lBQ0ksYUFBYSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUVqRjtJQUVELGdHQUFnRztJQUN6RixpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLGtCQUFrQixHQUFHLFNBQVMsQ0FFekU7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLHNCQUFzQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBR3hFO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0kscUJBQXFCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEdBQUcsT0FBTyxHQUFHLFNBQVMsQ0FFakc7SUFFRCxzRUFBc0U7SUFDL0QsWUFBWSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixHQUFHLElBQUksQ0E0QjVEO0NBQ0YifQ==
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9yZWV4ZWN1dGlvbl90cmFja2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2hlY2twb2ludC9jaGVja3BvaW50X3JlZXhlY3V0aW9uX3RyYWNrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDakgsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFOUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxNQUFNLGtCQUFrQixHQUFHLE9BQU8sR0FBRyxTQUFTLEdBQUcsYUFBYSxDQUFDO0FBRXJFLG9GQUFvRjtBQUNwRixNQUFNLE1BQU0saUJBQWlCLEdBQUc7SUFDOUIsT0FBTyxFQUFFLGtCQUFrQixDQUFDO0lBQzVCLGdCQUFnQixDQUFDLEVBQUUsZ0JBQWdCLENBQUM7SUFDcEMsOENBQThDO0lBQzlDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNyQixnRkFBZ0Y7SUFDaEYsZUFBZSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3pCLG9GQUFvRjtJQUNwRixXQUFXLENBQUMsRUFBRSxzQkFBc0IsQ0FBQztDQUN0QyxDQUFDO0FBRUYsdUZBQXVGO0FBQ3ZGLE1BQU0sTUFBTSxrQkFBa0IsR0FBRztJQUMvQixnSEFBZ0g7SUFDaEgsZUFBZSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ3JCLDZDQUE2QztJQUM3QyxXQUFXLENBQUMsRUFBRSxzQkFBc0IsQ0FBQztDQUN0QyxDQUFDO0FBa0NGLHFCQUFhLDRCQUE0QjtJQUN2QyxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBbUQ7SUFDaEYsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQWdDO0lBRXZEOzs7Ozs7Ozs7T0FTRztJQUNJLGFBQWEsQ0FDbEIsSUFBSSxFQUFFLFVBQVUsRUFDaEIsV0FBVyxFQUFFLEVBQUUsRUFDZixPQUFPLEVBQUUsa0JBQWtCLEVBQzNCLGdCQUFnQixDQUFDLEVBQUUsZ0JBQWdCLEVBQ25DLE9BQU8sR0FBRSxrQkFBdUIsR0FDL0IsSUFBSSxDQTBCTjtJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksa0JBQWtCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sR0FBRyxJQUFJLENBZ0JuRztJQUVEOzs7O09BSUc7SUFDSSxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLElBQUksQ0FnQmhEO0lBRUQseUVBQXlFO0lBQ2xFLGVBQWUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FFaEQ7SUFFRDs7O09BR0c7SUFDSSxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBRWpGO0lBRUQsZ0dBQWdHO0lBQ3pGLGlCQUFpQixDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsa0JBQWtCLEdBQUcsU0FBUyxDQUV6RTtJQUVELHdHQUF3RztJQUNqRyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLGlCQUFpQixHQUFHLFNBQVMsQ0FZdkU7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLHNCQUFzQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBR3hFO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0kscUJBQXFCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEdBQUcsT0FBTyxHQUFHLFNBQVMsQ0FFakc7SUFFRCxzRUFBc0U7SUFDL0QsWUFBWSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixHQUFHLElBQUksQ0E0QjVEO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint_reexecution_tracker.d.ts","sourceRoot":"","sources":["../../src/checkpoint/checkpoint_reexecution_tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACzF,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AAE9D;;;;;;;;;GASG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;AAgCrE,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmD;IAChF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IAEvD;;;;;;;OAOG;IACI,aAAa,CAClB,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,EAAE,EACf,OAAO,EAAE,kBAAkB,EAC3B,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,IAAI,CAwBN;IAED;;;;;;;;;;;OAWG;IACI,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAcnG;IAED;;;;OAIG;IACI,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAchD;IAED,yEAAyE;IAClE,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAEhD;IAED;;;OAGG;IACI,aAAa,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,EAAE,GAAG,OAAO,CAEjF;IAED,gGAAgG;IACzF,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,kBAAkB,GAAG,SAAS,CAEzE;IAED;;;;;;;;OAQG;IACI,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,GAAG,OAAO,CAGxE;IAED;;;;;;;;;OASG;IACI,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEjG;IAED,sEAAsE;IAC/D,YAAY,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CA4B5D;CACF"}
1
+ {"version":3,"file":"checkpoint_reexecution_tracker.d.ts","sourceRoot":"","sources":["../../src/checkpoint/checkpoint_reexecution_tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACjH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AAE9D;;;;;;;;;GASG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;AAErE,oFAAoF;AACpF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oFAAoF;IACpF,WAAW,CAAC,EAAE,sBAAsB,CAAC;CACtC,CAAC;AAEF,uFAAuF;AACvF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gHAAgH;IAChH,eAAe,CAAC,EAAE,EAAE,CAAC;IACrB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,sBAAsB,CAAC;CACtC,CAAC;AAkCF,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmD;IAChF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IAEvD;;;;;;;;;OASG;IACI,aAAa,CAClB,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,EAAE,EACf,OAAO,EAAE,kBAAkB,EAC3B,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,OAAO,GAAE,kBAAuB,GAC/B,IAAI,CA0BN;IAED;;;;;;;;;;;OAWG;IACI,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAgBnG;IAED;;;;OAIG;IACI,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAgBhD;IAED,yEAAyE;IAClE,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAEhD;IAED;;;OAGG;IACI,aAAa,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,EAAE,GAAG,OAAO,CAEjF;IAED,gGAAgG;IACzF,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,kBAAkB,GAAG,SAAS,CAEzE;IAED,wGAAwG;IACjG,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,iBAAiB,GAAG,SAAS,CAYvE;IAED;;;;;;;;OAQG;IACI,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,GAAG,OAAO,CAGxE;IAED;;;;;;;;;OASG;IACI,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEjG;IAED,sEAAsE;IAC/D,YAAY,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CA4B5D;CACF"}
@@ -8,13 +8,17 @@ export class CheckpointReexecutionTracker {
8
8
  * @param outcome - Outcome of evaluation.
9
9
  * @param checkpointNumber - Checkpoint number, if known. Required for `valid` outcomes; optional
10
10
  * for `invalid`/`unvalidated` because some early rejections fire before blocks are loaded.
11
- */ recordOutcome(slot, archiveRoot, outcome, checkpointNumber) {
11
+ * @param details - The proposal's parent archive root and payload hash, if known. They let the sentinel tell whether
12
+ * a valid proposal that never landed was built on a parent that is on L1, and count only the attestations for it.
13
+ */ recordOutcome(slot, archiveRoot, outcome, checkpointNumber, details = {}) {
12
14
  const archiveRootStr = archiveRoot.toString();
13
15
  // Preserve any per-block txsCollected already accumulated for this slot.
14
16
  const existing = this.bySlot.get(slot);
15
17
  const entry = {
16
18
  checkpointNumber,
17
19
  archiveRoot: archiveRootStr,
20
+ lastArchiveRoot: details.lastArchiveRoot?.toString(),
21
+ payloadHash: details.payloadHash,
18
22
  slot,
19
23
  outcome,
20
24
  txsCollected: existing?.txsCollected ?? new Map(),
@@ -47,6 +51,8 @@ export class CheckpointReexecutionTracker {
47
51
  entry = {
48
52
  checkpointNumber: undefined,
49
53
  archiveRoot: undefined,
54
+ lastArchiveRoot: undefined,
55
+ payloadHash: undefined,
50
56
  slot,
51
57
  outcome: undefined,
52
58
  txsCollected: new Map(),
@@ -66,6 +72,8 @@ export class CheckpointReexecutionTracker {
66
72
  this.bySlot.set(slot, {
67
73
  checkpointNumber: undefined,
68
74
  archiveRoot: undefined,
75
+ lastArchiveRoot: undefined,
76
+ payloadHash: undefined,
69
77
  slot,
70
78
  outcome: undefined,
71
79
  txsCollected: new Map(),
@@ -87,6 +95,19 @@ export class CheckpointReexecutionTracker {
87
95
  /** Returns the recorded outcome for a given slot, or undefined if no proposal was evaluated. */ getOutcomeForSlot(slot) {
88
96
  return this.bySlot.get(slot)?.outcome;
89
97
  }
98
+ /** Returns the full record of the proposal evaluated for a slot, or undefined if none was evaluated. */ getRecordForSlot(slot) {
99
+ const entry = this.bySlot.get(slot);
100
+ if (entry?.outcome === undefined) {
101
+ return undefined;
102
+ }
103
+ return {
104
+ outcome: entry.outcome,
105
+ checkpointNumber: entry.checkpointNumber,
106
+ archiveRoot: entry.archiveRoot,
107
+ lastArchiveRoot: entry.lastArchiveRoot,
108
+ payloadHash: entry.payloadHash
109
+ };
110
+ }
90
111
  /**
91
112
  * Whether this slot's recorded outcome is `valid` *and* was recorded for this archive root.
92
113
  *
@@ -6,6 +6,11 @@ import type { ProposedCheckpointData } from './checkpoint_data.js';
6
6
  type CheckpointSimulationOverridesPlanInput = {
7
7
  /** Target rollup contract. */
8
8
  rollup: RollupContract;
9
+ /**
10
+ * L1 block the caller runs its fee simulation at. The pipelined parent's fee header is derived from the L1 state at
11
+ * that block too, so the fee quote does not mix two L1 snapshots.
12
+ */
13
+ l1BlockNumber: bigint;
9
14
  /** Checkpoint number to be proposed. */
10
15
  checkpointNumber: CheckpointNumber;
11
16
  /** Logger instance. */
@@ -48,6 +53,8 @@ type PipelinedParentFeeHeaderInput = {
48
53
  checkpointNumber: CheckpointNumber;
49
54
  proposedCheckpointData: ProposedCheckpointData;
50
55
  rollup: RollupContract;
56
+ /** L1 block to read the grandparent and the mana target at. */
57
+ l1BlockNumber: bigint;
51
58
  log: Logger;
52
59
  };
53
60
  /**
@@ -58,4 +65,4 @@ type PipelinedParentFeeHeaderInput = {
58
65
  */
59
66
  export declare function computePipelinedParentFeeHeader(input: PipelinedParentFeeHeaderInput): Promise<FeeHeader | undefined>;
60
67
  export {};
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltdWxhdGlvbl9vdmVycmlkZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jaGVja3BvaW50L3NpbXVsYXRpb25fb3ZlcnJpZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLFNBQVMsRUFDZCxjQUFjLEVBRWQsS0FBSyx1QkFBdUIsRUFDN0IsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlFLE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHbkUsS0FBSyxzQ0FBc0MsR0FBRztJQUM1Qyw4QkFBOEI7SUFDOUIsTUFBTSxFQUFFLGNBQWMsQ0FBQztJQUN2Qix3Q0FBd0M7SUFDeEMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUM7SUFDbkMsdUJBQXVCO0lBQ3ZCLEdBQUcsRUFBRSxNQUFNLENBQUM7SUFDWjs7OztPQUlHO0lBQ0gsc0JBQXNCLENBQUMsRUFBRSxzQkFBc0IsQ0FBQztJQUNoRDs7O09BR0c7SUFDSCxtQ0FBbUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDO0lBQ3ZEOzs7T0FHRztJQUNILDRCQUE0QixFQUFFLGdCQUFnQixDQUFDO0lBQy9DOzs7O09BSUc7SUFDSCxnQkFBZ0IsRUFBRSw0QkFBNEIsQ0FBQztDQUNoRCxDQUFDO0FBRUY7Ozs7Ozs7OztHQVNHO0FBQ0gsd0JBQXNCLHNDQUFzQyxDQUMxRCxLQUFLLEVBQUUsc0NBQXNDLEdBQzVDLE9BQU8sQ0FBQyx1QkFBdUIsR0FBRyxTQUFTLENBQUMsQ0F5RDlDO0FBcUJELEtBQUssNkJBQTZCLEdBQUc7SUFDbkMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUM7SUFDbkMsc0JBQXNCLEVBQUUsc0JBQXNCLENBQUM7SUFDL0MsTUFBTSxFQUFFLGNBQWMsQ0FBQztJQUN2QixHQUFHLEVBQUUsTUFBTSxDQUFDO0NBQ2IsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsd0JBQXNCLCtCQUErQixDQUNuRCxLQUFLLEVBQUUsNkJBQTZCLEdBQ25DLE9BQU8sQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLENBd0JoQyJ9
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltdWxhdGlvbl9vdmVycmlkZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jaGVja3BvaW50L3NpbXVsYXRpb25fb3ZlcnJpZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLFNBQVMsRUFDZCxjQUFjLEVBRWQsS0FBSyx1QkFBdUIsRUFDN0IsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlFLE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHbkUsS0FBSyxzQ0FBc0MsR0FBRztJQUM1Qyw4QkFBOEI7SUFDOUIsTUFBTSxFQUFFLGNBQWMsQ0FBQztJQUN2Qjs7O09BR0c7SUFDSCxhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLHdDQUF3QztJQUN4QyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQztJQUNuQyx1QkFBdUI7SUFDdkIsR0FBRyxFQUFFLE1BQU0sQ0FBQztJQUNaOzs7O09BSUc7SUFDSCxzQkFBc0IsQ0FBQyxFQUFFLHNCQUFzQixDQUFDO0lBQ2hEOzs7T0FHRztJQUNILG1DQUFtQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUM7SUFDdkQ7OztPQUdHO0lBQ0gsNEJBQTRCLEVBQUUsZ0JBQWdCLENBQUM7SUFDL0M7Ozs7T0FJRztJQUNILGdCQUFnQixFQUFFLDRCQUE0QixDQUFDO0NBQ2hELENBQUM7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFDSCx3QkFBc0Isc0NBQXNDLENBQzFELEtBQUssRUFBRSxzQ0FBc0MsR0FDNUMsT0FBTyxDQUFDLHVCQUF1QixHQUFHLFNBQVMsQ0FBQyxDQTBEOUM7QUFxQkQsS0FBSyw2QkFBNkIsR0FBRztJQUNuQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQztJQUNuQyxzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQztJQUMvQyxNQUFNLEVBQUUsY0FBYyxDQUFDO0lBQ3ZCLCtEQUErRDtJQUMvRCxhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLEdBQUcsRUFBRSxNQUFNLENBQUM7Q0FDYixDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCx3QkFBc0IsK0JBQStCLENBQ25ELEtBQUssRUFBRSw2QkFBNkIsR0FDbkMsT0FBTyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0F5QmhDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"simulation_overrides.d.ts","sourceRoot":"","sources":["../../src/checkpoint/simulation_overrides.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,cAAc,EAEd,KAAK,uBAAuB,EAC7B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAGnE,KAAK,sCAAsC,GAAG;IAC5C,8BAA8B;IAC9B,MAAM,EAAE,cAAc,CAAC;IACvB,wCAAwC;IACxC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD;;;OAGG;IACH,mCAAmC,CAAC,EAAE,gBAAgB,CAAC;IACvD;;;OAGG;IACH,4BAA4B,EAAE,gBAAgB,CAAC;IAC/C;;;;OAIG;IACH,gBAAgB,EAAE,4BAA4B,CAAC;CAChD,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,sCAAsC,CAC1D,KAAK,EAAE,sCAAsC,GAC5C,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAyD9C;AAqBD,KAAK,6BAA6B,GAAG;IACnC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,MAAM,EAAE,cAAc,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,+BAA+B,CACnD,KAAK,EAAE,6BAA6B,GACnC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAwBhC"}
1
+ {"version":3,"file":"simulation_overrides.d.ts","sourceRoot":"","sources":["../../src/checkpoint/simulation_overrides.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,cAAc,EAEd,KAAK,uBAAuB,EAC7B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAGnE,KAAK,sCAAsC,GAAG;IAC5C,8BAA8B;IAC9B,MAAM,EAAE,cAAc,CAAC;IACvB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD;;;OAGG;IACH,mCAAmC,CAAC,EAAE,gBAAgB,CAAC;IACvD;;;OAGG;IACH,4BAA4B,EAAE,gBAAgB,CAAC;IAC/C;;;;OAIG;IACH,gBAAgB,EAAE,4BAA4B,CAAC;CAChD,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,sCAAsC,CAC1D,KAAK,EAAE,sCAAsC,GAC5C,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CA0D9C;AAqBD,KAAK,6BAA6B,GAAG;IACnC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,MAAM,EAAE,cAAc,CAAC;IACvB,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,+BAA+B,CACnD,KAAK,EAAE,6BAA6B,GACnC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAyBhC"}
@@ -56,6 +56,7 @@ import { computeCheckpointPayloadDigest } from './digest.js';
56
56
  checkpointNumber: input.checkpointNumber,
57
57
  proposedCheckpointData: input.proposedCheckpointData,
58
58
  rollup: input.rollup,
59
+ l1BlockNumber: input.l1BlockNumber,
59
60
  log: input.log
60
61
  });
61
62
  if (feeHeader) {
@@ -90,9 +91,12 @@ function derivePendingCheckpointNumber(input) {
90
91
  return undefined;
91
92
  }
92
93
  const grandparentCheckpointNumber = CheckpointNumber(input.checkpointNumber - 2);
94
+ const opts = {
95
+ blockNumber: input.l1BlockNumber
96
+ };
93
97
  const [grandparentCheckpoint, manaTarget] = await Promise.all([
94
- input.rollup.getCheckpoint(grandparentCheckpointNumber),
95
- input.rollup.getManaTarget()
98
+ input.rollup.getCheckpoint(grandparentCheckpointNumber, opts),
99
+ input.rollup.getManaTarget(opts)
96
100
  ]);
97
101
  if (!grandparentCheckpoint?.feeHeader) {
98
102
  throw new Error(`Grandparent checkpoint or feeHeader missing for checkpoint ${grandparentCheckpointNumber.toString()}`);
@@ -8,7 +8,6 @@ export type L1RollupConstants = {
8
8
  ethereumSlotDuration: number;
9
9
  proofSubmissionEpochs: number;
10
10
  targetCommitteeSize: number;
11
- rollupManaLimit: number;
12
11
  };
13
12
  export declare const EmptyL1RollupConstants: L1RollupConstants;
14
13
  export declare const L1RollupConstantsSchema: z.ZodObject<{
@@ -19,7 +18,6 @@ export declare const L1RollupConstantsSchema: z.ZodObject<{
19
18
  ethereumSlotDuration: z.ZodNumber;
20
19
  proofSubmissionEpochs: z.ZodNumber;
21
20
  targetCommitteeSize: z.ZodNumber;
22
- rollupManaLimit: z.ZodNumber;
23
21
  }, z.core.$strip>;
24
22
  /** Returns the timestamp for a given L2 slot. */
25
23
  export declare function getTimestampForSlot(slot: SlotNumber, constants: Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration'>): bigint;
@@ -60,4 +58,4 @@ export declare function getProofSubmissionDeadlineTimestamp(epochNumber: EpochNu
60
58
  export declare function computeQuorum(committeeSize: number): number;
61
59
  /** Returns the timestamp to start building a block for a given L2 slot. Computed as the start timestamp of the slot minus one L1 slot duration. */
62
60
  export declare function getSlotStartBuildTimestamp(slotNumber: SlotNumber, constants: Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration' | 'ethereumSlotDuration'>): number;
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcG9jaC1oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUl4QixNQUFNLE1BQU0saUJBQWlCLEdBQUc7SUFDOUIsWUFBWSxFQUFFLE1BQU0sQ0FBQztJQUNyQixhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLFlBQVksRUFBRSxNQUFNLENBQUM7SUFDckIsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0QixvQkFBb0IsRUFBRSxNQUFNLENBQUM7SUFDN0IscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0lBQzlCLG1CQUFtQixFQUFFLE1BQU0sQ0FBQztJQUM1QixlQUFlLEVBQUUsTUFBTSxDQUFDO0NBQ3pCLENBQUM7QUFFRixlQUFPLE1BQU0sc0JBQXNCLEVBQUUsaUJBU3BDLENBQUM7QUFFRixlQUFPLE1BQU0sdUJBQXVCOzs7Ozs7Ozs7aUJBV25DLENBQUM7QUFFRixpREFBaUQ7QUFDakQsd0JBQWdCLG1CQUFtQixDQUNqQyxJQUFJLEVBQUUsVUFBVSxFQUNoQixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsR0FBRyxjQUFjLENBQUMsVUFHckU7QUFFRCxxREFBcUQ7QUFDckQsd0JBQWdCLGtCQUFrQixDQUNoQyxFQUFFLEVBQUUsTUFBTSxFQUNWLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsQ0FBQyxHQUNuRSxVQUFVLENBSVo7QUFFRCwwRkFBMEY7QUFDMUYsd0JBQWdCLHNCQUFzQixDQUNwQyxZQUFZLEVBQUUsTUFBTSxFQUNwQixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsR0FBRyxzQkFBc0IsQ0FBQyxHQUMzRSxNQUFNLENBS1I7QUFFRCx3RUFBd0U7QUFDeEUsd0JBQWdCLCtCQUErQixDQUM3QyxJQUFJLEVBQUUsVUFBVSxFQUNoQixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsR0FBRyxjQUFjLEdBQUcsc0JBQXNCLENBQUMsR0FDNUYsTUFBTSxDQUVSO0FBRUQsc0ZBQXNGO0FBQ3RGLHdCQUFnQixvQkFBb0IsQ0FDbEMsa0JBQWtCLEVBQUUsTUFBTSxFQUMxQixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsR0FBRyxjQUFjLEdBQUcsc0JBQXNCLENBQUMsR0FDNUYsVUFBVSxDQUdaO0FBRUQsc0RBQXNEO0FBQ3RELHdCQUFnQix5QkFBeUIsQ0FDdkMsRUFBRSxFQUFFLE1BQU0sRUFDVixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsR0FBRyxjQUFjLEdBQUcsZUFBZSxDQUFDLEdBQ3JGLFdBQVcsQ0FFYjtBQUVELGlEQUFpRDtBQUNqRCx3QkFBZ0IsY0FBYyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLENBQUMsR0FBRyxXQUFXLENBRWpIO0FBRUQsMEVBQTBFO0FBQzFFLHdCQUFnQixvQkFBb0IsQ0FDbEMsV0FBVyxFQUFFLFdBQVcsRUFDeEIsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLENBQUMsR0FDbEQsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBRzFCO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQWdCLHlCQUF5QixDQUN2QyxXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsR0FBRyxjQUFjLEdBQUcsZUFBZSxHQUFHLHNCQUFzQixDQUFDLEdBQzlHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQVNsQjtBQUVEOztHQUVHO0FBQ0gsd0JBQWdCLHlCQUF5QixDQUN2QyxXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsR0FBRyxjQUFjLEdBQUcsZUFBZSxDQUFDLFVBSXZGO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQWdCLCtCQUErQixDQUM3QyxXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLHVCQUF1QixDQUFDLEdBQzFELFdBQVcsQ0FFYjtBQUVEOzs7R0FHRztBQUNILHdCQUFnQixtQ0FBbUMsQ0FDakQsV0FBVyxFQUFFLFdBQVcsRUFDeEIsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLEdBQUcsY0FBYyxHQUFHLGVBQWUsR0FBRyx1QkFBdUIsQ0FBQyxVQU9qSDtBQUVELDBFQUFzRTtBQUN0RSx3QkFBZ0IsYUFBYSxDQUFDLGFBQWEsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUUzRDtBQUVELG1KQUFtSjtBQUNuSix3QkFBZ0IsMEJBQTBCLENBQ3hDLFVBQVUsRUFBRSxVQUFVLEVBQ3RCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQyxHQUM1RixNQUFNLENBRVIifQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcG9jaC1oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUl4QixNQUFNLE1BQU0saUJBQWlCLEdBQUc7SUFDOUIsWUFBWSxFQUFFLE1BQU0sQ0FBQztJQUNyQixhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLFlBQVksRUFBRSxNQUFNLENBQUM7SUFDckIsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0QixvQkFBb0IsRUFBRSxNQUFNLENBQUM7SUFDN0IscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0lBQzlCLG1CQUFtQixFQUFFLE1BQU0sQ0FBQztDQUM3QixDQUFDO0FBRUYsZUFBTyxNQUFNLHNCQUFzQixFQUFFLGlCQVFwQyxDQUFDO0FBRUYsZUFBTyxNQUFNLHVCQUF1Qjs7Ozs7Ozs7aUJBVW5DLENBQUM7QUFFRixpREFBaUQ7QUFDakQsd0JBQWdCLG1CQUFtQixDQUNqQyxJQUFJLEVBQUUsVUFBVSxFQUNoQixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsR0FBRyxjQUFjLENBQUMsVUFHckU7QUFFRCxxREFBcUQ7QUFDckQsd0JBQWdCLGtCQUFrQixDQUNoQyxFQUFFLEVBQUUsTUFBTSxFQUNWLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsQ0FBQyxHQUNuRSxVQUFVLENBSVo7QUFFRCwwRkFBMEY7QUFDMUYsd0JBQWdCLHNCQUFzQixDQUNwQyxZQUFZLEVBQUUsTUFBTSxFQUNwQixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsR0FBRyxzQkFBc0IsQ0FBQyxHQUMzRSxNQUFNLENBS1I7QUFFRCx3RUFBd0U7QUFDeEUsd0JBQWdCLCtCQUErQixDQUM3QyxJQUFJLEVBQUUsVUFBVSxFQUNoQixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsR0FBRyxjQUFjLEdBQUcsc0JBQXNCLENBQUMsR0FDNUYsTUFBTSxDQUVSO0FBRUQsc0ZBQXNGO0FBQ3RGLHdCQUFnQixvQkFBb0IsQ0FDbEMsa0JBQWtCLEVBQUUsTUFBTSxFQUMxQixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsR0FBRyxjQUFjLEdBQUcsc0JBQXNCLENBQUMsR0FDNUYsVUFBVSxDQUdaO0FBRUQsc0RBQXNEO0FBQ3RELHdCQUFnQix5QkFBeUIsQ0FDdkMsRUFBRSxFQUFFLE1BQU0sRUFDVixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsR0FBRyxjQUFjLEdBQUcsZUFBZSxDQUFDLEdBQ3JGLFdBQVcsQ0FFYjtBQUVELGlEQUFpRDtBQUNqRCx3QkFBZ0IsY0FBYyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLENBQUMsR0FBRyxXQUFXLENBRWpIO0FBRUQsMEVBQTBFO0FBQzFFLHdCQUFnQixvQkFBb0IsQ0FDbEMsV0FBVyxFQUFFLFdBQVcsRUFDeEIsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLENBQUMsR0FDbEQsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBRzFCO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQWdCLHlCQUF5QixDQUN2QyxXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsR0FBRyxjQUFjLEdBQUcsZUFBZSxHQUFHLHNCQUFzQixDQUFDLEdBQzlHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQVNsQjtBQUVEOztHQUVHO0FBQ0gsd0JBQWdCLHlCQUF5QixDQUN2QyxXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsR0FBRyxjQUFjLEdBQUcsZUFBZSxDQUFDLFVBSXZGO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQWdCLCtCQUErQixDQUM3QyxXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLHVCQUF1QixDQUFDLEdBQzFELFdBQVcsQ0FFYjtBQUVEOzs7R0FHRztBQUNILHdCQUFnQixtQ0FBbUMsQ0FDakQsV0FBVyxFQUFFLFdBQVcsRUFDeEIsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLEdBQUcsY0FBYyxHQUFHLGVBQWUsR0FBRyx1QkFBdUIsQ0FBQyxVQU9qSDtBQUVELDBFQUFzRTtBQUN0RSx3QkFBZ0IsYUFBYSxDQUFDLGFBQWEsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUUzRDtBQUVELG1KQUFtSjtBQUNuSix3QkFBZ0IsMEJBQTBCLENBQ3hDLFVBQVUsRUFBRSxVQUFVLEVBQ3RCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQyxHQUM1RixNQUFNLENBRVIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/epoch-helpers/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/epoch-helpers/index.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,7 @@ export const EmptyL1RollupConstants = {
8
8
  slotDuration: 1,
9
9
  ethereumSlotDuration: 1,
10
10
  proofSubmissionEpochs: 1,
11
- targetCommitteeSize: 48,
12
- rollupManaLimit: Number.MAX_SAFE_INTEGER
11
+ targetCommitteeSize: 48
13
12
  };
14
13
  export const L1RollupConstantsSchema = zodFor()(z.object({
15
14
  l1StartBlock: schemas.BigInt,
@@ -18,8 +17,7 @@ export const L1RollupConstantsSchema = zodFor()(z.object({
18
17
  epochDuration: z.number(),
19
18
  ethereumSlotDuration: z.number(),
20
19
  proofSubmissionEpochs: z.number(),
21
- targetCommitteeSize: z.number(),
22
- rollupManaLimit: z.number()
20
+ targetCommitteeSize: z.number()
23
21
  }));
24
22
  /** Returns the timestamp for a given L2 slot. */ export function getTimestampForSlot(slot, constants) {
25
23
  return constants.l1GenesisTime + BigInt(slot) * BigInt(constants.slotDuration);
@@ -3,5 +3,6 @@ export * from './gas.js';
3
3
  export * from './gas_fees.js';
4
4
  export * from './gas_settings.js';
5
5
  export * from './gas_used.js';
6
+ export * from './rollup_fee_config.js';
6
7
  export * from './tx_gas_limits.js';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nYXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG9CQUFvQixDQUFDIn0=
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nYXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsb0JBQW9CLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gas/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gas/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC"}
package/dest/gas/index.js CHANGED
@@ -3,4 +3,5 @@ export * from './gas.js';
3
3
  export * from './gas_fees.js';
4
4
  export * from './gas_settings.js';
5
5
  export * from './gas_used.js';
6
+ export * from './rollup_fee_config.js';
6
7
  export * from './tx_gas_limits.js';
@@ -0,0 +1,50 @@
1
+ import type { RollupContract } from '@aztec-labs/ethereum/contracts';
2
+ import { type Logger } from '@aztec-labs/foundation/log';
3
+ /** Rollup fee settings that governance can change on L1, as read at one L1 block. */
4
+ export type RollupFeeConfig = {
5
+ manaTarget: bigint;
6
+ /** Read from L1 (getManaLimit), not derived as 2 x target. */
7
+ manaLimit: bigint;
8
+ provingCostPerManaInEth: bigint;
9
+ protocolFeeMarginBps: number;
10
+ /** L1 block the values were read at. */
11
+ l1BlockNumber: bigint;
12
+ };
13
+ /** Source of the rollup's live fee settings. */
14
+ export interface RollupFeeConfigProvider {
15
+ /**
16
+ * Last config successfully read from L1. Usually at most one polling interval old, but it stays at the last good
17
+ * read for as long as L1 reads keep failing.
18
+ */
19
+ getFeeConfig(): RollupFeeConfig;
20
+ }
21
+ /** Keeps a RollupFeeConfig in step with L1 by polling the rollup. */
22
+ export declare class RollupFeeConfigTracker implements RollupFeeConfigProvider {
23
+ private readonly rollup;
24
+ private latest;
25
+ private readonly log;
26
+ private readonly loop;
27
+ private constructor();
28
+ /** Does the first read, so getFeeConfig() always has a value. */
29
+ static create(rollup: RollupContract, opts?: {
30
+ pollingIntervalMs?: number;
31
+ logger?: Logger;
32
+ }): Promise<RollupFeeConfigTracker>;
33
+ start(): void;
34
+ stop(): Promise<void>;
35
+ getFeeConfig(): RollupFeeConfig;
36
+ private poll;
37
+ private update;
38
+ }
39
+ /**
40
+ * A provider that never reads L1, for tests and for nodes that run without one. The default leaves the mana limit
41
+ * effectively unbounded.
42
+ */
43
+ export declare class TestRollupFeeConfigProvider implements RollupFeeConfigProvider {
44
+ private config;
45
+ constructor(config?: Partial<RollupFeeConfig>);
46
+ /** Replaces some of the values, as a governance update would. */
47
+ setFeeConfig(config: Partial<RollupFeeConfig>): void;
48
+ getFeeConfig(): RollupFeeConfig;
49
+ }
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sbHVwX2ZlZV9jb25maWcuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nYXMvcm9sbHVwX2ZlZV9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLDRCQUE0QixDQUFDO0FBR3ZFLHFGQUFxRjtBQUNyRixNQUFNLE1BQU0sZUFBZSxHQUFHO0lBQzVCLFVBQVUsRUFBRSxNQUFNLENBQUM7SUFDbkIsOERBQThEO0lBQzlELFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsdUJBQXVCLEVBQUUsTUFBTSxDQUFDO0lBQ2hDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQztJQUM3Qix3Q0FBd0M7SUFDeEMsYUFBYSxFQUFFLE1BQU0sQ0FBQztDQUN2QixDQUFDO0FBRUYsZ0RBQWdEO0FBQ2hELE1BQU0sV0FBVyx1QkFBdUI7SUFDdEM7OztPQUdHO0lBQ0gsWUFBWSxJQUFJLGVBQWUsQ0FBQztDQUNqQztBQVFELHFFQUFxRTtBQUNyRSxxQkFBYSxzQkFBdUIsWUFBVyx1QkFBdUI7SUFJbEUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNO0lBQ3ZCLE9BQU8sQ0FBQyxNQUFNO0lBRWQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHO0lBTnRCLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFpQjtJQUV0QyxPQUFPLGVBT047SUFFRCxpRUFBaUU7SUFDakUsT0FBb0IsTUFBTSxDQUN4QixNQUFNLEVBQUUsY0FBYyxFQUN0QixJQUFJLEdBQUU7UUFBRSxpQkFBaUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFPLEdBQ3pELE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQU1qQztJQUVNLEtBQUssSUFBSSxJQUFJLENBRW5CO0lBRVksSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFakM7SUFFTSxZQUFZLElBQUksZUFBZSxDQUVyQztZQU9hLElBQUk7SUFlbEIsT0FBTyxDQUFDLE1BQU07Q0FZZjtBQUVEOzs7R0FHRztBQUNILHFCQUFhLDJCQUE0QixZQUFXLHVCQUF1QjtJQUN6RSxPQUFPLENBQUMsTUFBTSxDQUFrQjtJQUVoQyxZQUFZLE1BQU0sR0FBRSxPQUFPLENBQUMsZUFBZSxDQUFNLEVBRWhEO0lBRUQsaUVBQWlFO0lBQzFELFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FFMUQ7SUFFTSxZQUFZLElBQUksZUFBZSxDQUVyQztDQUNGIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rollup_fee_config.d.ts","sourceRoot":"","sources":["../../src/gas/rollup_fee_config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,4BAA4B,CAAC;AAGvE,qFAAqF;AACrF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB,EAAE,MAAM,CAAC;IAChC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,gDAAgD;AAChD,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,YAAY,IAAI,eAAe,CAAC;CACjC;AAQD,qEAAqE;AACrE,qBAAa,sBAAuB,YAAW,uBAAuB;IAIlE,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,QAAQ,CAAC,GAAG;IANtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IAEtC,OAAO,eAON;IAED,iEAAiE;IACjE,OAAoB,MAAM,CACxB,MAAM,EAAE,cAAc,EACtB,IAAI,GAAE;QAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GACzD,OAAO,CAAC,sBAAsB,CAAC,CAMjC;IAEM,KAAK,IAAI,IAAI,CAEnB;IAEY,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAEjC;IAEM,YAAY,IAAI,eAAe,CAErC;YAOa,IAAI;IAelB,OAAO,CAAC,MAAM;CAYf;AAED;;;GAGG;AACH,qBAAa,2BAA4B,YAAW,uBAAuB;IACzE,OAAO,CAAC,MAAM,CAAkB;IAEhC,YAAY,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,EAEhD;IAED,iEAAiE;IAC1D,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAE1D;IAEM,YAAY,IAAI,eAAe,CAErC;CACF"}
@@ -0,0 +1,105 @@
1
+ import { createLogger } from '@aztec-labs/foundation/log';
2
+ import { RunningPromise } from '@aztec-labs/foundation/running-promise';
3
+ /**
4
+ * Default polling interval. Each pass reads L1's block number through the client's cache, and reads the fee settings
5
+ * only when that block is newer than the last read, so it is cheap.
6
+ */ const DEFAULT_POLLING_INTERVAL_MS = 1_000;
7
+ /** Keeps a RollupFeeConfig in step with L1 by polling the rollup. */ export class RollupFeeConfigTracker {
8
+ rollup;
9
+ latest;
10
+ log;
11
+ loop;
12
+ constructor(rollup, latest, pollingIntervalMs, log){
13
+ this.rollup = rollup;
14
+ this.latest = latest;
15
+ this.log = log;
16
+ this.loop = new RunningPromise(()=>this.poll(), log, pollingIntervalMs);
17
+ }
18
+ /** Does the first read, so getFeeConfig() always has a value. */ static async create(rollup, opts = {}) {
19
+ const log = opts.logger ?? createLogger('rollup-fee-config');
20
+ const l1BlockNumber = await rollup.client.getBlockNumber();
21
+ const initial = await readRollupFeeConfig(rollup, l1BlockNumber);
22
+ log.info(`Read rollup fee config at L1 block ${l1BlockNumber}`, initial);
23
+ return new RollupFeeConfigTracker(rollup, initial, opts.pollingIntervalMs ?? DEFAULT_POLLING_INTERVAL_MS, log);
24
+ }
25
+ start() {
26
+ this.loop.start();
27
+ }
28
+ async stop() {
29
+ await this.loop.stop();
30
+ }
31
+ getFeeConfig() {
32
+ return this.latest;
33
+ }
34
+ /**
35
+ * One pass of the polling loop: reads the config at L1's latest block. It takes the client's cached block number and
36
+ * skips blocks it has already read, so a pass within the cache window costs no new reads, and a lagging RPC node
37
+ * cannot move the value back. A failed read only logs: the last value stays until a later pass succeeds.
38
+ */ async poll() {
39
+ try {
40
+ const l1BlockNumber = await this.rollup.client.getBlockNumber();
41
+ if (l1BlockNumber <= this.latest.l1BlockNumber) {
42
+ return;
43
+ }
44
+ this.update(await readRollupFeeConfig(this.rollup, l1BlockNumber));
45
+ } catch (err) {
46
+ this.log.warn(`Failed to refresh rollup fee config from L1, keeping the last value`, {
47
+ err,
48
+ l1BlockNumber: this.latest.l1BlockNumber
49
+ });
50
+ }
51
+ }
52
+ update(config) {
53
+ const previous = this.latest;
54
+ this.latest = config;
55
+ if (config.manaTarget !== previous.manaTarget || config.manaLimit !== previous.manaLimit || config.provingCostPerManaInEth !== previous.provingCostPerManaInEth || config.protocolFeeMarginBps !== previous.protocolFeeMarginBps) {
56
+ this.log.info(`Rollup fee config changed at L1 block ${config.l1BlockNumber}`, config);
57
+ }
58
+ }
59
+ }
60
+ /**
61
+ * A provider that never reads L1, for tests and for nodes that run without one. The default leaves the mana limit
62
+ * effectively unbounded.
63
+ */ export class TestRollupFeeConfigProvider {
64
+ config;
65
+ constructor(config = {}){
66
+ this.config = {
67
+ ...DEFAULT_TEST_ROLLUP_FEE_CONFIG,
68
+ ...config
69
+ };
70
+ }
71
+ /** Replaces some of the values, as a governance update would. */ setFeeConfig(config) {
72
+ this.config = {
73
+ ...this.config,
74
+ ...config
75
+ };
76
+ }
77
+ getFeeConfig() {
78
+ return this.config;
79
+ }
80
+ }
81
+ const DEFAULT_TEST_ROLLUP_FEE_CONFIG = {
82
+ manaTarget: BigInt(Math.floor(Number.MAX_SAFE_INTEGER / 2)),
83
+ manaLimit: BigInt(Number.MAX_SAFE_INTEGER),
84
+ provingCostPerManaInEth: 0n,
85
+ protocolFeeMarginBps: 0,
86
+ l1BlockNumber: 0n
87
+ };
88
+ /** Reads every fee setting at the same L1 block, so the values describe one state. */ async function readRollupFeeConfig(rollup, l1BlockNumber) {
89
+ const opts = {
90
+ blockNumber: l1BlockNumber
91
+ };
92
+ const [manaTarget, manaLimit, provingCostPerManaInEth, protocolFeeMarginBps] = await Promise.all([
93
+ rollup.getManaTarget(opts),
94
+ rollup.getManaLimit(opts),
95
+ rollup.getProvingCostPerMana(opts),
96
+ rollup.getProtocolFeeMargin(opts)
97
+ ]);
98
+ return {
99
+ manaTarget,
100
+ manaLimit,
101
+ provingCostPerManaInEth,
102
+ protocolFeeMarginBps,
103
+ l1BlockNumber
104
+ };
105
+ }
@@ -1,6 +1,7 @@
1
1
  import { type ProposerTimetableConfig } from '../timetable/build_proposer_timetable.js';
2
2
  import type { SlotTimingConstants } from '../timetable/consensus_timetable.js';
3
3
  import { Gas } from './gas.js';
4
+ import type { RollupFeeConfig } from './rollup_fee_config.js';
4
5
  /**
5
6
  * Network-minimum per-block budget multiplier for L2 gas and tx-count allocation. A block packer must
6
7
  * grant at least this share of the even per-block split to a single tx; operators may configure a higher
@@ -53,19 +54,18 @@ export declare function getDaCheckpointBudgetForTxs(maxBlocksPerCheckpoint: numb
53
54
  * raw blob capacity net of encoding overhead for every block — so the admission limit is consistent with the
54
55
  * builder's blob-field cap.
55
56
  *
56
- * @param manaCheckpointBudget - L2 (mana) budget per checkpoint (`rollupManaLimit`).
57
+ * @param manaCheckpointBudget - L2 (mana) budget per checkpoint (the rollup's live mana limit).
57
58
  */
58
59
  export declare function computeNetworkTxGasLimits(opts: {
59
60
  maxBlocksPerCheckpoint: number;
60
61
  manaCheckpointBudget: number;
61
62
  }): Gas;
62
63
  /**
63
- * Network tx gas limits derived from a sequencer/p2p config and the L1 slot-timing + mana constants. The
64
- * single source of truth shared by `getNodeInfo` (advertising) and the RPC/gossip/pool gas validators
65
- * (enforcing), so a node never rejects a tx it advertised as admissible. Always uses the network-minimum
66
- * multipliers, never the node's (possibly higher) configured multipliers.
64
+ * Network tx gas limits derived from a sequencer/p2p config, the L1 slot-timing constants and the rollup's live
65
+ * mana limit. The single source of truth shared by `getNodeInfo` (advertising) and the RPC/gossip/pool gas
66
+ * validators (enforcing), so a node never rejects a tx it advertised as admissible. Always uses the network-minimum
67
+ * multipliers, never the node's (possibly higher) configured multipliers. Callers pass the fee config they read for
68
+ * this call, so a mana limit raised by governance takes effect without a restart.
67
69
  */
68
- export declare function getNetworkTxGasLimits(config: ProposerTimetableConfig, l1Constants: SlotTimingConstants & {
69
- rollupManaLimit: number;
70
- }): Gas;
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfZ2FzX2xpbWl0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dhcy90eF9nYXNfbGltaXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBRSxLQUFLLHVCQUF1QixFQUEwQixNQUFNLDBDQUEwQyxDQUFDO0FBQ2hILE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDL0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUvQjs7Ozs7R0FLRztBQUNILGVBQU8sTUFBTSxtQ0FBbUMsTUFBTSxDQUFDO0FBRXZEOzs7Ozs7O0dBT0c7QUFDSCxlQUFPLE1BQU0sc0NBQXNDLE1BQU0sQ0FBQztBQUUxRDs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILHdCQUFnQiwyQkFBMkIsQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQVNsRjtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsd0JBQWdCLHlCQUF5QixDQUFDLElBQUksRUFBRTtJQUFFLHNCQUFzQixFQUFFLE1BQU0sQ0FBQztJQUFDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQTtDQUFFLEdBQUcsR0FBRyxDQXFCckg7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFnQixxQkFBcUIsQ0FDbkMsTUFBTSxFQUFFLHVCQUF1QixFQUMvQixXQUFXLEVBQUUsbUJBQW1CLEdBQUc7SUFBRSxlQUFlLEVBQUUsTUFBTSxDQUFBO0NBQUUsR0FDN0QsR0FBRyxDQUdMIn0=
70
+ export declare function getNetworkTxGasLimits(config: ProposerTimetableConfig, l1Constants: SlotTimingConstants, feeConfig: Pick<RollupFeeConfig, 'manaLimit'>): Gas;
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfZ2FzX2xpbWl0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dhcy90eF9nYXNfbGltaXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBRSxLQUFLLHVCQUF1QixFQUEwQixNQUFNLDBDQUEwQyxDQUFDO0FBQ2hILE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDL0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMvQixPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU5RDs7Ozs7R0FLRztBQUNILGVBQU8sTUFBTSxtQ0FBbUMsTUFBTSxDQUFDO0FBRXZEOzs7Ozs7O0dBT0c7QUFDSCxlQUFPLE1BQU0sc0NBQXNDLE1BQU0sQ0FBQztBQUUxRDs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILHdCQUFnQiwyQkFBMkIsQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQVNsRjtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsd0JBQWdCLHlCQUF5QixDQUFDLElBQUksRUFBRTtJQUFFLHNCQUFzQixFQUFFLE1BQU0sQ0FBQztJQUFDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQTtDQUFFLEdBQUcsR0FBRyxDQXFCckg7QUFFRDs7Ozs7O0dBTUc7QUFDSCx3QkFBZ0IscUJBQXFCLENBQ25DLE1BQU0sRUFBRSx1QkFBdUIsRUFDL0IsV0FBVyxFQUFFLG1CQUFtQixFQUNoQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsR0FDNUMsR0FBRyxDQUdMIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"tx_gas_limits.d.ts","sourceRoot":"","sources":["../../src/gas/tx_gas_limits.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,uBAAuB,EAA0B,MAAM,0CAA0C,CAAC;AAChH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B;;;;;GAKG;AACH,eAAO,MAAM,mCAAmC,MAAM,CAAC;AAEvD;;;;;;;GAOG;AACH,eAAO,MAAM,sCAAsC,MAAM,CAAC;AAE1D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,2BAA2B,CAAC,sBAAsB,EAAE,MAAM,GAAG,MAAM,CASlF;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAAE,sBAAsB,EAAE,MAAM,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAqBrH;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,uBAAuB,EAC/B,WAAW,EAAE,mBAAmB,GAAG;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,GAC7D,GAAG,CAGL"}
1
+ {"version":3,"file":"tx_gas_limits.d.ts","sourceRoot":"","sources":["../../src/gas/tx_gas_limits.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,uBAAuB,EAA0B,MAAM,0CAA0C,CAAC;AAChH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;;;GAKG;AACH,eAAO,MAAM,mCAAmC,MAAM,CAAC;AAEvD;;;;;;;GAOG;AACH,eAAO,MAAM,sCAAsC,MAAM,CAAC;AAE1D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,2BAA2B,CAAC,sBAAsB,EAAE,MAAM,GAAG,MAAM,CASlF;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAAE,sBAAsB,EAAE,MAAM,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAqBrH;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,uBAAuB,EAC/B,WAAW,EAAE,mBAAmB,EAChC,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,GAC5C,GAAG,CAGL"}
@@ -57,7 +57,7 @@ import { Gas } from './gas.js';
57
57
  * raw blob capacity net of encoding overhead for every block — so the admission limit is consistent with the
58
58
  * builder's blob-field cap.
59
59
  *
60
- * @param manaCheckpointBudget - L2 (mana) budget per checkpoint (`rollupManaLimit`).
60
+ * @param manaCheckpointBudget - L2 (mana) budget per checkpoint (the rollup's live mana limit).
61
61
  */ export function computeNetworkTxGasLimits(opts) {
62
62
  const blocks = Math.max(1, opts.maxBlocksPerCheckpoint);
63
63
  const daBudget = getDaCheckpointBudgetForTxs(blocks);
@@ -71,14 +71,15 @@ import { Gas } from './gas.js';
71
71
  return new Gas(daGas, l2Gas);
72
72
  }
73
73
  /**
74
- * Network tx gas limits derived from a sequencer/p2p config and the L1 slot-timing + mana constants. The
75
- * single source of truth shared by `getNodeInfo` (advertising) and the RPC/gossip/pool gas validators
76
- * (enforcing), so a node never rejects a tx it advertised as admissible. Always uses the network-minimum
77
- * multipliers, never the node's (possibly higher) configured multipliers.
78
- */ export function getNetworkTxGasLimits(config, l1Constants) {
74
+ * Network tx gas limits derived from a sequencer/p2p config, the L1 slot-timing constants and the rollup's live
75
+ * mana limit. The single source of truth shared by `getNodeInfo` (advertising) and the RPC/gossip/pool gas
76
+ * validators (enforcing), so a node never rejects a tx it advertised as admissible. Always uses the network-minimum
77
+ * multipliers, never the node's (possibly higher) configured multipliers. Callers pass the fee config they read for
78
+ * this call, so a mana limit raised by governance takes effect without a restart.
79
+ */ export function getNetworkTxGasLimits(config, l1Constants, feeConfig) {
79
80
  const maxBlocksPerCheckpoint = buildProposerTimetable(config, l1Constants).getMaxBlocksPerCheckpoint();
80
81
  return computeNetworkTxGasLimits({
81
82
  maxBlocksPerCheckpoint,
82
- manaCheckpointBudget: l1Constants.rollupManaLimit
83
+ manaCheckpointBudget: Number(feeConfig.manaLimit)
83
84
  });
84
85
  }
@@ -78,7 +78,7 @@ export interface PublicProcessorValidator {
78
78
  addNullifiers: (nullifiers: Buffer[]) => void;
79
79
  };
80
80
  }
81
- export type FullNodeBlockBuilderConfig = Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration' | 'rollupManaLimit'> & Pick<ChainConfig, 'l1ChainId' | 'rollupVersion'> & Pick<SequencerConfig, 'txPublicSetupAllowListExtend' | 'fakeProcessingDelayPerTxMs' | 'fakeThrowAfterProcessingTxCount' | 'maxTxsPerBlock' | 'maxTxsPerCheckpoint' | 'maxL2BlockGas' | 'maxDABlockGas'>;
81
+ export type FullNodeBlockBuilderConfig = Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration'> & Pick<ChainConfig, 'l1ChainId' | 'rollupVersion'> & Pick<SequencerConfig, 'txPublicSetupAllowListExtend' | 'fakeProcessingDelayPerTxMs' | 'fakeThrowAfterProcessingTxCount' | 'maxTxsPerBlock' | 'maxTxsPerCheckpoint' | 'maxL2BlockGas' | 'maxDABlockGas'>;
82
82
  export declare const FullNodeBlockBuilderConfigKeys: (keyof FullNodeBlockBuilderConfig)[];
83
83
  /** Thrown when the number of successfully processed transactions is below the required minimum. */
84
84
  export declare class InsufficientValidTxsError extends Error {
@@ -114,4 +114,4 @@ export interface ICheckpointsBuilder {
114
114
  startCheckpoint(checkpointNumber: CheckpointNumber, constants: CheckpointGlobalVariables, feeAssetPriceModifier: bigint, previousCheckpointOutHashes: Fr[], previousInboxRollingHash: Fr, fork: MerkleTreeWriteOperations, bindings?: LoggerBindings): Promise<ICheckpointBlockBuilder>;
115
115
  }
116
116
  export {};
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYnVpbGRlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyZmFjZXMvYmxvY2stYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRixPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVqRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUYsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBFLDZGQUE2RjtBQUM3RixNQUFNLFdBQVcsYUFBYyxTQUFRLGtCQUFrQjtJQUN2RDs7OztPQUlHO0lBQ0gsYUFBYSxDQUFDLGVBQWUsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVyRjs7O09BR0c7SUFDSCxNQUFNLENBQUMsR0FBRyxFQUFFLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUxQzs7T0FFRztJQUNILGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztDQUN4RTtBQUVELDhFQUE4RTtBQUM5RSxNQUFNLE1BQU0scUJBQXFCLEdBQUc7SUFDbEMsd0NBQXdDO0lBQ3hDLGVBQWUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN6Qiw0QkFBNEI7SUFDNUIsV0FBVyxDQUFDLEVBQUUsR0FBRyxDQUFDO0lBQ2xCLDZDQUE2QztJQUM3QyxhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdkIseUZBQXlGO0lBQ3pGLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQztJQUNoQiw4REFBOEQ7SUFDOUQsTUFBTSxDQUFDLEVBQUUsV0FBVyxDQUFDO0lBQ3JCLG9LQUFvSztJQUNwSyxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQztDQUM5QixDQUFDO0FBRUYsK0VBQStFO0FBQy9FLEtBQUssdUJBQXVCLEdBQUcscUJBQXFCLEdBQUc7SUFDckQsaUdBQWlHO0lBQ2pHLFdBQVcsRUFBRSxNQUFNLENBQUM7SUFDcEI7OztPQUdHO0lBQ0gsY0FBYyxFQUFFLEVBQUUsRUFBRSxDQUFDO0NBQ3RCLENBQUM7QUFFRix5REFBeUQ7QUFDekQsS0FBSywyQkFBMkIsR0FBRyx1QkFBdUIsR0FBRztJQUMzRCxrQkFBa0IsRUFBRSxJQUFJLENBQUM7SUFDekIsMkVBQTJFO0lBQzNFLHNCQUFzQixFQUFFLE1BQU0sQ0FBQztJQUMvQiw0RkFBNEY7SUFDNUYsNEJBQTRCLEVBQUUsTUFBTSxDQUFDO0lBQ3JDLHFIQUFxSDtJQUNySCw4QkFBOEIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUN6QyxDQUFDO0FBRUYsdURBQXVEO0FBQ3ZELEtBQUssNEJBQTRCLEdBQUcsdUJBQXVCLEdBQUc7SUFDNUQsa0JBQWtCLEVBQUUsS0FBSyxDQUFDO0NBQzNCLENBQUM7QUFFRiw0R0FBNEc7QUFDNUcsTUFBTSxNQUFNLG1CQUFtQixHQUFHLDJCQUEyQixHQUFHLDRCQUE0QixDQUFDO0FBRTdGLE1BQU0sV0FBVyx3QkFBd0I7SUFDdkMsbUJBQW1CLENBQUMsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEMsY0FBYyxDQUFDLEVBQUU7UUFBRSxhQUFhLEVBQUUsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssSUFBSSxDQUFBO0tBQUUsQ0FBQztDQUNwRTtBQUVELE1BQU0sTUFBTSwwQkFBMEIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxHQUNwSCxJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVcsR0FBRyxlQUFlLENBQUMsR0FDaEQsSUFBSSxDQUNGLGVBQWUsRUFDYiw4QkFBOEIsR0FDOUIsNEJBQTRCLEdBQzVCLGlDQUFpQyxHQUNqQyxnQkFBZ0IsR0FDaEIscUJBQXFCLEdBQ3JCLGVBQWUsR0FDZixlQUFlLENBQ2xCLENBQUM7QUFFSixlQUFPLE1BQU0sOEJBQThCLEVBQUUsQ0FBQyxNQUFNLDBCQUEwQixDQUFDLEVBYXJFLENBQUM7QUFFWCxtR0FBbUc7QUFDbkcscUJBQWEseUJBQTBCLFNBQVEsS0FBSzthQUVoQyxjQUFjLEVBQUUsTUFBTTthQUN0QixXQUFXLEVBQUUsTUFBTTthQUNuQixTQUFTLEVBQUUsUUFBUSxFQUFFO0lBSHZDLFlBQ2tCLGNBQWMsRUFBRSxNQUFNLEVBQ3RCLFdBQVcsRUFBRSxNQUFNLEVBQ25CLFNBQVMsRUFBRSxRQUFRLEVBQUUsRUFJdEM7Q0FDRjtBQUVELHNEQUFzRDtBQUN0RCxNQUFNLE1BQU0sNEJBQTRCLEdBQUc7SUFDekMsS0FBSyxFQUFFLE9BQU8sQ0FBQztJQUNmLHVCQUF1QixFQUFFLE1BQU0sQ0FBQztJQUNoQyxNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQ3RCLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztDQUNmLENBQUM7QUFFRixpRUFBaUU7QUFDakUsTUFBTSxXQUFXLHVCQUF1QjtJQUN0Qyx3SEFBd0g7SUFDeEgsVUFBVSxDQUNSLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsYUFBYSxDQUFDLEVBQUUsQ0FBQyxFQUM1QyxXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsTUFBTSxFQUNqQixJQUFJLEVBQUUsbUJBQW1CLEdBQ3hCLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0NBQzFDO0FBRUQsa0RBQWtEO0FBQ2xELE1BQU0sV0FBVyxtQkFBbUI7SUFDbEM7OztPQUdHO0lBQ0gsT0FBTyxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLEVBQUUsU0FBUyxHQUFHLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBRTdGOzs7T0FHRztJQUNILGVBQWUsQ0FDYixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsU0FBUyxFQUFFLHlCQUF5QixFQUNwQyxxQkFBcUIsRUFBRSxNQUFNLEVBQzdCLDJCQUEyQixFQUFFLEVBQUUsRUFBRSxFQUNqQyx3QkFBd0IsRUFBRSxFQUFFLEVBQzVCLElBQUksRUFBRSx5QkFBeUIsRUFDL0IsUUFBUSxDQUFDLEVBQUUsY0FBYyxHQUN4QixPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztDQUNyQyJ9
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYnVpbGRlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyZmFjZXMvYmxvY2stYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRixPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVqRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUYsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBFLDZG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
@@ -1 +1 @@
1
- {"version":3,"file":"block-builder.d.ts","sourceRoot":"","sources":["../../src/interfaces/block-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"block-builder.d.ts","sourceRoot":"","sources":["../../src/interfaces/block-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5F,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,6FAA6F;AAC7F,MAAM,WAAW,aAAc,SAAQ,kBAAkB;IACvD;;;;OAIG;IACH,aAAa,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErF;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C;;OAEG;IACH,iBAAiB,CAAC,mBAAmB,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACxE;AAED,8EAA8E;AAC9E,MAAM,MAAM,qBAAqB,GAAG;IAClC,wCAAwC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yFAAyF;IACzF,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,oKAAoK;IACpK,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,+EAA+E;AAC/E,KAAK,uBAAuB,GAAG,qBAAqB,GAAG;IACrD,iGAAiG;IACjG,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,cAAc,EAAE,EAAE,EAAE,CAAC;CACtB,CAAC;AAEF,yDAAyD;AACzD,KAAK,2BAA2B,GAAG,uBAAuB,GAAG;IAC3D,kBAAkB,EAAE,IAAI,CAAC;IACzB,2EAA2E;IAC3E,sBAAsB,EAAE,MAAM,CAAC;IAC/B,4FAA4F;IAC5F,4BAA4B,EAAE,MAAM,CAAC;IACrC,qHAAqH;IACrH,8BAA8B,CAAC,EAAE,MAAM,CAAC;CACzC,CAAC;AAEF,uDAAuD;AACvD,KAAK,4BAA4B,GAAG,uBAAuB,GAAG;IAC5D,kBAAkB,EAAE,KAAK,CAAC;CAC3B,CAAC;AAEF,4GAA4G;AAC5G,MAAM,MAAM,mBAAmB,GAAG,2BAA2B,GAAG,4BAA4B,CAAC;AAE7F,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IACtC,cAAc,CAAC,EAAE;QAAE,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;KAAE,CAAC;CACpE;AAED,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAAC,iBAAiB,EAAE,eAAe,GAAG,cAAc,CAAC,GAChG,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,eAAe,CAAC,GAChD,IAAI,CACF,eAAe,EACb,8BAA8B,GAC9B,4BAA4B,GAC5B,iCAAiC,GACjC,gBAAgB,GAChB,qBAAqB,GACrB,eAAe,GACf,eAAe,CAClB,CAAC;AAEJ,eAAO,MAAM,8BAA8B,EAAE,CAAC,MAAM,0BAA0B,CAAC,EAYrE,CAAC;AAEX,mGAAmG;AACnG,qBAAa,yBAA0B,SAAQ,KAAK;aAEhC,cAAc,EAAE,MAAM;aACtB,WAAW,EAAE,MAAM;aACnB,SAAS,EAAE,QAAQ,EAAE;IAHvC,YACkB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,QAAQ,EAAE,EAItC;CACF;AAED,sDAAsD;AACtD,MAAM,MAAM,4BAA4B,GAAG;IACzC,KAAK,EAAE,OAAO,CAAC;IACf,uBAAuB,EAAE,MAAM,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,OAAO,EAAE,EAAE,EAAE,CAAC;CACf,CAAC;AAEF,iEAAiE;AACjE,MAAM,WAAW,uBAAuB;IACtC,wHAAwH;IACxH,UAAU,CACR,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,EAC5C,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,4BAA4B,CAAC,CAAC;CAC1C;AAED,kDAAkD;AAClD,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAE7F;;;OAGG;IACH,eAAe,CACb,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,yBAAyB,EACpC,qBAAqB,EAAE,MAAM,EAC7B,2BAA2B,EAAE,EAAE,EAAE,EACjC,wBAAwB,EAAE,EAAE,EAC5B,IAAI,EAAE,yBAAyB,EAC/B,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,uBAAuB,CAAC,CAAC;CACrC"}
@@ -9,8 +9,7 @@ export const FullNodeBlockBuilderConfigKeys = [
9
9
  'maxTxsPerBlock',
10
10
  'maxTxsPerCheckpoint',
11
11
  'maxL2BlockGas',
12
- 'maxDABlockGas',
13
- 'rollupManaLimit'
12
+ 'maxDABlockGas'
14
13
  ];
15
14
  /** Thrown when the number of successfully processed transactions is below the required minimum. */ export class InsufficientValidTxsError extends Error {
16
15
  processedCount;