@q-dev/q-js-sdk
Version:
Typescript Library to interact with Q System Contracts
110 lines • 5.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RootNodesSlashingVotingInstance = void 0;
const SlashingVotingHelperInstance_1 = require("../../SlashingVotingHelperInstance");
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(signerOrProvider, address) {
super(signerOrProvider, RootNodesSlashingVotingInstance.abi, address);
this.slashingVoting = new SlashingVotingHelperInstance_1.SlashingVotingHelper(signerOrProvider, RootNodesSlashingVotingInstance.abi, address);
}
/**
* [External documentation](@system-contracts-repo/@network/RootNodesSlashingVoting/#getproposal)
*/
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/RootNodesSlashingVoting/#hasrootvetoed)
*/
async hasRootVetoed(proposalId, address) {
return this.instance.hasRootVetoed(proposalId, address);
}
/**
* [External documentation](@system-contracts-repo/@network/RootNodesSlashingVoting/#hasuservoted)
*/
async hasUserVoted(proposalId, address) {
return this.instance.hasUserVoted(proposalId, address);
}
/**
* [External documentation](@system-contracts-repo/@network/RootNodesSlashingVoting/#proposalcount)
*/
async proposalCount() {
return (await this.instance.proposalCount()).toString();
}
/**
* [External documentation](@system-contracts-repo/@network/RootNodesSlashingVoting/#createproposal)
*/
async createProposal(remark, candidate, percentage, txOptions) {
return this.submitTransaction('createProposal', [remark, candidate, percentage], txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/RootNodesSlashingVoting/#slashingaffectswithdrawal)
*/
async slashingAffectsWithdrawal(proposalId) {
return this.instance.slashingAffectsWithdrawal(proposalId);
}
/**
* [External documentation](@system-contracts-repo/@network/RootNodesSlashingVoting/#getproposalstarttime)
*/
async getProposalStartTime(proposalId) {
return (await this.instance.getProposalStartTime(proposalId)).toString();
}
/**
* [External documentation](@system-contracts-repo/@network/RootNodesSlashingVoting/#isoverruleapplied)
*/
async isOverruleApplied(proposalId) {
return this.instance.isOverruleApplied(proposalId);
}
/**
* [External documentation](@system-contracts-repo/@network/RootNodesSlashingVoting/#skipvetophase)
*/
async skipVetoPhase(proposalId, txOptions) {
return this.submitTransaction('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);
}
}
exports.RootNodesSlashingVotingInstance = RootNodesSlashingVotingInstance;
RootNodesSlashingVotingInstance.registryKey = 'governance.rootNodes.slashingVoting';
RootNodesSlashingVotingInstance.abi = 'RootNodesSlashingVoting.json';
//# sourceMappingURL=RootNodesSlashingVotingInstance.js.map