@q-dev/q-js-sdk
Version:
Typescript Library to interact with Q System Contracts
208 lines (207 loc) • 11.4 kB
TypeScript
import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
import type { Listener, Provider } from "@ethersproject/providers";
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from "./common";
export declare namespace IVoting {
type VotingParamsStruct = {
votingStartTime: PromiseOrValue<BigNumberish>;
votingEndTime: PromiseOrValue<BigNumberish>;
vetoEndTime: PromiseOrValue<BigNumberish>;
proposalExecutionP: PromiseOrValue<BigNumberish>;
requiredQuorum: PromiseOrValue<BigNumberish>;
requiredMajority: PromiseOrValue<BigNumberish>;
requiredSMajority: PromiseOrValue<BigNumberish>;
requiredSQuorum: PromiseOrValue<BigNumberish>;
};
type VotingParamsStructOutput = [
BigNumber,
BigNumber,
BigNumber,
BigNumber,
BigNumber,
BigNumber,
BigNumber,
BigNumber
] & {
votingStartTime: BigNumber;
votingEndTime: BigNumber;
vetoEndTime: BigNumber;
proposalExecutionP: BigNumber;
requiredQuorum: BigNumber;
requiredMajority: BigNumber;
requiredSMajority: BigNumber;
requiredSQuorum: BigNumber;
};
type VotingCountersStruct = {
weightFor: PromiseOrValue<BigNumberish>;
weightAgainst: PromiseOrValue<BigNumberish>;
vetosCount: PromiseOrValue<BigNumberish>;
};
type VotingCountersStructOutput = [BigNumber, BigNumber, BigNumber] & {
weightFor: BigNumber;
weightAgainst: BigNumber;
vetosCount: BigNumber;
};
type BaseProposalStruct = {
remark: PromiseOrValue<string>;
params: IVoting.VotingParamsStruct;
counters: IVoting.VotingCountersStruct;
executed: PromiseOrValue<boolean>;
};
type BaseProposalStructOutput = [
string,
IVoting.VotingParamsStructOutput,
IVoting.VotingCountersStructOutput,
boolean
] & {
remark: string;
params: IVoting.VotingParamsStructOutput;
counters: IVoting.VotingCountersStructOutput;
executed: boolean;
};
type VotingStatsStruct = {
requiredQuorum: PromiseOrValue<BigNumberish>;
currentQuorum: PromiseOrValue<BigNumberish>;
requiredMajority: PromiseOrValue<BigNumberish>;
currentMajority: PromiseOrValue<BigNumberish>;
currentVetoPercentage: PromiseOrValue<BigNumberish>;
};
type VotingStatsStructOutput = [
BigNumber,
BigNumber,
BigNumber,
BigNumber,
BigNumber
] & {
requiredQuorum: BigNumber;
currentQuorum: BigNumber;
requiredMajority: BigNumber;
currentMajority: BigNumber;
currentVetoPercentage: BigNumber;
};
}
export interface ISlashingVotingInterface extends utils.Interface {
functions: {
"execute(uint256)": FunctionFragment;
"getProposal(uint256)": FunctionFragment;
"getProposalStats(uint256)": FunctionFragment;
"voteAgainst(uint256)": FunctionFragment;
"voteFor(uint256)": FunctionFragment;
"getSlashingVictim(uint256)": FunctionFragment;
"getSlashingProposer(uint256)": FunctionFragment;
};
getFunction(nameOrSignatureOrTopic: "execute" | "getProposal" | "getProposalStats" | "voteAgainst" | "voteFor" | "getSlashingVictim" | "getSlashingProposer"): FunctionFragment;
encodeFunctionData(functionFragment: "execute", values: [PromiseOrValue<BigNumberish>]): string;
encodeFunctionData(functionFragment: "getProposal", values: [PromiseOrValue<BigNumberish>]): string;
encodeFunctionData(functionFragment: "getProposalStats", values: [PromiseOrValue<BigNumberish>]): string;
encodeFunctionData(functionFragment: "voteAgainst", values: [PromiseOrValue<BigNumberish>]): string;
encodeFunctionData(functionFragment: "voteFor", values: [PromiseOrValue<BigNumberish>]): string;
encodeFunctionData(functionFragment: "getSlashingVictim", values: [PromiseOrValue<BigNumberish>]): string;
encodeFunctionData(functionFragment: "getSlashingProposer", values: [PromiseOrValue<BigNumberish>]): string;
decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "getProposal", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "getProposalStats", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "voteAgainst", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "voteFor", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "getSlashingVictim", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "getSlashingProposer", data: BytesLike): Result;
events: {
"ProposalCreated(uint256,tuple)": EventFragment;
};
getEvent(nameOrSignatureOrTopic: "ProposalCreated"): EventFragment;
}
export interface ProposalCreatedEventObject {
_id: BigNumber;
_proposal: IVoting.BaseProposalStructOutput;
}
export declare type ProposalCreatedEvent = TypedEvent<[
BigNumber,
IVoting.BaseProposalStructOutput
], ProposalCreatedEventObject>;
export declare type ProposalCreatedEventFilter = TypedEventFilter<ProposalCreatedEvent>;
export interface ISlashingVoting extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
interface: ISlashingVotingInterface;
queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
listeners(eventName?: string): Array<Listener>;
removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
removeAllListeners(eventName?: string): this;
off: OnEvent<this>;
on: OnEvent<this>;
once: OnEvent<this>;
removeListener: OnEvent<this>;
functions: {
execute(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<ContractTransaction>;
getProposal(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[IVoting.BaseProposalStructOutput]>;
getProposalStats(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[IVoting.VotingStatsStructOutput]>;
voteAgainst(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<ContractTransaction>;
voteFor(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<ContractTransaction>;
getSlashingVictim(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
getSlashingProposer(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
};
execute(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<ContractTransaction>;
getProposal(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<IVoting.BaseProposalStructOutput>;
getProposalStats(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<IVoting.VotingStatsStructOutput>;
voteAgainst(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<ContractTransaction>;
voteFor(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<ContractTransaction>;
getSlashingVictim(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
getSlashingProposer(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
callStatic: {
execute(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
getProposal(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<IVoting.BaseProposalStructOutput>;
getProposalStats(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<IVoting.VotingStatsStructOutput>;
voteAgainst(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
voteFor(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
getSlashingVictim(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
getSlashingProposer(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
};
filters: {
"ProposalCreated(uint256,tuple)"(_id?: null, _proposal?: null): ProposalCreatedEventFilter;
ProposalCreated(_id?: null, _proposal?: null): ProposalCreatedEventFilter;
};
estimateGas: {
execute(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<BigNumber>;
getProposal(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
getProposalStats(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
voteAgainst(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<BigNumber>;
voteFor(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<BigNumber>;
getSlashingVictim(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
getSlashingProposer(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
};
populateTransaction: {
execute(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<PopulatedTransaction>;
getProposal(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
getProposalStats(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
voteAgainst(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<PopulatedTransaction>;
voteFor(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<PopulatedTransaction>;
getSlashingVictim(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
getSlashingProposer(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
};
}