@ardier16/q-js-sdk
Version:
Typescript Library to interact with Q System Contracts
69 lines • 3.3 kB
JavaScript
;
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(web3, address) {
super(web3, ValidatorsSlashingVotingInstance.abi, address);
this.slashingVoting = new SlashingVotingHelperInstance_1.SlashingVotingHelper(web3, ValidatorsSlashingVotingInstance.abi, address);
}
/**
* [External documentation](@system-contracts-repo/@network/ValidatorsSlashingVoting/#proposals)
*/
async getProposal(proposalId) {
const raw = await this.instance.methods.proposals(proposalId).call();
return raw;
}
/**
* [External documentation](@system-contracts-repo/@network/ValidatorsSlashingVoting/#voted)
*/
async hasUserVoted(proposalId, address) {
return this.instance.methods.voted(proposalId, address).call();
}
/**
* [External documentation](@system-contracts-repo/@network/ValidatorsSlashingVoting/#proposalcount)
*/
async proposalCount() {
return this.instance.methods.proposalCount().call();
}
/**
* [External documentation](@system-contracts-repo/@network/ValidatorsSlashingVoting/#createproposal)
*/
async createProposal(remark, candidate, percentage, txOptions) {
return this.submitTransaction(this.instance.methods.createProposal(remark, candidate, percentage), txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/ValidatorsSlashingVoting/#slashingaffectswithdrawal)
*/
async slashingAffectsWithdrawal(proposalId) {
return this.instance.methods.slashingAffectsWithdrawal(proposalId).call();
}
/**
* [External documentation](@system-contracts-repo/@network/ValidatorsSlashingVoting/#getproposalstarttime)
*/
async getProposalStartTime(proposalId) {
return await this.instance.methods.getProposalStartTime(proposalId).call();
}
/**
* [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