@ardier16/q-js-sdk
Version:
Typescript Library to interact with Q System Contracts
86 lines (85 loc) • 3.92 kB
TypeScript
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>;
}