@1delta/margin-fetcher 0.0.275 → 0.0.276

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 CHANGED
@@ -35891,6 +35891,20 @@ var buildGearboxV3PoolsCall = (chainId) => {
35891
35891
  ];
35892
35892
  };
35893
35893
 
35894
+ // src/vaults/sharePrice.ts
35895
+ function deriveConvertToAssets(totalAssetsRaw, totalSupplyRaw, shareDecimals) {
35896
+ try {
35897
+ const ta = BigInt(totalAssetsRaw ?? 0);
35898
+ const ts = BigInt(totalSupplyRaw ?? 0);
35899
+ if (ts <= 0n) return "0";
35900
+ const dec = Math.max(0, Math.round(Number(shareDecimals) || 0));
35901
+ const probe = 10n ** BigInt(dec);
35902
+ return (ta * probe / ts).toString();
35903
+ } catch {
35904
+ return "0";
35905
+ }
35906
+ }
35907
+
35894
35908
  // src/vaults/gearbox/publicCallParse.ts
35895
35909
  var WETH_MAINNET = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2";
35896
35910
  var normalizeUnderlying6 = (addr, chainId) => {
@@ -35928,9 +35942,15 @@ function parseMarkets(markets, chainId, prices, tokenList) {
35928
35942
  const assetMeta = tokenList[underlying];
35929
35943
  const decimals = Number(assetMeta?.decimals ?? pool.decimals ?? 18);
35930
35944
  const totalAssetsRaw = pool.expectedLiquidity?.toString() ?? "0";
35945
+ const totalSupplyRaw = pool.totalSupply?.toString() ?? "0";
35931
35946
  const totalAssetsFormatted = Number(
35932
35947
  parseRawAmount(totalAssetsRaw, decimals)
35933
35948
  );
35949
+ const convertToAssets = deriveConvertToAssets(
35950
+ totalAssetsRaw,
35951
+ totalSupplyRaw,
35952
+ decimals
35953
+ );
35934
35954
  const oracleKey = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(underlying, chainId);
35935
35955
  const priceUsd = prices[oracleKey] ?? prices[underlying] ?? 0;
35936
35956
  const liquidityRaw = pool.availableLiquidity?.toString() ?? "0";
@@ -35950,7 +35970,8 @@ function parseMarkets(markets, chainId, prices, tokenList) {
35950
35970
  ),
35951
35971
  decimals,
35952
35972
  totalAssets: totalAssetsRaw,
35953
- totalSupply: pool.totalSupply?.toString() ?? "0",
35973
+ totalSupply: totalSupplyRaw,
35974
+ convertToAssets,
35954
35975
  totalBorrowed: pool.totalBorrowed?.toString() ?? "0",
35955
35976
  availableLiquidity: pool.availableLiquidity?.toString() ?? "0",
35956
35977
  expectedLiquidity: pool.expectedLiquidity?.toString() ?? "0",
@@ -35985,6 +36006,7 @@ var fetchGearboxV3Pools = async (chainId, multicallRetry, prices = {}, tokenList
35985
36006
  };
35986
36007
 
35987
36008
  // src/vaults/morpho/fetchFromApi.ts
36009
+ var MORPHO_SHARE_DECIMALS = 18;
35988
36010
  var MORPHO_API_URL = "https://blue-api.morpho.org/graphql";
35989
36011
  var PAGE_SIZE = 200;
35990
36012
  var vaultsQuery = (first, skip, chainId) => `
@@ -36091,7 +36113,13 @@ function parseVault2(v, chainId, prices, tokenList) {
36091
36113
  const assetMeta = tokenList[assetAddr];
36092
36114
  const decimals = Number(v.asset?.decimals ?? assetMeta?.decimals ?? 18);
36093
36115
  const totalAssetsRaw = state.totalAssets?.toString() ?? "0";
36116
+ const totalSupplyRaw = state.totalSupply?.toString() ?? "0";
36094
36117
  const totalAssetsFormatted = Number(parseRawAmount(totalAssetsRaw, decimals));
36118
+ const convertToAssets = deriveConvertToAssets(
36119
+ totalAssetsRaw,
36120
+ totalSupplyRaw,
36121
+ MORPHO_SHARE_DECIMALS
36122
+ );
36095
36123
  const liquidityRaw = v.liquidity?.underlying?.toString() ?? "0";
36096
36124
  const liquidityFormatted = Number(parseRawAmount(liquidityRaw, decimals));
36097
36125
  const liquidityUsd = Number(v.liquidity?.usd ?? 0);
@@ -36118,7 +36146,8 @@ function parseVault2(v, chainId, prices, tokenList) {
36118
36146
  ),
36119
36147
  decimals,
36120
36148
  totalAssets: totalAssetsRaw,
36121
- totalSupply: state.totalSupply?.toString() ?? "0",
36149
+ totalSupply: totalSupplyRaw,
36150
+ convertToAssets,
36122
36151
  supplyRate,
36123
36152
  rewardsRate,
36124
36153
  depositRate: supplyRate + rewardsRate,
@@ -36464,6 +36493,11 @@ function parseVault3(entry, results, chainId, prices, tokenList, marketIds, rate
36464
36493
  const totalAssets = toStringSafe(totalAssetsRaw, "0");
36465
36494
  const totalSupply = toStringSafe(totalSupplyRaw, "0");
36466
36495
  const totalAssetsFormatted = Number(parseRawAmount(totalAssets, decimals));
36496
+ const convertToAssets = deriveConvertToAssets(
36497
+ totalAssets,
36498
+ totalSupply,
36499
+ Number(decimalsRaw ?? 18)
36500
+ );
36467
36501
  const oracleKey = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(underlying, chainId);
36468
36502
  const priceUsd = prices[oracleKey] ?? prices[underlying] ?? 0;
36469
36503
  const onchainName = toStringSafe(nameRaw).trim();
@@ -36497,6 +36531,7 @@ function parseVault3(entry, results, chainId, prices, tokenList, marketIds, rate
36497
36531
  decimals,
36498
36532
  totalAssets,
36499
36533
  totalSupply,
36534
+ convertToAssets,
36500
36535
  supplyRate: depositRate,
36501
36536
  rewardsRate: 0,
36502
36537
  depositRate,
@@ -36845,6 +36880,11 @@ function parseVault4(entry, results, curatorAddrRaw, chainId, prices, tokenList,
36845
36880
  const totalAssets = toStringSafe2(totalAssetsRaw, "0");
36846
36881
  const totalSupply = toStringSafe2(totalSupplyRaw, "0");
36847
36882
  const totalAssetsFormatted = Number(parseRawAmount(totalAssets, decimals));
36883
+ const convertToAssets = deriveConvertToAssets(
36884
+ totalAssets,
36885
+ totalSupply,
36886
+ Number(decimalsRaw ?? 18)
36887
+ );
36848
36888
  const oracleKey = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(underlying, chainId);
36849
36889
  const priceUsd = prices[oracleKey] ?? prices[underlying] ?? 0;
36850
36890
  const onchainName = toStringSafe2(nameRaw).trim();
@@ -36877,6 +36917,7 @@ function parseVault4(entry, results, curatorAddrRaw, chainId, prices, tokenList,
36877
36917
  decimals,
36878
36918
  totalAssets,
36879
36919
  totalSupply,
36920
+ convertToAssets,
36880
36921
  supplyRate: depositRate,
36881
36922
  rewardsRate: 0,
36882
36923
  depositRate,
@@ -37020,6 +37061,11 @@ function parseVault5(v, chainId, prices, tokenList, exposures, liquidityFormatte
37020
37061
  const totalAssetsFormatted = Number(v.totalAssets ?? 0) || 0;
37021
37062
  const totalAssetsRaw = toRawAmount3(v.totalAssets, decimals);
37022
37063
  const totalSupplyRaw = toRawAmount3(v.totalSupply, decimals);
37064
+ const convertToAssets = deriveConvertToAssets(
37065
+ totalAssetsRaw,
37066
+ totalSupplyRaw,
37067
+ decimals
37068
+ );
37023
37069
  const oracleKey = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(assetAddr, chainId);
37024
37070
  const priceUsd = prices[oracleKey] ?? prices[assetAddr] ?? 0;
37025
37071
  const supplyRate = Number(v.userApr ?? 0) || 0;
@@ -37044,6 +37090,7 @@ function parseVault5(v, chainId, prices, tokenList, exposures, liquidityFormatte
37044
37090
  protocolId: (v.protocolId ?? v.protocol?.id ?? "").toLowerCase(),
37045
37091
  totalAssets: totalAssetsRaw,
37046
37092
  totalSupply: totalSupplyRaw,
37093
+ convertToAssets,
37047
37094
  supplyRate,
37048
37095
  grossRate,
37049
37096
  rewardsRate: 0,
@@ -37283,6 +37330,11 @@ function parseVault6(v, chainId, prices, tokenList, evkIndex) {
37283
37330
  evkIndex
37284
37331
  );
37285
37332
  const totalSupplyRaw = v.totalSupply?.toString() ?? v.totalShares?.toString() ?? "0";
37333
+ const convertToAssets = deriveConvertToAssets(
37334
+ totalAssetsRaw,
37335
+ totalSupplyRaw,
37336
+ decimals
37337
+ );
37286
37338
  const liquidityBig = computeRealLiquidity(
37287
37339
  v.strategies,
37288
37340
  totalAssetsRaw,
@@ -37298,6 +37350,7 @@ function parseVault6(v, chainId, prices, tokenList, evkIndex) {
37298
37350
  decimals,
37299
37351
  totalAssets: totalAssetsRaw,
37300
37352
  totalSupply: totalSupplyRaw,
37353
+ convertToAssets,
37301
37354
  supplyRate,
37302
37355
  rewardsRate: 0,
37303
37356
  depositRate: supplyRate,
@@ -44434,10 +44487,12 @@ var classifyVault = (input) => {
44434
44487
  const denomination = isStablecoinSymbol(input.underlyingSymbol) ? "stable" : "volatile";
44435
44488
  return { yieldProfile, denomination };
44436
44489
  };
44437
- var stampVaultClassification = (data, chainId) => {
44490
+ var stampVaultClassification = (data, chainId, tokenList = {}) => {
44438
44491
  const stampBag = (bag, provider) => {
44439
44492
  if (!bag) return;
44440
44493
  for (const v of Object.values(bag)) {
44494
+ const shareAsset = tokenList[v.address?.toLowerCase?.() ?? ""];
44495
+ if (shareAsset) v.shareAsset = shareAsset;
44441
44496
  const c = classifyVault({
44442
44497
  provider,
44443
44498
  chainId,
@@ -44446,6 +44501,7 @@ var stampVaultClassification = (data, chainId) => {
44446
44501
  });
44447
44502
  v.yieldProfile = c.yieldProfile;
44448
44503
  v.denomination = c.denomination;
44504
+ v.sharePrice = v.convertToAssets ?? v.pricePerShare;
44449
44505
  }
44450
44506
  };
44451
44507
  stampBag(data.fluid, "fluid");
@@ -45718,7 +45774,8 @@ function buildVaultLookup(data) {
45718
45774
  // Carried through from `stampVaultClassification` (set on the
45719
45775
  // provider objects before the lookup is built).
45720
45776
  yieldProfile: v.yieldProfile,
45721
- denomination: v.denomination
45777
+ denomination: v.denomination,
45778
+ sharePrice: v.sharePrice
45722
45779
  });
45723
45780
  }
45724
45781
  };
@@ -45906,7 +45963,7 @@ var getVaultPublicDataAll = async (chainId, providers, multicallRetry, prices =
45906
45963
  );
45907
45964
  }
45908
45965
  await Promise.all(tasks);
45909
- stampVaultClassification(out, chainId);
45966
+ stampVaultClassification(out, chainId, tokenList);
45910
45967
  return { data: out, lookup: buildVaultLookup(out) };
45911
45968
  };
45912
45969