UNPKG

@cyberk/hyperion-sdk

Version:

Hyperion SDK from Cyberk

76 lines 3.28 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getProvideLiquidityMutationOptions = exports.getProvideLiquidityQueryKey = exports.getProvideLiquidityContractExecuteMsg = void 0; const buildExecuteContractMsg_1 = require("../utils/buildExecuteContractMsg"); const orderBy_1 = __importDefault(require("lodash/orderBy")); const getProvideLiquidityContractExecuteMsg = (options) => { const { signerAddress, pairAddress, assets, slippageTolerance = null, receiver = null, deadline = null, } = options; const sortedAssets = (0, orderBy_1.default)(assets, ["denom"], ["asc"]); console.log("sortedAssets", sortedAssets); const msg = { provide_liquidity: { assets: sortedAssets.map((asset) => ({ info: { native_token: { denom: asset.denom, }, }, amount: asset.amount, })), slippage_tolerance: slippageTolerance, receiver: receiver, deadline: deadline, }, }; // Funds are directly the assets as they are Coin[] and assumed native const funds = sortedAssets; return (0, buildExecuteContractMsg_1.buildExecuteContractMsg)(pairAddress, msg, signerAddress, funds); }; exports.getProvideLiquidityContractExecuteMsg = getProvideLiquidityContractExecuteMsg; const getProvideLiquidityQueryKey = (options) => { return [ "provideLiquidity", options.isSimulate ? "simulate" : "execute", options.pairAddress, options.assets.map((asset) => `${asset.denom}:${asset.amount}`).join(","), options.signerAddress, options.receiver, options.slippageTolerance, options.deadline, ]; }; exports.getProvideLiquidityQueryKey = getProvideLiquidityQueryKey; const getProvideLiquidityMutationOptions = (options) => { return { mutationFn: async (variables) => { const { isSimulate = false } = options; const { signingClient, signerAddress, fee, memo } = variables; const message = (0, exports.getProvideLiquidityContractExecuteMsg)({ signerAddress: variables.signerAddress, pairAddress: variables.pairAddress, assets: variables.assets, slippageTolerance: variables.slippageTolerance, receiver: variables.receiver, deadline: variables.deadline, }); if (isSimulate) { return await signingClient.simulate(signerAddress, [message], memo); } else { if (!fee) { throw new Error("Fee is required for execution"); } return await signingClient.signAndBroadcast(signerAddress, [message], fee, memo); } }, mutationKey: [ "provideLiquidity", options.isSimulate ? "simulate" : "execute", ], }; }; exports.getProvideLiquidityMutationOptions = getProvideLiquidityMutationOptions; //# sourceMappingURL=provideLiquidity.js.map