UNPKG

@ardier16/q-js-sdk

Version:

Typescript Library to interact with Q System Contracts

86 lines (85 loc) 3.92 kB
import Web3 from 'web3'; import { TransactionReceipt } from 'web3-eth'; import { RootsVoting } from '../../../web3-contracts/RootsVoting'; import { VotingWeightInfo } from '../../QthVotingHelperInstance'; import { BaseProposal, QNonPayableTx } from '../../../types'; import { VotingWeightProxyInstance } from '../VotingWeightProxyInstance'; import { SystemVotingVetoableInstance } from '../../SystemVotingVetoableInstance'; export interface RootsProposal { base: BaseProposal; candidate: string; replaceDest: string; } /** * Root nodes voting instance to interact with Root nodes voting contract. * See [onchain documentation](@system-contracts-repo/@network/RootsVoting/) for more details. * An instance of this class for a deployed network can be obtained via {@link ContractRegistryInstance.rootNodesMembershipVoting} */ export declare class RootNodesMembershipVotingInstance extends SystemVotingVetoableInstance<RootsVoting, RootsProposal> { static readonly registryKey = "governance.rootNodes.membershipVoting"; static readonly abi = "RootsVoting.json"; /** * VotingWeightProxy instance. Used by local methods. */ votingWeightProxy: VotingWeightProxyInstance; private qthVotingHelper; constructor(web3: Web3, address: string); /** * [External documentation](@system-contracts-repo/@network/RootsVoting/#proposals) */ getProposal(proposalId: string | number): Promise<RootsProposal>; /** * [External documentation](@system-contracts-repo/@network/RootsVoting/#hasrootvetoed) */ hasRootVetoed(proposalId: string | number, address: string): Promise<boolean>; /** * [External documentation](@system-contracts-repo/@network/RootsVoting/#hasuservoted) */ hasUserVoted(proposalId: string | number, address: string): Promise<boolean>; /** * Calculates proposal count. * @returns proposal count. */ proposalCount(): Promise<string>; /** * Create proposal for add new member * @param remark proposal remark * @param addressToAdd new member * @param constitutionHash hash * @param txOptions sender parameters * @returns transaction receipt */ createAddProposal(remark: string, addressToAdd: string, constitutionHash?: string, txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * Create proposal for remove member * @param remark proposal remark * @param addressToRemove member to remove * @param txOptions sender parameters * @returns transaction receipt */ createRemoveProposal(remark: string, addressToRemove: string, txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/RootsVoting/#createproposal) */ createProposal(remark: string, addressToAdd: string, addressToRemove: string, constitutionHash?: string, txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/RootsVoting/#getvotesfor) */ getVotesFor(proposalId: number | string): Promise<string>; /** * [External documentation](@system-contracts-repo/@network/RootsVoting/#getvotesagainst) */ getVotesAgainst(proposalId: number | string): Promise<string>; /** * [External documentation](@system-contracts-repo/@network/RootsVoting/#getvotingweightinfo) */ getVotingWeightInfo(proposalId: string | number, address: string): Promise<VotingWeightInfo>; /** * [External documentation](@system-contracts-repo/@network/RootsVoting/#isoverruleapplied) */ isOverruleApplied(proposalId: number | string): Promise<boolean>; /** * [External documentation](@system-contracts-repo/@network/RootsVoting/#skipvetophase) */ skipVetoPhase(proposalId: number | string, txOptions?: QNonPayableTx): Promise<TransactionReceipt>; }