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