@celo/contractkit
Version:
Celo's ContractKit to interact with Celo network
56 lines (55 loc) • 2.69 kB
TypeScript
import { EpochManager } from '@celo/abis/web3/EpochManager';
import BigNumber from 'bignumber.js';
import { BaseWrapperForGoverning } from './BaseWrapperForGoverning';
export declare enum EpochProcessStatus {
NotStarted = 0,
Started = 1
}
export interface EpochProcessState {
status: EpochProcessStatus;
perValidatorReward: BigNumber;
totalRewardsVoter: BigNumber;
totalRewardsCommunity: BigNumber;
totalRewardsCarbonFund: BigNumber;
}
export interface EpochManagerConfig {
currentEpochNumber: number;
epochDuration: number;
isTimeForNextEpoch: boolean;
}
/**
* Contract handling epoch management.
*/
export declare class EpochManagerWrapper extends BaseWrapperForGoverning<EpochManager> {
get _contract(): EpochManager;
epochDuration: () => Promise<number>;
firstKnownEpoch: () => Promise<number>;
getCurrentEpochNumber: () => Promise<number>;
getFirstBlockAtEpoch: (epoch: string | number) => Promise<number>;
getLastBlockAtEpoch: (epoch: string | number) => Promise<number>;
getEpochNumberOfBlock: (_blockNumber: string | number) => Promise<number>;
processedGroups: (arg0: string) => Promise<string>;
isOnEpochProcess: () => Promise<boolean>;
isEpochProcessingStarted: () => Promise<boolean>;
isIndividualProcessing: () => Promise<boolean>;
isTimeForNextEpoch: () => Promise<boolean>;
getElectedAccounts: () => Promise<string[]>;
getElectedSigners: () => Promise<string[]>;
getEpochProcessingStatus: () => Promise<EpochProcessState>;
startNextEpochProcess: () => import("@celo/connect").CeloTransactionObject<void>;
finishNextEpochProcess: (groups: string[], lessers: string[], greaters: string[]) => import("@celo/connect").CeloTransactionObject<void>;
sendValidatorPayment: (validator: string) => import("@celo/connect").CeloTransactionObject<void>;
setToProcessGroups: () => import("@celo/connect").CeloTransactionObject<void>;
processGroups: (groups: string[], lessers: string[], greaters: string[]) => import("@celo/connect").CeloTransactionObject<void>;
startNextEpochProcessTx: () => Promise<import("@celo/connect").CeloTransactionObject<void> | undefined>;
finishNextEpochProcessTx: () => Promise<import("@celo/connect").CeloTransactionObject<void>>;
processGroupsTx: () => Promise<import("@celo/connect").CeloTransactionObject<void>>;
getLessersAndGreaters: (groups: string[]) => Promise<string[][]>;
getEpochGroupsAndSorting: () => Promise<{
groups: string[];
lessers: string[];
greaters: string[];
}>;
getConfig(): Promise<EpochManagerConfig>;
}
export type EpochManagerWrapperType = EpochManagerWrapper;