UNPKG

@dahlia-labs/stableswap-sdk

Version:
90 lines 4.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.calculateSwapMulticall = exports.tokenBalanceMulticall = exports.feesMulticall = exports.pausedMulticall = exports.ampMulticall = exports.LPMulticall = exports.getSwapContract = exports.getLPTokenContract = exports.swapInterface = exports.lpTokenInterface = exports.getSwapInterface = exports.getLPTokenInterface = exports.FEE_BASE = void 0; const tslib_1 = require("tslib"); const token_utils_1 = require("@dahlia-labs/token-utils"); const use_ethers_1 = require("@dahlia-labs/use-ethers"); const abi_1 = require("@ethersproject/abi"); const jsbi_1 = tslib_1.__importDefault(require("jsbi")); const LPToken_json_1 = tslib_1.__importDefault(require("./abis/LPToken.json")); const Swap_json_1 = tslib_1.__importDefault(require("./abis/Swap.json")); exports.FEE_BASE = jsbi_1.default.exponentiate(jsbi_1.default.BigInt(10), jsbi_1.default.BigInt(10)); function getLPTokenInterface() { return new abi_1.Interface(LPToken_json_1.default); } exports.getLPTokenInterface = getLPTokenInterface; function getSwapInterface() { return new abi_1.Interface(Swap_json_1.default); } exports.getSwapInterface = getSwapInterface; exports.lpTokenInterface = getLPTokenInterface(); exports.swapInterface = getSwapInterface(); const getLPTokenContract = (address, provider) => (0, use_ethers_1.getContract)(address, LPToken_json_1.default, provider); exports.getLPTokenContract = getLPTokenContract; const getSwapContract = (address, provider) => (0, use_ethers_1.getContract)(address, Swap_json_1.default, provider); exports.getSwapContract = getSwapContract; const LPMulticall = (swapAddress) => ({ call: { target: swapAddress, callData: exports.swapInterface.encodeFunctionData("getLpToken"), }, parseReturn: (returnData) => returnData, }); exports.LPMulticall = LPMulticall; const ampMulticall = (swapAddress) => ({ call: { target: swapAddress, callData: exports.swapInterface.encodeFunctionData("getA"), }, parseReturn: (returnData) => jsbi_1.default.BigInt(returnData), }); exports.ampMulticall = ampMulticall; const pausedMulticall = (swapAddress) => ({ call: { target: swapAddress, callData: exports.swapInterface.encodeFunctionData("paused"), }, parseReturn: (returnData) => exports.swapInterface.decodeFunctionResult("paused", returnData)[0], }); exports.pausedMulticall = pausedMulticall; const feesMulticall = (swapAddress) => ({ call: { target: swapAddress, callData: exports.swapInterface.encodeFunctionData("swapStorage"), }, parseReturn: (returnData) => { const data = exports.swapInterface.decodeFunctionResult("swapStorage", returnData); return { trade: new token_utils_1.Percent(data.swapFee.toString(), exports.FEE_BASE), admin: new token_utils_1.Percent(data.adminFee.toString(), exports.FEE_BASE), deposit: new token_utils_1.Percent(data.defaultDepositFee.toString(), exports.FEE_BASE), withdraw: new token_utils_1.Percent(data.defaultWithdrawFee.toString(), exports.FEE_BASE), }; }, }); exports.feesMulticall = feesMulticall; const tokenBalanceMulticall = (swapAddress, index) => ({ call: { target: swapAddress, callData: exports.swapInterface.encodeFunctionData("getTokenBalance", [index]), }, parseReturn: (returnData) => new token_utils_1.Fraction(exports.swapInterface .decodeFunctionResult("getTokenBalance", returnData) .toString()), }); exports.tokenBalanceMulticall = tokenBalanceMulticall; const calculateSwapMulticall = (swapAddress, fromIndex, toIndex, amountIn) => ({ call: { target: swapAddress, callData: exports.swapInterface.encodeFunctionData("calculateSwap", [ fromIndex, toIndex, amountIn, ]), }, parseReturn: (returnData) => new token_utils_1.Fraction(exports.swapInterface .decodeFunctionResult("calculateSwap", returnData) .toString()), }); exports.calculateSwapMulticall = calculateSwapMulticall; //# sourceMappingURL=contract.js.map