UNPKG

@q-dev/qdex-js-sdk

Version:

Typescript Library to interact with Q DEX Contracts

70 lines 2.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DEXVotingVetoableInstance = void 0; const AbiImporter_1 = require("../abi/AbiImporter"); const BaseVotingVetoableInstance_1 = require("@q-dev/q-js-sdk/lib/contracts/BaseVotingVetoableInstance"); class DEXVotingVetoableInstance extends BaseVotingVetoableInstance_1.BaseVotingVetoableInstance { /** * Constructor * @param web3 web3 instance * @param abiFile abi json file * @param address contract address */ constructor(web3, abiFile, address) { const abi = (0, AbiImporter_1.getAbi)(abiFile); super(web3, abi, address); this.address = address; } async submitTransactionWithHash(txObject, txOptions) { await this.refreshTxDefaultOptions(); if (!txOptions) txOptions = {}; await this.processTxOptions(txObject, txOptions); return new Promise(function (resolve, reject) { txObject .send(txOptions) .on('transactionHash', async (transactionHash) => { resolve({ transactionHash }); }) .on('error', () => reject()); }); } /** * Vote for proposal * @param proposalId current proposal id * @param txOptions transaction options * @returns transaction receipt */ async voteFor(proposalId, txOptions) { return this.submitTransactionWithHash(this.instance.methods.voteFor(proposalId), txOptions); } /** * Vote against proposal * @param proposalId current proposal id * @param txOptions transaction options * @returns transaction receipt */ async voteAgainst(proposalId, txOptions) { return this.submitTransactionWithHash(this.instance.methods.voteAgainst(proposalId), txOptions); } /** * Veto specific proposal * @param proposalId proposal id * @param txOptions transaction options * @returns transaction receipt */ async veto(proposalId, txOptions) { return this.submitTransactionWithHash(this.instance.methods.veto(proposalId), txOptions); } /** * execute proposal * @param proposalId current proposal id * @param txOptions transaction options * @returns transaction receipt */ async execute(proposalId, txOptions) { return this.submitTransactionWithHash(this.instance.methods.execute(proposalId), txOptions); } } exports.DEXVotingVetoableInstance = DEXVotingVetoableInstance; //# sourceMappingURL=DEXVotingVetoableInstance.js.map