@q-dev/qdex-js-sdk
Version:
Typescript Library to interact with Q DEX Contracts
70 lines • 2.6 kB
JavaScript
;
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