import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedListener, TypedContractMethod } from "../../common"; export type EpochInfoStruct = { merkleRoot: BytesLike; prevMessageCollectEndTime: BigNumberish; messageCollectEndTime: BigNumberish; prevEpochStartTime: BigNumberish; currEpochStartTime: BigNumberish; nextVotingTime: BigNumberish; }; export type EpochInfoStructOutput = [ merkleRoot: string, prevMessageCollectEndTime: bigint, messageCollectEndTime: bigint, prevEpochStartTime: bigint, currEpochStartTime: bigint, nextVotingTime: bigint ] & { merkleRoot: string; prevMessageCollectEndTime: bigint; messageCollectEndTime: bigint; prevEpochStartTime: bigint; currEpochStartTime: bigint; nextVotingTime: bigint; }; export interface IConsensusInterface extends Interface { getFunction(nameOrSignature: "addGroup" | "addVoter" | "checkMerkleRoot" | "disableInitializers" | "getCurrentEpochInfo" | "getValue" | "removeVoter" | "totalVoters" | "vote"): FunctionFragment; encodeFunctionData(functionFragment: "addGroup", values: [BytesLike, AddressLike]): string; encodeFunctionData(functionFragment: "addVoter", values: [BytesLike, AddressLike]): string; encodeFunctionData(functionFragment: "checkMerkleRoot", values: [BytesLike]): string; encodeFunctionData(functionFragment: "disableInitializers", values?: undefined): string; encodeFunctionData(functionFragment: "getCurrentEpochInfo", values?: undefined): string; encodeFunctionData(functionFragment: "getValue", values?: undefined): string; encodeFunctionData(functionFragment: "removeVoter", values: [AddressLike]): string; encodeFunctionData(functionFragment: "totalVoters", values?: undefined): string; encodeFunctionData(functionFragment: "vote", values: [BigNumberish, BytesLike]): string; decodeFunctionResult(functionFragment: "addGroup", data: BytesLike): Result; decodeFunctionResult(functionFragment: "addVoter", data: BytesLike): Result; decodeFunctionResult(functionFragment: "checkMerkleRoot", data: BytesLike): Result; decodeFunctionResult(functionFragment: "disableInitializers", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getCurrentEpochInfo", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getValue", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeVoter", data: BytesLike): Result; decodeFunctionResult(functionFragment: "totalVoters", data: BytesLike): Result; decodeFunctionResult(functionFragment: "vote", data: BytesLike): Result; } export interface IConsensus extends BaseContract { connect(runner?: ContractRunner | null): IConsensus; waitForDeployment(): Promise; interface: IConsensusInterface; queryFilter(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; queryFilter(filter: TypedDeferredTopicFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; on(event: TCEvent, listener: TypedListener): Promise; on(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; once(event: TCEvent, listener: TypedListener): Promise; once(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; listeners(event: TCEvent): Promise>>; listeners(eventName?: string): Promise>; removeAllListeners(event?: TCEvent): Promise; addGroup: TypedContractMethod<[ groupId: BytesLike, adminAddress: AddressLike ], [ void ], "nonpayable">; addVoter: TypedContractMethod<[ groupId: BytesLike, voterAddress: AddressLike ], [ void ], "nonpayable">; checkMerkleRoot: TypedContractMethod<[ merkleRoot: BytesLike ], [ boolean ], "view">; disableInitializers: TypedContractMethod<[], [void], "nonpayable">; getCurrentEpochInfo: TypedContractMethod<[], [EpochInfoStructOutput], "view">; getValue: TypedContractMethod<[], [string], "view">; removeVoter: TypedContractMethod<[ voterAddress: AddressLike ], [ void ], "nonpayable">; totalVoters: TypedContractMethod<[], [bigint], "view">; vote: TypedContractMethod<[ messageCollectEndTime: BigNumberish, newValue: BytesLike ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "addGroup"): TypedContractMethod<[ groupId: BytesLike, adminAddress: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "addVoter"): TypedContractMethod<[ groupId: BytesLike, voterAddress: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "checkMerkleRoot"): TypedContractMethod<[merkleRoot: BytesLike], [boolean], "view">; getFunction(nameOrSignature: "disableInitializers"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "getCurrentEpochInfo"): TypedContractMethod<[], [EpochInfoStructOutput], "view">; getFunction(nameOrSignature: "getValue"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "removeVoter"): TypedContractMethod<[voterAddress: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "totalVoters"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "vote"): TypedContractMethod<[ messageCollectEndTime: BigNumberish, newValue: BytesLike ], [ void ], "nonpayable">; filters: {}; }