@aztec/ethereum 0.80.0 → 0.82.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/config.d.ts +6 -0
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +13 -1
- package/dest/contracts/fee_asset_handler.d.ts +18 -0
- package/dest/contracts/fee_asset_handler.d.ts.map +1 -0
- package/dest/contracts/fee_asset_handler.js +43 -0
- package/dest/contracts/index.d.ts +1 -0
- package/dest/contracts/index.d.ts.map +1 -1
- package/dest/contracts/index.js +1 -0
- package/dest/contracts/rollup.d.ts +33 -9
- package/dest/contracts/rollup.d.ts.map +1 -1
- package/dest/contracts/rollup.js +165 -19
- package/dest/deploy_l1_contracts.d.ts +1937 -297
- package/dest/deploy_l1_contracts.d.ts.map +1 -1
- package/dest/deploy_l1_contracts.js +53 -30
- package/dest/l1_contract_addresses.d.ts +4 -0
- package/dest/l1_contract_addresses.d.ts.map +1 -1
- package/dest/l1_contract_addresses.js +7 -1
- package/dest/l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils.js +1 -4
- package/dest/queries.d.ts.map +1 -1
- package/dest/queries.js +7 -3
- package/dest/test/upgrade_utils.d.ts.map +1 -1
- package/dest/test/upgrade_utils.js +8 -9
- package/package.json +4 -4
- package/src/config.ts +16 -0
- package/src/contracts/fee_asset_handler.ts +45 -0
- package/src/contracts/index.ts +1 -0
- package/src/contracts/rollup.ts +159 -16
- package/src/deploy_l1_contracts.ts +61 -23
- package/src/l1_contract_addresses.ts +7 -1
- package/src/l1_tx_utils.ts +1 -2
- package/src/queries.ts +6 -0
- package/src/test/upgrade_utils.ts +9 -9
package/dest/config.d.ts
CHANGED
|
@@ -21,6 +21,10 @@ export type L1ContractsConfig = {
|
|
|
21
21
|
governanceProposerQuorum: number;
|
|
22
22
|
/** Governance proposing round size */
|
|
23
23
|
governanceProposerRoundSize: number;
|
|
24
|
+
/** The mana target for the rollup */
|
|
25
|
+
manaTarget: bigint;
|
|
26
|
+
/** The proving cost per mana */
|
|
27
|
+
provingCostPerMana: bigint;
|
|
24
28
|
} & L1TxUtilsConfig;
|
|
25
29
|
export declare const DefaultL1ContractsConfig: {
|
|
26
30
|
ethereumSlotDuration: number;
|
|
@@ -33,6 +37,8 @@ export declare const DefaultL1ContractsConfig: {
|
|
|
33
37
|
slashingRoundSize: number;
|
|
34
38
|
governanceProposerQuorum: number;
|
|
35
39
|
governanceProposerRoundSize: number;
|
|
40
|
+
manaTarget: bigint;
|
|
41
|
+
provingCostPerMana: bigint;
|
|
36
42
|
};
|
|
37
43
|
export declare const l1ContractsConfigMappings: ConfigMappingsType<L1ContractsConfig>;
|
|
38
44
|
export declare function getL1ContractsConfigEnvVars(): L1ContractsConfig;
|
package/dest/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,KAAK,eAAe,EAA2B,MAAM,kBAAkB,CAAC;AAEjF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,yCAAyC;IACzC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uFAAuF;IACvF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,wBAAwB,EAAE,MAAM,CAAC;IACjC,sFAAsF;IACtF,0BAA0B,EAAE,MAAM,CAAC;IACnC,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,8BAA8B;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kCAAkC;IAClC,wBAAwB,EAAE,MAAM,CAAC;IACjC,sCAAsC;IACtC,2BAA2B,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,KAAK,eAAe,EAA2B,MAAM,kBAAkB,CAAC;AAEjF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,yCAAyC;IACzC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uFAAuF;IACvF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,wBAAwB,EAAE,MAAM,CAAC;IACjC,sFAAsF;IACtF,0BAA0B,EAAE,MAAM,CAAC;IACnC,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,8BAA8B;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kCAAkC;IAClC,wBAAwB,EAAE,MAAM,CAAC;IACjC,sCAAsC;IACtC,2BAA2B,EAAE,MAAM,CAAC;IACpC,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,kBAAkB,EAAE,MAAM,CAAC;CAC5B,GAAG,eAAe,CAAC;AAEpB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;CAaR,CAAC;AAE9B,eAAO,MAAM,yBAAyB,EAAE,kBAAkB,CAAC,iBAAiB,CA+D3E,CAAC;AAEF,wBAAgB,2BAA2B,IAAI,iBAAiB,CAE/D"}
|
package/dest/config.js
CHANGED
|
@@ -10,7 +10,9 @@ export const DefaultL1ContractsConfig = {
|
|
|
10
10
|
slashingQuorum: 6,
|
|
11
11
|
slashingRoundSize: 10,
|
|
12
12
|
governanceProposerQuorum: 6,
|
|
13
|
-
governanceProposerRoundSize: 10
|
|
13
|
+
governanceProposerRoundSize: 10,
|
|
14
|
+
manaTarget: BigInt(100e6),
|
|
15
|
+
provingCostPerMana: BigInt(100)
|
|
14
16
|
};
|
|
15
17
|
export const l1ContractsConfigMappings = {
|
|
16
18
|
ethereumSlotDuration: {
|
|
@@ -63,6 +65,16 @@ export const l1ContractsConfigMappings = {
|
|
|
63
65
|
description: 'The governance proposing round size',
|
|
64
66
|
...numberConfigHelper(DefaultL1ContractsConfig.governanceProposerRoundSize)
|
|
65
67
|
},
|
|
68
|
+
manaTarget: {
|
|
69
|
+
env: 'AZTEC_MANA_TARGET',
|
|
70
|
+
description: 'The mana target for the rollup',
|
|
71
|
+
...bigintConfigHelper(DefaultL1ContractsConfig.manaTarget)
|
|
72
|
+
},
|
|
73
|
+
provingCostPerMana: {
|
|
74
|
+
env: 'AZTEC_PROVING_COST_PER_MANA',
|
|
75
|
+
description: 'The proving cost per mana',
|
|
76
|
+
...bigintConfigHelper(DefaultL1ContractsConfig.provingCostPerMana)
|
|
77
|
+
},
|
|
66
78
|
...l1TxUtilsConfigMappings
|
|
67
79
|
};
|
|
68
80
|
export function getL1ContractsConfigEnvVars() {
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
+
import { type Hex } from 'viem';
|
|
3
|
+
import type { L1TxUtils } from '../l1_tx_utils.js';
|
|
4
|
+
export declare class FeeAssetHandlerContract {
|
|
5
|
+
readonly txUtils: L1TxUtils;
|
|
6
|
+
address: EthAddress;
|
|
7
|
+
constructor(address: Hex, txUtils: L1TxUtils);
|
|
8
|
+
getMintAmount(): Promise<bigint>;
|
|
9
|
+
mint(recipient: Hex): Promise<{
|
|
10
|
+
receipt: import("viem").TransactionReceipt;
|
|
11
|
+
gasPrice: import("../l1_tx_utils.js").GasPrice;
|
|
12
|
+
}>;
|
|
13
|
+
setMintAmount(amount: bigint): Promise<{
|
|
14
|
+
receipt: import("viem").TransactionReceipt;
|
|
15
|
+
gasPrice: import("../l1_tx_utils.js").GasPrice;
|
|
16
|
+
}>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=fee_asset_handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fee_asset_handler.d.ts","sourceRoot":"","sources":["../../src/contracts/fee_asset_handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAAE,KAAK,GAAG,EAAmC,MAAM,MAAM,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBAAa,uBAAuB;aAGQ,OAAO,EAAE,SAAS;IAFrD,OAAO,EAAE,UAAU,CAAC;gBAEf,OAAO,EAAE,GAAG,EAAkB,OAAO,EAAE,SAAS;IAIrD,aAAa;IASb,IAAI,CAAC,SAAS,EAAE,GAAG;;;;IAWnB,aAAa,CAAC,MAAM,EAAE,MAAM;;;;CAUpC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
+
import { FeeAssetHandlerAbi } from '@aztec/l1-artifacts/FeeAssetHandlerAbi';
|
|
3
|
+
import { encodeFunctionData, getContract } from 'viem';
|
|
4
|
+
export class FeeAssetHandlerContract {
|
|
5
|
+
txUtils;
|
|
6
|
+
address;
|
|
7
|
+
constructor(address, txUtils){
|
|
8
|
+
this.txUtils = txUtils;
|
|
9
|
+
this.address = EthAddress.fromString(address);
|
|
10
|
+
}
|
|
11
|
+
getMintAmount() {
|
|
12
|
+
const contract = getContract({
|
|
13
|
+
abi: FeeAssetHandlerAbi,
|
|
14
|
+
address: this.address.toString(),
|
|
15
|
+
client: this.txUtils.publicClient
|
|
16
|
+
});
|
|
17
|
+
return contract.read.mintAmount();
|
|
18
|
+
}
|
|
19
|
+
mint(recipient) {
|
|
20
|
+
return this.txUtils.sendAndMonitorTransaction({
|
|
21
|
+
to: this.address.toString(),
|
|
22
|
+
data: encodeFunctionData({
|
|
23
|
+
abi: FeeAssetHandlerAbi,
|
|
24
|
+
functionName: 'mint',
|
|
25
|
+
args: [
|
|
26
|
+
recipient
|
|
27
|
+
]
|
|
28
|
+
})
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
setMintAmount(amount) {
|
|
32
|
+
return this.txUtils.sendAndMonitorTransaction({
|
|
33
|
+
to: this.address.toString(),
|
|
34
|
+
data: encodeFunctionData({
|
|
35
|
+
abi: FeeAssetHandlerAbi,
|
|
36
|
+
functionName: 'setMintAmount',
|
|
37
|
+
args: [
|
|
38
|
+
amount
|
|
39
|
+
]
|
|
40
|
+
})
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC"}
|
package/dest/contracts/index.js
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
/// <reference types="node" resolution-mode="require"/>
|
|
3
3
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
4
|
import type { ViemSignature } from '@aztec/foundation/eth-signature';
|
|
5
|
-
import {
|
|
5
|
+
import { RollupAbi } from '@aztec/l1-artifacts/RollupAbi';
|
|
6
|
+
import { type Account, type GetContractReturnType, type Hex } from 'viem';
|
|
6
7
|
import type { DeployL1ContractsReturnType } from '../deploy_l1_contracts.js';
|
|
7
8
|
import type { L1ContractAddresses } from '../l1_contract_addresses.js';
|
|
8
9
|
import type { L1ReaderConfig } from '../l1_reader.js';
|
|
@@ -26,6 +27,7 @@ export declare class RollupContract {
|
|
|
26
27
|
static getFromConfig(config: L1ReaderConfig): RollupContract;
|
|
27
28
|
constructor(client: ViemPublicClient, address: Hex | EthAddress);
|
|
28
29
|
get address(): `0x${string}`;
|
|
30
|
+
getContract(): GetContractReturnType<typeof RollupAbi, ViemPublicClient>;
|
|
29
31
|
getSlashingProposer(): Promise<SlashingProposerContract>;
|
|
30
32
|
getL1StartBlock(): Promise<bigint>;
|
|
31
33
|
getL1GenesisTime(): Promise<bigint>;
|
|
@@ -34,6 +36,11 @@ export declare class RollupContract {
|
|
|
34
36
|
getSlotDuration(): Promise<bigint>;
|
|
35
37
|
getTargetCommitteeSize(): Promise<bigint>;
|
|
36
38
|
getMinimumStake(): Promise<bigint>;
|
|
39
|
+
getManaTarget(): Promise<bigint>;
|
|
40
|
+
getProvingCostPerMana(): Promise<bigint>;
|
|
41
|
+
getProvingCostPerManaInFeeAsset(): Promise<bigint>;
|
|
42
|
+
getManaLimit(): Promise<bigint>;
|
|
43
|
+
getSlasher(): Promise<`0x${string}`>;
|
|
37
44
|
getSlashingProposerAddress(): Promise<EthAddress>;
|
|
38
45
|
getBlockNumber(): Promise<bigint>;
|
|
39
46
|
getProvenBlockNumber(): Promise<bigint>;
|
|
@@ -45,13 +52,6 @@ export declare class RollupContract {
|
|
|
45
52
|
getCurrentProposer(): Promise<`0x${string}`>;
|
|
46
53
|
getProposerAt(timestamp: bigint): Promise<`0x${string}`>;
|
|
47
54
|
getBlock(blockNumber: bigint): Promise<{
|
|
48
|
-
feeHeader: {
|
|
49
|
-
excessMana: bigint;
|
|
50
|
-
manaUsed: bigint;
|
|
51
|
-
feeAssetPriceNumerator: bigint;
|
|
52
|
-
congestionCost: bigint;
|
|
53
|
-
provingCost: bigint;
|
|
54
|
-
};
|
|
55
55
|
archive: `0x${string}`;
|
|
56
56
|
blockHash: `0x${string}`;
|
|
57
57
|
slotNumber: bigint;
|
|
@@ -87,6 +87,30 @@ export declare class RollupContract {
|
|
|
87
87
|
*/
|
|
88
88
|
canProposeAtNextEthBlock(archive: Buffer, account: `0x${string}` | Account, slotDuration: bigint | number): Promise<[bigint, bigint]>;
|
|
89
89
|
/** Calls getHasSubmitted directly. Returns whether the given prover has submitted a proof with the given length for the given epoch. */
|
|
90
|
-
getHasSubmittedProof(epochNumber: number, numberOfBlocksInEpoch: number, prover: EthAddress): Promise<boolean>;
|
|
90
|
+
getHasSubmittedProof(epochNumber: number, numberOfBlocksInEpoch: number, prover: Hex | EthAddress): Promise<boolean>;
|
|
91
|
+
getManaBaseFeeAt(timestamp: bigint, inFeeAsset: boolean): Promise<bigint>;
|
|
92
|
+
getVersion(): Promise<bigint>;
|
|
93
|
+
getSlotAt(timestamp: bigint): Promise<bigint>;
|
|
94
|
+
status(blockNumber: bigint, options?: {
|
|
95
|
+
blockNumber?: bigint;
|
|
96
|
+
}): Promise<readonly [bigint, `0x${string}`, bigint, `0x${string}`, `0x${string}`, bigint]>;
|
|
97
|
+
canPruneAtTime(timestamp: bigint, options?: {
|
|
98
|
+
blockNumber?: bigint;
|
|
99
|
+
}): Promise<boolean>;
|
|
100
|
+
archive(): Promise<`0x${string}`>;
|
|
101
|
+
archiveAt(blockNumber: bigint): Promise<`0x${string}`>;
|
|
102
|
+
getSequencerRewards(address: Hex | EthAddress): Promise<bigint>;
|
|
103
|
+
getSpecificProverRewardsForEpoch(epoch: bigint, prover: Hex | EthAddress): Promise<bigint>;
|
|
104
|
+
getAttesters(): Promise<readonly `0x${string}`[]>;
|
|
105
|
+
getEpochCommittee(epoch: bigint): Promise<readonly `0x${string}`[]>;
|
|
106
|
+
getInfo(address: Hex | EthAddress): Promise<{
|
|
107
|
+
stake: bigint;
|
|
108
|
+
withdrawer: `0x${string}`;
|
|
109
|
+
proposer: `0x${string}`;
|
|
110
|
+
status: number;
|
|
111
|
+
}>;
|
|
112
|
+
getBlobPublicInputsHash(blockNumber: bigint): Promise<`0x${string}`>;
|
|
113
|
+
getStakingAsset(): Promise<`0x${string}`>;
|
|
114
|
+
getProposerForAttester(attester: Hex | EthAddress): Promise<`0x${string}`>;
|
|
91
115
|
}
|
|
92
116
|
//# sourceMappingURL=rollup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/contracts/rollup.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/contracts/rollup.ts"],"names":[],"mappings":"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"}
|
package/dest/contracts/rollup.js
CHANGED
|
@@ -46,6 +46,9 @@ export class RollupContract {
|
|
|
46
46
|
get address() {
|
|
47
47
|
return this.rollup.address;
|
|
48
48
|
}
|
|
49
|
+
getContract() {
|
|
50
|
+
return this.rollup;
|
|
51
|
+
}
|
|
49
52
|
async getSlashingProposer() {
|
|
50
53
|
const slasherAddress = await this.rollup.read.getSlasher();
|
|
51
54
|
const slasher = getContract({
|
|
@@ -77,8 +80,23 @@ export class RollupContract {
|
|
|
77
80
|
getMinimumStake() {
|
|
78
81
|
return this.rollup.read.getMinimumStake();
|
|
79
82
|
}
|
|
83
|
+
getManaTarget() {
|
|
84
|
+
return this.rollup.read.getManaTarget();
|
|
85
|
+
}
|
|
86
|
+
getProvingCostPerMana() {
|
|
87
|
+
return this.rollup.read.getProvingCostPerManaInEth();
|
|
88
|
+
}
|
|
89
|
+
getProvingCostPerManaInFeeAsset() {
|
|
90
|
+
return this.rollup.read.getProvingCostPerManaInFeeAsset();
|
|
91
|
+
}
|
|
92
|
+
getManaLimit() {
|
|
93
|
+
return this.rollup.read.getManaLimit();
|
|
94
|
+
}
|
|
95
|
+
getSlasher() {
|
|
96
|
+
return this.rollup.read.getSlasher();
|
|
97
|
+
}
|
|
80
98
|
async getSlashingProposerAddress() {
|
|
81
|
-
const slasherAddress = await this.
|
|
99
|
+
const slasherAddress = await this.getSlasher();
|
|
82
100
|
const slasher = getContract({
|
|
83
101
|
address: getAddress(slasherAddress.toString()),
|
|
84
102
|
abi: SlasherAbi,
|
|
@@ -95,10 +113,16 @@ export class RollupContract {
|
|
|
95
113
|
getSlotNumber() {
|
|
96
114
|
return this.rollup.read.getCurrentSlot();
|
|
97
115
|
}
|
|
98
|
-
getCommitteeAt(timestamp) {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
116
|
+
async getCommitteeAt(timestamp) {
|
|
117
|
+
const { result } = await this.client.simulateContract({
|
|
118
|
+
address: this.address,
|
|
119
|
+
abi: RollupAbi,
|
|
120
|
+
functionName: 'getCommitteeAt',
|
|
121
|
+
args: [
|
|
122
|
+
timestamp
|
|
123
|
+
]
|
|
124
|
+
});
|
|
125
|
+
return result;
|
|
102
126
|
}
|
|
103
127
|
getSampleSeedAt(timestamp) {
|
|
104
128
|
return this.rollup.read.getSampleSeedAt([
|
|
@@ -108,16 +132,34 @@ export class RollupContract {
|
|
|
108
132
|
getCurrentSampleSeed() {
|
|
109
133
|
return this.rollup.read.getCurrentSampleSeed();
|
|
110
134
|
}
|
|
111
|
-
getCurrentEpochCommittee() {
|
|
112
|
-
|
|
135
|
+
async getCurrentEpochCommittee() {
|
|
136
|
+
const { result } = await this.client.simulateContract({
|
|
137
|
+
address: this.address,
|
|
138
|
+
abi: RollupAbi,
|
|
139
|
+
functionName: 'getCurrentEpochCommittee',
|
|
140
|
+
args: []
|
|
141
|
+
});
|
|
142
|
+
return result;
|
|
113
143
|
}
|
|
114
|
-
getCurrentProposer() {
|
|
115
|
-
|
|
144
|
+
async getCurrentProposer() {
|
|
145
|
+
const { result } = await this.client.simulateContract({
|
|
146
|
+
address: this.address,
|
|
147
|
+
abi: RollupAbi,
|
|
148
|
+
functionName: 'getCurrentProposer',
|
|
149
|
+
args: []
|
|
150
|
+
});
|
|
151
|
+
return result;
|
|
116
152
|
}
|
|
117
|
-
getProposerAt(timestamp) {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
153
|
+
async getProposerAt(timestamp) {
|
|
154
|
+
const { result } = await this.client.simulateContract({
|
|
155
|
+
address: this.address,
|
|
156
|
+
abi: RollupAbi,
|
|
157
|
+
functionName: 'getProposerAt',
|
|
158
|
+
args: [
|
|
159
|
+
timestamp
|
|
160
|
+
]
|
|
161
|
+
});
|
|
162
|
+
return result;
|
|
121
163
|
}
|
|
122
164
|
getBlock(blockNumber) {
|
|
123
165
|
return this.rollup.read.getBlock([
|
|
@@ -167,7 +209,11 @@ export class RollupContract {
|
|
|
167
209
|
}
|
|
168
210
|
async validateHeader(args, account) {
|
|
169
211
|
try {
|
|
170
|
-
await this.
|
|
212
|
+
await this.client.simulateContract({
|
|
213
|
+
address: this.address,
|
|
214
|
+
abi: RollupAbi,
|
|
215
|
+
functionName: 'validateHeader',
|
|
216
|
+
args,
|
|
171
217
|
account
|
|
172
218
|
});
|
|
173
219
|
} catch (error) {
|
|
@@ -188,10 +234,14 @@ export class RollupContract {
|
|
|
188
234
|
}
|
|
189
235
|
const timeOfNextL1Slot = (await this.client.getBlock()).timestamp + slotDuration;
|
|
190
236
|
try {
|
|
191
|
-
const [slot, blockNumber] = await this.
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
237
|
+
const { result: [slot, blockNumber] } = await this.client.simulateContract({
|
|
238
|
+
address: this.address,
|
|
239
|
+
abi: RollupAbi,
|
|
240
|
+
functionName: 'canProposeAtTime',
|
|
241
|
+
args: [
|
|
242
|
+
timeOfNextL1Slot,
|
|
243
|
+
`0x${archive.toString('hex')}`
|
|
244
|
+
],
|
|
195
245
|
account
|
|
196
246
|
});
|
|
197
247
|
return [
|
|
@@ -203,10 +253,94 @@ export class RollupContract {
|
|
|
203
253
|
}
|
|
204
254
|
}
|
|
205
255
|
/** Calls getHasSubmitted directly. Returns whether the given prover has submitted a proof with the given length for the given epoch. */ getHasSubmittedProof(epochNumber, numberOfBlocksInEpoch, prover) {
|
|
256
|
+
if (prover instanceof EthAddress) {
|
|
257
|
+
prover = prover.toString();
|
|
258
|
+
}
|
|
206
259
|
return this.rollup.read.getHasSubmitted([
|
|
207
260
|
BigInt(epochNumber),
|
|
208
261
|
BigInt(numberOfBlocksInEpoch),
|
|
209
|
-
prover
|
|
262
|
+
prover
|
|
263
|
+
]);
|
|
264
|
+
}
|
|
265
|
+
getManaBaseFeeAt(timestamp, inFeeAsset) {
|
|
266
|
+
return this.rollup.read.getManaBaseFeeAt([
|
|
267
|
+
timestamp,
|
|
268
|
+
inFeeAsset
|
|
269
|
+
]);
|
|
270
|
+
}
|
|
271
|
+
getVersion() {
|
|
272
|
+
return this.rollup.read.getVersion();
|
|
273
|
+
}
|
|
274
|
+
getSlotAt(timestamp) {
|
|
275
|
+
return this.rollup.read.getSlotAt([
|
|
276
|
+
timestamp
|
|
277
|
+
]);
|
|
278
|
+
}
|
|
279
|
+
status(blockNumber, options) {
|
|
280
|
+
return this.rollup.read.status([
|
|
281
|
+
blockNumber
|
|
282
|
+
], options);
|
|
283
|
+
}
|
|
284
|
+
canPruneAtTime(timestamp, options) {
|
|
285
|
+
return this.rollup.read.canPruneAtTime([
|
|
286
|
+
timestamp
|
|
287
|
+
], options);
|
|
288
|
+
}
|
|
289
|
+
archive() {
|
|
290
|
+
return this.rollup.read.archive();
|
|
291
|
+
}
|
|
292
|
+
archiveAt(blockNumber) {
|
|
293
|
+
return this.rollup.read.archiveAt([
|
|
294
|
+
blockNumber
|
|
295
|
+
]);
|
|
296
|
+
}
|
|
297
|
+
getSequencerRewards(address) {
|
|
298
|
+
if (address instanceof EthAddress) {
|
|
299
|
+
address = address.toString();
|
|
300
|
+
}
|
|
301
|
+
return this.rollup.read.getSequencerRewards([
|
|
302
|
+
address
|
|
303
|
+
]);
|
|
304
|
+
}
|
|
305
|
+
getSpecificProverRewardsForEpoch(epoch, prover) {
|
|
306
|
+
if (prover instanceof EthAddress) {
|
|
307
|
+
prover = prover.toString();
|
|
308
|
+
}
|
|
309
|
+
return this.rollup.read.getSpecificProverRewardsForEpoch([
|
|
310
|
+
epoch,
|
|
311
|
+
prover
|
|
312
|
+
]);
|
|
313
|
+
}
|
|
314
|
+
getAttesters() {
|
|
315
|
+
return this.rollup.read.getAttesters();
|
|
316
|
+
}
|
|
317
|
+
getEpochCommittee(epoch) {
|
|
318
|
+
return this.rollup.read.getEpochCommittee([
|
|
319
|
+
epoch
|
|
320
|
+
]);
|
|
321
|
+
}
|
|
322
|
+
getInfo(address) {
|
|
323
|
+
if (address instanceof EthAddress) {
|
|
324
|
+
address = address.toString();
|
|
325
|
+
}
|
|
326
|
+
return this.rollup.read.getInfo([
|
|
327
|
+
address
|
|
328
|
+
]);
|
|
329
|
+
}
|
|
330
|
+
getBlobPublicInputsHash(blockNumber) {
|
|
331
|
+
return this.rollup.read.getBlobPublicInputsHash([
|
|
332
|
+
blockNumber
|
|
333
|
+
]);
|
|
334
|
+
}
|
|
335
|
+
getStakingAsset() {
|
|
336
|
+
return this.rollup.read.getStakingAsset();
|
|
337
|
+
}
|
|
338
|
+
getProposerForAttester(attester) {
|
|
339
|
+
if (attester instanceof EthAddress) {
|
|
340
|
+
attester = attester.toString();
|
|
341
|
+
}
|
|
342
|
+
return this.rollup.read.getProposerForAttester([
|
|
343
|
+
attester
|
|
210
344
|
]);
|
|
211
345
|
}
|
|
212
346
|
}
|
|
@@ -234,3 +368,15 @@ _ts_decorate([
|
|
|
234
368
|
_ts_decorate([
|
|
235
369
|
memoize
|
|
236
370
|
], RollupContract.prototype, "getMinimumStake", null);
|
|
371
|
+
_ts_decorate([
|
|
372
|
+
memoize
|
|
373
|
+
], RollupContract.prototype, "getManaTarget", null);
|
|
374
|
+
_ts_decorate([
|
|
375
|
+
memoize
|
|
376
|
+
], RollupContract.prototype, "getProvingCostPerMana", null);
|
|
377
|
+
_ts_decorate([
|
|
378
|
+
memoize
|
|
379
|
+
], RollupContract.prototype, "getProvingCostPerManaInFeeAsset", null);
|
|
380
|
+
_ts_decorate([
|
|
381
|
+
memoize
|
|
382
|
+
], RollupContract.prototype, "getManaLimit", null);
|