@aztec/sequencer-client 0.0.1-commit.e61ad554 → 0.0.1-commit.ec5f612
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 +12 -7
- package/dest/client/sequencer-client.d.ts.map +1 -1
- package/dest/client/sequencer-client.js +15 -4
- package/dest/config.d.ts +3 -4
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +17 -12
- package/dest/global_variable_builder/global_builder.d.ts +2 -4
- package/dest/global_variable_builder/global_builder.d.ts.map +1 -1
- package/dest/publisher/config.d.ts +35 -17
- package/dest/publisher/config.d.ts.map +1 -1
- package/dest/publisher/config.js +106 -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 +59 -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-publisher-factory.d.ts +11 -3
- package/dest/publisher/sequencer-publisher-factory.d.ts.map +1 -1
- package/dest/publisher/sequencer-publisher-factory.js +13 -2
- package/dest/publisher/sequencer-publisher-metrics.d.ts +1 -1
- package/dest/publisher/sequencer-publisher-metrics.d.ts.map +1 -1
- package/dest/publisher/sequencer-publisher-metrics.js +12 -4
- package/dest/publisher/sequencer-publisher.d.ts +22 -8
- package/dest/publisher/sequencer-publisher.d.ts.map +1 -1
- package/dest/publisher/sequencer-publisher.js +297 -47
- package/dest/sequencer/checkpoint_proposal_job.d.ts +32 -9
- package/dest/sequencer/checkpoint_proposal_job.d.ts.map +1 -1
- package/dest/sequencer/checkpoint_proposal_job.js +113 -59
- package/dest/sequencer/metrics.d.ts +17 -5
- package/dest/sequencer/metrics.d.ts.map +1 -1
- package/dest/sequencer/metrics.js +111 -30
- package/dest/sequencer/sequencer.d.ts +17 -7
- package/dest/sequencer/sequencer.d.ts.map +1 -1
- package/dest/sequencer/sequencer.js +30 -27
- package/dest/sequencer/timetable.d.ts +1 -4
- package/dest/sequencer/timetable.d.ts.map +1 -1
- package/dest/sequencer/timetable.js +2 -5
- 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 +7 -5
- package/dest/test/mock_checkpoint_builder.d.ts.map +1 -1
- package/dest/test/mock_checkpoint_builder.js +6 -6
- package/dest/test/utils.d.ts +3 -3
- package/dest/test/utils.d.ts.map +1 -1
- package/dest/test/utils.js +5 -4
- package/package.json +28 -28
- package/src/client/sequencer-client.ts +25 -7
- package/src/config.ts +26 -19
- package/src/global_variable_builder/global_builder.ts +1 -1
- package/src/publisher/config.ts +121 -43
- 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 +55 -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-publisher-factory.ts +23 -6
- package/src/publisher/sequencer-publisher-metrics.ts +7 -3
- package/src/publisher/sequencer-publisher.ts +274 -53
- package/src/sequencer/checkpoint_proposal_job.ts +157 -76
- package/src/sequencer/metrics.ts +124 -32
- package/src/sequencer/sequencer.ts +40 -32
- package/src/sequencer/timetable.ts +7 -6
- package/src/test/index.ts +2 -4
- package/src/test/mock_checkpoint_builder.ts +14 -5
- package/src/test/utils.ts +5 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BlobClientInterface } from '@aztec/blob-client/client';
|
|
2
2
|
import { EpochCache } from '@aztec/epoch-cache';
|
|
3
|
-
import {
|
|
3
|
+
import { type Delayer, L1TxUtils } from '@aztec/ethereum/l1-tx-utils';
|
|
4
4
|
import { PublisherManager } from '@aztec/ethereum/publisher-manager';
|
|
5
5
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
6
6
|
import type { DateProvider } from '@aztec/foundation/timer';
|
|
@@ -11,20 +11,21 @@ import type { L2BlockSink, L2BlockSource } from '@aztec/stdlib/block';
|
|
|
11
11
|
import type { ValidatorClientFullConfig, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
|
|
12
12
|
import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
13
13
|
import { L1Metrics, type TelemetryClient } from '@aztec/telemetry-client';
|
|
14
|
-
import { FullNodeCheckpointsBuilder, type ValidatorClient } from '@aztec/validator-client';
|
|
15
|
-
import type
|
|
14
|
+
import { FullNodeCheckpointsBuilder, NodeKeystoreAdapter, type ValidatorClient } from '@aztec/validator-client';
|
|
15
|
+
import { type SequencerClientConfig } from '../config.js';
|
|
16
16
|
import { SequencerPublisherFactory } from '../publisher/sequencer-publisher-factory.js';
|
|
17
17
|
import { Sequencer, type SequencerConfig } from '../sequencer/index.js';
|
|
18
18
|
/**
|
|
19
19
|
* Encapsulates the full sequencer and publisher.
|
|
20
20
|
*/
|
|
21
21
|
export declare class SequencerClient {
|
|
22
|
-
protected publisherManager: PublisherManager<
|
|
22
|
+
protected publisherManager: PublisherManager<L1TxUtils>;
|
|
23
23
|
protected sequencer: Sequencer;
|
|
24
24
|
protected checkpointsBuilder: FullNodeCheckpointsBuilder;
|
|
25
25
|
protected validatorClient?: ValidatorClient | undefined;
|
|
26
26
|
private l1Metrics?;
|
|
27
|
-
|
|
27
|
+
private delayer_?;
|
|
28
|
+
constructor(publisherManager: PublisherManager<L1TxUtils>, sequencer: Sequencer, checkpointsBuilder: FullNodeCheckpointsBuilder, validatorClient?: ValidatorClient | undefined, l1Metrics?: L1Metrics | undefined, delayer_?: Delayer | undefined);
|
|
28
29
|
/**
|
|
29
30
|
* Initializes a new instance.
|
|
30
31
|
* @param config - Configuration for the sequencer, publisher, and L1 tx sender.
|
|
@@ -50,7 +51,7 @@ export declare class SequencerClient {
|
|
|
50
51
|
blobClient: BlobClientInterface;
|
|
51
52
|
dateProvider: DateProvider;
|
|
52
53
|
epochCache?: EpochCache;
|
|
53
|
-
l1TxUtils:
|
|
54
|
+
l1TxUtils: L1TxUtils[];
|
|
54
55
|
nodeKeyStore: KeystoreManager;
|
|
55
56
|
}): Promise<SequencerClient>;
|
|
56
57
|
/**
|
|
@@ -65,7 +66,11 @@ export declare class SequencerClient {
|
|
|
65
66
|
*/
|
|
66
67
|
stop(): Promise<void>;
|
|
67
68
|
getSequencer(): Sequencer;
|
|
69
|
+
/** Updates the publisher factory's node keystore adapter after a keystore reload. */
|
|
70
|
+
updatePublisherNodeKeyStore(adapter: NodeKeystoreAdapter): void;
|
|
71
|
+
/** Returns the shared tx delayer for sequencer L1 txs, if enabled. Test-only. */
|
|
72
|
+
getDelayer(): Delayer | undefined;
|
|
68
73
|
get validatorAddresses(): EthAddress[] | undefined;
|
|
69
74
|
get maxL2BlockGas(): number | undefined;
|
|
70
75
|
}
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLWNsaWVudC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9zZXF1ZW5jZXItY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSWhELE9BQU8sRUFBRSxLQUFLLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFM0QsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0QsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFekcsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLG1CQUFtQixFQUFFLEtBQUssZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEgsT0FBTyxFQUFFLEtBQUsscUJBQXFCLEVBQXlDLE1BQU0sY0FBYyxDQUFDO0FBRWpHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RTs7R0FFRztBQUNILHFCQUFhLGVBQWU7SUFFeEIsU0FBUyxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztJQUN2RCxTQUFTLENBQUMsU0FBUyxFQUFFLFNBQVM7SUFDOUIsU0FBUyxDQUFDLGtCQUFrQixFQUFFLDBCQUEwQjtJQUN4RCxTQUFTLENBQUMsZUFBZSxDQUFDO0lBQzFCLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDbEIsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQU5uQixZQUNZLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUM3QyxTQUFTLEVBQUUsU0FBUyxFQUNwQixrQkFBa0IsRUFBRSwwQkFBMEIsRUFDOUMsZUFBZSxDQUFDLDZCQUFpQixFQUNuQyxTQUFTLENBQUMsdUJBQVcsRUFDckIsUUFBUSxDQUFDLHFCQUFTLEVBQ3hCO0lBRUo7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxPQUFvQixHQUFHLENBQ3JCLE1BQU0sRUFBRSxxQkFBcUIsRUFDN0IsSUFBSSxFQUFFO1FBQ0osZUFBZSxFQUFFLGVBQWUsQ0FBQztRQUNqQyxTQUFTLEVBQUUsR0FBRyxDQUFDO1FBQ2Ysc0JBQXNCLEVBQUUsc0JBQXNCLENBQUM7UUFDL0MsYUFBYSxFQUFFLHNCQUFzQixHQUFHLFNBQVMsQ0FBQztRQUNsRCxrQkFBa0IsRUFBRSwwQkFBMEIsQ0FBQztRQUMvQyxhQUFhLEVBQUUsYUFBYSxHQUFHLFdBQVcsQ0FBQztRQUMzQyxtQkFBbUIsRUFBRSxtQkFBbUIsQ0FBQztRQUN6QyxTQUFTLEVBQUUsZUFBZSxDQUFDO1FBQzNCLGdCQUFnQixDQUFDLEVBQUUseUJBQXlCLENBQUM7UUFDN0MsVUFBVSxFQUFFLG1CQUFtQixDQUFDO1FBQ2hDLFlBQVksRUFBRSxZQUFZLENBQUM7UUFDM0IsVUFBVSxDQUFDLEVBQUUsVUFBVSxDQUFDO1FBQ3hCLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUN2QixZQUFZLEVBQUUsZUFBZSxDQUFDO0tBQy9CLDRCQXFIRjtJQUVEOzs7T0FHRztJQUNJLFlBQVksQ0FBQyxNQUFNLEVBQUUsZUFBZSxHQUFHLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxRQUkvRTtJQUVELDRCQUE0QjtJQUNmLEtBQUssa0JBS2pCO0lBRUQ7O09BRUc7SUFDVSxJQUFJLGtCQUtoQjtJQUVNLFlBQVksSUFBSSxTQUFTLENBRS9CO0lBRUQscUZBQXFGO0lBQzlFLDJCQUEyQixDQUFDLE9BQU8sRUFBRSxtQkFBbUIsR0FBRyxJQUFJLENBRXJFO0lBRUQsaUZBQWlGO0lBQ2pGLFVBQVUsSUFBSSxPQUFPLEdBQUcsU0FBUyxDQUVoQztJQUVELElBQUksa0JBQWtCLElBQUksVUFBVSxFQUFFLEdBQUcsU0FBUyxDQUVqRDtJQUVELElBQUksYUFBYSxJQUFJLE1BQU0sR0FBRyxTQUFTLENBRXRDO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequencer-client.d.ts","sourceRoot":"","sources":["../../src/client/sequencer-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIhD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sequencer-client.d.ts","sourceRoot":"","sources":["../../src/client/sequencer-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ import { createLogger } from '@aztec/foundation/log';
|
|
|
8
8
|
import { SlashFactoryContract } from '@aztec/stdlib/l1-contracts';
|
|
9
9
|
import { L1Metrics } from '@aztec/telemetry-client';
|
|
10
10
|
import { NodeKeystoreAdapter } from '@aztec/validator-client';
|
|
11
|
+
import { getPublisherConfigFromSequencerConfig } from '../config.js';
|
|
11
12
|
import { GlobalVariableBuilder } from '../global_variable_builder/index.js';
|
|
12
13
|
import { SequencerPublisherFactory } from '../publisher/sequencer-publisher-factory.js';
|
|
13
14
|
import { Sequencer } from '../sequencer/index.js';
|
|
@@ -19,12 +20,14 @@ import { Sequencer } from '../sequencer/index.js';
|
|
|
19
20
|
checkpointsBuilder;
|
|
20
21
|
validatorClient;
|
|
21
22
|
l1Metrics;
|
|
22
|
-
|
|
23
|
+
delayer_;
|
|
24
|
+
constructor(publisherManager, sequencer, checkpointsBuilder, validatorClient, l1Metrics, delayer_){
|
|
23
25
|
this.publisherManager = publisherManager;
|
|
24
26
|
this.sequencer = sequencer;
|
|
25
27
|
this.checkpointsBuilder = checkpointsBuilder;
|
|
26
28
|
this.validatorClient = validatorClient;
|
|
27
29
|
this.l1Metrics = l1Metrics;
|
|
30
|
+
this.delayer_ = delayer_;
|
|
28
31
|
}
|
|
29
32
|
/**
|
|
30
33
|
* Initializes a new instance.
|
|
@@ -44,7 +47,7 @@ import { Sequencer } from '../sequencer/index.js';
|
|
|
44
47
|
const publicClient = getPublicClient(config);
|
|
45
48
|
const l1TxUtils = deps.l1TxUtils;
|
|
46
49
|
const l1Metrics = new L1Metrics(telemetryClient.getMeter('L1PublisherMetrics'), publicClient, l1TxUtils.map((x)=>x.getSenderAddress()));
|
|
47
|
-
const publisherManager = new PublisherManager(l1TxUtils, config);
|
|
50
|
+
const publisherManager = new PublisherManager(l1TxUtils, getPublisherConfigFromSequencerConfig(config), log.getBindings());
|
|
48
51
|
const rollupContract = new RollupContract(publicClient, config.l1Contracts.rollupAddress.toString());
|
|
49
52
|
const [l1GenesisTime, slotDuration, rollupVersion, rollupManaLimit] = await Promise.all([
|
|
50
53
|
rollupContract.getL1GenesisTime(),
|
|
@@ -102,8 +105,10 @@ import { Sequencer } from '../sequencer/index.js';
|
|
|
102
105
|
l1PublishingTime,
|
|
103
106
|
maxL2BlockGas: sequencerManaLimit
|
|
104
107
|
}, telemetryClient, log);
|
|
105
|
-
|
|
106
|
-
|
|
108
|
+
sequencer.init();
|
|
109
|
+
// Extract the shared delayer from the first L1TxUtils instance (all instances share the same delayer)
|
|
110
|
+
const delayer = l1TxUtils[0]?.delayer;
|
|
111
|
+
return new SequencerClient(publisherManager, sequencer, checkpointsBuilder, validatorClient, l1Metrics, delayer);
|
|
107
112
|
}
|
|
108
113
|
/**
|
|
109
114
|
* Updates sequencer and validator client config.
|
|
@@ -130,6 +135,12 @@ import { Sequencer } from '../sequencer/index.js';
|
|
|
130
135
|
getSequencer() {
|
|
131
136
|
return this.sequencer;
|
|
132
137
|
}
|
|
138
|
+
/** Updates the publisher factory's node keystore adapter after a keystore reload. */ updatePublisherNodeKeyStore(adapter) {
|
|
139
|
+
this.sequencer.updatePublisherNodeKeyStore(adapter);
|
|
140
|
+
}
|
|
141
|
+
/** Returns the shared tx delayer for sequencer L1 txs, if enabled. Test-only. */ getDelayer() {
|
|
142
|
+
return this.delayer_;
|
|
143
|
+
}
|
|
133
144
|
get validatorAddresses() {
|
|
134
145
|
return this.sequencer.getValidatorAddresses();
|
|
135
146
|
}
|
package/dest/config.d.ts
CHANGED
|
@@ -6,10 +6,9 @@ import { type P2PConfig } from '@aztec/p2p/config';
|
|
|
6
6
|
import { type ChainConfig, type SequencerConfig } from '@aztec/stdlib/config';
|
|
7
7
|
import type { ResolvedSequencerConfig } from '@aztec/stdlib/interfaces/server';
|
|
8
8
|
import { type ValidatorClientConfig } from '@aztec/validator-client/config';
|
|
9
|
-
import { type
|
|
9
|
+
import { type SequencerPublisherConfig, type SequencerTxSenderConfig } from './publisher/config.js';
|
|
10
10
|
export * from './publisher/config.js';
|
|
11
11
|
export type { SequencerConfig };
|
|
12
|
-
export declare const DEFAULT_ATTESTATION_PROPAGATION_TIME = 2;
|
|
13
12
|
/**
|
|
14
13
|
* Default values for SequencerConfig.
|
|
15
14
|
* Centralized location for all sequencer configuration defaults.
|
|
@@ -18,11 +17,11 @@ export declare const DefaultSequencerConfig: ResolvedSequencerConfig;
|
|
|
18
17
|
/**
|
|
19
18
|
* Configuration settings for the SequencerClient.
|
|
20
19
|
*/
|
|
21
|
-
export type SequencerClientConfig =
|
|
20
|
+
export type SequencerClientConfig = SequencerPublisherConfig & KeyStoreConfig & ValidatorClientConfig & SequencerTxSenderConfig & SequencerConfig & L1ReaderConfig & ChainConfig & Pick<P2PConfig, 'txPublicSetupAllowList'> & Pick<L1ContractsConfig, 'ethereumSlotDuration' | 'aztecSlotDuration' | 'aztecEpochDuration'>;
|
|
22
21
|
export declare const sequencerConfigMappings: ConfigMappingsType<SequencerConfig>;
|
|
23
22
|
export declare const sequencerClientConfigMappings: ConfigMappingsType<SequencerClientConfig>;
|
|
24
23
|
/**
|
|
25
24
|
* Creates an instance of SequencerClientConfig out of environment variables using sensible defaults for integration testing if not set.
|
|
26
25
|
*/
|
|
27
26
|
export declare function getConfigEnvVars(): SequencerClientConfig;
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLGlCQUFpQixFQUE2QixNQUFNLHdCQUF3QixDQUFDO0FBQzNGLE9BQU8sRUFBRSxLQUFLLGNBQWMsRUFBMEIsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RixPQUFPLEVBQ0wsS0FBSyxrQkFBa0IsRUFLeEIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxPQUFPLEVBQUUsS0FBSyxjQUFjLEVBQTBCLE1BQU0sNkJBQTZCLENBQUM7QUFDMUYsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFxQixNQUFNLG1CQUFtQixDQUFDO0FBRXRFLE9BQU8sRUFDTCxLQUFLLFdBQVcsRUFDaEIsS0FBSyxlQUFlLEVBR3JCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUvRSxPQUFPLEVBQUUsS0FBSyxxQkFBcUIsRUFBaUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUzRyxPQUFPLEVBQ0wsS0FBSyx3QkFBd0IsRUFDN0IsS0FBSyx1QkFBdUIsRUFHN0IsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLFlBQVksRUFBRSxlQUFlLEVBQUUsQ0FBQztBQUVoQzs7O0dBR0c7QUFDSCxlQUFPLE1BQU0sc0JBQXNCLEVBQUUsdUJBcUJwQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLE1BQU0scUJBQXFCLEdBQUcsd0JBQXdCLEdBQzFELGNBQWMsR0FDZCxxQkFBcUIsR0FDckIsdUJBQXVCLEdBQ3ZCLGVBQWUsR0FDZixjQUFjLEdBQ2QsV0FBVyxHQUNYLElBQUksQ0FBQyxTQUFTLEVBQUUsd0JBQXdCLENBQUMsR0FDekMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLHNCQUFzQixHQUFHLG1CQUFtQixHQUFHLG9CQUFvQixDQUFDLENBQUM7QUFFL0YsZUFBTyxNQUFNLHVCQUF1QixFQUFFLGtCQUFrQixDQUFDLGVBQWUsQ0FnSnZFLENBQUM7QUFFRixlQUFPLE1BQU0sNkJBQTZCLEVBQUUsa0JBQWtCLENBQUMscUJBQXFCLENBU25GLENBQUM7QUFFRjs7R0FFRztBQUNILHdCQUFnQixnQkFBZ0IsSUFBSSxxQkFBcUIsQ0FFeEQifQ==
|
package/dest/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAA6B,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,2BAA2B,CAAC;AACxF,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,mBAAmB,CAAC;AAEtE,OAAO,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAA6B,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,2BAA2B,CAAC;AACxF,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,mBAAmB,CAAC;AAEtE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,eAAe,EAGrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE/E,OAAO,EAAE,KAAK,qBAAqB,EAAiC,MAAM,gCAAgC,CAAC;AAE3G,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAG7B,MAAM,uBAAuB,CAAC;AAE/B,cAAc,uBAAuB,CAAC;AACtC,YAAY,EAAE,eAAe,EAAE,CAAC;AAEhC;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,uBAqBpC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,wBAAwB,GAC1D,cAAc,GACd,qBAAqB,GACrB,uBAAuB,GACvB,eAAe,GACf,cAAc,GACd,WAAW,GACX,IAAI,CAAC,SAAS,EAAE,wBAAwB,CAAC,GACzC,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,GAAG,mBAAmB,GAAG,oBAAoB,CAAC,CAAC;AAE/F,eAAO,MAAM,uBAAuB,EAAE,kBAAkB,CAAC,eAAe,CAgJvE,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,kBAAkB,CAAC,qBAAqB,CASnF,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,qBAAqB,CAExD"}
|
package/dest/config.js
CHANGED
|
@@ -5,11 +5,11 @@ import { EthAddress } from '@aztec/foundation/eth-address';
|
|
|
5
5
|
import { keyStoreConfigMappings } from '@aztec/node-keystore/config';
|
|
6
6
|
import { p2pConfigMappings } from '@aztec/p2p/config';
|
|
7
7
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
8
|
-
import { chainConfigMappings } from '@aztec/stdlib/config';
|
|
8
|
+
import { chainConfigMappings, sharedSequencerConfigMappings } from '@aztec/stdlib/config';
|
|
9
|
+
import { DEFAULT_P2P_PROPAGATION_TIME } from '@aztec/stdlib/timetable';
|
|
9
10
|
import { validatorClientConfigMappings } from '@aztec/validator-client/config';
|
|
10
|
-
import {
|
|
11
|
+
import { sequencerPublisherConfigMappings, sequencerTxSenderConfigMappings } from './publisher/config.js';
|
|
11
12
|
export * from './publisher/config.js';
|
|
12
|
-
export const DEFAULT_ATTESTATION_PROPAGATION_TIME = 2;
|
|
13
13
|
/**
|
|
14
14
|
* Default values for SequencerConfig.
|
|
15
15
|
* Centralized location for all sequencer configuration defaults.
|
|
@@ -23,7 +23,7 @@ export const DEFAULT_ATTESTATION_PROPAGATION_TIME = 2;
|
|
|
23
23
|
maxDABlockGas: 10e9,
|
|
24
24
|
maxBlockSizeInBytes: 1024 * 1024,
|
|
25
25
|
enforceTimeTable: true,
|
|
26
|
-
attestationPropagationTime:
|
|
26
|
+
attestationPropagationTime: DEFAULT_P2P_PROPAGATION_TIME,
|
|
27
27
|
secondsBeforeInvalidatingBlockAsCommitteeMember: 144,
|
|
28
28
|
secondsBeforeInvalidatingBlockAsNonCommitteeMember: 432,
|
|
29
29
|
skipCollectingAttestations: false,
|
|
@@ -32,7 +32,8 @@ export const DEFAULT_ATTESTATION_PROPAGATION_TIME = 2;
|
|
|
32
32
|
injectFakeAttestation: false,
|
|
33
33
|
fishermanMode: false,
|
|
34
34
|
shuffleAttestationOrdering: false,
|
|
35
|
-
skipPushProposedBlocksToArchiver: false
|
|
35
|
+
skipPushProposedBlocksToArchiver: false,
|
|
36
|
+
skipPublishingCheckpointsPercent: 0
|
|
36
37
|
};
|
|
37
38
|
export const sequencerConfigMappings = {
|
|
38
39
|
sequencerPollingIntervalMS: {
|
|
@@ -152,11 +153,7 @@ export const sequencerConfigMappings = {
|
|
|
152
153
|
description: 'Shuffle attestation ordering to create invalid ordering (for testing only)',
|
|
153
154
|
...booleanConfigHelper(DefaultSequencerConfig.shuffleAttestationOrdering)
|
|
154
155
|
},
|
|
155
|
-
|
|
156
|
-
env: 'SEQ_BLOCK_DURATION_MS',
|
|
157
|
-
description: 'Duration per block in milliseconds when building multiple blocks per slot. ' + 'If undefined (default), builds a single block per slot using the full slot duration.',
|
|
158
|
-
parseEnv: (val)=>val ? parseInt(val, 10) : undefined
|
|
159
|
-
},
|
|
156
|
+
...sharedSequencerConfigMappings,
|
|
160
157
|
buildCheckpointIfEmpty: {
|
|
161
158
|
env: 'SEQ_BUILD_CHECKPOINT_IF_EMPTY',
|
|
162
159
|
description: 'Have sequencer build and publish an empty checkpoint if there are no txs',
|
|
@@ -166,6 +163,14 @@ export const sequencerConfigMappings = {
|
|
|
166
163
|
description: 'Skip pushing proposed blocks to archiver (default: true)',
|
|
167
164
|
...booleanConfigHelper(DefaultSequencerConfig.skipPushProposedBlocksToArchiver)
|
|
168
165
|
},
|
|
166
|
+
minBlocksForCheckpoint: {
|
|
167
|
+
description: 'Minimum number of blocks required for a checkpoint proposal (test only)'
|
|
168
|
+
},
|
|
169
|
+
skipPublishingCheckpointsPercent: {
|
|
170
|
+
env: 'SEQ_SKIP_CHECKPOINT_PUBLISH_PERCENT',
|
|
171
|
+
description: 'Percent probability (0 - 100) of sequencer skipping checkpoint publishing (testing only)',
|
|
172
|
+
...numberConfigHelper(DefaultSequencerConfig.skipPublishingCheckpointsPercent)
|
|
173
|
+
},
|
|
169
174
|
...pickConfigMappings(p2pConfigMappings, [
|
|
170
175
|
'txPublicSetupAllowList'
|
|
171
176
|
])
|
|
@@ -175,8 +180,8 @@ export const sequencerClientConfigMappings = {
|
|
|
175
180
|
...sequencerConfigMappings,
|
|
176
181
|
...keyStoreConfigMappings,
|
|
177
182
|
...l1ReaderConfigMappings,
|
|
178
|
-
...
|
|
179
|
-
...
|
|
183
|
+
...sequencerTxSenderConfigMappings,
|
|
184
|
+
...sequencerPublisherConfigMappings,
|
|
180
185
|
...chainConfigMappings,
|
|
181
186
|
...pickConfigMappings(l1ContractsConfigMappings, [
|
|
182
187
|
'ethereumSlotDuration',
|
|
@@ -36,8 +36,6 @@ export declare class GlobalVariableBuilder implements GlobalVariableBuilderInter
|
|
|
36
36
|
*/
|
|
37
37
|
buildGlobalVariables(blockNumber: BlockNumber, coinbase: EthAddress, feeRecipient: AztecAddress, maybeSlot?: SlotNumber): Promise<GlobalVariables>;
|
|
38
38
|
/** Builds global variables that are constant throughout a checkpoint. */
|
|
39
|
-
buildCheckpointGlobalVariables(coinbase: EthAddress, feeRecipient: AztecAddress, slotNumber: SlotNumber): Promise<CheckpointGlobalVariables
|
|
40
|
-
timestamp: bigint;
|
|
41
|
-
}>;
|
|
39
|
+
buildCheckpointGlobalVariables(coinbase: EthAddress, feeRecipient: AztecAddress, slotNumber: SlotNumber): Promise<CheckpointGlobalVariables>;
|
|
42
40
|
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsX2J1aWxkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nbG9iYWxfdmFyaWFibGVfYnVpbGRlci9nbG9iYWxfYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWhFLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFaEUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLEtBQUssaUJBQWlCLEVBQXVCLE1BQU0sNkJBQTZCLENBQUM7QUFDMUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxFQUNWLHlCQUF5QixFQUN6QixxQkFBcUIsSUFBSSw4QkFBOEIsRUFDeEQsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJbkQ7O0dBRUc7QUFDSCxxQkFBYSxxQkFBc0IsWUFBVyw4QkFBOEI7SUFDMUUsT0FBTyxDQUFDLEdBQUcsQ0FBcUQ7SUFDaEUsT0FBTyxDQUFDLGNBQWMsQ0FBd0Q7SUFDOUUsT0FBTyxDQUFDLG9CQUFvQixDQUFpQztJQUU3RCxPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBaUI7SUFDaEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQW1CO0lBQ2hELE9BQU8sQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQVM7SUFDOUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBUztJQUMzQyxPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBUztJQUV2QyxPQUFPLENBQUMsT0FBTyxDQUFLO0lBQ3BCLE9BQU8sQ0FBQyxPQUFPLENBQUs7SUFFcEIsWUFDRSxNQUFNLEVBQUUsY0FBYyxHQUNwQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsc0JBQXNCLENBQUMsR0FDL0MsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGNBQWMsR0FBRyxlQUFlLENBQUMsR0FBRztRQUFFLGFBQWEsRUFBRSxNQUFNLENBQUE7S0FBRSxFQW9CeEY7WUFNYSxxQkFBcUI7SUFldEIsaUJBQWlCLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQVVqRDtJQUVEOzs7Ozs7O09BT0c7SUFDVSxvQkFBb0IsQ0FDL0IsV0FBVyxFQUFFLFdBQVcsRUFDeEIsUUFBUSxFQUFFLFVBQVUsRUFDcEIsWUFBWSxFQUFFLFlBQVksRUFDMUIsU0FBUyxDQUFDLEVBQUUsVUFBVSxHQUNyQixPQUFPLENBQUMsZUFBZSxDQUFDLENBUzFCO0lBRUQseUVBQXlFO0lBQzVELDhCQUE4QixDQUN6QyxRQUFRLEVBQUUsVUFBVSxFQUNwQixZQUFZLEVBQUUsWUFBWSxFQUMxQixVQUFVLEVBQUUsVUFBVSxHQUNyQixPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FhcEM7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global_builder.d.ts","sourceRoot":"","sources":["../../src/global_variable_builder/global_builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,KAAK,iBAAiB,EAAuB,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,EACV,yBAAyB,EACzB,qBAAqB,IAAI,8BAA8B,EACxD,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAInD;;GAEG;AACH,qBAAa,qBAAsB,YAAW,8BAA8B;IAC1E,OAAO,CAAC,GAAG,CAAqD;IAChE,OAAO,CAAC,cAAc,CAAwD;IAC9E,OAAO,CAAC,oBAAoB,CAAiC;IAE7D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,OAAO,CAAK;IAEpB,YACE,MAAM,EAAE,cAAc,GACpB,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,GAC/C,IAAI,CAAC,iBAAiB,EAAE,cAAc,GAAG,eAAe,CAAC,GAAG;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,EAoBxF;YAMa,qBAAqB;IAetB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAUjD;IAED;;;;;;;OAOG;IACU,oBAAoB,CAC/B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,UAAU,EACpB,YAAY,EAAE,YAAY,EAC1B,SAAS,CAAC,EAAE,UAAU,GACrB,OAAO,CAAC,eAAe,CAAC,CAS1B;IAED,yEAAyE;IAC5D,8BAA8B,CACzC,QAAQ,EAAE,UAAU,EACpB,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,yBAAyB,
|
|
1
|
+
{"version":3,"file":"global_builder.d.ts","sourceRoot":"","sources":["../../src/global_variable_builder/global_builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,KAAK,iBAAiB,EAAuB,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,EACV,yBAAyB,EACzB,qBAAqB,IAAI,8BAA8B,EACxD,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAInD;;GAEG;AACH,qBAAa,qBAAsB,YAAW,8BAA8B;IAC1E,OAAO,CAAC,GAAG,CAAqD;IAChE,OAAO,CAAC,cAAc,CAAwD;IAC9E,OAAO,CAAC,oBAAoB,CAAiC;IAE7D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,OAAO,CAAK;IAEpB,YACE,MAAM,EAAE,cAAc,GACpB,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,GAC/C,IAAI,CAAC,iBAAiB,EAAE,cAAc,GAAG,eAAe,CAAC,GAAG;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,EAoBxF;YAMa,qBAAqB;IAetB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAUjD;IAED;;;;;;;OAOG;IACU,oBAAoB,CAC/B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,UAAU,EACpB,YAAY,EAAE,YAAY,EAC1B,SAAS,CAAC,EAAE,UAAU,GACrB,OAAO,CAAC,eAAe,CAAC,CAS1B;IAED,yEAAyE;IAC5D,8BAA8B,CACzC,QAAQ,EAAE,UAAU,EACpB,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,yBAAyB,CAAC,CAapC;CACF"}
|
|
@@ -3,22 +3,24 @@ import { type L1ReaderConfig } from '@aztec/ethereum/l1-reader';
|
|
|
3
3
|
import { type L1TxUtilsConfig } from '@aztec/ethereum/l1-tx-utils/config';
|
|
4
4
|
import { type ConfigMappingsType, SecretValue } from '@aztec/foundation/config';
|
|
5
5
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
6
|
-
/**
|
|
7
|
-
* The configuration of the rollup transaction publisher.
|
|
8
|
-
*/
|
|
6
|
+
/** Configuration of the transaction publisher. */
|
|
9
7
|
export type TxSenderConfig = L1ReaderConfig & {
|
|
10
|
-
/**
|
|
11
|
-
* The private key to be used by the publisher.
|
|
12
|
-
*/
|
|
8
|
+
/** The private key to be used by the publisher. */
|
|
13
9
|
publisherPrivateKeys?: SecretValue<`0x${string}`>[];
|
|
14
|
-
/**
|
|
15
|
-
* Publisher addresses to be used with a remote signer
|
|
16
|
-
*/
|
|
10
|
+
/** Publisher addresses to be used with a remote signer */
|
|
17
11
|
publisherAddresses?: EthAddress[];
|
|
18
12
|
};
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
13
|
+
export type ProverTxSenderConfig = L1ReaderConfig & {
|
|
14
|
+
proverPublisherPrivateKeys?: SecretValue<`0x${string}`>[];
|
|
15
|
+
proverPublisherAddresses?: EthAddress[];
|
|
16
|
+
};
|
|
17
|
+
export type SequencerTxSenderConfig = L1ReaderConfig & {
|
|
18
|
+
sequencerPublisherPrivateKeys?: SecretValue<`0x${string}`>[];
|
|
19
|
+
sequencerPublisherAddresses?: EthAddress[];
|
|
20
|
+
};
|
|
21
|
+
export declare function getTxSenderConfigFromProverConfig(config: ProverTxSenderConfig): TxSenderConfig;
|
|
22
|
+
export declare function getTxSenderConfigFromSequencerConfig(config: SequencerTxSenderConfig): TxSenderConfig;
|
|
23
|
+
/** Configuration of the L1Publisher. */
|
|
22
24
|
export type PublisherConfig = L1TxUtilsConfig & BlobClientConfig & {
|
|
23
25
|
/** True to use publishers in invalid states (timed out, cancelled, etc) if no other is available */
|
|
24
26
|
publisherAllowInvalidStates?: boolean;
|
|
@@ -26,9 +28,25 @@ export type PublisherConfig = L1TxUtilsConfig & BlobClientConfig & {
|
|
|
26
28
|
fishermanMode?: boolean;
|
|
27
29
|
/** Address of the forwarder contract to wrap all L1 transactions through (for testing purposes only) */
|
|
28
30
|
publisherForwarderAddress?: EthAddress;
|
|
31
|
+
/** Store for failed L1 transaction inputs (test networks only). Format: gs://bucket/path */
|
|
32
|
+
l1TxFailedStore?: string;
|
|
33
|
+
};
|
|
34
|
+
export type ProverPublisherConfig = L1TxUtilsConfig & BlobClientConfig & {
|
|
35
|
+
fishermanMode?: boolean;
|
|
36
|
+
proverPublisherAllowInvalidStates?: boolean;
|
|
37
|
+
proverPublisherForwarderAddress?: EthAddress;
|
|
38
|
+
};
|
|
39
|
+
export type SequencerPublisherConfig = L1TxUtilsConfig & BlobClientConfig & {
|
|
40
|
+
fishermanMode?: boolean;
|
|
41
|
+
sequencerPublisherAllowInvalidStates?: boolean;
|
|
42
|
+
sequencerPublisherForwarderAddress?: EthAddress;
|
|
43
|
+
/** Store for failed L1 transaction inputs (test networks only). Format: gs://bucket/path */
|
|
44
|
+
l1TxFailedStore?: string;
|
|
29
45
|
};
|
|
30
|
-
export declare
|
|
31
|
-
export declare function
|
|
32
|
-
export declare const
|
|
33
|
-
export declare
|
|
34
|
-
|
|
46
|
+
export declare function getPublisherConfigFromProverConfig(config: ProverPublisherConfig): PublisherConfig;
|
|
47
|
+
export declare function getPublisherConfigFromSequencerConfig(config: SequencerPublisherConfig): PublisherConfig;
|
|
48
|
+
export declare const proverTxSenderConfigMappings: ConfigMappingsType<Omit<ProverTxSenderConfig, 'l1Contracts'>>;
|
|
49
|
+
export declare const sequencerTxSenderConfigMappings: ConfigMappingsType<Omit<SequencerTxSenderConfig, 'l1Contracts'>>;
|
|
50
|
+
export declare const sequencerPublisherConfigMappings: ConfigMappingsType<SequencerPublisherConfig & L1TxUtilsConfig>;
|
|
51
|
+
export declare const proverPublisherConfigMappings: ConfigMappingsType<ProverPublisherConfig & L1TxUtilsConfig>;
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGlzaGVyL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBMkIsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRyxPQUFPLEVBQUUsS0FBSyxjQUFjLEVBQTBCLE1BQU0sMkJBQTJCLENBQUM7QUFDeEYsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUEyQixNQUFNLG9DQUFvQyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUFFLFdBQVcsRUFBdUIsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFM0Qsa0RBQWtEO0FBQ2xELE1BQU0sTUFBTSxjQUFjLEdBQUcsY0FBYyxHQUFHO0lBQzVDLG1EQUFtRDtJQUNuRCxvQkFBb0IsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxLQUFLLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUVwRCwwREFBMEQ7SUFDMUQsa0JBQWtCLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQztDQUNuQyxDQUFDO0FBRUYsTUFBTSxNQUFNLG9CQUFvQixHQUFHLGNBQWMsR0FBRztJQUNsRCwwQkFBMEIsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxLQUFLLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUMxRCx3QkFBd0IsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDO0NBQ3pDLENBQUM7QUFFRixNQUFNLE1BQU0sdUJBQXVCLEdBQUcsY0FBYyxHQUFHO0lBQ3JELDZCQUE2QixDQUFDLEVBQUUsV0FBVyxDQUFDLEtBQUssTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQzdELDJCQUEyQixDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUM7Q0FDNUMsQ0FBQztBQUVGLHdCQUFnQixpQ0FBaUMsQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLEdBQUcsY0FBYyxDQU05RjtBQUVELHdCQUFnQixvQ0FBb0MsQ0FBQyxNQUFNLEVBQUUsdUJBQXVCLEdBQUcsY0FBYyxDQU1wRztBQUVELHdDQUF3QztBQUN4QyxNQUFNLE1BQU0sZUFBZSxHQUFHLGVBQWUsR0FDM0MsZ0JBQWdCLEdBQUc7SUFDakIsb0dBQW9HO0lBQ3BHLDJCQUEyQixDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQ3RDLDRHQUE0RztJQUM1RyxhQUFhLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDeEIsd0dBQXdHO0lBQ3hHLHlCQUF5QixDQUFDLEVBQUUsVUFBVSxDQUFDO0lBQ3ZDLDRGQUE0RjtJQUM1RixlQUFlLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDMUIsQ0FBQztBQUVKLE1BQU0sTUFBTSxxQkFBcUIsR0FBRyxlQUFlLEdBQ2pELGdCQUFnQixHQUFHO0lBQ2pCLGFBQWEsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUN4QixpQ0FBaUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUM1QywrQkFBK0IsQ0FBQyxFQUFFLFVBQVUsQ0FBQztDQUM5QyxDQUFDO0FBRUosTUFBTSxNQUFNLHdCQUF3QixHQUFHLGVBQWUsR0FDcEQsZ0JBQWdCLEdBQUc7SUFDakIsYUFBYSxDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQ3hCLG9DQUFvQyxDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQy9DLGtDQUFrQyxDQUFDLEVBQUUsVUFBVSxDQUFDO0lBQ2hELDRGQUE0RjtJQUM1RixlQUFlLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDMUIsQ0FBQztBQUVKLHdCQUFnQixrQ0FBa0MsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLEdBQUcsZUFBZSxDQU1qRztBQUVELHdCQUFnQixxQ0FBcUMsQ0FBQyxNQUFNLEVBQUUsd0JBQXdCLEdBQUcsZUFBZSxDQU92RztBQUVELGVBQU8sTUFBTSw0QkFBNEIsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsYUFBYSxDQUFDLENBZXRHLENBQUM7QUFFRixlQUFPLE1BQU0sK0JBQStCLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLGFBQWEsQ0FBQyxDQWU1RyxDQUFDO0FBRUYsZUFBTyxNQUFNLGdDQUFnQyxFQUFFLGtCQUFrQixDQUFDLHdCQUF3QixHQUFHLGVBQWUsQ0F1QjNHLENBQUM7QUFFRixlQUFPLE1BQU0sNkJBQTZCLEVBQUUsa0JBQWtCLENBQUMscUJBQXFCLEdBQUcsZUFBZSxDQW1CckcsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/publisher/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAA2B,MAAM,kCAAkC,CAAC;AAClG,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,2BAA2B,CAAC;AACxF,OAAO,EAAE,KAAK,eAAe,EAA2B,MAAM,oCAAoC,CAAC;AACnG,OAAO,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/publisher/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAA2B,MAAM,kCAAkC,CAAC;AAClG,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,2BAA2B,CAAC;AACxF,OAAO,EAAE,KAAK,eAAe,EAA2B,MAAM,oCAAoC,CAAC;AACnG,OAAO,EAAE,KAAK,kBAAkB,EAAE,WAAW,EAAuB,MAAM,0BAA0B,CAAC;AACrG,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,kDAAkD;AAClD,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C,mDAAmD;IACnD,oBAAoB,CAAC,EAAE,WAAW,CAAC,KAAK,MAAM,EAAE,CAAC,EAAE,CAAC;IAEpD,0DAA0D;IAC1D,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAClD,0BAA0B,CAAC,EAAE,WAAW,CAAC,KAAK,MAAM,EAAE,CAAC,EAAE,CAAC;IAC1D,wBAAwB,CAAC,EAAE,UAAU,EAAE,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,cAAc,GAAG;IACrD,6BAA6B,CAAC,EAAE,WAAW,CAAC,KAAK,MAAM,EAAE,CAAC,EAAE,CAAC;IAC7D,2BAA2B,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5C,CAAC;AAEF,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,CAM9F;AAED,wBAAgB,oCAAoC,CAAC,MAAM,EAAE,uBAAuB,GAAG,cAAc,CAMpG;AAED,wCAAwC;AACxC,MAAM,MAAM,eAAe,GAAG,eAAe,GAC3C,gBAAgB,GAAG;IACjB,oGAAoG;IACpG,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,4GAA4G;IAC5G,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wGAAwG;IACxG,yBAAyB,CAAC,EAAE,UAAU,CAAC;IACvC,4FAA4F;IAC5F,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEJ,MAAM,MAAM,qBAAqB,GAAG,eAAe,GACjD,gBAAgB,GAAG;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAC5C,+BAA+B,CAAC,EAAE,UAAU,CAAC;CAC9C,CAAC;AAEJ,MAAM,MAAM,wBAAwB,GAAG,eAAe,GACpD,gBAAgB,GAAG;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oCAAoC,CAAC,EAAE,OAAO,CAAC;IAC/C,kCAAkC,CAAC,EAAE,UAAU,CAAC;IAChD,4FAA4F;IAC5F,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEJ,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,qBAAqB,GAAG,eAAe,CAMjG;AAED,wBAAgB,qCAAqC,CAAC,MAAM,EAAE,wBAAwB,GAAG,eAAe,CAOvG;AAED,eAAO,MAAM,4BAA4B,EAAE,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAetG,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,kBAAkB,CAAC,IAAI,CAAC,uBAAuB,EAAE,aAAa,CAAC,CAe5G,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,kBAAkB,CAAC,wBAAwB,GAAG,eAAe,CAuB3G,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,kBAAkB,CAAC,qBAAqB,GAAG,eAAe,CAmBrG,CAAC"}
|
package/dest/publisher/config.js
CHANGED
|
@@ -1,48 +1,112 @@
|
|
|
1
1
|
import { blobClientConfigMapping } from '@aztec/blob-client/client/config';
|
|
2
2
|
import { l1ReaderConfigMappings } from '@aztec/ethereum/l1-reader';
|
|
3
3
|
import { l1TxUtilsConfigMappings } from '@aztec/ethereum/l1-tx-utils/config';
|
|
4
|
-
import { SecretValue, booleanConfigHelper
|
|
4
|
+
import { SecretValue, booleanConfigHelper } from '@aztec/foundation/config';
|
|
5
5
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
defaultValue: [],
|
|
13
|
-
fallback: [
|
|
14
|
-
scope === 'PROVER' ? `PROVER_PUBLISHER_PRIVATE_KEY` : `SEQ_PUBLISHER_PRIVATE_KEY`
|
|
15
|
-
]
|
|
16
|
-
},
|
|
17
|
-
publisherAddresses: {
|
|
18
|
-
env: scope === 'PROVER' ? `PROVER_PUBLISHER_ADDRESSES` : `SEQ_PUBLISHER_ADDRESSES`,
|
|
19
|
-
description: 'The addresses of the publishers to use with remote signers',
|
|
20
|
-
parseEnv: (val)=>val.split(',').map((address)=>EthAddress.fromString(address)),
|
|
21
|
-
defaultValue: []
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
export function getTxSenderConfigFromEnv(scope) {
|
|
25
|
-
return getConfigFromMappings(getTxSenderConfigMappings(scope));
|
|
6
|
+
export function getTxSenderConfigFromProverConfig(config) {
|
|
7
|
+
return {
|
|
8
|
+
...config,
|
|
9
|
+
publisherPrivateKeys: config.proverPublisherPrivateKeys,
|
|
10
|
+
publisherAddresses: config.proverPublisherAddresses
|
|
11
|
+
};
|
|
26
12
|
}
|
|
27
|
-
export
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
fishermanMode: {
|
|
34
|
-
env: 'FISHERMAN_MODE',
|
|
35
|
-
description: 'Whether to run in fisherman mode: builds blocks on every slot for validation without publishing to L1',
|
|
36
|
-
...booleanConfigHelper(false)
|
|
37
|
-
},
|
|
38
|
-
publisherForwarderAddress: {
|
|
39
|
-
env: scope === `PROVER` ? `PROVER_PUBLISHER_FORWARDER_ADDRESS` : `SEQ_PUBLISHER_FORWARDER_ADDRESS`,
|
|
40
|
-
description: 'Address of the forwarder contract to wrap all L1 transactions through (for testing purposes only)',
|
|
41
|
-
parseEnv: (val)=>val ? EthAddress.fromString(val) : undefined
|
|
42
|
-
},
|
|
43
|
-
...l1TxUtilsConfigMappings,
|
|
44
|
-
...blobClientConfigMapping
|
|
45
|
-
});
|
|
46
|
-
export function getPublisherConfigFromEnv(scope) {
|
|
47
|
-
return getConfigFromMappings(getPublisherConfigMappings(scope));
|
|
13
|
+
export function getTxSenderConfigFromSequencerConfig(config) {
|
|
14
|
+
return {
|
|
15
|
+
...config,
|
|
16
|
+
publisherPrivateKeys: config.sequencerPublisherPrivateKeys,
|
|
17
|
+
publisherAddresses: config.sequencerPublisherAddresses
|
|
18
|
+
};
|
|
48
19
|
}
|
|
20
|
+
export function getPublisherConfigFromProverConfig(config) {
|
|
21
|
+
return {
|
|
22
|
+
...config,
|
|
23
|
+
publisherAllowInvalidStates: config.proverPublisherAllowInvalidStates,
|
|
24
|
+
publisherForwarderAddress: config.proverPublisherForwarderAddress
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export function getPublisherConfigFromSequencerConfig(config) {
|
|
28
|
+
return {
|
|
29
|
+
...config,
|
|
30
|
+
publisherAllowInvalidStates: config.sequencerPublisherAllowInvalidStates,
|
|
31
|
+
publisherForwarderAddress: config.sequencerPublisherForwarderAddress,
|
|
32
|
+
l1TxFailedStore: config.l1TxFailedStore
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export const proverTxSenderConfigMappings = {
|
|
36
|
+
...l1ReaderConfigMappings,
|
|
37
|
+
proverPublisherPrivateKeys: {
|
|
38
|
+
env: `PROVER_PUBLISHER_PRIVATE_KEYS`,
|
|
39
|
+
description: 'The private keys to be used by the prover publisher.',
|
|
40
|
+
parseEnv: (val)=>val.split(',').map((key)=>new SecretValue(`0x${key.replace('0x', '')}`)),
|
|
41
|
+
defaultValue: [],
|
|
42
|
+
fallback: [
|
|
43
|
+
`PROVER_PUBLISHER_PRIVATE_KEY`
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
proverPublisherAddresses: {
|
|
47
|
+
env: `PROVER_PUBLISHER_ADDRESSES`,
|
|
48
|
+
description: 'The addresses of the publishers to use with remote signers',
|
|
49
|
+
parseEnv: (val)=>val.split(',').map((address)=>EthAddress.fromString(address)),
|
|
50
|
+
defaultValue: []
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
export const sequencerTxSenderConfigMappings = {
|
|
54
|
+
...l1ReaderConfigMappings,
|
|
55
|
+
sequencerPublisherPrivateKeys: {
|
|
56
|
+
env: `SEQ_PUBLISHER_PRIVATE_KEYS`,
|
|
57
|
+
description: 'The private keys to be used by the sequencer publisher.',
|
|
58
|
+
parseEnv: (val)=>val.split(',').map((key)=>new SecretValue(`0x${key.replace('0x', '')}`)),
|
|
59
|
+
defaultValue: [],
|
|
60
|
+
fallback: [
|
|
61
|
+
`SEQ_PUBLISHER_PRIVATE_KEY`
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
sequencerPublisherAddresses: {
|
|
65
|
+
env: `SEQ_PUBLISHER_ADDRESSES`,
|
|
66
|
+
description: 'The addresses of the publishers to use with remote signers',
|
|
67
|
+
parseEnv: (val)=>val.split(',').map((address)=>EthAddress.fromString(address)),
|
|
68
|
+
defaultValue: []
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
export const sequencerPublisherConfigMappings = {
|
|
72
|
+
...l1TxUtilsConfigMappings,
|
|
73
|
+
...blobClientConfigMapping,
|
|
74
|
+
sequencerPublisherAllowInvalidStates: {
|
|
75
|
+
env: `SEQ_PUBLISHER_ALLOW_INVALID_STATES`,
|
|
76
|
+
description: 'True to use publishers in invalid states (timed out, cancelled, etc) if no other is available',
|
|
77
|
+
...booleanConfigHelper(true)
|
|
78
|
+
},
|
|
79
|
+
fishermanMode: {
|
|
80
|
+
env: 'FISHERMAN_MODE',
|
|
81
|
+
description: 'Whether to run in fisherman mode: builds blocks on every slot for validation without publishing to L1',
|
|
82
|
+
...booleanConfigHelper(false)
|
|
83
|
+
},
|
|
84
|
+
sequencerPublisherForwarderAddress: {
|
|
85
|
+
env: `SEQ_PUBLISHER_FORWARDER_ADDRESS`,
|
|
86
|
+
description: 'Address of the forwarder contract to wrap all L1 transactions through (for testing purposes only)',
|
|
87
|
+
parseEnv: (val)=>val ? EthAddress.fromString(val) : undefined
|
|
88
|
+
},
|
|
89
|
+
l1TxFailedStore: {
|
|
90
|
+
env: 'L1_TX_FAILED_STORE',
|
|
91
|
+
description: 'Store for failed L1 transaction inputs (test networks only). Format: gs://bucket/path'
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
export const proverPublisherConfigMappings = {
|
|
95
|
+
...l1TxUtilsConfigMappings,
|
|
96
|
+
...blobClientConfigMapping,
|
|
97
|
+
proverPublisherAllowInvalidStates: {
|
|
98
|
+
env: `PROVER_PUBLISHER_ALLOW_INVALID_STATES`,
|
|
99
|
+
description: 'True to use publishers in invalid states (timed out, cancelled, etc) if no other is available',
|
|
100
|
+
...booleanConfigHelper(true)
|
|
101
|
+
},
|
|
102
|
+
fishermanMode: {
|
|
103
|
+
env: 'FISHERMAN_MODE',
|
|
104
|
+
description: 'Whether to run in fisherman mode: builds blocks on every slot for validation without publishing to L1',
|
|
105
|
+
...booleanConfigHelper(false)
|
|
106
|
+
},
|
|
107
|
+
proverPublisherForwarderAddress: {
|
|
108
|
+
env: `PROVER_PUBLISHER_FORWARDER_ADDRESS`,
|
|
109
|
+
description: 'Address of the forwarder contract to wrap all L1 transactions through (for testing purposes only)',
|
|
110
|
+
parseEnv: (val)=>val ? EthAddress.fromString(val) : undefined
|
|
111
|
+
}
|
|
112
|
+
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { SequencerPublisher } from './sequencer-publisher.js';
|
|
2
2
|
export { SequencerPublisherFactory } from './sequencer-publisher-factory.js';
|
|
3
3
|
export { SequencerPublisherMetrics } from './sequencer-publisher-metrics.js';
|
|
4
|
-
|
|
4
|
+
export { type FailedL1Tx, type FailedL1TxUri, type L1TxFailedStore } from './l1_tx_failed_store/index.js';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaXNoZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHN0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHN0UsT0FBTyxFQUFFLEtBQUssVUFBVSxFQUFFLEtBQUssYUFBYSxFQUFFLEtBQUssZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/publisher/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAG7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/publisher/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAG7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAG7E,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type Logger } from '@aztec/foundation/log';
|
|
2
|
+
import type { L1TxFailedStore } from './failed_tx_store.js';
|
|
3
|
+
/**
|
|
4
|
+
* Creates an L1TxFailedStore from a config string.
|
|
5
|
+
* Supports any backend that FileStore supports (GCS, S3, R2, local filesystem).
|
|
6
|
+
* @param config - Config string (e.g., 'gs://bucket/path', 's3://bucket/path', 'file:///path'). If undefined, returns undefined.
|
|
7
|
+
* @param logger - Optional logger.
|
|
8
|
+
* @returns The store instance, or undefined if config is not provided.
|
|
9
|
+
*/
|
|
10
|
+
export declare function createL1TxFailedStore(config: string | undefined, logger?: Logger): Promise<L1TxFailedStore | undefined>;
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1Ymxpc2hlci9sMV90eF9mYWlsZWRfc3RvcmUvZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFHbEUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHNUQ7Ozs7OztHQU1HO0FBQ0gsd0JBQXNCLHFCQUFxQixDQUN6QyxNQUFNLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDMUIsTUFBTSxHQUFFLE1BQXFELEdBQzVELE9BQU8sQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDLENBZXRDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/publisher/l1_tx_failed_store/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAGlE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,GAAE,MAAqD,GAC5D,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAetC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
2
|
+
import { createFileStore } from '@aztec/stdlib/file-store';
|
|
3
|
+
import { FileStoreL1TxFailedStore } from './file_store_failed_tx_store.js';
|
|
4
|
+
/**
|
|
5
|
+
* Creates an L1TxFailedStore from a config string.
|
|
6
|
+
* Supports any backend that FileStore supports (GCS, S3, R2, local filesystem).
|
|
7
|
+
* @param config - Config string (e.g., 'gs://bucket/path', 's3://bucket/path', 'file:///path'). If undefined, returns undefined.
|
|
8
|
+
* @param logger - Optional logger.
|
|
9
|
+
* @returns The store instance, or undefined if config is not provided.
|
|
10
|
+
*/ export async function createL1TxFailedStore(config, logger = createLogger('sequencer:l1-tx-failed-store')) {
|
|
11
|
+
if (!config) {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
const fileStore = await createFileStore(config, logger);
|
|
15
|
+
if (!fileStore) {
|
|
16
|
+
throw new Error(`Failed to create file store from config: '${config}'. ` + `Supported formats: 'gs://bucket/path', 's3://bucket/path', 'file:///path'.`);
|
|
17
|
+
}
|
|
18
|
+
logger.info(`Created L1 tx failed store`, {
|
|
19
|
+
config
|
|
20
|
+
});
|
|
21
|
+
return new FileStoreL1TxFailedStore(fileStore, logger);
|
|
22
|
+
}
|