UNPKG

@molecularlabs/nucleus-frontend

Version:
50 lines 1.63 kB
import { NUCLEUS_BASE_URL } from "../constants"; let assetsCache = null; function constructUrl(params) { const withdrawAssetsUrl = `${NUCLEUS_BASE_URL}/withdraw-assets`; if (!params) return withdrawAssetsUrl; const queryParams = new URLSearchParams(); if (params.chainId) queryParams.append("chainId", params.chainId.toString()); if (params.vaultAddress) queryParams.append("vaultAddress", params.vaultAddress.toLowerCase()); return `${withdrawAssetsUrl}?${queryParams.toString()}`; } async function fetchWithdrawAssets(params) { if (!params && assetsCache) { return assetsCache; } try { const url = constructUrl(params); const response = await fetch(url); if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } const data = await response.json(); if (!params) { assetsCache = data; } return data; } catch (error) { throw new Error( `An unknown error occurred while fetching withdraw assets: ${error instanceof Error ? error.message : String(error)}` ); } } async function fetchChainWithdrawAssets(chainId) { const assets = await fetchWithdrawAssets({ chainId }); return assets[chainId.toString()]; } async function fetchVaultWithdrawAssets(chainId, vaultAddress) { const assets = await fetchWithdrawAssets({ chainId, vaultAddress }); return assets[chainId.toString()]?.[vaultAddress.toLowerCase()]; } function clearAssetsCache() { assetsCache = null; } export { clearAssetsCache, fetchChainWithdrawAssets, fetchVaultWithdrawAssets, fetchWithdrawAssets }; //# sourceMappingURL=withdraw-assets.mjs.map