UNPKG

@q-dev/q-js-sdk

Version:

Typescript Library to interact with Q System Contracts

92 lines 4.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ValidatorsSlashingVotingInstance = void 0; const SlashingVotingHelperInstance_1 = require("../../SlashingVotingHelperInstance"); const SystemVotingInstance_1 = require("../../SystemVotingInstance"); /** * Validator Slashing Voting instance to interact with Validator Slashing Voting contract. * See [onchain documentation](@system-contracts-repo/@network/ValidatorsSlashingVoting/) for more details. * An instance of this class for a deployed network can be obtained via {@link ContractRegistryInstance.validatorsSlashingVoting} */ class ValidatorsSlashingVotingInstance extends SystemVotingInstance_1.SystemVotingInstance { constructor(signerOrProvider, address) { super(signerOrProvider, ValidatorsSlashingVotingInstance.abi, address); this.slashingVoting = new SlashingVotingHelperInstance_1.SlashingVotingHelper(signerOrProvider, ValidatorsSlashingVotingInstance.abi, address); } /** * [External documentation](@system-contracts-repo/@network/ValidatorsSlashingVoting/#proposals) */ async getProposal(proposalId) { const proposal = await this.instance.proposals(proposalId); return { base: { remark: proposal.base.remark, executed: proposal.base.executed, params: { votingStartTime: proposal.base.params.votingStartTime.toString(), votingEndTime: proposal.base.params.votingEndTime.toString(), vetoEndTime: proposal.base.params.vetoEndTime.toString(), proposalExecutionP: proposal.base.params.proposalExecutionP.toString(), requiredQuorum: proposal.base.params.requiredQuorum.toString(), requiredMajority: proposal.base.params.requiredMajority.toString(), requiredSMajority: proposal.base.params.requiredSMajority.toString(), requiredSQuorum: proposal.base.params.requiredSQuorum.toString(), }, counters: { weightFor: proposal.base.counters.weightFor.toString(), weightAgainst: proposal.base.counters.weightAgainst.toString(), vetosCount: proposal.base.counters.vetosCount.toString(), }, }, proposer: proposal.proposer, candidate: proposal.candidate, amountToSlash: proposal.amountToSlash.toString(), }; } /** * [External documentation](@system-contracts-repo/@network/ValidatorsSlashingVoting/#voted) */ async hasUserVoted(proposalId, address) { return this.instance.voted(proposalId, address); } /** * [External documentation](@system-contracts-repo/@network/ValidatorsSlashingVoting/#proposalcount) */ async proposalCount() { return (await this.instance.proposalCount()).toString(); } /** * [External documentation](@system-contracts-repo/@network/ValidatorsSlashingVoting/#createproposal) */ async createProposal(remark, candidate, percentage, txOptions) { return this.submitTransaction('createProposal', [remark, candidate, percentage], txOptions); } /** * [External documentation](@system-contracts-repo/@network/ValidatorsSlashingVoting/#slashingaffectswithdrawal) */ async slashingAffectsWithdrawal(proposalId) { return this.instance.slashingAffectsWithdrawal(proposalId); } /** * [External documentation](@system-contracts-repo/@network/ValidatorsSlashingVoting/#getproposalstarttime) */ async getProposalStartTime(proposalId) { return (await this.instance.getProposalStartTime(proposalId)).toString(); } /** * [External documentation](@system-contracts-repo/@network/ValidatorsSlashingVoting/#getslashingvictim) */ async getSlashingVictim(proposalId) { return this.slashingVoting.getSlashingVictim(proposalId); } /** * [External documentation](@system-contracts-repo/@network/ValidatorsSlashingVoting/#getslashingproposer) */ async getSlashingProposer(proposalId) { return this.slashingVoting.getSlashingProposer(proposalId); } } exports.ValidatorsSlashingVotingInstance = ValidatorsSlashingVotingInstance; ValidatorsSlashingVotingInstance.registryKey = 'governance.validators.slashingVoting'; ValidatorsSlashingVotingInstance.abi = 'ValidatorsSlashingVoting.json'; //# sourceMappingURL=ValidatorsSlashingVotingInstance.js.map