@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
TypeScript
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;
}