@q-dev/qdex-js-sdk
Version:
Typescript Library to interact with Q DEX Contracts
67 lines • 2.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DEXExpertsParametersVotingInstance = void 0;
const param_voting_helper_1 = require("@q-dev/q-js-sdk/lib/utils/param-voting-helper");
const DEXVotingVetoableInstance_1 = require("../DEXVotingVetoableInstance");
/**
* Expert parameters voting contract instance to interact with QDEX EPDR parameters voting contract.
* See [onchain documentation](@q-dex-utils-repo/@network/DEX_ParametersVoting/) for more details.
*/
class DEXExpertsParametersVotingInstance extends DEXVotingVetoableInstance_1.DEXVotingVetoableInstance {
constructor() {
super(...arguments);
this.helper = new param_voting_helper_1.ParamVotingHelper();
}
/**
* [External documentation](@q-dex-utils-repo/@network/DEX_ParametersVoting/#hasrootvetoed)
*/
async hasRootVetoed(proposalId, address) {
return this.instance.methods.hasRootVetoed(proposalId, address).call();
}
/**
* [External documentation](@q-dex-utils-repo/@network/DEX_ParametersVoting/#hasuservoted)
*/
async hasUserVoted(proposalId, address) {
return this.instance.methods.hasUserVoted(proposalId, address).call();
}
/**
* [External documentation](@q-dex-utils-repo/@network/DEX_ParametersVoting/#proposalcount)
*/
async proposalCount() {
return this.instance.methods.proposalCount().call();
}
/**
* [External documentation](@q-dex-utils-repo/@network/DEX_ParametersVoting/#createproposal)
*/
async createProposal(remark, parameters, txOptions) {
const mappedParameters = parameters.map(p => this.helper.mapParameterToOnChainJson(p));
return this.submitTransactionWithHash(this.instance.methods.createProposal(remark, mappedParameters), txOptions);
}
/**
* [External documentation](@q-dex-utils-repo/@network/DEX_ParametersVoting/#proposals)
*/
async getProposal(proposalId) {
const proposal = await this.instance.methods.proposals(proposalId)
.call();
return proposal;
}
/**
* [External documentation](@q-dex-utils-repo/@network/DEX_ParametersVoting/#getparametersarr)
*/
async getParametersArr(proposalId) {
const params = await this.instance.methods.getParametersArr(proposalId)
.call();
return params;
}
/**
* Retrieve proposal parameters
* @param proposalId chosen proposal id
* @returns proposal parameters
*/
async getProposedParameters(proposalId) {
const rawParameters = await this.getParametersArr(proposalId);
return rawParameters.map(raw => this.helper.mapOnChainJsonToParameter(raw));
}
}
exports.DEXExpertsParametersVotingInstance = DEXExpertsParametersVotingInstance;
//# sourceMappingURL=DEXExpertsParametersVotingInstance.js.map