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