@aztec-labs/sequencer-client 6.0.0-nightly.20260829

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 (165) hide show
  1. package/README.md +307 -0
  2. package/dest/client/index.d.ts +2 -0
  3. package/dest/client/index.d.ts.map +1 -0
  4. package/dest/client/index.js +1 -0
  5. package/dest/client/sequencer-client.d.ts +94 -0
  6. package/dest/client/sequencer-client.d.ts.map +1 -0
  7. package/dest/client/sequencer-client.js +177 -0
  8. package/dest/config.d.ts +56 -0
  9. package/dest/config.d.ts.map +1 -0
  10. package/dest/config.js +251 -0
  11. package/dest/global_variable_builder/fee_predictor.d.ts +49 -0
  12. package/dest/global_variable_builder/fee_predictor.d.ts.map +1 -0
  13. package/dest/global_variable_builder/fee_predictor.js +127 -0
  14. package/dest/global_variable_builder/fee_provider.d.ts +28 -0
  15. package/dest/global_variable_builder/fee_provider.d.ts.map +1 -0
  16. package/dest/global_variable_builder/fee_provider.js +87 -0
  17. package/dest/global_variable_builder/global_builder.d.ts +28 -0
  18. package/dest/global_variable_builder/global_builder.d.ts.map +1 -0
  19. package/dest/global_variable_builder/global_builder.js +40 -0
  20. package/dest/global_variable_builder/index.d.ts +4 -0
  21. package/dest/global_variable_builder/index.d.ts.map +1 -0
  22. package/dest/global_variable_builder/index.js +3 -0
  23. package/dest/index.d.ts +7 -0
  24. package/dest/index.d.ts.map +1 -0
  25. package/dest/index.js +8 -0
  26. package/dest/publisher/config.d.ts +68 -0
  27. package/dest/publisher/config.d.ts.map +1 -0
  28. package/dest/publisher/config.js +137 -0
  29. package/dest/publisher/index.d.ts +5 -0
  30. package/dest/publisher/index.d.ts.map +1 -0
  31. package/dest/publisher/index.js +4 -0
  32. package/dest/publisher/l1_to_l2_messaging.d.ts +21 -0
  33. package/dest/publisher/l1_to_l2_messaging.d.ts.map +1 -0
  34. package/dest/publisher/l1_to_l2_messaging.js +70 -0
  35. package/dest/publisher/l1_tx_failed_store/factory.d.ts +11 -0
  36. package/dest/publisher/l1_tx_failed_store/factory.d.ts.map +1 -0
  37. package/dest/publisher/l1_tx_failed_store/factory.js +22 -0
  38. package/dest/publisher/l1_tx_failed_store/failed_tx_store.d.ts +101 -0
  39. package/dest/publisher/l1_tx_failed_store/failed_tx_store.d.ts.map +1 -0
  40. package/dest/publisher/l1_tx_failed_store/failed_tx_store.js +68 -0
  41. package/dest/publisher/l1_tx_failed_store/file_store_failed_tx_store.d.ts +15 -0
  42. package/dest/publisher/l1_tx_failed_store/file_store_failed_tx_store.d.ts.map +1 -0
  43. package/dest/publisher/l1_tx_failed_store/file_store_failed_tx_store.js +36 -0
  44. package/dest/publisher/l1_tx_failed_store/index.d.ts +4 -0
  45. package/dest/publisher/l1_tx_failed_store/index.d.ts.map +1 -0
  46. package/dest/publisher/l1_tx_failed_store/index.js +3 -0
  47. package/dest/publisher/sequencer-bundle-simulator.d.ts +96 -0
  48. package/dest/publisher/sequencer-bundle-simulator.d.ts.map +1 -0
  49. package/dest/publisher/sequencer-bundle-simulator.js +198 -0
  50. package/dest/publisher/sequencer-publisher-factory.d.ts +50 -0
  51. package/dest/publisher/sequencer-publisher-factory.d.ts.map +1 -0
  52. package/dest/publisher/sequencer-publisher-factory.js +75 -0
  53. package/dest/publisher/sequencer-publisher-metrics.d.ts +26 -0
  54. package/dest/publisher/sequencer-publisher-metrics.d.ts.map +1 -0
  55. package/dest/publisher/sequencer-publisher-metrics.js +101 -0
  56. package/dest/publisher/sequencer-publisher.d.ts +254 -0
  57. package/dest/publisher/sequencer-publisher.d.ts.map +1 -0
  58. package/dest/publisher/sequencer-publisher.js +1784 -0
  59. package/dest/publisher/write_json.d.ts +11 -0
  60. package/dest/publisher/write_json.d.ts.map +1 -0
  61. package/dest/publisher/write_json.js +57 -0
  62. package/dest/sequencer/automine/automine_factory.d.ts +56 -0
  63. package/dest/sequencer/automine/automine_factory.d.ts.map +1 -0
  64. package/dest/sequencer/automine/automine_factory.js +85 -0
  65. package/dest/sequencer/automine/automine_sequencer.d.ts +189 -0
  66. package/dest/sequencer/automine/automine_sequencer.d.ts.map +1 -0
  67. package/dest/sequencer/automine/automine_sequencer.js +732 -0
  68. package/dest/sequencer/automine/index.d.ts +3 -0
  69. package/dest/sequencer/automine/index.d.ts.map +1 -0
  70. package/dest/sequencer/automine/index.js +2 -0
  71. package/dest/sequencer/checkpoint_proposal_job.d.ts +169 -0
  72. package/dest/sequencer/checkpoint_proposal_job.d.ts.map +1 -0
  73. package/dest/sequencer/checkpoint_proposal_job.js +1961 -0
  74. package/dest/sequencer/checkpoint_proposal_job_metrics.d.ts +34 -0
  75. package/dest/sequencer/checkpoint_proposal_job_metrics.d.ts.map +1 -0
  76. package/dest/sequencer/checkpoint_proposal_job_metrics.js +72 -0
  77. package/dest/sequencer/checkpoint_voter.d.ts +34 -0
  78. package/dest/sequencer/checkpoint_voter.d.ts.map +1 -0
  79. package/dest/sequencer/checkpoint_voter.js +106 -0
  80. package/dest/sequencer/config.d.ts +8 -0
  81. package/dest/sequencer/config.d.ts.map +1 -0
  82. package/dest/sequencer/config.js +1 -0
  83. package/dest/sequencer/errors.d.ts +11 -0
  84. package/dest/sequencer/errors.d.ts.map +1 -0
  85. package/dest/sequencer/errors.js +15 -0
  86. package/dest/sequencer/events.d.ts +103 -0
  87. package/dest/sequencer/events.d.ts.map +1 -0
  88. package/dest/sequencer/events.js +1 -0
  89. package/dest/sequencer/inbox_bucket_selector.d.ts +88 -0
  90. package/dest/sequencer/inbox_bucket_selector.d.ts.map +1 -0
  91. package/dest/sequencer/inbox_bucket_selector.js +80 -0
  92. package/dest/sequencer/index.d.ts +6 -0
  93. package/dest/sequencer/index.d.ts.map +1 -0
  94. package/dest/sequencer/index.js +5 -0
  95. package/dest/sequencer/metrics.d.ts +75 -0
  96. package/dest/sequencer/metrics.d.ts.map +1 -0
  97. package/dest/sequencer/metrics.js +343 -0
  98. package/dest/sequencer/missing_committee.d.ts +72 -0
  99. package/dest/sequencer/missing_committee.d.ts.map +1 -0
  100. package/dest/sequencer/missing_committee.js +139 -0
  101. package/dest/sequencer/requests_tracker.d.ts +22 -0
  102. package/dest/sequencer/requests_tracker.d.ts.map +1 -0
  103. package/dest/sequencer/requests_tracker.js +33 -0
  104. package/dest/sequencer/sequencer.d.ts +326 -0
  105. package/dest/sequencer/sequencer.d.ts.map +1 -0
  106. package/dest/sequencer/sequencer.js +1495 -0
  107. package/dest/sequencer/types.d.ts +3 -0
  108. package/dest/sequencer/types.d.ts.map +1 -0
  109. package/dest/sequencer/types.js +1 -0
  110. package/dest/sequencer/utils.d.ts +30 -0
  111. package/dest/sequencer/utils.d.ts.map +1 -0
  112. package/dest/sequencer/utils.js +18 -0
  113. package/dest/test/index.d.ts +23 -0
  114. package/dest/test/index.d.ts.map +1 -0
  115. package/dest/test/index.js +6 -0
  116. package/dest/test/mock_checkpoint_builder.d.ts +95 -0
  117. package/dest/test/mock_checkpoint_builder.d.ts.map +1 -0
  118. package/dest/test/mock_checkpoint_builder.js +230 -0
  119. package/dest/test/utils.d.ts +67 -0
  120. package/dest/test/utils.d.ts.map +1 -0
  121. package/dest/test/utils.js +121 -0
  122. package/package.json +118 -0
  123. package/src/client/index.ts +1 -0
  124. package/src/client/sequencer-client.ts +281 -0
  125. package/src/config.ts +309 -0
  126. package/src/global_variable_builder/README.md +44 -0
  127. package/src/global_variable_builder/fee_predictor.ts +176 -0
  128. package/src/global_variable_builder/fee_provider.ts +104 -0
  129. package/src/global_variable_builder/global_builder.ts +68 -0
  130. package/src/global_variable_builder/index.ts +3 -0
  131. package/src/index.ts +15 -0
  132. package/src/publisher/config.ts +220 -0
  133. package/src/publisher/index.ts +8 -0
  134. package/src/publisher/l1_to_l2_messaging.ts +85 -0
  135. package/src/publisher/l1_tx_failed_store/factory.ts +32 -0
  136. package/src/publisher/l1_tx_failed_store/failed_tx_store.ts +166 -0
  137. package/src/publisher/l1_tx_failed_store/file_store_failed_tx_store.ts +47 -0
  138. package/src/publisher/l1_tx_failed_store/index.ts +3 -0
  139. package/src/publisher/sequencer-bundle-simulator.ts +253 -0
  140. package/src/publisher/sequencer-publisher-factory.ts +121 -0
  141. package/src/publisher/sequencer-publisher-metrics.ts +145 -0
  142. package/src/publisher/sequencer-publisher.ts +1719 -0
  143. package/src/publisher/write_json.ts +77 -0
  144. package/src/sequencer/README.md +243 -0
  145. package/src/sequencer/automine/README.md +60 -0
  146. package/src/sequencer/automine/automine_factory.ts +156 -0
  147. package/src/sequencer/automine/automine_sequencer.ts +841 -0
  148. package/src/sequencer/automine/index.ts +6 -0
  149. package/src/sequencer/checkpoint_proposal_job.ts +1889 -0
  150. package/src/sequencer/checkpoint_proposal_job_metrics.ts +128 -0
  151. package/src/sequencer/checkpoint_voter.ts +118 -0
  152. package/src/sequencer/config.ts +9 -0
  153. package/src/sequencer/errors.ts +21 -0
  154. package/src/sequencer/events.ts +93 -0
  155. package/src/sequencer/inbox_bucket_selector.ts +160 -0
  156. package/src/sequencer/index.ts +5 -0
  157. package/src/sequencer/metrics.ts +463 -0
  158. package/src/sequencer/missing_committee.ts +192 -0
  159. package/src/sequencer/requests_tracker.ts +43 -0
  160. package/src/sequencer/sequencer.ts +1401 -0
  161. package/src/sequencer/types.ts +6 -0
  162. package/src/sequencer/utils.ts +42 -0
  163. package/src/test/index.ts +26 -0
  164. package/src/test/mock_checkpoint_builder.ts +324 -0
  165. package/src/test/utils.ts +215 -0
@@ -0,0 +1,254 @@
1
+ import type { BlobClientInterface } from '@aztec-labs/blob-client/client';
2
+ import type { EpochCache } from '@aztec-labs/epoch-cache';
3
+ import type { L1ContractsConfig } from '@aztec-labs/ethereum/config';
4
+ import { type GovernanceProposerContract, type RollupContract, type SimulationOverridesPlan, type SlashingProposerContract } from '@aztec-labs/ethereum/contracts';
5
+ import { type L1FeeAnalysisResult, L1FeeAnalyzer } from '@aztec-labs/ethereum/l1-fee-analysis';
6
+ import { type L1BlobInputs, type L1TxConfig, type L1TxRequest, type L1TxUtils, type TransactionStats } from '@aztec-labs/ethereum/l1-tx-utils';
7
+ import { CheckpointNumber, SlotNumber } from '@aztec-labs/foundation/branded-types';
8
+ import type { Fr } from '@aztec-labs/foundation/curves/bn254';
9
+ import { EthAddress } from '@aztec-labs/foundation/eth-address';
10
+ import { Signature } from '@aztec-labs/foundation/eth-signature';
11
+ import { type Logger } from '@aztec-labs/foundation/log';
12
+ import { type DateProvider } from '@aztec-labs/foundation/timer';
13
+ import { type ProposerSlashAction } from '@aztec-labs/slasher';
14
+ import { CommitteeAttestationsAndSigners, type ValidateCheckpointResult } from '@aztec-labs/stdlib/block';
15
+ import type { Checkpoint } from '@aztec-labs/stdlib/checkpoint';
16
+ import type { SequencerConfig } from '@aztec-labs/stdlib/config';
17
+ import type { CheckpointHeader } from '@aztec-labs/stdlib/rollup';
18
+ import { type TelemetryClient, type Tracer } from '@aztec-labs/telemetry-client';
19
+ import { type TransactionReceipt, type TypedDataDefinition } from 'viem';
20
+ import type { SequencerPublisherConfig } from './config.js';
21
+ import { SequencerPublisherMetrics } from './sequencer-publisher-metrics.js';
22
+ /** Result of a sendRequests call, returned by both sendRequests() and sendRequestsAt(). */
23
+ export type SendRequestsResult = {
24
+ /** The L1 transaction receipt from the bundled multicall. */
25
+ result: {
26
+ receipt: TransactionReceipt;
27
+ };
28
+ /** Actions that expired (past their deadline) before the request was sent. */
29
+ expiredActions: Action[];
30
+ /** Actions that were included in the sent L1 transaction. */
31
+ sentActions: Action[];
32
+ /** Actions whose L1 simulation succeeded (subset of sentActions). */
33
+ successfulActions: Action[];
34
+ /** Actions whose L1 simulation failed (subset of sentActions). */
35
+ failedActions: Action[];
36
+ };
37
+ export declare const Actions: readonly ["invalidate-by-invalid-attestation", "invalidate-by-insufficient-attestations", "prune", "propose", "governance-signal", "vote-offenses", "execute-slash"];
38
+ export type Action = (typeof Actions)[number];
39
+ export declare const compareActions: (a: "execute-slash" | "governance-signal" | "invalidate-by-insufficient-attestations" | "invalidate-by-invalid-attestation" | "propose" | "prune" | "vote-offenses", b: "execute-slash" | "governance-signal" | "invalidate-by-insufficient-attestations" | "invalidate-by-invalid-attestation" | "propose" | "prune" | "vote-offenses") => number;
40
+ export type InvalidateCheckpointRequest = {
41
+ request: L1TxRequest;
42
+ reason: 'invalid-attestation' | 'insufficient-attestations';
43
+ gasUsed: bigint;
44
+ checkpointNumber: CheckpointNumber;
45
+ forcePendingCheckpointNumber: CheckpointNumber;
46
+ /** Archive at the rollback target checkpoint (checkpoint N-1). */
47
+ lastArchive: Fr;
48
+ };
49
+ type EnqueueProposeCheckpointOpts = {
50
+ txTimeoutAt?: Date;
51
+ };
52
+ export interface RequestWithExpiry {
53
+ action: Action;
54
+ request: L1TxRequest;
55
+ lastValidL2Slot: SlotNumber;
56
+ gasConfig?: Pick<L1TxConfig, 'txTimeoutAt' | 'gasLimit'>;
57
+ blobConfig?: L1BlobInputs;
58
+ /** Gas consumed by validateBlobs; stashed for the bundle simulate at send time. */
59
+ blobEvaluationGas?: bigint;
60
+ checkSuccess: (request: L1TxRequest, result?: {
61
+ receipt: TransactionReceipt;
62
+ stats?: TransactionStats;
63
+ errorMsg?: string;
64
+ }) => boolean;
65
+ }
66
+ export declare class SequencerPublisher {
67
+ private config;
68
+ private interrupted;
69
+ private metrics;
70
+ private bundleSimulator;
71
+ epochCache: EpochCache;
72
+ private failedTxStore?;
73
+ /**
74
+ * ABI used to decode raw revert payloads from dropped bundle entries when the original
75
+ * request did not carry an abi (e.g. the propose request). Merges every contract the
76
+ * publisher can route to so any of their custom errors decode against it.
77
+ */
78
+ private readonly revertDecoderAbi;
79
+ protected lastActions: Partial<Record<Action, SlotNumber>>;
80
+ protected log: Logger;
81
+ protected ethereumSlotDuration: bigint;
82
+ protected aztecSlotDuration: bigint;
83
+ private readonly previousL1BlockWaitTimeoutMs;
84
+ private readonly previousL1BlockWaitPollIntervalMs;
85
+ /** Date provider for wall-clock time. */
86
+ private readonly dateProvider;
87
+ private blobClient;
88
+ /** Optional callback to obtain a replacement publisher when the current one fails to send. */
89
+ private getNextPublisher?;
90
+ /** L1 fee analyzer for fisherman mode */
91
+ private l1FeeAnalyzer?;
92
+ /** Fee asset price oracle for computing price modifiers from Uniswap V4 */
93
+ private feeAssetPriceOracle;
94
+ /** Interruptible sleep used by sendRequestsAt to wait until a target timestamp. */
95
+ private readonly interruptibleSleep;
96
+ l1TxUtils: L1TxUtils;
97
+ rollupContract: RollupContract;
98
+ govProposerContract: GovernanceProposerContract;
99
+ slashingProposerContract: SlashingProposerContract | undefined;
100
+ readonly tracer: Tracer;
101
+ protected requests: RequestWithExpiry[];
102
+ constructor(config: Pick<SequencerPublisherConfig, 'fishermanMode' | 'l1TxFailedStore' | 'sequencerPublisherPreviousL1BlockWaitTimeoutMs' | 'sequencerPublisherPreviousL1BlockWaitPollIntervalMs'> & Pick<SequencerConfig, 'governanceProposerForcePayloadVote'> & Pick<L1ContractsConfig, 'ethereumSlotDuration' | 'aztecSlotDuration'> & {
103
+ l1ChainId: number;
104
+ }, deps: {
105
+ telemetry?: TelemetryClient;
106
+ blobClient: BlobClientInterface;
107
+ l1TxUtils: L1TxUtils;
108
+ rollupContract: RollupContract;
109
+ slashingProposerContract: SlashingProposerContract | undefined;
110
+ governanceProposerContract: GovernanceProposerContract;
111
+ epochCache: EpochCache;
112
+ dateProvider: DateProvider;
113
+ metrics: SequencerPublisherMetrics;
114
+ lastActions: Partial<Record<Action, SlotNumber>>;
115
+ log?: Logger;
116
+ getNextPublisher?: (excludeAddresses: EthAddress[]) => Promise<L1TxUtils | undefined>;
117
+ });
118
+ /**
119
+ * Logs the gas-pricing data of a failed L1 transaction at warn — so underpricing is diagnosable
120
+ * from logs even with no failed-tx store configured — and backs the record up to the store when
121
+ * one is. When captureFeeSummary is true, also records the fee data of the already-mined L1
122
+ * blocks in the target slot's inclusion window.
123
+ */
124
+ private backupFailedTx;
125
+ private captureFeeEnvironment;
126
+ /** Computes timing info relative to the L2 slot deadline. */
127
+ private computeTimingInfo;
128
+ /**
129
+ * Builds an id for a synthetic failure record (send-error/timeout) that has no on-chain tx hash.
130
+ * Includes the failure time so each attempt — including retries of the same slot — is stored as its
131
+ * own record rather than overwriting the previous one.
132
+ */
133
+ private failureRecordId;
134
+ getRollupContract(): RollupContract;
135
+ /**
136
+ * Gets the fee asset price modifier from the oracle.
137
+ *
138
+ * @param predictedParentEthPerFeeAssetE12 - Optional predicted parent eth-per-fee-asset (E12).
139
+ * Pipelined proposers should pass the value from the predicted parent fee header so the
140
+ * modifier matches the parent L1 will use when applying it.
141
+ * @returns The fee asset price modifier in basis points, or 0n if the oracle query fails.
142
+ */
143
+ getFeeAssetPriceModifier(predictedParentEthPerFeeAssetE12?: bigint): Promise<bigint>;
144
+ getSenderAddress(): EthAddress;
145
+ /**
146
+ * Gets the L1 fee analyzer instance (only available in fisherman mode)
147
+ */
148
+ getL1FeeAnalyzer(): L1FeeAnalyzer | undefined;
149
+ addRequest(request: RequestWithExpiry): void;
150
+ getCurrentL2Slot(): SlotNumber;
151
+ /**
152
+ * Clears all pending requests without sending them.
153
+ */
154
+ clearPendingRequests(): void;
155
+ /**
156
+ * Analyzes L1 fees for the pending requests without sending them.
157
+ * This is used in fisherman mode to validate fee calculations.
158
+ * @param l2SlotNumber - The L2 slot number for this analysis
159
+ * @param onComplete - Optional callback to invoke when analysis completes (after block is mined)
160
+ * @returns The analysis result (incomplete until block mines), or undefined if no requests
161
+ */
162
+ analyzeL1Fees(l2SlotNumber: SlotNumber, onComplete?: (analysis: L1FeeAnalysisResult) => void): Promise<L1FeeAnalysisResult | undefined>;
163
+ /**
164
+ * Sends all requests that are still valid.
165
+ * @param targetSlot - The target L2 slot for this send. When provided (the production path, via
166
+ * sendRequestsAt), it is threaded into bundleSimulate so the block.timestamp override matches
167
+ * the slot the propose is built for. When omitted, falls back to getCurrentL2Slot() for the
168
+ * AutomineSequencer, which publishes synchronously within the current slot.
169
+ * @returns one of:
170
+ * - A receipt and stats if the tx succeeded
171
+ * - a receipt and errorMsg if it failed on L1
172
+ * - undefined if no valid requests are found OR the tx failed to send.
173
+ */
174
+ sendRequests(targetSlot?: SlotNumber): Promise<SendRequestsResult | undefined>;
175
+ /** Logs entries dropped by bundle simulation as warnings on the publisher's logger. */
176
+ private logDroppedInSim;
177
+ private backupDroppedInSim;
178
+ private forwardWithPublisherRotation;
179
+ /** Backs up an on-chain revert failure to the failed tx store. */
180
+ private backupRevertFailure;
181
+ /** Backs up a send failure (tx never reached chain) to the failed tx store. */
182
+ private backupSendFailure;
183
+ sendRequestsAt(targetSlot: SlotNumber): Promise<SendRequestsResult | undefined>;
184
+ private waitForTargetSlot;
185
+ private callbackBundledTransactions;
186
+ /**
187
+ * @notice Will call `canProposeAt` to make sure that it is possible to propose
188
+ * @param tipArchive - The archive to check
189
+ * @returns The slot and block number if it is possible to propose, undefined otherwise
190
+ */
191
+ canProposeAt(tipArchive: Fr, msgSender: EthAddress, simulationOverridesPlan?: SimulationOverridesPlan): Promise<{
192
+ slot: SlotNumber;
193
+ checkpointNumber: CheckpointNumber;
194
+ timeOfNextL1Slot: bigint;
195
+ } | undefined>;
196
+ /**
197
+ * @notice Will simulate the rollup's `validateHeaderWithAttestations` to make sure the checkpoint header is valid
198
+ * @dev This is a convenience function that can be used by the sequencer to validate a "partial" header,
199
+ * skipping the DA and signature checks. It will throw if the checkpoint header is invalid.
200
+ * @param header - The checkpoint header to validate
201
+ */
202
+ validateCheckpointHeader(header: CheckpointHeader, simulationOverridesPlan?: SimulationOverridesPlan): Promise<void>;
203
+ /**
204
+ * Simulate making a call to invalidate a checkpoint with invalid attestations. Returns undefined if no need to invalidate.
205
+ * @param validationResult - The validation result indicating which checkpoint to invalidate (as returned by the archiver)
206
+ */
207
+ simulateInvalidateCheckpoint(validationResult: ValidateCheckpointResult): Promise<InvalidateCheckpointRequest | undefined>;
208
+ private buildInvalidateCheckpointRequest;
209
+ private enqueueCastSignalHelper;
210
+ /**
211
+ * Enqueues a governance castSignal transaction to cast a signal for a given slot number.
212
+ * @param slotNumber - The slot number to cast a signal for.
213
+ * @returns True if the signal was successfully enqueued, false otherwise.
214
+ */
215
+ enqueueGovernanceCastSignal(governancePayload: EthAddress, slotNumber: SlotNumber, signerAddress: EthAddress, signer: (msg: TypedDataDefinition) => Promise<`0x${string}`>): Promise<boolean>;
216
+ /**
217
+ * Enqueues a `prune()` transaction if the rollup is prunable at the given slot's L1 timestamp.
218
+ * `prune()` is permissionless and idempotent — if the chain is no longer prunable by send time the
219
+ * bundle simulation usually drops the entry; on a node without `eth_simulateV1` the bundle is sent
220
+ * as-is and the prune reverts `Rollup__NothingToPrune` inside `aggregate3(allowFailure: true)`
221
+ * (a failed action, never a whole-tx revert). Used by the failed-sync fallback so a stuck pending
222
+ * chain (e.g. bad data blocking sync) can be wound back to recover.
223
+ * @returns true if a prune request was enqueued, false otherwise.
224
+ */
225
+ enqueuePruneIfPrunable(slotNumber: SlotNumber): Promise<boolean>;
226
+ /** Enqueues all slashing actions as returned by the slasher client. */
227
+ enqueueSlashingActions(actions: ProposerSlashAction[], slotNumber: SlotNumber, signerAddress: EthAddress, signer: (msg: TypedDataDefinition) => Promise<`0x${string}`>): Promise<boolean>;
228
+ /** Enqueues a proposal for a checkpoint on L1 */
229
+ enqueueProposeCheckpoint(checkpoint: Checkpoint, attestationsAndSigners: CommitteeAttestationsAndSigners, attestationsAndSignersSignature: Signature, bucketHint: bigint, opts?: EnqueueProposeCheckpointOpts): Promise<void>;
230
+ enqueueInvalidateCheckpoint(request: InvalidateCheckpointRequest | undefined, opts?: {
231
+ txTimeoutAt?: Date;
232
+ }): void;
233
+ /**
234
+ * Dedup-checked enqueue helper for actions that are simulated at bundle-send time rather
235
+ * than at enqueue time. Validates the (action, slot) dedup key, sets `lastActions`, and
236
+ * enqueues without a gasLimit so the bundle simulate sets the only gasLimit that matters.
237
+ */
238
+ private enqueueRequest;
239
+ /**
240
+ * Calling `interrupt` will cause any in progress call to `publishRollup` to return `false` asap.
241
+ * Be warned, the call may return false even if the tx subsequently gets successfully mined.
242
+ * In practice this shouldn't matter, as we'll only ever be calling `interrupt` when we know it's going to fail.
243
+ * A call to `restart` is required before you can continue publishing.
244
+ */
245
+ interrupt(): void;
246
+ /** Restarts the publisher after calling `interrupt`. */
247
+ restart(): void;
248
+ private prepareProposeTx;
249
+ private addProposeTx;
250
+ /** Returns the timestamp of the next L1 slot boundary after now. */
251
+ private getNextL1SlotTimestamp;
252
+ }
253
+ export {};
254
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLXB1Ymxpc2hlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1Ymxpc2hlci9zZXF1ZW5jZXItcHVibGlzaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFMUUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBRUwsS0FBSywwQkFBMEIsRUFLL0IsS0FBSyxjQUFjLEVBQ25CLEtBQUssdUJBQXVCLEVBQzVCLEtBQUssd0JBQXdCLEVBRTlCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssbUJBQW1CLEVBQUUsYUFBYSxFQUEwQixNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZILE9BQU8sRUFDTCxLQUFLLFlBQVksRUFDakIsS0FBSyxVQUFVLEVBQ2YsS0FBSyxXQUFXLEVBRWhCLEtBQUssU0FBUyxFQUVkLEtBQUssZ0JBQWdCLEVBRXRCLE1BQU0sa0NBQWtDLENBQUM7QUFRMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBR3BGLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDakUsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLDRCQUE0QixDQUFDO0FBR3ZFLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBUyxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxLQUFLLG1CQUFtQixFQUE2QixNQUFNLHFCQUFxQixD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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequencer-publisher.d.ts","sourceRoot":"","sources":["../../src/publisher/sequencer-publisher.ts"],"names":[],"mappings":"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"}