@1delta/margin-fetcher 0.0.314 → 0.0.317
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +745 -288
- package/dist/index.js.map +1 -1
- package/dist/lending/public-data/fetchLenderAll.d.ts.map +1 -1
- package/dist/lending/public-data/fetchLenderExt.d.ts.map +1 -1
- package/dist/lending/public-data/midnight/apiClient.d.ts +21 -0
- package/dist/lending/public-data/midnight/apiClient.d.ts.map +1 -0
- package/dist/lending/public-data/midnight/convertPublic.d.ts +25 -0
- package/dist/lending/public-data/midnight/convertPublic.d.ts.map +1 -0
- package/dist/lending/public-data/midnight/fetchPublic.d.ts +12 -0
- package/dist/lending/public-data/midnight/fetchPublic.d.ts.map +1 -0
- package/dist/lending/public-data/midnight/index.d.ts +6 -0
- package/dist/lending/public-data/midnight/index.d.ts.map +1 -0
- package/dist/lending/public-data/midnight/live.test.d.ts +2 -0
- package/dist/lending/public-data/midnight/live.test.d.ts.map +1 -0
- package/dist/lending/public-data/midnight/math.d.ts +22 -0
- package/dist/lending/public-data/midnight/math.d.ts.map +1 -0
- package/dist/lending/public-data/midnight/math.test.d.ts +2 -0
- package/dist/lending/public-data/midnight/math.test.d.ts.map +1 -0
- package/dist/lending/public-data/midnight/types.d.ts +45 -0
- package/dist/lending/public-data/midnight/types.d.ts.map +1 -0
- package/dist/lending/user-data/abis.d.ts.map +1 -1
- package/dist/lending/user-data/fetch-balances/parse.d.ts.map +1 -1
- package/dist/lending/user-data/fetch-balances/prepare.d.ts.map +1 -1
- package/dist/lending/user-data/midnight/index.d.ts +3 -0
- package/dist/lending/user-data/midnight/index.d.ts.map +1 -0
- package/dist/lending/user-data/midnight/userCallBuild.d.ts +16 -0
- package/dist/lending/user-data/midnight/userCallBuild.d.ts.map +1 -0
- package/dist/lending/user-data/midnight/userCallParse.d.ts +17 -0
- package/dist/lending/user-data/midnight/userCallParse.d.ts.map +1 -0
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/yields/intrinsic/index.d.ts.map +1 -1
- package/package.json +7 -7
package/dist/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { parseAbi, keccak256, encodeAbiParameters, formatEther, BaseError, encodeFunctionData, formatUnits, isAddress, getAddress, decodeFunctionResult, decodeAbiParameters, AbiEncodingLengthMismatchError, concatHex, pad, InvalidAddressError, stringToHex, boolToHex, integerRegex, numberToHex, bytesRegex, BytesSizeMismatchError, arrayRegex, UnsupportedPackedAbiType } from './chunk-Z3MGRQJR.js';
|
|
2
2
|
import './chunk-BYTNVMX7.js';
|
|
3
3
|
import './chunk-PR4QN5HX.js';
|
|
4
|
-
import { Lender, isAaveType, isCompoundV3, isMultiMarket, isSiloV2Type, isSiloV3Type, isDolomite, isEulerType, isAaveV4Type, isInit, isMorphoType, isCompoundV2Type, isVenusType, isSumerType, AAVE_V3_LENDERS, AAVE_V2_LENDERS, isAaveV2Type, isAaveV32Type, isAaveV3Type, isFluid, isGearboxV3, isYLDR, isCompoundV3Type, isLista, isTectonicType, isKineticType, isBenqiType } from '@1delta/lender-registry';
|
|
4
|
+
import { Lender, isAaveType, isCompoundV3, isMultiMarket, isSiloV2Type, isSiloV3Type, isDolomite, isEulerType, isAaveV4Type, isInit, isMorphoType, isCompoundV2Type, isVenusType, isSumerType, AAVE_V3_LENDERS, AAVE_V2_LENDERS, isAaveV2Type, isAaveV32Type, isAaveV3Type, isFluid, isGearboxV3, isMidnight, isYLDR, isCompoundV3Type, isLista, isTectonicType, isKineticType, isBenqiType } from '@1delta/lender-registry';
|
|
5
5
|
export { isAaveType, isAaveV2Type, isAaveV32Type, isAaveV3Type, isCompoundV3, isCompoundV3Type, isInit, isMorphoType, isMultiMarket, isYLDR } from '@1delta/lender-registry';
|
|
6
|
-
import { aavePools, compoundV3Pools, initConfig, morphoPools, compoundV2Pools, eulerVaults, siloMarkets, siloV2LenderKey, siloMarketsV3, siloV3LenderKey, aaveV4Spokes, aaveV4SpokeLenderKey, fluidResolvers, gearboxResolvers, dolomiteConfigs, aaveReserves, compoundV3Reserves, morphoTypeMarkets, getSiloV2MarketEntry, getSiloV3MarketEntry, dolomiteEmode, aaveTokens, morphoTypeVaults, eulerConfigs, gearboxMarketCompressor, gearboxMarketConfigurators, gearboxV3LenderKey, parseAaveV4SpokeLenderKey, gearboxAccountCompressor, compoundV2Tokens, aaveOracles, aaveOraclesConfig, compoundV2Oracles, compoundV2TokenArray, compoundV2OraclesConfig, compoundV3OraclesData, compoundV3BaseData, compoundV2Reserves, fetchTokenLists, fetchTokenList, aaveV4Oracles } from '@1delta/data-sdk';
|
|
6
|
+
import { aavePools, compoundV3Pools, initConfig, morphoPools, compoundV2Pools, eulerVaults, siloMarkets, siloV2LenderKey, siloMarketsV3, siloV3LenderKey, aaveV4Spokes, aaveV4SpokeLenderKey, fluidResolvers, gearboxResolvers, dolomiteConfigs, midnightConfig, aaveReserves, compoundV3Reserves, morphoTypeMarkets, getSiloV2MarketEntry, getSiloV3MarketEntry, dolomiteEmode, aaveTokens, morphoTypeVaults, eulerConfigs, gearboxMarketCompressor, gearboxMarketConfigurators, gearboxV3LenderKey, midnightMarketsByChain, parseAaveV4SpokeLenderKey, gearboxAccountCompressor, compoundV2Tokens, aaveOracles, aaveOraclesConfig, compoundV2Oracles, compoundV2TokenArray, compoundV2OraclesConfig, compoundV3OraclesData, compoundV3BaseData, compoundV2Reserves, fetchTokenLists, fetchTokenList, aaveV4Oracles } from '@1delta/data-sdk';
|
|
7
7
|
import lodash from 'lodash';
|
|
8
8
|
import { getEvmClient, getEvmChain, getEvmClientUniversal, multicallRetryUniversal } from '@1delta/providers';
|
|
9
|
-
import { MetaMorphoAbi, FluidLendingResolverAbi, FluidVaultResolverAbi, MoolahVaultAbi, MorphoLensAbi, AaveV4SpokeAbi, AaveV4OracleAbi, AaveV4HubAbi, DolomiteMarginAbi, GearboxMarketCompressorV310Abi, MorphoBlueAbi, GearboxCreditAccountCompressorV310Abi } from '@1delta/abis';
|
|
9
|
+
import { MetaMorphoAbi, FluidLendingResolverAbi, FluidVaultResolverAbi, MoolahVaultAbi, MorphoLensAbi, AaveV4SpokeAbi, AaveV4OracleAbi, AaveV4HubAbi, DolomiteMarginAbi, GearboxMarketCompressorV310Abi, MorphoBlueAbi, MidnightAbi, GearboxCreditAccountCompressorV310Abi } from '@1delta/abis';
|
|
10
10
|
export { MorphoLensAbi } from '@1delta/abis';
|
|
11
11
|
import { prepareDebitDataMulticall, prepareLenderDebitMulticall, parseDebitDataResult, parseLenderDebitResult, getPermit2ContractAddress, getCompoundV3CometAddress as getCompoundV3CometAddress$1, getMorphoAddress, getAaveCollateralTokenAddress, getSiloHalfForUnderlying, InitMarginAddresses, getLstAcceptedInputs } from '@1delta/calldata-sdk';
|
|
12
12
|
import { proxyNativeFetch } from '@1delta/proxy-fetch';
|
|
@@ -7501,6 +7501,9 @@ var getLendersForChain = (c) => {
|
|
|
7501
7501
|
if (dolomiteConfigs()?.[c]?.dolomiteMargin) {
|
|
7502
7502
|
lenders.push(Lender.DOLOMITE);
|
|
7503
7503
|
}
|
|
7504
|
+
if (midnightConfig()?.[c]?.midnight) {
|
|
7505
|
+
lenders.push(Lender.MORPHO_MIDNIGHT);
|
|
7506
|
+
}
|
|
7504
7507
|
return lenders.filter((l) => !isExcludedLender(l));
|
|
7505
7508
|
};
|
|
7506
7509
|
var filterLendersByProtocol = (allLenders, protocolList) => {
|
|
@@ -13036,7 +13039,7 @@ var MathLib;
|
|
|
13036
13039
|
return x * y / denominator;
|
|
13037
13040
|
}
|
|
13038
13041
|
MathLib2.mulDivDown = mulDivDown;
|
|
13039
|
-
function
|
|
13042
|
+
function mulDivUp2(x, y, denominator) {
|
|
13040
13043
|
x = BigInt(x);
|
|
13041
13044
|
y = BigInt(y);
|
|
13042
13045
|
denominator = BigInt(denominator);
|
|
@@ -13044,7 +13047,7 @@ var MathLib;
|
|
|
13044
13047
|
const roundup = x * y % denominator > 0 ? 1n : 0n;
|
|
13045
13048
|
return x * y / denominator + roundup;
|
|
13046
13049
|
}
|
|
13047
|
-
MathLib2.mulDivUp =
|
|
13050
|
+
MathLib2.mulDivUp = mulDivUp2;
|
|
13048
13051
|
function mulDiv(x, y, denominator, rounding) {
|
|
13049
13052
|
return MathLib2[`mulDiv${rounding}`](x, y, denominator);
|
|
13050
13053
|
}
|
|
@@ -13151,7 +13154,7 @@ var MathLib;
|
|
|
13151
13154
|
} else {
|
|
13152
13155
|
const _newRateAtTarget = (la) => MathLib2.min(
|
|
13153
13156
|
MathLib2.max(
|
|
13154
|
-
MathLib2.wMulDown(startRateAtTarget,
|
|
13157
|
+
MathLib2.wMulDown(startRateAtTarget, wExp2(la)),
|
|
13155
13158
|
MIN_RATE_AT_TARGET
|
|
13156
13159
|
),
|
|
13157
13160
|
MAX_RATE_AT_TARGET
|
|
@@ -13180,7 +13183,7 @@ var MathLib;
|
|
|
13180
13183
|
const LN_WEI_INT = -41446531673892822312n;
|
|
13181
13184
|
const WEXP_UPPER_BOUND = 93859467695000404319n;
|
|
13182
13185
|
const WEXP_UPPER_VALUE = 57716089161558943949701069502944508345128422502756744429568n;
|
|
13183
|
-
function
|
|
13186
|
+
function wExp2(x) {
|
|
13184
13187
|
x = BigInt(x);
|
|
13185
13188
|
if (x < LN_WEI_INT) return 0n;
|
|
13186
13189
|
if (x >= WEXP_UPPER_BOUND) return WEXP_UPPER_VALUE;
|
|
@@ -13191,7 +13194,7 @@ var MathLib;
|
|
|
13191
13194
|
if (q >= 0n) return expR << q;
|
|
13192
13195
|
return expR >> -q;
|
|
13193
13196
|
}
|
|
13194
|
-
MathLib2.wExp =
|
|
13197
|
+
MathLib2.wExp = wExp2;
|
|
13195
13198
|
function _getBorrowRate(startUtilization, startRateAtTarget, elapsed) {
|
|
13196
13199
|
startUtilization = BigInt(startUtilization);
|
|
13197
13200
|
startRateAtTarget = BigInt(startRateAtTarget);
|
|
@@ -13215,7 +13218,7 @@ var MathLib;
|
|
|
13215
13218
|
} else {
|
|
13216
13219
|
const _newRateAtTarget = (linearAdaptation2) => MathLib2.min(
|
|
13217
13220
|
MathLib2.max(
|
|
13218
|
-
MathLib2.wMulDown(startRateAtTarget,
|
|
13221
|
+
MathLib2.wMulDown(startRateAtTarget, wExp2(linearAdaptation2)),
|
|
13219
13222
|
MIN_RATE_AT_TARGET
|
|
13220
13223
|
),
|
|
13221
13224
|
MAX_RATE_AT_TARGET
|
|
@@ -19582,7 +19585,7 @@ var getSiloV2ReservesDataConverter = (lender, chainId, prices, additionalYields,
|
|
|
19582
19585
|
{ self: market.silo0, other: market.silo1 },
|
|
19583
19586
|
{ self: market.silo1, other: market.silo0 }
|
|
19584
19587
|
];
|
|
19585
|
-
const
|
|
19588
|
+
const toBigInt15 = (v) => {
|
|
19586
19589
|
if (v === void 0 || v === null || v === "0x") return 0n;
|
|
19587
19590
|
if (typeof v === "bigint") return v;
|
|
19588
19591
|
try {
|
|
@@ -19594,8 +19597,8 @@ var getSiloV2ReservesDataConverter = (lender, chainId, prices, additionalYields,
|
|
|
19594
19597
|
for (let s = 0; s < 2; s++) {
|
|
19595
19598
|
const { self, other } = sides[s];
|
|
19596
19599
|
const slot = s * SILO_V2_CALLS_PER_SIDE;
|
|
19597
|
-
const totalAssetsRaw =
|
|
19598
|
-
const debtAssetsRaw =
|
|
19600
|
+
const totalAssetsRaw = toBigInt15(data[slot]);
|
|
19601
|
+
const debtAssetsRaw = toBigInt15(data[slot + 1]);
|
|
19599
19602
|
const irmConfigRaw = data[slot + 2];
|
|
19600
19603
|
const decimals = self.decimals;
|
|
19601
19604
|
const totalDeposits = Number(formatUnits(totalAssetsRaw, decimals));
|
|
@@ -19750,7 +19753,7 @@ var getSiloV3ReservesDataConverter = (lender, chainId, prices, additionalYields,
|
|
|
19750
19753
|
{ self: market.silo0, other: market.silo1 },
|
|
19751
19754
|
{ self: market.silo1, other: market.silo0 }
|
|
19752
19755
|
];
|
|
19753
|
-
const
|
|
19756
|
+
const toBigInt15 = (v) => {
|
|
19754
19757
|
if (v === void 0 || v === null || v === "0x") return 0n;
|
|
19755
19758
|
if (typeof v === "bigint") return v;
|
|
19756
19759
|
try {
|
|
@@ -19762,8 +19765,8 @@ var getSiloV3ReservesDataConverter = (lender, chainId, prices, additionalYields,
|
|
|
19762
19765
|
for (let s = 0; s < 2; s++) {
|
|
19763
19766
|
const { self, other } = sides[s];
|
|
19764
19767
|
const slot = s * SILO_V3_CALLS_PER_SIDE;
|
|
19765
|
-
const totalAssetsRaw =
|
|
19766
|
-
const debtAssetsRaw =
|
|
19768
|
+
const totalAssetsRaw = toBigInt15(data[slot]);
|
|
19769
|
+
const debtAssetsRaw = toBigInt15(data[slot + 1]);
|
|
19767
19770
|
const irmConfigRaw = data[slot + 2];
|
|
19768
19771
|
const decimals = self.decimals;
|
|
19769
19772
|
const totalDeposits = Number(formatUnits(totalAssetsRaw, decimals));
|
|
@@ -20751,6 +20754,310 @@ var getLenderPublicData = async (chainId, lenders, prices, additionalYields, mul
|
|
|
20751
20754
|
}
|
|
20752
20755
|
return lenderData;
|
|
20753
20756
|
};
|
|
20757
|
+
var DEFAULT_MIDNIGHT_API = "https://api.morpho.org/v0/midnight";
|
|
20758
|
+
var warn = (...args) => {
|
|
20759
|
+
};
|
|
20760
|
+
function midnightApiBaseUrl(chainId) {
|
|
20761
|
+
const base = midnightConfig()?.[chainId]?.apiBaseUrl;
|
|
20762
|
+
return (base && base.length > 0 ? base : DEFAULT_MIDNIGHT_API).replace(/\/+$/, "");
|
|
20763
|
+
}
|
|
20764
|
+
var toBig2 = (v) => {
|
|
20765
|
+
try {
|
|
20766
|
+
if (v == null) return 0n;
|
|
20767
|
+
if (typeof v === "bigint") return v;
|
|
20768
|
+
if (typeof v === "number") return BigInt(Math.trunc(v));
|
|
20769
|
+
return BigInt(String(v));
|
|
20770
|
+
} catch {
|
|
20771
|
+
return 0n;
|
|
20772
|
+
}
|
|
20773
|
+
};
|
|
20774
|
+
function parseLevel(raw) {
|
|
20775
|
+
const tick = toBig2(raw?.tick);
|
|
20776
|
+
const units = toBig2(raw?.units);
|
|
20777
|
+
let assets = toBig2(raw?.assets);
|
|
20778
|
+
if (assets === 0n && units > 0n && raw?.price != null) {
|
|
20779
|
+
assets = toBig2(raw.price) * units / 1000000000000000000n;
|
|
20780
|
+
}
|
|
20781
|
+
return { tick, units, assets };
|
|
20782
|
+
}
|
|
20783
|
+
function reduceTop(bids, asks) {
|
|
20784
|
+
let bestBorrowTick;
|
|
20785
|
+
let bestSupplyTick;
|
|
20786
|
+
let borrowDepthUnits = 0n;
|
|
20787
|
+
let borrowDepthAssets = 0n;
|
|
20788
|
+
let supplyDepthUnits = 0n;
|
|
20789
|
+
let supplyDepthAssets = 0n;
|
|
20790
|
+
for (const l of bids) {
|
|
20791
|
+
borrowDepthUnits += l.units;
|
|
20792
|
+
borrowDepthAssets += l.assets;
|
|
20793
|
+
if (bestBorrowTick === void 0 || l.tick > bestBorrowTick) bestBorrowTick = l.tick;
|
|
20794
|
+
}
|
|
20795
|
+
for (const l of asks) {
|
|
20796
|
+
supplyDepthUnits += l.units;
|
|
20797
|
+
supplyDepthAssets += l.assets;
|
|
20798
|
+
if (bestSupplyTick === void 0 || l.tick < bestSupplyTick) bestSupplyTick = l.tick;
|
|
20799
|
+
}
|
|
20800
|
+
return {
|
|
20801
|
+
bestBorrowTick,
|
|
20802
|
+
bestSupplyTick,
|
|
20803
|
+
borrowDepthUnits,
|
|
20804
|
+
borrowDepthAssets,
|
|
20805
|
+
supplyDepthUnits,
|
|
20806
|
+
supplyDepthAssets
|
|
20807
|
+
};
|
|
20808
|
+
}
|
|
20809
|
+
var ApiBookSource = class {
|
|
20810
|
+
constructor(baseUrl, fetchImpl = fetch) {
|
|
20811
|
+
this.baseUrl = baseUrl;
|
|
20812
|
+
this.fetchImpl = fetchImpl;
|
|
20813
|
+
}
|
|
20814
|
+
baseUrl;
|
|
20815
|
+
fetchImpl;
|
|
20816
|
+
async getBookTop(marketId) {
|
|
20817
|
+
const url = `${this.baseUrl}/books/${marketId}`;
|
|
20818
|
+
try {
|
|
20819
|
+
const res = await this.fetchImpl(url);
|
|
20820
|
+
if (!res.ok) {
|
|
20821
|
+
warn(`book ${marketId} \u2192 HTTP ${res.status}`);
|
|
20822
|
+
return null;
|
|
20823
|
+
}
|
|
20824
|
+
const json = await res.json();
|
|
20825
|
+
const book = json?.data ?? json;
|
|
20826
|
+
const bids = Array.isArray(book?.bids) ? book.bids.map(parseLevel) : [];
|
|
20827
|
+
const asks = Array.isArray(book?.asks) ? book.asks.map(parseLevel) : [];
|
|
20828
|
+
return reduceTop(bids, asks);
|
|
20829
|
+
} catch (e) {
|
|
20830
|
+
warn(`book ${marketId} fetch failed:`, e?.message ?? e);
|
|
20831
|
+
return null;
|
|
20832
|
+
}
|
|
20833
|
+
}
|
|
20834
|
+
};
|
|
20835
|
+
function createMidnightBookSource(chainId, fetchImpl = fetch) {
|
|
20836
|
+
return new ApiBookSource(midnightApiBaseUrl(chainId), fetchImpl);
|
|
20837
|
+
}
|
|
20838
|
+
|
|
20839
|
+
// src/lending/public-data/midnight/fetchPublic.ts
|
|
20840
|
+
async function fetchMidnightMarkets(chainId, source = createMidnightBookSource(chainId)) {
|
|
20841
|
+
const markets = midnightMarketsByChain(chainId);
|
|
20842
|
+
if (markets.length === 0) return [];
|
|
20843
|
+
return Promise.all(
|
|
20844
|
+
markets.map(async (config) => ({
|
|
20845
|
+
config,
|
|
20846
|
+
top: await source.getBookTop(config.marketId).catch(() => null)
|
|
20847
|
+
}))
|
|
20848
|
+
);
|
|
20849
|
+
}
|
|
20850
|
+
|
|
20851
|
+
// src/lending/public-data/midnight/math.ts
|
|
20852
|
+
var WAD2 = 1000000000000000000n;
|
|
20853
|
+
var WAD_SQUARED = 1000000000000000000000000000000000000n;
|
|
20854
|
+
var LN_ONE_PLUS_DELTA = 4987541511039073n;
|
|
20855
|
+
var LN_2 = 693147180559945309n;
|
|
20856
|
+
var EXP_OFFSET = 322611214989459870n;
|
|
20857
|
+
var MAX_TICK = 6744n;
|
|
20858
|
+
var PRICE_ROUNDING_STEP = 100000000000n;
|
|
20859
|
+
var SECONDS_PER_YEAR7 = 31536000n;
|
|
20860
|
+
var mulDivUp = (x, y, d) => (x * y + (d - 1n)) / d;
|
|
20861
|
+
var divHalfDownUnchecked = (x, d) => (x + (d - 1n) / 2n) / d;
|
|
20862
|
+
function wExp(x) {
|
|
20863
|
+
if (x < 0n) return WAD_SQUARED / wExp(-x);
|
|
20864
|
+
const q = (x + EXP_OFFSET) / LN_2;
|
|
20865
|
+
const r = x - q * LN_2;
|
|
20866
|
+
const secondTerm = r * r / (2n * WAD2);
|
|
20867
|
+
const thirdTerm = secondTerm * r / (3n * WAD2);
|
|
20868
|
+
const expR = WAD2 + r + secondTerm + thirdTerm;
|
|
20869
|
+
return expR << q;
|
|
20870
|
+
}
|
|
20871
|
+
function tickToPrice(tick) {
|
|
20872
|
+
if (tick < 0n || tick > MAX_TICK)
|
|
20873
|
+
throw new Error(`midnight tick out of range: ${tick}`);
|
|
20874
|
+
const exponent = LN_ONE_PLUS_DELTA * (MAX_TICK / 2n - tick);
|
|
20875
|
+
const rawPrice = divHalfDownUnchecked(WAD_SQUARED, WAD2 + wExp(exponent));
|
|
20876
|
+
return divHalfDownUnchecked(rawPrice, PRICE_ROUNDING_STEP) * PRICE_ROUNDING_STEP;
|
|
20877
|
+
}
|
|
20878
|
+
function tickToRate(tick) {
|
|
20879
|
+
const price2 = tickToPrice(tick);
|
|
20880
|
+
if (price2 === 0n) throw new Error("midnight tick price is zero");
|
|
20881
|
+
return mulDivUp(WAD2, WAD2, price2) - WAD2;
|
|
20882
|
+
}
|
|
20883
|
+
function tickToApr(tick, timeToMaturity) {
|
|
20884
|
+
if (timeToMaturity <= 0n) return 0n;
|
|
20885
|
+
return mulDivUp(tickToRate(tick), SECONDS_PER_YEAR7, timeToMaturity);
|
|
20886
|
+
}
|
|
20887
|
+
function tickToAprNumber(tick, timeToMaturity) {
|
|
20888
|
+
return Number(tickToApr(tick, timeToMaturity)) / 1e18;
|
|
20889
|
+
}
|
|
20890
|
+
|
|
20891
|
+
// src/lending/public-data/midnight/convertPublic.ts
|
|
20892
|
+
var nowSec = () => Math.floor(Date.now() / 1e3);
|
|
20893
|
+
function midnightLenderKey(marketId) {
|
|
20894
|
+
return "MORPHO_MIDNIGHT_" + marketId.slice(2).toUpperCase();
|
|
20895
|
+
}
|
|
20896
|
+
function currencyFor(address, decimals, tokens) {
|
|
20897
|
+
const lower = address.toLowerCase();
|
|
20898
|
+
return tokens[lower] ?? {
|
|
20899
|
+
address: lower,
|
|
20900
|
+
symbol: "",
|
|
20901
|
+
name: "",
|
|
20902
|
+
decimals
|
|
20903
|
+
};
|
|
20904
|
+
}
|
|
20905
|
+
function convertMidnightMarketsToResponse(raw, chainId, prices = {}, _additionalYields = {
|
|
20906
|
+
intrinsicYields: {},
|
|
20907
|
+
lenderRewards: {},
|
|
20908
|
+
loaded: true
|
|
20909
|
+
}, tokens = {}) {
|
|
20910
|
+
const out = {};
|
|
20911
|
+
const now = nowSec();
|
|
20912
|
+
for (const { config, top } of raw) {
|
|
20913
|
+
if (!config?.marketId || !config.loanToken) continue;
|
|
20914
|
+
const m = midnightLenderKey(config.marketId);
|
|
20915
|
+
const maturity = Number(config.maturity);
|
|
20916
|
+
const ttm = maturity - now;
|
|
20917
|
+
const matured = ttm <= 0;
|
|
20918
|
+
const ttmBig = BigInt(Math.max(0, ttm));
|
|
20919
|
+
const supplyAprPct = top?.bestSupplyTick != null && !matured ? tickToAprNumber(top.bestSupplyTick, ttmBig) * 100 : 0;
|
|
20920
|
+
const borrowAprPct = top?.bestBorrowTick != null && !matured ? tickToAprNumber(top.bestBorrowTick, ttmBig) * 100 : 0;
|
|
20921
|
+
const terms = borrowAprPct > 0 && !matured ? [
|
|
20922
|
+
{
|
|
20923
|
+
termId: 0,
|
|
20924
|
+
durationSecs: Math.max(0, ttm),
|
|
20925
|
+
durationDays: ttm / 86400,
|
|
20926
|
+
apr: borrowAprPct
|
|
20927
|
+
}
|
|
20928
|
+
] : void 0;
|
|
20929
|
+
const loanAddr = config.loanToken.toLowerCase();
|
|
20930
|
+
const loanPrice = prices[loanAddr] ?? 0;
|
|
20931
|
+
const supplyLiquidity = formatNr(top?.supplyDepthAssets ?? 0n, config.loanDecimals);
|
|
20932
|
+
const borrowLiquidity = formatNr(top?.borrowDepthAssets ?? 0n, config.loanDecimals);
|
|
20933
|
+
const entry = { data: {} };
|
|
20934
|
+
const loanUid = createMarketUid(chainId, m, loanAddr);
|
|
20935
|
+
entry.data[loanUid] = {
|
|
20936
|
+
marketUid: loanUid,
|
|
20937
|
+
name: "Loan " + (tokens[loanAddr]?.symbol ?? ""),
|
|
20938
|
+
poolId: loanAddr,
|
|
20939
|
+
underlying: loanAddr,
|
|
20940
|
+
asset: currencyFor(loanAddr, config.loanDecimals, tokens),
|
|
20941
|
+
totalDeposits: supplyLiquidity,
|
|
20942
|
+
totalDebtStable: 0,
|
|
20943
|
+
totalDebt: 0,
|
|
20944
|
+
totalLiquidity: borrowLiquidity,
|
|
20945
|
+
borrowLiquidity,
|
|
20946
|
+
totalLiquidityUSD: borrowLiquidity * loanPrice,
|
|
20947
|
+
borrowLiquidityUSD: borrowLiquidity * loanPrice,
|
|
20948
|
+
totalDepositsUSD: supplyLiquidity * loanPrice,
|
|
20949
|
+
totalDebtStableUSD: 0,
|
|
20950
|
+
totalDebtUSD: 0,
|
|
20951
|
+
utilization: 0,
|
|
20952
|
+
depositRate: supplyAprPct,
|
|
20953
|
+
variableBorrowRate: borrowAprPct,
|
|
20954
|
+
// Midnight is fixed-rate: expose the fixed borrow APR on stableBorrowRate
|
|
20955
|
+
// too, so fixed-rate consumers pick it up like a term product.
|
|
20956
|
+
stableBorrowRate: borrowAprPct,
|
|
20957
|
+
intrinsicYield: 0,
|
|
20958
|
+
rewards: void 0,
|
|
20959
|
+
decimals: config.loanDecimals,
|
|
20960
|
+
config: {
|
|
20961
|
+
0: {
|
|
20962
|
+
category: 0,
|
|
20963
|
+
borrowCollateralFactor: 0,
|
|
20964
|
+
collateralFactor: 0,
|
|
20965
|
+
borrowFactor: 1,
|
|
20966
|
+
liquidationPenalty: 0,
|
|
20967
|
+
closeFactor: 1,
|
|
20968
|
+
collateralDisabled: true,
|
|
20969
|
+
debtDisabled: false
|
|
20970
|
+
}
|
|
20971
|
+
},
|
|
20972
|
+
closeFactor: 1,
|
|
20973
|
+
collateralActive: false,
|
|
20974
|
+
borrowingEnabled: !matured,
|
|
20975
|
+
depositsEnabled: !matured,
|
|
20976
|
+
hasStable: false,
|
|
20977
|
+
// Midnight borrowing is fixed-term (carried via `terms` + `maturity` on
|
|
20978
|
+
// params.market), but it IS borrowable — do NOT mark variable borrow
|
|
20979
|
+
// disabled, or borrowable-only filters would hide the market.
|
|
20980
|
+
variableBorrowDisabled: false,
|
|
20981
|
+
isActive: true,
|
|
20982
|
+
isFrozen: false
|
|
20983
|
+
};
|
|
20984
|
+
config.collateralParams.forEach((c) => {
|
|
20985
|
+
const collAddr = c.token.toLowerCase();
|
|
20986
|
+
const ltv = parseLtv(c.lltv);
|
|
20987
|
+
const liquidationPenalty = liquidationPenaltyFromLltv(ltv);
|
|
20988
|
+
const collUid = createMarketUid(chainId, m, collAddr);
|
|
20989
|
+
entry.data[collUid] = {
|
|
20990
|
+
marketUid: collUid,
|
|
20991
|
+
name: "Collateral " + (tokens[collAddr]?.symbol ?? ""),
|
|
20992
|
+
poolId: collAddr,
|
|
20993
|
+
underlying: collAddr,
|
|
20994
|
+
asset: currencyFor(collAddr, c.decimals, tokens),
|
|
20995
|
+
totalDeposits: 0,
|
|
20996
|
+
totalDebtStable: 0,
|
|
20997
|
+
totalDebt: 0,
|
|
20998
|
+
totalLiquidity: 0,
|
|
20999
|
+
borrowLiquidity: 0,
|
|
21000
|
+
totalLiquidityUSD: 0,
|
|
21001
|
+
borrowLiquidityUSD: 0,
|
|
21002
|
+
totalDepositsUSD: 0,
|
|
21003
|
+
totalDebtStableUSD: 0,
|
|
21004
|
+
totalDebtUSD: 0,
|
|
21005
|
+
utilization: 0,
|
|
21006
|
+
depositRate: 0,
|
|
21007
|
+
variableBorrowRate: 0,
|
|
21008
|
+
stableBorrowRate: 0,
|
|
21009
|
+
intrinsicYield: 0,
|
|
21010
|
+
rewards: void 0,
|
|
21011
|
+
decimals: c.decimals,
|
|
21012
|
+
config: {
|
|
21013
|
+
0: {
|
|
21014
|
+
category: 0,
|
|
21015
|
+
borrowCollateralFactor: ltv,
|
|
21016
|
+
collateralFactor: ltv,
|
|
21017
|
+
borrowFactor: 1,
|
|
21018
|
+
liquidationPenalty,
|
|
21019
|
+
closeFactor: 1,
|
|
21020
|
+
collateralDisabled: false,
|
|
21021
|
+
debtDisabled: true
|
|
21022
|
+
}
|
|
21023
|
+
},
|
|
21024
|
+
closeFactor: 1,
|
|
21025
|
+
collateralActive: true,
|
|
21026
|
+
borrowingEnabled: false,
|
|
21027
|
+
depositsEnabled: !matured,
|
|
21028
|
+
hasStable: false,
|
|
21029
|
+
isActive: true,
|
|
21030
|
+
isFrozen: false
|
|
21031
|
+
};
|
|
21032
|
+
});
|
|
21033
|
+
const primaryCollateral = config.collateralParams[0];
|
|
21034
|
+
entry.params = {
|
|
21035
|
+
market: {
|
|
21036
|
+
lender: m,
|
|
21037
|
+
name: config.name,
|
|
21038
|
+
loanDecimals: config.loanDecimals,
|
|
21039
|
+
collateralDecimals: primaryCollateral?.decimals,
|
|
21040
|
+
id: config.marketId,
|
|
21041
|
+
lltv: primaryCollateral?.lltv ?? "0",
|
|
21042
|
+
oracle: primaryCollateral?.oracle ?? zeroAddress,
|
|
21043
|
+
irm: zeroAddress,
|
|
21044
|
+
collateralAddress: primaryCollateral?.token ?? zeroAddress,
|
|
21045
|
+
loanAddress: loanAddr,
|
|
21046
|
+
// Fixed-term rate card (single maturity); undefined when no live rate.
|
|
21047
|
+
terms,
|
|
21048
|
+
// Midnight-specific extras (consumed by calldata / worker-api resolvers)
|
|
21049
|
+
maturity: config.maturity,
|
|
21050
|
+
rcfThreshold: config.rcfThreshold,
|
|
21051
|
+
enterGate: config.enterGate,
|
|
21052
|
+
liquidatorGate: config.liquidatorGate,
|
|
21053
|
+
collateralParams: config.collateralParams
|
|
21054
|
+
}
|
|
21055
|
+
};
|
|
21056
|
+
entry.chainId = chainId;
|
|
21057
|
+
out[m] = entry;
|
|
21058
|
+
}
|
|
21059
|
+
return out;
|
|
21060
|
+
}
|
|
20754
21061
|
|
|
20755
21062
|
// src/lending/public-data/silo-v2/fetchPublic.ts
|
|
20756
21063
|
var BASE_URL2 = "https://api-v3.silo.finance";
|
|
@@ -21348,16 +21655,25 @@ function convertDolomiteSubgraphMarkets(raw, chainId, prices, additionalYields,
|
|
|
21348
21655
|
}
|
|
21349
21656
|
return { data: result, chainId };
|
|
21350
21657
|
}
|
|
21351
|
-
var
|
|
21658
|
+
var warn2 = (...args) => {
|
|
21352
21659
|
};
|
|
21353
21660
|
async function getLenderDataFromApi(lender, chainId, prices, additionalYields, includeUnlisted = false) {
|
|
21354
21661
|
if (isMorphoType(lender))
|
|
21355
21662
|
return await fetchMorphoMarkets(chainId, includeUnlisted);
|
|
21663
|
+
if (isMidnight(lender)) return await fetchMidnightMarkets(chainId);
|
|
21356
21664
|
return {};
|
|
21357
21665
|
}
|
|
21358
21666
|
function convertLenderDataFromApi(lender, chainId, data, prices, additionalYields, list = {}) {
|
|
21359
21667
|
if (isMorphoType(lender))
|
|
21360
21668
|
return convertMarketsToMorphoResponse(data, chainId, additionalYields, list);
|
|
21669
|
+
if (isMidnight(lender))
|
|
21670
|
+
return convertMidnightMarketsToResponse(
|
|
21671
|
+
data,
|
|
21672
|
+
chainId,
|
|
21673
|
+
prices,
|
|
21674
|
+
additionalYields,
|
|
21675
|
+
list
|
|
21676
|
+
);
|
|
21361
21677
|
return {};
|
|
21362
21678
|
}
|
|
21363
21679
|
var getLenderPublicDataViaApi = async (chainId, lenders, prices, additionalYields, tokenList = async () => {
|
|
@@ -21398,7 +21714,7 @@ var getLenderPublicDataViaApi = async (chainId, lenders, prices, additionalYield
|
|
|
21398
21714
|
const listResult = settled[0];
|
|
21399
21715
|
const list = listResult.status === "fulfilled" ? listResult.value : {};
|
|
21400
21716
|
if (listResult.status === "rejected") {
|
|
21401
|
-
|
|
21717
|
+
warn2(
|
|
21402
21718
|
`[lending] tokenList fetch failed on chain ${chainId}:`,
|
|
21403
21719
|
listResult.reason
|
|
21404
21720
|
);
|
|
@@ -21420,13 +21736,13 @@ var getLenderPublicDataViaApi = async (chainId, lenders, prices, additionalYield
|
|
|
21420
21736
|
if (converted[lk]) lenderData[lk] = converted[lk];
|
|
21421
21737
|
}
|
|
21422
21738
|
} catch (e) {
|
|
21423
|
-
|
|
21739
|
+
warn2(
|
|
21424
21740
|
`[lending] Silo v2 API convert failed on chain ${chainId}:`,
|
|
21425
21741
|
e?.message ?? e
|
|
21426
21742
|
);
|
|
21427
21743
|
}
|
|
21428
21744
|
} else {
|
|
21429
|
-
|
|
21745
|
+
warn2(
|
|
21430
21746
|
`[lending] Silo v2 API fetch failed on chain ${chainId}:`,
|
|
21431
21747
|
siloV2Result.reason?.message ?? siloV2Result.reason
|
|
21432
21748
|
);
|
|
@@ -21448,13 +21764,13 @@ var getLenderPublicDataViaApi = async (chainId, lenders, prices, additionalYield
|
|
|
21448
21764
|
if (converted[lk]) lenderData[lk] = converted[lk];
|
|
21449
21765
|
}
|
|
21450
21766
|
} catch (e) {
|
|
21451
|
-
|
|
21767
|
+
warn2(
|
|
21452
21768
|
`[lending] Silo v3 API convert failed on chain ${chainId}:`,
|
|
21453
21769
|
e?.message ?? e
|
|
21454
21770
|
);
|
|
21455
21771
|
}
|
|
21456
21772
|
} else {
|
|
21457
|
-
|
|
21773
|
+
warn2(
|
|
21458
21774
|
`[lending] Silo v3 API fetch failed on chain ${chainId}:`,
|
|
21459
21775
|
siloV3Result.reason?.message ?? siloV3Result.reason
|
|
21460
21776
|
);
|
|
@@ -21464,7 +21780,7 @@ var getLenderPublicDataViaApi = async (chainId, lenders, prices, additionalYield
|
|
|
21464
21780
|
try {
|
|
21465
21781
|
const result = settled[i + 3];
|
|
21466
21782
|
if (result.status === "rejected") {
|
|
21467
|
-
|
|
21783
|
+
warn2(
|
|
21468
21784
|
`[lending] API fetch failed for ${otherLenders[i]} on chain ${chainId}:`,
|
|
21469
21785
|
result.reason?.message ?? result.reason
|
|
21470
21786
|
);
|
|
@@ -21508,13 +21824,13 @@ var getLenderPublicDataViaApi = async (chainId, lenders, prices, additionalYield
|
|
|
21508
21824
|
);
|
|
21509
21825
|
for (const lk of dolomiteLenders) lenderData[lk] = converted;
|
|
21510
21826
|
} catch (e) {
|
|
21511
|
-
|
|
21827
|
+
warn2(
|
|
21512
21828
|
`[lending] Dolomite subgraph convert failed on chain ${chainId}:`,
|
|
21513
21829
|
e?.message ?? e
|
|
21514
21830
|
);
|
|
21515
21831
|
}
|
|
21516
21832
|
} else if (dolomiteResult.status === "rejected") {
|
|
21517
|
-
|
|
21833
|
+
warn2(
|
|
21518
21834
|
`[lending] Dolomite subgraph fetch failed on chain ${chainId}:`,
|
|
21519
21835
|
dolomiteResult.reason?.message ?? dolomiteResult.reason
|
|
21520
21836
|
);
|
|
@@ -21522,7 +21838,7 @@ var getLenderPublicDataViaApi = async (chainId, lenders, prices, additionalYield
|
|
|
21522
21838
|
}
|
|
21523
21839
|
return lenderData;
|
|
21524
21840
|
};
|
|
21525
|
-
var
|
|
21841
|
+
var warn3 = (...args) => {
|
|
21526
21842
|
};
|
|
21527
21843
|
function lenderApiOnly(lender, chainId) {
|
|
21528
21844
|
if (lender === Lender.MORPHO_BLUE) {
|
|
@@ -21541,6 +21857,7 @@ function lenderApiOnly(lender, chainId) {
|
|
|
21541
21857
|
if (chainId === "4114") return false;
|
|
21542
21858
|
return true;
|
|
21543
21859
|
}
|
|
21860
|
+
if (isMidnight(lender)) return true;
|
|
21544
21861
|
return false;
|
|
21545
21862
|
}
|
|
21546
21863
|
function lenderApiWithOnChainFallback(lender, chainId) {
|
|
@@ -21568,7 +21885,7 @@ var getLenderPublicDataAll = async (chainId, lenders, prices, additionalYields,
|
|
|
21568
21885
|
includeUnlistedMorphoMarkets
|
|
21569
21886
|
);
|
|
21570
21887
|
} catch (e) {
|
|
21571
|
-
|
|
21888
|
+
warn3(
|
|
21572
21889
|
`[lending] API fetch failed for chain ${chainId}:`,
|
|
21573
21890
|
e?.message ?? e
|
|
21574
21891
|
);
|
|
@@ -21591,7 +21908,7 @@ var getLenderPublicDataAll = async (chainId, lenders, prices, additionalYields,
|
|
|
21591
21908
|
tokenList
|
|
21592
21909
|
);
|
|
21593
21910
|
} catch (e) {
|
|
21594
|
-
|
|
21911
|
+
warn3(
|
|
21595
21912
|
`[lending] on-chain fetch failed for chain ${chainId}:`,
|
|
21596
21913
|
e?.message ?? e
|
|
21597
21914
|
);
|
|
@@ -22231,6 +22548,28 @@ var buildDolomiteUserCall = async (chainId, _lender, account, accountNumbers) =>
|
|
|
22231
22548
|
params: [{ owner: account, number }]
|
|
22232
22549
|
}));
|
|
22233
22550
|
};
|
|
22551
|
+
var midnightMarketCallCount = (collateralCount) => 1 + collateralCount;
|
|
22552
|
+
var buildMidnightUserCall = (chainId, _lender, account) => {
|
|
22553
|
+
const midnight = midnightConfig()?.[chainId]?.midnight;
|
|
22554
|
+
const markets = midnightMarketsByChain(chainId);
|
|
22555
|
+
if (!midnight || markets.length === 0) return [];
|
|
22556
|
+
const calls = [];
|
|
22557
|
+
for (const market of markets) {
|
|
22558
|
+
calls.push({
|
|
22559
|
+
address: midnight,
|
|
22560
|
+
name: "position",
|
|
22561
|
+
params: [market.marketId, account]
|
|
22562
|
+
});
|
|
22563
|
+
for (let index = 0; index < market.collateralParams.length; index++) {
|
|
22564
|
+
calls.push({
|
|
22565
|
+
address: midnight,
|
|
22566
|
+
name: "collateral",
|
|
22567
|
+
params: [market.marketId, account, BigInt(index)]
|
|
22568
|
+
});
|
|
22569
|
+
}
|
|
22570
|
+
}
|
|
22571
|
+
return calls;
|
|
22572
|
+
};
|
|
22234
22573
|
|
|
22235
22574
|
// src/lending/user-data/fetch-balances/prepare.ts
|
|
22236
22575
|
async function buildUserCall(chainId, lender, account, params, getClient) {
|
|
@@ -22246,6 +22585,7 @@ async function buildUserCall(chainId, lender, account, params, getClient) {
|
|
|
22246
22585
|
params,
|
|
22247
22586
|
getClient
|
|
22248
22587
|
);
|
|
22588
|
+
if (isMidnight(lender)) return buildMidnightUserCall(chainId, lender, account);
|
|
22249
22589
|
if (isCompoundV3Type(lender))
|
|
22250
22590
|
return buildCompoundV3UserCall(chainId, lender, account);
|
|
22251
22591
|
if (isEulerType(lender))
|
|
@@ -24474,6 +24814,119 @@ function normalizeUnderlying3(token) {
|
|
|
24474
24814
|
const lower = token.toLowerCase();
|
|
24475
24815
|
return Object.values(WETH_BY_CHAIN).includes(lower) ? zeroAddress : lower;
|
|
24476
24816
|
}
|
|
24817
|
+
var MIDNIGHT_UNIT_DECIMALS = 18;
|
|
24818
|
+
function toBigInt10(v) {
|
|
24819
|
+
if (v === void 0 || v === null || v === "0x") return 0n;
|
|
24820
|
+
if (typeof v === "bigint") return v;
|
|
24821
|
+
try {
|
|
24822
|
+
return BigInt(v);
|
|
24823
|
+
} catch {
|
|
24824
|
+
return 0n;
|
|
24825
|
+
}
|
|
24826
|
+
}
|
|
24827
|
+
function readDebtUnits(positionResult) {
|
|
24828
|
+
if (Array.isArray(positionResult)) return toBigInt10(positionResult[4]);
|
|
24829
|
+
if (positionResult && typeof positionResult === "object")
|
|
24830
|
+
return toBigInt10(positionResult.debt);
|
|
24831
|
+
return 0n;
|
|
24832
|
+
}
|
|
24833
|
+
var getMidnightUserDataConverter = (_lender, chainId, account, meta) => {
|
|
24834
|
+
const markets = midnightMarketsByChain(chainId);
|
|
24835
|
+
const totalCalls = markets.reduce(
|
|
24836
|
+
(sum, m) => sum + midnightMarketCallCount(m.collateralParams.length),
|
|
24837
|
+
0
|
|
24838
|
+
);
|
|
24839
|
+
return [
|
|
24840
|
+
(data) => {
|
|
24841
|
+
if (!data || data.length < totalCalls) return void 0;
|
|
24842
|
+
const out = {};
|
|
24843
|
+
let cursor = 0;
|
|
24844
|
+
for (const market of markets) {
|
|
24845
|
+
const positionResult = data[cursor];
|
|
24846
|
+
const collateralResults = market.collateralParams.map(
|
|
24847
|
+
(_c, i) => data[cursor + 1 + i]
|
|
24848
|
+
);
|
|
24849
|
+
cursor += midnightMarketCallCount(market.collateralParams.length);
|
|
24850
|
+
const lenderKey = midnightLenderKey(market.marketId);
|
|
24851
|
+
const metaMap = meta?.[lenderKey];
|
|
24852
|
+
if (!metaMap) continue;
|
|
24853
|
+
const loanAddr = market.loanToken.toLowerCase();
|
|
24854
|
+
const loanUid = createMarketUid(chainId, lenderKey, loanAddr);
|
|
24855
|
+
const loanMeta = metaMap[loanUid];
|
|
24856
|
+
const loanDisplayPrice = loanMeta ? getDisplayPrice(loanMeta) : 0;
|
|
24857
|
+
const loanOraclePrice = loanMeta ? getOraclePrice(loanMeta) : 0;
|
|
24858
|
+
const loanPriceHist = loanMeta?.price?.priceUsd24h ?? loanDisplayPrice;
|
|
24859
|
+
const debtUnits = readDebtUnits(positionResult);
|
|
24860
|
+
const debtStr = parseRawAmount(debtUnits.toString(), MIDNIGHT_UNIT_DECIMALS);
|
|
24861
|
+
const debtNum = Number(debtStr);
|
|
24862
|
+
const posData = {};
|
|
24863
|
+
let anyBalance = debtUnits > 0n;
|
|
24864
|
+
let depositsUSD24h = 0;
|
|
24865
|
+
posData[loanUid] = {
|
|
24866
|
+
marketUid: loanUid,
|
|
24867
|
+
underlying: loanAddr,
|
|
24868
|
+
deposits: "0",
|
|
24869
|
+
debt: debtStr,
|
|
24870
|
+
debtStable: "0",
|
|
24871
|
+
depositsUSD: 0,
|
|
24872
|
+
debtUSD: debtNum * loanDisplayPrice,
|
|
24873
|
+
debtStableUSD: 0,
|
|
24874
|
+
depositsUSDOracle: 0,
|
|
24875
|
+
debtUSDOracle: debtNum * loanOraclePrice,
|
|
24876
|
+
debtStableUSDOracle: 0,
|
|
24877
|
+
stableBorrowRate: "0",
|
|
24878
|
+
collateralEnabled: false,
|
|
24879
|
+
claimableRewards: 0
|
|
24880
|
+
};
|
|
24881
|
+
market.collateralParams.forEach((c, i) => {
|
|
24882
|
+
const collAmt = toBigInt10(collateralResults[i]);
|
|
24883
|
+
if (collAmt === 0n) return;
|
|
24884
|
+
anyBalance = true;
|
|
24885
|
+
const collAddr = c.token.toLowerCase();
|
|
24886
|
+
const collUid = createMarketUid(chainId, lenderKey, collAddr);
|
|
24887
|
+
const collMeta = metaMap[collUid];
|
|
24888
|
+
const collDec = collMeta?.asset?.decimals ?? c.decimals;
|
|
24889
|
+
const collDisplayPrice = collMeta ? getDisplayPrice(collMeta) : 0;
|
|
24890
|
+
const collOraclePrice = collMeta ? getOraclePrice(collMeta) : 0;
|
|
24891
|
+
const collPriceHist = collMeta?.price?.priceUsd24h ?? collDisplayPrice;
|
|
24892
|
+
const depositsStr = parseRawAmount(collAmt.toString(), collDec);
|
|
24893
|
+
const depositsNum = Number(depositsStr);
|
|
24894
|
+
depositsUSD24h += depositsNum * collPriceHist;
|
|
24895
|
+
posData[collUid] = {
|
|
24896
|
+
marketUid: collUid,
|
|
24897
|
+
underlying: collAddr,
|
|
24898
|
+
deposits: depositsStr,
|
|
24899
|
+
debt: "0",
|
|
24900
|
+
debtStable: "0",
|
|
24901
|
+
depositsUSD: depositsNum * collDisplayPrice,
|
|
24902
|
+
debtUSD: 0,
|
|
24903
|
+
debtStableUSD: 0,
|
|
24904
|
+
depositsUSDOracle: depositsNum * collOraclePrice,
|
|
24905
|
+
debtUSDOracle: 0,
|
|
24906
|
+
debtStableUSDOracle: 0,
|
|
24907
|
+
stableBorrowRate: "0",
|
|
24908
|
+
collateralEnabled: true,
|
|
24909
|
+
claimableRewards: 0
|
|
24910
|
+
};
|
|
24911
|
+
});
|
|
24912
|
+
if (!anyBalance) continue;
|
|
24913
|
+
const userData = createMultiAccountTypeUserState(
|
|
24914
|
+
{
|
|
24915
|
+
chainId,
|
|
24916
|
+
account,
|
|
24917
|
+
lendingPositions: { "0": posData },
|
|
24918
|
+
modes: { "0": 0 }
|
|
24919
|
+
},
|
|
24920
|
+
metaMap,
|
|
24921
|
+
{ "0": { totalDeposits24h: depositsUSD24h, totalDebt24h: debtNum * loanPriceHist } }
|
|
24922
|
+
);
|
|
24923
|
+
if (userData && userData.data.length > 0) out[lenderKey] = userData;
|
|
24924
|
+
}
|
|
24925
|
+
return Object.keys(out).length > 0 ? out : void 0;
|
|
24926
|
+
},
|
|
24927
|
+
totalCalls
|
|
24928
|
+
];
|
|
24929
|
+
};
|
|
24477
24930
|
|
|
24478
24931
|
// src/lending/user-data/fetch-balances/parse.ts
|
|
24479
24932
|
function getUserDataConverter(lender, chainId, account, params, meta) {
|
|
@@ -24495,6 +24948,8 @@ function getUserDataConverter(lender, chainId, account, params, meta) {
|
|
|
24495
24948
|
params,
|
|
24496
24949
|
meta
|
|
24497
24950
|
);
|
|
24951
|
+
if (isMidnight(lender))
|
|
24952
|
+
return getMidnightUserDataConverter(lender, chainId, account, meta);
|
|
24498
24953
|
if (isCompoundV3Type(lender))
|
|
24499
24954
|
return getCompoundV3UserDataConverter(
|
|
24500
24955
|
lender,
|
|
@@ -29249,6 +29704,7 @@ var getAbi2 = (lender) => {
|
|
|
29249
29704
|
if (isCompoundV3(lender))
|
|
29250
29705
|
return [...CometAbi, ...CometExtAbi, ...CometRewardsAbi];
|
|
29251
29706
|
if (isMorphoType(lender)) return [...MorphoBlueAbi, ...MorphoLensAbi];
|
|
29707
|
+
if (isMidnight(lender)) return [...MidnightAbi];
|
|
29252
29708
|
if (isInit(lender)) return InitLensAbi;
|
|
29253
29709
|
if (isEulerType(lender)) return accountLensAbi;
|
|
29254
29710
|
if (isCompoundV2Type(lender))
|
|
@@ -32436,8 +32892,8 @@ var TIMEOUT_MS = 8e3;
|
|
|
32436
32892
|
var slisBnbFetcher = {
|
|
32437
32893
|
label: "SLISBNB",
|
|
32438
32894
|
fetch: async () => {
|
|
32439
|
-
const
|
|
32440
|
-
const url = `${HISTORY_URL}?name=slisBNBRate&cycle=1&startTime=${
|
|
32895
|
+
const nowSec2 = Math.floor(Date.now() / 1e3);
|
|
32896
|
+
const url = `${HISTORY_URL}?name=slisBNBRate&cycle=1&startTime=${nowSec2 - LOOKBACK_SECONDS}&endTime=${nowSec2}`;
|
|
32441
32897
|
const controller = new AbortController();
|
|
32442
32898
|
const timer = setTimeout(() => controller.abort(), TIMEOUT_MS);
|
|
32443
32899
|
try {
|
|
@@ -32839,6 +33295,67 @@ var hastraPrimeFetcher = {
|
|
|
32839
33295
|
return { [HASTRA_PRIME_KEY]: Math.max(0, apr) };
|
|
32840
33296
|
}
|
|
32841
33297
|
};
|
|
33298
|
+
var CHAIN_ID4 = "4663";
|
|
33299
|
+
var VAULT2 = "0xde770c84fe66e063336b31737cfe9790f18c4087";
|
|
33300
|
+
var SPARK_SAVINGS_USDG_KEY = "SPUSDG";
|
|
33301
|
+
var RAY3 = 10n ** 27n;
|
|
33302
|
+
var YEAR_SECONDS6 = 365 * 24 * 60 * 60;
|
|
33303
|
+
var WINDOW_BLOCKS3 = 400000n;
|
|
33304
|
+
var MAX_RPC_TRIES3 = 3;
|
|
33305
|
+
var CHI_ABI = [
|
|
33306
|
+
{
|
|
33307
|
+
name: "chi",
|
|
33308
|
+
type: "function",
|
|
33309
|
+
stateMutability: "view",
|
|
33310
|
+
inputs: [],
|
|
33311
|
+
outputs: [{ type: "uint256" }]
|
|
33312
|
+
}
|
|
33313
|
+
];
|
|
33314
|
+
var readChiAt = (client, blockNumber) => client.readContract({
|
|
33315
|
+
address: VAULT2,
|
|
33316
|
+
abi: CHI_ABI,
|
|
33317
|
+
functionName: "chi",
|
|
33318
|
+
...blockNumber !== void 0 ? { blockNumber } : {}
|
|
33319
|
+
});
|
|
33320
|
+
var computeApr4 = async () => {
|
|
33321
|
+
let lastErr;
|
|
33322
|
+
for (let rpcId = 0; rpcId < MAX_RPC_TRIES3; rpcId++) {
|
|
33323
|
+
try {
|
|
33324
|
+
const client = getEvmClient(CHAIN_ID4, rpcId);
|
|
33325
|
+
const head = await client.getBlockNumber();
|
|
33326
|
+
const pastBlock = head > WINDOW_BLOCKS3 ? head - WINDOW_BLOCKS3 : 0n;
|
|
33327
|
+
const [chiNow, chiThen, headBlock, thenBlock] = await Promise.all([
|
|
33328
|
+
readChiAt(client),
|
|
33329
|
+
readChiAt(client, pastBlock),
|
|
33330
|
+
client.getBlock({ blockNumber: head }),
|
|
33331
|
+
client.getBlock({ blockNumber: pastBlock })
|
|
33332
|
+
]);
|
|
33333
|
+
if (chiNow < RAY3 || chiThen < RAY3 || chiNow < chiThen) {
|
|
33334
|
+
throw new Error(
|
|
33335
|
+
`non-archival or invalid chi (now=${chiNow}, then=${chiThen})`
|
|
33336
|
+
);
|
|
33337
|
+
}
|
|
33338
|
+
const elapsed = Number(headBlock.timestamp - thenBlock.timestamp);
|
|
33339
|
+
if (elapsed <= 0) throw new Error("non-positive elapsed window");
|
|
33340
|
+
const growth = Number(chiNow - chiThen) / Number(chiThen);
|
|
33341
|
+
const apr = growth * (YEAR_SECONDS6 / elapsed) * 100;
|
|
33342
|
+
if (!Number.isFinite(apr) || apr < 0) throw new Error(`bad apr ${apr}`);
|
|
33343
|
+
return apr;
|
|
33344
|
+
} catch (e) {
|
|
33345
|
+
lastErr = e;
|
|
33346
|
+
}
|
|
33347
|
+
}
|
|
33348
|
+
throw new Error(
|
|
33349
|
+
`spUSDG APR: no Robinhood RPC returned valid historical chi (${String(lastErr)})`
|
|
33350
|
+
);
|
|
33351
|
+
};
|
|
33352
|
+
var sparkSavingsUsdgFetcher = {
|
|
33353
|
+
label: "SPARK_SAVINGS_USDG",
|
|
33354
|
+
fetch: async () => {
|
|
33355
|
+
const apr = await computeApr4();
|
|
33356
|
+
return { [SPARK_SAVINGS_USDG_KEY]: apr };
|
|
33357
|
+
}
|
|
33358
|
+
};
|
|
32842
33359
|
|
|
32843
33360
|
// src/yields/intrinsic/fetchers/lombard.ts
|
|
32844
33361
|
var LBTC_APY_URL = "https://mainnet.prod.lombard.finance/api/v1/analytics/estimated-apy";
|
|
@@ -33035,6 +33552,7 @@ async function fetchIntrinsicYields() {
|
|
|
33035
33552
|
psxdcFetcher,
|
|
33036
33553
|
coreLstFetcher,
|
|
33037
33554
|
hastraPrimeFetcher,
|
|
33555
|
+
sparkSavingsUsdgFetcher,
|
|
33038
33556
|
lombardLbtcFetcher,
|
|
33039
33557
|
lombardLbtcvFetcher,
|
|
33040
33558
|
accountableFetcher,
|
|
@@ -38496,14 +39014,14 @@ var fetchEulerEarnVaults = async (chainId, prices = {}, tokenList = {}, multical
|
|
|
38496
39014
|
).catch(() => void 0);
|
|
38497
39015
|
return isNonEmpty(fromSubgraph) ? fromSubgraph : fromApi ?? {};
|
|
38498
39016
|
};
|
|
38499
|
-
var
|
|
39017
|
+
var CHAIN_ID5 = "1";
|
|
38500
39018
|
var SWBTC = "0x8db2350d78abc13f5673a411d4700bcf87864dde";
|
|
38501
39019
|
var ONE_E8 = 10n ** 8n;
|
|
38502
|
-
var
|
|
39020
|
+
var YEAR_SECONDS7 = 365 * 24 * 60 * 60;
|
|
38503
39021
|
var WINDOW_SECONDS4 = 7 * 24 * 60 * 60;
|
|
38504
39022
|
var BLOCK_TIME_SECONDS3 = 12;
|
|
38505
|
-
var
|
|
38506
|
-
var
|
|
39023
|
+
var WINDOW_BLOCKS4 = BigInt(Math.floor(WINDOW_SECONDS4 / BLOCK_TIME_SECONDS3));
|
|
39024
|
+
var MAX_RPC_TRIES4 = 5;
|
|
38507
39025
|
var CONVERT_TO_ASSETS_ABI3 = [
|
|
38508
39026
|
{
|
|
38509
39027
|
name: "convertToAssets",
|
|
@@ -38520,13 +39038,13 @@ var readRateAt3 = (client, blockNumber) => client.readContract({
|
|
|
38520
39038
|
args: [ONE_E8],
|
|
38521
39039
|
...blockNumber !== void 0 ? { blockNumber } : {}
|
|
38522
39040
|
});
|
|
38523
|
-
var
|
|
39041
|
+
var computeApr5 = async () => {
|
|
38524
39042
|
let lastErr;
|
|
38525
|
-
for (let rpcId = 0; rpcId <
|
|
39043
|
+
for (let rpcId = 0; rpcId < MAX_RPC_TRIES4; rpcId++) {
|
|
38526
39044
|
try {
|
|
38527
|
-
const client = getEvmClient(
|
|
39045
|
+
const client = getEvmClient(CHAIN_ID5, rpcId);
|
|
38528
39046
|
const head = await client.getBlockNumber();
|
|
38529
|
-
const pastBlock = head >
|
|
39047
|
+
const pastBlock = head > WINDOW_BLOCKS4 ? head - WINDOW_BLOCKS4 : 0n;
|
|
38530
39048
|
const [rateNow, rateThen, headBlock, thenBlock] = await Promise.all([
|
|
38531
39049
|
readRateAt3(client),
|
|
38532
39050
|
readRateAt3(client, pastBlock),
|
|
@@ -38541,7 +39059,7 @@ var computeApr4 = async () => {
|
|
|
38541
39059
|
const elapsed = Number(headBlock.timestamp - thenBlock.timestamp);
|
|
38542
39060
|
if (elapsed <= 0) throw new Error(`bad elapsed ${elapsed}`);
|
|
38543
39061
|
const growth = Number(rateNow) / Number(rateThen) - 1;
|
|
38544
|
-
const apr = growth * (
|
|
39062
|
+
const apr = growth * (YEAR_SECONDS7 / elapsed) * 100;
|
|
38545
39063
|
if (!Number.isFinite(apr) || apr < 0) throw new Error(`bad apr ${apr}`);
|
|
38546
39064
|
return apr;
|
|
38547
39065
|
} catch (e) {
|
|
@@ -38556,20 +39074,20 @@ var swBtcFetcher = {
|
|
|
38556
39074
|
label: "SWBTC",
|
|
38557
39075
|
fetch: async () => {
|
|
38558
39076
|
try {
|
|
38559
|
-
return { SWBTC: await
|
|
39077
|
+
return { SWBTC: await computeApr5() };
|
|
38560
39078
|
} catch {
|
|
38561
39079
|
return { SWBTC: 0 };
|
|
38562
39080
|
}
|
|
38563
39081
|
}
|
|
38564
39082
|
};
|
|
38565
|
-
var
|
|
39083
|
+
var CHAIN_ID6 = "42220";
|
|
38566
39084
|
var MANAGER = "0x0239b96d10a434a56cc9e09383077a0490cf9398";
|
|
38567
39085
|
var ONE_E184 = 10n ** 18n;
|
|
38568
|
-
var
|
|
39086
|
+
var YEAR_SECONDS8 = 365 * 24 * 60 * 60;
|
|
38569
39087
|
var WINDOW_SECONDS5 = 7 * 24 * 60 * 60;
|
|
38570
39088
|
var BLOCK_TIME_SECONDS4 = 1;
|
|
38571
|
-
var
|
|
38572
|
-
var
|
|
39089
|
+
var WINDOW_BLOCKS5 = BigInt(Math.floor(WINDOW_SECONDS5 / BLOCK_TIME_SECONDS4));
|
|
39090
|
+
var MAX_RPC_TRIES5 = 5;
|
|
38573
39091
|
var TO_CELO_ABI = [
|
|
38574
39092
|
{
|
|
38575
39093
|
name: "toCelo",
|
|
@@ -38586,13 +39104,13 @@ var readRateAt4 = (client, blockNumber) => client.readContract({
|
|
|
38586
39104
|
args: [ONE_E184],
|
|
38587
39105
|
...blockNumber !== void 0 ? { blockNumber } : {}
|
|
38588
39106
|
});
|
|
38589
|
-
var
|
|
39107
|
+
var computeApr6 = async () => {
|
|
38590
39108
|
let lastErr;
|
|
38591
|
-
for (let rpcId = 0; rpcId <
|
|
39109
|
+
for (let rpcId = 0; rpcId < MAX_RPC_TRIES5; rpcId++) {
|
|
38592
39110
|
try {
|
|
38593
|
-
const client = getEvmClient(
|
|
39111
|
+
const client = getEvmClient(CHAIN_ID6, rpcId);
|
|
38594
39112
|
const head = await client.getBlockNumber();
|
|
38595
|
-
const pastBlock = head >
|
|
39113
|
+
const pastBlock = head > WINDOW_BLOCKS5 ? head - WINDOW_BLOCKS5 : 0n;
|
|
38596
39114
|
const [rateNow, rateThen, headBlock, thenBlock] = await Promise.all([
|
|
38597
39115
|
readRateAt4(client),
|
|
38598
39116
|
readRateAt4(client, pastBlock),
|
|
@@ -38607,7 +39125,7 @@ var computeApr5 = async () => {
|
|
|
38607
39125
|
const elapsed = Number(headBlock.timestamp - thenBlock.timestamp);
|
|
38608
39126
|
if (elapsed <= 0) throw new Error("non-positive elapsed window");
|
|
38609
39127
|
const growth = Number(rateNow - rateThen) / Number(rateThen);
|
|
38610
|
-
const apr = growth * (
|
|
39128
|
+
const apr = growth * (YEAR_SECONDS8 / elapsed) * 100;
|
|
38611
39129
|
if (!Number.isFinite(apr) || apr < 0) throw new Error(`bad apr ${apr}`);
|
|
38612
39130
|
return apr;
|
|
38613
39131
|
} catch (e) {
|
|
@@ -38621,18 +39139,18 @@ var computeApr5 = async () => {
|
|
|
38621
39139
|
var stceloFetcher = {
|
|
38622
39140
|
label: "STCELO",
|
|
38623
39141
|
fetch: async () => {
|
|
38624
|
-
const apr = await
|
|
39142
|
+
const apr = await computeApr6();
|
|
38625
39143
|
return { STCELO: apr };
|
|
38626
39144
|
}
|
|
38627
39145
|
};
|
|
38628
|
-
var
|
|
39146
|
+
var CHAIN_ID7 = "1284";
|
|
38629
39147
|
var STDOT = "0xbc7e02c4178a7df7d3e564323a5c359dc96c4db4";
|
|
38630
39148
|
var ONE_E185 = 10n ** 18n;
|
|
38631
|
-
var
|
|
39149
|
+
var YEAR_SECONDS9 = 365 * 24 * 60 * 60;
|
|
38632
39150
|
var WINDOW_SECONDS6 = 180 * 24 * 60 * 60;
|
|
38633
39151
|
var BLOCK_TIME_SECONDS5 = 6;
|
|
38634
|
-
var
|
|
38635
|
-
var
|
|
39152
|
+
var WINDOW_BLOCKS6 = BigInt(Math.floor(WINDOW_SECONDS6 / BLOCK_TIME_SECONDS5));
|
|
39153
|
+
var MAX_RPC_TRIES6 = 5;
|
|
38636
39154
|
var POOLED_BY_SHARES_ABI = [
|
|
38637
39155
|
{
|
|
38638
39156
|
name: "getPooledTokenByShares",
|
|
@@ -38649,13 +39167,13 @@ var readRateAt5 = (client, blockNumber) => client.readContract({
|
|
|
38649
39167
|
args: [ONE_E185],
|
|
38650
39168
|
...blockNumber !== void 0 ? { blockNumber } : {}
|
|
38651
39169
|
});
|
|
38652
|
-
var
|
|
39170
|
+
var computeApr7 = async () => {
|
|
38653
39171
|
let lastErr;
|
|
38654
|
-
for (let rpcId = 0; rpcId <
|
|
39172
|
+
for (let rpcId = 0; rpcId < MAX_RPC_TRIES6; rpcId++) {
|
|
38655
39173
|
try {
|
|
38656
|
-
const client = getEvmClient(
|
|
39174
|
+
const client = getEvmClient(CHAIN_ID7, rpcId);
|
|
38657
39175
|
const head = await client.getBlockNumber();
|
|
38658
|
-
const pastBlock = head >
|
|
39176
|
+
const pastBlock = head > WINDOW_BLOCKS6 ? head - WINDOW_BLOCKS6 : 0n;
|
|
38659
39177
|
const [rateNow, rateThen, headBlock, thenBlock] = await Promise.all([
|
|
38660
39178
|
readRateAt5(client),
|
|
38661
39179
|
readRateAt5(client, pastBlock),
|
|
@@ -38670,7 +39188,7 @@ var computeApr6 = async () => {
|
|
|
38670
39188
|
const elapsed = Number(headBlock.timestamp - thenBlock.timestamp);
|
|
38671
39189
|
if (elapsed <= 0) throw new Error("non-positive elapsed window");
|
|
38672
39190
|
const growth = Number(rateNow - rateThen) / Number(rateThen);
|
|
38673
|
-
const apr = growth * (
|
|
39191
|
+
const apr = growth * (YEAR_SECONDS9 / elapsed) * 100;
|
|
38674
39192
|
if (!Number.isFinite(apr) || apr < 0) throw new Error(`bad apr ${apr}`);
|
|
38675
39193
|
return apr;
|
|
38676
39194
|
} catch (e) {
|
|
@@ -38684,7 +39202,7 @@ var computeApr6 = async () => {
|
|
|
38684
39202
|
var stDotFetcher = {
|
|
38685
39203
|
label: "STDOT",
|
|
38686
39204
|
fetch: async () => {
|
|
38687
|
-
const apr = await
|
|
39205
|
+
const apr = await computeApr7();
|
|
38688
39206
|
return { STDOT: apr };
|
|
38689
39207
|
}
|
|
38690
39208
|
};
|
|
@@ -40112,7 +40630,7 @@ var Multicall3BalanceAbi = [
|
|
|
40112
40630
|
outputs: [{ type: "uint256" }]
|
|
40113
40631
|
}
|
|
40114
40632
|
];
|
|
40115
|
-
var
|
|
40633
|
+
var toBigInt11 = (v) => {
|
|
40116
40634
|
if (v === void 0 || v === null) return void 0;
|
|
40117
40635
|
if (typeof v === "bigint") return v;
|
|
40118
40636
|
if (typeof v === "number") return BigInt(v);
|
|
@@ -40136,12 +40654,12 @@ var readerBeetsStS = (entry) => ({
|
|
|
40136
40654
|
],
|
|
40137
40655
|
abis: [TotalSupplyAbi, BeetsStSAbi, BeetsStSAbi],
|
|
40138
40656
|
parse: ([supply, rate, pool]) => {
|
|
40139
|
-
const totalSupply =
|
|
40140
|
-
const exchangeRate =
|
|
40657
|
+
const totalSupply = toBigInt11(supply);
|
|
40658
|
+
const exchangeRate = toBigInt11(rate);
|
|
40141
40659
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
40142
40660
|
return void 0;
|
|
40143
40661
|
}
|
|
40144
|
-
const liquidity =
|
|
40662
|
+
const liquidity = toBigInt11(pool);
|
|
40145
40663
|
return {
|
|
40146
40664
|
totalAssets: totalSupply * exchangeRate / ONE_E186,
|
|
40147
40665
|
totalSupply,
|
|
@@ -40182,12 +40700,12 @@ var readerBenqiSavax = (entry) => ({
|
|
|
40182
40700
|
],
|
|
40183
40701
|
abis: [TotalSupplyAbi, BenqiSavaxAbi, BenqiSavaxAbi],
|
|
40184
40702
|
parse: ([supply, rate, totalPooled]) => {
|
|
40185
|
-
const totalSupply =
|
|
40186
|
-
const exchangeRate =
|
|
40703
|
+
const totalSupply = toBigInt11(supply);
|
|
40704
|
+
const exchangeRate = toBigInt11(rate);
|
|
40187
40705
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
40188
40706
|
return void 0;
|
|
40189
40707
|
}
|
|
40190
|
-
const totalAssets =
|
|
40708
|
+
const totalAssets = toBigInt11(totalPooled) ?? totalSupply * exchangeRate / ONE_E186;
|
|
40191
40709
|
return {
|
|
40192
40710
|
totalAssets,
|
|
40193
40711
|
totalSupply,
|
|
@@ -40201,7 +40719,7 @@ var readerBgtWrapper1to1 = (entry) => ({
|
|
|
40201
40719
|
calls: [{ address: entry.address, name: "totalSupply", params: [] }],
|
|
40202
40720
|
abis: [TotalSupplyAbi],
|
|
40203
40721
|
parse: ([supply]) => {
|
|
40204
|
-
const totalSupply =
|
|
40722
|
+
const totalSupply = toBigInt11(supply);
|
|
40205
40723
|
if (totalSupply === void 0) return void 0;
|
|
40206
40724
|
return {
|
|
40207
40725
|
totalAssets: totalSupply,
|
|
@@ -40230,8 +40748,8 @@ var readerDineroBeraEth = (entry) => ({
|
|
|
40230
40748
|
],
|
|
40231
40749
|
abis: [TotalSupplyAbi, DineroBeraEthAbi],
|
|
40232
40750
|
parse: ([supply, rate]) => {
|
|
40233
|
-
const totalSupply =
|
|
40234
|
-
const exchangeRate =
|
|
40751
|
+
const totalSupply = toBigInt11(supply);
|
|
40752
|
+
const exchangeRate = toBigInt11(rate);
|
|
40235
40753
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
40236
40754
|
return void 0;
|
|
40237
40755
|
}
|
|
@@ -40252,9 +40770,9 @@ var readerErc4626 = (entry) => ({
|
|
|
40252
40770
|
],
|
|
40253
40771
|
abis: [Erc4626ReadAbi, TotalSupplyAbi, Erc4626ReadAbi],
|
|
40254
40772
|
parse: ([assets, supply, rate]) => {
|
|
40255
|
-
const totalAssets =
|
|
40256
|
-
const totalSupply =
|
|
40257
|
-
const exchangeRate =
|
|
40773
|
+
const totalAssets = toBigInt11(assets);
|
|
40774
|
+
const totalSupply = toBigInt11(supply);
|
|
40775
|
+
const exchangeRate = toBigInt11(rate);
|
|
40258
40776
|
if (totalAssets === void 0 || totalSupply === void 0 || exchangeRate === void 0) {
|
|
40259
40777
|
return void 0;
|
|
40260
40778
|
}
|
|
@@ -40269,9 +40787,9 @@ var readerErc4626PreviewRedeem = (entry) => ({
|
|
|
40269
40787
|
],
|
|
40270
40788
|
abis: [Erc4626PreviewRedeemAbi, TotalSupplyAbi, Erc4626PreviewRedeemAbi],
|
|
40271
40789
|
parse: ([assets, supply, rate]) => {
|
|
40272
|
-
const totalAssets =
|
|
40273
|
-
const totalSupply =
|
|
40274
|
-
const exchangeRate =
|
|
40790
|
+
const totalAssets = toBigInt11(assets);
|
|
40791
|
+
const totalSupply = toBigInt11(supply);
|
|
40792
|
+
const exchangeRate = toBigInt11(rate);
|
|
40275
40793
|
if (totalAssets === void 0 || totalSupply === void 0 || exchangeRate === void 0) {
|
|
40276
40794
|
return void 0;
|
|
40277
40795
|
}
|
|
@@ -40331,15 +40849,15 @@ var readerEtherFiWeEth = (entry) => {
|
|
|
40331
40849
|
calls,
|
|
40332
40850
|
abis,
|
|
40333
40851
|
parse: (slice) => {
|
|
40334
|
-
const totalSupply =
|
|
40335
|
-
const exchangeRate =
|
|
40852
|
+
const totalSupply = toBigInt11(slice[0]);
|
|
40853
|
+
const exchangeRate = toBigInt11(slice[1]);
|
|
40336
40854
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
40337
40855
|
return void 0;
|
|
40338
40856
|
}
|
|
40339
40857
|
let liquidity;
|
|
40340
40858
|
if (lp) {
|
|
40341
|
-
const lpBalance =
|
|
40342
|
-
const locked =
|
|
40859
|
+
const lpBalance = toBigInt11(slice[2]);
|
|
40860
|
+
const locked = toBigInt11(slice[3]);
|
|
40343
40861
|
if (lpBalance !== void 0 && locked !== void 0) {
|
|
40344
40862
|
liquidity = lpBalance > locked ? lpBalance - locked : 0n;
|
|
40345
40863
|
}
|
|
@@ -40373,7 +40891,7 @@ var readerHyperbeatBeHype = (entry) => {
|
|
|
40373
40891
|
calls: [{ address: entry.address, name: "totalSupply", params: [] }],
|
|
40374
40892
|
abis: [TotalSupplyAbi],
|
|
40375
40893
|
parse: ([supply]) => {
|
|
40376
|
-
const totalSupply =
|
|
40894
|
+
const totalSupply = toBigInt11(supply);
|
|
40377
40895
|
if (totalSupply === void 0) return void 0;
|
|
40378
40896
|
return {
|
|
40379
40897
|
totalAssets: totalSupply,
|
|
@@ -40390,8 +40908,8 @@ var readerHyperbeatBeHype = (entry) => {
|
|
|
40390
40908
|
],
|
|
40391
40909
|
abis: [TotalSupplyAbi, HyperbeatStakingCoreAbi],
|
|
40392
40910
|
parse: ([supply, rate]) => {
|
|
40393
|
-
const totalSupply =
|
|
40394
|
-
const exchangeRate =
|
|
40911
|
+
const totalSupply = toBigInt11(supply);
|
|
40912
|
+
const exchangeRate = toBigInt11(rate);
|
|
40395
40913
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
40396
40914
|
return void 0;
|
|
40397
40915
|
}
|
|
@@ -40423,7 +40941,7 @@ var readerKelpRsEth = (entry) => {
|
|
|
40423
40941
|
calls: [{ address: entry.address, name: "totalSupply", params: [] }],
|
|
40424
40942
|
abis: [TotalSupplyAbi],
|
|
40425
40943
|
parse: ([supply]) => {
|
|
40426
|
-
const totalSupply =
|
|
40944
|
+
const totalSupply = toBigInt11(supply);
|
|
40427
40945
|
if (totalSupply === void 0) return void 0;
|
|
40428
40946
|
return {
|
|
40429
40947
|
totalAssets: totalSupply,
|
|
@@ -40440,8 +40958,8 @@ var readerKelpRsEth = (entry) => {
|
|
|
40440
40958
|
],
|
|
40441
40959
|
abis: [TotalSupplyAbi, KelpLrtOracleAbi],
|
|
40442
40960
|
parse: ([supply, rate]) => {
|
|
40443
|
-
const totalSupply =
|
|
40444
|
-
const exchangeRate =
|
|
40961
|
+
const totalSupply = toBigInt11(supply);
|
|
40962
|
+
const exchangeRate = toBigInt11(rate);
|
|
40445
40963
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
40446
40964
|
return void 0;
|
|
40447
40965
|
}
|
|
@@ -40473,7 +40991,7 @@ var readerKinetiqKHype = (entry) => {
|
|
|
40473
40991
|
calls: [{ address: entry.address, name: "totalSupply", params: [] }],
|
|
40474
40992
|
abis: [TotalSupplyAbi],
|
|
40475
40993
|
parse: ([supply]) => {
|
|
40476
|
-
const totalSupply =
|
|
40994
|
+
const totalSupply = toBigInt11(supply);
|
|
40477
40995
|
if (totalSupply === void 0) return void 0;
|
|
40478
40996
|
return {
|
|
40479
40997
|
totalAssets: totalSupply,
|
|
@@ -40490,8 +41008,8 @@ var readerKinetiqKHype = (entry) => {
|
|
|
40490
41008
|
],
|
|
40491
41009
|
abis: [TotalSupplyAbi, KinetiqStakingAccountantAbi],
|
|
40492
41010
|
parse: ([supply, rate]) => {
|
|
40493
|
-
const totalSupply =
|
|
40494
|
-
const exchangeRate =
|
|
41011
|
+
const totalSupply = toBigInt11(supply);
|
|
41012
|
+
const exchangeRate = toBigInt11(rate);
|
|
40495
41013
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
40496
41014
|
return void 0;
|
|
40497
41015
|
}
|
|
@@ -40531,12 +41049,12 @@ var readerLairStKaia = (entry) => ({
|
|
|
40531
41049
|
],
|
|
40532
41050
|
abis: [TotalSupplyAbi, LairStKaiaAbi, LairStKaiaAbi],
|
|
40533
41051
|
parse: ([supply, rate, totalStaking]) => {
|
|
40534
|
-
const totalSupply =
|
|
40535
|
-
const exchangeRate =
|
|
41052
|
+
const totalSupply = toBigInt11(supply);
|
|
41053
|
+
const exchangeRate = toBigInt11(rate);
|
|
40536
41054
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
40537
41055
|
return void 0;
|
|
40538
41056
|
}
|
|
40539
|
-
const totalAssets =
|
|
41057
|
+
const totalAssets = toBigInt11(totalStaking) ?? totalSupply * exchangeRate / ONE_E186;
|
|
40540
41058
|
return {
|
|
40541
41059
|
totalAssets,
|
|
40542
41060
|
totalSupply,
|
|
@@ -40564,8 +41082,8 @@ var readerLidoWstEth = (entry) => ({
|
|
|
40564
41082
|
],
|
|
40565
41083
|
abis: [TotalSupplyAbi, LidoWstEthAbi],
|
|
40566
41084
|
parse: ([supply, rate]) => {
|
|
40567
|
-
const totalSupply =
|
|
40568
|
-
const exchangeRate =
|
|
41085
|
+
const totalSupply = toBigInt11(supply);
|
|
41086
|
+
const exchangeRate = toBigInt11(rate);
|
|
40569
41087
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
40570
41088
|
return void 0;
|
|
40571
41089
|
}
|
|
@@ -40603,7 +41121,7 @@ var readerListaSlisBnb = (entry) => {
|
|
|
40603
41121
|
calls: [{ address: entry.address, name: "totalSupply", params: [] }],
|
|
40604
41122
|
abis: [TotalSupplyAbi],
|
|
40605
41123
|
parse: ([supply]) => {
|
|
40606
|
-
const totalSupply =
|
|
41124
|
+
const totalSupply = toBigInt11(supply);
|
|
40607
41125
|
if (totalSupply === void 0) return void 0;
|
|
40608
41126
|
return {
|
|
40609
41127
|
totalAssets: totalSupply,
|
|
@@ -40621,12 +41139,12 @@ var readerListaSlisBnb = (entry) => {
|
|
|
40621
41139
|
],
|
|
40622
41140
|
abis: [TotalSupplyAbi, ListaStakeManagerReadAbi, ListaStakeManagerReadAbi],
|
|
40623
41141
|
parse: ([supply, rate, pooled]) => {
|
|
40624
|
-
const totalSupply =
|
|
40625
|
-
const exchangeRate =
|
|
41142
|
+
const totalSupply = toBigInt11(supply);
|
|
41143
|
+
const exchangeRate = toBigInt11(rate);
|
|
40626
41144
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
40627
41145
|
return void 0;
|
|
40628
41146
|
}
|
|
40629
|
-
const pooledBnb =
|
|
41147
|
+
const pooledBnb = toBigInt11(pooled);
|
|
40630
41148
|
const totalAssets = pooledBnb ?? totalSupply * exchangeRate / ONE_E186;
|
|
40631
41149
|
return { totalAssets, totalSupply, exchangeRate };
|
|
40632
41150
|
}
|
|
@@ -40652,7 +41170,7 @@ var readerMantleMEth = (entry) => {
|
|
|
40652
41170
|
calls: [{ address: entry.address, name: "totalSupply", params: [] }],
|
|
40653
41171
|
abis: [TotalSupplyAbi],
|
|
40654
41172
|
parse: ([supply]) => {
|
|
40655
|
-
const totalSupply =
|
|
41173
|
+
const totalSupply = toBigInt11(supply);
|
|
40656
41174
|
if (totalSupply === void 0) return void 0;
|
|
40657
41175
|
return {
|
|
40658
41176
|
totalAssets: totalSupply,
|
|
@@ -40669,8 +41187,8 @@ var readerMantleMEth = (entry) => {
|
|
|
40669
41187
|
],
|
|
40670
41188
|
abis: [TotalSupplyAbi, MantleStakingAbi],
|
|
40671
41189
|
parse: ([supply, rate]) => {
|
|
40672
|
-
const totalSupply =
|
|
40673
|
-
const exchangeRate =
|
|
41190
|
+
const totalSupply = toBigInt11(supply);
|
|
41191
|
+
const exchangeRate = toBigInt11(rate);
|
|
40674
41192
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
40675
41193
|
return void 0;
|
|
40676
41194
|
}
|
|
@@ -40691,7 +41209,7 @@ var readerOffChain = (entry) => {
|
|
|
40691
41209
|
calls: [{ address: entry.address, name: "totalSupply", params: [] }],
|
|
40692
41210
|
abis: [TotalSupplyAbi],
|
|
40693
41211
|
parse: ([supply]) => {
|
|
40694
|
-
const totalSupply =
|
|
41212
|
+
const totalSupply = toBigInt11(supply);
|
|
40695
41213
|
if (totalSupply === void 0) return void 0;
|
|
40696
41214
|
return {
|
|
40697
41215
|
totalAssets: rescaleDecimals(totalSupply, shareDec, underlyingDec),
|
|
@@ -40725,7 +41243,7 @@ var readerRenzoEzEth = (entry) => {
|
|
|
40725
41243
|
calls: [{ address: entry.address, name: "totalSupply", params: [] }],
|
|
40726
41244
|
abis: [TotalSupplyAbi],
|
|
40727
41245
|
parse: ([supply]) => {
|
|
40728
|
-
const totalSupply =
|
|
41246
|
+
const totalSupply = toBigInt11(supply);
|
|
40729
41247
|
if (totalSupply === void 0) return void 0;
|
|
40730
41248
|
return {
|
|
40731
41249
|
totalAssets: totalSupply,
|
|
@@ -40742,9 +41260,9 @@ var readerRenzoEzEth = (entry) => {
|
|
|
40742
41260
|
],
|
|
40743
41261
|
abis: [TotalSupplyAbi, RenzoRestakeManagerAbi],
|
|
40744
41262
|
parse: ([supply, tvls]) => {
|
|
40745
|
-
const totalSupply =
|
|
41263
|
+
const totalSupply = toBigInt11(supply);
|
|
40746
41264
|
if (totalSupply === void 0 || totalSupply === 0n) return void 0;
|
|
40747
|
-
const totalTvl = Array.isArray(tvls) && tvls.length >= 3 ?
|
|
41265
|
+
const totalTvl = Array.isArray(tvls) && tvls.length >= 3 ? toBigInt11(tvls[2]) : void 0;
|
|
40748
41266
|
if (totalTvl === void 0) return void 0;
|
|
40749
41267
|
return {
|
|
40750
41268
|
totalAssets: totalTvl,
|
|
@@ -40798,12 +41316,12 @@ var readerRocketReth = (entry) => {
|
|
|
40798
41316
|
calls,
|
|
40799
41317
|
abis,
|
|
40800
41318
|
parse: (slice) => {
|
|
40801
|
-
const totalSupply =
|
|
40802
|
-
const exchangeRate =
|
|
41319
|
+
const totalSupply = toBigInt11(slice[0]);
|
|
41320
|
+
const exchangeRate = toBigInt11(slice[1]);
|
|
40803
41321
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
40804
41322
|
return void 0;
|
|
40805
41323
|
}
|
|
40806
|
-
const liquidity = depositPool ?
|
|
41324
|
+
const liquidity = depositPool ? toBigInt11(slice[2]) : void 0;
|
|
40807
41325
|
return {
|
|
40808
41326
|
totalAssets: totalSupply * exchangeRate / ONE_E186,
|
|
40809
41327
|
totalSupply,
|
|
@@ -40842,7 +41360,7 @@ var readerStaderEthx = (entry) => {
|
|
|
40842
41360
|
calls: [{ address: entry.address, name: "totalSupply", params: [] }],
|
|
40843
41361
|
abis: [TotalSupplyAbi],
|
|
40844
41362
|
parse: ([supply]) => {
|
|
40845
|
-
const totalSupply =
|
|
41363
|
+
const totalSupply = toBigInt11(supply);
|
|
40846
41364
|
if (totalSupply === void 0) return void 0;
|
|
40847
41365
|
return {
|
|
40848
41366
|
totalAssets: totalSupply,
|
|
@@ -40859,8 +41377,8 @@ var readerStaderEthx = (entry) => {
|
|
|
40859
41377
|
],
|
|
40860
41378
|
abis: [TotalSupplyAbi, StaderEthxAbi],
|
|
40861
41379
|
parse: ([supply, rate]) => {
|
|
40862
|
-
const totalSupply =
|
|
40863
|
-
const exchangeRate =
|
|
41380
|
+
const totalSupply = toBigInt11(supply);
|
|
41381
|
+
const exchangeRate = toBigInt11(rate);
|
|
40864
41382
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
40865
41383
|
return void 0;
|
|
40866
41384
|
}
|
|
@@ -40888,10 +41406,10 @@ var readerStaderMaticX = (entry) => {
|
|
|
40888
41406
|
],
|
|
40889
41407
|
abis: [TotalSupplyAbi, StaderMaticXAbi],
|
|
40890
41408
|
parse: ([supply, tup]) => {
|
|
40891
|
-
const totalSupply =
|
|
41409
|
+
const totalSupply = toBigInt11(supply);
|
|
40892
41410
|
if (!Array.isArray(tup) || tup.length < 3) return void 0;
|
|
40893
|
-
const amountInMatic =
|
|
40894
|
-
const totalPooledMatic =
|
|
41411
|
+
const amountInMatic = toBigInt11(tup[0]);
|
|
41412
|
+
const totalPooledMatic = toBigInt11(tup[2]);
|
|
40895
41413
|
if (totalSupply === void 0 || amountInMatic === void 0) {
|
|
40896
41414
|
return void 0;
|
|
40897
41415
|
}
|
|
@@ -40924,7 +41442,7 @@ var readerStakeWiseOsEth = (entry) => {
|
|
|
40924
41442
|
calls: [{ address: entry.address, name: "totalSupply", params: [] }],
|
|
40925
41443
|
abis: [TotalSupplyAbi],
|
|
40926
41444
|
parse: ([supply]) => {
|
|
40927
|
-
const totalSupply =
|
|
41445
|
+
const totalSupply = toBigInt11(supply);
|
|
40928
41446
|
if (totalSupply === void 0) return void 0;
|
|
40929
41447
|
return {
|
|
40930
41448
|
totalAssets: totalSupply,
|
|
@@ -40941,8 +41459,8 @@ var readerStakeWiseOsEth = (entry) => {
|
|
|
40941
41459
|
],
|
|
40942
41460
|
abis: [TotalSupplyAbi, StakeWiseOsTokenAbi],
|
|
40943
41461
|
parse: ([supply, rate]) => {
|
|
40944
|
-
const totalSupply =
|
|
40945
|
-
const exchangeRate =
|
|
41462
|
+
const totalSupply = toBigInt11(supply);
|
|
41463
|
+
const exchangeRate = toBigInt11(rate);
|
|
40946
41464
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
40947
41465
|
return void 0;
|
|
40948
41466
|
}
|
|
@@ -40974,7 +41492,7 @@ var readerStCelo = (entry) => {
|
|
|
40974
41492
|
calls: [{ address: entry.address, name: "totalSupply", params: [] }],
|
|
40975
41493
|
abis: [TotalSupplyAbi],
|
|
40976
41494
|
parse: ([supply]) => {
|
|
40977
|
-
const totalSupply =
|
|
41495
|
+
const totalSupply = toBigInt11(supply);
|
|
40978
41496
|
if (totalSupply === void 0) return void 0;
|
|
40979
41497
|
return {
|
|
40980
41498
|
totalAssets: totalSupply,
|
|
@@ -40991,8 +41509,8 @@ var readerStCelo = (entry) => {
|
|
|
40991
41509
|
],
|
|
40992
41510
|
abis: [TotalSupplyAbi, StCeloManagerAbi],
|
|
40993
41511
|
parse: ([supply, rate]) => {
|
|
40994
|
-
const totalSupply =
|
|
40995
|
-
const exchangeRate =
|
|
41512
|
+
const totalSupply = toBigInt11(supply);
|
|
41513
|
+
const exchangeRate = toBigInt11(rate);
|
|
40996
41514
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
40997
41515
|
return void 0;
|
|
40998
41516
|
}
|
|
@@ -41024,8 +41542,8 @@ var readerSwellGetRate = (entry) => ({
|
|
|
41024
41542
|
],
|
|
41025
41543
|
abis: [TotalSupplyAbi, SwellGetRateAbi],
|
|
41026
41544
|
parse: ([supply, rate]) => {
|
|
41027
|
-
const totalSupply =
|
|
41028
|
-
const exchangeRate =
|
|
41545
|
+
const totalSupply = toBigInt11(supply);
|
|
41546
|
+
const exchangeRate = toBigInt11(rate);
|
|
41029
41547
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
41030
41548
|
return void 0;
|
|
41031
41549
|
}
|
|
@@ -41056,7 +41574,7 @@ var readerValantisWstHype = (entry) => {
|
|
|
41056
41574
|
calls: [{ address: entry.address, name: "totalSupply", params: [] }],
|
|
41057
41575
|
abis: [TotalSupplyAbi],
|
|
41058
41576
|
parse: ([supply]) => {
|
|
41059
|
-
const totalSupply =
|
|
41577
|
+
const totalSupply = toBigInt11(supply);
|
|
41060
41578
|
if (totalSupply === void 0) return void 0;
|
|
41061
41579
|
return {
|
|
41062
41580
|
totalAssets: totalSupply,
|
|
@@ -41073,8 +41591,8 @@ var readerValantisWstHype = (entry) => {
|
|
|
41073
41591
|
],
|
|
41074
41592
|
abis: [TotalSupplyAbi, ValantisStHypeAbi],
|
|
41075
41593
|
parse: ([supply, rate]) => {
|
|
41076
|
-
const totalSupply =
|
|
41077
|
-
const exchangeRate =
|
|
41594
|
+
const totalSupply = toBigInt11(supply);
|
|
41595
|
+
const exchangeRate = toBigInt11(rate);
|
|
41078
41596
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
41079
41597
|
return void 0;
|
|
41080
41598
|
}
|
|
@@ -41108,7 +41626,7 @@ var readerVedaAccountant = (entry) => {
|
|
|
41108
41626
|
calls: [{ address: entry.address, name: "totalSupply", params: [] }],
|
|
41109
41627
|
abis: [TotalSupplyAbi],
|
|
41110
41628
|
parse: ([supply]) => {
|
|
41111
|
-
const totalSupply =
|
|
41629
|
+
const totalSupply = toBigInt11(supply);
|
|
41112
41630
|
if (totalSupply === void 0) return void 0;
|
|
41113
41631
|
return {
|
|
41114
41632
|
totalAssets: rescaleDecimals(totalSupply, shareDec, underlyingDec),
|
|
@@ -41126,8 +41644,8 @@ var readerVedaAccountant = (entry) => {
|
|
|
41126
41644
|
],
|
|
41127
41645
|
abis: [TotalSupplyAbi, VedaAccountantGetRateAbi],
|
|
41128
41646
|
parse: ([supply, rate]) => {
|
|
41129
|
-
const totalSupply =
|
|
41130
|
-
const rawRate =
|
|
41647
|
+
const totalSupply = toBigInt11(supply);
|
|
41648
|
+
const rawRate = toBigInt11(rate);
|
|
41131
41649
|
if (totalSupply === void 0 || rawRate === void 0) return void 0;
|
|
41132
41650
|
const exchangeRate = rawRate * scale;
|
|
41133
41651
|
return {
|
|
@@ -41162,8 +41680,8 @@ var readerAnkrRatio = (entry) => ({
|
|
|
41162
41680
|
],
|
|
41163
41681
|
abis: [TotalSupplyAbi, AnkrRatioAbi],
|
|
41164
41682
|
parse: ([supply, ratio]) => {
|
|
41165
|
-
const totalSupply =
|
|
41166
|
-
const r =
|
|
41683
|
+
const totalSupply = toBigInt11(supply);
|
|
41684
|
+
const r = toBigInt11(ratio);
|
|
41167
41685
|
if (totalSupply === void 0 || r === void 0 || r === 0n) {
|
|
41168
41686
|
return void 0;
|
|
41169
41687
|
}
|
|
@@ -41206,8 +41724,8 @@ var readerCoreEarnRate = (entry) => {
|
|
|
41206
41724
|
],
|
|
41207
41725
|
abis: [CoreEarnRateAbi, TotalSupplyAbi],
|
|
41208
41726
|
parse: ([rate, supply]) => {
|
|
41209
|
-
const r =
|
|
41210
|
-
const totalSupply =
|
|
41727
|
+
const r = toBigInt11(rate);
|
|
41728
|
+
const totalSupply = toBigInt11(supply);
|
|
41211
41729
|
if (r === void 0 || r === 0n || totalSupply === void 0) {
|
|
41212
41730
|
return void 0;
|
|
41213
41731
|
}
|
|
@@ -41228,8 +41746,8 @@ var readerCoreStakedRatio = (entry) => {
|
|
|
41228
41746
|
],
|
|
41229
41747
|
abis: [CoreTotalStakedAbi, TotalSupplyAbi],
|
|
41230
41748
|
parse: ([staked, supply]) => {
|
|
41231
|
-
const totalStaked =
|
|
41232
|
-
const totalSupply =
|
|
41749
|
+
const totalStaked = toBigInt11(staked);
|
|
41750
|
+
const totalSupply = toBigInt11(supply);
|
|
41233
41751
|
if (totalStaked === void 0 || totalSupply === void 0 || totalSupply === 0n) {
|
|
41234
41752
|
return void 0;
|
|
41235
41753
|
}
|
|
@@ -41273,12 +41791,12 @@ var readerStellaStDot = (entry) => ({
|
|
|
41273
41791
|
],
|
|
41274
41792
|
abis: [TotalSupplyAbi, StellaStDotAbi, StellaStDotAbi],
|
|
41275
41793
|
parse: ([supply, rate, pooled]) => {
|
|
41276
|
-
const totalSupply =
|
|
41277
|
-
const exchangeRate =
|
|
41794
|
+
const totalSupply = toBigInt11(supply);
|
|
41795
|
+
const exchangeRate = toBigInt11(rate);
|
|
41278
41796
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
41279
41797
|
return void 0;
|
|
41280
41798
|
}
|
|
41281
|
-
const totalAssets =
|
|
41799
|
+
const totalAssets = toBigInt11(pooled) ?? totalSupply * exchangeRate / ONE_E186;
|
|
41282
41800
|
return {
|
|
41283
41801
|
totalAssets,
|
|
41284
41802
|
totalSupply,
|
|
@@ -41313,8 +41831,8 @@ var readerKintsuSMon = (entry) => ({
|
|
|
41313
41831
|
],
|
|
41314
41832
|
abis: [KintsuSMonAbi, KintsuSMonAbi],
|
|
41315
41833
|
parse: ([pooled, shares]) => {
|
|
41316
|
-
const totalAssets =
|
|
41317
|
-
const totalSupply =
|
|
41834
|
+
const totalAssets = toBigInt11(pooled);
|
|
41835
|
+
const totalSupply = toBigInt11(shares);
|
|
41318
41836
|
if (totalAssets === void 0 || totalSupply === void 0) return void 0;
|
|
41319
41837
|
const exchangeRate = totalSupply > 0n ? totalAssets * ONE_E186 / totalSupply : ONE_E186;
|
|
41320
41838
|
return { totalAssets, totalSupply, exchangeRate };
|
|
@@ -41831,7 +42349,7 @@ var fetchLstShareTokens = async (chainId, multicallRetry, prices = {}, tokenList
|
|
|
41831
42349
|
const validatorsByAddress = new Map(validatorEntries);
|
|
41832
42350
|
const idleByAddress = /* @__PURE__ */ new Map();
|
|
41833
42351
|
idleEntries.forEach((e, i) => {
|
|
41834
|
-
const bal =
|
|
42352
|
+
const bal = toBigInt11(idleResults[i]);
|
|
41835
42353
|
if (bal !== void 0) idleByAddress.set(e.address.toLowerCase(), bal);
|
|
41836
42354
|
});
|
|
41837
42355
|
const rawResults = new Array(allCalls.length);
|
|
@@ -41961,7 +42479,7 @@ var BeetsStSWithdrawalAbi = [
|
|
|
41961
42479
|
];
|
|
41962
42480
|
|
|
41963
42481
|
// src/vaults/lst/withdrawals/readers/shared.ts
|
|
41964
|
-
var
|
|
42482
|
+
var toBigInt12 = (v) => {
|
|
41965
42483
|
if (v === void 0 || v === null) return void 0;
|
|
41966
42484
|
if (typeof v === "bigint") return v;
|
|
41967
42485
|
if (typeof v === "number") return BigInt(v);
|
|
@@ -41976,7 +42494,7 @@ var toBigInt11 = (v) => {
|
|
|
41976
42494
|
return void 0;
|
|
41977
42495
|
};
|
|
41978
42496
|
var toNumber = (v) => {
|
|
41979
|
-
const b =
|
|
42497
|
+
const b = toBigInt12(v);
|
|
41980
42498
|
if (b === void 0) return void 0;
|
|
41981
42499
|
if (b > BigInt(Number.MAX_SAFE_INTEGER)) return void 0;
|
|
41982
42500
|
return Number(b);
|
|
@@ -42013,7 +42531,7 @@ var readerBeets = {
|
|
|
42013
42531
|
const out = [];
|
|
42014
42532
|
for (let i = 0; i < reqs.length; i++) {
|
|
42015
42533
|
const r = reqs[i];
|
|
42016
|
-
const amount =
|
|
42534
|
+
const amount = toBigInt12(r.assetAmount);
|
|
42017
42535
|
const ts = toNumber(r.requestTimestamp);
|
|
42018
42536
|
const isWithdrawn = Boolean(r.isWithdrawn);
|
|
42019
42537
|
if (amount === void 0 || ts === void 0) continue;
|
|
@@ -42105,13 +42623,13 @@ var readerBeHype = {
|
|
|
42105
42623
|
const q = stage2[i * 2];
|
|
42106
42624
|
const canClaim = Boolean(stage2[i * 2 + 1]);
|
|
42107
42625
|
if (!q) continue;
|
|
42108
|
-
const hypeAmount = Array.isArray(q) ?
|
|
42626
|
+
const hypeAmount = Array.isArray(q) ? toBigInt12(q[2]) : toBigInt12(q.hypeAmount);
|
|
42109
42627
|
if (hypeAmount === void 0) continue;
|
|
42110
42628
|
out.push({
|
|
42111
42629
|
lst: entry.lst,
|
|
42112
42630
|
brand: entry.brand,
|
|
42113
42631
|
symbol: entry.symbol,
|
|
42114
|
-
requestId: String(
|
|
42632
|
+
requestId: String(toBigInt12(ids[i]) ?? i),
|
|
42115
42633
|
amountUnderlying: hypeAmount.toString(),
|
|
42116
42634
|
status: canClaim ? "claimable" : "pending"
|
|
42117
42635
|
});
|
|
@@ -42214,7 +42732,7 @@ var readerBenqi = {
|
|
|
42214
42732
|
for (let i = 0; i < reqs.length; i++) {
|
|
42215
42733
|
const r = reqs[i];
|
|
42216
42734
|
const startedAt = toNumber(r.startedAt);
|
|
42217
|
-
const shareAmount =
|
|
42735
|
+
const shareAmount = toBigInt12(r.shareAmount);
|
|
42218
42736
|
if (startedAt === void 0 || shareAmount === void 0) continue;
|
|
42219
42737
|
const readyAt = startedAt + cooldown;
|
|
42220
42738
|
const expiresAt = readyAt + claimWindow;
|
|
@@ -42277,8 +42795,8 @@ var readerBeraPaw = {
|
|
|
42277
42795
|
}
|
|
42278
42796
|
const pos = res[0];
|
|
42279
42797
|
if (!pos) return [];
|
|
42280
|
-
const queued = Array.isArray(pos) ?
|
|
42281
|
-
const available = Array.isArray(pos) ?
|
|
42798
|
+
const queued = Array.isArray(pos) ? toBigInt12(pos[0]) : toBigInt12(pos.queued);
|
|
42799
|
+
const available = Array.isArray(pos) ? toBigInt12(pos[1]) : toBigInt12(pos.available);
|
|
42282
42800
|
const out = [];
|
|
42283
42801
|
if (available !== void 0 && available > 0n) {
|
|
42284
42802
|
out.push({
|
|
@@ -42360,7 +42878,7 @@ var readerIbera = {
|
|
|
42360
42878
|
return [];
|
|
42361
42879
|
}
|
|
42362
42880
|
const length = toNumber(stage1[0]) ?? 0;
|
|
42363
|
-
const frontier =
|
|
42881
|
+
const frontier = toBigInt12(stage1[1]) ?? 0n;
|
|
42364
42882
|
if (length === 0) return [];
|
|
42365
42883
|
const start = length > MAX_SCAN ? length - MAX_SCAN : 0;
|
|
42366
42884
|
const ids = Array.from({ length: length - start }, (_3, k) => start + k);
|
|
@@ -42384,7 +42902,7 @@ var readerIbera = {
|
|
|
42384
42902
|
const r = stage2[k];
|
|
42385
42903
|
if (!r) continue;
|
|
42386
42904
|
const receiver = Array.isArray(r) ? r[2] : r.receiver;
|
|
42387
|
-
const amount = Array.isArray(r) ?
|
|
42905
|
+
const amount = Array.isArray(r) ? toBigInt12(r[3]) : toBigInt12(r.amount);
|
|
42388
42906
|
if (typeof receiver !== "string" || receiver.toLowerCase() !== target || amount === void 0 || amount === 0n) {
|
|
42389
42907
|
continue;
|
|
42390
42908
|
}
|
|
@@ -42457,7 +42975,7 @@ var readerPrimeStaking = {
|
|
|
42457
42975
|
return [];
|
|
42458
42976
|
}
|
|
42459
42977
|
const length = toNumber(stage1[0]) ?? 0;
|
|
42460
|
-
const frontier =
|
|
42978
|
+
const frontier = toBigInt12(stage1[1]) ?? 0n;
|
|
42461
42979
|
if (length === 0) return [];
|
|
42462
42980
|
const start = length > MAX_SCAN2 ? length - MAX_SCAN2 : 0;
|
|
42463
42981
|
const ids = Array.from({ length: length - start }, (_3, k) => start + k);
|
|
@@ -42481,7 +42999,7 @@ var readerPrimeStaking = {
|
|
|
42481
42999
|
const r = stage2[k];
|
|
42482
43000
|
if (!r) continue;
|
|
42483
43001
|
const receiver = Array.isArray(r) ? r[1] : r.receiver;
|
|
42484
|
-
const assets = Array.isArray(r) ?
|
|
43002
|
+
const assets = Array.isArray(r) ? toBigInt12(r[3]) : toBigInt12(r.assets);
|
|
42485
43003
|
const processed = Array.isArray(r) ? r[4] : r.processed;
|
|
42486
43004
|
if (typeof receiver !== "string" || receiver.toLowerCase() !== target || assets === void 0 || assets === 0n) {
|
|
42487
43005
|
continue;
|
|
@@ -42551,8 +43069,8 @@ var readerErc7540 = {
|
|
|
42551
43069
|
],
|
|
42552
43070
|
abi: [Erc7540Abi, Erc7540Abi]
|
|
42553
43071
|
});
|
|
42554
|
-
const pending =
|
|
42555
|
-
const claimable =
|
|
43072
|
+
const pending = toBigInt12(stage1[0]) ?? 0n;
|
|
43073
|
+
const claimable = toBigInt12(stage1[1]) ?? 0n;
|
|
42556
43074
|
const out = [];
|
|
42557
43075
|
if (claimable > 0n) {
|
|
42558
43076
|
const stage2 = await multicallRetry({
|
|
@@ -42566,7 +43084,7 @@ var readerErc7540 = {
|
|
|
42566
43084
|
],
|
|
42567
43085
|
abi: [Erc7540Abi]
|
|
42568
43086
|
});
|
|
42569
|
-
const amount =
|
|
43087
|
+
const amount = toBigInt12(stage2[0]) ?? claimable;
|
|
42570
43088
|
out.push({
|
|
42571
43089
|
lst: entry.lst,
|
|
42572
43090
|
brand: entry.brand,
|
|
@@ -42620,11 +43138,11 @@ var readerEthenaCooldown = {
|
|
|
42620
43138
|
let cooldownEnd;
|
|
42621
43139
|
let amount;
|
|
42622
43140
|
if (Array.isArray(cell)) {
|
|
42623
|
-
cooldownEnd =
|
|
42624
|
-
amount =
|
|
43141
|
+
cooldownEnd = toBigInt12(cell[0]);
|
|
43142
|
+
amount = toBigInt12(cell[1]);
|
|
42625
43143
|
} else if (cell && typeof cell === "object") {
|
|
42626
|
-
cooldownEnd =
|
|
42627
|
-
amount =
|
|
43144
|
+
cooldownEnd = toBigInt12(cell.cooldownEnd);
|
|
43145
|
+
amount = toBigInt12(cell.underlyingAmount);
|
|
42628
43146
|
}
|
|
42629
43147
|
if (!amount || amount === 0n) return [];
|
|
42630
43148
|
const readyAt = Number(cooldownEnd ?? 0n);
|
|
@@ -42719,7 +43237,7 @@ var readerEtherFi = {
|
|
|
42719
43237
|
calls: enumCalls,
|
|
42720
43238
|
abi: enumCalls.map(() => EtherFiWithdrawRequestAbi)
|
|
42721
43239
|
});
|
|
42722
|
-
const ids = stage2.map(
|
|
43240
|
+
const ids = stage2.map(toBigInt12).filter((v) => v !== void 0);
|
|
42723
43241
|
if (ids.length === 0) return [];
|
|
42724
43242
|
const detailCalls = ids.flatMap((id) => [
|
|
42725
43243
|
{ address: entry.withdrawalContract, name: "getRequest", params: [id] },
|
|
@@ -42739,7 +43257,7 @@ var readerEtherFi = {
|
|
|
42739
43257
|
const isValid = Boolean(stage3[i * 3 + 2]);
|
|
42740
43258
|
if (!req) continue;
|
|
42741
43259
|
if (!isValid) continue;
|
|
42742
|
-
const amount =
|
|
43260
|
+
const amount = toBigInt12(req.amountOfEEth);
|
|
42743
43261
|
if (amount === void 0) continue;
|
|
42744
43262
|
out.push({
|
|
42745
43263
|
lst: entry.lst,
|
|
@@ -42834,7 +43352,7 @@ var readerKelp = {
|
|
|
42834
43352
|
}
|
|
42835
43353
|
],
|
|
42836
43354
|
abi: [KelpWithdrawalManagerAbi]
|
|
42837
|
-
}).then((res) =>
|
|
43355
|
+
}).then((res) => toBigInt12(res[0]) ?? 0n)
|
|
42838
43356
|
]);
|
|
42839
43357
|
lengths = storageReads;
|
|
42840
43358
|
currentBlock = block;
|
|
@@ -42864,9 +43382,9 @@ var readerKelp = {
|
|
|
42864
43382
|
for (let i = 0; i < detailCalls.length; i++) {
|
|
42865
43383
|
const r = stage2[i];
|
|
42866
43384
|
if (!r) continue;
|
|
42867
|
-
const expected = Array.isArray(r) ?
|
|
42868
|
-
const startBlock = Array.isArray(r) ?
|
|
42869
|
-
const nonce = Array.isArray(r) ?
|
|
43385
|
+
const expected = Array.isArray(r) ? toBigInt12(r[1]) : toBigInt12(r.expectedAssetAmount);
|
|
43386
|
+
const startBlock = Array.isArray(r) ? toBigInt12(r[2]) : toBigInt12(r.withdrawalStartBlock);
|
|
43387
|
+
const nonce = Array.isArray(r) ? toBigInt12(r[3]) : toBigInt12(r.userNonce);
|
|
42870
43388
|
if (expected === void 0 || startBlock === void 0) continue;
|
|
42871
43389
|
const claimable = currentBlock >= startBlock + delayBlocks;
|
|
42872
43390
|
out.push({
|
|
@@ -42943,7 +43461,7 @@ var readerLido = {
|
|
|
42943
43461
|
abi: [LidoWithdrawalQueueAbi, LidoWithdrawalQueueAbi]
|
|
42944
43462
|
});
|
|
42945
43463
|
const ids = stage1[0];
|
|
42946
|
-
const frontier =
|
|
43464
|
+
const frontier = toBigInt12(stage1[1]) ?? 0n;
|
|
42947
43465
|
if (!Array.isArray(ids) || ids.length === 0) return [];
|
|
42948
43466
|
const stage2 = await multicallRetry({
|
|
42949
43467
|
chain: chainId,
|
|
@@ -42960,10 +43478,10 @@ var readerLido = {
|
|
|
42960
43478
|
if (!Array.isArray(statuses)) return [];
|
|
42961
43479
|
const out = [];
|
|
42962
43480
|
for (let i = 0; i < ids.length; i++) {
|
|
42963
|
-
const id =
|
|
43481
|
+
const id = toBigInt12(ids[i]);
|
|
42964
43482
|
const s = statuses[i];
|
|
42965
43483
|
if (id === void 0 || !s) continue;
|
|
42966
|
-
const amountOfStETH =
|
|
43484
|
+
const amountOfStETH = toBigInt12(s.amountOfStETH);
|
|
42967
43485
|
const isFinalized = Boolean(s.isFinalized);
|
|
42968
43486
|
const isClaimed = Boolean(s.isClaimed);
|
|
42969
43487
|
if (amountOfStETH === void 0) continue;
|
|
@@ -43072,11 +43590,11 @@ var readerLista = {
|
|
|
43072
43590
|
const status = stage2[i];
|
|
43073
43591
|
if (!status) continue;
|
|
43074
43592
|
const isClaimable = Array.isArray(status) ? Boolean(status[0]) : Boolean(status._isClaimable);
|
|
43075
|
-
const bnbAmount = Array.isArray(status) ?
|
|
43076
|
-
const snbnbAmount = Array.isArray(req) ?
|
|
43593
|
+
const bnbAmount = Array.isArray(status) ? toBigInt12(status[1]) : toBigInt12(status._amount);
|
|
43594
|
+
const snbnbAmount = Array.isArray(req) ? toBigInt12(req[1]) : toBigInt12(req?.amountInSnBnb);
|
|
43077
43595
|
const amount = bnbAmount ?? snbnbAmount;
|
|
43078
43596
|
if (amount === void 0) continue;
|
|
43079
|
-
const uuid = Array.isArray(req) ?
|
|
43597
|
+
const uuid = Array.isArray(req) ? toBigInt12(req[0]) : toBigInt12(req?.uuid);
|
|
43080
43598
|
out.push({
|
|
43081
43599
|
lst: entry.lst,
|
|
43082
43600
|
brand: entry.brand,
|
|
@@ -43161,7 +43679,7 @@ var readerRenzo = {
|
|
|
43161
43679
|
for (let i = 0; i < count; i++) {
|
|
43162
43680
|
const tup = stage2[i];
|
|
43163
43681
|
if (!Array.isArray(tup) || tup.length < 5) continue;
|
|
43164
|
-
const amountToRedeem =
|
|
43682
|
+
const amountToRedeem = toBigInt12(tup[2]);
|
|
43165
43683
|
const createdAt = toNumber(tup[4]);
|
|
43166
43684
|
if (amountToRedeem === void 0 || createdAt === void 0) continue;
|
|
43167
43685
|
const readyAt = createdAt + cooldown;
|
|
@@ -43234,9 +43752,9 @@ var readerStaderEthx2 = {
|
|
|
43234
43752
|
]
|
|
43235
43753
|
});
|
|
43236
43754
|
const ids = stage1[0];
|
|
43237
|
-
const frontier =
|
|
43755
|
+
const frontier = toBigInt12(stage1[1]) ?? 0n;
|
|
43238
43756
|
if (!Array.isArray(ids) || ids.length === 0) return [];
|
|
43239
|
-
const idBigInts = ids.map(
|
|
43757
|
+
const idBigInts = ids.map(toBigInt12).filter((v) => v !== void 0);
|
|
43240
43758
|
const detailCalls = idBigInts.map((id) => ({
|
|
43241
43759
|
address: entry.withdrawalContract,
|
|
43242
43760
|
name: "userWithdrawRequests",
|
|
@@ -43252,8 +43770,8 @@ var readerStaderEthx2 = {
|
|
|
43252
43770
|
const id = idBigInts[i];
|
|
43253
43771
|
const tup = stage2[i];
|
|
43254
43772
|
if (!Array.isArray(tup) || tup.length < 5) continue;
|
|
43255
|
-
const ethExpected =
|
|
43256
|
-
const ethFinalized =
|
|
43773
|
+
const ethExpected = toBigInt12(tup[2]) ?? 0n;
|
|
43774
|
+
const ethFinalized = toBigInt12(tup[3]) ?? 0n;
|
|
43257
43775
|
const isFinalized = id < frontier && ethFinalized > 0n;
|
|
43258
43776
|
const queuePosition = isFinalized ? 0 : Number(id - frontier);
|
|
43259
43777
|
out.push({
|
|
@@ -43332,13 +43850,13 @@ var readerStaderMaticX2 = {
|
|
|
43332
43850
|
});
|
|
43333
43851
|
const arr = stage1[0];
|
|
43334
43852
|
if (!Array.isArray(arr)) return [];
|
|
43335
|
-
const currentEpoch = stakeManager ?
|
|
43336
|
-
const delay = stakeManager ?
|
|
43853
|
+
const currentEpoch = stakeManager ? toBigInt12(stage1[1]) ?? 0n : 0n;
|
|
43854
|
+
const delay = stakeManager ? toBigInt12(stage1[2]) ?? 0n : 0n;
|
|
43337
43855
|
const out = [];
|
|
43338
43856
|
for (let i = 0; i < arr.length; i++) {
|
|
43339
43857
|
const r = arr[i];
|
|
43340
|
-
const amount =
|
|
43341
|
-
const requestEpoch =
|
|
43858
|
+
const amount = toBigInt12(r.amount) ?? 0n;
|
|
43859
|
+
const requestEpoch = toBigInt12(r.requestEpoch);
|
|
43342
43860
|
if (requestEpoch === void 0) continue;
|
|
43343
43861
|
const ready = stakeManager ? currentEpoch >= requestEpoch + delay : false;
|
|
43344
43862
|
out.push({
|
|
@@ -43425,9 +43943,9 @@ var readerMantle = {
|
|
|
43425
43943
|
if (typeof requester === "string" && requester.toLowerCase() !== lcUser) {
|
|
43426
43944
|
continue;
|
|
43427
43945
|
}
|
|
43428
|
-
const ethRequested = Array.isArray(detail) ?
|
|
43946
|
+
const ethRequested = Array.isArray(detail) ? toBigInt12(detail[3]) : toBigInt12(detail.ethRequested);
|
|
43429
43947
|
const isFinalized = Array.isArray(info) ? Boolean(info[0]) : Boolean(info.isFinalized);
|
|
43430
|
-
const claimable = Array.isArray(info) ?
|
|
43948
|
+
const claimable = Array.isArray(info) ? toBigInt12(info[1]) : toBigInt12(info.claimableAmount);
|
|
43431
43949
|
if (ethRequested === void 0) continue;
|
|
43432
43950
|
out.push({
|
|
43433
43951
|
lst: entry.lst,
|
|
@@ -43506,8 +44024,8 @@ var readerPuffer = {
|
|
|
43506
44024
|
calls,
|
|
43507
44025
|
abi: calls.map(() => PufferWithdrawalManagerAbi)
|
|
43508
44026
|
});
|
|
43509
|
-
const finalizedBatch =
|
|
43510
|
-
const batchSize =
|
|
44027
|
+
const finalizedBatch = toBigInt12(results[detailCalls.length]) ?? 0n;
|
|
44028
|
+
const batchSize = toBigInt12(results[detailCalls.length + 1]) ?? 0n;
|
|
43511
44029
|
const out = [];
|
|
43512
44030
|
const lcUser = user.toLowerCase();
|
|
43513
44031
|
for (let i = 0; i < ids.length; i++) {
|
|
@@ -43517,7 +44035,7 @@ var readerPuffer = {
|
|
|
43517
44035
|
if (typeof recipient === "string" && recipient.toLowerCase() !== lcUser) {
|
|
43518
44036
|
continue;
|
|
43519
44037
|
}
|
|
43520
|
-
const pufETHAmount = Array.isArray(d) ?
|
|
44038
|
+
const pufETHAmount = Array.isArray(d) ? toBigInt12(d[0]) : toBigInt12(d.pufETHAmount);
|
|
43521
44039
|
if (pufETHAmount === void 0) continue;
|
|
43522
44040
|
const batchIdx = batchSize > 0n ? ids[i] / batchSize : 0n;
|
|
43523
44041
|
const claimable = batchIdx <= finalizedBatch;
|
|
@@ -43615,7 +44133,7 @@ var readerKinetiq = {
|
|
|
43615
44133
|
for (let i = 0; i < count; i++) {
|
|
43616
44134
|
const r = stage2[i];
|
|
43617
44135
|
if (!r) continue;
|
|
43618
|
-
const hypeAmount = Array.isArray(r) ?
|
|
44136
|
+
const hypeAmount = Array.isArray(r) ? toBigInt12(r[0]) : toBigInt12(r.hypeAmount);
|
|
43619
44137
|
const timestamp = Array.isArray(r) ? toNumber(r[4]) : toNumber(r.timestamp);
|
|
43620
44138
|
if (hypeAmount === void 0 || hypeAmount === 0n || timestamp === void 0) {
|
|
43621
44139
|
continue;
|
|
@@ -43743,7 +44261,7 @@ var readerStakeWise = {
|
|
|
43743
44261
|
const claimedByIdx = /* @__PURE__ */ new Map();
|
|
43744
44262
|
for (let i = 0; i < onChainChecks.length; i++) {
|
|
43745
44263
|
const cell = checkResults[i];
|
|
43746
|
-
const claimed = Array.isArray(cell) ?
|
|
44264
|
+
const claimed = Array.isArray(cell) ? toBigInt12(cell[2]) : toBigInt12(cell?.claimedAssets);
|
|
43747
44265
|
if (claimed !== void 0 && claimed > 0n) {
|
|
43748
44266
|
claimedByIdx.set(onChainChecks[i].idx, claimed);
|
|
43749
44267
|
}
|
|
@@ -43751,7 +44269,7 @@ var readerStakeWise = {
|
|
|
43751
44269
|
const out = [];
|
|
43752
44270
|
for (let i = 0; i < requests.length; i++) {
|
|
43753
44271
|
const r = requests[i];
|
|
43754
|
-
const amount =
|
|
44272
|
+
const amount = toBigInt12(r.totalAssets) ?? 0n;
|
|
43755
44273
|
const onChainClaimed = claimedByIdx.get(i);
|
|
43756
44274
|
const claimable = onChainClaimed !== void 0 || r.isClaimable;
|
|
43757
44275
|
out.push({
|
|
@@ -43808,7 +44326,7 @@ var readerStCelo2 = {
|
|
|
43808
44326
|
const timestamps = cell[1] ?? [];
|
|
43809
44327
|
const out = [];
|
|
43810
44328
|
for (let i = 0; i < values.length; i++) {
|
|
43811
|
-
const amount =
|
|
44329
|
+
const amount = toBigInt12(values[i]);
|
|
43812
44330
|
const readyAt = toNumber(timestamps[i]);
|
|
43813
44331
|
if (amount === void 0 || readyAt === void 0) continue;
|
|
43814
44332
|
out.push({
|
|
@@ -43853,11 +44371,11 @@ var readerStellaUnbond = {
|
|
|
43853
44371
|
let waiting;
|
|
43854
44372
|
let unbonded;
|
|
43855
44373
|
if (Array.isArray(cell)) {
|
|
43856
|
-
waiting =
|
|
43857
|
-
unbonded =
|
|
44374
|
+
waiting = toBigInt12(cell[0]);
|
|
44375
|
+
unbonded = toBigInt12(cell[1]);
|
|
43858
44376
|
} else if (cell && typeof cell === "object") {
|
|
43859
|
-
waiting =
|
|
43860
|
-
unbonded =
|
|
44377
|
+
waiting = toBigInt12(cell.waiting);
|
|
44378
|
+
unbonded = toBigInt12(cell.unbonded);
|
|
43861
44379
|
}
|
|
43862
44380
|
const out = [];
|
|
43863
44381
|
if (unbonded && unbonded > 0n) {
|
|
@@ -43947,7 +44465,7 @@ var readerSwell = {
|
|
|
43947
44465
|
abi: [SwellRswExitAbi, SwellRswExitAbi]
|
|
43948
44466
|
});
|
|
43949
44467
|
const count = toNumber(stage1[0]) ?? 0;
|
|
43950
|
-
const lastProcessed =
|
|
44468
|
+
const lastProcessed = toBigInt12(stage1[1]) ?? 0n;
|
|
43951
44469
|
if (count === 0) return [];
|
|
43952
44470
|
const enumCalls = Array.from({ length: count }, (_3, i) => ({
|
|
43953
44471
|
address: entry.withdrawalContract,
|
|
@@ -43959,7 +44477,7 @@ var readerSwell = {
|
|
|
43959
44477
|
calls: enumCalls,
|
|
43960
44478
|
abi: enumCalls.map(() => SwellRswExitAbi)
|
|
43961
44479
|
});
|
|
43962
|
-
const ids = stage2.map(
|
|
44480
|
+
const ids = stage2.map(toBigInt12).filter((v) => v !== void 0);
|
|
43963
44481
|
if (ids.length === 0) return [];
|
|
43964
44482
|
const detailCalls = ids.map((id) => ({
|
|
43965
44483
|
address: entry.withdrawalContract,
|
|
@@ -43976,7 +44494,7 @@ var readerSwell = {
|
|
|
43976
44494
|
const id = ids[i];
|
|
43977
44495
|
const r = stage3[i];
|
|
43978
44496
|
if (!r) continue;
|
|
43979
|
-
const amount =
|
|
44497
|
+
const amount = toBigInt12(r.amount);
|
|
43980
44498
|
if (amount === void 0) continue;
|
|
43981
44499
|
const claimable = id <= lastProcessed;
|
|
43982
44500
|
out.push({
|
|
@@ -44050,14 +44568,14 @@ var readerValantis = {
|
|
|
44050
44568
|
for (let i = 0; i < burns.length; i++) {
|
|
44051
44569
|
const b = burns[i];
|
|
44052
44570
|
if (!b) continue;
|
|
44053
|
-
const amount = Array.isArray(b) ?
|
|
44571
|
+
const amount = Array.isArray(b) ? toBigInt12(b[0]) : toBigInt12(b.amount);
|
|
44054
44572
|
const completed = Array.isArray(b) ? Boolean(b[2]) : Boolean(b.completed);
|
|
44055
44573
|
if (amount === void 0 || completed) continue;
|
|
44056
44574
|
out.push({
|
|
44057
44575
|
lst: entry.lst,
|
|
44058
44576
|
brand: entry.brand,
|
|
44059
44577
|
symbol: entry.symbol,
|
|
44060
|
-
requestId: String(
|
|
44578
|
+
requestId: String(toBigInt12(ids[i]) ?? i),
|
|
44061
44579
|
amountUnderlying: amount.toString(),
|
|
44062
44580
|
status: redeemable[i] ? "claimable" : "pending"
|
|
44063
44581
|
});
|
|
@@ -44130,7 +44648,7 @@ var readerTruFin = {
|
|
|
44130
44648
|
if (typeof recipient === "string" && recipient.toLowerCase() !== lcUser) {
|
|
44131
44649
|
continue;
|
|
44132
44650
|
}
|
|
44133
|
-
const amount = Array.isArray(w) ?
|
|
44651
|
+
const amount = Array.isArray(w) ? toBigInt12(w[1]) : toBigInt12(w.amount);
|
|
44134
44652
|
if (amount === void 0 || amount === 0n) continue;
|
|
44135
44653
|
out.push({
|
|
44136
44654
|
lst: entry.lst,
|
|
@@ -44226,7 +44744,7 @@ var readerYieldNest = {
|
|
|
44226
44744
|
calls: enumCalls,
|
|
44227
44745
|
abi: enumCalls.map(() => YieldNestWithdrawalQueueAbi)
|
|
44228
44746
|
});
|
|
44229
|
-
const ids = stage2.map(
|
|
44747
|
+
const ids = stage2.map(toBigInt12).filter((v) => v !== void 0);
|
|
44230
44748
|
if (ids.length === 0) return [];
|
|
44231
44749
|
const detailCalls = ids.map((id) => ({
|
|
44232
44750
|
address: entry.withdrawalContract,
|
|
@@ -44245,7 +44763,7 @@ var readerYieldNest = {
|
|
|
44245
44763
|
const id = ids[i];
|
|
44246
44764
|
const r = stage3[i];
|
|
44247
44765
|
if (!r) continue;
|
|
44248
|
-
const amount =
|
|
44766
|
+
const amount = toBigInt12(r.amount);
|
|
44249
44767
|
const created = toNumber(r.creationTimestamp);
|
|
44250
44768
|
const processed = Boolean(r.processed);
|
|
44251
44769
|
if (amount === void 0 || created === void 0) continue;
|
|
@@ -44838,7 +45356,7 @@ var getLstWithdrawalRegistry = (chainId, extraEntries) => {
|
|
|
44838
45356
|
const extra = extraEntries.filter((e) => !seen.has(e.lst.toLowerCase()));
|
|
44839
45357
|
return extra.length === 0 ? base : [...base, ...extra];
|
|
44840
45358
|
};
|
|
44841
|
-
var
|
|
45359
|
+
var warn4 = (...args) => {
|
|
44842
45360
|
};
|
|
44843
45361
|
var getLstWithdrawalRequests = async (user, chainId, multicallRetry, options) => {
|
|
44844
45362
|
const entries = getLstWithdrawalRegistry(chainId, options?.extraEntries);
|
|
@@ -44853,7 +45371,7 @@ var getLstWithdrawalRequests = async (user, chainId, multicallRetry, options) =>
|
|
|
44853
45371
|
try {
|
|
44854
45372
|
return await reader.fetch(lcUser, multicallRetry, chainId, entry, ids);
|
|
44855
45373
|
} catch (e) {
|
|
44856
|
-
|
|
45374
|
+
warn4(
|
|
44857
45375
|
`[lst-withdrawals] ${entry.brand} ${entry.symbol} (${entry.lst}) failed:`,
|
|
44858
45376
|
e?.message ?? e
|
|
44859
45377
|
);
|
|
@@ -44898,7 +45416,7 @@ var Erc4626ReadAbi2 = [
|
|
|
44898
45416
|
|
|
44899
45417
|
// src/vaults/savings/readers/shared.ts
|
|
44900
45418
|
var ONE_E188 = 10n ** 18n;
|
|
44901
|
-
var
|
|
45419
|
+
var toBigInt13 = (v) => {
|
|
44902
45420
|
if (v === void 0 || v === null) return void 0;
|
|
44903
45421
|
if (typeof v === "bigint") return v;
|
|
44904
45422
|
if (typeof v === "number") return BigInt(v);
|
|
@@ -44929,9 +45447,9 @@ var readerErc46262 = (entry) => {
|
|
|
44929
45447
|
],
|
|
44930
45448
|
abis: [Erc4626ReadAbi2, TotalSupplyAbi2, Erc4626ReadAbi2],
|
|
44931
45449
|
parse: ([assets, supply, rate]) => {
|
|
44932
|
-
const totalAssets =
|
|
44933
|
-
const totalSupply =
|
|
44934
|
-
const convertToAssetsRaw =
|
|
45450
|
+
const totalAssets = toBigInt13(assets);
|
|
45451
|
+
const totalSupply = toBigInt13(supply);
|
|
45452
|
+
const convertToAssetsRaw = toBigInt13(rate);
|
|
44935
45453
|
if (totalAssets === void 0 || totalSupply === void 0 || convertToAssetsRaw === void 0) {
|
|
44936
45454
|
return void 0;
|
|
44937
45455
|
}
|
|
@@ -44946,67 +45464,6 @@ var readerErc46262 = (entry) => {
|
|
|
44946
45464
|
|
|
44947
45465
|
// src/vaults/savings/readers/index.ts
|
|
44948
45466
|
var buildReader2 = (entry) => readerErc46262(entry);
|
|
44949
|
-
var CHAIN_ID7 = "4663";
|
|
44950
|
-
var VAULT2 = "0xde770c84fe66e063336b31737cfe9790f18c4087";
|
|
44951
|
-
var SPARK_SAVINGS_USDG_KEY = "SPUSDG";
|
|
44952
|
-
var RAY3 = 10n ** 27n;
|
|
44953
|
-
var YEAR_SECONDS9 = 365 * 24 * 60 * 60;
|
|
44954
|
-
var WINDOW_BLOCKS6 = 400000n;
|
|
44955
|
-
var MAX_RPC_TRIES6 = 3;
|
|
44956
|
-
var CHI_ABI = [
|
|
44957
|
-
{
|
|
44958
|
-
name: "chi",
|
|
44959
|
-
type: "function",
|
|
44960
|
-
stateMutability: "view",
|
|
44961
|
-
inputs: [],
|
|
44962
|
-
outputs: [{ type: "uint256" }]
|
|
44963
|
-
}
|
|
44964
|
-
];
|
|
44965
|
-
var readChiAt = (client, blockNumber) => client.readContract({
|
|
44966
|
-
address: VAULT2,
|
|
44967
|
-
abi: CHI_ABI,
|
|
44968
|
-
functionName: "chi",
|
|
44969
|
-
...blockNumber !== void 0 ? { blockNumber } : {}
|
|
44970
|
-
});
|
|
44971
|
-
var computeApr7 = async () => {
|
|
44972
|
-
let lastErr;
|
|
44973
|
-
for (let rpcId = 0; rpcId < MAX_RPC_TRIES6; rpcId++) {
|
|
44974
|
-
try {
|
|
44975
|
-
const client = getEvmClient(CHAIN_ID7, rpcId);
|
|
44976
|
-
const head = await client.getBlockNumber();
|
|
44977
|
-
const pastBlock = head > WINDOW_BLOCKS6 ? head - WINDOW_BLOCKS6 : 0n;
|
|
44978
|
-
const [chiNow, chiThen, headBlock, thenBlock] = await Promise.all([
|
|
44979
|
-
readChiAt(client),
|
|
44980
|
-
readChiAt(client, pastBlock),
|
|
44981
|
-
client.getBlock({ blockNumber: head }),
|
|
44982
|
-
client.getBlock({ blockNumber: pastBlock })
|
|
44983
|
-
]);
|
|
44984
|
-
if (chiNow < RAY3 || chiThen < RAY3 || chiNow < chiThen) {
|
|
44985
|
-
throw new Error(
|
|
44986
|
-
`non-archival or invalid chi (now=${chiNow}, then=${chiThen})`
|
|
44987
|
-
);
|
|
44988
|
-
}
|
|
44989
|
-
const elapsed = Number(headBlock.timestamp - thenBlock.timestamp);
|
|
44990
|
-
if (elapsed <= 0) throw new Error("non-positive elapsed window");
|
|
44991
|
-
const growth = Number(chiNow - chiThen) / Number(chiThen);
|
|
44992
|
-
const apr = growth * (YEAR_SECONDS9 / elapsed) * 100;
|
|
44993
|
-
if (!Number.isFinite(apr) || apr < 0) throw new Error(`bad apr ${apr}`);
|
|
44994
|
-
return apr;
|
|
44995
|
-
} catch (e) {
|
|
44996
|
-
lastErr = e;
|
|
44997
|
-
}
|
|
44998
|
-
}
|
|
44999
|
-
throw new Error(
|
|
45000
|
-
`spUSDG APR: no Robinhood RPC returned valid historical chi (${String(lastErr)})`
|
|
45001
|
-
);
|
|
45002
|
-
};
|
|
45003
|
-
var sparkSavingsUsdgFetcher = {
|
|
45004
|
-
label: "SPARK_SAVINGS_USDG",
|
|
45005
|
-
fetch: async () => {
|
|
45006
|
-
const apr = await computeApr7();
|
|
45007
|
-
return { [SPARK_SAVINGS_USDG_KEY]: apr };
|
|
45008
|
-
}
|
|
45009
|
-
};
|
|
45010
45467
|
|
|
45011
45468
|
// src/vaults/savings/registry.ts
|
|
45012
45469
|
var stUsdGroup = {
|
|
@@ -45827,7 +46284,7 @@ var resolveAaveEarnCuratorName = (chainId, owner) => {
|
|
|
45827
46284
|
|
|
45828
46285
|
// src/vaults/aave-earn/fetchPublic.ts
|
|
45829
46286
|
var BRAND2 = "Aave";
|
|
45830
|
-
var
|
|
46287
|
+
var toBigInt14 = (v) => {
|
|
45831
46288
|
if (v === void 0 || v === null) return void 0;
|
|
45832
46289
|
if (typeof v === "bigint") return v;
|
|
45833
46290
|
if (typeof v === "number") return BigInt(v);
|
|
@@ -45887,15 +46344,15 @@ var fetchAaveEarnVaults = async (chainId, multicallRetry, prices = {}, tokenList
|
|
|
45887
46344
|
const token = v.usedReserve.underlyingToken;
|
|
45888
46345
|
const underlyingLc = token.address.toLowerCase();
|
|
45889
46346
|
const assetDecimals = token.decimals;
|
|
45890
|
-
const shareDecOnChain =
|
|
46347
|
+
const shareDecOnChain = toBigInt14(slice[1]);
|
|
45891
46348
|
const decimals = shareDecOnChain !== void 0 ? Number(shareDecOnChain) : assetDecimals;
|
|
45892
|
-
const totalSupply =
|
|
46349
|
+
const totalSupply = toBigInt14(slice[2]);
|
|
45893
46350
|
if (totalSupply === void 0) continue;
|
|
45894
46351
|
const shareUnit = 10n ** BigInt(decimals);
|
|
45895
46352
|
const underlyingUnit = 10n ** BigInt(assetDecimals);
|
|
45896
|
-
const convertToAssets =
|
|
46353
|
+
const convertToAssets = toBigInt14(slice[3]) ?? 0n;
|
|
45897
46354
|
const convertToShares = convertToAssets > 0n ? shareUnit * underlyingUnit / convertToAssets : 0n;
|
|
45898
|
-
const totalAssets =
|
|
46355
|
+
const totalAssets = toBigInt14(slice[0]) ?? totalSupply * convertToAssets / shareUnit;
|
|
45899
46356
|
const totalAssetsFormatted = Number(totalAssets) / 10 ** assetDecimals;
|
|
45900
46357
|
const asset = tokenList[underlyingLc];
|
|
45901
46358
|
const priceUsd = prices[underlyingLc] ?? (v.balance?.usdPerToken != null ? num2(v.balance.usdPerToken) : void 0);
|
|
@@ -47914,7 +48371,7 @@ function buildVaultLookup(data) {
|
|
|
47914
48371
|
addEntries(data.yearn, "yearn");
|
|
47915
48372
|
return map;
|
|
47916
48373
|
}
|
|
47917
|
-
var
|
|
48374
|
+
var warn5 = (...args) => {
|
|
47918
48375
|
};
|
|
47919
48376
|
var HYPERCORE_PROVIDER_CHAIN = "999";
|
|
47920
48377
|
var getVaultPublicDataAll = async (chainId, providers, multicallRetry, prices = {}, tokenList = {}, options) => {
|
|
@@ -47927,7 +48384,7 @@ var getVaultPublicDataAll = async (chainId, providers, multicallRetry, prices =
|
|
|
47927
48384
|
fetchFluidFTokens(chainId, multicallRetry, prices, tokenList).then((res) => {
|
|
47928
48385
|
out.fluid = res;
|
|
47929
48386
|
}).catch((e) => {
|
|
47930
|
-
|
|
48387
|
+
warn5(
|
|
47931
48388
|
`[vaults] fluid fetch failed for chain ${chainId}:`,
|
|
47932
48389
|
e?.message ?? e
|
|
47933
48390
|
);
|
|
@@ -47939,7 +48396,7 @@ var getVaultPublicDataAll = async (chainId, providers, multicallRetry, prices =
|
|
|
47939
48396
|
fetchGearboxV3Pools(chainId, multicallRetry, prices, tokenList).then((res) => {
|
|
47940
48397
|
out.gearbox = res;
|
|
47941
48398
|
}).catch((e) => {
|
|
47942
|
-
|
|
48399
|
+
warn5(
|
|
47943
48400
|
`[vaults] gearbox fetch failed for chain ${chainId}:`,
|
|
47944
48401
|
e?.message ?? e
|
|
47945
48402
|
);
|
|
@@ -47951,7 +48408,7 @@ var getVaultPublicDataAll = async (chainId, providers, multicallRetry, prices =
|
|
|
47951
48408
|
fetchMorphoVaults(chainId, multicallRetry, prices, tokenList).then((res) => {
|
|
47952
48409
|
out.morpho = res;
|
|
47953
48410
|
}).catch((e) => {
|
|
47954
|
-
|
|
48411
|
+
warn5(
|
|
47955
48412
|
`[vaults] morpho fetch failed for chain ${chainId}:`,
|
|
47956
48413
|
e?.message ?? e
|
|
47957
48414
|
);
|
|
@@ -47963,7 +48420,7 @@ var getVaultPublicDataAll = async (chainId, providers, multicallRetry, prices =
|
|
|
47963
48420
|
fetchListaVaultsFromChain(chainId, multicallRetry, prices, tokenList).then((res) => {
|
|
47964
48421
|
out.lista = res;
|
|
47965
48422
|
}).catch((e) => {
|
|
47966
|
-
|
|
48423
|
+
warn5(
|
|
47967
48424
|
`[vaults] lista fetch failed for chain ${chainId}:`,
|
|
47968
48425
|
e?.message ?? e
|
|
47969
48426
|
);
|
|
@@ -47978,7 +48435,7 @@ var getVaultPublicDataAll = async (chainId, providers, multicallRetry, prices =
|
|
|
47978
48435
|
}).then((res) => {
|
|
47979
48436
|
out.silo = res;
|
|
47980
48437
|
}).catch((e) => {
|
|
47981
|
-
|
|
48438
|
+
warn5(
|
|
47982
48439
|
`[vaults] silo fetch failed for chain ${chainId}:`,
|
|
47983
48440
|
e?.message ?? e
|
|
47984
48441
|
);
|
|
@@ -47990,7 +48447,7 @@ var getVaultPublicDataAll = async (chainId, providers, multicallRetry, prices =
|
|
|
47990
48447
|
fetchEulerEarnVaults(chainId, prices, tokenList, multicallRetry).then((res) => {
|
|
47991
48448
|
out["euler-earn"] = res;
|
|
47992
48449
|
}).catch((e) => {
|
|
47993
|
-
|
|
48450
|
+
warn5(
|
|
47994
48451
|
`[vaults] euler-earn fetch failed for chain ${chainId}:`,
|
|
47995
48452
|
e?.message ?? e
|
|
47996
48453
|
);
|
|
@@ -48002,7 +48459,7 @@ var getVaultPublicDataAll = async (chainId, providers, multicallRetry, prices =
|
|
|
48002
48459
|
fetchLstShareTokens(chainId, multicallRetry, prices, tokenList).then((res) => {
|
|
48003
48460
|
out.lst = res;
|
|
48004
48461
|
}).catch((e) => {
|
|
48005
|
-
|
|
48462
|
+
warn5(
|
|
48006
48463
|
`[vaults] lst fetch failed for chain ${chainId}:`,
|
|
48007
48464
|
e?.message ?? e
|
|
48008
48465
|
);
|
|
@@ -48014,7 +48471,7 @@ var getVaultPublicDataAll = async (chainId, providers, multicallRetry, prices =
|
|
|
48014
48471
|
fetchSavingsVaults(chainId, multicallRetry, prices, tokenList).then((res) => {
|
|
48015
48472
|
out.savings = res;
|
|
48016
48473
|
}).catch((e) => {
|
|
48017
|
-
|
|
48474
|
+
warn5(
|
|
48018
48475
|
`[vaults] savings fetch failed for chain ${chainId}:`,
|
|
48019
48476
|
e?.message ?? e
|
|
48020
48477
|
);
|
|
@@ -48026,7 +48483,7 @@ var getVaultPublicDataAll = async (chainId, providers, multicallRetry, prices =
|
|
|
48026
48483
|
fetchLagoonVaults(chainId, prices, tokenList).then((res) => {
|
|
48027
48484
|
out.lagoon = res;
|
|
48028
48485
|
}).catch((e) => {
|
|
48029
|
-
|
|
48486
|
+
warn5(
|
|
48030
48487
|
`[vaults] lagoon fetch failed for chain ${chainId}:`,
|
|
48031
48488
|
e?.message ?? e
|
|
48032
48489
|
);
|
|
@@ -48038,7 +48495,7 @@ var getVaultPublicDataAll = async (chainId, providers, multicallRetry, prices =
|
|
|
48038
48495
|
fetchAaveEarnVaults(chainId, multicallRetry, prices, tokenList).then((res) => {
|
|
48039
48496
|
out["aave-earn"] = res;
|
|
48040
48497
|
}).catch((e) => {
|
|
48041
|
-
|
|
48498
|
+
warn5(
|
|
48042
48499
|
`[vaults] aave-earn fetch failed for chain ${chainId}:`,
|
|
48043
48500
|
e?.message ?? e
|
|
48044
48501
|
);
|
|
@@ -48050,7 +48507,7 @@ var getVaultPublicDataAll = async (chainId, providers, multicallRetry, prices =
|
|
|
48050
48507
|
fetchUpshiftVaults(chainId, prices, tokenList).then((res) => {
|
|
48051
48508
|
out.upshift = res;
|
|
48052
48509
|
}).catch((e) => {
|
|
48053
|
-
|
|
48510
|
+
warn5(
|
|
48054
48511
|
`[vaults] upshift fetch failed for chain ${chainId}:`,
|
|
48055
48512
|
e?.message ?? e
|
|
48056
48513
|
);
|
|
@@ -48062,7 +48519,7 @@ var getVaultPublicDataAll = async (chainId, providers, multicallRetry, prices =
|
|
|
48062
48519
|
fetchYearnVaults(chainId, multicallRetry, prices, tokenList).then((res) => {
|
|
48063
48520
|
out.yearn = res;
|
|
48064
48521
|
}).catch((e) => {
|
|
48065
|
-
|
|
48522
|
+
warn5(
|
|
48066
48523
|
`[vaults] yearn fetch failed for chain ${chainId}:`,
|
|
48067
48524
|
e?.message ?? e
|
|
48068
48525
|
);
|
|
@@ -48074,7 +48531,7 @@ var getVaultPublicDataAll = async (chainId, providers, multicallRetry, prices =
|
|
|
48074
48531
|
fetchHypercoreVaults().then((res) => {
|
|
48075
48532
|
out.hypercore = res;
|
|
48076
48533
|
}).catch((e) => {
|
|
48077
|
-
|
|
48534
|
+
warn5(
|
|
48078
48535
|
`[vaults] hypercore fetch failed for chain ${chainId}:`,
|
|
48079
48536
|
e?.message ?? e
|
|
48080
48537
|
);
|
|
@@ -48086,7 +48543,7 @@ var getVaultPublicDataAll = async (chainId, providers, multicallRetry, prices =
|
|
|
48086
48543
|
fetchGmxVaults(chainId, multicallRetry).then((res) => {
|
|
48087
48544
|
out.gmx = res;
|
|
48088
48545
|
}).catch((e) => {
|
|
48089
|
-
|
|
48546
|
+
warn5(
|
|
48090
48547
|
`[vaults] gmx fetch failed for chain ${chainId}:`,
|
|
48091
48548
|
e?.message ?? e
|
|
48092
48549
|
);
|
|
@@ -48102,7 +48559,7 @@ var getVaultPublicDataAll = async (chainId, providers, multicallRetry, prices =
|
|
|
48102
48559
|
);
|
|
48103
48560
|
if (fees) out.gmxExecutionFees = fees;
|
|
48104
48561
|
})().catch((e) => {
|
|
48105
|
-
|
|
48562
|
+
warn5(
|
|
48106
48563
|
`[vaults] gmx execution-fee fetch failed for chain ${chainId}:`,
|
|
48107
48564
|
e?.message ?? e
|
|
48108
48565
|
);
|