UNPKG

@q-dev/qdex-js-sdk

Version:

Typescript Library to interact with Q DEX Contracts

55 lines 2.69 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.DEXRevenuePoolInstance = void 0; const web3_1 = __importDefault(require("web3")); const DEXContractInstance_1 = require("../DEXContractInstance"); const ERC20Instance_1 = require("@q-dev/q-js-sdk/lib/contracts/defi/token/ERC20Instance"); /** * QDEX Revenue Pool Contract Instance to interact with the Revenue Pool contract * See [onchain documentation]((@q-dex-utils/@network/RevenuePool) for more details. * An instance of this class for a deployed network can be obtained via {@link ContractRegistryInstance.revenuePool} */ class DEXRevenuePoolInstance extends DEXContractInstance_1.DEXContractInstance { constructor(web3, address) { super(web3, 'DEX_RevenuePool.json', address); } /** * [External documentation](@q-dex-utils-repo/@network/RevenuePool/#flatfee) */ async flatFee() { return await this.instance.methods.flatFee().call(); } /** * [External documentation](@q-dex-utils-repo/@network/RevenuePool/#transferq) */ async transferQ(txOptions) { return await this.submitTransactionWithHash(this.instance.methods.transferQ(), txOptions); } /** * [External documentation](@q-dex-utils-repo/@network/RevenuePool/#swaptokenforq) */ async swapTokenForQ(token, amountWQMin, txOptions) { return await this.submitTransactionWithHash(this.instance.methods.swapTokenForQ(token, amountWQMin), txOptions); } /** * [External documentation](@q-dex-utils-repo/@network/RevenuePool/#returncollectedrevenue) */ async swapLPTokenForIndividualTokens(pair, amountAMin, amountBMin, txOptions) { return await this.submitTransactionWithHash(this.instance.methods.swapLPTokenForIndividualTokens(pair, amountAMin, amountBMin), txOptions); } /** * [External documentation](@q-dex-utils-repo/@network/RevenuePool/#returncollectedrevenue) */ async returnCollectedRevenue(tokenAddress) { const erc20Instance = new ERC20Instance_1.ERC20Instance(new web3_1.default(web3_1.default.givenProvider), tokenAddress); const balanceInWei = parseInt(await erc20Instance.balanceOf(this.address), 10); const decimals = parseInt(await erc20Instance.decimals(), 10); return (balanceInWei / 10 ** decimals).toString(); } } exports.DEXRevenuePoolInstance = DEXRevenuePoolInstance; DEXRevenuePoolInstance.registryKey = 'governance.intApp.QDEX.revenuePool'; //# sourceMappingURL=DEXRevenuePoolInstance.js.map