UNPKG

@ardier16/q-js-sdk

Version:

Typescript Library to interact with Q System Contracts

95 lines 4.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RootNodesSlashingVotingInstance = void 0; const SlashingVotingHelperInstance_1 = require("../../SlashingVotingHelperInstance"); const QthVotingHelperInstance_1 = require("../../QthVotingHelperInstance"); const SystemVotingVetoableInstance_1 = require("../../SystemVotingVetoableInstance"); /** * Root nodes Slashing voting instance to interact with Root nodes Slashing voting contract. * See [onchain documentation](@system-contracts-repo/@network/RootNodesSlashingVoting/) for more details. * An instance of this class for a deployed network can be obtained via {@link ContractRegistryInstance.rootNodesSlashingVoting} */ class RootNodesSlashingVotingInstance extends SystemVotingVetoableInstance_1.SystemVotingVetoableInstance { constructor(web3, address) { super(web3, RootNodesSlashingVotingInstance.abi, address); this.qthVotingHelper = new QthVotingHelperInstance_1.QthVotingHelperInstance(web3, RootNodesSlashingVotingInstance.abi, address); this.slashingVoting = new SlashingVotingHelperInstance_1.SlashingVotingHelper(web3, RootNodesSlashingVotingInstance.abi, address); } /** * [External documentation](@system-contracts-repo/@network/RootNodesSlashingVoting/#getproposal) */ async getProposal(proposalId) { const raw = await this.instance.methods.proposals(proposalId).call(); return raw; } /** * [External documentation](@system-contracts-repo/@network/RootNodesSlashingVoting/#hasrootvetoed) */ async hasRootVetoed(proposalId, address) { return this.instance.methods.hasRootVetoed(proposalId, address).call(); } /** * [External documentation](@system-contracts-repo/@network/RootNodesSlashingVoting/#hasuservoted) */ async hasUserVoted(proposalId, address) { return this.instance.methods.hasUserVoted(proposalId, address).call(); } /** * [External documentation](@system-contracts-repo/@network/RootNodesSlashingVoting/#proposalcount) */ async proposalCount() { return this.instance.methods.proposalCount().call(); } /** * [External documentation](@system-contracts-repo/@network/RootNodesSlashingVoting/#createproposal) */ async createProposal(remark, candidate, percentage, txOptions) { return this.submitTransaction(this.instance.methods.createProposal(remark, candidate, percentage), txOptions); } /** * [External documentation](@system-contracts-repo/@network/RootNodesSlashingVoting/#slashingaffectswithdrawal) */ async slashingAffectsWithdrawal(proposalId) { return this.instance.methods.slashingAffectsWithdrawal(proposalId).call(); } /** * [External documentation](@system-contracts-repo/@network/RootNodesSlashingVoting/#getproposalstarttime) */ async getProposalStartTime(proposalId) { return await this.instance.methods.getProposalStartTime(proposalId).call(); } /** * [External documentation](@system-contracts-repo/@network/RootNodesSlashingVoting/#isoverruleapplied) */ async isOverruleApplied(proposalId) { return this.instance.methods.isOverruleApplied(proposalId).call(); } /** * [External documentation](@system-contracts-repo/@network/RootNodesSlashingVoting/#skipvetophase) */ async skipVetoPhase(proposalId, txOptions) { return this.submitTransaction(this.instance.methods.skipVetoPhase(proposalId), txOptions); } /** * [External documentation](@system-contracts-repo/@network/RootNodesSlashingVoting/#getslashingvictim) */ async getSlashingVictim(proposalId) { return this.slashingVoting.getSlashingVictim(proposalId); } /** * [External documentation](@system-contracts-repo/@network/RootNodesSlashingVoting/#getslashingproposer) */ async getSlashingProposer(proposalId) { return this.slashingVoting.getSlashingProposer(proposalId); } /** * [External documentation](@system-contracts-repo/@network/RootNodesSlashingVoting/#getvotingweightinfo) */ async getVotingWeightInfo(proposalId, address) { return await this.qthVotingHelper.getVotingWeightInfo(this.votingWeightProxy, proposalId, address, this.hasUserVoted); } } exports.RootNodesSlashingVotingInstance = RootNodesSlashingVotingInstance; RootNodesSlashingVotingInstance.registryKey = 'governance.rootNodes.slashingVoting'; RootNodesSlashingVotingInstance.abi = 'RootNodesSlashingVoting.json'; //# sourceMappingURL=RootNodesSlashingVotingInstance.js.map