@aztec/sequencer-client 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2 → 0.75.0
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/index.d.ts +2 -0
- package/dest/client/index.d.ts.map +1 -0
- package/dest/client/index.js +1 -0
- package/dest/client/sequencer-client.d.ts +68 -0
- package/dest/client/sequencer-client.d.ts.map +1 -0
- package/dest/client/sequencer-client.js +57 -52
- package/dest/config.d.ts +37 -0
- package/dest/config.d.ts.map +1 -0
- package/dest/config.js +42 -40
- package/dest/global_variable_builder/global_builder.d.ts +29 -0
- package/dest/global_variable_builder/global_builder.d.ts.map +1 -0
- package/dest/global_variable_builder/global_builder.js +26 -39
- package/dest/global_variable_builder/index.d.ts +2 -0
- package/dest/global_variable_builder/index.d.ts.map +1 -0
- package/dest/global_variable_builder/index.js +1 -0
- package/dest/index.d.ts +8 -0
- package/dest/index.d.ts.map +1 -0
- package/dest/index.js +1 -0
- package/dest/publisher/config.d.ts +38 -0
- package/dest/publisher/config.d.ts.map +1 -0
- package/dest/publisher/config.js +50 -49
- package/dest/publisher/index.d.ts +2 -0
- package/dest/publisher/index.d.ts.map +1 -0
- package/dest/publisher/index.js +1 -0
- package/dest/publisher/sequencer-publisher-metrics.d.ts +24 -0
- package/dest/publisher/sequencer-publisher-metrics.d.ts.map +1 -0
- package/dest/publisher/sequencer-publisher-metrics.js +23 -32
- package/dest/publisher/sequencer-publisher.d.ts +163 -0
- package/dest/publisher/sequencer-publisher.d.ts.map +1 -0
- package/dest/publisher/sequencer-publisher.js +191 -216
- package/dest/sequencer/allowed.d.ts +3 -0
- package/dest/sequencer/allowed.d.ts.map +1 -0
- package/dest/sequencer/allowed.js +12 -5
- package/dest/sequencer/config.d.ts +2 -0
- package/dest/sequencer/config.d.ts.map +1 -0
- package/dest/sequencer/config.js +2 -1
- package/dest/sequencer/index.d.ts +4 -0
- package/dest/sequencer/index.d.ts.map +1 -0
- package/dest/sequencer/index.js +1 -0
- package/dest/sequencer/metrics.d.ts +24 -0
- package/dest/sequencer/metrics.d.ts.map +1 -0
- package/dest/sequencer/metrics.js +18 -26
- package/dest/sequencer/sequencer.d.ts +176 -0
- package/dest/sequencer/sequencer.d.ts.map +1 -0
- package/dest/sequencer/sequencer.js +620 -648
- package/dest/sequencer/timetable.d.ts +38 -0
- package/dest/sequencer/timetable.d.ts.map +1 -0
- package/dest/sequencer/timetable.js +19 -33
- package/dest/sequencer/utils.d.ts +47 -0
- package/dest/sequencer/utils.d.ts.map +1 -0
- package/dest/sequencer/utils.js +32 -22
- package/dest/slasher/factory.d.ts +11 -0
- package/dest/slasher/factory.d.ts.map +1 -0
- package/dest/slasher/factory.js +4 -5
- package/dest/slasher/index.d.ts +3 -0
- package/dest/slasher/index.d.ts.map +1 -0
- package/dest/slasher/index.js +1 -0
- package/dest/slasher/slasher_client.d.ts +127 -0
- package/dest/slasher/slasher_client.d.ts.map +1 -0
- package/dest/slasher/slasher_client.js +110 -107
- package/dest/test/index.d.ts +17 -0
- package/dest/test/index.d.ts.map +1 -0
- package/dest/test/index.js +1 -4
- package/dest/tx_validator/archive_cache.d.ts +14 -0
- package/dest/tx_validator/archive_cache.d.ts.map +1 -0
- package/dest/tx_validator/archive_cache.js +7 -7
- package/dest/tx_validator/gas_validator.d.ts +12 -0
- package/dest/tx_validator/gas_validator.d.ts.map +1 -0
- package/dest/tx_validator/gas_validator.js +64 -76
- package/dest/tx_validator/nullifier_cache.d.ts +16 -0
- package/dest/tx_validator/nullifier_cache.d.ts.map +1 -0
- package/dest/tx_validator/nullifier_cache.js +8 -8
- package/dest/tx_validator/phases_validator.d.ts +11 -0
- package/dest/tx_validator/phases_validator.d.ts.map +1 -0
- package/dest/tx_validator/phases_validator.js +19 -27
- package/dest/tx_validator/test_utils.d.ts +21 -0
- package/dest/tx_validator/test_utils.d.ts.map +1 -0
- package/dest/tx_validator/test_utils.js +2 -1
- package/dest/tx_validator/tx_validator_factory.d.ts +16 -0
- package/dest/tx_validator/tx_validator_factory.d.ts.map +1 -0
- package/dest/tx_validator/tx_validator_factory.js +5 -5
- package/package.json +22 -23
- package/src/config.ts +1 -1
- package/src/publisher/sequencer-publisher.ts +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
|
package/dest/client/index.js
CHANGED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { type BlobSinkClientInterface } from '@aztec/blob-sink/client';
|
|
2
|
+
import { type L1ToL2MessageSource, type L2BlockSource, type WorldStateSynchronizer } from '@aztec/circuit-types';
|
|
3
|
+
import { type AztecAddress, type ContractDataSource } from '@aztec/circuits.js';
|
|
4
|
+
import { EpochCache } from '@aztec/epoch-cache';
|
|
5
|
+
import { L1TxUtilsWithBlobs } from '@aztec/ethereum';
|
|
6
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
7
|
+
import { type DateProvider } from '@aztec/foundation/timer';
|
|
8
|
+
import { type P2P } from '@aztec/p2p';
|
|
9
|
+
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
10
|
+
import { type ValidatorClient } from '@aztec/validator-client';
|
|
11
|
+
import { type SequencerClientConfig } from '../config.js';
|
|
12
|
+
import { SequencerPublisher } from '../publisher/index.js';
|
|
13
|
+
import { Sequencer, type SequencerConfig } from '../sequencer/index.js';
|
|
14
|
+
import { type SlasherClient } from '../slasher/index.js';
|
|
15
|
+
/**
|
|
16
|
+
* Encapsulates the full sequencer and publisher.
|
|
17
|
+
*/
|
|
18
|
+
export declare class SequencerClient {
|
|
19
|
+
protected sequencer: Sequencer;
|
|
20
|
+
constructor(sequencer: Sequencer);
|
|
21
|
+
/**
|
|
22
|
+
* Initializes and starts a new instance.
|
|
23
|
+
* @param config - Configuration for the sequencer, publisher, and L1 tx sender.
|
|
24
|
+
* @param p2pClient - P2P client that provides the txs to be sequenced.
|
|
25
|
+
* @param validatorClient - Validator client performs attestation duties when rotating proposers.
|
|
26
|
+
* @param worldStateSynchronizer - Provides access to world state.
|
|
27
|
+
* @param contractDataSource - Provides access to contract bytecode for public executions.
|
|
28
|
+
* @param l2BlockSource - Provides information about the previously published blocks.
|
|
29
|
+
* @param l1ToL2MessageSource - Provides access to L1 to L2 messages.
|
|
30
|
+
* @param prover - An instance of a block prover
|
|
31
|
+
* @param simulationProvider - An instance of a simulation provider
|
|
32
|
+
* @returns A new running instance.
|
|
33
|
+
*/
|
|
34
|
+
static new(config: SequencerClientConfig, deps: {
|
|
35
|
+
validatorClient: ValidatorClient | undefined;
|
|
36
|
+
p2pClient: P2P;
|
|
37
|
+
worldStateSynchronizer: WorldStateSynchronizer;
|
|
38
|
+
slasherClient: SlasherClient;
|
|
39
|
+
contractDataSource: ContractDataSource;
|
|
40
|
+
l2BlockSource: L2BlockSource;
|
|
41
|
+
l1ToL2MessageSource: L1ToL2MessageSource;
|
|
42
|
+
telemetry: TelemetryClient;
|
|
43
|
+
publisher?: SequencerPublisher;
|
|
44
|
+
blobSinkClient?: BlobSinkClientInterface;
|
|
45
|
+
dateProvider: DateProvider;
|
|
46
|
+
epochCache?: EpochCache;
|
|
47
|
+
l1TxUtils?: L1TxUtilsWithBlobs;
|
|
48
|
+
}): Promise<SequencerClient>;
|
|
49
|
+
/**
|
|
50
|
+
* Updates sequencer config.
|
|
51
|
+
* @param config - New parameters.
|
|
52
|
+
*/
|
|
53
|
+
updateSequencerConfig(config: SequencerConfig): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Stops the sequencer from processing new txs.
|
|
56
|
+
*/
|
|
57
|
+
stop(): Promise<void>;
|
|
58
|
+
/** Forces the sequencer to bypass all time and tx count checks for the next block and build anyway. */
|
|
59
|
+
flush(): void;
|
|
60
|
+
/**
|
|
61
|
+
* Restarts the sequencer after being stopped.
|
|
62
|
+
*/
|
|
63
|
+
restart(): void;
|
|
64
|
+
get coinbase(): EthAddress;
|
|
65
|
+
get feeRecipient(): AztecAddress;
|
|
66
|
+
get forwarderAddress(): EthAddress;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=sequencer-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequencer-client.d.ts","sourceRoot":"","sources":["../../src/client/sequencer-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,aAAa,EAAE,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACjH,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAGL,kBAAkB,EAMnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;GAEG;AACH,qBAAa,eAAe;IACd,SAAS,CAAC,SAAS,EAAE,SAAS;gBAApB,SAAS,EAAE,SAAS;IAE1C;;;;;;;;;;;;OAYG;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,aAAa,CAAC;QAC7B,kBAAkB,EAAE,kBAAkB,CAAC;QACvC,aAAa,EAAE,aAAa,CAAC;QAC7B,mBAAmB,EAAE,mBAAmB,CAAC;QACzC,SAAS,EAAE,eAAe,CAAC;QAC3B,SAAS,CAAC,EAAE,kBAAkB,CAAC;QAC/B,cAAc,CAAC,EAAE,uBAAuB,CAAC;QACzC,YAAY,EAAE,YAAY,CAAC;QAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,SAAS,CAAC,EAAE,kBAAkB,CAAC;KAChC;IAiHH;;;OAGG;IACI,qBAAqB,CAAC,MAAM,EAAE,eAAe;IAIpD;;OAEG;IACU,IAAI;IAIjB,uGAAuG;IAChG,KAAK;IAIZ;;OAEG;IACI,OAAO;IAId,IAAI,QAAQ,IAAI,UAAU,CAEzB;IAED,IAAI,YAAY,IAAI,YAAY,CAE/B;IAED,IAAI,gBAAgB,IAAI,UAAU,CAEjC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EpochCache } from '@aztec/epoch-cache';
|
|
2
|
-
import { ForwarderContract, GovernanceProposerContract, L1TxUtilsWithBlobs, RollupContract, SlashingProposerContract, createEthereumChain, createL1Clients, isAnvilTestChain } from '@aztec/ethereum';
|
|
2
|
+
import { ForwarderContract, GovernanceProposerContract, L1TxUtilsWithBlobs, RollupContract, SlashingProposerContract, createEthereumChain, createL1Clients, isAnvilTestChain, } from '@aztec/ethereum';
|
|
3
3
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
5
5
|
import { LightweightBlockBuilderFactory } from '@aztec/prover-client/block-builder';
|
|
@@ -9,25 +9,26 @@ import { SequencerPublisher } from '../publisher/index.js';
|
|
|
9
9
|
import { Sequencer } from '../sequencer/index.js';
|
|
10
10
|
/**
|
|
11
11
|
* Encapsulates the full sequencer and publisher.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
constructor(sequencer){
|
|
12
|
+
*/
|
|
13
|
+
export class SequencerClient {
|
|
14
|
+
constructor(sequencer) {
|
|
15
15
|
this.sequencer = sequencer;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
18
|
+
* Initializes and starts a new instance.
|
|
19
|
+
* @param config - Configuration for the sequencer, publisher, and L1 tx sender.
|
|
20
|
+
* @param p2pClient - P2P client that provides the txs to be sequenced.
|
|
21
|
+
* @param validatorClient - Validator client performs attestation duties when rotating proposers.
|
|
22
|
+
* @param worldStateSynchronizer - Provides access to world state.
|
|
23
|
+
* @param contractDataSource - Provides access to contract bytecode for public executions.
|
|
24
|
+
* @param l2BlockSource - Provides information about the previously published blocks.
|
|
25
|
+
* @param l1ToL2MessageSource - Provides access to L1 to L2 messages.
|
|
26
|
+
* @param prover - An instance of a block prover
|
|
27
|
+
* @param simulationProvider - An instance of a simulation provider
|
|
28
|
+
* @returns A new running instance.
|
|
29
|
+
*/
|
|
30
|
+
static async new(config, deps) {
|
|
31
|
+
const { validatorClient, p2pClient, worldStateSynchronizer, slasherClient, contractDataSource, l2BlockSource, l1ToL2MessageSource, telemetry: telemetryClient, } = deps;
|
|
31
32
|
const { l1RpcUrl: rpcUrl, l1ChainId: chainId, publisherPrivateKey } = config;
|
|
32
33
|
const chain = createEthereumChain(rpcUrl, chainId);
|
|
33
34
|
const log = createLogger('sequencer-client');
|
|
@@ -36,32 +37,34 @@ import { Sequencer } from '../sequencer/index.js';
|
|
|
36
37
|
const rollupContract = new RollupContract(publicClient, config.l1Contracts.rollupAddress.toString());
|
|
37
38
|
const [l1GenesisTime, slotDuration] = await Promise.all([
|
|
38
39
|
rollupContract.getL1GenesisTime(),
|
|
39
|
-
rollupContract.getSlotDuration()
|
|
40
|
+
rollupContract.getSlotDuration(),
|
|
40
41
|
]);
|
|
41
|
-
const forwarderContract = config.customForwarderContractAddress && config.customForwarderContractAddress !== EthAddress.ZERO
|
|
42
|
+
const forwarderContract = config.customForwarderContractAddress && config.customForwarderContractAddress !== EthAddress.ZERO
|
|
43
|
+
? new ForwarderContract(publicClient, config.customForwarderContractAddress.toString(), config.l1Contracts.rollupAddress.toString())
|
|
44
|
+
: await ForwarderContract.create(walletClient.account.address, walletClient, publicClient, log, config.l1Contracts.rollupAddress.toString());
|
|
42
45
|
const governanceProposerContract = new GovernanceProposerContract(publicClient, config.l1Contracts.governanceProposerAddress.toString());
|
|
43
46
|
const slashingProposerAddress = await rollupContract.getSlashingProposerAddress();
|
|
44
47
|
const slashingProposerContract = new SlashingProposerContract(publicClient, slashingProposerAddress.toString());
|
|
45
|
-
const epochCache = deps.epochCache ??
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
dateProvider: deps.dateProvider
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
48
|
+
const epochCache = deps.epochCache ??
|
|
49
|
+
(await EpochCache.create(config.l1Contracts.rollupAddress, {
|
|
50
|
+
l1RpcUrl: rpcUrl,
|
|
51
|
+
l1ChainId: chainId,
|
|
52
|
+
viemPollingIntervalMS: config.viemPollingIntervalMS,
|
|
53
|
+
aztecSlotDuration: config.aztecSlotDuration,
|
|
54
|
+
ethereumSlotDuration: config.ethereumSlotDuration,
|
|
55
|
+
aztecEpochDuration: config.aztecEpochDuration,
|
|
56
|
+
}, { dateProvider: deps.dateProvider }));
|
|
57
|
+
const publisher = deps.publisher ??
|
|
58
|
+
new SequencerPublisher(config, {
|
|
59
|
+
l1TxUtils,
|
|
60
|
+
telemetry: telemetryClient,
|
|
61
|
+
blobSinkClient: deps.blobSinkClient,
|
|
62
|
+
rollupContract,
|
|
63
|
+
epochCache,
|
|
64
|
+
forwarderContract,
|
|
65
|
+
governanceProposerContract,
|
|
66
|
+
slashingProposerContract,
|
|
67
|
+
});
|
|
65
68
|
const globalsBuilder = new GlobalVariableBuilder(config);
|
|
66
69
|
const publicProcessorFactory = new PublicProcessorFactory(contractDataSource, deps.dateProvider, telemetryClient);
|
|
67
70
|
const ethereumSlotDuration = config.ethereumSlotDuration;
|
|
@@ -75,33 +78,34 @@ import { Sequencer } from '../sequencer/index.js';
|
|
|
75
78
|
const l1Constants = {
|
|
76
79
|
l1GenesisTime,
|
|
77
80
|
slotDuration: Number(slotDuration),
|
|
78
|
-
ethereumSlotDuration
|
|
81
|
+
ethereumSlotDuration,
|
|
79
82
|
};
|
|
80
|
-
const sequencer = new Sequencer(publisher, validatorClient, globalsBuilder, p2pClient, worldStateSynchronizer, slasherClient, new LightweightBlockBuilderFactory(telemetryClient), l2BlockSource, l1ToL2MessageSource, publicProcessorFactory, contractDataSource, l1Constants, deps.dateProvider, {
|
|
81
|
-
...config,
|
|
82
|
-
maxL1TxInclusionTimeIntoSlot
|
|
83
|
-
}, telemetryClient);
|
|
83
|
+
const sequencer = new Sequencer(publisher, validatorClient, globalsBuilder, p2pClient, worldStateSynchronizer, slasherClient, new LightweightBlockBuilderFactory(telemetryClient), l2BlockSource, l1ToL2MessageSource, publicProcessorFactory, contractDataSource, l1Constants, deps.dateProvider, { ...config, maxL1TxInclusionTimeIntoSlot }, telemetryClient);
|
|
84
84
|
await validatorClient?.start();
|
|
85
85
|
await sequencer.start();
|
|
86
86
|
return new SequencerClient(sequencer);
|
|
87
87
|
}
|
|
88
88
|
/**
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
89
|
+
* Updates sequencer config.
|
|
90
|
+
* @param config - New parameters.
|
|
91
|
+
*/
|
|
92
|
+
updateSequencerConfig(config) {
|
|
92
93
|
return this.sequencer.updateConfig(config);
|
|
93
94
|
}
|
|
94
95
|
/**
|
|
95
|
-
|
|
96
|
-
|
|
96
|
+
* Stops the sequencer from processing new txs.
|
|
97
|
+
*/
|
|
98
|
+
async stop() {
|
|
97
99
|
await this.sequencer.stop();
|
|
98
100
|
}
|
|
99
|
-
/** Forces the sequencer to bypass all time and tx count checks for the next block and build anyway. */
|
|
101
|
+
/** Forces the sequencer to bypass all time and tx count checks for the next block and build anyway. */
|
|
102
|
+
flush() {
|
|
100
103
|
this.sequencer.flush();
|
|
101
104
|
}
|
|
102
105
|
/**
|
|
103
|
-
|
|
104
|
-
|
|
106
|
+
* Restarts the sequencer after being stopped.
|
|
107
|
+
*/
|
|
108
|
+
restart() {
|
|
105
109
|
this.sequencer.restart();
|
|
106
110
|
}
|
|
107
111
|
get coinbase() {
|
|
@@ -114,3 +118,4 @@ import { Sequencer } from '../sequencer/index.js';
|
|
|
114
118
|
return this.sequencer.getForwarderAddress();
|
|
115
119
|
}
|
|
116
120
|
}
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvc2VxdWVuY2VyLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQiwwQkFBMEIsRUFDMUIsa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCx3QkFBd0IsRUFDeEIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixnQkFBZ0IsR0FDakIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3JELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBS2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQXdCLE1BQU0sdUJBQXVCLENBQUM7QUFHeEU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUFzQixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO0lBQUcsQ0FBQztJQUU5Qzs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FDckIsTUFBNkIsRUFDN0IsSUFjQztRQUVELE1BQU0sRUFDSixlQUFlLEVBQ2YsU0FBUyxFQUNULHNCQUFzQixFQUN0QixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixtQkFBbUIsRUFDbkIsU0FBUyxFQUFFLGVBQWUsR0FDM0IsR0FBRyxJQUFJ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
|
package/dest/config.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type AllowedElement, type SequencerConfig } from '@aztec/circuit-types/config';
|
|
2
|
+
import { type L1ContractsConfig, type L1ReaderConfig } from '@aztec/ethereum';
|
|
3
|
+
import { type ConfigMappingsType } from '@aztec/foundation/config';
|
|
4
|
+
import { type PublisherConfig, type TxSenderConfig } from './publisher/config.js';
|
|
5
|
+
export * from './publisher/config.js';
|
|
6
|
+
export { SequencerConfig };
|
|
7
|
+
/** Chain configuration. */
|
|
8
|
+
type ChainConfig = {
|
|
9
|
+
/** The chain id of the ethereum host. */
|
|
10
|
+
l1ChainId: number;
|
|
11
|
+
/** The version of the rollup. */
|
|
12
|
+
version: number;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Configuration settings for the SequencerClient.
|
|
16
|
+
*/
|
|
17
|
+
export type SequencerClientConfig = PublisherConfig & TxSenderConfig & SequencerConfig & L1ReaderConfig & ChainConfig & Pick<L1ContractsConfig, 'ethereumSlotDuration' | 'aztecSlotDuration' | 'aztecEpochDuration'>;
|
|
18
|
+
export declare const sequencerConfigMappings: ConfigMappingsType<SequencerConfig>;
|
|
19
|
+
export declare const chainConfigMappings: ConfigMappingsType<ChainConfig>;
|
|
20
|
+
export declare const sequencerClientConfigMappings: ConfigMappingsType<SequencerClientConfig>;
|
|
21
|
+
/**
|
|
22
|
+
* Creates an instance of SequencerClientConfig out of environment variables using sensible defaults for integration testing if not set.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getConfigEnvVars(): SequencerClientConfig;
|
|
25
|
+
/**
|
|
26
|
+
* Parses a string to a list of allowed elements.
|
|
27
|
+
* Each encoded is expected to be of one of the following formats
|
|
28
|
+
* `I:${address}`
|
|
29
|
+
* `I:${address}:${selector}`
|
|
30
|
+
* `C:${classId}`
|
|
31
|
+
* `C:${classId}:${selector}`
|
|
32
|
+
*
|
|
33
|
+
* @param value The string to parse
|
|
34
|
+
* @returns A list of allowed elements
|
|
35
|
+
*/
|
|
36
|
+
export declare function parseSequencerAllowList(value: string): AllowedElement[];
|
|
37
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAExF,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAGpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAGpB,MAAM,uBAAuB,CAAC;AAE/B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,2BAA2B;AAC3B,KAAK,WAAW,GAAG;IACjB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,eAAe,GACjD,cAAc,GACd,eAAe,GACf,cAAc,GACd,WAAW,GACX,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,GAAG,mBAAmB,GAAG,oBAAoB,CAAC,CAAC;AAE/F,eAAO,MAAM,uBAAuB,EAAE,kBAAkB,CAAC,eAAe,CA8EvE,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,kBAAkB,CAAC,WAAW,CAO/D,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,kBAAkB,CAAC,qBAAqB,CAOnF,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,qBAAqB,CAExD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,CAqCvE"}
|
package/dest/config.js
CHANGED
|
@@ -1,94 +1,94 @@
|
|
|
1
1
|
import { AztecAddress, Fr, FunctionSelector } from '@aztec/circuits.js';
|
|
2
|
-
import { l1ContractsConfigMappings, l1ReaderConfigMappings } from '@aztec/ethereum';
|
|
3
|
-
import { booleanConfigHelper, getConfigFromMappings, numberConfigHelper, pickConfigMappings } from '@aztec/foundation/config';
|
|
2
|
+
import { l1ContractsConfigMappings, l1ReaderConfigMappings, } from '@aztec/ethereum';
|
|
3
|
+
import { booleanConfigHelper, getConfigFromMappings, numberConfigHelper, pickConfigMappings, } from '@aztec/foundation/config';
|
|
4
4
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
|
-
import { getPublisherConfigMappings, getTxSenderConfigMappings } from './publisher/config.js';
|
|
5
|
+
import { getPublisherConfigMappings, getTxSenderConfigMappings, } from './publisher/config.js';
|
|
6
6
|
export * from './publisher/config.js';
|
|
7
7
|
export const sequencerConfigMappings = {
|
|
8
8
|
transactionPollingIntervalMS: {
|
|
9
9
|
env: 'SEQ_TX_POLLING_INTERVAL_MS',
|
|
10
10
|
description: 'The number of ms to wait between polling for pending txs.',
|
|
11
|
-
...numberConfigHelper(500)
|
|
11
|
+
...numberConfigHelper(500),
|
|
12
12
|
},
|
|
13
13
|
maxTxsPerBlock: {
|
|
14
14
|
env: 'SEQ_MAX_TX_PER_BLOCK',
|
|
15
15
|
description: 'The maximum number of txs to include in a block.',
|
|
16
|
-
...numberConfigHelper(32)
|
|
16
|
+
...numberConfigHelper(32),
|
|
17
17
|
},
|
|
18
18
|
minTxsPerBlock: {
|
|
19
19
|
env: 'SEQ_MIN_TX_PER_BLOCK',
|
|
20
20
|
description: 'The minimum number of txs to include in a block.',
|
|
21
|
-
...numberConfigHelper(1)
|
|
21
|
+
...numberConfigHelper(1),
|
|
22
22
|
},
|
|
23
23
|
maxL2BlockGas: {
|
|
24
24
|
env: 'SEQ_MAX_L2_BLOCK_GAS',
|
|
25
25
|
description: 'The maximum L2 block gas.',
|
|
26
|
-
...numberConfigHelper(10e9)
|
|
26
|
+
...numberConfigHelper(10e9),
|
|
27
27
|
},
|
|
28
28
|
maxDABlockGas: {
|
|
29
29
|
env: 'SEQ_MAX_DA_BLOCK_GAS',
|
|
30
30
|
description: 'The maximum DA block gas.',
|
|
31
|
-
...numberConfigHelper(10e9)
|
|
31
|
+
...numberConfigHelper(10e9),
|
|
32
32
|
},
|
|
33
33
|
coinbase: {
|
|
34
34
|
env: 'COINBASE',
|
|
35
|
-
parseEnv: (val)=>EthAddress.fromString(val),
|
|
36
|
-
description: 'Recipient of block reward.'
|
|
35
|
+
parseEnv: (val) => EthAddress.fromString(val),
|
|
36
|
+
description: 'Recipient of block reward.',
|
|
37
37
|
},
|
|
38
38
|
feeRecipient: {
|
|
39
39
|
env: 'FEE_RECIPIENT',
|
|
40
|
-
parseEnv: (val)=>AztecAddress.fromString(val),
|
|
41
|
-
description: 'Address to receive fees.'
|
|
40
|
+
parseEnv: (val) => AztecAddress.fromString(val),
|
|
41
|
+
description: 'Address to receive fees.',
|
|
42
42
|
},
|
|
43
43
|
acvmWorkingDirectory: {
|
|
44
44
|
env: 'ACVM_WORKING_DIRECTORY',
|
|
45
|
-
description: 'The working directory to use for simulation/proving'
|
|
45
|
+
description: 'The working directory to use for simulation/proving',
|
|
46
46
|
},
|
|
47
47
|
acvmBinaryPath: {
|
|
48
48
|
env: 'ACVM_BINARY_PATH',
|
|
49
|
-
description: 'The path to the ACVM binary'
|
|
49
|
+
description: 'The path to the ACVM binary',
|
|
50
50
|
},
|
|
51
51
|
allowedInSetup: {
|
|
52
52
|
env: 'SEQ_ALLOWED_SETUP_FN',
|
|
53
|
-
parseEnv: (val)=>parseSequencerAllowList(val),
|
|
53
|
+
parseEnv: (val) => parseSequencerAllowList(val),
|
|
54
54
|
description: 'The list of functions calls allowed to run in setup',
|
|
55
|
-
printDefault: ()=>'AuthRegistry, FeeJuice.increase_public_balance, Token.increase_public_balance, FPC.prepare_fee'
|
|
55
|
+
printDefault: () => 'AuthRegistry, FeeJuice.increase_public_balance, Token.increase_public_balance, FPC.prepare_fee',
|
|
56
56
|
},
|
|
57
57
|
maxBlockSizeInBytes: {
|
|
58
58
|
env: 'SEQ_MAX_BLOCK_SIZE_IN_BYTES',
|
|
59
59
|
description: 'Max block size',
|
|
60
|
-
...numberConfigHelper(1024 * 1024)
|
|
60
|
+
...numberConfigHelper(1024 * 1024),
|
|
61
61
|
},
|
|
62
62
|
enforceFees: {
|
|
63
63
|
env: 'ENFORCE_FEES',
|
|
64
64
|
description: 'Whether to require every tx to have a fee payer',
|
|
65
|
-
...booleanConfigHelper()
|
|
65
|
+
...booleanConfigHelper(),
|
|
66
66
|
},
|
|
67
67
|
enforceTimeTable: {
|
|
68
68
|
env: 'SEQ_ENFORCE_TIME_TABLE',
|
|
69
69
|
description: 'Whether to enforce the time table when building blocks',
|
|
70
70
|
...booleanConfigHelper(),
|
|
71
|
-
defaultValue: false
|
|
71
|
+
defaultValue: false,
|
|
72
72
|
},
|
|
73
73
|
governanceProposerPayload: {
|
|
74
74
|
env: 'GOVERNANCE_PROPOSER_PAYLOAD_ADDRESS',
|
|
75
75
|
description: 'The address of the payload for the governanceProposer',
|
|
76
|
-
parseEnv: (val)=>EthAddress.fromString(val),
|
|
77
|
-
defaultValue: EthAddress.ZERO
|
|
76
|
+
parseEnv: (val) => EthAddress.fromString(val),
|
|
77
|
+
defaultValue: EthAddress.ZERO,
|
|
78
78
|
},
|
|
79
79
|
maxL1TxInclusionTimeIntoSlot: {
|
|
80
80
|
env: 'SEQ_MAX_L1_TX_INCLUSION_TIME_INTO_SLOT',
|
|
81
81
|
description: 'How many seconds into an L1 slot we can still send a tx and get it mined.',
|
|
82
|
-
parseEnv: (val)=>val ? parseInt(val, 10) : undefined
|
|
83
|
-
}
|
|
82
|
+
parseEnv: (val) => (val ? parseInt(val, 10) : undefined),
|
|
83
|
+
},
|
|
84
84
|
};
|
|
85
85
|
export const chainConfigMappings = {
|
|
86
86
|
l1ChainId: l1ReaderConfigMappings.l1ChainId,
|
|
87
87
|
version: {
|
|
88
88
|
env: 'VERSION',
|
|
89
89
|
description: 'The version of the rollup.',
|
|
90
|
-
...numberConfigHelper(1)
|
|
91
|
-
}
|
|
90
|
+
...numberConfigHelper(1),
|
|
91
|
+
},
|
|
92
92
|
};
|
|
93
93
|
export const sequencerClientConfigMappings = {
|
|
94
94
|
...sequencerConfigMappings,
|
|
@@ -96,15 +96,12 @@ export const sequencerClientConfigMappings = {
|
|
|
96
96
|
...getTxSenderConfigMappings('SEQ'),
|
|
97
97
|
...getPublisherConfigMappings('SEQ'),
|
|
98
98
|
...chainConfigMappings,
|
|
99
|
-
...pickConfigMappings(l1ContractsConfigMappings, [
|
|
100
|
-
'ethereumSlotDuration',
|
|
101
|
-
'aztecSlotDuration',
|
|
102
|
-
'aztecEpochDuration'
|
|
103
|
-
])
|
|
99
|
+
...pickConfigMappings(l1ContractsConfigMappings, ['ethereumSlotDuration', 'aztecSlotDuration', 'aztecEpochDuration']),
|
|
104
100
|
};
|
|
105
101
|
/**
|
|
106
102
|
* Creates an instance of SequencerClientConfig out of environment variables using sensible defaults for integration testing if not set.
|
|
107
|
-
*/
|
|
103
|
+
*/
|
|
104
|
+
export function getConfigEnvVars() {
|
|
108
105
|
return getConfigFromMappings(sequencerClientConfigMappings);
|
|
109
106
|
}
|
|
110
107
|
/**
|
|
@@ -117,37 +114,42 @@ export const sequencerClientConfigMappings = {
|
|
|
117
114
|
*
|
|
118
115
|
* @param value The string to parse
|
|
119
116
|
* @returns A list of allowed elements
|
|
120
|
-
*/
|
|
117
|
+
*/
|
|
118
|
+
export function parseSequencerAllowList(value) {
|
|
121
119
|
const entries = [];
|
|
122
120
|
if (!value) {
|
|
123
121
|
return entries;
|
|
124
122
|
}
|
|
125
|
-
for (const val of value.split(',')){
|
|
123
|
+
for (const val of value.split(',')) {
|
|
126
124
|
const [typeString, identifierString, selectorString] = val.split(':');
|
|
127
125
|
const selector = selectorString !== undefined ? FunctionSelector.fromString(selectorString) : undefined;
|
|
128
126
|
if (typeString === 'I') {
|
|
129
127
|
if (selector) {
|
|
130
128
|
entries.push({
|
|
131
129
|
address: AztecAddress.fromString(identifierString),
|
|
132
|
-
selector
|
|
130
|
+
selector,
|
|
133
131
|
});
|
|
134
|
-
}
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
135
134
|
entries.push({
|
|
136
|
-
address: AztecAddress.fromString(identifierString)
|
|
135
|
+
address: AztecAddress.fromString(identifierString),
|
|
137
136
|
});
|
|
138
137
|
}
|
|
139
|
-
}
|
|
138
|
+
}
|
|
139
|
+
else if (typeString === 'C') {
|
|
140
140
|
if (selector) {
|
|
141
141
|
entries.push({
|
|
142
142
|
classId: Fr.fromHexString(identifierString),
|
|
143
|
-
selector
|
|
143
|
+
selector,
|
|
144
144
|
});
|
|
145
|
-
}
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
146
147
|
entries.push({
|
|
147
|
-
classId: Fr.fromHexString(identifierString)
|
|
148
|
+
classId: Fr.fromHexString(identifierString),
|
|
148
149
|
});
|
|
149
150
|
}
|
|
150
151
|
}
|
|
151
152
|
}
|
|
152
153
|
return entries;
|
|
153
154
|
}
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hFLE9BQU8sRUFHTCx5QkFBeUIsRUFDekIsc0JBQXNCLEdBQ3ZCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUVMLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ2xCLGtCQUFrQixHQUNuQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRCxPQUFPLEVBR0wsMEJBQTBCLEVBQzFCLHlCQUF5QixHQUMxQixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLGNBQWMsdUJBQXVCLENBQUM7QUFxQnRDLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUF3QztJQUMxRSw0QkFBNEIsRUFBRTtRQUM1QixHQUFHLEVBQUUsNEJBQTRCO1FBQ2pDLFdBQVcsRUFBRSwyREFBMkQ7UUFDeEUsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7S0FDM0I7SUFDRCxjQUFjLEVBQUU7UUFDZCxHQUFHLEVBQUUsc0JBQXNCO1FBQzNCLFdBQVcsRUFBRSxrREFBa0Q7UUFDL0QsR0FBRyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7S0FDMUI7SUFDRCxjQUFjLEVBQUU7UUFDZCxHQUFHLEVBQUUsc0JBQXNCO1FBQzNCLFdBQVcsRUFBRSxrREFBa0Q7UUFDL0QsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7S0FDekI7SUFDRCxhQUFhLEVBQUU7UUFDYixHQUFHLEVBQUUsc0JBQXNCO1FBQzNCLFdBQVcsRUFBRSwyQkFBMkI7UUFDeEMsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7S0FDNUI7SUFDRCxhQUFhLEVBQUU7UUFDYixHQUFHLEVBQUUs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
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type GlobalVariableBuilder as GlobalVariableBuilderInterface } from '@aztec/circuit-types';
|
|
2
|
+
import { type AztecAddress, type EthAddress, GasFees, GlobalVariables } from '@aztec/circuits.js';
|
|
3
|
+
import { type L1ContractsConfig, type L1ReaderConfig } from '@aztec/ethereum';
|
|
4
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
5
|
+
/**
|
|
6
|
+
* Simple global variables builder.
|
|
7
|
+
*/
|
|
8
|
+
export declare class GlobalVariableBuilder implements GlobalVariableBuilderInterface {
|
|
9
|
+
private log;
|
|
10
|
+
private rollupContract;
|
|
11
|
+
private publicClient;
|
|
12
|
+
private ethereumSlotDuration;
|
|
13
|
+
constructor(config: L1ReaderConfig & Pick<L1ContractsConfig, 'ethereumSlotDuration'>);
|
|
14
|
+
/**
|
|
15
|
+
* Computes the "current" base fees, e.g., the price that you currently should pay to get include in the next block
|
|
16
|
+
* @returns Base fees for the expected next block
|
|
17
|
+
*/
|
|
18
|
+
getCurrentBaseFees(): Promise<GasFees>;
|
|
19
|
+
/**
|
|
20
|
+
* Simple builder of global variables that use the minimum time possible.
|
|
21
|
+
* @param blockNumber - The block number to build global variables for.
|
|
22
|
+
* @param coinbase - The address to receive block reward.
|
|
23
|
+
* @param feeRecipient - The address to receive fees.
|
|
24
|
+
* @param slotNumber - The slot number to use for the global variables, if undefined it will be calculated.
|
|
25
|
+
* @returns The global variables for the given block number.
|
|
26
|
+
*/
|
|
27
|
+
buildGlobalVariables(blockNumber: Fr, coinbase: EthAddress, feeRecipient: AztecAddress, slotNumber?: bigint): Promise<GlobalVariables>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=global_builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global_builder.d.ts","sourceRoot":"","sources":["../../src/global_variable_builder/global_builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,IAAI,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAuB,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAe9C;;GAEG;AACH,qBAAa,qBAAsB,YAAW,8BAA8B;IAC1E,OAAO,CAAC,GAAG,CAAqD;IAEhE,OAAO,CAAC,cAAc,CAAqF;IAC3G,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,oBAAoB,CAAS;gBAEzB,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;IAoBpF;;;OAGG;IACU,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAanD;;;;;;;OAOG;IACU,oBAAoB,CAC/B,WAAW,EAAE,EAAE,EACf,QAAQ,EAAE,UAAU,EACpB,YAAY,EAAE,YAAY,EAC1B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC;CA8B5B"}
|