@ardier16/q-js-sdk
Version:
Typescript Library to interact with Q System Contracts
39 lines • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseRootNodeApprovalVoting = void 0;
const BaseContractInstance_1 = require("./BaseContractInstance");
const types_1 = require("../types");
/**
* Voting interface to interact with Voting implementation contracts.
* See [onchain documentation](@system-contracts-repo/@network/IVoting/) for more details.
*/
class BaseRootNodeApprovalVoting extends BaseContractInstance_1.BaseContractInstance {
async getStatus(proposalId) {
switch (await this.instance.methods.getStatus(proposalId).call()) {
case '0': {
return types_1.ProposalStatus.NONE;
}
case '1': {
return types_1.ProposalStatus.PENDING;
}
case '2': {
return types_1.ProposalStatus.EXPIRED;
}
case '3': {
return types_1.ProposalStatus.EXECUTED;
}
default: {
return types_1.ProposalStatus.NONE;
}
}
}
async getProposalStats(proposalId) {
const _stats = await this.instance.methods.getProposalStats(proposalId).call();
return { requiredMajority: _stats[0], currentMajority: _stats[1] };
}
async aprove(proposalId, tx) {
return this.submitTransaction(this.instance.methods.approve(proposalId), tx);
}
}
exports.BaseRootNodeApprovalVoting = BaseRootNodeApprovalVoting;
//# sourceMappingURL=BaseRootNodeApprovalVoting.js.map