@swaptoshi/governance-module
Version:
Klayr governance on-chain module
51 lines (50 loc) • 2.75 kB
TypeScript
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;
}