@cyberk/hyperion-sdk
Version:
Hyperion SDK from Cyberk
55 lines • 2.45 kB
JavaScript
;
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