UNPKG

@swaptoshi/governance-module

Version:

Klayr governance on-chain module

51 lines (50 loc) 2.75 kB
import { Modules, Types } from 'klayr-framework'; import { CreateProposalParams, ProposalStatus, ProposalStoreData, SetProposalAttributesParams, VoteParams, Votes } from '../../types'; import { ProposalStore } from '../proposal'; import { BaseInstance } from './base'; import { GovernanceGovernableConfig } from '../../config'; import { GovernableConfigRegistry } from '../../registry'; export declare class Proposal extends BaseInstance<ProposalStoreData, ProposalStore> implements ProposalStoreData { constructor(stores: Modules.NamedRegistry, events: Modules.NamedRegistry, config: GovernanceGovernableConfig, genesisConfig: Types.GenesisConfig, moduleName: string, governableConfigRegistry: GovernableConfigRegistry, proposal: ProposalStoreData | undefined, key: Buffer); toJSON(): Types.JSONObject<ProposalStoreData>; toObject(): ProposalStoreData; verifyCreate(params: CreateProposalParams): Promise<void>; create(params: CreateProposalParams, verify?: boolean): Promise<void>; verifyVote(params: VoteParams): Promise<void>; vote(params: VoteParams, verify?: boolean): Promise<void>; verifySetAttributes(params: SetProposalAttributesParams): Promise<void>; setAttributes(params: SetProposalAttributesParams, verify?: boolean): Promise<void>; getVoteScore(address: Buffer): Promise<bigint>; addVote(score: bigint, decision: Votes, boostingHeight: number): Promise<void>; subtractVote(score: bigint, decision: Votes, boostingHeight: number): Promise<void>; setStatus(status: ProposalStatus): Promise<void>; private _removeSenderDelegatedVoteFromProposal; private _addSenderDelegatedVoteFromProposal; private _calculateVoteScore; private _numberToDecisionString; private _registerQueue; private _saveQueue; private _getNextAvailableProposalId; private _increaseNextAvailableProposalId; private _getStakingTokenId; private _isProposalExists; private _isProposalAuthor; title: ProposalStoreData['title']; summary: ProposalStoreData['summary']; deposited: ProposalStoreData['deposited']; author: ProposalStoreData['author']; turnout: ProposalStoreData['turnout']; parameters: ProposalStoreData['parameters']; voteSummary: ProposalStoreData['voteSummary']; status: ProposalStoreData['status']; actions: ProposalStoreData['actions']; attributes: ProposalStoreData['attributes']; private readonly nextAvailableIdStore; private readonly governableConfigRegistry; private readonly proposalQueueStore; private readonly delegatedVoteStore; private readonly castedVoteStore; private readonly boostedAccountStore; private readonly voteScoreStore; private readonly proposalVoterStore; }