@aztec/ethereum 0.0.1-commit.fcb71a6 → 0.0.1-commit.ff7989d6c
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/config.d.ts +15 -28
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +50 -57
- package/dest/contracts/empire_base.d.ts +3 -1
- package/dest/contracts/empire_base.d.ts.map +1 -1
- package/dest/contracts/empire_slashing_proposer.d.ts +3 -1
- package/dest/contracts/empire_slashing_proposer.d.ts.map +1 -1
- package/dest/contracts/empire_slashing_proposer.js +22 -15
- package/dest/contracts/fee_asset_handler.d.ts +6 -5
- package/dest/contracts/fee_asset_handler.d.ts.map +1 -1
- package/dest/contracts/fee_asset_handler.js +11 -9
- package/dest/contracts/fee_asset_price_oracle.d.ts +101 -0
- package/dest/contracts/fee_asset_price_oracle.d.ts.map +1 -0
- package/dest/contracts/fee_asset_price_oracle.js +651 -0
- package/dest/contracts/governance.d.ts +3 -1
- package/dest/contracts/governance.d.ts.map +1 -1
- package/dest/contracts/governance.js +14 -4
- package/dest/contracts/governance_proposer.d.ts +3 -1
- package/dest/contracts/governance_proposer.d.ts.map +1 -1
- package/dest/contracts/governance_proposer.js +395 -9
- package/dest/contracts/inbox.d.ts +18 -1
- package/dest/contracts/inbox.d.ts.map +1 -1
- package/dest/contracts/inbox.js +32 -1
- package/dest/contracts/index.d.ts +4 -1
- package/dest/contracts/index.d.ts.map +1 -1
- package/dest/contracts/index.js +3 -0
- package/dest/contracts/log.d.ts +13 -0
- package/dest/contracts/log.d.ts.map +1 -0
- package/dest/contracts/log.js +1 -0
- package/dest/contracts/multicall.d.ts +1 -1
- package/dest/contracts/multicall.d.ts.map +1 -1
- package/dest/contracts/multicall.js +2 -1
- package/dest/contracts/outbox.d.ts +41 -0
- package/dest/contracts/outbox.d.ts.map +1 -0
- package/dest/contracts/outbox.js +86 -0
- package/dest/contracts/rollup.d.ts +161 -96
- package/dest/contracts/rollup.d.ts.map +1 -1
- package/dest/contracts/rollup.js +677 -132
- package/dest/contracts/tally_slashing_proposer.d.ts +1 -1
- package/dest/contracts/tally_slashing_proposer.d.ts.map +1 -1
- package/dest/contracts/tally_slashing_proposer.js +8 -1
- package/dest/deploy_aztec_l1_contracts.d.ts +16 -4
- package/dest/deploy_aztec_l1_contracts.d.ts.map +1 -1
- package/dest/deploy_aztec_l1_contracts.js +110 -33
- package/dest/deploy_l1_contract.js +3 -3
- package/dest/generated/l1-contracts-defaults.d.ts +30 -0
- package/dest/generated/l1-contracts-defaults.d.ts.map +1 -0
- package/dest/generated/l1-contracts-defaults.js +30 -0
- package/dest/l1_artifacts.d.ts +5877 -1515
- package/dest/l1_artifacts.d.ts.map +1 -1
- package/dest/l1_tx_utils/config.d.ts +7 -1
- package/dest/l1_tx_utils/config.d.ts.map +1 -1
- package/dest/l1_tx_utils/config.js +14 -1
- package/dest/l1_tx_utils/constants.d.ts +1 -1
- package/dest/l1_tx_utils/constants.js +2 -2
- package/dest/l1_tx_utils/factory.d.ts +18 -10
- package/dest/l1_tx_utils/factory.d.ts.map +1 -1
- package/dest/l1_tx_utils/factory.js +17 -7
- package/dest/l1_tx_utils/fee-strategies/index.d.ts +3 -2
- package/dest/l1_tx_utils/fee-strategies/index.d.ts.map +1 -1
- package/dest/l1_tx_utils/fee-strategies/index.js +2 -1
- package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts +2 -12
- package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts.map +1 -1
- package/dest/l1_tx_utils/fee-strategies/p75_competitive.js +36 -18
- package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts +2 -11
- package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts.map +1 -1
- package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.js +37 -19
- package/dest/l1_tx_utils/fee-strategies/types.d.ts +14 -27
- package/dest/l1_tx_utils/fee-strategies/types.d.ts.map +1 -1
- package/dest/l1_tx_utils/fee-strategies/types.js +0 -21
- package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts +15 -15
- package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils/forwarder_l1_tx_utils.js +9 -15
- package/dest/l1_tx_utils/index-blobs.d.ts +3 -3
- package/dest/l1_tx_utils/index-blobs.d.ts.map +1 -1
- package/dest/l1_tx_utils/index-blobs.js +2 -2
- package/dest/l1_tx_utils/index.d.ts +2 -1
- package/dest/l1_tx_utils/index.d.ts.map +1 -1
- package/dest/l1_tx_utils/index.js +1 -0
- package/dest/l1_tx_utils/l1_fee_analyzer.d.ts +2 -2
- package/dest/l1_tx_utils/l1_fee_analyzer.d.ts.map +1 -1
- package/dest/l1_tx_utils/l1_fee_analyzer.js +3 -3
- package/dest/l1_tx_utils/l1_tx_utils.d.ts +15 -5
- package/dest/l1_tx_utils/l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils/l1_tx_utils.js +47 -13
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts +1 -5
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils/readonly_l1_tx_utils.js +17 -54
- package/dest/l1_tx_utils/tx_delayer.d.ts +56 -0
- package/dest/l1_tx_utils/tx_delayer.d.ts.map +1 -0
- package/dest/{test → l1_tx_utils}/tx_delayer.js +62 -34
- package/dest/publisher_manager.d.ts +3 -2
- package/dest/publisher_manager.d.ts.map +1 -1
- package/dest/publisher_manager.js +2 -2
- package/dest/queries.d.ts +2 -2
- package/dest/queries.d.ts.map +1 -1
- package/dest/queries.js +6 -3
- package/dest/test/chain_monitor.js +1 -2
- package/dest/test/eth_cheat_codes.d.ts +13 -1
- package/dest/test/eth_cheat_codes.d.ts.map +1 -1
- package/dest/test/index.d.ts +1 -3
- package/dest/test/index.d.ts.map +1 -1
- package/dest/test/index.js +0 -2
- package/dest/test/rollup_cheat_codes.d.ts +5 -2
- package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
- package/dest/test/rollup_cheat_codes.js +19 -2
- package/dest/test/start_anvil.js +1 -1
- package/dest/test/upgrade_utils.js +2 -2
- package/dest/utils.d.ts +2 -1
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +46 -0
- package/package.json +8 -7
- package/src/config.ts +58 -56
- package/src/contracts/README.md +157 -0
- package/src/contracts/empire_base.ts +2 -0
- package/src/contracts/empire_slashing_proposer.ts +22 -27
- package/src/contracts/fee_asset_handler.ts +10 -7
- package/src/contracts/fee_asset_price_oracle.ts +280 -0
- package/src/contracts/governance.ts +13 -4
- package/src/contracts/governance_proposer.ts +10 -1
- package/src/contracts/inbox.ts +48 -1
- package/src/contracts/index.ts +3 -0
- package/src/contracts/log.ts +13 -0
- package/src/contracts/multicall.ts +5 -2
- package/src/contracts/outbox.ts +98 -0
- package/src/contracts/rollup.ts +348 -100
- package/src/contracts/tally_slashing_proposer.ts +5 -1
- package/src/deploy_aztec_l1_contracts.ts +135 -42
- package/src/deploy_l1_contract.ts +3 -3
- package/src/generated/l1-contracts-defaults.ts +32 -0
- package/src/l1_tx_utils/config.ts +20 -0
- package/src/l1_tx_utils/constants.ts +2 -2
- package/src/l1_tx_utils/factory.ts +31 -31
- package/src/l1_tx_utils/fee-strategies/index.ts +1 -1
- package/src/l1_tx_utils/fee-strategies/p75_competitive.ts +46 -42
- package/src/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.ts +49 -45
- package/src/l1_tx_utils/fee-strategies/types.ts +14 -46
- package/src/l1_tx_utils/forwarder_l1_tx_utils.ts +43 -54
- package/src/l1_tx_utils/index-blobs.ts +2 -2
- package/src/l1_tx_utils/index.ts +1 -0
- package/src/l1_tx_utils/l1_fee_analyzer.ts +2 -3
- package/src/l1_tx_utils/l1_tx_utils.ts +52 -17
- package/src/l1_tx_utils/readonly_l1_tx_utils.ts +23 -62
- package/src/{test → l1_tx_utils}/tx_delayer.ts +78 -50
- package/src/publisher_manager.ts +4 -2
- package/src/queries.ts +5 -3
- package/src/test/chain_monitor.ts +1 -1
- package/src/test/index.ts +0 -2
- package/src/test/rollup_cheat_codes.ts +21 -3
- package/src/test/start_anvil.ts +1 -1
- package/src/test/upgrade_utils.ts +2 -2
- package/src/utils.ts +53 -0
- package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts +0 -26
- package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts.map +0 -1
- package/dest/l1_tx_utils/l1_tx_utils_with_blobs.js +0 -26
- package/dest/test/delayed_tx_utils.d.ts +0 -13
- package/dest/test/delayed_tx_utils.d.ts.map +0 -1
- package/dest/test/delayed_tx_utils.js +0 -28
- package/dest/test/tx_delayer.d.ts +0 -36
- package/dest/test/tx_delayer.d.ts.map +0 -1
- package/src/l1_tx_utils/l1_tx_utils_with_blobs.ts +0 -77
- package/src/test/delayed_tx_utils.ts +0 -52
package/dest/contracts/index.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
export * from './empire_base.js';
|
|
2
2
|
export * from './errors.js';
|
|
3
3
|
export * from './fee_asset_handler.js';
|
|
4
|
+
export * from './fee_asset_price_oracle.js';
|
|
4
5
|
export * from './fee_juice.js';
|
|
5
6
|
export * from './governance.js';
|
|
6
7
|
export * from './governance_proposer.js';
|
|
7
8
|
export * from './gse.js';
|
|
8
9
|
export * from './inbox.js';
|
|
10
|
+
export * from './log.js';
|
|
9
11
|
export * from './multicall.js';
|
|
12
|
+
export * from './outbox.js';
|
|
10
13
|
export * from './registry.js';
|
|
11
14
|
export * from './rollup.js';
|
|
12
15
|
export * from './empire_slashing_proposer.js';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
|
+
/** Base L1 event log with common fields. */
|
|
3
|
+
export type L1EventLog<T> = {
|
|
4
|
+
/** L1 block number where the event was emitted. */
|
|
5
|
+
l1BlockNumber: bigint;
|
|
6
|
+
/** L1 block hash. */
|
|
7
|
+
l1BlockHash: Buffer32;
|
|
8
|
+
/** L1 transaction hash that emitted the event. */
|
|
9
|
+
l1TransactionHash: `0x${string}`;
|
|
10
|
+
/** Event-specific arguments. */
|
|
11
|
+
args: T;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RzL2xvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCw0Q0FBNEM7QUFDNUMsTUFBTSxNQUFNLFVBQVUsQ0FBQyxDQUFDLElBQUk7SUFDMUIsbURBQW1EO0lBQ25ELGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIscUJBQXFCO0lBQ3JCLFdBQVcsRUFBRSxRQUFRLENBQUM7SUFDdEIsa0RBQWtEO0lBQ2xELGlCQUFpQixFQUFFLEtBQUssTUFBTSxFQUFFLENBQUM7SUFDakMsZ0NBQWdDO0lBQ2hDLElBQUksRUFBRSxDQUFDLENBQUM7Q0FDVCxDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/contracts/log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,4CAA4C;AAC5C,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC1B,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,WAAW,EAAE,QAAQ,CAAC;IACtB,kDAAkD;IAClD,iBAAiB,EAAE,KAAK,MAAM,EAAE,CAAC;IACjC,gCAAgC;IAChC,IAAI,EAAE,CAAC,CAAC;CACT,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/** Base L1 event log with common fields. */ export { };
|
|
@@ -18,4 +18,4 @@ export declare class Multicall3 {
|
|
|
18
18
|
}>;
|
|
19
19
|
}
|
|
20
20
|
export declare function deployMulticall3(l1Client: ExtendedViemWalletClient, logger: Logger): Promise<void>;
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGljYWxsLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RzL211bHRpY2FsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEVBQXFDLEtBQUssR0FBRyxFQUFxQyxNQUFNLE1BQU0sQ0FBQztBQUV0RyxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRyxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQW1CLE1BQU0sYUFBYSxDQUFDO0FBR2xFLGVBQU8sTUFBTSxvQkFBb0IsOENBQXdELENBQUM7QUFFMUYscUJBQWEsVUFBVTtJQUNyQixPQUFhLE9BQU8sQ0FDbEIsUUFBUSxFQUFFLFdBQVcsRUFBRSxFQUN2QixTQUFTLEVBQUUsU0FBUyxFQUNwQixTQUFTLEVBQUUsVUFBVSxHQUFHLFNBQVMsRUFDakMsVUFBVSxFQUFFLFlBQVksR0FBRyxTQUFTLEVBQ3BDLGFBQWEsRUFBRSxHQUFHLEVBQ2xCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsSUFBSSxHQUFFO1FBQUUsZUFBZSxDQUFDLEVBQUUsT0FBTyxDQUFBO0tBQU87Ozs7Ozs7O09Bc0d6QztDQUNGO0FBRUQsd0JBQXNCLGdCQUFnQixDQUFDLFFBQVEsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkErQnhGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multicall.d.ts","sourceRoot":"","sources":["../../src/contracts/multicall.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAqC,KAAK,GAAG,EAAqC,MAAM,MAAM,CAAC;AAEtG,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAmB,MAAM,aAAa,CAAC;AAGlE,eAAO,MAAM,oBAAoB,8CAAwD,CAAC;AAE1F,qBAAa,UAAU;IACrB,OAAa,OAAO,CAClB,QAAQ,EAAE,WAAW,EAAE,EACvB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,UAAU,GAAG,SAAS,EACjC,UAAU,EAAE,YAAY,GAAG,SAAS,EACpC,aAAa,EAAE,GAAG,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAO;;;;;;;;
|
|
1
|
+
{"version":3,"file":"multicall.d.ts","sourceRoot":"","sources":["../../src/contracts/multicall.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAqC,KAAK,GAAG,EAAqC,MAAM,MAAM,CAAC;AAEtG,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAmB,MAAM,aAAa,CAAC;AAGlE,eAAO,MAAM,oBAAoB,8CAAwD,CAAC;AAE1F,qBAAa,UAAU;IACrB,OAAa,OAAO,CAClB,QAAQ,EAAE,WAAW,EAAE,EACvB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,UAAU,GAAG,SAAS,EACjC,UAAU,EAAE,YAAY,GAAG,SAAS,EACpC,aAAa,EAAE,GAAG,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAO;;;;;;;;OAsGzC;CACF;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,iBA+BxF"}
|
|
@@ -23,7 +23,8 @@ export class Multicall3 {
|
|
|
23
23
|
try {
|
|
24
24
|
const { receipt, state } = await l1TxUtils.sendAndMonitorTransaction({
|
|
25
25
|
to: MULTI_CALL_3_ADDRESS,
|
|
26
|
-
data: encodedForwarderData
|
|
26
|
+
data: encodedForwarderData,
|
|
27
|
+
abi: multicall3Abi
|
|
27
28
|
}, gasConfig, blobConfig);
|
|
28
29
|
if (receipt.status === 'success') {
|
|
29
30
|
const stats = await l1TxUtils.getTransactionStats(receipt.transactionHash);
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { EpochNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
|
+
import { OutboxAbi } from '@aztec/l1-artifacts/OutboxAbi';
|
|
4
|
+
import { type GetContractReturnType, type Hex } from 'viem';
|
|
5
|
+
import type { DeployAztecL1ContractsReturnType } from '../deploy_aztec_l1_contracts.js';
|
|
6
|
+
import type { L1ReaderConfig } from '../l1_reader.js';
|
|
7
|
+
import { type ViemClient } from '../types.js';
|
|
8
|
+
export type ViemL1Actor = {
|
|
9
|
+
actor: Hex;
|
|
10
|
+
chainId: bigint;
|
|
11
|
+
};
|
|
12
|
+
export type ViemL2Actor = {
|
|
13
|
+
actor: Hex;
|
|
14
|
+
version: bigint;
|
|
15
|
+
};
|
|
16
|
+
export type ViemL2ToL1Msg = {
|
|
17
|
+
sender: ViemL2Actor;
|
|
18
|
+
recipient: ViemL1Actor;
|
|
19
|
+
content: Hex;
|
|
20
|
+
};
|
|
21
|
+
export declare class OutboxContract {
|
|
22
|
+
readonly client: ViemClient;
|
|
23
|
+
private readonly outbox;
|
|
24
|
+
static getFromL1ContractsValues(deployL1ContractsValues: DeployAztecL1ContractsReturnType): OutboxContract;
|
|
25
|
+
static getFromConfig(config: L1ReaderConfig): OutboxContract;
|
|
26
|
+
static getEpochRootStorageSlot(epoch: EpochNumber): bigint;
|
|
27
|
+
constructor(client: ViemClient, address: Hex | EthAddress);
|
|
28
|
+
get address(): `0x${string}`;
|
|
29
|
+
getContract(): GetContractReturnType<typeof OutboxAbi, ViemClient>;
|
|
30
|
+
hasMessageBeenConsumedAtEpoch(epoch: EpochNumber, leafId: bigint): Promise<boolean>;
|
|
31
|
+
getRootData(epoch: EpochNumber): Promise<`0x${string}`>;
|
|
32
|
+
consume(message: ViemL2ToL1Msg, epoch: EpochNumber, leafIndex: bigint, path: Hex[]): Promise<`0x${string}`>;
|
|
33
|
+
getMessageConsumedEvents(l1BlockHash: Hex): Promise<{
|
|
34
|
+
epoch: bigint;
|
|
35
|
+
root: Hex;
|
|
36
|
+
messageHash: Hex;
|
|
37
|
+
leafId: bigint;
|
|
38
|
+
}[]>;
|
|
39
|
+
private assertWallet;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0Ym94LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RzL291dGJveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTFELE9BQU8sRUFBRSxLQUFLLHFCQUFxQixFQUFFLEtBQUssR0FBRyxFQUE0RCxNQUFNLE1BQU0sQ0FBQztBQUd0SCxPQUFPLEtBQUssRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hGLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBaUMsS0FBSyxVQUFVLEVBQW9CLE1BQU0sYUFBYSxDQUFDO0FBRS9GLE1BQU0sTUFBTSxXQUFXLEdBQUc7SUFDeEIsS0FBSyxFQUFFLEdBQUcsQ0FBQztJQUNYLE9BQU8sRUFBRSxNQUFNLENBQUM7Q0FDakIsQ0FBQztBQUVGLE1BQU0sTUFBTSxXQUFXLEdBQUc7SUFDeEIsS0FBSyxFQUFFLEdBQUcsQ0FBQztJQUNYLE9BQU8sRUFBRSxNQUFNLENBQUM7Q0FDakIsQ0FBQztBQUVGLE1BQU0sTUFBTSxhQUFhLEdBQUc7SUFDMUIsTUFBTSxFQUFFLFdBQVcsQ0FBQztJQUNwQixTQUFTLEVBQUUsV0FBVyxDQUFDO0lBQ3ZCLE9BQU8sRUFBRSxHQUFHLENBQUM7Q0FDZCxDQUFDO0FBRUYscUJBQWEsY0FBYzthQXNCUCxNQUFNLEVBQUUsVUFBVTtJQXJCcEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQXNEO0lBRTdFLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsRUFBRSxnQ0FBZ0Msa0JBTXhGO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsY0FBYyxrQkFJMUM7SUFFRCxNQUFNLENBQUMsdUJBQXVCLENBQUMsS0FBSyxFQUFFLFdBQVcsVUFFaEQ7SUFFRCxZQUNrQixNQUFNLEVBQUUsVUFBVSxFQUNsQyxPQUFPLEVBQUUsR0FBRyxHQUFHLFVBQVUsRUFNMUI7SUFFRCxJQUFXLE9BQU8sa0JBRWpCO0lBRU0sV0FBVyxJQUFJLHFCQUFxQixDQUFDLE9BQU8sU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUV4RTtJQUVNLDZCQUE2QixDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBRXRFO0lBRU0sV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXLDBCQUVwQztJQUVNLE9BQU8sQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLDBCQUd4RjtJQUVZLHdCQUF3QixDQUNuQyxXQUFXLEVBQUUsR0FBRyxHQUNmLE9BQU8sQ0FBQztRQUFFLEtBQUssRUFBRSxNQUFNLENBQUM7UUFBQyxJQUFJLEVBQUUsR0FBRyxDQUFDO1FBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQztRQUFDLE1BQU0sRUFBRSxNQUFNLENBQUE7S0FBRSxFQUFFLENBQUMsQ0FRM0U7SUFFRCxPQUFPLENBQUMsWUFBWTtDQU1yQiJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outbox.d.ts","sourceRoot":"","sources":["../../src/contracts/outbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE1D,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,GAAG,EAA4D,MAAM,MAAM,CAAC;AAGtH,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAiC,KAAK,UAAU,EAAoB,MAAM,aAAa,CAAC;AAE/F,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,GAAG,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,GAAG,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,WAAW,CAAC;IACvB,OAAO,EAAE,GAAG,CAAC;CACd,CAAC;AAEF,qBAAa,cAAc;aAsBP,MAAM,EAAE,UAAU;IArBpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsD;IAE7E,MAAM,CAAC,wBAAwB,CAAC,uBAAuB,EAAE,gCAAgC,kBAMxF;IAED,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,kBAI1C;IAED,MAAM,CAAC,uBAAuB,CAAC,KAAK,EAAE,WAAW,UAEhD;IAED,YACkB,MAAM,EAAE,UAAU,EAClC,OAAO,EAAE,GAAG,GAAG,UAAU,EAM1B;IAED,IAAW,OAAO,kBAEjB;IAEM,WAAW,IAAI,qBAAqB,CAAC,OAAO,SAAS,EAAE,UAAU,CAAC,CAExE;IAEM,6BAA6B,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,oBAEtE;IAEM,WAAW,CAAC,KAAK,EAAE,WAAW,0BAEpC;IAEM,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,0BAGxF;IAEY,wBAAwB,CACnC,WAAW,EAAE,GAAG,GACf,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,WAAW,EAAE,GAAG,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAQ3E;IAED,OAAO,CAAC,YAAY;CAMrB"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
+
import { OutboxAbi } from '@aztec/l1-artifacts/OutboxAbi';
|
|
3
|
+
import { encodeAbiParameters, getContract, hexToBigInt, keccak256 } from 'viem';
|
|
4
|
+
import { getPublicClient } from '../client.js';
|
|
5
|
+
import { isExtendedClient } from '../types.js';
|
|
6
|
+
export class OutboxContract {
|
|
7
|
+
client;
|
|
8
|
+
outbox;
|
|
9
|
+
static getFromL1ContractsValues(deployL1ContractsValues) {
|
|
10
|
+
const { l1Client, l1ContractAddresses: { outboxAddress } } = deployL1ContractsValues;
|
|
11
|
+
return new OutboxContract(l1Client, outboxAddress.toString());
|
|
12
|
+
}
|
|
13
|
+
static getFromConfig(config) {
|
|
14
|
+
const client = getPublicClient(config);
|
|
15
|
+
const address = config.l1Contracts.outboxAddress.toString();
|
|
16
|
+
return new OutboxContract(client, address);
|
|
17
|
+
}
|
|
18
|
+
static getEpochRootStorageSlot(epoch) {
|
|
19
|
+
return hexToBigInt(keccak256(encodeAbiParameters([
|
|
20
|
+
{
|
|
21
|
+
type: 'uint256'
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
type: 'uint256'
|
|
25
|
+
}
|
|
26
|
+
], [
|
|
27
|
+
BigInt(epoch),
|
|
28
|
+
0n
|
|
29
|
+
])));
|
|
30
|
+
}
|
|
31
|
+
constructor(client, address){
|
|
32
|
+
this.client = client;
|
|
33
|
+
if (address instanceof EthAddress) {
|
|
34
|
+
address = address.toString();
|
|
35
|
+
}
|
|
36
|
+
this.outbox = getContract({
|
|
37
|
+
address,
|
|
38
|
+
abi: OutboxAbi,
|
|
39
|
+
client
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
get address() {
|
|
43
|
+
return this.outbox.address;
|
|
44
|
+
}
|
|
45
|
+
getContract() {
|
|
46
|
+
return this.outbox;
|
|
47
|
+
}
|
|
48
|
+
hasMessageBeenConsumedAtEpoch(epoch, leafId) {
|
|
49
|
+
return this.outbox.read.hasMessageBeenConsumedAtEpoch([
|
|
50
|
+
BigInt(epoch),
|
|
51
|
+
leafId
|
|
52
|
+
]);
|
|
53
|
+
}
|
|
54
|
+
getRootData(epoch) {
|
|
55
|
+
return this.outbox.read.getRootData([
|
|
56
|
+
BigInt(epoch)
|
|
57
|
+
]);
|
|
58
|
+
}
|
|
59
|
+
consume(message, epoch, leafIndex, path) {
|
|
60
|
+
const wallet = this.assertWallet();
|
|
61
|
+
return wallet.write.consume([
|
|
62
|
+
message,
|
|
63
|
+
BigInt(epoch),
|
|
64
|
+
leafIndex,
|
|
65
|
+
path
|
|
66
|
+
]);
|
|
67
|
+
}
|
|
68
|
+
async getMessageConsumedEvents(l1BlockHash) {
|
|
69
|
+
const events = await this.outbox.getEvents.MessageConsumed({}, {
|
|
70
|
+
blockHash: l1BlockHash,
|
|
71
|
+
strict: true
|
|
72
|
+
});
|
|
73
|
+
return events.map((event)=>({
|
|
74
|
+
epoch: event.args.epoch,
|
|
75
|
+
root: event.args.root,
|
|
76
|
+
messageHash: event.args.messageHash,
|
|
77
|
+
leafId: event.args.leafId
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
assertWallet() {
|
|
81
|
+
if (!isExtendedClient(this.client)) {
|
|
82
|
+
throw new Error('Wallet client is required for this operation');
|
|
83
|
+
}
|
|
84
|
+
return this.outbox;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { CheckpointNumber, EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
3
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
4
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
5
|
import type { ViemSignature } from '@aztec/foundation/eth-signature';
|
|
4
6
|
import { RollupAbi } from '@aztec/l1-artifacts/RollupAbi';
|
|
@@ -9,6 +11,7 @@ import type { L1ReaderConfig } from '../l1_reader.js';
|
|
|
9
11
|
import type { L1TxRequest, L1TxUtils } from '../l1_tx_utils/index.js';
|
|
10
12
|
import type { ViemClient } from '../types.js';
|
|
11
13
|
import { EmpireSlashingProposerContract } from './empire_slashing_proposer.js';
|
|
14
|
+
import type { L1EventLog } from './log.js';
|
|
12
15
|
import { SlasherContract } from './slasher_contract.js';
|
|
13
16
|
import { TallySlashingProposerContract } from './tally_slashing_proposer.js';
|
|
14
17
|
export type ViemCommitteeAttestation = {
|
|
@@ -23,12 +26,15 @@ export type L1RollupContractAddresses = Pick<L1ContractAddresses, 'rollupAddress
|
|
|
23
26
|
export type EpochProofPublicInputArgs = {
|
|
24
27
|
previousArchive: `0x${string}`;
|
|
25
28
|
endArchive: `0x${string}`;
|
|
29
|
+
outHash: `0x${string}`;
|
|
26
30
|
proverId: `0x${string}`;
|
|
27
31
|
};
|
|
28
32
|
export type ViemHeader = {
|
|
29
33
|
lastArchiveRoot: `0x${string}`;
|
|
30
34
|
blockHeadersHash: `0x${string}`;
|
|
31
|
-
|
|
35
|
+
blobsHash: `0x${string}`;
|
|
36
|
+
inHash: `0x${string}`;
|
|
37
|
+
outHash: `0x${string}`;
|
|
32
38
|
slotNumber: bigint;
|
|
33
39
|
timestamp: bigint;
|
|
34
40
|
coinbase: `0x${string}`;
|
|
@@ -36,11 +42,6 @@ export type ViemHeader = {
|
|
|
36
42
|
gasFees: ViemGasFees;
|
|
37
43
|
totalManaUsed: bigint;
|
|
38
44
|
};
|
|
39
|
-
export type ViemContentCommitment = {
|
|
40
|
-
blobsHash: `0x${string}`;
|
|
41
|
-
inHash: `0x${string}`;
|
|
42
|
-
outHash: `0x${string}`;
|
|
43
|
-
};
|
|
44
45
|
export type ViemGasFees = {
|
|
45
46
|
feePerDaGas: bigint;
|
|
46
47
|
feePerL2Gas: bigint;
|
|
@@ -50,37 +51,138 @@ export declare enum SlashingProposerType {
|
|
|
50
51
|
Tally = 1,
|
|
51
52
|
Empire = 2
|
|
52
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Status of a validator/attester in the staking system.
|
|
56
|
+
* Matches the Status enum in StakingLib.sol
|
|
57
|
+
*/
|
|
58
|
+
export declare enum AttesterStatus {
|
|
59
|
+
NONE = 0,
|
|
60
|
+
VALIDATING = 1,
|
|
61
|
+
ZOMBIE = 2,
|
|
62
|
+
EXITING = 3
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Fee header data for a checkpoint
|
|
66
|
+
*/
|
|
67
|
+
export type FeeHeader = {
|
|
68
|
+
excessMana: bigint;
|
|
69
|
+
manaUsed: bigint;
|
|
70
|
+
ethPerFeeAsset: bigint;
|
|
71
|
+
congestionCost: bigint;
|
|
72
|
+
proverCost: bigint;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Checkpoint log data returned from the rollup contract
|
|
76
|
+
*/
|
|
77
|
+
export type CheckpointLog = {
|
|
78
|
+
archive: Fr;
|
|
79
|
+
headerHash: Buffer32;
|
|
80
|
+
blobCommitmentsHash: Buffer32;
|
|
81
|
+
attestationsHash: Buffer32;
|
|
82
|
+
payloadDigest: Buffer32;
|
|
83
|
+
slotNumber: SlotNumber;
|
|
84
|
+
feeHeader: FeeHeader;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* L1 fee data (base fee and blob fee)
|
|
88
|
+
*/
|
|
89
|
+
export type L1FeeData = {
|
|
90
|
+
baseFee: bigint;
|
|
91
|
+
blobFee: bigint;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Reward configuration for the rollup
|
|
95
|
+
*/
|
|
96
|
+
export type RewardConfig = {
|
|
97
|
+
rewardDistributor: EthAddress;
|
|
98
|
+
sequencerBps: bigint;
|
|
99
|
+
booster: EthAddress;
|
|
100
|
+
checkpointReward: bigint;
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Exit information for a validator
|
|
104
|
+
*/
|
|
105
|
+
export type Exit = {
|
|
106
|
+
withdrawalId: bigint;
|
|
107
|
+
amount: bigint;
|
|
108
|
+
exitableAt: bigint;
|
|
109
|
+
recipientOrWithdrawer: EthAddress;
|
|
110
|
+
isRecipient: boolean;
|
|
111
|
+
exists: boolean;
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* Attester configuration including public key and withdrawer
|
|
115
|
+
*/
|
|
116
|
+
export type AttesterConfig = {
|
|
117
|
+
publicKey: {
|
|
118
|
+
x: bigint;
|
|
119
|
+
y: bigint;
|
|
120
|
+
};
|
|
121
|
+
withdrawer: EthAddress;
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* Complete view of an attester's state
|
|
125
|
+
*/
|
|
126
|
+
export type AttesterView = {
|
|
127
|
+
status: AttesterStatus;
|
|
128
|
+
effectiveBalance: bigint;
|
|
129
|
+
exit: Exit;
|
|
130
|
+
config: AttesterConfig;
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* Return for a status call
|
|
134
|
+
*/
|
|
135
|
+
export type RollupStatusResponse = {
|
|
136
|
+
provenCheckpointNumber: CheckpointNumber;
|
|
137
|
+
provenArchive: Fr;
|
|
138
|
+
pendingCheckpointNumber: CheckpointNumber;
|
|
139
|
+
pendingArchive: Fr;
|
|
140
|
+
archiveOfMyCheckpoint: Fr;
|
|
141
|
+
};
|
|
142
|
+
/** Arguments for the CheckpointProposed event. */
|
|
143
|
+
export type CheckpointProposedArgs = {
|
|
144
|
+
checkpointNumber: CheckpointNumber;
|
|
145
|
+
archive: Fr;
|
|
146
|
+
versionedBlobHashes: Buffer[];
|
|
147
|
+
/** Hash of attestations. Undefined for older events (backwards compatibility). */
|
|
148
|
+
attestationsHash?: Buffer32;
|
|
149
|
+
/** Digest of the payload. Undefined for older events (backwards compatibility). */
|
|
150
|
+
payloadDigest?: Buffer32;
|
|
151
|
+
};
|
|
152
|
+
/** Log type for CheckpointProposed events. */
|
|
153
|
+
export type CheckpointProposedLog = L1EventLog<CheckpointProposedArgs>;
|
|
53
154
|
export declare class RollupContract {
|
|
54
155
|
readonly client: ViemClient;
|
|
55
156
|
private readonly rollup;
|
|
56
157
|
private static cachedStfStorageSlot;
|
|
158
|
+
private cachedEscapeHatch?;
|
|
57
159
|
static get checkBlobStorageSlot(): bigint;
|
|
58
160
|
static get stfStorageSlot(): Hex;
|
|
59
161
|
static getFromL1ContractsValues(deployL1ContractsValues: DeployAztecL1ContractsReturnType): RollupContract;
|
|
60
162
|
static getFromConfig(config: L1ReaderConfig): RollupContract;
|
|
61
163
|
constructor(client: ViemClient, address: Hex | EthAddress);
|
|
62
|
-
getGSE(): Promise
|
|
164
|
+
getGSE(): Promise<EthAddress>;
|
|
63
165
|
get address(): `0x${string}`;
|
|
64
166
|
getContract(): GetContractReturnType<typeof RollupAbi, ViemClient>;
|
|
65
167
|
getSlashingProposer(): Promise<EmpireSlashingProposerContract | TallySlashingProposerContract | undefined>;
|
|
66
168
|
getL1StartBlock(): Promise<bigint>;
|
|
67
169
|
getL1GenesisTime(): Promise<bigint>;
|
|
68
|
-
getProofSubmissionEpochs(): Promise<
|
|
69
|
-
getEpochDuration(): Promise<
|
|
170
|
+
getProofSubmissionEpochs(): Promise<number>;
|
|
171
|
+
getEpochDuration(): Promise<number>;
|
|
70
172
|
getSlotDuration(): Promise<number>;
|
|
71
|
-
getTargetCommitteeSize(): Promise<
|
|
173
|
+
getTargetCommitteeSize(): Promise<number>;
|
|
72
174
|
getEjectionThreshold(): Promise<bigint>;
|
|
73
175
|
getLocalEjectionThreshold(): Promise<bigint>;
|
|
74
|
-
getLagInEpochsForValidatorSet(): Promise<
|
|
75
|
-
getLagInEpochsForRandao(): Promise<
|
|
176
|
+
getLagInEpochsForValidatorSet(): Promise<number>;
|
|
177
|
+
getLagInEpochsForRandao(): Promise<number>;
|
|
76
178
|
getActivationThreshold(): Promise<bigint>;
|
|
77
|
-
getExitDelay(): Promise<
|
|
179
|
+
getExitDelay(): Promise<number>;
|
|
78
180
|
getManaTarget(): Promise<bigint>;
|
|
79
181
|
getProvingCostPerMana(): Promise<bigint>;
|
|
80
182
|
getProvingCostPerManaInFeeAsset(): Promise<bigint>;
|
|
81
183
|
getManaLimit(): Promise<bigint>;
|
|
82
184
|
getVersion(): Promise<bigint>;
|
|
83
|
-
getGenesisArchiveTreeRoot(): Promise
|
|
185
|
+
getGenesisArchiveTreeRoot(): Promise<Fr>;
|
|
84
186
|
/**
|
|
85
187
|
* Returns rollup constants used for epoch queries.
|
|
86
188
|
* Return type is `L1RollupConstants` which is defined in stdlib,
|
|
@@ -92,76 +194,60 @@ export declare class RollupContract {
|
|
|
92
194
|
slotDuration: number;
|
|
93
195
|
epochDuration: number;
|
|
94
196
|
proofSubmissionEpochs: number;
|
|
197
|
+
targetCommitteeSize: number;
|
|
95
198
|
}>;
|
|
96
|
-
getSlasherAddress(): Promise
|
|
199
|
+
getSlasherAddress(): Promise<EthAddress>;
|
|
200
|
+
/**
|
|
201
|
+
* Returns the configured escape hatch contract address, or zero if disabled.
|
|
202
|
+
*/
|
|
203
|
+
getEscapeHatchAddress(): Promise<EthAddress>;
|
|
204
|
+
private getEscapeHatchContract;
|
|
205
|
+
/**
|
|
206
|
+
* Returns whether the escape hatch is open for the given epoch.
|
|
207
|
+
* If escape hatch is not configured, returns false.
|
|
208
|
+
*
|
|
209
|
+
* This function is intentionally defensive: any failure to query the escape hatch
|
|
210
|
+
* (RPC issues, transient errors, etc.) is treated as "closed" to avoid callers
|
|
211
|
+
* needing to sprinkle try/catch everywhere.
|
|
212
|
+
*/
|
|
213
|
+
isEscapeHatchOpen(epoch: EpochNumber): Promise<boolean>;
|
|
97
214
|
/**
|
|
98
215
|
* Returns a SlasherContract instance for interacting with the slasher contract.
|
|
99
216
|
*/
|
|
100
217
|
getSlasherContract(): Promise<SlasherContract | undefined>;
|
|
101
|
-
getOwner(): Promise
|
|
102
|
-
getActiveAttesterCount(): Promise<
|
|
218
|
+
getOwner(): Promise<EthAddress>;
|
|
219
|
+
getActiveAttesterCount(): Promise<number>;
|
|
103
220
|
getSlashingProposerAddress(): Promise<EthAddress>;
|
|
104
221
|
getCheckpointReward(): Promise<bigint>;
|
|
105
222
|
getCheckpointNumber(): Promise<CheckpointNumber>;
|
|
106
223
|
getProvenCheckpointNumber(): Promise<CheckpointNumber>;
|
|
107
224
|
getSlotNumber(): Promise<SlotNumber>;
|
|
108
|
-
getL1FeesAt(timestamp: bigint): Promise<
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
getCommitteeAt(timestamp: bigint): Promise<readonly `0x${string}`[] | undefined>;
|
|
114
|
-
getSampleSeedAt(timestamp: bigint): Promise<bigint>;
|
|
115
|
-
getCurrentSampleSeed(): Promise<bigint>;
|
|
225
|
+
getL1FeesAt(timestamp: bigint): Promise<L1FeeData>;
|
|
226
|
+
getEthPerFeeAsset(): Promise<bigint>;
|
|
227
|
+
getCommitteeAt(timestamp: bigint): Promise<EthAddress[] | undefined>;
|
|
228
|
+
getSampleSeedAt(timestamp: bigint): Promise<Buffer32>;
|
|
229
|
+
getCurrentSampleSeed(): Promise<Buffer32>;
|
|
116
230
|
getCurrentEpoch(): Promise<EpochNumber>;
|
|
117
|
-
getCurrentEpochCommittee(): Promise<
|
|
118
|
-
getCurrentProposer(): Promise
|
|
119
|
-
getProposerAt(timestamp: bigint): Promise
|
|
120
|
-
getCheckpoint(checkpointNumber: CheckpointNumber): Promise<
|
|
121
|
-
archive: `0x${string}`;
|
|
122
|
-
attestationsHash: `0x${string}`;
|
|
123
|
-
blobCommitmentsHash: `0x${string}`;
|
|
124
|
-
feeHeader: {
|
|
125
|
-
congestionCost: bigint;
|
|
126
|
-
excessMana: bigint;
|
|
127
|
-
feeAssetPriceNumerator: bigint;
|
|
128
|
-
manaUsed: bigint;
|
|
129
|
-
proverCost: bigint;
|
|
130
|
-
};
|
|
131
|
-
headerHash: `0x${string}`;
|
|
132
|
-
payloadDigest: `0x${string}`;
|
|
133
|
-
slotNumber: bigint;
|
|
134
|
-
}>;
|
|
231
|
+
getCurrentEpochCommittee(): Promise<EthAddress[] | undefined>;
|
|
232
|
+
getCurrentProposer(): Promise<EthAddress>;
|
|
233
|
+
getProposerAt(timestamp: bigint): Promise<EthAddress>;
|
|
234
|
+
getCheckpoint(checkpointNumber: CheckpointNumber): Promise<CheckpointLog>;
|
|
135
235
|
/** Returns the pending checkpoint from the rollup contract */
|
|
136
|
-
getPendingCheckpoint(): Promise<
|
|
137
|
-
archive: `0x${string}`;
|
|
138
|
-
attestationsHash: `0x${string}`;
|
|
139
|
-
blobCommitmentsHash: `0x${string}`;
|
|
140
|
-
feeHeader: {
|
|
141
|
-
congestionCost: bigint;
|
|
142
|
-
excessMana: bigint;
|
|
143
|
-
feeAssetPriceNumerator: bigint;
|
|
144
|
-
manaUsed: bigint;
|
|
145
|
-
proverCost: bigint;
|
|
146
|
-
};
|
|
147
|
-
headerHash: `0x${string}`;
|
|
148
|
-
payloadDigest: `0x${string}`;
|
|
149
|
-
slotNumber: bigint;
|
|
150
|
-
}>;
|
|
236
|
+
getPendingCheckpoint(): Promise<CheckpointLog>;
|
|
151
237
|
getTips(): Promise<{
|
|
152
238
|
pending: CheckpointNumber;
|
|
153
239
|
proven: CheckpointNumber;
|
|
154
240
|
}>;
|
|
155
241
|
getTimestampForSlot(slot: SlotNumber): Promise<bigint>;
|
|
156
|
-
getEntryQueueLength(): Promise<
|
|
157
|
-
getAvailableValidatorFlushes(): Promise<
|
|
242
|
+
getEntryQueueLength(): Promise<number>;
|
|
243
|
+
getAvailableValidatorFlushes(): Promise<number>;
|
|
158
244
|
getNextFlushableEpoch(): Promise<EpochNumber>;
|
|
159
245
|
getCurrentEpochNumber(): Promise<EpochNumber>;
|
|
160
246
|
getEpochNumberForCheckpoint(checkpointNumber: CheckpointNumber): Promise<EpochNumber>;
|
|
161
247
|
getRollupAddresses(): Promise<L1RollupContractAddresses>;
|
|
162
248
|
getFeeJuicePortal(): Promise<EthAddress>;
|
|
163
249
|
getEpochNumberForSlotNumber(slotNumber: SlotNumber): Promise<EpochNumber>;
|
|
164
|
-
getEpochProofPublicInputs(args: readonly [bigint, bigint, EpochProofPublicInputArgs, readonly `0x${string}`[], `0x${string}`]): Promise<
|
|
250
|
+
getEpochProofPublicInputs(args: readonly [bigint, bigint, EpochProofPublicInputArgs, readonly `0x${string}`[], `0x${string}`]): Promise<Fr[]>;
|
|
165
251
|
validateHeader(args: readonly [
|
|
166
252
|
ViemHeader,
|
|
167
253
|
ViemCommitteeAttestations,
|
|
@@ -203,48 +289,25 @@ export declare class RollupContract {
|
|
|
203
289
|
buildInvalidateInsufficientAttestationsRequest(checkpointNumber: CheckpointNumber, attestationsAndSigners: ViemCommitteeAttestations, committee: EthAddress[]): L1TxRequest;
|
|
204
290
|
/** Calls getHasSubmitted directly. Returns whether the given prover has submitted a proof with the given length for the given epoch. */
|
|
205
291
|
getHasSubmittedProof(epochNumber: EpochNumber, numberOfCheckpointsInEpoch: number, prover: Hex | EthAddress): Promise<boolean>;
|
|
206
|
-
|
|
292
|
+
getManaMinFeeAt(timestamp: bigint, inFeeAsset: boolean): Promise<bigint>;
|
|
207
293
|
getSlotAt(timestamp: bigint): Promise<SlotNumber>;
|
|
208
294
|
status(checkpointNumber: CheckpointNumber, options?: {
|
|
209
295
|
blockNumber?: bigint;
|
|
210
|
-
}): Promise<
|
|
296
|
+
}): Promise<RollupStatusResponse>;
|
|
211
297
|
canPruneAtTime(timestamp: bigint, options?: {
|
|
212
298
|
blockNumber?: bigint;
|
|
213
299
|
}): Promise<boolean>;
|
|
214
|
-
archive(): Promise
|
|
215
|
-
archiveAt(checkpointNumber: CheckpointNumber): Promise
|
|
300
|
+
archive(): Promise<Fr>;
|
|
301
|
+
archiveAt(checkpointNumber: CheckpointNumber): Promise<Fr>;
|
|
216
302
|
getSequencerRewards(address: Hex | EthAddress): Promise<bigint>;
|
|
217
303
|
getSpecificProverRewardsForEpoch(epoch: bigint, prover: Hex | EthAddress): Promise<bigint>;
|
|
218
|
-
getAttesters(): Promise
|
|
219
|
-
getAttesterView(address: Hex | EthAddress): Promise<
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
withdrawer: `0x${string}`;
|
|
226
|
-
};
|
|
227
|
-
effectiveBalance: bigint;
|
|
228
|
-
exit: {
|
|
229
|
-
amount: bigint;
|
|
230
|
-
exists: boolean;
|
|
231
|
-
exitableAt: bigint;
|
|
232
|
-
isRecipient: boolean;
|
|
233
|
-
recipientOrWithdrawer: `0x${string}`;
|
|
234
|
-
withdrawalId: bigint;
|
|
235
|
-
};
|
|
236
|
-
status: number;
|
|
237
|
-
}>;
|
|
238
|
-
getStatus(address: Hex | EthAddress): Promise<number>;
|
|
239
|
-
getBlobCommitmentsHash(checkpointNumber: CheckpointNumber): Promise<`0x${string}`>;
|
|
240
|
-
getCurrentBlobCommitmentsHash(): Promise<`0x${string}`>;
|
|
241
|
-
getStakingAsset(): Promise<`0x${string}`>;
|
|
242
|
-
getRewardConfig(): Promise<{
|
|
243
|
-
booster: `0x${string}`;
|
|
244
|
-
checkpointReward: bigint;
|
|
245
|
-
rewardDistributor: `0x${string}`;
|
|
246
|
-
sequencerBps: number;
|
|
247
|
-
}>;
|
|
304
|
+
getAttesters(): Promise<EthAddress[]>;
|
|
305
|
+
getAttesterView(address: Hex | EthAddress): Promise<AttesterView>;
|
|
306
|
+
getStatus(address: Hex | EthAddress): Promise<AttesterStatus>;
|
|
307
|
+
getBlobCommitmentsHash(checkpointNumber: CheckpointNumber): Promise<Buffer32>;
|
|
308
|
+
getCurrentBlobCommitmentsHash(): Promise<Buffer32>;
|
|
309
|
+
getStakingAsset(): Promise<EthAddress>;
|
|
310
|
+
getRewardConfig(): Promise<RewardConfig>;
|
|
248
311
|
setupEpoch(l1TxUtils: L1TxUtils): Promise<{
|
|
249
312
|
receipt: import("viem").TransactionReceipt;
|
|
250
313
|
state: import("../l1_tx_utils/types.js").L1TxState;
|
|
@@ -268,5 +331,7 @@ export declare class RollupContract {
|
|
|
268
331
|
amount: bigint;
|
|
269
332
|
attester: EthAddress;
|
|
270
333
|
}) => unknown): WatchContractEventReturnType;
|
|
334
|
+
/** Fetches CheckpointProposed events within the given block range. */
|
|
335
|
+
getCheckpointProposedEvents(fromBlock: bigint, toBlock: bigint): Promise<CheckpointProposedLog[]>;
|
|
271
336
|
}
|
|
272
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sbHVwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RzL3JvbGx1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTVGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJMUQsT0FBTyxFQUNMLEtBQUssT0FBTyxFQUNaLEtBQUsscUJBQXFCLEVBQzFCLEtBQUssR0FBRyxFQUNSLEtBQUssYUFBYSxFQUNsQixLQUFLLDRCQUE0QixFQUtsQyxNQUFNLE1BQU0sQ0FBQztBQUdkLE9BQU8sS0FBSyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEYsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTlDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRS9FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUc3RSxNQUFNLE1BQU0sd0JBQXdCLEdBQUc7SUFDckMsSUFBSSxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUM7SUFDcEIsU0FBUyxFQUFFLGFBQWEsQ0FB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
|
|
337
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sbHVwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RzL3JvbGx1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUkxRCxPQUFPLEVBQ0wsS0FBSyxPQUFPLEVBQ1osS0FBSyxxQkFBcUIsRUFDMUIsS0FBSyxHQUFHLEVBQ1IsS0FBSyxhQUFhLEVBQ2xCLEtBQUssNEJBQTRCLEVBS2xDLE1BQU0sTUFBTSxDQUFDO0FBR2QsT0FBTyxLQUFLLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RixPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUMsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFL0UsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztB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
|