UNPKG

@cyberk/hyperion-sdk

Version:

Hyperion SDK from Cyberk

55 lines 2.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getWithdrawLiquidityMutationOptions = exports.getWithdrawLiquidityContractExecuteMsg = void 0; const buildExecuteContractMsg_1 = require("../utils/buildExecuteContractMsg"); function encodeWithdrawLiquidityMsg(minAssets, deadline) { // Build the message in the format expected by the contract const msg = { withdraw_liquidity: {} }; // if (minAssets) msg.withdraw_liquidity.min_assets = minAssets; // if (deadline) msg.withdraw_liquidity.deadline = deadline; return Buffer.from(JSON.stringify(msg)).toString("base64"); } const getWithdrawLiquidityContractExecuteMsg = (options) => { const { pairAddress, amount, minAssets, deadline, signerAddress, liquidityTokenAddress, } = options; const encodedMsg = encodeWithdrawLiquidityMsg(minAssets, deadline); const executeMsg = { send: { amount, contract: pairAddress, msg: encodedMsg, }, }; return (0, buildExecuteContractMsg_1.buildExecuteContractMsg)(liquidityTokenAddress, executeMsg, signerAddress, []); }; exports.getWithdrawLiquidityContractExecuteMsg = getWithdrawLiquidityContractExecuteMsg; const getWithdrawLiquidityMutationOptions = (options) => { return { mutationFn: async (variables) => { const { isSimulate = false } = options; const { signingClient, signerAddress, pairAddress, amount, minAssets, deadline, fee, memo, liquidityTokenAddress, } = variables; const message = (0, exports.getWithdrawLiquidityContractExecuteMsg)({ pairAddress, signerAddress, amount, minAssets, deadline, liquidityTokenAddress, }); 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: [ "withdraw_liquidity", options.isSimulate ? "simulate" : "execute", ], }; }; exports.getWithdrawLiquidityMutationOptions = getWithdrawLiquidityMutationOptions; //# sourceMappingURL=withdrawLiquidity.js.map