@1delta/margin-fetcher 0.0.236 → 0.0.237
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 +109 -4
- 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/package.json +14 -14
package/dist/index.js
CHANGED
|
@@ -31477,6 +31477,88 @@ var siloV3Fetcher = {
|
|
|
31477
31477
|
parse: parseSiloV3Results,
|
|
31478
31478
|
getAbi: getSiloV3Abi
|
|
31479
31479
|
};
|
|
31480
|
+
var FLUID_EEE_LOWER2 = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
|
|
31481
|
+
var normalizeUnderlying2 = (addr) => addr === FLUID_EEE_LOWER2 ? zeroAddress : addr;
|
|
31482
|
+
function priceColInDebt(raw, colDec, debtDec) {
|
|
31483
|
+
return formatMorphoPrice(raw, debtDec, colDec + 9);
|
|
31484
|
+
}
|
|
31485
|
+
function getFluidCalls(chainId) {
|
|
31486
|
+
const resolvers = fluidResolvers()?.[chainId];
|
|
31487
|
+
if (!resolvers) return [];
|
|
31488
|
+
const call = {
|
|
31489
|
+
address: resolvers.vaultResolver,
|
|
31490
|
+
name: "getVaultsEntireData",
|
|
31491
|
+
params: []
|
|
31492
|
+
};
|
|
31493
|
+
return [
|
|
31494
|
+
{
|
|
31495
|
+
calls: [call],
|
|
31496
|
+
// Empty placeholder — populated per-vault inside `parse` from the
|
|
31497
|
+
// resolver response. Kept as an empty object to match the shape
|
|
31498
|
+
// other fetchers expose.
|
|
31499
|
+
meta: { vaults: [] },
|
|
31500
|
+
lender: Lender.FLUID
|
|
31501
|
+
}
|
|
31502
|
+
];
|
|
31503
|
+
}
|
|
31504
|
+
function parseFluidResults(data, _meta, context) {
|
|
31505
|
+
const { chainId, usdPrices, tokenList } = context;
|
|
31506
|
+
const entries = [];
|
|
31507
|
+
const vaults = data[0];
|
|
31508
|
+
if (!Array.isArray(vaults) || vaults.length === 0) return entries;
|
|
31509
|
+
for (const vault of vaults) {
|
|
31510
|
+
try {
|
|
31511
|
+
if (vault.isSmartCol || vault.isSmartDebt) continue;
|
|
31512
|
+
const constants = vault.constantVariables;
|
|
31513
|
+
const configs = vault.configs;
|
|
31514
|
+
if (!constants || !configs) continue;
|
|
31515
|
+
const rawCol = (constants.supplyToken?.token0 ?? constants.supplyToken ?? "").toString().toLowerCase();
|
|
31516
|
+
const rawLoan = (constants.borrowToken?.token0 ?? constants.borrowToken ?? "").toString().toLowerCase();
|
|
31517
|
+
if (!rawCol || !rawLoan) continue;
|
|
31518
|
+
const collateral = normalizeUnderlying2(rawCol);
|
|
31519
|
+
const loan = normalizeUnderlying2(rawLoan);
|
|
31520
|
+
const colDec = tokenList?.[collateral]?.decimals ?? 18;
|
|
31521
|
+
const loanDec = tokenList?.[loan]?.decimals ?? 18;
|
|
31522
|
+
const rawPrice = configs.oraclePriceOperate?.toString() ?? "0";
|
|
31523
|
+
if (!rawPrice || rawPrice === "0") continue;
|
|
31524
|
+
const priceDebtPerCol = priceColInDebt(rawPrice, colDec, loanDec);
|
|
31525
|
+
if (!Number.isFinite(priceDebtPerCol) || priceDebtPerCol === 0) continue;
|
|
31526
|
+
const vaultId = Number(constants.vaultId ?? 0);
|
|
31527
|
+
const lenderKey = `${Lender.FLUID}_${vaultId}`;
|
|
31528
|
+
const loanOracleKey = tokenList?.[loan]?.assetGroup ?? `${chainId}-${loan}`;
|
|
31529
|
+
const loanUSD = usdPrices[loanOracleKey] ?? usdPrices[loan];
|
|
31530
|
+
if (!loanUSD) continue;
|
|
31531
|
+
entries.push({
|
|
31532
|
+
asset: loan,
|
|
31533
|
+
price: 1,
|
|
31534
|
+
priceUSD: loanUSD,
|
|
31535
|
+
marketUid: createMarketUid(chainId, lenderKey, loan),
|
|
31536
|
+
targetLender: lenderKey,
|
|
31537
|
+
description: "Fluid loan asset",
|
|
31538
|
+
staticBase: true,
|
|
31539
|
+
baseAsset: loan
|
|
31540
|
+
});
|
|
31541
|
+
entries.push({
|
|
31542
|
+
asset: collateral,
|
|
31543
|
+
price: priceDebtPerCol,
|
|
31544
|
+
priceUSD: priceDebtPerCol * loanUSD,
|
|
31545
|
+
marketUid: createMarketUid(chainId, lenderKey, collateral),
|
|
31546
|
+
targetLender: lenderKey,
|
|
31547
|
+
baseAsset: loan
|
|
31548
|
+
});
|
|
31549
|
+
} catch {
|
|
31550
|
+
}
|
|
31551
|
+
}
|
|
31552
|
+
return entries;
|
|
31553
|
+
}
|
|
31554
|
+
function getFluidAbi() {
|
|
31555
|
+
return FluidVaultResolverAbi;
|
|
31556
|
+
}
|
|
31557
|
+
var fluidFetcher = {
|
|
31558
|
+
getCalls: getFluidCalls,
|
|
31559
|
+
parse: parseFluidResults,
|
|
31560
|
+
getAbi: getFluidAbi
|
|
31561
|
+
};
|
|
31480
31562
|
|
|
31481
31563
|
// src/prices/oracle-prices/fetchers/siloV2Graphql.ts
|
|
31482
31564
|
async function fetchSiloV2GraphQLMarkets(chainId) {
|
|
@@ -31926,6 +32008,11 @@ async function fetchOraclePrices(chainIds, rpcOverrides, lists = {}, retries = 3
|
|
|
31926
32008
|
() => siloV3Fetcher.getCalls(chainId),
|
|
31927
32009
|
getCallsErrors
|
|
31928
32010
|
) : [];
|
|
32011
|
+
const fluidResults = isActive("fluid") ? safeGetCalls(
|
|
32012
|
+
"fluid",
|
|
32013
|
+
() => fluidFetcher.getCalls(chainId),
|
|
32014
|
+
getCallsErrors
|
|
32015
|
+
) : [];
|
|
31929
32016
|
const aaveGroup = buildGroup(
|
|
31930
32017
|
"aave",
|
|
31931
32018
|
aaveResults,
|
|
@@ -31980,6 +32067,12 @@ async function fetchOraclePrices(chainIds, rpcOverrides, lists = {}, retries = 3
|
|
|
31980
32067
|
siloV3Fetcher.parse,
|
|
31981
32068
|
getSiloV3Abi()
|
|
31982
32069
|
);
|
|
32070
|
+
const fluidGroup = buildGroup(
|
|
32071
|
+
"fluid",
|
|
32072
|
+
fluidResults,
|
|
32073
|
+
fluidFetcher.parse,
|
|
32074
|
+
getFluidAbi()
|
|
32075
|
+
);
|
|
31983
32076
|
const allGroups = [
|
|
31984
32077
|
aaveGroup,
|
|
31985
32078
|
compoundV2Group,
|
|
@@ -31989,7 +32082,8 @@ async function fetchOraclePrices(chainIds, rpcOverrides, lists = {}, retries = 3
|
|
|
31989
32082
|
aaveV4Group,
|
|
31990
32083
|
morphoGroup,
|
|
31991
32084
|
siloV2Group,
|
|
31992
|
-
siloV3Group
|
|
32085
|
+
siloV3Group,
|
|
32086
|
+
fluidGroup
|
|
31993
32087
|
];
|
|
31994
32088
|
const totalCalls = allGroups.reduce((s, g) => s + g.calls.length, 0);
|
|
31995
32089
|
if (totalCalls === 0 && !isActive("morpho")) {
|
|
@@ -32017,6 +32111,7 @@ async function fetchOraclePrices(chainIds, rpcOverrides, lists = {}, retries = 3
|
|
|
32017
32111
|
listaData,
|
|
32018
32112
|
eulerData,
|
|
32019
32113
|
aaveV4Data,
|
|
32114
|
+
fluidData,
|
|
32020
32115
|
morphoGqlEntries,
|
|
32021
32116
|
siloV2GqlEntries,
|
|
32022
32117
|
siloV3GqlEntries
|
|
@@ -32069,6 +32164,14 @@ async function fetchOraclePrices(chainIds, rpcOverrides, lists = {}, retries = 3
|
|
|
32069
32164
|
allowFailure,
|
|
32070
32165
|
rpcOverrides
|
|
32071
32166
|
),
|
|
32167
|
+
executeGroup(
|
|
32168
|
+
fluidGroup,
|
|
32169
|
+
chainId,
|
|
32170
|
+
chainBatchSize,
|
|
32171
|
+
retries,
|
|
32172
|
+
allowFailure,
|
|
32173
|
+
rpcOverrides
|
|
32174
|
+
),
|
|
32072
32175
|
morphoGqlPromise,
|
|
32073
32176
|
siloV2GqlPromise,
|
|
32074
32177
|
siloV3GqlPromise
|
|
@@ -32120,6 +32223,7 @@ async function fetchOraclePrices(chainIds, rpcOverrides, lists = {}, retries = 3
|
|
|
32120
32223
|
{ group: listaGroup, data: listaData },
|
|
32121
32224
|
{ group: eulerGroup, data: eulerData },
|
|
32122
32225
|
{ group: aaveV4Group, data: aaveV4Data },
|
|
32226
|
+
{ group: fluidGroup, data: fluidData },
|
|
32123
32227
|
...siloV2GqlEntries != null ? [] : [{ group: siloV2Group, data: siloV2Data }],
|
|
32124
32228
|
...siloV3GqlEntries != null ? [] : [{ group: siloV3Group, data: siloV3Data }],
|
|
32125
32229
|
...useMorphoGql ? [] : [{ group: morphoGroup, data: morphoData }]
|
|
@@ -32206,6 +32310,7 @@ async function fetchOraclePrices(chainIds, rpcOverrides, lists = {}, retries = 3
|
|
|
32206
32310
|
true,
|
|
32207
32311
|
(t) => !!t.meta.baseAssetSource
|
|
32208
32312
|
);
|
|
32313
|
+
parseTrackers(fluidGroup, fluidData.results, false);
|
|
32209
32314
|
if (siloV2GqlEntries != null) {
|
|
32210
32315
|
const diag2 = {
|
|
32211
32316
|
lender: "SILO_V2 (GraphQL)",
|
|
@@ -32770,8 +32875,8 @@ var buildFluidFTokensCall = (chainId) => {
|
|
|
32770
32875
|
};
|
|
32771
32876
|
|
|
32772
32877
|
// src/vaults/fluid/publicCallParse.ts
|
|
32773
|
-
var
|
|
32774
|
-
var
|
|
32878
|
+
var FLUID_EEE_LOWER3 = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
|
|
32879
|
+
var normalizeUnderlying3 = (addr) => addr === FLUID_EEE_LOWER3 ? zeroAddress : addr;
|
|
32775
32880
|
var FLUID_RATE_SCALE2 = 100;
|
|
32776
32881
|
var scaleFluidRate2 = (raw) => {
|
|
32777
32882
|
if (raw === void 0 || raw === null) return 0;
|
|
@@ -32793,7 +32898,7 @@ function parseFTokens(fTokens, chainId, prices, tokenList) {
|
|
|
32793
32898
|
for (const ft of fTokens) {
|
|
32794
32899
|
const rawAsset = (ft.asset ?? "").toString().toLowerCase();
|
|
32795
32900
|
if (!rawAsset) continue;
|
|
32796
|
-
const underlying =
|
|
32901
|
+
const underlying = normalizeUnderlying3(rawAsset);
|
|
32797
32902
|
const assetMeta = tokenList[underlying];
|
|
32798
32903
|
const decimals = Number(ft.decimals ?? assetMeta?.decimals ?? 18);
|
|
32799
32904
|
const totalAssetsFormatted = Number(
|