@aztec/sequencer-client 0.0.1-commit.179ed20 → 0.0.1-commit.189eedb3
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.
- package/README.md +281 -21
- package/dest/client/sequencer-client.d.ts +19 -9
- package/dest/client/sequencer-client.d.ts.map +1 -1
- package/dest/client/sequencer-client.js +65 -32
- package/dest/config.d.ts +28 -6
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +76 -37
- package/dest/global_variable_builder/fee_predictor.d.ts +37 -0
- package/dest/global_variable_builder/fee_predictor.d.ts.map +1 -0
- package/dest/global_variable_builder/fee_predictor.js +128 -0
- package/dest/global_variable_builder/fee_provider.d.ts +21 -0
- package/dest/global_variable_builder/fee_provider.d.ts.map +1 -0
- package/dest/global_variable_builder/fee_provider.js +58 -0
- package/dest/global_variable_builder/global_builder.d.ts +14 -16
- package/dest/global_variable_builder/global_builder.d.ts.map +1 -1
- package/dest/global_variable_builder/global_builder.js +16 -50
- package/dest/global_variable_builder/index.d.ts +4 -2
- package/dest/global_variable_builder/index.d.ts.map +1 -1
- package/dest/global_variable_builder/index.js +2 -0
- package/dest/index.d.ts +2 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -1
- package/dest/publisher/config.d.ts +47 -17
- package/dest/publisher/config.d.ts.map +1 -1
- package/dest/publisher/config.js +121 -42
- package/dest/publisher/index.d.ts +2 -1
- package/dest/publisher/index.d.ts.map +1 -1
- package/dest/publisher/l1_tx_failed_store/factory.d.ts +11 -0
- package/dest/publisher/l1_tx_failed_store/factory.d.ts.map +1 -0
- package/dest/publisher/l1_tx_failed_store/factory.js +22 -0
- package/dest/publisher/l1_tx_failed_store/failed_tx_store.d.ts +58 -0
- package/dest/publisher/l1_tx_failed_store/failed_tx_store.d.ts.map +1 -0
- package/dest/publisher/l1_tx_failed_store/failed_tx_store.js +1 -0
- package/dest/publisher/l1_tx_failed_store/file_store_failed_tx_store.d.ts +15 -0
- package/dest/publisher/l1_tx_failed_store/file_store_failed_tx_store.d.ts.map +1 -0
- package/dest/publisher/l1_tx_failed_store/file_store_failed_tx_store.js +34 -0
- package/dest/publisher/l1_tx_failed_store/index.d.ts +4 -0
- package/dest/publisher/l1_tx_failed_store/index.d.ts.map +1 -0
- package/dest/publisher/l1_tx_failed_store/index.js +2 -0
- package/dest/publisher/sequencer-bundle-simulator.d.ts +96 -0
- package/dest/publisher/sequencer-bundle-simulator.d.ts.map +1 -0
- package/dest/publisher/sequencer-bundle-simulator.js +198 -0
- package/dest/publisher/sequencer-publisher-factory.d.ts +11 -5
- package/dest/publisher/sequencer-publisher-factory.d.ts.map +1 -1
- package/dest/publisher/sequencer-publisher-factory.js +27 -3
- package/dest/publisher/sequencer-publisher.d.ts +94 -67
- package/dest/publisher/sequencer-publisher.d.ts.map +1 -1
- package/dest/publisher/sequencer-publisher.js +442 -378
- package/dest/sequencer/automine/automine_factory.d.ts +54 -0
- package/dest/sequencer/automine/automine_factory.d.ts.map +1 -0
- package/dest/sequencer/automine/automine_factory.js +84 -0
- package/dest/sequencer/automine/automine_sequencer.d.ts +151 -0
- package/dest/sequencer/automine/automine_sequencer.d.ts.map +1 -0
- package/dest/sequencer/automine/automine_sequencer.js +509 -0
- package/dest/sequencer/chain_state_overrides.d.ts +61 -0
- package/dest/sequencer/chain_state_overrides.d.ts.map +1 -0
- package/dest/sequencer/chain_state_overrides.js +98 -0
- package/dest/sequencer/checkpoint_proposal_job.d.ts +65 -11
- package/dest/sequencer/checkpoint_proposal_job.d.ts.map +1 -1
- package/dest/sequencer/checkpoint_proposal_job.js +850 -249
- package/dest/sequencer/checkpoint_proposal_job_metrics.d.ts +34 -0
- package/dest/sequencer/checkpoint_proposal_job_metrics.d.ts.map +1 -0
- package/dest/sequencer/checkpoint_proposal_job_metrics.js +72 -0
- package/dest/sequencer/checkpoint_voter.d.ts +1 -2
- package/dest/sequencer/checkpoint_voter.d.ts.map +1 -1
- package/dest/sequencer/checkpoint_voter.js +2 -5
- package/dest/sequencer/events.d.ts +48 -2
- package/dest/sequencer/events.d.ts.map +1 -1
- package/dest/sequencer/index.d.ts +3 -1
- package/dest/sequencer/index.d.ts.map +1 -1
- package/dest/sequencer/index.js +2 -0
- package/dest/sequencer/metrics.d.ts +23 -8
- package/dest/sequencer/metrics.d.ts.map +1 -1
- package/dest/sequencer/metrics.js +117 -21
- package/dest/sequencer/sequencer.d.ts +85 -22
- package/dest/sequencer/sequencer.d.ts.map +1 -1
- package/dest/sequencer/sequencer.js +380 -137
- package/dest/sequencer/timetable.d.ts +14 -6
- package/dest/sequencer/timetable.d.ts.map +1 -1
- package/dest/sequencer/timetable.js +47 -46
- package/dest/sequencer/types.d.ts +2 -2
- package/dest/sequencer/types.d.ts.map +1 -1
- package/dest/test/index.d.ts +3 -5
- package/dest/test/index.d.ts.map +1 -1
- package/dest/test/mock_checkpoint_builder.d.ts +11 -11
- package/dest/test/mock_checkpoint_builder.d.ts.map +1 -1
- package/dest/test/mock_checkpoint_builder.js +45 -34
- package/dest/test/utils.d.ts +3 -3
- package/dest/test/utils.d.ts.map +1 -1
- package/dest/test/utils.js +10 -8
- package/package.json +27 -28
- package/src/client/sequencer-client.ts +91 -35
- package/src/config.ts +98 -46
- package/src/global_variable_builder/README.md +44 -0
- package/src/global_variable_builder/fee_predictor.ts +172 -0
- package/src/global_variable_builder/fee_provider.ts +75 -0
- package/src/global_variable_builder/global_builder.ts +26 -63
- package/src/global_variable_builder/index.ts +3 -1
- package/src/index.ts +10 -1
- package/src/publisher/config.ts +157 -45
- package/src/publisher/index.ts +3 -0
- package/src/publisher/l1_tx_failed_store/factory.ts +32 -0
- package/src/publisher/l1_tx_failed_store/failed_tx_store.ts +57 -0
- package/src/publisher/l1_tx_failed_store/file_store_failed_tx_store.ts +46 -0
- package/src/publisher/l1_tx_failed_store/index.ts +3 -0
- package/src/publisher/sequencer-bundle-simulator.ts +254 -0
- package/src/publisher/sequencer-publisher-factory.ts +38 -9
- package/src/publisher/sequencer-publisher.ts +535 -469
- package/src/sequencer/README.md +162 -450
- package/src/sequencer/automine/README.md +46 -0
- package/src/sequencer/automine/automine_factory.ts +145 -0
- package/src/sequencer/automine/automine_sequencer.ts +595 -0
- package/src/sequencer/chain_state_overrides.ts +162 -0
- package/src/sequencer/checkpoint_proposal_job.ts +1027 -268
- package/src/sequencer/checkpoint_proposal_job_metrics.ts +128 -0
- package/src/sequencer/checkpoint_voter.ts +1 -12
- package/src/sequencer/events.ts +51 -2
- package/src/sequencer/index.ts +2 -0
- package/src/sequencer/metrics.ts +132 -25
- package/src/sequencer/sequencer.ts +470 -156
- package/src/sequencer/timetable.ts +62 -56
- package/src/sequencer/types.ts +1 -1
- package/src/test/index.ts +2 -4
- package/src/test/mock_checkpoint_builder.ts +63 -49
- package/src/test/utils.ts +31 -10
|
@@ -1,42 +1,61 @@
|
|
|
1
1
|
import type { BlobClientInterface } from '@aztec/blob-client/client';
|
|
2
2
|
import type { EpochCache } from '@aztec/epoch-cache';
|
|
3
3
|
import type { L1ContractsConfig } from '@aztec/ethereum/config';
|
|
4
|
-
import { type
|
|
4
|
+
import { type GovernanceProposerContract, type RollupContract, type SimulationOverridesPlan, type SlashingProposerContract } from '@aztec/ethereum/contracts';
|
|
5
5
|
import { type L1FeeAnalysisResult, L1FeeAnalyzer } from '@aztec/ethereum/l1-fee-analysis';
|
|
6
|
-
import { type L1BlobInputs, type L1TxConfig, type L1TxRequest, type TransactionStats } from '@aztec/ethereum/l1-tx-utils';
|
|
7
|
-
import type { L1TxUtilsWithBlobs } from '@aztec/ethereum/l1-tx-utils-with-blobs';
|
|
8
|
-
import { FormattedViemError } from '@aztec/ethereum/utils';
|
|
6
|
+
import { type L1BlobInputs, type L1TxConfig, type L1TxRequest, type L1TxUtils, type TransactionStats } from '@aztec/ethereum/l1-tx-utils';
|
|
9
7
|
import { CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
10
8
|
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
11
9
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
12
10
|
import { Signature } from '@aztec/foundation/eth-signature';
|
|
13
11
|
import { type Logger } from '@aztec/foundation/log';
|
|
14
|
-
import { DateProvider } from '@aztec/foundation/timer';
|
|
12
|
+
import { type DateProvider } from '@aztec/foundation/timer';
|
|
15
13
|
import { type ProposerSlashAction } from '@aztec/slasher';
|
|
16
14
|
import { CommitteeAttestationsAndSigners, type ValidateCheckpointResult } from '@aztec/stdlib/block';
|
|
17
15
|
import type { Checkpoint } from '@aztec/stdlib/checkpoint';
|
|
18
|
-
import { SlashFactoryContract } from '@aztec/stdlib/l1-contracts';
|
|
19
16
|
import type { CheckpointHeader } from '@aztec/stdlib/rollup';
|
|
20
17
|
import { type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
|
|
21
18
|
import { type TransactionReceipt, type TypedDataDefinition } from 'viem';
|
|
22
|
-
import type {
|
|
19
|
+
import type { SequencerPublisherConfig } from './config.js';
|
|
23
20
|
import { SequencerPublisherMetrics } from './sequencer-publisher-metrics.js';
|
|
24
|
-
|
|
21
|
+
/** Result of a sendRequests call, returned by both sendRequests() and sendRequestsAt(). */
|
|
22
|
+
export type SendRequestsResult = {
|
|
23
|
+
/** The L1 transaction receipt from the bundled multicall. */
|
|
24
|
+
result: {
|
|
25
|
+
receipt: TransactionReceipt;
|
|
26
|
+
};
|
|
27
|
+
/** Actions that expired (past their deadline) before the request was sent. */
|
|
28
|
+
expiredActions: Action[];
|
|
29
|
+
/** Actions that were included in the sent L1 transaction. */
|
|
30
|
+
sentActions: Action[];
|
|
31
|
+
/** Actions whose L1 simulation succeeded (subset of sentActions). */
|
|
32
|
+
successfulActions: Action[];
|
|
33
|
+
/** Actions whose L1 simulation failed (subset of sentActions). */
|
|
34
|
+
failedActions: Action[];
|
|
35
|
+
};
|
|
36
|
+
export declare const Actions: readonly ["invalidate-by-invalid-attestation", "invalidate-by-insufficient-attestations", "propose", "governance-signal", "vote-offenses", "execute-slash"];
|
|
25
37
|
export type Action = (typeof Actions)[number];
|
|
26
|
-
export declare const compareActions: (a: "
|
|
38
|
+
export declare const compareActions: (a: "execute-slash" | "governance-signal" | "invalidate-by-insufficient-attestations" | "invalidate-by-invalid-attestation" | "propose" | "vote-offenses", b: "execute-slash" | "governance-signal" | "invalidate-by-insufficient-attestations" | "invalidate-by-invalid-attestation" | "propose" | "vote-offenses") => number;
|
|
27
39
|
export type InvalidateCheckpointRequest = {
|
|
28
40
|
request: L1TxRequest;
|
|
29
41
|
reason: 'invalid-attestation' | 'insufficient-attestations';
|
|
30
42
|
gasUsed: bigint;
|
|
31
43
|
checkpointNumber: CheckpointNumber;
|
|
32
44
|
forcePendingCheckpointNumber: CheckpointNumber;
|
|
45
|
+
/** Archive at the rollback target checkpoint (checkpoint N-1). */
|
|
46
|
+
lastArchive: Fr;
|
|
33
47
|
};
|
|
34
|
-
|
|
48
|
+
type EnqueueProposeCheckpointOpts = {
|
|
49
|
+
txTimeoutAt?: Date;
|
|
50
|
+
};
|
|
51
|
+
export interface RequestWithExpiry {
|
|
35
52
|
action: Action;
|
|
36
53
|
request: L1TxRequest;
|
|
37
54
|
lastValidL2Slot: SlotNumber;
|
|
38
55
|
gasConfig?: Pick<L1TxConfig, 'txTimeoutAt' | 'gasLimit'>;
|
|
39
56
|
blobConfig?: L1BlobInputs;
|
|
57
|
+
/** Gas consumed by validateBlobs; stashed for the bundle simulate at send time. */
|
|
58
|
+
blobEvaluationGas?: bigint;
|
|
40
59
|
checkSuccess: (request: L1TxRequest, result?: {
|
|
41
60
|
receipt: TransactionReceipt;
|
|
42
61
|
stats?: TransactionStats;
|
|
@@ -47,52 +66,72 @@ export declare class SequencerPublisher {
|
|
|
47
66
|
private config;
|
|
48
67
|
private interrupted;
|
|
49
68
|
private metrics;
|
|
69
|
+
private bundleSimulator;
|
|
50
70
|
epochCache: EpochCache;
|
|
51
|
-
|
|
52
|
-
|
|
71
|
+
private failedTxStore?;
|
|
72
|
+
/**
|
|
73
|
+
* ABI used to decode raw revert payloads from dropped bundle entries when the original
|
|
74
|
+
* request did not carry an abi (e.g. the propose request). Merges every contract the
|
|
75
|
+
* publisher can route to so any of their custom errors decode against it.
|
|
76
|
+
*/
|
|
77
|
+
private readonly revertDecoderAbi;
|
|
53
78
|
protected lastActions: Partial<Record<Action, SlotNumber>>;
|
|
54
|
-
private isPayloadEmptyCache;
|
|
55
79
|
protected log: Logger;
|
|
56
80
|
protected ethereumSlotDuration: bigint;
|
|
81
|
+
protected aztecSlotDuration: bigint;
|
|
82
|
+
/** Date provider for wall-clock time. */
|
|
83
|
+
private readonly dateProvider;
|
|
57
84
|
private blobClient;
|
|
58
|
-
/**
|
|
59
|
-
private
|
|
85
|
+
/** Optional callback to obtain a replacement publisher when the current one fails to send. */
|
|
86
|
+
private getNextPublisher?;
|
|
60
87
|
/** L1 fee analyzer for fisherman mode */
|
|
61
88
|
private l1FeeAnalyzer?;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
89
|
+
/** Fee asset price oracle for computing price modifiers from Uniswap V4 */
|
|
90
|
+
private feeAssetPriceOracle;
|
|
91
|
+
/** Interruptible sleep used by sendRequestsAt to wait until a target timestamp. */
|
|
92
|
+
private readonly interruptibleSleep;
|
|
93
|
+
l1TxUtils: L1TxUtils;
|
|
65
94
|
rollupContract: RollupContract;
|
|
66
95
|
govProposerContract: GovernanceProposerContract;
|
|
67
|
-
slashingProposerContract:
|
|
68
|
-
slashFactoryContract: SlashFactoryContract;
|
|
96
|
+
slashingProposerContract: SlashingProposerContract | undefined;
|
|
69
97
|
readonly tracer: Tracer;
|
|
70
98
|
protected requests: RequestWithExpiry[];
|
|
71
|
-
constructor(config:
|
|
99
|
+
constructor(config: Pick<SequencerPublisherConfig, 'fishermanMode' | 'l1TxFailedStore'> & Pick<L1ContractsConfig, 'ethereumSlotDuration' | 'aztecSlotDuration'> & {
|
|
100
|
+
l1ChainId: number;
|
|
101
|
+
}, deps: {
|
|
72
102
|
telemetry?: TelemetryClient;
|
|
73
103
|
blobClient: BlobClientInterface;
|
|
74
|
-
l1TxUtils:
|
|
104
|
+
l1TxUtils: L1TxUtils;
|
|
75
105
|
rollupContract: RollupContract;
|
|
76
|
-
slashingProposerContract:
|
|
106
|
+
slashingProposerContract: SlashingProposerContract | undefined;
|
|
77
107
|
governanceProposerContract: GovernanceProposerContract;
|
|
78
|
-
slashFactoryContract: SlashFactoryContract;
|
|
79
108
|
epochCache: EpochCache;
|
|
80
109
|
dateProvider: DateProvider;
|
|
81
110
|
metrics: SequencerPublisherMetrics;
|
|
82
111
|
lastActions: Partial<Record<Action, SlotNumber>>;
|
|
83
112
|
log?: Logger;
|
|
113
|
+
getNextPublisher?: (excludeAddresses: EthAddress[]) => Promise<L1TxUtils | undefined>;
|
|
84
114
|
});
|
|
115
|
+
/**
|
|
116
|
+
* Backs up a failed L1 transaction to the configured store for debugging.
|
|
117
|
+
* Does nothing if no store is configured.
|
|
118
|
+
*/
|
|
119
|
+
private backupFailedTx;
|
|
85
120
|
getRollupContract(): RollupContract;
|
|
121
|
+
/**
|
|
122
|
+
* Gets the fee asset price modifier from the oracle.
|
|
123
|
+
*
|
|
124
|
+
* @param predictedParentEthPerFeeAssetE12 - Optional predicted parent eth-per-fee-asset (E12).
|
|
125
|
+
* Pipelined proposers should pass the value from the predicted parent fee header so the
|
|
126
|
+
* modifier matches the parent L1 will use when applying it.
|
|
127
|
+
* @returns The fee asset price modifier in basis points, or 0n if the oracle query fails.
|
|
128
|
+
*/
|
|
129
|
+
getFeeAssetPriceModifier(predictedParentEthPerFeeAssetE12?: bigint): Promise<bigint>;
|
|
86
130
|
getSenderAddress(): EthAddress;
|
|
87
131
|
/**
|
|
88
132
|
* Gets the L1 fee analyzer instance (only available in fisherman mode)
|
|
89
133
|
*/
|
|
90
134
|
getL1FeeAnalyzer(): L1FeeAnalyzer | undefined;
|
|
91
|
-
/**
|
|
92
|
-
* Sets the proposer address to use for simulations in fisherman mode.
|
|
93
|
-
* @param proposerAddress - The actual proposer's address to use for balance lookups in simulations
|
|
94
|
-
*/
|
|
95
|
-
setProposerAddressForSimulation(proposerAddress: EthAddress | undefined): void;
|
|
96
135
|
addRequest(request: RequestWithExpiry): void;
|
|
97
136
|
getCurrentL2Slot(): SlotNumber;
|
|
98
137
|
/**
|
|
@@ -109,35 +148,28 @@ export declare class SequencerPublisher {
|
|
|
109
148
|
analyzeL1Fees(l2SlotNumber: SlotNumber, onComplete?: (analysis: L1FeeAnalysisResult) => void): Promise<L1FeeAnalysisResult | undefined>;
|
|
110
149
|
/**
|
|
111
150
|
* Sends all requests that are still valid.
|
|
151
|
+
* @param targetSlot - The target L2 slot for this send. When provided (the production path, via
|
|
152
|
+
* sendRequestsAt), it is threaded into bundleSimulate so the block.timestamp override matches
|
|
153
|
+
* the slot the propose is built for. When omitted, falls back to getCurrentL2Slot() for the
|
|
154
|
+
* AutomineSequencer, which publishes synchronously within the current slot.
|
|
112
155
|
* @returns one of:
|
|
113
156
|
* - A receipt and stats if the tx succeeded
|
|
114
157
|
* - a receipt and errorMsg if it failed on L1
|
|
115
158
|
* - undefined if no valid requests are found OR the tx failed to send.
|
|
116
159
|
*/
|
|
117
|
-
sendRequests(): Promise<
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
stats?: undefined;
|
|
124
|
-
receipt: TransactionReceipt<bigint, number, "reverted" | "success", import("viem").TransactionType>;
|
|
125
|
-
errorMsg: string | undefined;
|
|
126
|
-
};
|
|
127
|
-
expiredActions: ("create-empire-payload" | "empire-slashing-signal" | "execute-empire-payload" | "execute-slash" | "governance-signal" | "invalidate-by-insufficient-attestations" | "invalidate-by-invalid-attestation" | "propose" | "vote-offenses")[];
|
|
128
|
-
sentActions: ("create-empire-payload" | "empire-slashing-signal" | "execute-empire-payload" | "execute-slash" | "governance-signal" | "invalidate-by-insufficient-attestations" | "invalidate-by-invalid-attestation" | "propose" | "vote-offenses")[];
|
|
129
|
-
successfulActions: ("create-empire-payload" | "empire-slashing-signal" | "execute-empire-payload" | "execute-slash" | "governance-signal" | "invalidate-by-insufficient-attestations" | "invalidate-by-invalid-attestation" | "propose" | "vote-offenses")[];
|
|
130
|
-
failedActions: ("create-empire-payload" | "empire-slashing-signal" | "execute-empire-payload" | "execute-slash" | "governance-signal" | "invalidate-by-insufficient-attestations" | "invalidate-by-invalid-attestation" | "propose" | "vote-offenses")[];
|
|
131
|
-
} | undefined>;
|
|
160
|
+
sendRequests(targetSlot?: SlotNumber): Promise<SendRequestsResult | undefined>;
|
|
161
|
+
/** Logs entries dropped by bundle simulation as warnings on the publisher's logger. */
|
|
162
|
+
private logDroppedInSim;
|
|
163
|
+
private backupDroppedInSim;
|
|
164
|
+
private forwardWithPublisherRotation;
|
|
165
|
+
sendRequestsAt(targetSlot: SlotNumber): Promise<SendRequestsResult | undefined>;
|
|
132
166
|
private callbackBundledTransactions;
|
|
133
167
|
/**
|
|
134
|
-
* @notice Will call `
|
|
168
|
+
* @notice Will call `canProposeAt` to make sure that it is possible to propose
|
|
135
169
|
* @param tipArchive - The archive to check
|
|
136
170
|
* @returns The slot and block number if it is possible to propose, undefined otherwise
|
|
137
171
|
*/
|
|
138
|
-
|
|
139
|
-
forcePendingCheckpointNumber?: CheckpointNumber;
|
|
140
|
-
}): Promise<{
|
|
172
|
+
canProposeAt(tipArchive: Fr, msgSender: EthAddress, simulationOverridesPlan?: SimulationOverridesPlan): Promise<{
|
|
141
173
|
slot: SlotNumber;
|
|
142
174
|
checkpointNumber: CheckpointNumber;
|
|
143
175
|
timeOfNextL1Slot: bigint;
|
|
@@ -148,39 +180,33 @@ export declare class SequencerPublisher {
|
|
|
148
180
|
* It will throw if the block header is invalid.
|
|
149
181
|
* @param header - The block header to validate
|
|
150
182
|
*/
|
|
151
|
-
validateBlockHeader(header: CheckpointHeader,
|
|
152
|
-
forcePendingCheckpointNumber: CheckpointNumber | undefined;
|
|
153
|
-
}): Promise<void>;
|
|
183
|
+
validateBlockHeader(header: CheckpointHeader, simulationOverridesPlan?: SimulationOverridesPlan): Promise<void>;
|
|
154
184
|
/**
|
|
155
185
|
* Simulate making a call to invalidate a checkpoint with invalid attestations. Returns undefined if no need to invalidate.
|
|
156
186
|
* @param validationResult - The validation result indicating which checkpoint to invalidate (as returned by the archiver)
|
|
157
187
|
*/
|
|
158
188
|
simulateInvalidateCheckpoint(validationResult: ValidateCheckpointResult): Promise<InvalidateCheckpointRequest | undefined>;
|
|
159
189
|
private buildInvalidateCheckpointRequest;
|
|
160
|
-
/** Simulates `propose` to make sure that the checkpoint is valid for submission */
|
|
161
|
-
validateCheckpointForSubmission(checkpoint: Checkpoint, attestationsAndSigners: CommitteeAttestationsAndSigners, attestationsAndSignersSignature: Signature, options: {
|
|
162
|
-
forcePendingCheckpointNumber?: CheckpointNumber;
|
|
163
|
-
}): Promise<bigint>;
|
|
164
190
|
private enqueueCastSignalHelper;
|
|
165
|
-
private isPayloadEmpty;
|
|
166
191
|
/**
|
|
167
192
|
* Enqueues a governance castSignal transaction to cast a signal for a given slot number.
|
|
168
193
|
* @param slotNumber - The slot number to cast a signal for.
|
|
169
|
-
* @param timestamp - The timestamp of the slot to cast a signal for.
|
|
170
194
|
* @returns True if the signal was successfully enqueued, false otherwise.
|
|
171
195
|
*/
|
|
172
|
-
enqueueGovernanceCastSignal(governancePayload: EthAddress, slotNumber: SlotNumber,
|
|
196
|
+
enqueueGovernanceCastSignal(governancePayload: EthAddress, slotNumber: SlotNumber, signerAddress: EthAddress, signer: (msg: TypedDataDefinition) => Promise<`0x${string}`>): Promise<boolean>;
|
|
173
197
|
/** Enqueues all slashing actions as returned by the slasher client. */
|
|
174
|
-
enqueueSlashingActions(actions: ProposerSlashAction[], slotNumber: SlotNumber,
|
|
175
|
-
/**
|
|
176
|
-
enqueueProposeCheckpoint(checkpoint: Checkpoint, attestationsAndSigners: CommitteeAttestationsAndSigners, attestationsAndSignersSignature: Signature, opts?:
|
|
177
|
-
txTimeoutAt?: Date;
|
|
178
|
-
forcePendingCheckpointNumber?: CheckpointNumber;
|
|
179
|
-
}): Promise<void>;
|
|
198
|
+
enqueueSlashingActions(actions: ProposerSlashAction[], slotNumber: SlotNumber, signerAddress: EthAddress, signer: (msg: TypedDataDefinition) => Promise<`0x${string}`>): Promise<boolean>;
|
|
199
|
+
/** Enqueues a proposal for a checkpoint on L1 */
|
|
200
|
+
enqueueProposeCheckpoint(checkpoint: Checkpoint, attestationsAndSigners: CommitteeAttestationsAndSigners, attestationsAndSignersSignature: Signature, opts?: EnqueueProposeCheckpointOpts): Promise<void>;
|
|
180
201
|
enqueueInvalidateCheckpoint(request: InvalidateCheckpointRequest | undefined, opts?: {
|
|
181
202
|
txTimeoutAt?: Date;
|
|
182
203
|
}): void;
|
|
183
|
-
|
|
204
|
+
/**
|
|
205
|
+
* Dedup-checked enqueue helper for actions that are simulated at bundle-send time rather
|
|
206
|
+
* than at enqueue time. Validates the (action, slot) dedup key, sets `lastActions`, and
|
|
207
|
+
* enqueues without a gasLimit so the bundle simulate sets the only gasLimit that matters.
|
|
208
|
+
*/
|
|
209
|
+
private enqueueRequest;
|
|
184
210
|
/**
|
|
185
211
|
* Calling `interrupt` will cause any in progress call to `publishRollup` to return `false` asap.
|
|
186
212
|
* Be warned, the call may return false even if the tx subsequently gets successfully mined.
|
|
@@ -191,8 +217,9 @@ export declare class SequencerPublisher {
|
|
|
191
217
|
/** Restarts the publisher after calling `interrupt`. */
|
|
192
218
|
restart(): void;
|
|
193
219
|
private prepareProposeTx;
|
|
194
|
-
private simulateProposeTx;
|
|
195
220
|
private addProposeTx;
|
|
221
|
+
/** Returns the timestamp of the next L1 slot boundary after now. */
|
|
222
|
+
private getNextL1SlotTimestamp;
|
|
196
223
|
}
|
|
197
224
|
export {};
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLXB1Ymxpc2hlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1Ymxpc2hlci9zZXF1ZW5jZXItcHVibGlzaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFckUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRSxPQUFPLEVBRUwsS0FBSywwQkFBMEIsRUFJL0IsS0FBSyxjQUFjLEVBQ25CLEtBQUssdUJBQXVCLEVBQzVCLEtBQUssd0JBQXdCLEVBRTlCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLEtBQUssbUJBQW1CLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUYsT0FBTyxFQUNMLEtBQUssWUFBWSxFQUNqQixLQUFLLFVBQVUsRUFDZixLQUFLLFdBQVcsRUFDaEIsS0FBSyxTQUFTLEVBRWQsS0FBSyxnQkFBZ0IsRUFFdEIsTUFBTSw2QkFBNkIsQ0FBQztBQVFyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHL0UsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFHbEUsT0FBTyxFQUFFLEtBQUssWUFBWSxFQUFTLE1BQU0seUJBQXlCLENBQUM7QUFFbkUsT0FBTyxFQUFFLEtBQUssbUJBQW1CLEVBQTZCLE1BQU0sZ0JBQWdCLENB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequencer-publisher.d.ts","sourceRoot":"","sources":["../../src/publisher/sequencer-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,
|
|
1
|
+
{"version":3,"file":"sequencer-publisher.d.ts","sourceRoot":"","sources":["../../src/publisher/sequencer-publisher.ts"],"names":[],"mappings":"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"}
|