UNPKG

@cyberk/hyperion-sdk

Version:

Hyperion SDK from Cyberk

50 lines 2.07 kB
import { buildExecuteContractMsg } from "../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"); } export 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 buildExecuteContractMsg(liquidityTokenAddress, executeMsg, signerAddress, []); }; export const getWithdrawLiquidityMutationOptions = (options) => { return { mutationFn: async (variables) => { const { isSimulate = false } = options; const { signingClient, signerAddress, pairAddress, amount, minAssets, deadline, fee, memo, liquidityTokenAddress, } = variables; const message = 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", ], }; }; //# sourceMappingURL=withdrawLiquidity.js.map