@aztec/sequencer-client 2.0.3 → 2.1.0-rc.10
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.map +1 -1
- package/dest/client/sequencer-client.js +7 -4
- package/dest/config.d.ts +2 -1
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +6 -0
- package/dest/global_variable_builder/global_builder.js +1 -1
- package/dest/publisher/config.d.ts +2 -4
- package/dest/publisher/config.d.ts.map +1 -1
- package/dest/publisher/config.js +7 -10
- package/dest/publisher/index.d.ts +1 -1
- package/dest/publisher/index.d.ts.map +1 -1
- package/dest/publisher/index.js +1 -1
- package/dest/publisher/sequencer-publisher-factory.d.ts +5 -1
- package/dest/publisher/sequencer-publisher-factory.d.ts.map +1 -1
- package/dest/publisher/sequencer-publisher-factory.js +8 -1
- package/dest/publisher/sequencer-publisher-metrics.js +1 -1
- package/dest/publisher/sequencer-publisher.d.ts +17 -23
- package/dest/publisher/sequencer-publisher.d.ts.map +1 -1
- package/dest/publisher/sequencer-publisher.js +54 -59
- package/dest/sequencer/errors.d.ts +11 -0
- package/dest/sequencer/errors.d.ts.map +1 -0
- package/dest/sequencer/errors.js +15 -0
- package/dest/sequencer/metrics.d.ts +5 -17
- package/dest/sequencer/metrics.d.ts.map +1 -1
- package/dest/sequencer/metrics.js +23 -89
- package/dest/sequencer/sequencer.d.ts +5 -4
- package/dest/sequencer/sequencer.d.ts.map +1 -1
- package/dest/sequencer/sequencer.js +37 -22
- package/dest/sequencer/timetable.d.ts +0 -6
- package/dest/sequencer/timetable.d.ts.map +1 -1
- package/dest/sequencer/timetable.js +2 -9
- package/dest/sequencer/utils.d.ts +10 -24
- package/dest/sequencer/utils.d.ts.map +1 -1
- package/dest/sequencer/utils.js +9 -24
- package/package.json +30 -30
- package/src/client/sequencer-client.ts +6 -2
- package/src/config.ts +7 -0
- package/src/global_variable_builder/global_builder.ts +1 -1
- package/src/publisher/config.ts +13 -11
- package/src/publisher/index.ts +1 -1
- package/src/publisher/sequencer-publisher-factory.ts +12 -2
- package/src/publisher/sequencer-publisher-metrics.ts +1 -1
- package/src/publisher/sequencer-publisher.ts +78 -78
- package/src/sequencer/errors.ts +21 -0
- package/src/sequencer/metrics.ts +24 -100
- package/src/sequencer/sequencer.ts +62 -49
- package/src/sequencer/timetable.ts +2 -13
- package/src/sequencer/utils.ts +10 -24
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequencer-client.d.ts","sourceRoot":"","sources":["../../src/client/sequencer-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAEL,gBAAgB,EAIjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EACV,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEpF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExE;;GAEG;AACH,qBAAa,eAAe;IAExB,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,kBAAkB,CAAC;IAChE,SAAS,CAAC,SAAS,EAAE,SAAS;IAC9B,SAAS,CAAC,YAAY,EAAE,qBAAqB;IAC7C,SAAS,CAAC,eAAe,CAAC,EAAE,eAAe;IAC3C,OAAO,CAAC,SAAS,CAAC;gBAJR,gBAAgB,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EACtD,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,qBAAqB,EACnC,eAAe,CAAC,EAAE,eAAe,YAAA,EACnC,SAAS,CAAC,EAAE,SAAS,YAAA;IAG/B;;;;;;;;;;;OAWG;WACiB,GAAG,CACrB,MAAM,EAAE,qBAAqB,EAC7B,IAAI,EAAE;QACJ,eAAe,EAAE,eAAe,GAAG,SAAS,CAAC;QAC7C,SAAS,EAAE,GAAG,CAAC;QACf,sBAAsB,EAAE,sBAAsB,CAAC;QAC/C,aAAa,EAAE,sBAAsB,GAAG,SAAS,CAAC;QAClD,YAAY,EAAE,qBAAqB,CAAC;QACpC,aAAa,EAAE,aAAa,CAAC;QAC7B,mBAAmB,EAAE,mBAAmB,CAAC;QACzC,SAAS,EAAE,eAAe,CAAC;QAC3B,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;QAC7C,cAAc,CAAC,EAAE,uBAAuB,CAAC;QACzC,YAAY,EAAE,YAAY,CAAC;QAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,SAAS,EAAE,kBAAkB,EAAE,CAAC;QAChC,YAAY,EAAE,eAAe,CAAC;KAC/B;
|
|
1
|
+
{"version":3,"file":"sequencer-client.d.ts","sourceRoot":"","sources":["../../src/client/sequencer-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAEL,gBAAgB,EAIjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EACV,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEpF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExE;;GAEG;AACH,qBAAa,eAAe;IAExB,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,kBAAkB,CAAC;IAChE,SAAS,CAAC,SAAS,EAAE,SAAS;IAC9B,SAAS,CAAC,YAAY,EAAE,qBAAqB;IAC7C,SAAS,CAAC,eAAe,CAAC,EAAE,eAAe;IAC3C,OAAO,CAAC,SAAS,CAAC;gBAJR,gBAAgB,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EACtD,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,qBAAqB,EACnC,eAAe,CAAC,EAAE,eAAe,YAAA,EACnC,SAAS,CAAC,EAAE,SAAS,YAAA;IAG/B;;;;;;;;;;;OAWG;WACiB,GAAG,CACrB,MAAM,EAAE,qBAAqB,EAC7B,IAAI,EAAE;QACJ,eAAe,EAAE,eAAe,GAAG,SAAS,CAAC;QAC7C,SAAS,EAAE,GAAG,CAAC;QACf,sBAAsB,EAAE,sBAAsB,CAAC;QAC/C,aAAa,EAAE,sBAAsB,GAAG,SAAS,CAAC;QAClD,YAAY,EAAE,qBAAqB,CAAC;QACpC,aAAa,EAAE,aAAa,CAAC;QAC7B,mBAAmB,EAAE,mBAAmB,CAAC;QACzC,SAAS,EAAE,eAAe,CAAC;QAC3B,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;QAC7C,cAAc,CAAC,EAAE,uBAAuB,CAAC;QACzC,YAAY,EAAE,YAAY,CAAC;QAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,SAAS,EAAE,kBAAkB,EAAE,CAAC;QAChC,YAAY,EAAE,eAAe,CAAC;KAC/B;IAoHH;;;OAGG;IACI,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAMhF,4BAA4B;IACf,KAAK;IAOlB;;OAEG;IACU,IAAI;IAOV,YAAY,IAAI,SAAS;IAIhC,IAAI,kBAAkB,IAAI,UAAU,EAAE,GAAG,SAAS,CAEjD;IAED,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;CACF"}
|
|
@@ -37,11 +37,11 @@ import { Sequencer } from '../sequencer/index.js';
|
|
|
37
37
|
*/ static async new(config, deps) {
|
|
38
38
|
const { validatorClient, p2pClient, worldStateSynchronizer, slasherClient, blockBuilder, l2BlockSource, l1ToL2MessageSource, telemetry: telemetryClient } = deps;
|
|
39
39
|
const { l1RpcUrls: rpcUrls, l1ChainId: chainId } = config;
|
|
40
|
-
const log = createLogger('sequencer
|
|
40
|
+
const log = createLogger('sequencer');
|
|
41
41
|
const publicClient = getPublicClient(config);
|
|
42
42
|
const l1TxUtils = deps.l1TxUtils;
|
|
43
43
|
const l1Metrics = new L1Metrics(telemetryClient.getMeter('L1PublisherMetrics'), publicClient, l1TxUtils.map((x)=>x.getSenderAddress()));
|
|
44
|
-
const publisherManager = new PublisherManager(l1TxUtils);
|
|
44
|
+
const publisherManager = new PublisherManager(l1TxUtils, config);
|
|
45
45
|
const rollupContract = new RollupContract(publicClient, config.l1Contracts.rollupAddress.toString());
|
|
46
46
|
const [l1GenesisTime, slotDuration] = await Promise.all([
|
|
47
47
|
rollupContract.getL1GenesisTime(),
|
|
@@ -66,7 +66,8 @@ import { Sequencer } from '../sequencer/index.js';
|
|
|
66
66
|
rollupContract,
|
|
67
67
|
dateProvider: deps.dateProvider,
|
|
68
68
|
publisherManager,
|
|
69
|
-
nodeKeyStore: NodeKeystoreAdapter.fromKeyStoreManager(deps.nodeKeyStore)
|
|
69
|
+
nodeKeyStore: NodeKeystoreAdapter.fromKeyStoreManager(deps.nodeKeyStore),
|
|
70
|
+
logger: log
|
|
70
71
|
});
|
|
71
72
|
const globalsBuilder = new GlobalVariableBuilder(config);
|
|
72
73
|
const ethereumSlotDuration = config.ethereumSlotDuration;
|
|
@@ -92,7 +93,7 @@ import { Sequencer } from '../sequencer/index.js';
|
|
|
92
93
|
...config,
|
|
93
94
|
maxL1TxInclusionTimeIntoSlot,
|
|
94
95
|
maxL2BlockGas: sequencerManaLimit
|
|
95
|
-
}, telemetryClient);
|
|
96
|
+
}, telemetryClient, log);
|
|
96
97
|
await sequencer.init();
|
|
97
98
|
return new SequencerClient(publisherManager, sequencer, blockBuilder, validatorClient, l1Metrics);
|
|
98
99
|
}
|
|
@@ -108,11 +109,13 @@ import { Sequencer } from '../sequencer/index.js';
|
|
|
108
109
|
await this.validatorClient?.start();
|
|
109
110
|
this.sequencer.start();
|
|
110
111
|
this.l1Metrics?.start();
|
|
112
|
+
await this.publisherManager.loadState();
|
|
111
113
|
}
|
|
112
114
|
/**
|
|
113
115
|
* Stops the sequencer from processing new txs.
|
|
114
116
|
*/ async stop() {
|
|
115
117
|
await this.sequencer.stop();
|
|
118
|
+
await this.validatorClient?.stop();
|
|
116
119
|
this.publisherManager.interrupt();
|
|
117
120
|
this.l1Metrics?.stop();
|
|
118
121
|
}
|
package/dest/config.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type L1ContractsConfig, type L1ReaderConfig } from '@aztec/ethereum';
|
|
2
2
|
import { type ConfigMappingsType } from '@aztec/foundation/config';
|
|
3
|
+
import { type KeyStoreConfig } from '@aztec/node-keystore';
|
|
3
4
|
import { type P2PConfig } from '@aztec/p2p';
|
|
4
5
|
import { type ChainConfig, type SequencerConfig } from '@aztec/stdlib/config';
|
|
5
6
|
import { type ValidatorClientConfig } from '@aztec/validator-client';
|
|
@@ -10,7 +11,7 @@ export declare const DEFAULT_ATTESTATION_PROPAGATION_TIME = 2;
|
|
|
10
11
|
/**
|
|
11
12
|
* Configuration settings for the SequencerClient.
|
|
12
13
|
*/
|
|
13
|
-
export type SequencerClientConfig = PublisherConfig & ValidatorClientConfig & TxSenderConfig & SequencerConfig & L1ReaderConfig & ChainConfig & Pick<P2PConfig, 'txPublicSetupAllowList'> & Pick<L1ContractsConfig, 'ethereumSlotDuration' | 'aztecSlotDuration' | 'aztecEpochDuration'>;
|
|
14
|
+
export type SequencerClientConfig = PublisherConfig & KeyStoreConfig & ValidatorClientConfig & TxSenderConfig & SequencerConfig & L1ReaderConfig & ChainConfig & Pick<P2PConfig, 'txPublicSetupAllowList'> & Pick<L1ContractsConfig, 'ethereumSlotDuration' | 'aztecSlotDuration' | 'aztecEpochDuration'>;
|
|
14
15
|
export declare const sequencerConfigMappings: ConfigMappingsType<SequencerConfig>;
|
|
15
16
|
export declare const sequencerClientConfigMappings: ConfigMappingsType<SequencerClientConfig>;
|
|
16
17
|
/**
|
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,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAGpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,YAAY,CAAC;AAE/D,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAuB,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,KAAK,qBAAqB,EAAiC,MAAM,yBAAyB,CAAC;AAEpG,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAGpB,MAAM,uBAAuB,CAAC;AAE/B,cAAc,uBAAuB,CAAC;AACtC,YAAY,EAAE,eAAe,EAAE,CAAC;AAEhC,eAAO,MAAM,oCAAoC,IAAI,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,eAAe,GACjD,qBAAqB,GACrB,cAAc,GACd,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,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAGpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,YAAY,CAAC;AAE/D,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAuB,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,KAAK,qBAAqB,EAAiC,MAAM,yBAAyB,CAAC;AAEpG,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAGpB,MAAM,uBAAuB,CAAC;AAE/B,cAAc,uBAAuB,CAAC;AACtC,YAAY,EAAE,eAAe,EAAE,CAAC;AAEhC,eAAO,MAAM,oCAAoC,IAAI,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,eAAe,GACjD,cAAc,GACd,qBAAqB,GACrB,cAAc,GACd,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,CA2GvE,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,kBAAkB,CAAC,qBAAqB,CASnF,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,qBAAqB,CAExD"}
|
package/dest/config.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { l1ContractsConfigMappings, l1ReaderConfigMappings } from '@aztec/ethereum';
|
|
2
2
|
import { booleanConfigHelper, getConfigFromMappings, numberConfigHelper, pickConfigMappings } from '@aztec/foundation/config';
|
|
3
3
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
|
+
import { keyStoreConfigMappings } from '@aztec/node-keystore';
|
|
4
5
|
import { p2pConfigMappings } from '@aztec/p2p';
|
|
5
6
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
6
7
|
import { chainConfigMappings } from '@aztec/stdlib/config';
|
|
@@ -105,6 +106,10 @@ export const sequencerConfigMappings = {
|
|
|
105
106
|
description: 'Do not invalidate the previous block if invalid when we are the proposer (for testing only)',
|
|
106
107
|
...booleanConfigHelper(false)
|
|
107
108
|
},
|
|
109
|
+
injectFakeAttestation: {
|
|
110
|
+
description: 'Inject a fake attestation (for testing only)',
|
|
111
|
+
...booleanConfigHelper(false)
|
|
112
|
+
},
|
|
108
113
|
...pickConfigMappings(p2pConfigMappings, [
|
|
109
114
|
'txPublicSetupAllowList'
|
|
110
115
|
])
|
|
@@ -112,6 +117,7 @@ export const sequencerConfigMappings = {
|
|
|
112
117
|
export const sequencerClientConfigMappings = {
|
|
113
118
|
...validatorClientConfigMappings,
|
|
114
119
|
...sequencerConfigMappings,
|
|
120
|
+
...keyStoreConfigMappings,
|
|
115
121
|
...l1ReaderConfigMappings,
|
|
116
122
|
...getTxSenderConfigMappings('SEQ'),
|
|
117
123
|
...getPublisherConfigMappings('SEQ'),
|
|
@@ -3,7 +3,7 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { GasFees } from '@aztec/stdlib/gas';
|
|
5
5
|
import { GlobalVariables } from '@aztec/stdlib/tx';
|
|
6
|
-
import { createPublicClient, fallback, http } from 'viem';
|
|
6
|
+
import { createPublicClient, fallback, http } from '@spalladino/viem';
|
|
7
7
|
/**
|
|
8
8
|
* Simple global variables builder.
|
|
9
9
|
*/ export class GlobalVariableBuilder {
|
|
@@ -19,10 +19,8 @@ export type TxSenderConfig = L1ReaderConfig & {
|
|
|
19
19
|
* Configuration of the L1Publisher.
|
|
20
20
|
*/
|
|
21
21
|
export type PublisherConfig = L1TxUtilsConfig & BlobSinkConfig & {
|
|
22
|
-
/**
|
|
23
|
-
|
|
24
|
-
*/
|
|
25
|
-
l1PublishRetryIntervalMS: number;
|
|
22
|
+
/** True to use publishers in invalid states (timed out, cancelled, etc) if no other is available */
|
|
23
|
+
publisherAllowInvalidStates?: boolean;
|
|
26
24
|
};
|
|
27
25
|
export declare const getTxSenderConfigMappings: (scope: 'PROVER' | 'SEQ') => ConfigMappingsType<Omit<TxSenderConfig, 'l1Contracts'>>;
|
|
28
26
|
export declare function getTxSenderConfigFromEnv(scope: 'PROVER' | 'SEQ'): Omit<TxSenderConfig, 'l1Contracts'>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/publisher/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAyB,MAAM,yBAAyB,CAAC;AACrF,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,eAAe,EAGrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/publisher/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAyB,MAAM,yBAAyB,CAAC;AACrF,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,eAAe,EAGrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,kBAAkB,EACvB,WAAW,EAGZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C;;OAEG;IACH,oBAAoB,CAAC,EAAE,WAAW,CAAC,KAAK,MAAM,EAAE,CAAC,EAAE,CAAC;IAEpD;;OAEG;IACH,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC;CACnC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,eAAe,GAC3C,cAAc,GAAG;IACf,oGAAoG;IACpG,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC,CAAC;AAEJ,eAAO,MAAM,yBAAyB,EAAE,CACtC,KAAK,EAAE,QAAQ,GAAG,KAAK,KACpB,kBAAkB,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAezD,CAAC;AAEH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAErG;AAED,eAAO,MAAM,0BAA0B,EAAE,CACvC,KAAK,EAAE,QAAQ,GAAG,KAAK,KACpB,kBAAkB,CAAC,eAAe,GAAG,eAAe,CAQvD,CAAC;AAEH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,eAAe,CAElF"}
|
package/dest/publisher/config.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { blobSinkConfigMapping } from '@aztec/blob-sink/client';
|
|
2
2
|
import { l1ReaderConfigMappings, l1TxUtilsConfigMappings } from '@aztec/ethereum';
|
|
3
|
-
import { SecretValue, getConfigFromMappings } from '@aztec/foundation/config';
|
|
3
|
+
import { SecretValue, booleanConfigHelper, getConfigFromMappings } from '@aztec/foundation/config';
|
|
4
4
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
5
|
export const getTxSenderConfigMappings = (scope)=>({
|
|
6
6
|
...l1ReaderConfigMappings,
|
|
@@ -9,10 +9,8 @@ export const getTxSenderConfigMappings = (scope)=>({
|
|
|
9
9
|
description: 'The private keys to be used by the publisher.',
|
|
10
10
|
parseEnv: (val)=>val.split(',').map((key)=>new SecretValue(`0x${key.replace('0x', '')}`)),
|
|
11
11
|
defaultValue: [],
|
|
12
|
-
fallback:
|
|
13
|
-
'PROVER_PUBLISHER_PRIVATE_KEY
|
|
14
|
-
] : [
|
|
15
|
-
'SEQ_PUBLISHER_PRIVATE_KEY'
|
|
12
|
+
fallback: [
|
|
13
|
+
scope === 'PROVER' ? `PROVER_PUBLISHER_PRIVATE_KEY` : `SEQ_PUBLISHER_PRIVATE_KEY`
|
|
16
14
|
]
|
|
17
15
|
},
|
|
18
16
|
publisherAddresses: {
|
|
@@ -26,11 +24,10 @@ export function getTxSenderConfigFromEnv(scope) {
|
|
|
26
24
|
return getConfigFromMappings(getTxSenderConfigMappings(scope));
|
|
27
25
|
}
|
|
28
26
|
export const getPublisherConfigMappings = (scope)=>({
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
description: 'The interval to wait between publish retries.'
|
|
27
|
+
publisherAllowInvalidStates: {
|
|
28
|
+
description: 'True to use publishers in invalid states (timed out, cancelled, etc) if no other is available',
|
|
29
|
+
env: scope === `PROVER` ? `PROVER_PUBLISHER_ALLOW_INVALID_STATES` : `SEQ_PUBLISHER_ALLOW_INVALID_STATES`,
|
|
30
|
+
...booleanConfigHelper(true)
|
|
34
31
|
},
|
|
35
32
|
...l1TxUtilsConfigMappings,
|
|
36
33
|
...blobSinkConfigMapping
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { SequencerPublisher
|
|
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
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/publisher/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,
|
|
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"}
|
package/dest/publisher/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { SequencerPublisher
|
|
1
|
+
export { SequencerPublisher } from './sequencer-publisher.js';
|
|
2
2
|
export { SequencerPublisherFactory } from './sequencer-publisher-factory.js';
|
|
3
3
|
// Used for tests
|
|
4
4
|
export { SequencerPublisherMetrics } from './sequencer-publisher-metrics.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EthAddress } from '@aztec/aztec.js';
|
|
1
|
+
import { EthAddress, type Logger } from '@aztec/aztec.js';
|
|
2
2
|
import type { BlobSinkClientInterface } from '@aztec/blob-sink/client';
|
|
3
3
|
import type { EpochCache } from '@aztec/epoch-cache';
|
|
4
4
|
import type { GovernanceProposerContract, PublisherManager, RollupContract } from '@aztec/ethereum';
|
|
@@ -17,6 +17,9 @@ export declare class SequencerPublisherFactory {
|
|
|
17
17
|
private sequencerConfig;
|
|
18
18
|
private deps;
|
|
19
19
|
private publisherMetrics;
|
|
20
|
+
/** Stores the last slot in which every action was carried out by a publisher */
|
|
21
|
+
private lastActions;
|
|
22
|
+
private logger;
|
|
20
23
|
constructor(sequencerConfig: SequencerClientConfig, deps: {
|
|
21
24
|
telemetry: TelemetryClient;
|
|
22
25
|
publisherManager: PublisherManager<L1TxUtilsWithBlobs>;
|
|
@@ -27,6 +30,7 @@ export declare class SequencerPublisherFactory {
|
|
|
27
30
|
governanceProposerContract: GovernanceProposerContract;
|
|
28
31
|
slashFactoryContract: SlashFactoryContract;
|
|
29
32
|
nodeKeyStore: NodeKeystoreAdapter;
|
|
33
|
+
logger?: Logger;
|
|
30
34
|
});
|
|
31
35
|
/**
|
|
32
36
|
* Creates a new SequencerPublisher instance.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequencer-publisher-factory.d.ts","sourceRoot":"","sources":["../../src/publisher/sequencer-publisher-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"sequencer-publisher-factory.d.ts","sourceRoot":"","sources":["../../src/publisher/sequencer-publisher-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,MAAM,EAAgB,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,0BAA0B,EAAmB,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACrH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAe,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE3E,MAAM,MAAM,qBAAqB,GAAG;IAClC,eAAe,EAAE,UAAU,CAAC;IAC5B,SAAS,EAAE,kBAAkB,CAAC;CAC/B,CAAC;AAEF,qBAAa,yBAAyB;IASlC,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,IAAI;IATd,OAAO,CAAC,gBAAgB,CAA4B;IAEpD,gFAAgF;IAChF,OAAO,CAAC,WAAW,CAAuC;IAE1D,OAAO,CAAC,MAAM,CAAS;gBAGb,eAAe,EAAE,qBAAqB,EACtC,IAAI,EAAE;QACZ,SAAS,EAAE,eAAe,CAAC;QAC3B,gBAAgB,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;QACvD,cAAc,CAAC,EAAE,uBAAuB,CAAC;QACzC,YAAY,EAAE,YAAY,CAAC;QAC3B,UAAU,EAAE,UAAU,CAAC;QACvB,cAAc,EAAE,cAAc,CAAC;QAC/B,0BAA0B,EAAE,0BAA0B,CAAC;QACvD,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,YAAY,EAAE,mBAAmB,CAAC;QAClC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IAKH;;;;OAIG;IACU,MAAM,CAAC,gBAAgB,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAsCnF"}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
+
import { createLogger } from '@aztec/aztec.js';
|
|
1
2
|
import { SequencerPublisherMetrics } from './sequencer-publisher-metrics.js';
|
|
2
3
|
import { SequencerPublisher } from './sequencer-publisher.js';
|
|
3
4
|
export class SequencerPublisherFactory {
|
|
4
5
|
sequencerConfig;
|
|
5
6
|
deps;
|
|
6
7
|
publisherMetrics;
|
|
8
|
+
/** Stores the last slot in which every action was carried out by a publisher */ lastActions;
|
|
9
|
+
logger;
|
|
7
10
|
constructor(sequencerConfig, deps){
|
|
8
11
|
this.sequencerConfig = sequencerConfig;
|
|
9
12
|
this.deps = deps;
|
|
13
|
+
this.lastActions = {};
|
|
10
14
|
this.publisherMetrics = new SequencerPublisherMetrics(deps.telemetry, 'SequencerPublisher');
|
|
15
|
+
this.logger = deps.logger ?? createLogger('sequencer');
|
|
11
16
|
}
|
|
12
17
|
/**
|
|
13
18
|
* Creates a new SequencerPublisher instance.
|
|
@@ -34,7 +39,9 @@ export class SequencerPublisherFactory {
|
|
|
34
39
|
slashingProposerContract,
|
|
35
40
|
slashFactoryContract: this.deps.slashFactoryContract,
|
|
36
41
|
dateProvider: this.deps.dateProvider,
|
|
37
|
-
metrics: this.publisherMetrics
|
|
42
|
+
metrics: this.publisherMetrics,
|
|
43
|
+
lastActions: this.lastActions,
|
|
44
|
+
log: this.logger.createChild('publisher')
|
|
38
45
|
});
|
|
39
46
|
return {
|
|
40
47
|
attestorAddress,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createLogger } from '@aztec/aztec.js';
|
|
2
2
|
import { Attributes, Metrics, ValueType } from '@aztec/telemetry-client';
|
|
3
|
-
import { formatEther } from 'viem/utils';
|
|
3
|
+
import { formatEther } from '@spalladino/viem/utils';
|
|
4
4
|
export class SequencerPublisherMetrics {
|
|
5
5
|
logger;
|
|
6
6
|
gasPrice;
|
|
@@ -1,23 +1,21 @@
|
|
|
1
1
|
import type { L2Block } from '@aztec/aztec.js';
|
|
2
2
|
import { type BlobSinkClientInterface } from '@aztec/blob-sink/client';
|
|
3
3
|
import type { EpochCache } from '@aztec/epoch-cache';
|
|
4
|
-
import { type EmpireSlashingProposerContract, FormattedViemError, type
|
|
4
|
+
import { type EmpireSlashingProposerContract, FormattedViemError, type GovernanceProposerContract, type L1BlobInputs, type L1ContractsConfig, type L1TxConfig, type L1TxRequest, RollupContract, type TallySlashingProposerContract, type TransactionStats } from '@aztec/ethereum';
|
|
5
5
|
import type { L1TxUtilsWithBlobs } from '@aztec/ethereum/l1-tx-utils-with-blobs';
|
|
6
6
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
7
|
+
import { Signature } from '@aztec/foundation/eth-signature';
|
|
7
8
|
import type { Fr } from '@aztec/foundation/fields';
|
|
9
|
+
import { type Logger } from '@aztec/foundation/log';
|
|
8
10
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
9
11
|
import { type ProposerSlashAction } from '@aztec/slasher';
|
|
10
|
-
import {
|
|
12
|
+
import { CommitteeAttestationsAndSigners, type ValidateBlockResult } from '@aztec/stdlib/block';
|
|
11
13
|
import { SlashFactoryContract } from '@aztec/stdlib/l1-contracts';
|
|
12
|
-
import { type ProposedBlockHeader
|
|
14
|
+
import { type ProposedBlockHeader } from '@aztec/stdlib/tx';
|
|
13
15
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
14
|
-
import { type TransactionReceipt, type TypedDataDefinition } from 'viem';
|
|
16
|
+
import { type TransactionReceipt, type TypedDataDefinition } from '@spalladino/viem';
|
|
15
17
|
import type { PublisherConfig, TxSenderConfig } from './config.js';
|
|
16
18
|
import { SequencerPublisherMetrics } from './sequencer-publisher-metrics.js';
|
|
17
|
-
export declare enum SignalType {
|
|
18
|
-
GOVERNANCE = 0,
|
|
19
|
-
SLASHING = 1
|
|
20
|
-
}
|
|
21
19
|
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"];
|
|
22
20
|
export type Action = (typeof Actions)[number];
|
|
23
21
|
export declare const compareActions: (a: Action, b: Action) => number;
|
|
@@ -32,11 +30,10 @@ interface RequestWithExpiry {
|
|
|
32
30
|
action: Action;
|
|
33
31
|
request: L1TxRequest;
|
|
34
32
|
lastValidL2Slot: bigint;
|
|
35
|
-
gasConfig?: Pick<
|
|
33
|
+
gasConfig?: Pick<L1TxConfig, 'txTimeoutAt' | 'gasLimit'>;
|
|
36
34
|
blobConfig?: L1BlobInputs;
|
|
37
35
|
checkSuccess: (request: L1TxRequest, result?: {
|
|
38
36
|
receipt: TransactionReceipt;
|
|
39
|
-
gasPrice: GasPrice;
|
|
40
37
|
stats?: TransactionStats;
|
|
41
38
|
errorMsg?: string;
|
|
42
39
|
}) => boolean;
|
|
@@ -46,10 +43,10 @@ export declare class SequencerPublisher {
|
|
|
46
43
|
private interrupted;
|
|
47
44
|
private metrics;
|
|
48
45
|
epochCache: EpochCache;
|
|
49
|
-
protected governanceLog:
|
|
50
|
-
protected slashingLog:
|
|
51
|
-
|
|
52
|
-
protected log:
|
|
46
|
+
protected governanceLog: Logger;
|
|
47
|
+
protected slashingLog: Logger;
|
|
48
|
+
protected lastActions: Partial<Record<Action, bigint>>;
|
|
49
|
+
protected log: Logger;
|
|
53
50
|
protected ethereumSlotDuration: bigint;
|
|
54
51
|
private blobSinkClient;
|
|
55
52
|
static PROPOSE_GAS_GUESS: bigint;
|
|
@@ -72,6 +69,8 @@ export declare class SequencerPublisher {
|
|
|
72
69
|
epochCache: EpochCache;
|
|
73
70
|
dateProvider: DateProvider;
|
|
74
71
|
metrics: SequencerPublisherMetrics;
|
|
72
|
+
lastActions: Partial<Record<Action, bigint>>;
|
|
73
|
+
log?: Logger;
|
|
75
74
|
});
|
|
76
75
|
getRollupContract(): RollupContract;
|
|
77
76
|
getSenderAddress(): EthAddress;
|
|
@@ -86,13 +85,11 @@ export declare class SequencerPublisher {
|
|
|
86
85
|
*/
|
|
87
86
|
sendRequests(): Promise<{
|
|
88
87
|
result: FormattedViemError | {
|
|
89
|
-
receipt: import("viem").TransactionReceipt;
|
|
90
|
-
gasPrice: GasPrice;
|
|
88
|
+
receipt: import("@spalladino/viem").TransactionReceipt;
|
|
91
89
|
stats: TransactionStats | undefined;
|
|
92
90
|
errorMsg?: undefined;
|
|
93
91
|
} | {
|
|
94
|
-
receipt: import("viem").TransactionReceipt;
|
|
95
|
-
gasPrice: GasPrice;
|
|
92
|
+
receipt: import("@spalladino/viem").TransactionReceipt;
|
|
96
93
|
errorMsg: string | undefined;
|
|
97
94
|
stats?: undefined;
|
|
98
95
|
};
|
|
@@ -138,10 +135,7 @@ export declare class SequencerPublisher {
|
|
|
138
135
|
* @param attestationData - The block's attestation data
|
|
139
136
|
*
|
|
140
137
|
*/
|
|
141
|
-
validateBlockForSubmission(block: L2Block,
|
|
142
|
-
digest: Buffer;
|
|
143
|
-
attestations: CommitteeAttestation[];
|
|
144
|
-
} | undefined, options: {
|
|
138
|
+
validateBlockForSubmission(block: L2Block, attestationsAndSigners: CommitteeAttestationsAndSigners, attestationsAndSignersSignature: Signature, options: {
|
|
145
139
|
forcePendingBlockNumber?: number;
|
|
146
140
|
}): Promise<bigint>;
|
|
147
141
|
private enqueueCastSignalHelper;
|
|
@@ -160,7 +154,7 @@ export declare class SequencerPublisher {
|
|
|
160
154
|
* @param block - L2 block to propose.
|
|
161
155
|
* @returns True if the tx has been enqueued, throws otherwise. See #9315
|
|
162
156
|
*/
|
|
163
|
-
enqueueProposeL2Block(block: L2Block,
|
|
157
|
+
enqueueProposeL2Block(block: L2Block, attestationsAndSigners: CommitteeAttestationsAndSigners, attestationsAndSignersSignature: Signature, opts?: {
|
|
164
158
|
txTimeoutAt?: Date;
|
|
165
159
|
forcePendingBlockNumber?: number;
|
|
166
160
|
}): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequencer-publisher.d.ts","sourceRoot":"","sources":["../../src/publisher/sequencer-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,KAAK,uBAAuB,EAAwB,MAAM,yBAAyB,CAAC;AAC7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,KAAK,8BAA8B,EACnC,kBAAkB,EAClB,KAAK,
|
|
1
|
+
{"version":3,"file":"sequencer-publisher.d.ts","sourceRoot":"","sources":["../../src/publisher/sequencer-publisher.ts"],"names":[],"mappings":"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"}
|