@ardier16/q-js-sdk
Version:
Typescript Library to interact with Q System Contracts
95 lines • 4.63 kB
JavaScript
;
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