@q-dev/q-js-sdk
Version:
Typescript Library to interact with Q System Contracts
88 lines • 4.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ExpertsMembershipVotingInstance = void 0;
const SystemVotingVetoableInstance_1 = require("../../SystemVotingVetoableInstance");
/**
* Expert membership voting contract instance to interact with EPDR and EPQFI membership voting contract.
* See [onchain documentation](@system-contracts-repo/@network/ExpertsMembershipVoting/) for more details.
*/
class ExpertsMembershipVotingInstance extends SystemVotingVetoableInstance_1.SystemVotingVetoableInstance {
/**
* [External documentation](@system-contracts-repo/@network/ExpertsMembershipVoting/#proposalcount)
*/
async proposalCount() {
return (await this.instance.proposalCount()).toString();
}
/**
* [External documentation](@system-contracts-repo/@network/ExpertsMembershipVoting/#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(),
},
},
proposalDetails: proposal.proposalDetails
};
}
/**
* [External documentation](@system-contracts-repo/@network/ExpertsMembershipVoting/#hasrootvetoed)
*/
async hasRootVetoed(proposalId, address) {
return this.instance.hasRootVetoed(proposalId, address);
}
/**
* [External documentation](@system-contracts-repo/@network/ExpertsMembershipVoting/#hasuservoted)
*/
async hasUserVoted(proposalId, address) {
return this.instance.hasUserVoted(proposalId, address);
}
/**
* [External documentation](@system-contracts-repo/@network/ExpertsMembershipVoting/#createaddexpertproposal)
*/
async createAddExpertProposal(remark, addressToAdd, txOptions) {
return this.submitTransaction('createAddExpertProposal', [remark, addressToAdd], txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/ExpertsMembershipVoting/#createchangeexpertproposal)
*/
async createChangeExpertProposal(remark, addressToAdd, addressToRemove, txOptions) {
return this.submitTransaction('createChangeExpertProposal', [remark, addressToAdd, addressToRemove], txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/ExpertsMembershipVoting/#createremoveexpertproposal)
*/
async createRemoveExpertProposal(remark, addressToRemove, txOptions) {
return this.submitTransaction('createRemoveExpertProposal', [remark, addressToRemove], txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/ExpertsMembershipVoting/#getvotesfor)
*/
async getVotesFor(proposalId) {
return (await this.instance.getVotesFor(proposalId)).toString();
}
/**
* [External documentation](@system-contracts-repo/@network/ExpertsMembershipVoting/#getvotesagainst)
*/
async getVotesAgainst(proposalId) {
return (await this.instance.getVotesAgainst(proposalId)).toString();
}
}
exports.ExpertsMembershipVotingInstance = ExpertsMembershipVotingInstance;
//# sourceMappingURL=ExpertsMembershipVotingInstance.js.map