@1delta/margin-fetcher 0.0.216 → 0.0.218
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 +292 -295
- package/dist/index.js.map +1 -1
- package/dist/lending/public-data/aave-v4-type/fetcher/normalize.d.ts +1 -1
- package/dist/lending/public-data/aave-v4-type/fetcher/normalize.d.ts.map +1 -1
- package/dist/lending/public-data/aave-v4-type/publicCallBuild.d.ts +10 -4
- package/dist/lending/public-data/aave-v4-type/publicCallBuild.d.ts.map +1 -1
- package/dist/lending/public-data/aave-v4-type/publicCallParse.d.ts.map +1 -1
- package/dist/lending/public-data/fetchLenderExt.d.ts.map +1 -1
- package/dist/lending/public-data/init/publicCallParse.d.ts.map +1 -1
- package/dist/lending/public-data/morpho/convertPublic.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v4-type/createAaveV4UserState.d.ts +1 -10
- package/dist/lending/user-data/aave-v4-type/createAaveV4UserState.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v4-type/userCallParse.d.ts.map +1 -1
- package/dist/lending/user-data/fetch-balances/e2e.d.ts.map +1 -1
- package/dist/yields/intrinsic/fetchers/reserve.d.ts.map +1 -1
- package/dist/yields/intrinsic/fetchers/resolv.d.ts.map +1 -1
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -6275,6 +6275,7 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
|
|
|
6275
6275
|
compoundV3Bulker: {},
|
|
6276
6276
|
eulerConfigs: {},
|
|
6277
6277
|
eulerVaults: {},
|
|
6278
|
+
aaveV4Hubs: {},
|
|
6278
6279
|
aaveV4Spokes: {},
|
|
6279
6280
|
aaveV4Reserves: {},
|
|
6280
6281
|
aaveV4Oracles: {}
|
|
@@ -6302,6 +6303,7 @@ var initConfig = () => getGlobalData2()?.initConfig;
|
|
|
6302
6303
|
var aaveOraclesConfig = () => getGlobalData2()?.aaveOraclesConfig;
|
|
6303
6304
|
var eulerConfigs = () => getGlobalData2()?.eulerConfigs;
|
|
6304
6305
|
var eulerVaults = () => getGlobalData2()?.eulerVaults;
|
|
6306
|
+
var aaveV4Hubs = () => getGlobalData2()?.aaveV4Hubs;
|
|
6305
6307
|
var aaveV4Spokes = () => getGlobalData2()?.aaveV4Spokes;
|
|
6306
6308
|
var aaveV4Reserves = () => getGlobalData2()?.aaveV4Reserves;
|
|
6307
6309
|
var aaveV4Oracles = () => getGlobalData2()?.aaveV4Oracles;
|
|
@@ -8469,18 +8471,18 @@ var populateEModes32 = (borrowCollateralFactor, collateralFactor, collateralBitm
|
|
|
8469
8471
|
data[e].borrowCollateralFactor = borrowCollateralFactor;
|
|
8470
8472
|
data[e].debtDisabled = !!eModeConfigs[e];
|
|
8471
8473
|
if (eModeConfigs[e]) {
|
|
8472
|
-
data[e] =
|
|
8473
|
-
|
|
8474
|
-
|
|
8475
|
-
|
|
8476
|
-
|
|
8477
|
-
|
|
8478
|
-
|
|
8479
|
-
|
|
8480
|
-
|
|
8481
|
-
|
|
8482
|
-
|
|
8483
|
-
|
|
8474
|
+
data[e].category = e;
|
|
8475
|
+
data[e].borrowCollateralFactor = eModeConfigs[e]?.borrowCollateralFactor ?? 0;
|
|
8476
|
+
data[e].collateralFactor = eModeConfigs[e]?.collateralFactor ?? 0;
|
|
8477
|
+
data[e].borrowFactor = 1;
|
|
8478
|
+
data[e].collateralDisabled = !isReserveEnabledOnBitmap(
|
|
8479
|
+
collateralBitmap[e],
|
|
8480
|
+
assetIndex
|
|
8481
|
+
);
|
|
8482
|
+
data[e].debtDisabled = !isReserveEnabledOnBitmap(
|
|
8483
|
+
debtBitmap[e],
|
|
8484
|
+
assetIndex
|
|
8485
|
+
);
|
|
8484
8486
|
}
|
|
8485
8487
|
}
|
|
8486
8488
|
}
|
|
@@ -8775,65 +8777,61 @@ var getInitReservesDataConverter = (lender, chainId, prices, additionalYields, t
|
|
|
8775
8777
|
return void 0;
|
|
8776
8778
|
}
|
|
8777
8779
|
const modeOne = 0;
|
|
8778
|
-
|
|
8779
|
-
|
|
8780
|
-
|
|
8781
|
-
|
|
8782
|
-
|
|
8783
|
-
|
|
8784
|
-
|
|
8785
|
-
|
|
8786
|
-
|
|
8787
|
-
|
|
8788
|
-
|
|
8780
|
+
const result = {};
|
|
8781
|
+
data[modeOne]?.forEach((dat) => {
|
|
8782
|
+
const asset = dat?.underlying.toLowerCase();
|
|
8783
|
+
const meta = tokenList[asset];
|
|
8784
|
+
const totalDeposits = parseRawAmount(
|
|
8785
|
+
dat?.totalSupply.toString(),
|
|
8786
|
+
meta?.decimals
|
|
8787
|
+
);
|
|
8788
|
+
const totalDebt = parseRawAmount(
|
|
8789
|
+
dat?.totalDebt.toString(),
|
|
8790
|
+
meta.decimals
|
|
8791
|
+
);
|
|
8792
|
+
const oracleKey = toOracleKey(meta?.assetGroup) ?? toGenericPriceKey(asset, chainId);
|
|
8793
|
+
const price = prices[oracleKey];
|
|
8794
|
+
const liquidity = Number(totalDeposits) - Number(totalDebt);
|
|
8795
|
+
const poolId = underlyingToPoolMap.get(asset);
|
|
8796
|
+
const params = !!poolId ? { metadata: { poolId } } : void 0;
|
|
8797
|
+
if (!poolId) return;
|
|
8798
|
+
const marketUid = createMarketUid(chainId, lender, poolId);
|
|
8799
|
+
const name = INIT_POOL_NAME_OVERRIDES[poolId.toLowerCase()] ?? lenderShortName(lender) + " " + (meta?.symbol ?? "");
|
|
8800
|
+
result[asset] = {
|
|
8801
|
+
marketUid,
|
|
8802
|
+
name,
|
|
8803
|
+
poolId: asset,
|
|
8804
|
+
underlying: asset,
|
|
8805
|
+
asset: meta,
|
|
8806
|
+
borrowCap: parseRawAmount(
|
|
8807
|
+
dat?.borrowCap.toString(),
|
|
8789
8808
|
meta.decimals
|
|
8790
|
-
)
|
|
8791
|
-
|
|
8792
|
-
|
|
8793
|
-
|
|
8794
|
-
|
|
8795
|
-
|
|
8796
|
-
|
|
8797
|
-
|
|
8798
|
-
|
|
8799
|
-
|
|
8800
|
-
|
|
8801
|
-
|
|
8802
|
-
|
|
8803
|
-
|
|
8804
|
-
|
|
8805
|
-
|
|
8806
|
-
|
|
8807
|
-
|
|
8808
|
-
|
|
8809
|
-
|
|
8810
|
-
|
|
8811
|
-
|
|
8812
|
-
|
|
8813
|
-
|
|
8814
|
-
|
|
8815
|
-
|
|
8816
|
-
totalDepositsUSD: price * Number(totalDeposits),
|
|
8817
|
-
totalDebtUSD: price * Number(totalDebt),
|
|
8818
|
-
totalLiquidity: liquidity,
|
|
8819
|
-
totalLiquidityUSD: liquidity * price,
|
|
8820
|
-
depositRate: convertRateToApr(
|
|
8821
|
-
Number(parseRawAmount(dat?.supplyRate.toString(), 18))
|
|
8822
|
-
),
|
|
8823
|
-
variableBorrowRate: convertRateToApr(
|
|
8824
|
-
Number(parseRawAmount(dat?.borrowRate.toString(), 18))
|
|
8825
|
-
),
|
|
8826
|
-
stableBorrowRate: 0,
|
|
8827
|
-
collateralActive: true,
|
|
8828
|
-
intrinsicYield: additionalYields?.intrinsicYields?.[oracleKey] ?? 0,
|
|
8829
|
-
rewards: [],
|
|
8830
|
-
config: {},
|
|
8831
|
-
borrowingEnabled: totalDebt !== "0",
|
|
8832
|
-
params
|
|
8833
|
-
}
|
|
8834
|
-
};
|
|
8835
|
-
})
|
|
8836
|
-
);
|
|
8809
|
+
),
|
|
8810
|
+
canBurn: Boolean(dat?.canBurn),
|
|
8811
|
+
canFlash: Boolean(dat?.canFlash),
|
|
8812
|
+
canMint: Boolean(dat?.canMint),
|
|
8813
|
+
canRepay: Boolean(dat?.canRepay),
|
|
8814
|
+
totalDeposits,
|
|
8815
|
+
totalDebt,
|
|
8816
|
+
totalDepositsUSD: price * Number(totalDeposits),
|
|
8817
|
+
totalDebtUSD: price * Number(totalDebt),
|
|
8818
|
+
totalLiquidity: liquidity,
|
|
8819
|
+
totalLiquidityUSD: liquidity * price,
|
|
8820
|
+
depositRate: convertRateToApr(
|
|
8821
|
+
Number(parseRawAmount(dat?.supplyRate.toString(), 18))
|
|
8822
|
+
),
|
|
8823
|
+
variableBorrowRate: convertRateToApr(
|
|
8824
|
+
Number(parseRawAmount(dat?.borrowRate.toString(), 18))
|
|
8825
|
+
),
|
|
8826
|
+
stableBorrowRate: 0,
|
|
8827
|
+
collateralActive: true,
|
|
8828
|
+
intrinsicYield: additionalYields?.intrinsicYields?.[oracleKey] ?? 0,
|
|
8829
|
+
rewards: [],
|
|
8830
|
+
config: {},
|
|
8831
|
+
borrowingEnabled: totalDebt !== "0",
|
|
8832
|
+
params
|
|
8833
|
+
};
|
|
8834
|
+
});
|
|
8837
8835
|
let eModes = {};
|
|
8838
8836
|
INIT_MODES.forEach((mode, index) => {
|
|
8839
8837
|
data[index]?.forEach((multicallData) => {
|
|
@@ -8857,11 +8855,12 @@ var getInitReservesDataConverter = (lender, chainId, prices, additionalYields, t
|
|
|
8857
8855
|
result[asset].config[mode] = modeData;
|
|
8858
8856
|
});
|
|
8859
8857
|
});
|
|
8860
|
-
Object.entries(eModes).forEach(([modeId,
|
|
8861
|
-
Object.entries(result)
|
|
8858
|
+
Object.entries(eModes).forEach(([modeId, modeData]) => {
|
|
8859
|
+
Object.entries(result).forEach(([key, _3]) => {
|
|
8862
8860
|
if (!result[key].config[modeId]) {
|
|
8863
|
-
|
|
8864
|
-
|
|
8861
|
+
result[key].config[modeId] = {
|
|
8862
|
+
label: modeData.label,
|
|
8863
|
+
category: modeData.category,
|
|
8865
8864
|
debtDisabled: true,
|
|
8866
8865
|
collateralDisabled: true,
|
|
8867
8866
|
collateralFactor: 0,
|
|
@@ -8869,7 +8868,6 @@ var getInitReservesDataConverter = (lender, chainId, prices, additionalYields, t
|
|
|
8869
8868
|
borrowFactor: 3402823669209385e5
|
|
8870
8869
|
// disabled flag
|
|
8871
8870
|
};
|
|
8872
|
-
result[key].config[modeId] = mode;
|
|
8873
8871
|
}
|
|
8874
8872
|
});
|
|
8875
8873
|
});
|
|
@@ -12104,7 +12102,9 @@ function convertMarketsToMorphoResponse(response, chainId, additionalYields = {
|
|
|
12104
12102
|
loaded: true
|
|
12105
12103
|
}, tokens = {}) {
|
|
12106
12104
|
const data = {};
|
|
12107
|
-
response
|
|
12105
|
+
const items = response?.markets?.items;
|
|
12106
|
+
if (!items) return data;
|
|
12107
|
+
items.forEach((market) => {
|
|
12108
12108
|
const {
|
|
12109
12109
|
uniqueKey,
|
|
12110
12110
|
lltv,
|
|
@@ -17895,6 +17895,7 @@ var getEulerV2ReservesDataConverter = (lender, chainId, prices, additionalYields
|
|
|
17895
17895
|
// src/lending/public-data/aave-v4-type/publicCallBuild.ts
|
|
17896
17896
|
var BASE_CALLS_PER_RESERVE = 5;
|
|
17897
17897
|
var CALLS_PER_SPOKE_TAIL = 2;
|
|
17898
|
+
var MAX_HUB_ASSETS = 25;
|
|
17898
17899
|
function isValidAddress(addr) {
|
|
17899
17900
|
return !!addr && addr !== "0x" && addr.length > 2;
|
|
17900
17901
|
}
|
|
@@ -17910,8 +17911,6 @@ var buildAaveV4LenderReserveCall = (chainId, lender) => {
|
|
|
17910
17911
|
const reservesMap = aaveV4Reserves()?.[lender]?.[chainId] ?? {};
|
|
17911
17912
|
if (spokes.length === 0) return [];
|
|
17912
17913
|
const calls = [];
|
|
17913
|
-
const hubAssetKeys = /* @__PURE__ */ new Set();
|
|
17914
|
-
const hubAssetList = [];
|
|
17915
17914
|
for (const spokeEntry of spokes) {
|
|
17916
17915
|
if (!isValidAddress(spokeEntry.spoke)) continue;
|
|
17917
17916
|
const spokeAddr = spokeEntry.spoke;
|
|
@@ -17953,17 +17952,6 @@ var buildAaveV4LenderReserveCall = (chainId, lender) => {
|
|
|
17953
17952
|
params: [rid, key]
|
|
17954
17953
|
});
|
|
17955
17954
|
}
|
|
17956
|
-
if (typeof entry === "object" && spokeEntry.hub && entry.assetId !== void 0) {
|
|
17957
|
-
const hubLc = spokeEntry.hub.toLowerCase();
|
|
17958
|
-
const key = `${hubLc}:${entry.assetId}`;
|
|
17959
|
-
if (!hubAssetKeys.has(key)) {
|
|
17960
|
-
hubAssetKeys.add(key);
|
|
17961
|
-
hubAssetList.push({
|
|
17962
|
-
hub: hubLc,
|
|
17963
|
-
assetId: entry.assetId
|
|
17964
|
-
});
|
|
17965
|
-
}
|
|
17966
|
-
}
|
|
17967
17955
|
}
|
|
17968
17956
|
calls.push(
|
|
17969
17957
|
{
|
|
@@ -17980,10 +17968,7 @@ var buildAaveV4LenderReserveCall = (chainId, lender) => {
|
|
|
17980
17968
|
}
|
|
17981
17969
|
for (const spokeEntry of spokes) {
|
|
17982
17970
|
if (!isValidAddress(spokeEntry.spoke)) continue;
|
|
17983
|
-
const reserves = getSpokeReserves(
|
|
17984
|
-
reservesMap,
|
|
17985
|
-
spokeEntry.spoke
|
|
17986
|
-
);
|
|
17971
|
+
const reserves = getSpokeReserves(reservesMap, spokeEntry.spoke);
|
|
17987
17972
|
const rids = reserves.map(
|
|
17988
17973
|
(e) => typeof e === "number" ? e : e.reserveId
|
|
17989
17974
|
);
|
|
@@ -17995,24 +17980,33 @@ var buildAaveV4LenderReserveCall = (chainId, lender) => {
|
|
|
17995
17980
|
});
|
|
17996
17981
|
}
|
|
17997
17982
|
}
|
|
17998
|
-
|
|
17999
|
-
|
|
18000
|
-
|
|
18001
|
-
|
|
18002
|
-
|
|
18003
|
-
|
|
18004
|
-
|
|
18005
|
-
|
|
18006
|
-
|
|
18007
|
-
|
|
18008
|
-
|
|
18009
|
-
|
|
18010
|
-
|
|
18011
|
-
|
|
18012
|
-
|
|
18013
|
-
|
|
18014
|
-
|
|
18015
|
-
|
|
17983
|
+
const hubEntry = aaveV4Hubs()?.[lender]?.[chainId];
|
|
17984
|
+
if (hubEntry?.hub && isValidAddress(hubEntry.hub)) {
|
|
17985
|
+
const hubAddr = hubEntry.hub.toLowerCase();
|
|
17986
|
+
calls.push({
|
|
17987
|
+
address: hubAddr,
|
|
17988
|
+
name: "getAssetCount",
|
|
17989
|
+
params: []
|
|
17990
|
+
});
|
|
17991
|
+
for (let i = 0; i < MAX_HUB_ASSETS; i++) {
|
|
17992
|
+
calls.push(
|
|
17993
|
+
{
|
|
17994
|
+
address: hubAddr,
|
|
17995
|
+
name: "getAsset",
|
|
17996
|
+
params: [i]
|
|
17997
|
+
},
|
|
17998
|
+
{
|
|
17999
|
+
address: hubAddr,
|
|
18000
|
+
name: "getAddedAssets",
|
|
18001
|
+
params: [i]
|
|
18002
|
+
},
|
|
18003
|
+
{
|
|
18004
|
+
address: hubAddr,
|
|
18005
|
+
name: "getAssetTotalOwed",
|
|
18006
|
+
params: [i]
|
|
18007
|
+
}
|
|
18008
|
+
);
|
|
18009
|
+
}
|
|
18016
18010
|
}
|
|
18017
18011
|
return calls;
|
|
18018
18012
|
};
|
|
@@ -18020,13 +18014,9 @@ var getAaveV4ExpectedCallCount = (chainId, lender) => {
|
|
|
18020
18014
|
const spokes = aaveV4Spokes()?.[lender]?.[chainId] ?? [];
|
|
18021
18015
|
const reservesMap = aaveV4Reserves()?.[lender]?.[chainId] ?? {};
|
|
18022
18016
|
let count = 0;
|
|
18023
|
-
const hubAssetKeys = /* @__PURE__ */ new Set();
|
|
18024
18017
|
for (const spokeEntry of spokes) {
|
|
18025
18018
|
if (!isValidAddress(spokeEntry.spoke)) continue;
|
|
18026
|
-
const reserves = getSpokeReserves(
|
|
18027
|
-
reservesMap,
|
|
18028
|
-
spokeEntry.spoke
|
|
18029
|
-
);
|
|
18019
|
+
const reserves = getSpokeReserves(reservesMap, spokeEntry.spoke);
|
|
18030
18020
|
const dynConfigCount = getDynamicConfigCount(spokeEntry);
|
|
18031
18021
|
count += reserves.length * (BASE_CALLS_PER_RESERVE + dynConfigCount) + CALLS_PER_SPOKE_TAIL;
|
|
18032
18022
|
const rids = reserves.map(
|
|
@@ -18035,15 +18025,11 @@ var getAaveV4ExpectedCallCount = (chainId, lender) => {
|
|
|
18035
18025
|
if (rids.length > 0 && isValidAddress(spokeEntry.oracle)) {
|
|
18036
18026
|
count += 1;
|
|
18037
18027
|
}
|
|
18038
|
-
for (const entry of reserves) {
|
|
18039
|
-
if (typeof entry === "object" && spokeEntry.hub && entry.assetId !== void 0) {
|
|
18040
|
-
hubAssetKeys.add(
|
|
18041
|
-
`${spokeEntry.hub.toLowerCase()}:${entry.assetId}`
|
|
18042
|
-
);
|
|
18043
|
-
}
|
|
18044
|
-
}
|
|
18045
18028
|
}
|
|
18046
|
-
|
|
18029
|
+
const hubEntry = aaveV4Hubs()?.[lender]?.[chainId];
|
|
18030
|
+
if (hubEntry?.hub && isValidAddress(hubEntry.hub)) {
|
|
18031
|
+
count += 1 + MAX_HUB_ASSETS * 3;
|
|
18032
|
+
}
|
|
18047
18033
|
return count;
|
|
18048
18034
|
};
|
|
18049
18035
|
|
|
@@ -18058,17 +18044,22 @@ function toTokenNumber(raw, decimals) {
|
|
|
18058
18044
|
return Number(raw) / 10 ** decimals;
|
|
18059
18045
|
}
|
|
18060
18046
|
var RAY2 = 1e27;
|
|
18047
|
+
var SECONDS_PER_YEAR4 = 31536e3;
|
|
18061
18048
|
function rayRateToApr(rateRay) {
|
|
18062
18049
|
if (rateRay === 0n) return 0;
|
|
18063
|
-
return Number(rateRay) / RAY2 * 100;
|
|
18050
|
+
return (Number(rateRay) / RAY2 - 1) * SECONDS_PER_YEAR4 * 100;
|
|
18064
18051
|
}
|
|
18065
|
-
function normalizeAaveV4(spokeDataList, chainId, lender, prices, additionalYields, tokenList, lenderShortNameFn, createMarketUidFn, toOracleKeyFn, toGenericPriceKeyFn) {
|
|
18052
|
+
function normalizeAaveV4(spokeDataList, chainId, lender, prices, additionalYields, tokenList, lenderShortNameFn, createMarketUidFn, toOracleKeyFn, toGenericPriceKeyFn, expectedHub) {
|
|
18066
18053
|
const data = {};
|
|
18067
18054
|
const eModes = {};
|
|
18055
|
+
const hubFilter = expectedHub?.toLowerCase();
|
|
18068
18056
|
for (const spokeData of spokeDataList) {
|
|
18069
18057
|
const spokeAddr = spokeData.spoke.toLowerCase();
|
|
18070
18058
|
const spokeReserves = spokeData.reserves;
|
|
18071
18059
|
for (const reserve of spokeReserves) {
|
|
18060
|
+
const reserveHub = reserve.reserve.hub?.toLowerCase();
|
|
18061
|
+
if (hubFilter && reserveHub && reserveHub !== hubFilter)
|
|
18062
|
+
continue;
|
|
18072
18063
|
for (const [keyStr, dynCfg] of Object.entries(
|
|
18073
18064
|
reserve.dynamicConfigs
|
|
18074
18065
|
)) {
|
|
@@ -18085,11 +18076,12 @@ function normalizeAaveV4(spokeDataList, chainId, lender, prices, additionalYield
|
|
|
18085
18076
|
}
|
|
18086
18077
|
}
|
|
18087
18078
|
for (const reserve of spokeReserves) {
|
|
18079
|
+
const reserveHub = reserve.reserve.hub?.toLowerCase();
|
|
18080
|
+
if (hubFilter && reserveHub && reserveHub !== hubFilter)
|
|
18081
|
+
continue;
|
|
18088
18082
|
const underlying = reserve.reserve.underlying.toLowerCase();
|
|
18089
18083
|
const decimals = reserve.reserve.decimals;
|
|
18090
|
-
const
|
|
18091
|
-
const refAddress = `${hubAddr}:${underlying}`;
|
|
18092
|
-
const marketUid = createMarketUidFn(chainId, lender, refAddress);
|
|
18084
|
+
const marketUid = createMarketUidFn(chainId, lender, underlying);
|
|
18093
18085
|
const assetMeta = tokenList[underlying];
|
|
18094
18086
|
const oracleKey = toOracleKeyFn(assetMeta?.assetGroup ?? null) ?? toGenericPriceKeyFn(underlying, chainId);
|
|
18095
18087
|
let price = 0;
|
|
@@ -18151,47 +18143,59 @@ function normalizeAaveV4(spokeDataList, chainId, lender, prices, additionalYield
|
|
|
18151
18143
|
debtDisabled: !reserve.config.borrowable || reserve.config.paused
|
|
18152
18144
|
};
|
|
18153
18145
|
}
|
|
18154
|
-
data[marketUid]
|
|
18155
|
-
marketUid,
|
|
18156
|
-
|
|
18157
|
-
|
|
18158
|
-
|
|
18159
|
-
|
|
18160
|
-
totalDeposits,
|
|
18161
|
-
totalDebtStable: "0",
|
|
18162
|
-
totalDebt,
|
|
18163
|
-
totalLiquidity: liquidity,
|
|
18164
|
-
totalDepositsUSD: totalDepositsNum * price,
|
|
18165
|
-
totalDebtStableUSD: 0,
|
|
18166
|
-
totalDebtUSD: totalDebtNum * price,
|
|
18167
|
-
totalLiquidityUSD: liquidity * price,
|
|
18168
|
-
depositRate,
|
|
18169
|
-
variableBorrowRate,
|
|
18170
|
-
stableBorrowRate: 0,
|
|
18171
|
-
intrinsicYield: additionalYields?.intrinsicYields?.[oracleKey] ?? 0,
|
|
18172
|
-
rewards: [],
|
|
18173
|
-
decimals,
|
|
18174
|
-
config,
|
|
18175
|
-
collateralActive: Object.values(reserve.dynamicConfigs).some(
|
|
18176
|
-
(c) => c.collateralFactor > 0
|
|
18177
|
-
),
|
|
18178
|
-
borrowingEnabled: reserve.config.borrowable,
|
|
18179
|
-
hasStable: false,
|
|
18180
|
-
isActive: !reserve.config.paused,
|
|
18181
|
-
isFrozen: reserve.config.frozen,
|
|
18182
|
-
borrowCap: 0,
|
|
18183
|
-
supplyCap: 0,
|
|
18184
|
-
debtCeiling: 0,
|
|
18185
|
-
params: {
|
|
18186
|
-
metadata: {
|
|
18187
|
-
spoke: spokeAddr,
|
|
18188
|
-
hub: reserve.reserve.hub.toLowerCase(),
|
|
18189
|
-
assetId: reserve.reserve.assetId,
|
|
18190
|
-
reserveId: reserve.reserveId,
|
|
18191
|
-
oracle: spokeData.oracle.toLowerCase()
|
|
18192
|
-
}
|
|
18146
|
+
if (data[marketUid]) {
|
|
18147
|
+
Object.assign(data[marketUid].config, config);
|
|
18148
|
+
if (!data[marketUid].collateralActive) {
|
|
18149
|
+
data[marketUid].collateralActive = Object.values(reserve.dynamicConfigs).some(
|
|
18150
|
+
(c) => c.collateralFactor > 0
|
|
18151
|
+
);
|
|
18193
18152
|
}
|
|
18194
|
-
|
|
18153
|
+
if (!data[marketUid].borrowingEnabled) {
|
|
18154
|
+
data[marketUid].borrowingEnabled = reserve.config.borrowable;
|
|
18155
|
+
}
|
|
18156
|
+
} else {
|
|
18157
|
+
data[marketUid] = {
|
|
18158
|
+
marketUid,
|
|
18159
|
+
name: lenderShortNameFn(lender) + " " + (assetMeta?.symbol ?? ""),
|
|
18160
|
+
poolId: underlying,
|
|
18161
|
+
underlying,
|
|
18162
|
+
asset: assetMeta,
|
|
18163
|
+
totalDeposits,
|
|
18164
|
+
totalDebtStable: "0",
|
|
18165
|
+
totalDebt,
|
|
18166
|
+
totalLiquidity: liquidity,
|
|
18167
|
+
totalDepositsUSD: totalDepositsNum * price,
|
|
18168
|
+
totalDebtStableUSD: 0,
|
|
18169
|
+
totalDebtUSD: totalDebtNum * price,
|
|
18170
|
+
totalLiquidityUSD: liquidity * price,
|
|
18171
|
+
depositRate,
|
|
18172
|
+
variableBorrowRate,
|
|
18173
|
+
stableBorrowRate: 0,
|
|
18174
|
+
intrinsicYield: additionalYields?.intrinsicYields?.[oracleKey] ?? 0,
|
|
18175
|
+
rewards: [],
|
|
18176
|
+
decimals,
|
|
18177
|
+
config,
|
|
18178
|
+
collateralActive: Object.values(reserve.dynamicConfigs).some(
|
|
18179
|
+
(c) => c.collateralFactor > 0
|
|
18180
|
+
),
|
|
18181
|
+
borrowingEnabled: reserve.config.borrowable,
|
|
18182
|
+
hasStable: false,
|
|
18183
|
+
isActive: !reserve.config.paused,
|
|
18184
|
+
isFrozen: reserve.config.frozen,
|
|
18185
|
+
borrowCap: 0,
|
|
18186
|
+
supplyCap: 0,
|
|
18187
|
+
debtCeiling: 0,
|
|
18188
|
+
params: {
|
|
18189
|
+
metadata: {
|
|
18190
|
+
spoke: spokeAddr,
|
|
18191
|
+
hub: reserve.reserve.hub.toLowerCase(),
|
|
18192
|
+
assetId: reserve.reserve.assetId,
|
|
18193
|
+
reserveId: reserve.reserveId,
|
|
18194
|
+
oracle: spokeData.oracle.toLowerCase()
|
|
18195
|
+
}
|
|
18196
|
+
}
|
|
18197
|
+
};
|
|
18198
|
+
}
|
|
18195
18199
|
}
|
|
18196
18200
|
}
|
|
18197
18201
|
return { data, chainId, eModes };
|
|
@@ -18212,8 +18216,6 @@ var getAaveV4ReservesDataConverter = (lender, chainId, prices, additionalYields,
|
|
|
18212
18216
|
const reservesMap = aaveV4Reserves()?.[lender]?.[chainId] ?? {};
|
|
18213
18217
|
let offset = 0;
|
|
18214
18218
|
const spokeDataList = [];
|
|
18215
|
-
const hubAssetKeys = /* @__PURE__ */ new Set();
|
|
18216
|
-
const hubAssetList = [];
|
|
18217
18219
|
for (const spokeEntry of spokes) {
|
|
18218
18220
|
if (!isValidAddress2(spokeEntry.spoke)) continue;
|
|
18219
18221
|
const spokeAddr = spokeEntry.spoke;
|
|
@@ -18275,17 +18277,6 @@ var getAaveV4ReservesDataConverter = (lender, chainId, prices, additionalYields,
|
|
|
18275
18277
|
} else {
|
|
18276
18278
|
drawnDebt = BigInt(rawDebt ?? 0);
|
|
18277
18279
|
}
|
|
18278
|
-
if (spokeEntry.hub && typeof entry === "object" && entry.assetId !== void 0) {
|
|
18279
|
-
const hubLc = spokeEntry.hub.toLowerCase();
|
|
18280
|
-
const key = `${hubLc}:${entry.assetId}`;
|
|
18281
|
-
if (!hubAssetKeys.has(key)) {
|
|
18282
|
-
hubAssetKeys.add(key);
|
|
18283
|
-
hubAssetList.push({
|
|
18284
|
-
hub: hubLc,
|
|
18285
|
-
assetId: entry.assetId
|
|
18286
|
-
});
|
|
18287
|
-
}
|
|
18288
|
-
}
|
|
18289
18280
|
parsedReserves.push({
|
|
18290
18281
|
reserveId,
|
|
18291
18282
|
reserve,
|
|
@@ -18339,40 +18330,51 @@ var getAaveV4ReservesDataConverter = (lender, chainId, prices, additionalYields,
|
|
|
18339
18330
|
}
|
|
18340
18331
|
}
|
|
18341
18332
|
}
|
|
18333
|
+
const hubEntry = aaveV4Hubs()?.[lender]?.[chainId];
|
|
18342
18334
|
const hubAssetMap = /* @__PURE__ */ new Map();
|
|
18343
|
-
|
|
18344
|
-
const
|
|
18345
|
-
|
|
18346
|
-
const
|
|
18347
|
-
|
|
18348
|
-
|
|
18349
|
-
|
|
18350
|
-
|
|
18351
|
-
|
|
18352
|
-
|
|
18353
|
-
|
|
18354
|
-
|
|
18355
|
-
|
|
18356
|
-
|
|
18357
|
-
|
|
18358
|
-
|
|
18359
|
-
|
|
18360
|
-
|
|
18361
|
-
|
|
18362
|
-
|
|
18363
|
-
|
|
18364
|
-
|
|
18365
|
-
|
|
18366
|
-
|
|
18367
|
-
|
|
18368
|
-
|
|
18369
|
-
|
|
18370
|
-
|
|
18371
|
-
|
|
18372
|
-
|
|
18373
|
-
|
|
18374
|
-
|
|
18375
|
-
|
|
18335
|
+
if (hubEntry?.hub && isValidAddress2(hubEntry.hub)) {
|
|
18336
|
+
const rawAssetCount = data[offset];
|
|
18337
|
+
offset += 1;
|
|
18338
|
+
const assetCount = Math.min(
|
|
18339
|
+
Number(rawAssetCount ?? 0),
|
|
18340
|
+
MAX_HUB_ASSETS
|
|
18341
|
+
);
|
|
18342
|
+
for (let i = 0; i < MAX_HUB_ASSETS; i++) {
|
|
18343
|
+
const baseIdx = offset + i * 3;
|
|
18344
|
+
const rawHubAsset = data[baseIdx];
|
|
18345
|
+
const rawAddedAssets = data[baseIdx + 1];
|
|
18346
|
+
const rawTotalOwed = data[baseIdx + 2];
|
|
18347
|
+
if (i >= assetCount || !rawHubAsset || rawHubAsset === "0x")
|
|
18348
|
+
continue;
|
|
18349
|
+
const underlying = (rawHubAsset?.underlying ?? "").toLowerCase();
|
|
18350
|
+
if (!underlying) continue;
|
|
18351
|
+
hubAssetMap.set(underlying, {
|
|
18352
|
+
liquidity: BigInt(rawHubAsset?.liquidity ?? 0),
|
|
18353
|
+
realizedFees: BigInt(rawHubAsset?.realizedFees ?? 0),
|
|
18354
|
+
decimals: Number(rawHubAsset?.decimals ?? 18),
|
|
18355
|
+
addedShares: BigInt(rawHubAsset?.addedShares ?? 0),
|
|
18356
|
+
swept: BigInt(rawHubAsset?.swept ?? 0),
|
|
18357
|
+
premiumOffsetRay: BigInt(
|
|
18358
|
+
rawHubAsset?.premiumOffsetRay ?? 0
|
|
18359
|
+
),
|
|
18360
|
+
drawnShares: BigInt(rawHubAsset?.drawnShares ?? 0),
|
|
18361
|
+
premiumShares: BigInt(rawHubAsset?.premiumShares ?? 0),
|
|
18362
|
+
liquidityFee: Number(rawHubAsset?.liquidityFee ?? 0),
|
|
18363
|
+
drawnIndex: BigInt(rawHubAsset?.drawnIndex ?? 0),
|
|
18364
|
+
drawnRate: BigInt(rawHubAsset?.drawnRate ?? 0),
|
|
18365
|
+
lastUpdateTimestamp: Number(
|
|
18366
|
+
rawHubAsset?.lastUpdateTimestamp ?? 0
|
|
18367
|
+
),
|
|
18368
|
+
underlying: rawHubAsset?.underlying ?? "",
|
|
18369
|
+
irStrategy: rawHubAsset?.irStrategy ?? "",
|
|
18370
|
+
reinvestmentController: rawHubAsset?.reinvestmentController ?? "",
|
|
18371
|
+
feeReceiver: rawHubAsset?.feeReceiver ?? "",
|
|
18372
|
+
deficitRay: BigInt(rawHubAsset?.deficitRay ?? 0),
|
|
18373
|
+
totalAddedAssets: BigInt(rawAddedAssets ?? 0),
|
|
18374
|
+
totalOwedAssets: BigInt(rawTotalOwed ?? 0)
|
|
18375
|
+
});
|
|
18376
|
+
}
|
|
18377
|
+
offset += MAX_HUB_ASSETS * 3;
|
|
18376
18378
|
}
|
|
18377
18379
|
for (const spokeData of spokeDataList) {
|
|
18378
18380
|
for (const reserve of spokeData.reserves) {
|
|
@@ -18385,6 +18387,7 @@ var getAaveV4ReservesDataConverter = (lender, chainId, prices, additionalYields,
|
|
|
18385
18387
|
}
|
|
18386
18388
|
}
|
|
18387
18389
|
}
|
|
18390
|
+
const expectedHub = hubEntry?.hub;
|
|
18388
18391
|
return normalizeAaveV4(
|
|
18389
18392
|
spokeDataList,
|
|
18390
18393
|
chainId,
|
|
@@ -18395,7 +18398,8 @@ var getAaveV4ReservesDataConverter = (lender, chainId, prices, additionalYields,
|
|
|
18395
18398
|
lenderShortName,
|
|
18396
18399
|
createMarketUid,
|
|
18397
18400
|
toOracleKey,
|
|
18398
|
-
toGenericPriceKey
|
|
18401
|
+
toGenericPriceKey,
|
|
18402
|
+
expectedHub
|
|
18399
18403
|
);
|
|
18400
18404
|
};
|
|
18401
18405
|
return [converter, expectedCalls];
|
|
@@ -18535,7 +18539,7 @@ var getLenderPublicData = async (chainId, lenders, prices, additionalYields, mul
|
|
|
18535
18539
|
const abi = getAbi(lender);
|
|
18536
18540
|
const callData = buildLenderCall(chainId, lender);
|
|
18537
18541
|
const mappedCalls = callData.map((call) => ({ call, abi: call.abi ?? abi }));
|
|
18538
|
-
calls
|
|
18542
|
+
calls.push(...mappedCalls);
|
|
18539
18543
|
}
|
|
18540
18544
|
const [rawResults, list] = await Promise.all([
|
|
18541
18545
|
multicallRetry({
|
|
@@ -18544,7 +18548,7 @@ var getLenderPublicData = async (chainId, lenders, prices, additionalYields, mul
|
|
|
18544
18548
|
abi: calls.map((call) => call.abi),
|
|
18545
18549
|
batchSize: chainId === Chain.ETHEREUM_MAINNET ? 500 : void 0
|
|
18546
18550
|
}),
|
|
18547
|
-
|
|
18551
|
+
tokenList()
|
|
18548
18552
|
]);
|
|
18549
18553
|
const invalidLenders = [];
|
|
18550
18554
|
let lenderData = {};
|
|
@@ -18565,7 +18569,7 @@ var getLenderPublicData = async (chainId, lenders, prices, additionalYields, mul
|
|
|
18565
18569
|
if (!convertedData) {
|
|
18566
18570
|
invalidLenders.push(lender);
|
|
18567
18571
|
} else {
|
|
18568
|
-
lenderData
|
|
18572
|
+
Object.assign(lenderData, convertedData);
|
|
18569
18573
|
}
|
|
18570
18574
|
} else {
|
|
18571
18575
|
if (!convertedData) {
|
|
@@ -18638,9 +18642,7 @@ var getLenderPublicDataViaApi = async (chainId, lenders, prices, additionalYield
|
|
|
18638
18642
|
additionalYields,
|
|
18639
18643
|
list
|
|
18640
18644
|
);
|
|
18641
|
-
Object.
|
|
18642
|
-
lenderData[marketId] = converted[marketId];
|
|
18643
|
-
});
|
|
18645
|
+
Object.assign(lenderData, converted);
|
|
18644
18646
|
} else {
|
|
18645
18647
|
lenderData[lender] = convertLenderDataFromApi(
|
|
18646
18648
|
lender,
|
|
@@ -20269,10 +20271,15 @@ function resolveV4Config(configs, userConfigKey) {
|
|
|
20269
20271
|
const spokeAddr = key.split(":")[0];
|
|
20270
20272
|
return { config, spokeAddr };
|
|
20271
20273
|
}
|
|
20272
|
-
function getConfigScopedPrice(meta, spokeAddr
|
|
20274
|
+
function getConfigScopedPrice(meta, spokeAddr) {
|
|
20275
|
+
if (spokeAddr) {
|
|
20276
|
+
const byConfig = meta?.oraclePrice?.byConfig;
|
|
20277
|
+
const configPrice = byConfig?.[spokeAddr]?.oraclePriceUsd;
|
|
20278
|
+
if (configPrice != null && configPrice > 0) return configPrice;
|
|
20279
|
+
}
|
|
20273
20280
|
return getOraclePrice(meta);
|
|
20274
20281
|
}
|
|
20275
|
-
function createAaveV4UserState(payload, lenderData, totalDeposits24h = 0, totalDebt24h = 0
|
|
20282
|
+
function createAaveV4UserState(payload, lenderData, totalDeposits24h = 0, totalDebt24h = 0) {
|
|
20276
20283
|
const assetKeys = getMarketUidsFromMeta(lenderData);
|
|
20277
20284
|
const { chainId, account } = payload;
|
|
20278
20285
|
let depositInterest = 0;
|
|
@@ -20381,7 +20388,7 @@ function createAaveV4UserState(payload, lenderData, totalDeposits24h = 0, totalD
|
|
|
20381
20388
|
configs,
|
|
20382
20389
|
pos ? pos.userConfigKey : void 0
|
|
20383
20390
|
);
|
|
20384
|
-
const price = getConfigScopedPrice(meta);
|
|
20391
|
+
const price = getConfigScopedPrice(meta, spokeAddr);
|
|
20385
20392
|
const bcf = config?.borrowCollateralFactor ?? 1;
|
|
20386
20393
|
const bf = config?.borrowFactor ?? 1;
|
|
20387
20394
|
if (pos) {
|
|
@@ -20476,7 +20483,6 @@ var getAaveV4UserDataConverter = (lender, chainId, account, metaMap) => {
|
|
|
20476
20483
|
reserveEntries.push({
|
|
20477
20484
|
spokeAddr,
|
|
20478
20485
|
reserveId: rid,
|
|
20479
|
-
hub: (spokeEntry.hub ?? "").toLowerCase(),
|
|
20480
20486
|
underlying
|
|
20481
20487
|
});
|
|
20482
20488
|
}
|
|
@@ -20498,28 +20504,25 @@ var getAaveV4UserDataConverter = (lender, chainId, account, metaMap) => {
|
|
|
20498
20504
|
let totalDebt24h = 0;
|
|
20499
20505
|
let totalDeposits24h = 0;
|
|
20500
20506
|
for (let i = 0; i < reserveEntries.length; i++) {
|
|
20501
|
-
const {
|
|
20502
|
-
|
|
20503
|
-
if (hub) {
|
|
20504
|
-
key = createMarketUid(chainId, lender, `${hub}:${underlying}`);
|
|
20505
|
-
} else {
|
|
20506
|
-
key = underlyingToUid.get(underlying) ?? createMarketUid(chainId, lender, `:${underlying}`);
|
|
20507
|
-
}
|
|
20507
|
+
const { underlying, spokeAddr } = reserveEntries[i];
|
|
20508
|
+
const key = underlying ? createMarketUid(chainId, lender, underlying) : underlyingToUid.get(underlying) ?? "";
|
|
20508
20509
|
const metaEntity = metaMap?.[key];
|
|
20509
20510
|
if (!metaEntity) continue;
|
|
20510
20511
|
const base = i * USER_CALLS_PER_RESERVE;
|
|
20512
|
+
const spokeLc = spokeAddr.toLowerCase();
|
|
20513
|
+
const userPositionResult = data[base + 3];
|
|
20514
|
+
const userDynConfigKey = Number(
|
|
20515
|
+
userPositionResult?.dynamicConfigKey ?? 0
|
|
20516
|
+
);
|
|
20511
20517
|
const { dataForAsset, addedDebt, addedDeposits } = createAaveV4Entry(
|
|
20512
20518
|
base,
|
|
20513
20519
|
data,
|
|
20514
20520
|
key,
|
|
20515
|
-
metaEntity
|
|
20521
|
+
metaEntity,
|
|
20522
|
+
spokeLc
|
|
20516
20523
|
);
|
|
20517
20524
|
if (!dataForAsset) continue;
|
|
20518
|
-
|
|
20519
|
-
const userDynConfigKey = Number(
|
|
20520
|
-
userPositionResult?.dynamicConfigKey ?? 0
|
|
20521
|
-
);
|
|
20522
|
-
dataForAsset.userConfigKey = `${spokeAddr.toLowerCase()}:${userDynConfigKey}`;
|
|
20525
|
+
dataForAsset.userConfigKey = `${spokeLc}:${userDynConfigKey}`;
|
|
20523
20526
|
totalDebt24h += addedDebt;
|
|
20524
20527
|
totalDeposits24h += addedDeposits;
|
|
20525
20528
|
lendingPositions[key] = dataForAsset;
|
|
@@ -20540,7 +20543,15 @@ var getAaveV4UserDataConverter = (lender, chainId, account, metaMap) => {
|
|
|
20540
20543
|
expectedNumberOfCalls
|
|
20541
20544
|
];
|
|
20542
20545
|
};
|
|
20543
|
-
function
|
|
20546
|
+
function getConfigOraclePrice(meta, spokeAddr) {
|
|
20547
|
+
if (spokeAddr) {
|
|
20548
|
+
const byConfig = meta?.oraclePrice?.byConfig;
|
|
20549
|
+
const configPrice = byConfig?.[spokeAddr]?.oraclePriceUsd;
|
|
20550
|
+
if (configPrice != null && configPrice > 0) return configPrice;
|
|
20551
|
+
}
|
|
20552
|
+
return getOraclePrice(meta);
|
|
20553
|
+
}
|
|
20554
|
+
function createAaveV4Entry(base, data, key, meta, spokeAddr) {
|
|
20544
20555
|
const rawSupply = data[base];
|
|
20545
20556
|
const debtResult = data[base + 1];
|
|
20546
20557
|
const statusResult = data[base + 2];
|
|
@@ -20561,7 +20572,7 @@ function createAaveV4Entry(base, data, key, meta) {
|
|
|
20561
20572
|
const currentDebt = parseRawAmount(totalDebtRaw, decimals);
|
|
20562
20573
|
const collateralEnabled = Boolean(statusResult?.[0]);
|
|
20563
20574
|
const price = getDisplayPrice(meta);
|
|
20564
|
-
const oPrice =
|
|
20575
|
+
const oPrice = getConfigOraclePrice(meta, spokeAddr);
|
|
20565
20576
|
const priceHist = meta?.price?.priceUsd24h ?? price;
|
|
20566
20577
|
const dataForAsset = {
|
|
20567
20578
|
marketUid: key,
|
|
@@ -25399,19 +25410,20 @@ function unflattenLenderData(pools) {
|
|
|
25399
25410
|
return result;
|
|
25400
25411
|
}
|
|
25401
25412
|
var getLenderUserDataResult = async (chainId, queriesRaw, getEvmClient3, allowFailure = true, batchSize = MULTICALL_DEFAULT_BATCH_SIZE, retries = 3, logs = false) => {
|
|
25402
|
-
let calls = [];
|
|
25403
25413
|
const queries = organizeUserQueries(queriesRaw);
|
|
25404
|
-
|
|
25405
|
-
|
|
25406
|
-
|
|
25407
|
-
|
|
25408
|
-
|
|
25409
|
-
|
|
25410
|
-
|
|
25411
|
-
|
|
25412
|
-
|
|
25413
|
-
|
|
25414
|
-
|
|
25414
|
+
const builtCalls = await Promise.all(
|
|
25415
|
+
queries.map(async (query2) => {
|
|
25416
|
+
const abi = getAbi2(query2.lender);
|
|
25417
|
+
const callData = await buildUserCall(
|
|
25418
|
+
chainId,
|
|
25419
|
+
query2.lender,
|
|
25420
|
+
query2.account,
|
|
25421
|
+
query2.params
|
|
25422
|
+
);
|
|
25423
|
+
return callData.map((call) => ({ call, abi }));
|
|
25424
|
+
})
|
|
25425
|
+
);
|
|
25426
|
+
const calls = builtCalls.flat();
|
|
25415
25427
|
return await multicallViemAbiArray(
|
|
25416
25428
|
chainId,
|
|
25417
25429
|
calls.map((call) => call.abi),
|
|
@@ -25426,20 +25438,21 @@ var getLenderUserDataResult = async (chainId, queriesRaw, getEvmClient3, allowFa
|
|
|
25426
25438
|
);
|
|
25427
25439
|
};
|
|
25428
25440
|
var prepareLenderUserDataRpcCalls = async (chainId, queriesRaw, batchSize = MULTICALL_DEFAULT_BATCH_SIZE, blockTag = "latest", allowFailure = true) => {
|
|
25429
|
-
let calls = [];
|
|
25430
25441
|
const multicallAddress = getEvmChain(chainId).contracts?.multicall3?.address;
|
|
25431
25442
|
const queries = organizeUserQueries(queriesRaw);
|
|
25432
|
-
|
|
25433
|
-
|
|
25434
|
-
|
|
25435
|
-
|
|
25436
|
-
|
|
25437
|
-
|
|
25438
|
-
|
|
25439
|
-
|
|
25440
|
-
|
|
25441
|
-
|
|
25442
|
-
|
|
25443
|
+
const builtCalls = await Promise.all(
|
|
25444
|
+
queries.map(async (query2) => {
|
|
25445
|
+
const abi = getAbi2(query2.lender);
|
|
25446
|
+
const callData = await buildUserCall(
|
|
25447
|
+
chainId,
|
|
25448
|
+
query2.lender,
|
|
25449
|
+
query2.account,
|
|
25450
|
+
query2.params
|
|
25451
|
+
);
|
|
25452
|
+
return callData.map((call) => ({ call, abi }));
|
|
25453
|
+
})
|
|
25454
|
+
);
|
|
25455
|
+
const calls = builtCalls.flat();
|
|
25443
25456
|
const preparedCalls = prepareMulticallInputs(
|
|
25444
25457
|
calls.map((c) => c.abi),
|
|
25445
25458
|
calls.map((c) => c.call)
|
|
@@ -27621,34 +27634,18 @@ var yusdFetcher = {
|
|
|
27621
27634
|
};
|
|
27622
27635
|
|
|
27623
27636
|
// src/yields/intrinsic/fetchers/resolv.ts
|
|
27624
|
-
var RLP_URL = "https://api.resolv.xyz/apr/rlp/7d";
|
|
27625
|
-
var WSTUSR_URL = "https://api.resolv.xyz/apr/staking/7d";
|
|
27626
27637
|
var rlp = "Resolv RLP::RLP";
|
|
27627
27638
|
var wstusr = "Resolv wstUSR::WSTUSR";
|
|
27628
27639
|
var rlpFetcher = {
|
|
27629
27640
|
label: "RLP",
|
|
27630
27641
|
fetch: async () => {
|
|
27631
|
-
|
|
27632
|
-
method: "GET",
|
|
27633
|
-
headers: {
|
|
27634
|
-
Accept: "application/json",
|
|
27635
|
-
"User-Agent": "1delta/yields"
|
|
27636
|
-
}
|
|
27637
|
-
}).then((r) => r.json());
|
|
27638
|
-
return { [rlp]: Number(res?.value ?? 0) * 100 };
|
|
27642
|
+
return { [rlp]: 0 };
|
|
27639
27643
|
}
|
|
27640
27644
|
};
|
|
27641
27645
|
var wstusrFetcher = {
|
|
27642
27646
|
label: "WSTUSR",
|
|
27643
27647
|
fetch: async () => {
|
|
27644
|
-
|
|
27645
|
-
method: "GET",
|
|
27646
|
-
headers: {
|
|
27647
|
-
Accept: "application/json",
|
|
27648
|
-
"User-Agent": "1delta/yields"
|
|
27649
|
-
}
|
|
27650
|
-
}).then((r) => r.json());
|
|
27651
|
-
return { [wstusr]: Number(res?.value ?? 0) * 100 };
|
|
27648
|
+
return { [wstusr]: 0 };
|
|
27652
27649
|
}
|
|
27653
27650
|
};
|
|
27654
27651
|
|
|
@@ -27865,7 +27862,7 @@ var susdxFetcher = {
|
|
|
27865
27862
|
};
|
|
27866
27863
|
|
|
27867
27864
|
// src/yields/intrinsic/fetchers/reserve.ts
|
|
27868
|
-
var RTOKENS_URL = "https://yields.reserve.org
|
|
27865
|
+
var RTOKENS_URL = "https://yields.reserve.org";
|
|
27869
27866
|
var hyUSD = "High Yield USD Base::HYUSD";
|
|
27870
27867
|
var bsdETH = "Based ETH::BSDETH";
|
|
27871
27868
|
var ethPlus = "ETHPlus::ETH+";
|
|
@@ -27878,18 +27875,18 @@ var rtokensFetcher = {
|
|
|
27878
27875
|
label: "RTOKENS",
|
|
27879
27876
|
fetch: async () => {
|
|
27880
27877
|
const res = await fetch(RTOKENS_URL).then((r) => r.json());
|
|
27881
|
-
const data = res
|
|
27882
|
-
const dataMainnet = res
|
|
27883
|
-
const dataMainnetColalterals = res
|
|
27878
|
+
const data = res?.rtokens?.["8453"];
|
|
27879
|
+
const dataMainnet = res?.rtokens?.["1"];
|
|
27880
|
+
const dataMainnetColalterals = res?.collaterals?.["1"];
|
|
27884
27881
|
return {
|
|
27885
|
-
[bsdETH]: apyToAprPercent(data
|
|
27886
|
-
[hyUSD]: apyToAprPercent(data
|
|
27887
|
-
[sfrxeth]: apyToAprPercent(dataMainnetColalterals
|
|
27888
|
-
[sfrax]: apyToAprPercent(dataMainnetColalterals
|
|
27889
|
-
[ceth]: apyToAprPercent(dataMainnetColalterals
|
|
27890
|
-
[ethPlus]: apyToAprPercent(dataMainnet["ETH+"] / 100) * 100,
|
|
27891
|
-
[usdThree]: apyToAprPercent(dataMainnet["USD3"] / 100) * 100,
|
|
27892
|
-
[woEth]: apyToAprPercent(dataMainnetColalterals
|
|
27882
|
+
[bsdETH]: apyToAprPercent((data?.bsdETH ?? 0) / 100) * 100,
|
|
27883
|
+
[hyUSD]: apyToAprPercent((data?.hyUSD ?? 0) / 100) * 100,
|
|
27884
|
+
[sfrxeth]: apyToAprPercent((dataMainnetColalterals?.sfrxeth ?? 0) / 100) * 100,
|
|
27885
|
+
[sfrax]: apyToAprPercent((dataMainnetColalterals?.sfrax ?? 0) / 100) * 100,
|
|
27886
|
+
[ceth]: apyToAprPercent((dataMainnetColalterals?.ceth ?? 0) / 100) * 100,
|
|
27887
|
+
[ethPlus]: apyToAprPercent((dataMainnet?.["ETH+"] ?? 0) / 100) * 100,
|
|
27888
|
+
[usdThree]: apyToAprPercent((dataMainnet?.["USD3"] ?? 0) / 100) * 100,
|
|
27889
|
+
[woEth]: apyToAprPercent((dataMainnetColalterals?.woeth ?? 0) / 100) * 100
|
|
27893
27890
|
};
|
|
27894
27891
|
}
|
|
27895
27892
|
};
|