@paxoslabs/earn-sdk
Version:
Paxos Labs Earn SDK
65 lines (61 loc) • 2.22 kB
JavaScript
;
var chunkU72Q2IH5_js = require('./chunk-U72Q2IH5.js');
// src/api/withdraw-assets.ts
var assetsCache = null;
function constructUrl(params) {
const withdrawAssetsUrl = `${chunkU72Q2IH5_js.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)}`
);
}
}
// src/api/solver-slippage.ts
async function getAssetSlippage(chainId, vaultAddress, tokenAddress, defaultSlippage = chunkU72Q2IH5_js.DEFAULT_WITHDRAW_SLIPPAGE) {
try {
const withdrawAssets = await fetchWithdrawAssets();
if (!withdrawAssets) {
return defaultSlippage;
}
if (!withdrawAssets[chainId.toString()]) {
return defaultSlippage;
}
if (!withdrawAssets[chainId.toString()][vaultAddress.toLowerCase()]) {
return defaultSlippage;
}
if (!withdrawAssets[chainId.toString()][vaultAddress.toLowerCase()][tokenAddress.toLowerCase()]) {
return defaultSlippage;
}
return withdrawAssets[chainId.toString()][vaultAddress.toLowerCase()][tokenAddress.toLowerCase()];
} catch (error) {
throw new Error(
`Error fetching asset slippage for chain ${chainId}: ${error instanceof Error ? error.message : String(error)}`
);
}
}
exports.fetchWithdrawAssets = fetchWithdrawAssets;
exports.getAssetSlippage = getAssetSlippage;
//# sourceMappingURL=chunk-EG4XMABU.js.map
//# sourceMappingURL=chunk-EG4XMABU.js.map