@aztec/sequencer-client 0.49.2 → 0.50.1
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 +6 -1
- package/dest/client/sequencer-client.d.ts.map +1 -1
- package/dest/client/sequencer-client.js +13 -7
- package/dest/global_variable_builder/global_builder.d.ts +6 -54
- package/dest/global_variable_builder/global_builder.d.ts.map +1 -1
- package/dest/global_variable_builder/global_builder.js +24 -12
- package/dest/global_variable_builder/index.d.ts +0 -9
- package/dest/global_variable_builder/index.d.ts.map +1 -1
- package/dest/global_variable_builder/index.js +2 -12
- package/dest/publisher/index.d.ts +0 -8
- package/dest/publisher/index.d.ts.map +1 -1
- package/dest/publisher/index.js +1 -10
- package/dest/publisher/l1-publisher.d.ts +26 -70
- package/dest/publisher/l1-publisher.d.ts.map +1 -1
- package/dest/publisher/l1-publisher.js +168 -19
- package/dest/sequencer/sequencer.d.ts +22 -8
- package/dest/sequencer/sequencer.d.ts.map +1 -1
- package/dest/sequencer/sequencer.js +76 -14
- package/package.json +18 -17
- package/src/client/sequencer-client.ts +13 -4
- package/src/global_variable_builder/global_builder.ts +38 -62
- package/src/global_variable_builder/index.ts +0 -15
- package/src/publisher/index.ts +0 -14
- package/src/publisher/l1-publisher.ts +217 -95
- package/src/sequencer/sequencer.ts +97 -11
- package/dest/global_variable_builder/viem-reader.d.ts +0 -17
- package/dest/global_variable_builder/viem-reader.d.ts.map +0 -1
- package/dest/global_variable_builder/viem-reader.js +0 -40
- package/dest/publisher/viem-tx-sender.d.ts +0 -59
- package/dest/publisher/viem-tx-sender.d.ts.map +0 -1
- package/dest/publisher/viem-tx-sender.js +0 -236
- package/dest/receiver.d.ts +0 -10
- package/dest/receiver.d.ts.map +0 -1
- package/dest/receiver.js +0 -2
- package/src/global_variable_builder/viem-reader.ts +0 -64
- package/src/publisher/viem-tx-sender.ts +0 -296
- package/src/receiver.ts +0 -11
|
@@ -3,6 +3,7 @@ import { type P2P } from '@aztec/p2p';
|
|
|
3
3
|
import { type SimulationProvider } from '@aztec/simulator';
|
|
4
4
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
5
5
|
import { type ContractDataSource } from '@aztec/types/contracts';
|
|
6
|
+
import { type ValidatorClient } from '@aztec/validator-client';
|
|
6
7
|
import { type WorldStateSynchronizer } from '@aztec/world-state';
|
|
7
8
|
import { type SequencerClientConfig } from '../config.js';
|
|
8
9
|
import { Sequencer, type SequencerConfig } from '../sequencer/index.js';
|
|
@@ -16,6 +17,7 @@ export declare class SequencerClient {
|
|
|
16
17
|
* Initializes and starts a new instance.
|
|
17
18
|
* @param config - Configuration for the sequencer, publisher, and L1 tx sender.
|
|
18
19
|
* @param p2pClient - P2P client that provides the txs to be sequenced.
|
|
20
|
+
* @param validatorClient - Validator client performs attestation duties when rotating proposers.
|
|
19
21
|
* @param worldStateSynchronizer - Provides access to world state.
|
|
20
22
|
* @param contractDataSource - Provides access to contract bytecode for public executions.
|
|
21
23
|
* @param l2BlockSource - Provides information about the previously published blocks.
|
|
@@ -24,7 +26,8 @@ export declare class SequencerClient {
|
|
|
24
26
|
* @param simulationProvider - An instance of a simulation provider
|
|
25
27
|
* @returns A new running instance.
|
|
26
28
|
*/
|
|
27
|
-
static new(config: SequencerClientConfig,
|
|
29
|
+
static new(config: SequencerClientConfig, validatorClient: ValidatorClient | undefined, // allowed to be undefined while we migrate
|
|
30
|
+
p2pClient: P2P, worldStateSynchronizer: WorldStateSynchronizer, contractDataSource: ContractDataSource, l2BlockSource: L2BlockSource, l1ToL2MessageSource: L1ToL2MessageSource, simulationProvider: SimulationProvider, telemetryClient: TelemetryClient): Promise<SequencerClient>;
|
|
28
31
|
/**
|
|
29
32
|
* Updates sequencer config.
|
|
30
33
|
* @param config - New parameters.
|
|
@@ -34,6 +37,8 @@ export declare class SequencerClient {
|
|
|
34
37
|
* Stops the sequencer from processing new txs.
|
|
35
38
|
*/
|
|
36
39
|
stop(): Promise<void>;
|
|
40
|
+
/** Forces the sequencer to bypass all time and tx count checks for the next block and build anyway. */
|
|
41
|
+
flush(): void;
|
|
37
42
|
/**
|
|
38
43
|
* Restarts the sequencer after being stopped.
|
|
39
44
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequencer-client.d.ts","sourceRoot":"","sources":["../../src/client/sequencer-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAGjE,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAG1D,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxE;;GAEG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,SAAS;IAExC
|
|
1
|
+
{"version":3,"file":"sequencer-client.d.ts","sourceRoot":"","sources":["../../src/client/sequencer-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAGjE,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAG1D,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxE;;GAEG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,SAAS;IAExC;;;;;;;;;;;;OAYG;WACiB,GAAG,CACrB,MAAM,EAAE,qBAAqB,EAC7B,eAAe,EAAE,eAAe,GAAG,SAAS,EAAE,2CAA2C;IACzF,SAAS,EAAE,GAAG,EACd,sBAAsB,EAAE,sBAAsB,EAC9C,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,EAAE,aAAa,EAC5B,mBAAmB,EAAE,mBAAmB,EACxC,kBAAkB,EAAE,kBAAkB,EACtC,eAAe,EAAE,eAAe;IAgClC;;;OAGG;IACI,qBAAqB,CAAC,MAAM,EAAE,eAAe;IAIpD;;OAEG;IACU,IAAI;IAIjB,uGAAuG;IAChG,KAAK;IAIZ;;OAEG;IACI,OAAO;IAId,IAAI,QAAQ,yCAEX;IAED,IAAI,YAAY,2CAEf;CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PublicProcessorFactory } from '@aztec/simulator';
|
|
2
2
|
import { BlockBuilderFactory } from '../block_builder/index.js';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { GlobalVariableBuilder } from '../global_variable_builder/index.js';
|
|
4
|
+
import { L1Publisher } from '../publisher/index.js';
|
|
5
5
|
import { Sequencer } from '../sequencer/index.js';
|
|
6
6
|
import { TxValidatorFactory } from '../tx_validator/tx_validator_factory.js';
|
|
7
7
|
/**
|
|
@@ -15,6 +15,7 @@ export class SequencerClient {
|
|
|
15
15
|
* Initializes and starts a new instance.
|
|
16
16
|
* @param config - Configuration for the sequencer, publisher, and L1 tx sender.
|
|
17
17
|
* @param p2pClient - P2P client that provides the txs to be sequenced.
|
|
18
|
+
* @param validatorClient - Validator client performs attestation duties when rotating proposers.
|
|
18
19
|
* @param worldStateSynchronizer - Provides access to world state.
|
|
19
20
|
* @param contractDataSource - Provides access to contract bytecode for public executions.
|
|
20
21
|
* @param l2BlockSource - Provides information about the previously published blocks.
|
|
@@ -23,12 +24,13 @@ export class SequencerClient {
|
|
|
23
24
|
* @param simulationProvider - An instance of a simulation provider
|
|
24
25
|
* @returns A new running instance.
|
|
25
26
|
*/
|
|
26
|
-
static async new(config,
|
|
27
|
-
|
|
28
|
-
const
|
|
27
|
+
static async new(config, validatorClient, // allowed to be undefined while we migrate
|
|
28
|
+
p2pClient, worldStateSynchronizer, contractDataSource, l2BlockSource, l1ToL2MessageSource, simulationProvider, telemetryClient) {
|
|
29
|
+
const publisher = new L1Publisher(config, telemetryClient);
|
|
30
|
+
const globalsBuilder = new GlobalVariableBuilder(config);
|
|
29
31
|
const merkleTreeDb = worldStateSynchronizer.getLatest();
|
|
30
32
|
const publicProcessorFactory = new PublicProcessorFactory(merkleTreeDb, contractDataSource, simulationProvider, telemetryClient);
|
|
31
|
-
const sequencer = new Sequencer(publisher, globalsBuilder, p2pClient, worldStateSynchronizer, new BlockBuilderFactory(simulationProvider, telemetryClient), l2BlockSource, l1ToL2MessageSource, publicProcessorFactory, new TxValidatorFactory(merkleTreeDb, contractDataSource, !!config.enforceFees), telemetryClient, config);
|
|
33
|
+
const sequencer = new Sequencer(publisher, validatorClient, globalsBuilder, p2pClient, worldStateSynchronizer, new BlockBuilderFactory(simulationProvider, telemetryClient), l2BlockSource, l1ToL2MessageSource, publicProcessorFactory, new TxValidatorFactory(merkleTreeDb, contractDataSource, !!config.enforceFees), telemetryClient, config);
|
|
32
34
|
await sequencer.start();
|
|
33
35
|
return new SequencerClient(sequencer);
|
|
34
36
|
}
|
|
@@ -45,6 +47,10 @@ export class SequencerClient {
|
|
|
45
47
|
async stop() {
|
|
46
48
|
await this.sequencer.stop();
|
|
47
49
|
}
|
|
50
|
+
/** Forces the sequencer to bypass all time and tx count checks for the next block and build anyway. */
|
|
51
|
+
flush() {
|
|
52
|
+
this.sequencer.flush();
|
|
53
|
+
}
|
|
48
54
|
/**
|
|
49
55
|
* Restarts the sequencer after being stopped.
|
|
50
56
|
*/
|
|
@@ -58,4 +64,4 @@ export class SequencerClient {
|
|
|
58
64
|
return this.sequencer.feeRecipient;
|
|
59
65
|
}
|
|
60
66
|
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvc2VxdWVuY2VyLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsc0JBQXNCLEVBQTJCLE1BQU0sa0JBQWtCLENBQUM7QUFNbkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQXdCLE1BQU0sdUJBQXVCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFN0U7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUFvQixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO0lBQUcsQ0FBQztJQUU1Qzs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FDckIsTUFBNkIsRUFDN0IsZUFBNEMsRUFBRSwyQ0FBMkM7SUFDekYsU0FBYyxFQUNkLHNCQUE4QyxFQUM5QyxrQkFBc0MsRUFDdEMsYUFBNEIsRUFDNUIsbUJBQXdDLEVBQ3hDLGtCQUFzQyxFQUN0QyxlQUFnQztRQUVoQyxNQUFNLFNBQVMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDM0QsTUFBTSxjQUFjLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RCxNQUFNLFlBQVksR0FBRyxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUV4RCxNQUFNLHNCQUFzQixHQUFHLElBQUksc0JBQXNCLENBQ3ZELFlBQVksRUFDWixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLGVBQWUsQ0FDaEIsQ0FBQztRQUVGLE1BQU0sU0FBUyxHQUFHLElBQUksU0FBUyxDQUM3QixTQUFTLEVBQ1QsZUFBZSxFQUNmLGNBQWMsRUFDZCxTQUFTLEVBQ1Qsc0JBQXNCLEVBQ3RCLElBQUksbUJBQW1CLENBQUMsa0JBQWtCLEVBQUUsZUFBZSxDQUFDLEVBQzVELGFBQWEsRUFDYixtQkFBbUIsRUFDbkIsc0JBQXNCLEVBQ3RCLElBQUksa0JBQWtCLENBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQzlFLGVBQWUsRUFDZixNQUFNLENBQ1AsQ0FBQztRQUVGLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLHFCQUFxQixDQUFDLE1BQXVCO1FBQ2xELElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxJQUFJO1FBQ2YsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCx1R0FBdUc7SUFDaEcsS0FBSztRQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTztRQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7SUFDckMsQ0FBQztDQUNGIn0=
|
|
@@ -1,62 +1,14 @@
|
|
|
1
1
|
import { type AztecAddress, type EthAddress, GlobalVariables } from '@aztec/circuits.js';
|
|
2
|
+
import { type L1ReaderConfig } from '@aztec/ethereum';
|
|
2
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
4
|
/**
|
|
4
|
-
*
|
|
5
|
+
* Simple global variables builder.
|
|
5
6
|
*/
|
|
6
|
-
export
|
|
7
|
-
/**
|
|
8
|
-
* Fetches the version of the rollup contract.
|
|
9
|
-
* @returns The version of the rollup contract.
|
|
10
|
-
*/
|
|
11
|
-
getVersion(): Promise<bigint>;
|
|
12
|
-
/**
|
|
13
|
-
* Gets the chain id.
|
|
14
|
-
* @returns The chain id.
|
|
15
|
-
*/
|
|
16
|
-
getChainId(): Promise<bigint>;
|
|
17
|
-
/**
|
|
18
|
-
* Gets the current L1 time.
|
|
19
|
-
* @returns The current L1 time.
|
|
20
|
-
*/
|
|
21
|
-
getL1CurrentTime(): Promise<bigint>;
|
|
22
|
-
/**
|
|
23
|
-
* Gets the current slot.
|
|
24
|
-
* @returns The current slot.
|
|
25
|
-
*/
|
|
26
|
-
getCurrentSlot(): Promise<bigint>;
|
|
27
|
-
/**
|
|
28
|
-
* Get the slot for a specific timestamp.
|
|
29
|
-
* @param timestamp - The timestamp to get the slot for.
|
|
30
|
-
*/
|
|
31
|
-
getSlotAt(timestamp: readonly [bigint]): Promise<bigint>;
|
|
32
|
-
/**
|
|
33
|
-
* Gets the timestamp for a slot
|
|
34
|
-
* @param slot - The slot to get the timestamp for.
|
|
35
|
-
* @returns The timestamp for the slot.
|
|
36
|
-
*/
|
|
37
|
-
getTimestampForSlot(slot: readonly [bigint]): Promise<bigint>;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Builds global variables from L1 state.
|
|
41
|
-
*/
|
|
42
|
-
export interface GlobalVariableBuilder {
|
|
43
|
-
/**
|
|
44
|
-
* Builds global variables.
|
|
45
|
-
* @param blockNumber - The block number to build global variables for.
|
|
46
|
-
* @param coinbase - The address to receive block reward.
|
|
47
|
-
* @param feeRecipient - The address to receive fees.
|
|
48
|
-
* @returns The global variables for the given block number.
|
|
49
|
-
*/
|
|
50
|
-
buildGlobalVariables(blockNumber: Fr, coinbase: EthAddress, feeRecipient: AztecAddress): Promise<GlobalVariables>;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Simple test implementation of a builder that uses the minimum time possible for the global variables.
|
|
54
|
-
* Also uses a "hack" to make use of the warp cheatcode that manipulates time on Aztec.
|
|
55
|
-
*/
|
|
56
|
-
export declare class SimpleTestGlobalVariableBuilder implements GlobalVariableBuilder {
|
|
57
|
-
private readonly reader;
|
|
7
|
+
export declare class GlobalVariableBuilder {
|
|
58
8
|
private log;
|
|
59
|
-
|
|
9
|
+
private rollupContract;
|
|
10
|
+
private publicClient;
|
|
11
|
+
constructor(config: L1ReaderConfig);
|
|
60
12
|
/**
|
|
61
13
|
* Simple builder of global variables that use the minimum time possible.
|
|
62
14
|
* @param blockNumber - The block number to build global variables for.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global_builder.d.ts","sourceRoot":"","sources":["../../src/global_variable_builder/global_builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,UAAU,EAEf,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"global_builder.d.ts","sourceRoot":"","sources":["../../src/global_variable_builder/global_builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,UAAU,EAEf,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,cAAc,EAAuB,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAe9C;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,GAAG,CAAgE;IAE3E,OAAO,CAAC,cAAc,CAAqF;IAC3G,OAAO,CAAC,YAAY,CAA4C;gBAEpD,MAAM,EAAE,cAAc;IAiBlC;;;;;;OAMG;IACU,oBAAoB,CAC/B,WAAW,EAAE,EAAE,EACf,QAAQ,EAAE,UAAU,EACpB,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,eAAe,CAAC;CA2B5B"}
|
|
@@ -1,14 +1,26 @@
|
|
|
1
1
|
import { ETHEREUM_SLOT_DURATION, GasFees, GlobalVariables, } from '@aztec/circuits.js';
|
|
2
|
+
import { createEthereumChain } from '@aztec/ethereum';
|
|
2
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
4
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
5
|
+
import { RollupAbi } from '@aztec/l1-artifacts';
|
|
6
|
+
import { createPublicClient, getAddress, getContract, http, } from 'viem';
|
|
4
7
|
/**
|
|
5
|
-
* Simple
|
|
6
|
-
* Also uses a "hack" to make use of the warp cheatcode that manipulates time on Aztec.
|
|
8
|
+
* Simple global variables builder.
|
|
7
9
|
*/
|
|
8
|
-
export class
|
|
9
|
-
constructor(
|
|
10
|
-
this.
|
|
11
|
-
|
|
10
|
+
export class GlobalVariableBuilder {
|
|
11
|
+
constructor(config) {
|
|
12
|
+
this.log = createDebugLogger('aztec:sequencer:global_variable_builder');
|
|
13
|
+
const { l1RpcUrl, l1ChainId: chainId, l1Contracts } = config;
|
|
14
|
+
const chain = createEthereumChain(l1RpcUrl, chainId);
|
|
15
|
+
this.publicClient = createPublicClient({
|
|
16
|
+
chain: chain.chainInfo,
|
|
17
|
+
transport: http(chain.rpcUrl),
|
|
18
|
+
});
|
|
19
|
+
this.rollupContract = getContract({
|
|
20
|
+
address: getAddress(l1Contracts.rollupAddress.toString()),
|
|
21
|
+
abi: RollupAbi,
|
|
22
|
+
client: this.publicClient,
|
|
23
|
+
});
|
|
12
24
|
}
|
|
13
25
|
/**
|
|
14
26
|
* Simple builder of global variables that use the minimum time possible.
|
|
@@ -18,18 +30,18 @@ export class SimpleTestGlobalVariableBuilder {
|
|
|
18
30
|
* @returns The global variables for the given block number.
|
|
19
31
|
*/
|
|
20
32
|
async buildGlobalVariables(blockNumber, coinbase, feeRecipient) {
|
|
33
|
+
const version = new Fr(await this.rollupContract.read.VERSION());
|
|
34
|
+
const chainId = new Fr(this.publicClient.chain.id);
|
|
35
|
+
const ts = (await this.publicClient.getBlock()).timestamp;
|
|
21
36
|
// Not just the current slot, the slot of the next block.
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const timestamp = await this.reader.getTimestampForSlot([slot]);
|
|
37
|
+
const slot = await this.rollupContract.read.getSlotAt([ts + BigInt(ETHEREUM_SLOT_DURATION)]);
|
|
38
|
+
const timestamp = await this.rollupContract.read.getTimestampForSlot([slot]);
|
|
25
39
|
const slotFr = new Fr(slot);
|
|
26
40
|
const timestampFr = new Fr(timestamp);
|
|
27
|
-
const version = new Fr(await this.reader.getVersion());
|
|
28
|
-
const chainId = new Fr(await this.reader.getChainId());
|
|
29
41
|
const gasFees = GasFees.default();
|
|
30
42
|
const globalVariables = new GlobalVariables(chainId, version, blockNumber, slotFr, timestampFr, coinbase, feeRecipient, gasFees);
|
|
31
43
|
this.log.debug(`Built global variables for block ${blockNumber}`, globalVariables.toJSON());
|
|
32
44
|
return globalVariables;
|
|
33
45
|
}
|
|
34
46
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsX2J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2xvYmFsX3ZhcmlhYmxlX2J1aWxkZXIvZ2xvYmFsX2J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHNCQUFzQixFQUV0QixPQUFPLEVBQ1AsZUFBZSxHQUNoQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBdUIsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhELE9BQU8sRUFJTCxrQkFBa0IsRUFDbEIsVUFBVSxFQUNWLFdBQVcsRUFDWCxJQUFJLEdBQ0wsTUFBTSxNQUFNLENBQUM7QUFHZDs7R0FFRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUFNaEMsWUFBWSxNQUFzQjtRQUwxQixRQUFHLEdBQUcsaUJBQWlCLENBQUMseUNBQXlDLENBQUMsQ0FBQztRQU16RSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBRTdELE1BQU0sS0FBSyxHQUFHLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsWUFBWSxHQUFHLGtCQUFrQixDQUFDO1lBQ3JDLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUztZQUN0QixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7U0FDOUIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUM7WUFDaEMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pELEdBQUcsRUFBRSxTQUFTO1lBQ2QsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQzFCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxLQUFLLENBQUMsb0JBQW9CLENBQy9CLFdBQWUsRUFDZixRQUFvQixFQUNwQixZQUEwQjtRQUUxQixNQUFNLE9BQU8sR0FBRyxJQUFJLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDakUsTUFBTSxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFbkQsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFMUQseURBQXlEO1FBQ3pELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUU3RSxNQUFNLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixNQUFNLFdBQVcsR0FBRyxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV0QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEMsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFlLENBQ3pDLE9BQU8sRUFDUCxPQUFPLEVBQ1AsV0FBVyxFQUNYLE1BQU0sRUFDTixXQUFXLEVBQ1gsUUFBUSxFQUNSLFlBQVksRUFDWixPQUFPLENBQ1IsQ0FBQztRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxXQUFXLEVBQUUsRUFBRSxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM1RixPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0NBQ0YifQ==
|
|
@@ -1,11 +1,2 @@
|
|
|
1
|
-
import { type L1ReaderConfig } from '@aztec/ethereum';
|
|
2
|
-
import { type GlobalVariableBuilder } from './global_builder.js';
|
|
3
|
-
export { SimpleTestGlobalVariableBuilder as SimpleGlobalVariableBuilder } from './global_builder.js';
|
|
4
1
|
export { GlobalVariableBuilder } from './global_builder.js';
|
|
5
|
-
/**
|
|
6
|
-
* Returns a new instance of the global variable builder.
|
|
7
|
-
* @param config - Configuration to initialize the builder.
|
|
8
|
-
* @returns A new instance of the global variable builder.
|
|
9
|
-
*/
|
|
10
|
-
export declare function getGlobalVariableBuilder(config: L1ReaderConfig): GlobalVariableBuilder;
|
|
11
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/global_variable_builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/global_variable_builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,12 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export { SimpleTestGlobalVariableBuilder as SimpleGlobalVariableBuilder } from './global_builder.js';
|
|
4
|
-
/**
|
|
5
|
-
* Returns a new instance of the global variable builder.
|
|
6
|
-
* @param config - Configuration to initialize the builder.
|
|
7
|
-
* @returns A new instance of the global variable builder.
|
|
8
|
-
*/
|
|
9
|
-
export function getGlobalVariableBuilder(config) {
|
|
10
|
-
return new SimpleTestGlobalVariableBuilder(new ViemReader(config));
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2xvYmFsX3ZhcmlhYmxlX2J1aWxkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUE4QiwrQkFBK0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsK0JBQStCLElBQUksMkJBQTJCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdyRzs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLE1BQXNCO0lBQzdELE9BQU8sSUFBSSwrQkFBK0IsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3JFLENBQUMifQ==
|
|
1
|
+
export { GlobalVariableBuilder } from './global_builder.js';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2xvYmFsX3ZhcmlhYmxlX2J1aWxkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUMifQ==
|
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
2
|
-
import { type PublisherConfig, type TxSenderConfig } from './config.js';
|
|
3
|
-
import { L1Publisher } from './l1-publisher.js';
|
|
4
1
|
export { L1Publisher } from './l1-publisher.js';
|
|
5
2
|
export * from './config.js';
|
|
6
|
-
/**
|
|
7
|
-
* Returns a new instance of the L1Publisher.
|
|
8
|
-
* @param config - Configuration to initialize the new instance.
|
|
9
|
-
*/
|
|
10
|
-
export declare function getL1Publisher(config: PublisherConfig & TxSenderConfig, client: TelemetryClient): L1Publisher;
|
|
11
3
|
//# 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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/publisher/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,cAAc,aAAa,CAAC"}
|
package/dest/publisher/index.js
CHANGED
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
import { L1Publisher } from './l1-publisher.js';
|
|
2
|
-
import { ViemTxSender } from './viem-tx-sender.js';
|
|
3
1
|
export { L1Publisher } from './l1-publisher.js';
|
|
4
2
|
export * from './config.js';
|
|
5
|
-
|
|
6
|
-
* Returns a new instance of the L1Publisher.
|
|
7
|
-
* @param config - Configuration to initialize the new instance.
|
|
8
|
-
*/
|
|
9
|
-
export function getL1Publisher(config, client) {
|
|
10
|
-
return new L1Publisher(new ViemTxSender(config), client, config);
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGlzaGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELGNBQWMsYUFBYSxDQUFDO0FBRTVCOzs7R0FHRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsTUFBd0MsRUFBRSxNQUF1QjtJQUM5RixPQUFPLElBQUksV0FBVyxDQUFDLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNuRSxDQUFDIn0=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGlzaGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxjQUFjLGFBQWEsQ0FBQyJ9
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { type L2Block } from '@aztec/circuit-types';
|
|
3
|
-
import {
|
|
2
|
+
import { type L2Block, type Signature } from '@aztec/circuit-types';
|
|
3
|
+
import { EthAddress, type Header, type Proof } from '@aztec/circuits.js';
|
|
4
4
|
import { type Fr } from '@aztec/foundation/fields';
|
|
5
5
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
6
|
-
import { type
|
|
7
|
-
import { type PublisherConfig } from './config.js';
|
|
6
|
+
import { type PublisherConfig, type TxSenderConfig } from './config.js';
|
|
8
7
|
/**
|
|
9
8
|
* Stats for a sent transaction.
|
|
10
9
|
*/
|
|
@@ -17,7 +16,7 @@ export type TransactionStats = {
|
|
|
17
16
|
calldataGas: number;
|
|
18
17
|
};
|
|
19
18
|
/**
|
|
20
|
-
* Minimal information from a tx receipt
|
|
19
|
+
* Minimal information from a tx receipt.
|
|
21
20
|
*/
|
|
22
21
|
export type MinimalTransactionReceipt = {
|
|
23
22
|
/** True if the tx was successful, false if reverted. */
|
|
@@ -42,73 +41,18 @@ export type Attestation = {
|
|
|
42
41
|
r: `0x${string}`;
|
|
43
42
|
s: `0x${string}`;
|
|
44
43
|
};
|
|
45
|
-
/**
|
|
46
|
-
* Pushes txs to the L1 chain and waits for their completion.
|
|
47
|
-
*/
|
|
48
|
-
export interface L1PublisherTxSender {
|
|
49
|
-
/** Attests to the given archive root. */
|
|
50
|
-
attest(archive: `0x${string}`): Promise<Attestation>;
|
|
51
|
-
/** Returns the EOA used for sending txs to L1. */
|
|
52
|
-
getSenderAddress(): Promise<EthAddress>;
|
|
53
|
-
/** Returns the address of the L2 proposer at the NEXT Ethereum block zero if anyone can submit. */
|
|
54
|
-
getProposerAtNextEthBlock(): Promise<EthAddress>;
|
|
55
|
-
/**
|
|
56
|
-
* Publishes tx effects to Availability Oracle.
|
|
57
|
-
* @param encodedBody - Encoded block body.
|
|
58
|
-
* @returns The hash of the mined tx.
|
|
59
|
-
*/
|
|
60
|
-
sendPublishTx(encodedBody: Buffer): Promise<string | undefined>;
|
|
61
|
-
/**
|
|
62
|
-
* Sends a tx to the L1 rollup contract with a new L2 block. Returns once the tx has been mined.
|
|
63
|
-
* @param encodedData - Serialized data for processing the new L2 block.
|
|
64
|
-
* @returns The hash of the mined tx.
|
|
65
|
-
*/
|
|
66
|
-
sendProcessTx(encodedData: L1ProcessArgs): Promise<string | undefined>;
|
|
67
|
-
/**
|
|
68
|
-
* Publishes tx effects to availability oracle and send L2 block to rollup contract
|
|
69
|
-
* @param encodedData - Data for processing the new L2 block.
|
|
70
|
-
* @returns The hash of the tx.
|
|
71
|
-
*/
|
|
72
|
-
sendPublishAndProcessTx(encodedData: L1ProcessArgs): Promise<string | undefined>;
|
|
73
|
-
/**
|
|
74
|
-
* Sends a tx to the L1 rollup contract with a proof. Returns once the tx has been mined.
|
|
75
|
-
* @param encodedData - Serialized data for processing the new L2 block.
|
|
76
|
-
* @returns The hash of the mined tx.
|
|
77
|
-
*/
|
|
78
|
-
sendSubmitProofTx(submitProofArgs: L1SubmitProofArgs): Promise<string | undefined>;
|
|
79
|
-
/**
|
|
80
|
-
* Returns a tx receipt if the tx has been mined.
|
|
81
|
-
* @param txHash - Hash of the tx to look for.
|
|
82
|
-
* @returns Undefined if the tx hasn't been mined yet, the receipt otherwise.
|
|
83
|
-
*/
|
|
84
|
-
getTransactionReceipt(txHash: string): Promise<MinimalTransactionReceipt | undefined>;
|
|
85
|
-
/**
|
|
86
|
-
* Returns info on a tx by calling eth_getTransaction.
|
|
87
|
-
* @param txHash - Hash of the tx to look for.
|
|
88
|
-
*/
|
|
89
|
-
getTransactionStats(txHash: string): Promise<TransactionStats | undefined>;
|
|
90
|
-
/**
|
|
91
|
-
* Returns the current archive root.
|
|
92
|
-
* @returns The current archive root of the rollup contract.
|
|
93
|
-
*/
|
|
94
|
-
getCurrentArchive(): Promise<Buffer>;
|
|
95
|
-
/**
|
|
96
|
-
* Checks if the transaction effects of the given block are available.
|
|
97
|
-
* @param block - The block of which to check whether txs are available.
|
|
98
|
-
* @returns True if the txs are available, false otherwise.
|
|
99
|
-
*/
|
|
100
|
-
checkIfTxsAreAvailable(block: L2Block): Promise<boolean>;
|
|
101
|
-
}
|
|
102
44
|
/** Arguments to the process method of the rollup contract */
|
|
103
45
|
export type L1ProcessArgs = {
|
|
104
46
|
/** The L2 block header. */
|
|
105
47
|
header: Buffer;
|
|
106
48
|
/** A root of the archive tree after the L2 block is applied. */
|
|
107
49
|
archive: Buffer;
|
|
50
|
+
/** The L2 block's leaf in the archive tree. */
|
|
51
|
+
blockHash: Buffer;
|
|
108
52
|
/** L2 block body. */
|
|
109
53
|
body: Buffer;
|
|
110
54
|
/** Attestations */
|
|
111
|
-
attestations?:
|
|
55
|
+
attestations?: Signature[];
|
|
112
56
|
};
|
|
113
57
|
/** Arguments to the submitProof method of the rollup contract */
|
|
114
58
|
export type L1SubmitProofArgs = {
|
|
@@ -131,23 +75,29 @@ export type L1SubmitProofArgs = {
|
|
|
131
75
|
*
|
|
132
76
|
* Adapted from https://github.com/AztecProtocol/aztec2-internal/blob/master/falafel/src/rollup_publisher.ts.
|
|
133
77
|
*/
|
|
134
|
-
export declare class L1Publisher
|
|
135
|
-
private txSender;
|
|
78
|
+
export declare class L1Publisher {
|
|
136
79
|
private interruptibleSleep;
|
|
137
80
|
private sleepTimeMs;
|
|
138
81
|
private interrupted;
|
|
139
82
|
private metrics;
|
|
140
83
|
private log;
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
84
|
+
private availabilityOracleContract;
|
|
85
|
+
private rollupContract;
|
|
86
|
+
private publicClient;
|
|
87
|
+
private account;
|
|
88
|
+
constructor(config: TxSenderConfig & PublisherConfig, client: TelemetryClient);
|
|
89
|
+
getSenderAddress(): Promise<EthAddress>;
|
|
90
|
+
getProposerAtNextEthBlock(): Promise<EthAddress>;
|
|
144
91
|
isItMyTurnToSubmit(): Promise<boolean>;
|
|
92
|
+
getCurrentEpochCommittee(): Promise<EthAddress[]>;
|
|
93
|
+
checkIfTxsAreAvailable(block: L2Block): Promise<boolean>;
|
|
94
|
+
getTransactionStats(txHash: string): Promise<TransactionStats | undefined>;
|
|
145
95
|
/**
|
|
146
96
|
* Publishes L2 block on L1.
|
|
147
97
|
* @param block - L2 block to publish.
|
|
148
98
|
* @returns True once the tx has been confirmed and is successful, false on revert or interrupt, blocks otherwise.
|
|
149
99
|
*/
|
|
150
|
-
processL2Block(block: L2Block, attestations?:
|
|
100
|
+
processL2Block(block: L2Block, attestations?: Signature[]): Promise<boolean>;
|
|
151
101
|
submitProof(header: Header, archiveRoot: Fr, proverId: Fr, aggregationObject: Fr[], proof: Proof): Promise<boolean>;
|
|
152
102
|
/**
|
|
153
103
|
* Calling `interrupt` will cause any in progress call to `publishRollup` to return `false` asap.
|
|
@@ -158,6 +108,7 @@ export declare class L1Publisher implements L2BlockReceiver {
|
|
|
158
108
|
interrupt(): void;
|
|
159
109
|
/** Restarts the publisher after calling `interrupt`. */
|
|
160
110
|
restart(): void;
|
|
111
|
+
getCurrentArchive(): Promise<Buffer>;
|
|
161
112
|
/**
|
|
162
113
|
* Verifies that the given value of last archive in a block header equals current archive of the rollup contract
|
|
163
114
|
* @param lastArchive - The last archive of the block we wish to publish.
|
|
@@ -168,7 +119,12 @@ export declare class L1Publisher implements L2BlockReceiver {
|
|
|
168
119
|
private sendPublishTx;
|
|
169
120
|
private sendProcessTx;
|
|
170
121
|
private sendPublishAndProcessTx;
|
|
171
|
-
|
|
122
|
+
/**
|
|
123
|
+
* Returns a tx receipt if the tx has been mined.
|
|
124
|
+
* @param txHash - Hash of the tx to look for.
|
|
125
|
+
* @returns Undefined if the tx hasn't been mined yet, the receipt otherwise.
|
|
126
|
+
*/
|
|
127
|
+
getTransactionReceipt(txHash: string): Promise<MinimalTransactionReceipt | undefined>;
|
|
172
128
|
protected sleepOrInterrupted(): Promise<void>;
|
|
173
129
|
}
|
|
174
130
|
//# sourceMappingURL=l1-publisher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"l1-publisher.d.ts","sourceRoot":"","sources":["../../src/publisher/l1-publisher.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"l1-publisher.d.ts","sourceRoot":"","sources":["../../src/publisher/l1-publisher.ts"],"names":[],"mappings":"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"}
|