@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
JavaScript
;
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;
}