@ardier16/q-js-sdk
Version:
Typescript Library to interact with Q System Contracts
78 lines • 3.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ExpertsMembershipVotingInstance = void 0;
const QthVotingHelperInstance_1 = require("../../QthVotingHelperInstance");
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 {
constructor(web3, abi, address) {
super(web3, abi, address);
this.qthVotingHelper = new QthVotingHelperInstance_1.QthVotingHelperInstance(web3, abi, address);
}
/**
* [External documentation](@system-contracts-repo/@network/ExpertsMembershipVoting/#proposalcount)
*/
async proposalCount() {
return this.instance.methods.proposalCount().call();
}
/**
* [External documentation](@system-contracts-repo/@network/ExpertsMembershipVoting/#proposals)
*/
async getProposal(proposalId) {
const raw = await this.instance.methods.proposals(proposalId).call();
return raw;
}
/**
* [External documentation](@system-contracts-repo/@network/ExpertsMembershipVoting/#hasrootvetoed)
*/
async hasRootVetoed(proposalId, address) {
return this.instance.methods.hasRootVetoed(proposalId, address).call();
}
/**
* [External documentation](@system-contracts-repo/@network/ExpertsMembershipVoting/#hasuservoted)
*/
async hasUserVoted(proposalId, address) {
return this.instance.methods.hasUserVoted(proposalId, address).call();
}
/**
* [External documentation](@system-contracts-repo/@network/ExpertsMembershipVoting/#createaddexpertproposal)
*/
async createAddExpertProposal(remark, addressToAdd, txOptions) {
return this.submitTransaction(this.instance.methods.createAddExpertProposal(remark, addressToAdd), txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/ExpertsMembershipVoting/#createchangeexpertproposal)
*/
async createChangeExpertProposal(remark, addressToAdd, addressToRemove, txOptions) {
return this.submitTransaction(this.instance.methods.createChangeExpertProposal(remark, addressToAdd, addressToRemove), txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/ExpertsMembershipVoting/#createremoveexpertproposal)
*/
async createRemoveExpertProposal(remark, addressToRemove, txOptions) {
return this.submitTransaction(this.instance.methods.createRemoveExpertProposal(remark, addressToRemove), txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/ExpertsMembershipVoting/#getvotesfor)
*/
async getVotesFor(proposalId) {
return this.instance.methods.getVotesFor(proposalId).call();
}
/**
* [External documentation](@system-contracts-repo/@network/ExpertsMembershipVoting/#getvotesagainst)
*/
async getVotesAgainst(proposalId) {
return this.instance.methods.getVotesAgainst(proposalId).call();
}
/**
* [External documentation](@system-contracts-repo/@network/ExpertsMembershipVoting/#getvotingweightinfo)
*/
async getVotingWeightInfo(proposalId, address) {
return await this.qthVotingHelper.getVotingWeightInfo(this.votingWeightProxy, proposalId, address, this.hasUserVoted);
}
}
exports.ExpertsMembershipVotingInstance = ExpertsMembershipVotingInstance;
//# sourceMappingURL=ExpertsMembershipVotingInstance.js.map