@1delta/margin-fetcher 0.0.145 → 0.0.147

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.
Files changed (44) hide show
  1. package/dist/{_esm-THA2ITDF.js → _esm-2UAQOYNJ.js} +35 -35
  2. package/dist/{_esm-THA2ITDF.js.map → _esm-2UAQOYNJ.js.map} +1 -1
  3. package/dist/abis/morpho/lens.d.ts +52 -0
  4. package/dist/abis/morpho/lens.d.ts.map +1 -1
  5. package/dist/ccip-4Z7OPIYF.js +5 -0
  6. package/dist/{ccip-5WZ2VUTL.js.map → ccip-4Z7OPIYF.js.map} +1 -1
  7. package/dist/{chunk-ZT5S5OCM.js → chunk-GJEFCA2S.js} +150 -114
  8. package/dist/chunk-GJEFCA2S.js.map +1 -0
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +285 -36
  12. package/dist/index.js.map +1 -1
  13. package/dist/lending/index.d.ts +2 -2
  14. package/dist/lending/index.d.ts.map +1 -1
  15. package/dist/lending/lista/getMarketsFromChain.d.ts +0 -4
  16. package/dist/lending/lista/getMarketsFromChain.d.ts.map +1 -1
  17. package/dist/lending/morpho/getMarketsFromChain.d.ts +0 -4
  18. package/dist/lending/morpho/getMarketsFromChain.d.ts.map +1 -1
  19. package/dist/lending/morpho/index.d.ts +1 -1
  20. package/dist/lending/morpho/index.d.ts.map +1 -1
  21. package/dist/lending/morpho/utils/evmParser.d.ts +26 -3
  22. package/dist/lending/morpho/utils/evmParser.d.ts.map +1 -1
  23. package/dist/lending/user-data/abis.d.ts +37 -0
  24. package/dist/lending/user-data/abis.d.ts.map +1 -1
  25. package/dist/lending/user-data/fetchUserData.d.ts +4 -0
  26. package/dist/lending/user-data/fetchUserData.d.ts.map +1 -1
  27. package/dist/lending/user-data/morpho/decoder.d.ts +20 -1
  28. package/dist/lending/user-data/morpho/decoder.d.ts.map +1 -1
  29. package/dist/lending/user-data/morpho/userCallBuild.d.ts +2 -3
  30. package/dist/lending/user-data/morpho/userCallBuild.d.ts.map +1 -1
  31. package/dist/lending/user-data/morpho/userCallParse.d.ts +14 -0
  32. package/dist/lending/user-data/morpho/userCallParse.d.ts.map +1 -1
  33. package/dist/lending/user-data/utils/createGeneralUserState.d.ts +1 -0
  34. package/dist/lending/user-data/utils/createGeneralUserState.d.ts.map +1 -1
  35. package/dist/lending/user-data/utils/createMultiAccountStyleUserState.d.ts.map +1 -1
  36. package/dist/types/lender/morpho-types.d.ts +6 -0
  37. package/dist/types/lender/morpho-types.d.ts.map +1 -1
  38. package/dist/types/lenderTypes.d.ts +7 -4
  39. package/dist/types/lenderTypes.d.ts.map +1 -1
  40. package/dist/utils/index.d.ts +1 -0
  41. package/dist/utils/index.d.ts.map +1 -1
  42. package/package.json +1 -1
  43. package/dist/ccip-5WZ2VUTL.js +0 -5
  44. package/dist/chunk-ZT5S5OCM.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { getLenderPublicData, getLenderPublicDataViaApi, getLenderPublicDataAll, getLenderUserDataResult, convertLenderUserDataResult, inititalizeAllData, fetchLenderMetaFromDirAndInitialize, fetchLenderMetaFromDir, getLenderUserDataMulti, type ChainQuery, type ProviderOptions, type BaseLendingPosition, type BasicReserveResponse, type AprData, type BalanceData, type UserConfig, MORPHO_LENS, decodePackedDataset, buildMorphoTypeCall, buildMorphoUserCallWithLens, decodeMarkets, getMorphoTypeMarketConverter, } from './lending';
1
+ export { getLenderPublicData, getLenderPublicDataViaApi, getLenderPublicDataAll, getLenderUserDataResult, convertLenderUserDataResult, inititalizeAllData, fetchLenderMetaFromDirAndInitialize, fetchLenderMetaFromDir, getLenderUserDataMulti, type ChainQuery, type ProviderOptions, type BaseLendingPosition, type BasicReserveResponse, type AprData, type BalanceData, type UserConfig, MORPHO_LENS, decodePackedMorphoUserDataset, decodePackedListaUserDataset, buildMorphoTypeCall, buildMorphoTypeUserCallWithLens, decodeMarkets, decodeListaMarkets, normalizeToBytes, getMorphoTypeMarketConverter, } from './lending';
2
2
  export { type LendingPair, generateLendingPairs, getTopPairs, } from './lending-pairs';
3
3
  export { type PoolWithMeta, generateLendingPools, unflattenLenderData, } from './lending-pools';
4
4
  export { fetchGeneralYields } from './yields';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,EAC3B,kBAAkB,EAClB,mCAAmC,EACnC,sBAAsB,EACtB,sBAAsB,EACtB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,2BAA2B,EAC3B,aAAa,EACb,4BAA4B,GAC7B,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,KAAK,WAAW,EAChB,oBAAoB,EACpB,WAAW,GACZ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,KAAK,YAAY,EACjB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,iBAAiB,GAClB,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,aAAa,EACb,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EAClC,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,uBAAuB,EAC5B,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,WAAW,GACjB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,EAC3B,kBAAkB,EAClB,mCAAmC,EACnC,sBAAsB,EACtB,sBAAsB,EACtB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,WAAW,EACX,6BAA6B,EAC7B,4BAA4B,EAC5B,mBAAmB,EACnB,+BAA+B,EAC/B,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,KAAK,WAAW,EAChB,oBAAoB,EACpB,WAAW,GACZ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,KAAK,YAAY,EACjB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,iBAAiB,GAClB,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,aAAa,EACb,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EAClC,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,uBAAuB,EAC5B,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,WAAW,GACjB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { formatEther, BaseError, formatUnits } from './chunk-ZT5S5OCM.js';
1
+ import { formatEther, BaseError, formatUnits } from './chunk-GJEFCA2S.js';
2
2
  import './chunk-BYTNVMX7.js';
3
3
  import './chunk-PR4QN5HX.js';
4
4
  import { Lender, AAVE_V3_LENDERS, AAVE_V2_LENDERS, AAVE_V32_LENDERS, COMPOUND_V2_LENDERS, VENUS_LENDERS } from '@1delta/lender-registry';
@@ -6328,7 +6328,10 @@ function isInit(lender) {
6328
6328
  return lender === Lender.INIT;
6329
6329
  }
6330
6330
  function isMorphoType(lender) {
6331
- return lender?.startsWith("MORPHO_BLUE") || lender?.startsWith("LISTA_DAO");
6331
+ return lender?.startsWith("MORPHO_BLUE") || isLista(lender);
6332
+ }
6333
+ function isLista(lender) {
6334
+ return lender?.startsWith("LISTA_DAO");
6332
6335
  }
6333
6336
  function isAaveV3Type(lender) {
6334
6337
  return AAVE_V3_LENDERS.includes(lender);
@@ -7853,7 +7856,7 @@ var buildCompoundV3StyleLenderReserveCall = (chainId, lender) => {
7853
7856
  return calls;
7854
7857
  };
7855
7858
 
7856
- // ../../node_modules/.pnpm/viem@2.42.1_bufferutil@4.0.9_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.2.0/node_modules/viem/_esm/errors/unit.js
7859
+ // ../../node_modules/.pnpm/viem@2.43.2_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.2.1/node_modules/viem/_esm/errors/unit.js
7857
7860
  var InvalidDecimalNumberError = class extends BaseError {
7858
7861
  constructor({ value }) {
7859
7862
  super(`Number \`${value}\` is not a valid decimal number.`, {
@@ -7862,7 +7865,7 @@ var InvalidDecimalNumberError = class extends BaseError {
7862
7865
  }
7863
7866
  };
7864
7867
 
7865
- // ../../node_modules/.pnpm/viem@2.42.1_bufferutil@4.0.9_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.2.0/node_modules/viem/_esm/utils/unit/parseUnits.js
7868
+ // ../../node_modules/.pnpm/viem@2.43.2_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.2.1/node_modules/viem/_esm/utils/unit/parseUnits.js
7866
7869
  function parseUnits(value, decimals) {
7867
7870
  if (!/^(-?)([0-9]*)\.?([0-9]*)$/.test(value))
7868
7871
  throw new InvalidDecimalNumberError({ value });
@@ -7897,7 +7900,7 @@ function parseUnits(value, decimals) {
7897
7900
  return BigInt(`${negative ? "-" : ""}${integer}${fraction}`);
7898
7901
  }
7899
7902
 
7900
- // ../../node_modules/.pnpm/viem@2.42.1_bufferutil@4.0.9_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.2.0/node_modules/viem/_esm/constants/address.js
7903
+ // ../../node_modules/.pnpm/viem@2.43.2_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.2.1/node_modules/viem/_esm/constants/address.js
7901
7904
  var zeroAddress = "0x0000000000000000000000000000000000000000";
7902
7905
 
7903
7906
  // src/utils/parsing.ts
@@ -10615,18 +10618,15 @@ var MORPHO_LENS = {
10615
10618
  [Chain.KATANA]: "0xCe434378adacC51d54312c872113D687Ac19B516",
10616
10619
  [Chain.HYPEREVM]: "0x6Bc6aCB905c1216B0119C87Bf9E178ce298310FA",
10617
10620
  [Chain.SONEIUM]: "0x4b5458BB47dCBC1a41B31b41e1a8773dE312BE9d",
10618
- [Chain.ETHEREUM_MAINNET]: "0x4b5458BB47dCBC1a41B31b41e1a8773dE312BE9d",
10621
+ [Chain.ETHEREUM_MAINNET]: "0x80416C1e314662D6417ba9fA4F983fE4507785ff",
10619
10622
  [Chain.PLASMA_MAINNET]: "0xcB6Eb8df68153cebF60E1872273Ef52075a5C297",
10620
10623
  [Chain.BERACHAIN]: "0x7a59ddbB76521E8982Fa3A08598C9a83b14A6C07",
10621
- [Chain.BNB_SMART_CHAIN_MAINNET]: "0xFc98b3157f0447DfbB9FdBE7d072F7DdacA1E27C",
10624
+ [Chain.BNB_SMART_CHAIN_MAINNET]: "0x5c4F2eACBdc1EB38F839bDDD7620E250a36819D4",
10622
10625
  // lista lens
10623
10626
  [Chain.UNICHAIN]: "0xA453ba397c61B0c292EA3959A858821145B2707F",
10624
10627
  [Chain.SEI_NETWORK]: "0xcB6Eb8df68153cebF60E1872273Ef52075a5C297",
10625
10628
  [Chain.MONAD_MAINNET]: "0x0bd7473CbBf81d9dD936c61117eD230d95006CA2"
10626
10629
  };
10627
- var LISTA_LENS = {
10628
- [Chain.BNB_SMART_CHAIN_MAINNET]: "0xFc98b3157f0447DfbB9FdBE7d072F7DdacA1E27C"
10629
- };
10630
10630
  var buildMorphoUserCallWithLens = (chainId, account, lender, marketsToQuery) => {
10631
10631
  const marketSlices = chunk(marketsToQuery, 100);
10632
10632
  return marketSlices.flatMap((marketsInChunk) => ({
@@ -10640,6 +10640,22 @@ var buildMorphoUserCallWithLens = (chainId, account, lender, marketsToQuery) =>
10640
10640
  ]
10641
10641
  }));
10642
10642
  };
10643
+ var buildMorphoTypeUserCallWithLens = (chainId, account, lender, marketsToQuery) => {
10644
+ return lender === Lender.MORPHO_BLUE ? buildMorphoUserCallWithLens(chainId, account, lender, marketsToQuery) : buildListaUserCallWithLens(chainId, account, lender, marketsToQuery);
10645
+ };
10646
+ var buildListaUserCallWithLens = (chainId, account, lender, marketsToQuery) => {
10647
+ const marketSlices = chunk(marketsToQuery, 100);
10648
+ return marketSlices.flatMap((marketsInChunk) => ({
10649
+ address: MORPHO_LENS[chainId],
10650
+ name: "getListaUserDataCompact",
10651
+ params: [
10652
+ marketsInChunk.map((a) => a.replace("LISTA_DAO_", "0x")),
10653
+ account,
10654
+ // @ts-ignore
10655
+ morphoPools()?.[lender]?.[chainId]
10656
+ ]
10657
+ }));
10658
+ };
10643
10659
  var safeDivide = (a, b) => {
10644
10660
  return a === 0 || isNaN(a) ? 0 : b !== 0 ? a / b : Infinity;
10645
10661
  };
@@ -10653,6 +10669,7 @@ function createBaseTypeUserState(payload, lenderData, totalDeposits24h = 0, tota
10653
10669
  let assetKeys = Object.keys(payload.lendingPositions["0"] ?? {});
10654
10670
  const { chainId, account } = payload;
10655
10671
  const mode = Number(payload.userEMode ?? 0);
10672
+ const isWhitelisted = !Boolean(payload?.notWhitelisted ?? false);
10656
10673
  let depositInterest = 0;
10657
10674
  let borrowInterest = 0;
10658
10675
  let rewardDepositAccrual = 0;
@@ -10737,7 +10754,9 @@ function createBaseTypeUserState(payload, lenderData, totalDeposits24h = 0, tota
10737
10754
  stakingBorrowApr: safeDivide(stakingBorrowAccrual, debt)
10738
10755
  }
10739
10756
  };
10740
- const userConfigs = { "0": { selectedMode: mode, id: account } };
10757
+ const userConfigs = {
10758
+ "0": { selectedMode: mode, id: account, isWhitelisted }
10759
+ };
10741
10760
  return {
10742
10761
  account,
10743
10762
  chainId,
@@ -10762,7 +10781,8 @@ function createMultiAccountTypeUserState(payload, lenderData, histData) {
10762
10781
  const mode = posMode ?? LENDER_MODE_NO_MODE;
10763
10782
  userConfigs[posId] = {
10764
10783
  id: posId,
10765
- selectedMode: mode
10784
+ selectedMode: mode,
10785
+ isWhitelisted: true
10766
10786
  };
10767
10787
  let depositInterest = 0;
10768
10788
  let borrowInterest = 0;
@@ -11120,12 +11140,16 @@ var MOOLAH_RECORD_SIZE = 4 * FIELD_SIZES.addr + // loanToken, collateralToken, o
11120
11140
  3 * FIELD_SIZES.u256 + // loanTokenPrice, collateralTokenPrice, rateAtTarget
11121
11141
  5 * FIELD_SIZES.u128 + // totals (4) + lastUpdate
11122
11142
  1 * FIELD_SIZES.u128;
11143
+ var LISTA_RECORD_SIZE = 7 * FIELD_SIZES.addr + // loanToken, collateralToken, oracle, irm, loanProvider, collateralProvider, broker
11144
+ 8 * FIELD_SIZES.u128 + // lltv, minLoan, totals (4), lastUpdate, fee
11145
+ 3 * FIELD_SIZES.u256 + // priceLoanToken, priceCollateralToken, rateAtTarget
11146
+ 1;
11123
11147
  function decodeMarkets(input) {
11124
11148
  const bytes = normalizeToBytes(input);
11125
11149
  if (bytes.length % MORPHO_RECORD_SIZE === 0) {
11126
11150
  return decodeMorphoMarkets(bytes);
11127
- } else if (bytes.length % MOOLAH_RECORD_SIZE === 0) {
11128
- return decodeMoolahMarkets(bytes);
11151
+ } else if (bytes.length % LISTA_RECORD_SIZE === 0) {
11152
+ return decodeListaMarkets(bytes);
11129
11153
  } else {
11130
11154
  throw new Error(
11131
11155
  `Invalid data length ${bytes.length}; not a multiple of ${MORPHO_RECORD_SIZE} (morpho) or ${MOOLAH_RECORD_SIZE} (moolah) bytes per record`
@@ -11185,14 +11209,14 @@ function decodeMorphoMarkets(bytes) {
11185
11209
  }
11186
11210
  return markets;
11187
11211
  }
11188
- function decodeMoolahMarkets(bytes) {
11189
- if (bytes.length % MOOLAH_RECORD_SIZE !== 0) {
11212
+ function decodeListaMarkets(bytes) {
11213
+ if (bytes.length % LISTA_RECORD_SIZE !== 0) {
11190
11214
  throw new Error(
11191
- `Invalid data length ${bytes.length}; not a multiple of ${MOOLAH_RECORD_SIZE} bytes per record`
11215
+ `Invalid data length ${bytes.length}; not a multiple of ${LISTA_RECORD_SIZE} bytes per record`
11192
11216
  );
11193
11217
  }
11194
11218
  const markets = [];
11195
- for (let i = 0; i < bytes.length; i += MOOLAH_RECORD_SIZE) {
11219
+ for (let i = 0; i < bytes.length; i += LISTA_RECORD_SIZE) {
11196
11220
  let o = i;
11197
11221
  const loanToken = readAddress(bytes, o, FIELD_SIZES.addr);
11198
11222
  o += FIELD_SIZES.addr;
@@ -11208,6 +11232,8 @@ function decodeMoolahMarkets(bytes) {
11208
11232
  o += FIELD_SIZES.u256;
11209
11233
  const collateralTokenPrice = readUintBE(bytes, o, FIELD_SIZES.u256);
11210
11234
  o += FIELD_SIZES.u256;
11235
+ const minLoan = readUintBE(bytes, o, FIELD_SIZES.u128);
11236
+ o += FIELD_SIZES.u128;
11211
11237
  const rateAtTarget = readUintBE(bytes, o, FIELD_SIZES.u256);
11212
11238
  o += FIELD_SIZES.u256;
11213
11239
  const totalSupplyAssets = readUintBE(bytes, o, FIELD_SIZES.u128);
@@ -11222,16 +11248,29 @@ function decodeMoolahMarkets(bytes) {
11222
11248
  o += FIELD_SIZES.u128;
11223
11249
  const fee = readUintBE(bytes, o, FIELD_SIZES.u128);
11224
11250
  o += FIELD_SIZES.u128;
11225
- const calculatedPrice = collateralTokenPrice && loanTokenPrice ? collateralTokenPrice * 10n ** 36n / loanTokenPrice : 0n;
11251
+ const hasWhitelist = bytes[o] === 1;
11252
+ o += 1;
11253
+ const loanProvider = readAddress(bytes, o, FIELD_SIZES.addr);
11254
+ o += FIELD_SIZES.addr;
11255
+ const collateralProvider = readAddress(bytes, o, FIELD_SIZES.addr);
11256
+ o += FIELD_SIZES.addr;
11257
+ const broker = readAddress(bytes, o, FIELD_SIZES.addr);
11258
+ o += FIELD_SIZES.addr;
11259
+ const price = loanTokenPrice > 0n ? collateralTokenPrice * 10n ** 36n / loanTokenPrice : 0n;
11226
11260
  markets.push({
11227
11261
  loanToken,
11228
11262
  collateralToken,
11229
11263
  oracle,
11230
11264
  irm,
11231
11265
  lltv,
11232
- price: calculatedPrice,
11266
+ price,
11233
11267
  loanTokenPrice,
11234
11268
  collateralTokenPrice,
11269
+ minLoan,
11270
+ hasWhitelist,
11271
+ loanProvider,
11272
+ collateralProvider,
11273
+ broker,
11235
11274
  rateAtTarget,
11236
11275
  totalSupplyAssets,
11237
11276
  totalSupplyShares,
@@ -11283,8 +11322,8 @@ function buildListaCall(chainId, marketsOverride) {
11283
11322
  if (!mb || markets.length === 0) return [];
11284
11323
  return [
11285
11324
  {
11286
- address: LISTA_LENS[chainId],
11287
- name: "getMoolahMarketDataCompact",
11325
+ address: MORPHO_LENS[chainId],
11326
+ name: "getListaMarketDataCompact",
11288
11327
  params: [mb, markets]
11289
11328
  }
11290
11329
  ];
@@ -11674,6 +11713,8 @@ function getMorphoMarketDataConverter(lender, chainId, prices, additionalYields
11674
11713
  markets.length > 0 ? 1 : 0
11675
11714
  ];
11676
11715
  }
11716
+
11717
+ // src/lending/lista/getMarketsFromChain.ts
11677
11718
  function getListaMarketDataConverter(lender, chainId, prices, additionalYields = {
11678
11719
  intrinsicYields: {},
11679
11720
  lenderRewards: {},
@@ -11686,7 +11727,19 @@ function getListaMarketDataConverter(lender, chainId, prices, additionalYields =
11686
11727
  const data = {};
11687
11728
  decoded.forEach((market, i) => {
11688
11729
  const uniqueKey = markets[i];
11689
- const { lltv, irm, oracle, loanToken, collateralToken, ...state } = market;
11730
+ const {
11731
+ lltv,
11732
+ irm,
11733
+ oracle,
11734
+ loanToken,
11735
+ collateralToken,
11736
+ minLoan,
11737
+ broker,
11738
+ loanProvider,
11739
+ collateralProvider,
11740
+ hasWhitelist,
11741
+ ...state
11742
+ } = market;
11690
11743
  if (collateralToken && loanToken && oracle) {
11691
11744
  const m = "LISTA_DAO_" + uniqueKey.slice(2).toUpperCase();
11692
11745
  if (!data[m]) data[m] = { data: {} };
@@ -11809,7 +11862,12 @@ function getListaMarketDataConverter(lender, chainId, prices, additionalYields =
11809
11862
  oracle,
11810
11863
  irm,
11811
11864
  collateralAddress: collateralAssetAddress,
11812
- loanAddress: loanTokenAddress
11865
+ loanAddress: loanTokenAddress,
11866
+ minLoan: minLoan?.toString() ?? "0",
11867
+ broker,
11868
+ loanProvider,
11869
+ collateralProvider,
11870
+ hasWhitelist
11813
11871
  }
11814
11872
  };
11815
11873
  data[m].chainId = chainId;
@@ -11900,6 +11958,55 @@ var MorphoLensAbi = [
11900
11958
  { type: "bytes32[]", name: "marketsIds" }
11901
11959
  ],
11902
11960
  outputs: [{ type: "bytes", name: "data" }]
11961
+ },
11962
+ {
11963
+ inputs: [
11964
+ {
11965
+ internalType: "bytes32[]",
11966
+ name: "marketsIds",
11967
+ type: "bytes32[]"
11968
+ },
11969
+ {
11970
+ internalType: "address",
11971
+ name: "user",
11972
+ type: "address"
11973
+ },
11974
+ {
11975
+ internalType: "address",
11976
+ name: "morpho",
11977
+ type: "address"
11978
+ }
11979
+ ],
11980
+ name: "getListaUserDataCompact",
11981
+ outputs: [
11982
+ {
11983
+ internalType: "bytes",
11984
+ name: "data",
11985
+ type: "bytes"
11986
+ }
11987
+ ],
11988
+ stateMutability: "view",
11989
+ type: "function"
11990
+ },
11991
+ {
11992
+ name: "getMoolahMarketDataCompact",
11993
+ type: "function",
11994
+ stateMutability: "view",
11995
+ inputs: [
11996
+ { type: "address", name: "morpho" },
11997
+ { type: "bytes32[]", name: "marketsIds" }
11998
+ ],
11999
+ outputs: [{ type: "bytes", name: "data" }]
12000
+ },
12001
+ {
12002
+ name: "getListaMarketDataCompact",
12003
+ type: "function",
12004
+ stateMutability: "view",
12005
+ inputs: [
12006
+ { type: "address", name: "morpho" },
12007
+ { type: "bytes32[]", name: "marketsIds" }
12008
+ ],
12009
+ outputs: [{ type: "bytes", name: "data" }]
11903
12010
  }
11904
12011
  ];
11905
12012
  var VENUS_LENS_VBNB = "0xf15A9c5aaDc327B383945D5821C7aC08Cdac7430";
@@ -13454,9 +13561,9 @@ var getLenderPublicDataAll = async (chainId, lenders, prices, additionalYields,
13454
13561
  var { isArray } = lodash;
13455
13562
  var MULTICALL_DEFAULT_BATCH_SIZE = 4096;
13456
13563
  var maxRetries = 3;
13457
- var multicallViemAbiArray = async (chainId, abi, calls, getEvmClient4, retry = true, providerId = 0, retries = maxRetries, allowFailure = true, batchSize = MULTICALL_DEFAULT_BATCH_SIZE, logs = false) => {
13564
+ var multicallViemAbiArray = async (chainId, abi, calls, getEvmClient2, retry = true, providerId = 0, retries = maxRetries, allowFailure = true, batchSize = MULTICALL_DEFAULT_BATCH_SIZE, logs = false) => {
13458
13565
  try {
13459
- const provider = getEvmClient4(chainId, providerId);
13566
+ const provider = getEvmClient2(chainId, providerId);
13460
13567
  const abiIsArray = isArray(abi[0]);
13461
13568
  const returnData = await provider.multicall({
13462
13569
  allowFailure,
@@ -13482,7 +13589,7 @@ var multicallViemAbiArray = async (chainId, abi, calls, getEvmClient4, retry = t
13482
13589
  chainId,
13483
13590
  abi,
13484
13591
  calls,
13485
- getEvmClient4,
13592
+ getEvmClient2,
13486
13593
  retry,
13487
13594
  providerId,
13488
13595
  retries,
@@ -18507,7 +18614,7 @@ function readBigIntBE(buf, off, len) {
18507
18614
  }
18508
18615
  return v;
18509
18616
  }
18510
- function decodePackedDataset(hex) {
18617
+ function decodePackedMorphoUserDataset(hex) {
18511
18618
  if (hex.startsWith("0x")) hex = hex.slice(2);
18512
18619
  const buf = Uint8Array.from(hex.match(/.{1,2}/g).map((b) => parseInt(b, 16)));
18513
18620
  const count = Number(readBigIntBE(buf, 0, 2));
@@ -18537,6 +18644,47 @@ function decodePackedDataset(hex) {
18537
18644
  }
18538
18645
  return out;
18539
18646
  }
18647
+ function decodePackedListaUserDataset(hex, marketsCount) {
18648
+ console.log("hex", hex);
18649
+ if (hex.startsWith("0x")) hex = hex.slice(2);
18650
+ const buf = Uint8Array.from(hex.match(/.{1,2}/g).map((b) => parseInt(b, 16)));
18651
+ let off = 0;
18652
+ const whitelistFlags = new Array(marketsCount);
18653
+ for (let i = 0; i < marketsCount; i++) {
18654
+ whitelistFlags[i] = buf[off++] === 1;
18655
+ }
18656
+ const totalCount = Number(readBigIntBE(buf, off, 2));
18657
+ off += 2;
18658
+ const balances = [];
18659
+ for (let i = 0; i < totalCount; i++) {
18660
+ const index = Number(readBigIntBE(buf, off, 2));
18661
+ off += 2;
18662
+ const supplyShares = readBigIntBE(buf, off, WORD);
18663
+ off += WORD;
18664
+ const borrowShares = readBigIntBE(buf, off, HALF);
18665
+ off += HALF;
18666
+ const supplyAssets = readBigIntBE(buf, off, WORD);
18667
+ off += WORD;
18668
+ const borrowAssets = readBigIntBE(buf, off, WORD);
18669
+ off += WORD;
18670
+ const collateral = readBigIntBE(buf, off, HALF);
18671
+ off += HALF;
18672
+ balances.push({
18673
+ index,
18674
+ supplyShares,
18675
+ borrowShares,
18676
+ supplyAssets,
18677
+ borrowAssets,
18678
+ collateral
18679
+ });
18680
+ }
18681
+ console.log("whitelistFlags", whitelistFlags);
18682
+ console.log("balances", balances);
18683
+ return {
18684
+ whitelistFlags,
18685
+ balances
18686
+ };
18687
+ }
18540
18688
 
18541
18689
  // src/lending/user-data/morpho/userCallParse.ts
18542
18690
  var CHUNK_SIZE = 100;
@@ -18568,17 +18716,36 @@ var aprData = {
18568
18716
  stakingBorrowApr: 0
18569
18717
  }
18570
18718
  };
18571
- var userDataEmpty = (account, chainId) => {
18719
+ var userDataEmpty = (account, chainId, notWhitelisted = false) => {
18572
18720
  return {
18573
18721
  account,
18574
18722
  chainId,
18575
18723
  balanceData,
18576
18724
  aprData,
18577
18725
  userConfigs: {
18578
- "0": { selectedMode: 0, id: account }
18726
+ "0": { selectedMode: 0, id: account, notWhitelisted }
18579
18727
  }
18580
18728
  };
18581
18729
  };
18730
+ var getMorphoTypeUserDataConverterWithlens = (lender, chainId, account, markets, prices, pricesHist, lenderData) => {
18731
+ return !isLista(lender) ? getMorphoUserDataConverterWithlens(
18732
+ lender,
18733
+ chainId,
18734
+ account,
18735
+ markets,
18736
+ prices,
18737
+ pricesHist,
18738
+ lenderData
18739
+ ) : getListaUserDataConverterWithlens(
18740
+ lender,
18741
+ chainId,
18742
+ account,
18743
+ markets,
18744
+ prices,
18745
+ pricesHist,
18746
+ lenderData
18747
+ );
18748
+ };
18582
18749
  var getMorphoUserDataConverterWithlens = (lender, chainId, account, markets, prices, pricesHist, lenderData) => {
18583
18750
  const expectedNumberOfCalls = Math.ceil(markets.length / CHUNK_SIZE);
18584
18751
  return [
@@ -18592,7 +18759,7 @@ var getMorphoUserDataConverterWithlens = (lender, chainId, account, markets, pri
18592
18759
  let marketsHandled = [];
18593
18760
  let datas = {};
18594
18761
  for (let i = 0; i < data.length; i++) {
18595
- const balanceDatas = decodePackedDataset(data[i]);
18762
+ const balanceDatas = decodePackedMorphoUserDataset(data[i]);
18596
18763
  balanceDatas.forEach((balanceData2) => {
18597
18764
  const markeId = markets[mapMarketToChunk(balanceData2.index, i)];
18598
18765
  marketsHandled.push(markeId);
@@ -18648,6 +18815,88 @@ var getMorphoUserDataConverterWithlens = (lender, chainId, account, markets, pri
18648
18815
  expectedNumberOfCalls
18649
18816
  ];
18650
18817
  };
18818
+ var getListaUserDataConverterWithlens = (lender, chainId, account, markets, prices, pricesHist, lenderData) => {
18819
+ const expectedNumberOfCalls = Math.ceil(markets.length / CHUNK_SIZE);
18820
+ return [
18821
+ (data) => {
18822
+ if (data.length !== expectedNumberOfCalls) {
18823
+ return void 0;
18824
+ }
18825
+ function mapMarketToChunk(indexInChunk, chunkIndex) {
18826
+ return chunkIndex * CHUNK_SIZE + indexInChunk;
18827
+ }
18828
+ let marketsHandled = [];
18829
+ let datas = {};
18830
+ let whitelistedFlags = {};
18831
+ for (let i = 0; i < data.length; i++) {
18832
+ const { balances, whitelistFlags } = decodePackedListaUserDataset(
18833
+ data[i],
18834
+ markets.length
18835
+ );
18836
+ whitelistFlags.forEach((flag, index) => {
18837
+ whitelistedFlags[markets[mapMarketToChunk(index, i)]] = flag;
18838
+ });
18839
+ balances.forEach((balanceData2) => {
18840
+ const markeId = markets[mapMarketToChunk(balanceData2.index, i)];
18841
+ marketsHandled.push(markeId);
18842
+ const market = lenderData[markeId]?.params?.market;
18843
+ const { dataForMarket, addedDebt, addedDeposits } = createMorphoEntryFromMarketWithLens(
18844
+ balanceData2,
18845
+ chainId,
18846
+ market,
18847
+ lenderData[markeId].data,
18848
+ prices,
18849
+ pricesHist
18850
+ );
18851
+ const payload = {
18852
+ chainId,
18853
+ account,
18854
+ lendingPositions: { "0": dataForMarket },
18855
+ rewards: {},
18856
+ userEMode: 0,
18857
+ notWhitelisted: !whitelistedFlags[markeId]
18858
+ };
18859
+ const userData = createBaseTypeUserState(
18860
+ payload,
18861
+ lenderData[markeId].data,
18862
+ addedDeposits,
18863
+ addedDebt
18864
+ );
18865
+ datas[market.lender] = {
18866
+ ...payload,
18867
+ ...userData,
18868
+ id: market.id
18869
+ };
18870
+ });
18871
+ }
18872
+ for (const marketId of markets) {
18873
+ const pubData = lenderData[marketId];
18874
+ if (marketsHandled.includes(marketId)) continue;
18875
+ const payload = {
18876
+ chainId,
18877
+ account,
18878
+ lendingPositions: { "0": {} },
18879
+ rewards: {},
18880
+ userEMode: 0,
18881
+ notWhitelisted: !whitelistedFlags[marketId]
18882
+ };
18883
+ const userData = userDataEmpty(
18884
+ account,
18885
+ chainId,
18886
+ !whitelistedFlags[marketId]
18887
+ );
18888
+ datas[marketId] = {
18889
+ ...payload,
18890
+ ...userData,
18891
+ // @ts-ignore
18892
+ id: pubData?.params?.market.id
18893
+ };
18894
+ }
18895
+ return datas;
18896
+ },
18897
+ expectedNumberOfCalls
18898
+ ];
18899
+ };
18651
18900
  function createMorphoEntryFromMarketWithLens(balanceInfo, chainId, market, lenderData, prices, pricesHist) {
18652
18901
  const loanAddress = market.loanAddress.toLowerCase();
18653
18902
  const loanMeta = lenderData[loanAddress].asset;
@@ -18944,7 +19193,7 @@ function buildUserCall(chainId, lender, account, params, assets) {
18944
19193
  return buildAaveV3UserCall(chainId, lender, account, assets);
18945
19194
  if (isInit(lender)) return buildInitUserCall(chainId, lender, account);
18946
19195
  if (isMorphoType(lender))
18947
- return buildMorphoUserCallWithLens(chainId, account, lender, params);
19196
+ return buildMorphoTypeUserCallWithLens(chainId, account, lender, params);
18948
19197
  if (isCompoundV3Type(lender))
18949
19198
  return buildCompoundV3UserCall(chainId, lender, account, assets);
18950
19199
  return buildCompoundV2UserCall(chainId, lender, account);
@@ -18987,7 +19236,7 @@ function getUserDataConverter(lender, chainId, account, prices, pricesHist, lend
18987
19236
  lenderPublicState?.data?.[lender]?.data
18988
19237
  );
18989
19238
  if (isMorphoType(lender))
18990
- return getMorphoUserDataConverterWithlens(
19239
+ return getMorphoTypeUserDataConverterWithlens(
18991
19240
  lender,
18992
19241
  chainId,
18993
19242
  account,
@@ -19014,7 +19263,7 @@ function getUserDataConverter(lender, chainId, account, prices, pricesHist, lend
19014
19263
  lenderPublicState?.data?.[lender]?.data
19015
19264
  );
19016
19265
  }
19017
- var getLenderUserDataResult = async (chainId, queriesRaw, getEvmClient4, allowFailure = true, batchSize = MULTICALL_DEFAULT_BATCH_SIZE, retries = 3, logs = false) => {
19266
+ var getLenderUserDataResult = async (chainId, queriesRaw, getEvmClient2, allowFailure = true, batchSize = MULTICALL_DEFAULT_BATCH_SIZE, retries = 3, logs = false) => {
19018
19267
  let calls = [];
19019
19268
  const queries = organizeUserQueries(queriesRaw);
19020
19269
  for (const query2 of queries) {
@@ -19033,7 +19282,7 @@ var getLenderUserDataResult = async (chainId, queriesRaw, getEvmClient4, allowFa
19033
19282
  chainId,
19034
19283
  calls.map((call) => call.abi),
19035
19284
  calls.map((call) => call.call),
19036
- getEvmClient4,
19285
+ getEvmClient2,
19037
19286
  true,
19038
19287
  0,
19039
19288
  retries,
@@ -23574,6 +23823,6 @@ function attachPricesToFlashLiquidity(chainId, liq, prices, list = {}) {
23574
23823
  return liqCopy;
23575
23824
  }
23576
23825
 
23577
- export { MORPHO_LENS, MorphoLensAbi, attachPricesToFlashLiquidity, buildMorphoTypeCall, buildMorphoUserCallWithLens, convertLenderUserDataResult, decodeMarkets, decodePackedDataset, fetchDefillamaData, fetchDefillamaHistData, fetchFlashLiquidityForChain, fetchGeneralYields, fetchLenderMetaFromDir, fetchLenderMetaFromDirAndInitialize, fetchMainPrices, fetchPendlePrices, filterLendersByProtocol, generateLendingPairs, generateLendingPools, getAavesForChain, getLenderAssets, getLenderPublicData, getLenderPublicDataAll, getLenderPublicDataViaApi, getLenderUserDataMulti, getLenderUserDataResult, getLendersForChain, getMorphoTypeMarketConverter, getTopPairs, inititalizeAllData, isAaveType, isAaveV2Type, isAaveV32Type, isAaveV3Type, isCompoundV3, isCompoundV3Type, isInit, isMorphoType, isMultiMarket, isYLDR, unflattenLenderData };
23826
+ export { MORPHO_LENS, MorphoLensAbi, attachPricesToFlashLiquidity, buildMorphoTypeCall, buildMorphoTypeUserCallWithLens, convertLenderUserDataResult, decodeListaMarkets, decodeMarkets, decodePackedListaUserDataset, decodePackedMorphoUserDataset, fetchDefillamaData, fetchDefillamaHistData, fetchFlashLiquidityForChain, fetchGeneralYields, fetchLenderMetaFromDir, fetchLenderMetaFromDirAndInitialize, fetchMainPrices, fetchPendlePrices, filterLendersByProtocol, generateLendingPairs, generateLendingPools, getAavesForChain, getLenderAssets, getLenderPublicData, getLenderPublicDataAll, getLenderPublicDataViaApi, getLenderUserDataMulti, getLenderUserDataResult, getLendersForChain, getMorphoTypeMarketConverter, getTopPairs, inititalizeAllData, isAaveType, isAaveV2Type, isAaveV32Type, isAaveV3Type, isCompoundV3, isCompoundV3Type, isInit, isMorphoType, isMultiMarket, isYLDR, normalizeToBytes, unflattenLenderData };
23578
23827
  //# sourceMappingURL=index.js.map
23579
23828
  //# sourceMappingURL=index.js.map