UNPKG

@myclique/governance-sdk

Version:

The SDK is provides easy access to the high level interactions to be governance with an Clique DAO.

124 lines (123 loc) 4.27 kB
import { Context } from "./Context"; import { CChainId } from "./internal/constants"; import { ClientCore } from "./internal/core"; import { AccountVotesInfo, DaoInfoProp, ProposalDetailProp, ProposalSignProp, ProposalStatus, ProposalVoteHistory, ProposalVotingTypes } from "./internal/interfaces/common"; import { IClique } from "./internal/interfaces/IClique"; import { Token } from "./token"; /** * Clique class */ export declare class Clique extends ClientCore implements IClique { private _daoToken; daoInfo: DaoInfoProp | undefined; constructor(context: Context); /** * get governance dao info * @returns */ getDaoInfo(): Promise<DaoInfoProp>; /** * get proposal Info by proposalId * @param proposalId * @returns */ getProposalInfo(proposalId: number): Promise<ProposalDetailProp>; /** * get account votes info of proposalId * @param account * @param proposalId * @returns */ getAccountVotesById(account: string, proposalId: number): Promise<AccountVotesInfo[]>; /** * * @param title Proposal title * @param introduction Proposal introduction * @param content Proposal content * @param startTime Proposal end time * @param endTime Proposal start time * @param votingType Voting type, any, multi-select and simple * @param options Vote options * @param signData To get signData by _getProposalDataAndSignature * @param isCheck Validation rules, affect speed * @returns */ createProposal(title: string, introduction: string, content: string, startTime: number, endTime: number, votingType: ProposalVotingTypes, options: string[], signData: ProposalSignProp, isCheck?: boolean): Promise<any>; /** * To cancel proposal before closing * @param proposalId * @param checkParams Validation rules, affect speed */ cancelProposal(proposalId: number, checkParams?: { account: string; }): Promise<any>; /** * * @param proposalId * @param index option index * @param amountRaw voting amount raw * @param signData To get signData by _getProposalDataAndSignature * @param isCheck Validation rules, affect speed */ proposalVote(proposalId: number, index: number[], amountRaw: string[], signData: ProposalSignProp, isCheck?: boolean): Promise<any>; /** * Get token info * @param chainId * @param tokenAddress * @returns */ getToken(chainId: CChainId, tokenAddress: string): Promise<Token>; /** * Paging to get proposal id * @param status Search, proposal status * @param offset 0~ * @param pageSize Default 8 * @returns */ getProposalListIds(status: ProposalStatus | undefined, offset: number, pageSize?: number): Promise<{ total: number; proposalIds: number[]; }>; /** * Get proposal vote history list * @param proposalId * @param offset 0~ * @param pageSize Default 8 * @returns */ getProposalVoteHistory(proposalId: number, offset: number, pageSize?: number): Promise<{ total: number; list: ProposalVoteHistory[]; }>; /** * Obtain user voting data and signatures from accounts and proposals * @param account * @param proposalId * @returns */ getVotesDataAndSignature(account: string, proposalId: number): Promise<ProposalSignProp>; /** * Obtain user create proposal data and signatures from accounts and proposals * @param account * @param proposalId * @returns */ getCreateProposalDataAndSignature(account: string): Promise<ProposalSignProp>; /** * Get signature data * @param account * @param signType Create proposal or voting * @param proposalId * @returns */ private _getProposalDataAndSignature; /** * Get governance dao token, * the token chainId does not necessarily equal DAO chainId * @returns */ getDaoToken(): Token | undefined; getDaoAddress(): string; getDaoChainId(): CChainId; private _setDaoToken; }