@1delta/margin-fetcher 0.0.236 → 0.0.238
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 +114 -5
- package/dist/index.js.map +1 -1
- package/dist/prices/oracle-prices/fetchOraclePrices.d.ts +2 -1
- package/dist/prices/oracle-prices/fetchOraclePrices.d.ts.map +1 -1
- package/dist/prices/oracle-prices/fetchers/fluid.d.ts +743 -0
- package/dist/prices/oracle-prices/fetchers/fluid.d.ts.map +1 -0
- package/dist/prices/oracle-prices/fetchers/index.d.ts +1 -0
- package/dist/prices/oracle-prices/fetchers/index.d.ts.map +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/package.json +14 -14
package/dist/index.js
CHANGED
|
@@ -7607,6 +7607,9 @@ var getLendersForChain = (c) => {
|
|
|
7607
7607
|
for (const spokeAddr of Object.keys(v4ChainSpokes)) {
|
|
7608
7608
|
lenders.push(aaveV4SpokeLenderKey(spokeAddr));
|
|
7609
7609
|
}
|
|
7610
|
+
if (fluidResolvers()?.[c]) {
|
|
7611
|
+
lenders.push(Lender.FLUID);
|
|
7612
|
+
}
|
|
7610
7613
|
return lenders;
|
|
7611
7614
|
};
|
|
7612
7615
|
var filterLendersByProtocol = (allLenders, protocolList) => {
|
|
@@ -7615,8 +7618,9 @@ var filterLendersByProtocol = (allLenders, protocolList) => {
|
|
|
7615
7618
|
}
|
|
7616
7619
|
const hasMorpho = protocolList.includes(Lender.MORPHO_BLUE);
|
|
7617
7620
|
const hasMoolah = protocolList.includes(Lender.LISTA_DAO);
|
|
7621
|
+
const hasFluid = protocolList.includes(Lender.FLUID);
|
|
7618
7622
|
return allLenders.filter(
|
|
7619
|
-
(lender) => protocolList.includes(lender) || hasMorpho && lender?.startsWith("MORPHO_BLUE") || hasMoolah && lender?.startsWith("LISTA_DAO")
|
|
7623
|
+
(lender) => protocolList.includes(lender) || hasMorpho && lender?.startsWith("MORPHO_BLUE") || hasMoolah && lender?.startsWith("LISTA_DAO") || hasFluid && lender?.startsWith("FLUID")
|
|
7620
7624
|
);
|
|
7621
7625
|
};
|
|
7622
7626
|
var getAavesForChain = () => {
|
|
@@ -31477,6 +31481,88 @@ var siloV3Fetcher = {
|
|
|
31477
31481
|
parse: parseSiloV3Results,
|
|
31478
31482
|
getAbi: getSiloV3Abi
|
|
31479
31483
|
};
|
|
31484
|
+
var FLUID_EEE_LOWER2 = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
|
|
31485
|
+
var normalizeUnderlying2 = (addr) => addr === FLUID_EEE_LOWER2 ? zeroAddress : addr;
|
|
31486
|
+
function priceColInDebt(raw, colDec, debtDec) {
|
|
31487
|
+
return formatMorphoPrice(raw, debtDec, colDec + 9);
|
|
31488
|
+
}
|
|
31489
|
+
function getFluidCalls(chainId) {
|
|
31490
|
+
const resolvers = fluidResolvers()?.[chainId];
|
|
31491
|
+
if (!resolvers) return [];
|
|
31492
|
+
const call = {
|
|
31493
|
+
address: resolvers.vaultResolver,
|
|
31494
|
+
name: "getVaultsEntireData",
|
|
31495
|
+
params: []
|
|
31496
|
+
};
|
|
31497
|
+
return [
|
|
31498
|
+
{
|
|
31499
|
+
calls: [call],
|
|
31500
|
+
// Empty placeholder — populated per-vault inside `parse` from the
|
|
31501
|
+
// resolver response. Kept as an empty object to match the shape
|
|
31502
|
+
// other fetchers expose.
|
|
31503
|
+
meta: { vaults: [] },
|
|
31504
|
+
lender: Lender.FLUID
|
|
31505
|
+
}
|
|
31506
|
+
];
|
|
31507
|
+
}
|
|
31508
|
+
function parseFluidResults(data, _meta, context) {
|
|
31509
|
+
const { chainId, usdPrices, tokenList } = context;
|
|
31510
|
+
const entries = [];
|
|
31511
|
+
const vaults = data[0];
|
|
31512
|
+
if (!Array.isArray(vaults) || vaults.length === 0) return entries;
|
|
31513
|
+
for (const vault of vaults) {
|
|
31514
|
+
try {
|
|
31515
|
+
if (vault.isSmartCol || vault.isSmartDebt) continue;
|
|
31516
|
+
const constants = vault.constantVariables;
|
|
31517
|
+
const configs = vault.configs;
|
|
31518
|
+
if (!constants || !configs) continue;
|
|
31519
|
+
const rawCol = (constants.supplyToken?.token0 ?? constants.supplyToken ?? "").toString().toLowerCase();
|
|
31520
|
+
const rawLoan = (constants.borrowToken?.token0 ?? constants.borrowToken ?? "").toString().toLowerCase();
|
|
31521
|
+
if (!rawCol || !rawLoan) continue;
|
|
31522
|
+
const collateral = normalizeUnderlying2(rawCol);
|
|
31523
|
+
const loan = normalizeUnderlying2(rawLoan);
|
|
31524
|
+
const colDec = tokenList?.[collateral]?.decimals ?? 18;
|
|
31525
|
+
const loanDec = tokenList?.[loan]?.decimals ?? 18;
|
|
31526
|
+
const rawPrice = configs.oraclePriceOperate?.toString() ?? "0";
|
|
31527
|
+
if (!rawPrice || rawPrice === "0") continue;
|
|
31528
|
+
const priceDebtPerCol = priceColInDebt(rawPrice, colDec, loanDec);
|
|
31529
|
+
if (!Number.isFinite(priceDebtPerCol) || priceDebtPerCol === 0) continue;
|
|
31530
|
+
const vaultId = Number(constants.vaultId ?? 0);
|
|
31531
|
+
const lenderKey = `${Lender.FLUID}_${vaultId}`;
|
|
31532
|
+
const loanOracleKey = tokenList?.[loan]?.assetGroup ?? `${chainId}-${loan}`;
|
|
31533
|
+
const loanUSD = usdPrices[loanOracleKey] ?? usdPrices[loan];
|
|
31534
|
+
if (!loanUSD) continue;
|
|
31535
|
+
entries.push({
|
|
31536
|
+
asset: loan,
|
|
31537
|
+
price: 1,
|
|
31538
|
+
priceUSD: loanUSD,
|
|
31539
|
+
marketUid: createMarketUid(chainId, lenderKey, loan),
|
|
31540
|
+
targetLender: lenderKey,
|
|
31541
|
+
description: "Fluid loan asset",
|
|
31542
|
+
staticBase: true,
|
|
31543
|
+
baseAsset: loan
|
|
31544
|
+
});
|
|
31545
|
+
entries.push({
|
|
31546
|
+
asset: collateral,
|
|
31547
|
+
price: priceDebtPerCol,
|
|
31548
|
+
priceUSD: priceDebtPerCol * loanUSD,
|
|
31549
|
+
marketUid: createMarketUid(chainId, lenderKey, collateral),
|
|
31550
|
+
targetLender: lenderKey,
|
|
31551
|
+
baseAsset: loan
|
|
31552
|
+
});
|
|
31553
|
+
} catch {
|
|
31554
|
+
}
|
|
31555
|
+
}
|
|
31556
|
+
return entries;
|
|
31557
|
+
}
|
|
31558
|
+
function getFluidAbi() {
|
|
31559
|
+
return FluidVaultResolverAbi;
|
|
31560
|
+
}
|
|
31561
|
+
var fluidFetcher = {
|
|
31562
|
+
getCalls: getFluidCalls,
|
|
31563
|
+
parse: parseFluidResults,
|
|
31564
|
+
getAbi: getFluidAbi
|
|
31565
|
+
};
|
|
31480
31566
|
|
|
31481
31567
|
// src/prices/oracle-prices/fetchers/siloV2Graphql.ts
|
|
31482
31568
|
async function fetchSiloV2GraphQLMarkets(chainId) {
|
|
@@ -31926,6 +32012,11 @@ async function fetchOraclePrices(chainIds, rpcOverrides, lists = {}, retries = 3
|
|
|
31926
32012
|
() => siloV3Fetcher.getCalls(chainId),
|
|
31927
32013
|
getCallsErrors
|
|
31928
32014
|
) : [];
|
|
32015
|
+
const fluidResults = isActive("fluid") ? safeGetCalls(
|
|
32016
|
+
"fluid",
|
|
32017
|
+
() => fluidFetcher.getCalls(chainId),
|
|
32018
|
+
getCallsErrors
|
|
32019
|
+
) : [];
|
|
31929
32020
|
const aaveGroup = buildGroup(
|
|
31930
32021
|
"aave",
|
|
31931
32022
|
aaveResults,
|
|
@@ -31980,6 +32071,12 @@ async function fetchOraclePrices(chainIds, rpcOverrides, lists = {}, retries = 3
|
|
|
31980
32071
|
siloV3Fetcher.parse,
|
|
31981
32072
|
getSiloV3Abi()
|
|
31982
32073
|
);
|
|
32074
|
+
const fluidGroup = buildGroup(
|
|
32075
|
+
"fluid",
|
|
32076
|
+
fluidResults,
|
|
32077
|
+
fluidFetcher.parse,
|
|
32078
|
+
getFluidAbi()
|
|
32079
|
+
);
|
|
31983
32080
|
const allGroups = [
|
|
31984
32081
|
aaveGroup,
|
|
31985
32082
|
compoundV2Group,
|
|
@@ -31989,7 +32086,8 @@ async function fetchOraclePrices(chainIds, rpcOverrides, lists = {}, retries = 3
|
|
|
31989
32086
|
aaveV4Group,
|
|
31990
32087
|
morphoGroup,
|
|
31991
32088
|
siloV2Group,
|
|
31992
|
-
siloV3Group
|
|
32089
|
+
siloV3Group,
|
|
32090
|
+
fluidGroup
|
|
31993
32091
|
];
|
|
31994
32092
|
const totalCalls = allGroups.reduce((s, g) => s + g.calls.length, 0);
|
|
31995
32093
|
if (totalCalls === 0 && !isActive("morpho")) {
|
|
@@ -32017,6 +32115,7 @@ async function fetchOraclePrices(chainIds, rpcOverrides, lists = {}, retries = 3
|
|
|
32017
32115
|
listaData,
|
|
32018
32116
|
eulerData,
|
|
32019
32117
|
aaveV4Data,
|
|
32118
|
+
fluidData,
|
|
32020
32119
|
morphoGqlEntries,
|
|
32021
32120
|
siloV2GqlEntries,
|
|
32022
32121
|
siloV3GqlEntries
|
|
@@ -32069,6 +32168,14 @@ async function fetchOraclePrices(chainIds, rpcOverrides, lists = {}, retries = 3
|
|
|
32069
32168
|
allowFailure,
|
|
32070
32169
|
rpcOverrides
|
|
32071
32170
|
),
|
|
32171
|
+
executeGroup(
|
|
32172
|
+
fluidGroup,
|
|
32173
|
+
chainId,
|
|
32174
|
+
chainBatchSize,
|
|
32175
|
+
retries,
|
|
32176
|
+
allowFailure,
|
|
32177
|
+
rpcOverrides
|
|
32178
|
+
),
|
|
32072
32179
|
morphoGqlPromise,
|
|
32073
32180
|
siloV2GqlPromise,
|
|
32074
32181
|
siloV3GqlPromise
|
|
@@ -32120,6 +32227,7 @@ async function fetchOraclePrices(chainIds, rpcOverrides, lists = {}, retries = 3
|
|
|
32120
32227
|
{ group: listaGroup, data: listaData },
|
|
32121
32228
|
{ group: eulerGroup, data: eulerData },
|
|
32122
32229
|
{ group: aaveV4Group, data: aaveV4Data },
|
|
32230
|
+
{ group: fluidGroup, data: fluidData },
|
|
32123
32231
|
...siloV2GqlEntries != null ? [] : [{ group: siloV2Group, data: siloV2Data }],
|
|
32124
32232
|
...siloV3GqlEntries != null ? [] : [{ group: siloV3Group, data: siloV3Data }],
|
|
32125
32233
|
...useMorphoGql ? [] : [{ group: morphoGroup, data: morphoData }]
|
|
@@ -32206,6 +32314,7 @@ async function fetchOraclePrices(chainIds, rpcOverrides, lists = {}, retries = 3
|
|
|
32206
32314
|
true,
|
|
32207
32315
|
(t) => !!t.meta.baseAssetSource
|
|
32208
32316
|
);
|
|
32317
|
+
parseTrackers(fluidGroup, fluidData.results, false);
|
|
32209
32318
|
if (siloV2GqlEntries != null) {
|
|
32210
32319
|
const diag2 = {
|
|
32211
32320
|
lender: "SILO_V2 (GraphQL)",
|
|
@@ -32770,8 +32879,8 @@ var buildFluidFTokensCall = (chainId) => {
|
|
|
32770
32879
|
};
|
|
32771
32880
|
|
|
32772
32881
|
// src/vaults/fluid/publicCallParse.ts
|
|
32773
|
-
var
|
|
32774
|
-
var
|
|
32882
|
+
var FLUID_EEE_LOWER3 = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
|
|
32883
|
+
var normalizeUnderlying3 = (addr) => addr === FLUID_EEE_LOWER3 ? zeroAddress : addr;
|
|
32775
32884
|
var FLUID_RATE_SCALE2 = 100;
|
|
32776
32885
|
var scaleFluidRate2 = (raw) => {
|
|
32777
32886
|
if (raw === void 0 || raw === null) return 0;
|
|
@@ -32793,7 +32902,7 @@ function parseFTokens(fTokens, chainId, prices, tokenList) {
|
|
|
32793
32902
|
for (const ft of fTokens) {
|
|
32794
32903
|
const rawAsset = (ft.asset ?? "").toString().toLowerCase();
|
|
32795
32904
|
if (!rawAsset) continue;
|
|
32796
|
-
const underlying =
|
|
32905
|
+
const underlying = normalizeUnderlying3(rawAsset);
|
|
32797
32906
|
const assetMeta = tokenList[underlying];
|
|
32798
32907
|
const decimals = Number(ft.decimals ?? assetMeta?.decimals ?? 18);
|
|
32799
32908
|
const totalAssetsFormatted = Number(
|