@q-dev/q-js-sdk
Version:
Typescript Library to interact with Q System Contracts
289 lines (288 loc) • 15.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 type BaseVotingWeightInfoStruct = {
ownWeight: PromiseOrValue<BigNumberish>;
votingAgent: PromiseOrValue<string>;
delegationStatus: PromiseOrValue<BigNumberish>;
lockedUntil: PromiseOrValue<BigNumberish>;
};
export declare type BaseVotingWeightInfoStructOutput = [
BigNumber,
string,
number,
BigNumber
] & {
ownWeight: BigNumber;
votingAgent: string;
delegationStatus: number;
lockedUntil: BigNumber;
};
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 declare namespace IQthVoting {
type VotingWeightInfoStruct = {
hasAlreadyVoted: PromiseOrValue<boolean>;
canVote: PromiseOrValue<boolean>;
base: BaseVotingWeightInfoStruct;
};
type VotingWeightInfoStructOutput = [
boolean,
boolean,
BaseVotingWeightInfoStructOutput
] & {
hasAlreadyVoted: boolean;
canVote: boolean;
base: BaseVotingWeightInfoStructOutput;
};
}
export interface IQthVotingInterface extends utils.Interface {
functions: {
"execute(uint256)": FunctionFragment;
"getProposal(uint256)": FunctionFragment;
"getProposalStats(uint256)": FunctionFragment;
"getVetosNumber(uint256)": FunctionFragment;
"getVetosPercentage(uint256)": FunctionFragment;
"veto(uint256)": FunctionFragment;
"voteAgainst(uint256)": FunctionFragment;
"voteFor(uint256)": FunctionFragment;
"getVotingWeightInfo(uint256)": FunctionFragment;
};
getFunction(nameOrSignatureOrTopic: "execute" | "getProposal" | "getProposalStats" | "getVetosNumber" | "getVetosPercentage" | "veto" | "voteAgainst" | "voteFor" | "getVotingWeightInfo"): FunctionFragment;
encodeFunctionData(functionFragment: "execute", values: [PromiseOrValue<BigNumberish>]): string;
encodeFunctionData(functionFragment: "getProposal", values: [PromiseOrValue<BigNumberish>]): string;
encodeFunctionData(functionFragment: "getProposalStats", values: [PromiseOrValue<BigNumberish>]): string;
encodeFunctionData(functionFragment: "getVetosNumber", values: [PromiseOrValue<BigNumberish>]): string;
encodeFunctionData(functionFragment: "getVetosPercentage", values: [PromiseOrValue<BigNumberish>]): string;
encodeFunctionData(functionFragment: "veto", values: [PromiseOrValue<BigNumberish>]): string;
encodeFunctionData(functionFragment: "voteAgainst", values: [PromiseOrValue<BigNumberish>]): string;
encodeFunctionData(functionFragment: "voteFor", values: [PromiseOrValue<BigNumberish>]): string;
encodeFunctionData(functionFragment: "getVotingWeightInfo", values: [PromiseOrValue<BigNumberish>]): string;
decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "getProposal", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "getProposalStats", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "getVetosNumber", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "getVetosPercentage", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "veto", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "voteAgainst", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "voteFor", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "getVotingWeightInfo", data: BytesLike): Result;
events: {
"ProposalCreated(uint256,tuple)": EventFragment;
"QuorumReached(uint256)": EventFragment;
"VetoOccurred(uint256,address)": EventFragment;
};
getEvent(nameOrSignatureOrTopic: "ProposalCreated"): EventFragment;
getEvent(nameOrSignatureOrTopic: "QuorumReached"): EventFragment;
getEvent(nameOrSignatureOrTopic: "VetoOccurred"): 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 QuorumReachedEventObject {
id: BigNumber;
}
export declare type QuorumReachedEvent = TypedEvent<[
BigNumber
], QuorumReachedEventObject>;
export declare type QuorumReachedEventFilter = TypedEventFilter<QuorumReachedEvent>;
export interface VetoOccurredEventObject {
id: BigNumber;
sender: string;
}
export declare type VetoOccurredEvent = TypedEvent<[
BigNumber,
string
], VetoOccurredEventObject>;
export declare type VetoOccurredEventFilter = TypedEventFilter<VetoOccurredEvent>;
export interface IQthVoting extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
interface: IQthVotingInterface;
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]>;
getVetosNumber(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
getVetosPercentage(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
veto(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<ContractTransaction>;
voteAgainst(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<ContractTransaction>;
voteFor(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<ContractTransaction>;
getVotingWeightInfo(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[IQthVoting.VotingWeightInfoStructOutput]>;
};
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>;
getVetosNumber(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
getVetosPercentage(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
veto(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<ContractTransaction>;
voteAgainst(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<ContractTransaction>;
voteFor(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<ContractTransaction>;
getVotingWeightInfo(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<IQthVoting.VotingWeightInfoStructOutput>;
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>;
getVetosNumber(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
getVetosPercentage(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
veto(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
voteAgainst(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
voteFor(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
getVotingWeightInfo(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<IQthVoting.VotingWeightInfoStructOutput>;
};
filters: {
"ProposalCreated(uint256,tuple)"(_id?: null, _proposal?: null): ProposalCreatedEventFilter;
ProposalCreated(_id?: null, _proposal?: null): ProposalCreatedEventFilter;
"QuorumReached(uint256)"(id?: null): QuorumReachedEventFilter;
QuorumReached(id?: null): QuorumReachedEventFilter;
"VetoOccurred(uint256,address)"(id?: PromiseOrValue<BigNumberish> | null, sender?: PromiseOrValue<string> | null): VetoOccurredEventFilter;
VetoOccurred(id?: PromiseOrValue<BigNumberish> | null, sender?: PromiseOrValue<string> | null): VetoOccurredEventFilter;
};
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>;
getVetosNumber(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
getVetosPercentage(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
veto(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<BigNumber>;
voteAgainst(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<BigNumber>;
voteFor(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<BigNumber>;
getVotingWeightInfo(_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>;
getVetosNumber(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
getVetosPercentage(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
veto(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<PopulatedTransaction>;
voteAgainst(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<PopulatedTransaction>;
voteFor(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
from?: PromiseOrValue<string>;
}): Promise<PopulatedTransaction>;
getVotingWeightInfo(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
};
}