UNPKG

@admin-jigsaw/jigsaw-sdk

Version:

Returns predefined data for Jigsaw platform and exposes functionality to retrieve the necessary data

51 lines (50 loc) 2.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generatePendleRemoveLiquidityDataString = void 0; exports.getPendleMarketByStrategy = getPendleMarketByStrategy; const viem_1 = require("viem"); const chains_1 = require("../constants/chains"); const strategiesSharedConstants_1 = require("../constants/strategiesSharedConstants"); const removePendleLiquidityAbi_1 = require("../contracts/removePendleLiquidityAbi"); const generatePendleRemoveLiquidityDataString = async (resp) => { const TokenOutput = resp.contractCallParams[3]; // Ensure data is properly formatted for encoding const encodedData = (0, viem_1.encodeAbiParameters)(removePendleLiquidityAbi_1.removePendleLiquidityAbi, // Using the JSON ABI [ { tokenOut: TokenOutput.tokenOut, minTokenOut: TokenOutput.minTokenOut, tokenRedeemSy: TokenOutput.tokenRedeemSy, pendleSwap: viem_1.zeroAddress, swapData: strategiesSharedConstants_1.PENDLE_EMPTY_SWAP_DATA, }, ]); return encodedData; }; exports.generatePendleRemoveLiquidityDataString = generatePendleRemoveLiquidityDataString; /** * Returns the Pendle market address based on the provided strategy address. * @param {Address} stratAddress - The strategy address to look up. * @param {number} chainId - The chain ID to get the correct constants. * @returns {Address | null} - The corresponding market address or null if not found. */ function getPendleMarketByStrategy(stratAddress, chainId = 1) { const chainConfig = (0, chains_1.getChainConfig)(chainId); if (chainConfig.strategies === null) return null; if (!chainConfig.strategies.pendle?.strategies || !chainConfig.strategies.pendle?.markets) { return null; } const normalizedStratAddress = (0, viem_1.getAddress)(stratAddress); // Find the strategy that matches the given strategy address and return its market address for (const [_, strategies] of Object.entries(chainConfig.strategies.pendle.strategies)) { for (const strategy of strategies) { if ((0, viem_1.getAddress)(strategy.stratAddress) === normalizedStratAddress) { return strategy.marketAddress; } } } // If no matching strategy found, return null return null; }