@aztec/sequencer-client 0.0.1-commit.fce3e4f → 0.0.1-commit.ff7989d6c
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/dest/client/sequencer-client.d.ts +21 -16
- package/dest/client/sequencer-client.d.ts.map +1 -1
- package/dest/client/sequencer-client.js +45 -27
- package/dest/config.d.ts +14 -8
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +83 -35
- package/dest/global_variable_builder/global_builder.d.ts +20 -13
- package/dest/global_variable_builder/global_builder.d.ts.map +1 -1
- package/dest/global_variable_builder/global_builder.js +51 -41
- package/dest/index.d.ts +2 -3
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -2
- package/dest/publisher/config.d.ts +37 -20
- package/dest/publisher/config.d.ts.map +1 -1
- package/dest/publisher/config.js +104 -39
- package/dest/publisher/sequencer-publisher-factory.d.ts +15 -6
- package/dest/publisher/sequencer-publisher-factory.d.ts.map +1 -1
- package/dest/publisher/sequencer-publisher-factory.js +14 -3
- package/dest/publisher/sequencer-publisher-metrics.d.ts +3 -3
- package/dest/publisher/sequencer-publisher-metrics.d.ts.map +1 -1
- package/dest/publisher/sequencer-publisher-metrics.js +23 -86
- package/dest/publisher/sequencer-publisher.d.ts +63 -47
- package/dest/publisher/sequencer-publisher.d.ts.map +1 -1
- package/dest/publisher/sequencer-publisher.js +630 -137
- package/dest/sequencer/checkpoint_proposal_job.d.ts +102 -0
- package/dest/sequencer/checkpoint_proposal_job.d.ts.map +1 -0
- package/dest/sequencer/checkpoint_proposal_job.js +1213 -0
- package/dest/sequencer/checkpoint_voter.d.ts +35 -0
- package/dest/sequencer/checkpoint_voter.d.ts.map +1 -0
- package/dest/sequencer/checkpoint_voter.js +109 -0
- package/dest/sequencer/config.d.ts +3 -2
- package/dest/sequencer/config.d.ts.map +1 -1
- package/dest/sequencer/events.d.ts +46 -0
- package/dest/sequencer/events.d.ts.map +1 -0
- package/dest/sequencer/events.js +1 -0
- package/dest/sequencer/index.d.ts +4 -2
- package/dest/sequencer/index.d.ts.map +1 -1
- package/dest/sequencer/index.js +3 -1
- package/dest/sequencer/metrics.d.ts +38 -6
- package/dest/sequencer/metrics.d.ts.map +1 -1
- package/dest/sequencer/metrics.js +216 -72
- package/dest/sequencer/sequencer.d.ts +119 -133
- package/dest/sequencer/sequencer.d.ts.map +1 -1
- package/dest/sequencer/sequencer.js +717 -625
- package/dest/sequencer/timetable.d.ts +51 -14
- package/dest/sequencer/timetable.d.ts.map +1 -1
- package/dest/sequencer/timetable.js +145 -59
- package/dest/sequencer/types.d.ts +3 -0
- package/dest/sequencer/types.d.ts.map +1 -0
- package/dest/sequencer/types.js +1 -0
- package/dest/sequencer/utils.d.ts +14 -8
- package/dest/sequencer/utils.d.ts.map +1 -1
- package/dest/sequencer/utils.js +7 -4
- package/dest/test/index.d.ts +6 -7
- package/dest/test/index.d.ts.map +1 -1
- package/dest/test/mock_checkpoint_builder.d.ts +97 -0
- package/dest/test/mock_checkpoint_builder.d.ts.map +1 -0
- package/dest/test/mock_checkpoint_builder.js +222 -0
- package/dest/test/utils.d.ts +53 -0
- package/dest/test/utils.d.ts.map +1 -0
- package/dest/test/utils.js +104 -0
- package/package.json +32 -30
- package/src/client/sequencer-client.ts +54 -47
- package/src/config.ts +95 -44
- package/src/global_variable_builder/global_builder.ts +65 -61
- package/src/index.ts +1 -7
- package/src/publisher/config.ts +122 -50
- package/src/publisher/sequencer-publisher-factory.ts +28 -10
- package/src/publisher/sequencer-publisher-metrics.ts +19 -71
- package/src/publisher/sequencer-publisher.ts +350 -176
- package/src/sequencer/README.md +531 -0
- package/src/sequencer/checkpoint_proposal_job.ts +914 -0
- package/src/sequencer/checkpoint_voter.ts +130 -0
- package/src/sequencer/config.ts +2 -1
- package/src/sequencer/events.ts +27 -0
- package/src/sequencer/index.ts +3 -1
- package/src/sequencer/metrics.ts +268 -82
- package/src/sequencer/sequencer.ts +464 -831
- package/src/sequencer/timetable.ts +175 -80
- package/src/sequencer/types.ts +6 -0
- package/src/sequencer/utils.ts +18 -9
- package/src/test/index.ts +5 -6
- package/src/test/mock_checkpoint_builder.ts +320 -0
- package/src/test/utils.ts +167 -0
- package/dest/sequencer/block_builder.d.ts +0 -27
- package/dest/sequencer/block_builder.d.ts.map +0 -1
- package/dest/sequencer/block_builder.js +0 -134
- package/dest/tx_validator/nullifier_cache.d.ts +0 -14
- package/dest/tx_validator/nullifier_cache.d.ts.map +0 -1
- package/dest/tx_validator/nullifier_cache.js +0 -24
- package/dest/tx_validator/tx_validator_factory.d.ts +0 -17
- package/dest/tx_validator/tx_validator_factory.d.ts.map +0 -1
- package/dest/tx_validator/tx_validator_factory.js +0 -53
- package/src/sequencer/block_builder.ts +0 -222
- package/src/tx_validator/nullifier_cache.ts +0 -30
- package/src/tx_validator/tx_validator_factory.ts +0 -132
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createLogger } from '@aztec/aztec.js/log';
|
|
2
|
-
import { Attributes, Metrics,
|
|
2
|
+
import { Attributes, Metrics, createUpDownCounterWithDefault } from '@aztec/telemetry-client';
|
|
3
3
|
import { formatEther } from 'viem/utils';
|
|
4
4
|
export class SequencerPublisherMetrics {
|
|
5
5
|
logger;
|
|
@@ -20,91 +20,28 @@ export class SequencerPublisherMetrics {
|
|
|
20
20
|
constructor(client, name = 'SequencerPublisher', logger = createLogger('sequencer:publisher:metrics')){
|
|
21
21
|
this.logger = logger;
|
|
22
22
|
const meter = client.getMeter(name);
|
|
23
|
-
this.gasPrice = meter.createHistogram(Metrics.L1_PUBLISHER_GAS_PRICE
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
this.
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
this.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
});
|
|
46
|
-
this.txCalldataGas = meter.createHistogram(Metrics.L1_PUBLISHER_TX_CALLDATA_GAS, {
|
|
47
|
-
description: 'The gas consumed by the calldata in transactions',
|
|
48
|
-
unit: 'gas',
|
|
49
|
-
valueType: ValueType.INT
|
|
50
|
-
});
|
|
51
|
-
this.txBlobDataGasUsed = meter.createHistogram(Metrics.L1_PUBLISHER_TX_BLOBDATA_GAS_USED, {
|
|
52
|
-
description: 'The amount of blob gas used in transactions',
|
|
53
|
-
unit: 'gas',
|
|
54
|
-
valueType: ValueType.INT
|
|
55
|
-
});
|
|
56
|
-
this.txBlobDataGasCost = meter.createHistogram(Metrics.L1_PUBLISHER_TX_BLOBDATA_GAS_COST, {
|
|
57
|
-
description: 'The gas cost of blobs in transactions',
|
|
58
|
-
unit: 'gwei',
|
|
59
|
-
valueType: ValueType.INT
|
|
60
|
-
});
|
|
61
|
-
this.blobCountHistogram = meter.createHistogram(Metrics.L1_PUBLISHER_BLOB_COUNT, {
|
|
62
|
-
description: 'Number of blobs in L1 transactions',
|
|
63
|
-
unit: 'blobs',
|
|
64
|
-
valueType: ValueType.INT
|
|
65
|
-
});
|
|
66
|
-
this.blobInclusionBlocksHistogram = meter.createHistogram(Metrics.L1_PUBLISHER_BLOB_INCLUSION_BLOCKS, {
|
|
67
|
-
description: 'Number of L1 blocks between blob tx submission and inclusion',
|
|
68
|
-
unit: 'blocks',
|
|
69
|
-
valueType: ValueType.INT
|
|
70
|
-
});
|
|
71
|
-
this.blobTxSuccessCounter = meter.createUpDownCounter(Metrics.L1_PUBLISHER_BLOB_TX_SUCCESS, {
|
|
72
|
-
description: 'Number of successful L1 transactions with blobs'
|
|
73
|
-
});
|
|
74
|
-
this.blobTxFailureCounter = meter.createUpDownCounter(Metrics.L1_PUBLISHER_BLOB_TX_FAILURE, {
|
|
75
|
-
description: 'Number of failed L1 transactions with blobs'
|
|
76
|
-
});
|
|
77
|
-
this.txTotalFee = meter.createHistogram(Metrics.L1_PUBLISHER_TX_TOTAL_FEE, {
|
|
78
|
-
description: 'How much L1 tx costs',
|
|
79
|
-
unit: 'eth',
|
|
80
|
-
valueType: ValueType.DOUBLE,
|
|
81
|
-
advice: {
|
|
82
|
-
explicitBucketBoundaries: [
|
|
83
|
-
0.001,
|
|
84
|
-
0.002,
|
|
85
|
-
0.004,
|
|
86
|
-
0.008,
|
|
87
|
-
0.01,
|
|
88
|
-
0.02,
|
|
89
|
-
0.04,
|
|
90
|
-
0.08,
|
|
91
|
-
0.1,
|
|
92
|
-
0.2,
|
|
93
|
-
0.4,
|
|
94
|
-
0.8,
|
|
95
|
-
1,
|
|
96
|
-
1.2,
|
|
97
|
-
1.4,
|
|
98
|
-
1.8,
|
|
99
|
-
2
|
|
100
|
-
]
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
this.senderBalance = meter.createGauge(Metrics.L1_PUBLISHER_BALANCE, {
|
|
104
|
-
unit: 'eth',
|
|
105
|
-
description: 'The balance of the sender address',
|
|
106
|
-
valueType: ValueType.DOUBLE
|
|
107
|
-
});
|
|
23
|
+
this.gasPrice = meter.createHistogram(Metrics.L1_PUBLISHER_GAS_PRICE);
|
|
24
|
+
this.txCount = createUpDownCounterWithDefault(meter, Metrics.L1_PUBLISHER_TX_COUNT, {
|
|
25
|
+
[Attributes.L1_TX_TYPE]: [
|
|
26
|
+
'process'
|
|
27
|
+
],
|
|
28
|
+
[Attributes.OK]: [
|
|
29
|
+
true,
|
|
30
|
+
false
|
|
31
|
+
]
|
|
32
|
+
});
|
|
33
|
+
this.txDuration = meter.createHistogram(Metrics.L1_PUBLISHER_TX_DURATION);
|
|
34
|
+
this.txGas = meter.createHistogram(Metrics.L1_PUBLISHER_TX_GAS);
|
|
35
|
+
this.txCalldataSize = meter.createHistogram(Metrics.L1_PUBLISHER_TX_CALLDATA_SIZE);
|
|
36
|
+
this.txCalldataGas = meter.createHistogram(Metrics.L1_PUBLISHER_TX_CALLDATA_GAS);
|
|
37
|
+
this.txBlobDataGasUsed = meter.createHistogram(Metrics.L1_PUBLISHER_TX_BLOBDATA_GAS_USED);
|
|
38
|
+
this.txBlobDataGasCost = meter.createHistogram(Metrics.L1_PUBLISHER_TX_BLOBDATA_GAS_COST);
|
|
39
|
+
this.blobCountHistogram = meter.createHistogram(Metrics.L1_PUBLISHER_BLOB_COUNT);
|
|
40
|
+
this.blobInclusionBlocksHistogram = meter.createHistogram(Metrics.L1_PUBLISHER_BLOB_INCLUSION_BLOCKS);
|
|
41
|
+
this.blobTxSuccessCounter = createUpDownCounterWithDefault(meter, Metrics.L1_PUBLISHER_BLOB_TX_SUCCESS);
|
|
42
|
+
this.blobTxFailureCounter = createUpDownCounterWithDefault(meter, Metrics.L1_PUBLISHER_BLOB_TX_FAILURE);
|
|
43
|
+
this.txTotalFee = meter.createHistogram(Metrics.L1_PUBLISHER_TX_TOTAL_FEE);
|
|
44
|
+
this.senderBalance = meter.createGauge(Metrics.L1_PUBLISHER_BALANCE);
|
|
108
45
|
}
|
|
109
46
|
recordFailedTx(txType) {
|
|
110
47
|
this.txCount.add(1, {
|
|
@@ -1,31 +1,34 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { type BlobSinkClientInterface } from '@aztec/blob-sink/client';
|
|
1
|
+
import type { BlobClientInterface } from '@aztec/blob-client/client';
|
|
3
2
|
import type { EpochCache } from '@aztec/epoch-cache';
|
|
4
|
-
import
|
|
5
|
-
import type
|
|
6
|
-
import {
|
|
3
|
+
import type { L1ContractsConfig } from '@aztec/ethereum/config';
|
|
4
|
+
import { type EmpireSlashingProposerContract, type GovernanceProposerContract, RollupContract, type TallySlashingProposerContract } from '@aztec/ethereum/contracts';
|
|
5
|
+
import { type L1FeeAnalysisResult, L1FeeAnalyzer } from '@aztec/ethereum/l1-fee-analysis';
|
|
6
|
+
import { type L1BlobInputs, type L1TxConfig, type L1TxRequest, type L1TxUtils, type TransactionStats } from '@aztec/ethereum/l1-tx-utils';
|
|
7
|
+
import { FormattedViemError } from '@aztec/ethereum/utils';
|
|
8
|
+
import { CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
9
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
7
10
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
8
11
|
import { Signature } from '@aztec/foundation/eth-signature';
|
|
9
|
-
import type { Fr } from '@aztec/foundation/fields';
|
|
10
12
|
import { type Logger } from '@aztec/foundation/log';
|
|
11
13
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
12
14
|
import { type ProposerSlashAction } from '@aztec/slasher';
|
|
13
|
-
import { CommitteeAttestationsAndSigners, type
|
|
15
|
+
import { CommitteeAttestationsAndSigners, type ValidateCheckpointResult } from '@aztec/stdlib/block';
|
|
16
|
+
import type { Checkpoint } from '@aztec/stdlib/checkpoint';
|
|
14
17
|
import { SlashFactoryContract } from '@aztec/stdlib/l1-contracts';
|
|
15
18
|
import type { CheckpointHeader } from '@aztec/stdlib/rollup';
|
|
16
|
-
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
19
|
+
import { type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
|
|
17
20
|
import { type TransactionReceipt, type TypedDataDefinition } from 'viem';
|
|
18
|
-
import type {
|
|
21
|
+
import type { SequencerPublisherConfig } from './config.js';
|
|
19
22
|
import { SequencerPublisherMetrics } from './sequencer-publisher-metrics.js';
|
|
20
23
|
export declare const Actions: readonly ["invalidate-by-invalid-attestation", "invalidate-by-insufficient-attestations", "propose", "governance-signal", "empire-slashing-signal", "create-empire-payload", "execute-empire-payload", "vote-offenses", "execute-slash"];
|
|
21
24
|
export type Action = (typeof Actions)[number];
|
|
22
25
|
export declare const compareActions: (a: "create-empire-payload" | "empire-slashing-signal" | "execute-empire-payload" | "execute-slash" | "governance-signal" | "invalidate-by-insufficient-attestations" | "invalidate-by-invalid-attestation" | "propose" | "vote-offenses", b: "create-empire-payload" | "empire-slashing-signal" | "execute-empire-payload" | "execute-slash" | "governance-signal" | "invalidate-by-insufficient-attestations" | "invalidate-by-invalid-attestation" | "propose" | "vote-offenses") => number;
|
|
23
|
-
export type
|
|
26
|
+
export type InvalidateCheckpointRequest = {
|
|
24
27
|
request: L1TxRequest;
|
|
25
28
|
reason: 'invalid-attestation' | 'insufficient-attestations';
|
|
26
29
|
gasUsed: bigint;
|
|
27
|
-
|
|
28
|
-
|
|
30
|
+
checkpointNumber: CheckpointNumber;
|
|
31
|
+
forcePendingCheckpointNumber: CheckpointNumber;
|
|
29
32
|
};
|
|
30
33
|
interface RequestWithExpiry {
|
|
31
34
|
action: Action;
|
|
@@ -47,24 +50,32 @@ export declare class SequencerPublisher {
|
|
|
47
50
|
protected governanceLog: Logger;
|
|
48
51
|
protected slashingLog: Logger;
|
|
49
52
|
protected lastActions: Partial<Record<Action, SlotNumber>>;
|
|
53
|
+
private isPayloadEmptyCache;
|
|
54
|
+
private payloadProposedCache;
|
|
50
55
|
protected log: Logger;
|
|
51
56
|
protected ethereumSlotDuration: bigint;
|
|
52
|
-
private
|
|
57
|
+
private blobClient;
|
|
53
58
|
/** Address to use for simulations in fisherman mode (actual proposer's address) */
|
|
54
59
|
private proposerAddressForSimulation?;
|
|
55
|
-
|
|
60
|
+
/** L1 fee analyzer for fisherman mode */
|
|
61
|
+
private l1FeeAnalyzer?;
|
|
62
|
+
/** Fee asset price oracle for computing price modifiers from Uniswap V4 */
|
|
63
|
+
private feeAssetPriceOracle;
|
|
56
64
|
static MULTICALL_OVERHEAD_GAS_GUESS: bigint;
|
|
57
65
|
static VOTE_GAS_GUESS: bigint;
|
|
58
|
-
l1TxUtils:
|
|
66
|
+
l1TxUtils: L1TxUtils;
|
|
59
67
|
rollupContract: RollupContract;
|
|
60
68
|
govProposerContract: GovernanceProposerContract;
|
|
61
69
|
slashingProposerContract: EmpireSlashingProposerContract | TallySlashingProposerContract | undefined;
|
|
62
70
|
slashFactoryContract: SlashFactoryContract;
|
|
71
|
+
readonly tracer: Tracer;
|
|
63
72
|
protected requests: RequestWithExpiry[];
|
|
64
|
-
constructor(config:
|
|
73
|
+
constructor(config: Pick<SequencerPublisherConfig, 'fishermanMode'> & Pick<L1ContractsConfig, 'ethereumSlotDuration'> & {
|
|
74
|
+
l1ChainId: number;
|
|
75
|
+
}, deps: {
|
|
65
76
|
telemetry?: TelemetryClient;
|
|
66
|
-
|
|
67
|
-
l1TxUtils:
|
|
77
|
+
blobClient: BlobClientInterface;
|
|
78
|
+
l1TxUtils: L1TxUtils;
|
|
68
79
|
rollupContract: RollupContract;
|
|
69
80
|
slashingProposerContract: EmpireSlashingProposerContract | TallySlashingProposerContract | undefined;
|
|
70
81
|
governanceProposerContract: GovernanceProposerContract;
|
|
@@ -76,7 +87,16 @@ export declare class SequencerPublisher {
|
|
|
76
87
|
log?: Logger;
|
|
77
88
|
});
|
|
78
89
|
getRollupContract(): RollupContract;
|
|
90
|
+
/**
|
|
91
|
+
* Gets the fee asset price modifier from the oracle.
|
|
92
|
+
* Returns 0n if the oracle query fails.
|
|
93
|
+
*/
|
|
94
|
+
getFeeAssetPriceModifier(): Promise<bigint>;
|
|
79
95
|
getSenderAddress(): EthAddress;
|
|
96
|
+
/**
|
|
97
|
+
* Gets the L1 fee analyzer instance (only available in fisherman mode)
|
|
98
|
+
*/
|
|
99
|
+
getL1FeeAnalyzer(): L1FeeAnalyzer | undefined;
|
|
80
100
|
/**
|
|
81
101
|
* Sets the proposer address to use for simulations in fisherman mode.
|
|
82
102
|
* @param proposerAddress - The actual proposer's address to use for balance lookups in simulations
|
|
@@ -88,6 +108,14 @@ export declare class SequencerPublisher {
|
|
|
88
108
|
* Clears all pending requests without sending them.
|
|
89
109
|
*/
|
|
90
110
|
clearPendingRequests(): void;
|
|
111
|
+
/**
|
|
112
|
+
* Analyzes L1 fees for the pending requests without sending them.
|
|
113
|
+
* This is used in fisherman mode to validate fee calculations.
|
|
114
|
+
* @param l2SlotNumber - The L2 slot number for this analysis
|
|
115
|
+
* @param onComplete - Optional callback to invoke when analysis completes (after block is mined)
|
|
116
|
+
* @returns The analysis result (incomplete until block mines), or undefined if no requests
|
|
117
|
+
*/
|
|
118
|
+
analyzeL1Fees(l2SlotNumber: SlotNumber, onComplete?: (analysis: L1FeeAnalysisResult) => void): Promise<L1FeeAnalysisResult | undefined>;
|
|
91
119
|
/**
|
|
92
120
|
* Sends all requests that are still valid.
|
|
93
121
|
* @returns one of:
|
|
@@ -117,10 +145,10 @@ export declare class SequencerPublisher {
|
|
|
117
145
|
* @returns The slot and block number if it is possible to propose, undefined otherwise
|
|
118
146
|
*/
|
|
119
147
|
canProposeAtNextEthBlock(tipArchive: Fr, msgSender: EthAddress, opts?: {
|
|
120
|
-
|
|
148
|
+
forcePendingCheckpointNumber?: CheckpointNumber;
|
|
121
149
|
}): Promise<{
|
|
122
150
|
slot: SlotNumber;
|
|
123
|
-
checkpointNumber:
|
|
151
|
+
checkpointNumber: CheckpointNumber;
|
|
124
152
|
timeOfNextL1Slot: bigint;
|
|
125
153
|
} | undefined>;
|
|
126
154
|
/**
|
|
@@ -130,27 +158,20 @@ export declare class SequencerPublisher {
|
|
|
130
158
|
* @param header - The block header to validate
|
|
131
159
|
*/
|
|
132
160
|
validateBlockHeader(header: CheckpointHeader, opts?: {
|
|
133
|
-
|
|
161
|
+
forcePendingCheckpointNumber: CheckpointNumber | undefined;
|
|
134
162
|
}): Promise<void>;
|
|
135
163
|
/**
|
|
136
|
-
* Simulate making a call to invalidate a
|
|
137
|
-
* @param
|
|
164
|
+
* Simulate making a call to invalidate a checkpoint with invalid attestations. Returns undefined if no need to invalidate.
|
|
165
|
+
* @param validationResult - The validation result indicating which checkpoint to invalidate (as returned by the archiver)
|
|
138
166
|
*/
|
|
139
|
-
|
|
140
|
-
private
|
|
141
|
-
/**
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
* @dev Throws if unable to propose
|
|
145
|
-
*
|
|
146
|
-
* @param block - The block to propose
|
|
147
|
-
* @param attestationData - The block's attestation data
|
|
148
|
-
*
|
|
149
|
-
*/
|
|
150
|
-
validateBlockForSubmission(block: L2Block, attestationsAndSigners: CommitteeAttestationsAndSigners, attestationsAndSignersSignature: Signature, options: {
|
|
151
|
-
forcePendingBlockNumber?: number;
|
|
167
|
+
simulateInvalidateCheckpoint(validationResult: ValidateCheckpointResult): Promise<InvalidateCheckpointRequest | undefined>;
|
|
168
|
+
private buildInvalidateCheckpointRequest;
|
|
169
|
+
/** Simulates `propose` to make sure that the checkpoint is valid for submission */
|
|
170
|
+
validateCheckpointForSubmission(checkpoint: Checkpoint, attestationsAndSigners: CommitteeAttestationsAndSigners, attestationsAndSignersSignature: Signature, options: {
|
|
171
|
+
forcePendingCheckpointNumber?: CheckpointNumber;
|
|
152
172
|
}): Promise<bigint>;
|
|
153
173
|
private enqueueCastSignalHelper;
|
|
174
|
+
private isPayloadEmpty;
|
|
154
175
|
/**
|
|
155
176
|
* Enqueues a governance castSignal transaction to cast a signal for a given slot number.
|
|
156
177
|
* @param slotNumber - The slot number to cast a signal for.
|
|
@@ -160,17 +181,12 @@ export declare class SequencerPublisher {
|
|
|
160
181
|
enqueueGovernanceCastSignal(governancePayload: EthAddress, slotNumber: SlotNumber, timestamp: bigint, signerAddress: EthAddress, signer: (msg: TypedDataDefinition) => Promise<`0x${string}`>): Promise<boolean>;
|
|
161
182
|
/** Enqueues all slashing actions as returned by the slasher client. */
|
|
162
183
|
enqueueSlashingActions(actions: ProposerSlashAction[], slotNumber: SlotNumber, timestamp: bigint, signerAddress: EthAddress, signer: (msg: TypedDataDefinition) => Promise<`0x${string}`>): Promise<boolean>;
|
|
163
|
-
/**
|
|
164
|
-
|
|
165
|
-
*
|
|
166
|
-
* @param block - L2 block to propose.
|
|
167
|
-
* @returns True if the tx has been enqueued, throws otherwise. See #9315
|
|
168
|
-
*/
|
|
169
|
-
enqueueProposeL2Block(block: L2Block, attestationsAndSigners: CommitteeAttestationsAndSigners, attestationsAndSignersSignature: Signature, opts?: {
|
|
184
|
+
/** Simulates and enqueues a proposal for a checkpoint on L1 */
|
|
185
|
+
enqueueProposeCheckpoint(checkpoint: Checkpoint, attestationsAndSigners: CommitteeAttestationsAndSigners, attestationsAndSignersSignature: Signature, opts?: {
|
|
170
186
|
txTimeoutAt?: Date;
|
|
171
|
-
|
|
172
|
-
}): Promise<
|
|
173
|
-
|
|
187
|
+
forcePendingCheckpointNumber?: CheckpointNumber;
|
|
188
|
+
}): Promise<void>;
|
|
189
|
+
enqueueInvalidateCheckpoint(request: InvalidateCheckpointRequest | undefined, opts?: {
|
|
174
190
|
txTimeoutAt?: Date;
|
|
175
191
|
}): void;
|
|
176
192
|
private simulateAndEnqueueRequest;
|
|
@@ -188,4 +204,4 @@ export declare class SequencerPublisher {
|
|
|
188
204
|
private addProposeTx;
|
|
189
205
|
}
|
|
190
206
|
export {};
|
|
191
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLXB1Ymxpc2hlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1Ymxpc2hlci9zZXF1ZW5jZXItcHVibGlzaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFckUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsS0FBSyw4QkFBOEIsRUFFbkMsS0FBSywwQkFBMEIsRUFJL0IsY0FBYyxFQUNkLEtBQUssNkJBQTZCLEVBR25DLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLEtBQUssbUJBQW1CLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUYsT0FBTyxFQUNMLEtBQUssWUFBWSxFQUNqQixLQUFLLFVBQVUsRUFDZixLQUFLLFdBQVcsRUFDaEIsS0FBSyxTQUFTLEVBRWQsS0FBSyxnQkFBZ0IsRUFFdEIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQStDLE1BQU0sdUJBQXVCLENBQUM7QUFHeEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRS9FLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFzQixNQUFNLGlDQUFpQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUdsRSxPQUFPLEVBQUUsWUFBWSxFQUFTLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxF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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,EAAE,
|
|
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,EACL,KAAK,8BAA8B,EAEnC,KAAK,0BAA0B,EAI/B,cAAc,EACd,KAAK,6BAA6B,EAGnC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,mBAAmB,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,SAAS,EAEd,KAAK,gBAAgB,EAEtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAA+C,MAAM,uBAAuB,CAAC;AAGxG,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE/E,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAsB,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EAAE,YAAY,EAAS,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,KAAK,mBAAmB,EAA6B,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,+BAA+B,EAAE,KAAK,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACrG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,MAAM,EAAiC,MAAM,yBAAyB,CAAC;AAE3G,OAAO,EAAsB,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAA6B,MAAM,MAAM,CAAC;AAExH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAkB7E,eAAO,MAAM,OAAO,0OAUV,CAAC;AAEX,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAK9C,eAAO,MAAM,cAAc,geAAoE,CAAC;AAEhG,MAAM,MAAM,2BAA2B,GAAG;IACxC,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,qBAAqB,GAAG,2BAA2B,CAAC;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,4BAA4B,EAAE,gBAAgB,CAAC;CAChD,CAAC;AAEF,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;IACrB,eAAe,EAAE,UAAU,CAAC;IAC5B,SAAS,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,aAAa,GAAG,UAAU,CAAC,CAAC;IACzD,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,YAAY,EAAE,CACZ,OAAO,EAAE,WAAW,EACpB,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,kBAAkB,CAAC;QAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KAClF,OAAO,CAAC;CACd;AAED,qBAAa,kBAAkB;IA4C3B,OAAO,CAAC,MAAM;IA3ChB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAA4B;IACpC,UAAU,EAAE,UAAU,CAAC;IAE9B,SAAS,CAAC,aAAa,SAAkD;IACzE,SAAS,CAAC,WAAW,SAAgD;IAErE,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAM;IAEhE,OAAO,CAAC,mBAAmB,CAAoD;IAC/E,OAAO,CAAC,oBAAoB,CAAkC;IAE9D,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,oBAAoB,EAAE,MAAM,CAAC;IAEvC,OAAO,CAAC,UAAU,CAAsB;IAExC,mFAAmF;IACnF,OAAO,CAAC,4BAA4B,CAAC,CAAa;IAElD,yCAAyC;IACzC,OAAO,CAAC,aAAa,CAAC,CAAgB;IAEtC,2EAA2E;IAC3E,OAAO,CAAC,mBAAmB,CAAsB;IAGjD,OAAc,4BAA4B,SAAS;IAGnD,OAAc,cAAc,EAAE,MAAM,CAAY;IAEzC,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,cAAc,CAAC;IAC/B,mBAAmB,EAAE,0BAA0B,CAAC;IAChD,wBAAwB,EAAE,8BAA8B,GAAG,6BAA6B,GAAG,SAAS,CAAC;IACrG,oBAAoB,EAAE,oBAAoB,CAAC;IAElD,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,SAAS,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAM;IAE7C,YACU,MAAM,EAAE,IAAI,CAAC,wBAAwB,EAAE,eAAe,CAAC,GAC7D,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,EACzE,IAAI,EAAE;QACJ,SAAS,CAAC,EAAE,eAAe,CAAC;QAC5B,UAAU,EAAE,mBAAmB,CAAC;QAChC,SAAS,EAAE,SAAS,CAAC;QACrB,cAAc,EAAE,cAAc,CAAC;QAC/B,wBAAwB,EAAE,8BAA8B,GAAG,6BAA6B,GAAG,SAAS,CAAC;QACrG,0BAA0B,EAAE,0BAA0B,CAAC;QACvD,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,UAAU,EAAE,UAAU,CAAC;QACvB,YAAY,EAAE,YAAY,CAAC;QAC3B,OAAO,EAAE,yBAAyB,CAAC;QACnC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;QACjD,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,EAyCF;IAEM,iBAAiB,IAAI,cAAc,CAEzC;IAED;;;OAGG;IACI,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC,CAEjD;IAEM,gBAAgB,eAEtB;IAED;;OAEG;IACI,gBAAgB,IAAI,aAAa,GAAG,SAAS,CAEnD;IAED;;;OAGG;IACI,+BAA+B,CAAC,eAAe,EAAE,UAAU,GAAG,SAAS,QAE7E;IAEM,UAAU,CAAC,OAAO,EAAE,iBAAiB,QAE3C;IAEM,gBAAgB,IAAI,UAAU,CAEpC;IAED;;OAEG;IACI,oBAAoB,IAAI,IAAI,CAMlC;IAED;;;;;;OAMG;IACU,aAAa,CACxB,YAAY,EAAE,UAAU,EACxB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,GACnD,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CA4C1C;IAED;;;;;;OAMG;IAEU,YAAY;;;;;;;;;;;;;;mBA6FxB;IAED,OAAO,CAAC,2BAA2B;IAuBnC;;;;OAIG;IACI,wBAAwB,CAC7B,UAAU,EAAE,EAAE,EACd,SAAS,EAAE,UAAU,EACrB,IAAI,GAAE;QAAE,4BAA4B,CAAC,EAAE,gBAAgB,CAAA;KAAO;;;;mBAmB/D;IACD;;;;;OAKG;IAEU,mBAAmB,CAC9B,MAAM,EAAE,gBAAgB,EACxB,IAAI,CAAC,EAAE;QAAE,4BAA4B,EAAE,gBAAgB,GAAG,SAAS,CAAA;KAAE,GACpE,OAAO,CAAC,IAAI,CAAC,CAwCf;IAED;;;OAGG;IACU,4BAA4B,CACvC,gBAAgB,EAAE,wBAAwB,GACzC,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,CA0ElD;IAED,OAAO,CAAC,gCAAgC;IAgCxC,mFAAmF;IAEtE,+BAA+B,CAC1C,UAAU,EAAE,UAAU,EACtB,sBAAsB,EAAE,+BAA+B,EACvD,+BAA+B,EAAE,SAAS,EAC1C,OAAO,EAAE;QAAE,4BAA4B,CAAC,EAAE,gBAAgB,CAAA;KAAE,GAC3D,OAAO,CAAC,MAAM,CAAC,CAsBjB;YAEa,uBAAuB;YAyHvB,cAAc;IAW5B;;;;;OAKG;IACI,2BAA2B,CAChC,iBAAiB,EAAE,UAAU,EAC7B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,UAAU,EACzB,MAAM,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,GAC3D,OAAO,CAAC,OAAO,CAAC,CAUlB;IAED,uEAAuE;IAC1D,sBAAsB,CACjC,OAAO,EAAE,mBAAmB,EAAE,EAC9B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,UAAU,EACzB,MAAM,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,GAC3D,OAAO,CAAC,OAAO,CAAC,CAkHlB;IAED,+DAA+D;IAClD,wBAAwB,CACnC,UAAU,EAAE,UAAU,EACtB,sBAAsB,EAAE,+BAA+B,EACvD,+BAA+B,EAAE,SAAS,EAC1C,IAAI,GAAE;QAAE,WAAW,CAAC,EAAE,IAAI,CAAC;QAAC,4BAA4B,CAAC,EAAE,gBAAgB,CAAA;KAAO,GACjF,OAAO,CAAC,IAAI,CAAC,CAwCf;IAEM,2BAA2B,CAChC,OAAO,EAAE,2BAA2B,GAAG,SAAS,EAChD,IAAI,GAAE;QAAE,WAAW,CAAC,EAAE,IAAI,CAAA;KAAO,QA+BlC;YAEa,yBAAyB;IA0DvC;;;;;OAKG;IACI,SAAS,SAGf;IAED,wDAAwD;IACjD,OAAO,SAGb;YAEa,gBAAgB;YAoEhB,iBAAiB;YAuFjB,YAAY;CAyF3B"}
|