@1delta/margin-fetcher 0.0.97 → 0.0.98

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 (32) hide show
  1. package/dist/abis/morpho/lens.d.ts +37 -0
  2. package/dist/abis/morpho/lens.d.ts.map +1 -1
  3. package/dist/abis/oracle/ProxyOracle.d.ts +14 -0
  4. package/dist/abis/oracle/ProxyOracle.d.ts.map +1 -1
  5. package/dist/ccip-K7DULWY3.js +5 -0
  6. package/dist/{ccip-3LVCRM55.js.map → ccip-K7DULWY3.js.map} +1 -1
  7. package/dist/{chunk-5KOR6CTI.js → chunk-GMQNO5GH.js} +79 -77
  8. package/dist/chunk-GMQNO5GH.js.map +1 -0
  9. package/dist/index.js +507 -42
  10. package/dist/index.js.map +1 -1
  11. package/dist/lending/fetchLender.d.ts.map +1 -1
  12. package/dist/lending/lista/getMarketsFromChain.d.ts +8 -0
  13. package/dist/lending/lista/getMarketsFromChain.d.ts.map +1 -0
  14. package/dist/lending/lista/getMarketsOnChain.d.ts +6 -0
  15. package/dist/lending/lista/getMarketsOnChain.d.ts.map +1 -0
  16. package/dist/lending/lista/publicCallBuild.d.ts +10 -0
  17. package/dist/lending/lista/publicCallBuild.d.ts.map +1 -0
  18. package/dist/lending/meta/index.d.ts +1 -1
  19. package/dist/lending/morpho/constants/markets.d.ts +3 -0
  20. package/dist/lending/morpho/constants/markets.d.ts.map +1 -1
  21. package/dist/lending/morpho/utils/evmParser.d.ts +11 -0
  22. package/dist/lending/morpho/utils/evmParser.d.ts.map +1 -1
  23. package/dist/lending/user-data/abis.d.ts +15 -0
  24. package/dist/lending/user-data/abis.d.ts.map +1 -1
  25. package/dist/lending/user-data/morpho/userCallBuild.d.ts +3 -0
  26. package/dist/lending/user-data/morpho/userCallBuild.d.ts.map +1 -1
  27. package/dist/prices/main-prices/fetchOracleData.d.ts.map +1 -1
  28. package/dist/types/lenderTypes.d.ts.map +1 -1
  29. package/dist/utils/index.d.ts.map +1 -1
  30. package/package.json +1 -1
  31. package/dist/ccip-3LVCRM55.js +0 -5
  32. package/dist/chunk-5KOR6CTI.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { formatEther, BaseError, formatUnits } from './chunk-5KOR6CTI.js';
1
+ import { formatEther, BaseError, formatUnits } from './chunk-GMQNO5GH.js';
2
2
  import './chunk-BYTNVMX7.js';
3
3
  import './chunk-5AK7VEID.js';
4
4
  import './chunk-PR4QN5HX.js';
@@ -6490,7 +6490,7 @@ var COMPOUND_V2_LENDERS = [
6490
6490
  /* BENQI_AVALANCE_ECOSYSTEM */
6491
6491
  ];
6492
6492
 
6493
- // ../../node_modules/.pnpm/@1delta+data-sdk@0.0.8/node_modules/@1delta/data-sdk/dist/index.mjs
6493
+ // ../../node_modules/.pnpm/@1delta+data-sdk@0.0.9/node_modules/@1delta/data-sdk/dist/index.mjs
6494
6494
  var GLOBAL_CHAIN_DATA_KEY = "__1delta_chain_registry__";
6495
6495
  globalThis[GLOBAL_CHAIN_DATA_KEY] = {};
6496
6496
  function initializeChainData({ chainsOverride }) {
@@ -6510,7 +6510,8 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
6510
6510
  compoundV2Reserves: {},
6511
6511
  compoundV3Reserves: {},
6512
6512
  aaveOracles: {},
6513
- morphoOracles: {}
6513
+ morphoOracles: {},
6514
+ morphoTypeOracles: {}
6514
6515
  };
6515
6516
  function getGlobalData2() {
6516
6517
  return globalThis[GLOBAL_LENDER_DATA_KEY];
@@ -6528,7 +6529,8 @@ function initializeLenderData({
6528
6529
  aaveReservesOverride,
6529
6530
  compoundV3ReservesOverride,
6530
6531
  compoundV2ReservesOverride,
6531
- morphoOraclesOverride
6532
+ morphoOraclesOverride,
6533
+ morphoTypeOraclesOverride
6532
6534
  }) {
6533
6535
  const data = getGlobalData2();
6534
6536
  if (aaveTokensOverride) data.aaveTokens = aaveTokensOverride;
@@ -6544,11 +6546,12 @@ function initializeLenderData({
6544
6546
  if (compoundV3ReservesOverride) data.compoundV3Reserves = compoundV3ReservesOverride;
6545
6547
  if (compoundV2ReservesOverride) data.compoundV2Reserves = compoundV2ReservesOverride;
6546
6548
  if (morphoOraclesOverride) data.morphoOracles = morphoOraclesOverride;
6549
+ if (morphoTypeOraclesOverride) data.morphoTypeOracles = morphoTypeOraclesOverride;
6547
6550
  }
6548
6551
  var aaveTokens = () => getGlobalData2()?.aaveTokens;
6549
6552
  var aavePools = () => getGlobalData2()?.aavePools;
6550
6553
  var aaveOracles = () => getGlobalData2()?.aaveOracles;
6551
- var morphoOracles = () => getGlobalData2()?.morphoOracles;
6554
+ var morphoTypeOracles = () => getGlobalData2()?.morphoTypeOracles;
6552
6555
  var aaveReserves = () => getGlobalData2()?.aaveReserves;
6553
6556
  var compoundV3Reserves = () => getGlobalData2()?.compoundV3Reserves;
6554
6557
  var compoundV2Reserves = () => getGlobalData2()?.compoundV2Reserves;
@@ -6570,7 +6573,7 @@ function isInit(lender) {
6570
6573
  return lender === Lender.INIT;
6571
6574
  }
6572
6575
  function isMorphoType(lender) {
6573
- return lender?.startsWith("MORPHO_BLUE");
6576
+ return lender?.startsWith("MORPHO_BLUE") || lender?.startsWith("LISTA_DAO");
6574
6577
  }
6575
6578
  function isAaveV3Type(lender) {
6576
6579
  return AAVE_V3_LENDERS.includes(lender);
@@ -6618,8 +6621,9 @@ var filterLendersByProtocol = (allLenders, protocolList) => {
6618
6621
  return allLenders;
6619
6622
  }
6620
6623
  const hasMorpho = protocolList.includes(Lender.MORPHO_BLUE);
6624
+ const hasMoolah = protocolList.includes(Lender.LISTA_DAO);
6621
6625
  return allLenders.filter(
6622
- (lender) => protocolList.includes(lender) || hasMorpho && lender?.startsWith("MORPHO_BLUE")
6626
+ (lender) => protocolList.includes(lender) || hasMorpho && lender?.startsWith("MORPHO_BLUE") || hasMoolah && lender?.startsWith("LISTA_DAO")
6623
6627
  );
6624
6628
  };
6625
6629
  var getAavesForChain = () => {
@@ -6641,7 +6645,7 @@ var getLenderAssets = (chainId, lendingProtocol = Lender.AAVE_V3) => {
6641
6645
  return [];
6642
6646
  };
6643
6647
  function isMultiMarket(lender) {
6644
- return lender?.startsWith("MORPHO_BLUE");
6648
+ return lender?.startsWith("MORPHO_BLUE") || lender?.startsWith("LISTA_DAO");
6645
6649
  }
6646
6650
 
6647
6651
  // src/assets/index.ts
@@ -8083,7 +8087,7 @@ var buildCompoundV3StyleLenderReserveCall = (chainId, lender) => {
8083
8087
  return calls;
8084
8088
  };
8085
8089
 
8086
- // ../../node_modules/.pnpm/viem@2.38.3_typescript@5.9.3_zod@3.25.76/node_modules/viem/_esm/errors/unit.js
8090
+ // ../../node_modules/.pnpm/viem@2.38.4_typescript@5.9.3_zod@3.25.76/node_modules/viem/_esm/errors/unit.js
8087
8091
  var InvalidDecimalNumberError = class extends BaseError {
8088
8092
  constructor({ value }) {
8089
8093
  super(`Number \`${value}\` is not a valid decimal number.`, {
@@ -8092,7 +8096,7 @@ var InvalidDecimalNumberError = class extends BaseError {
8092
8096
  }
8093
8097
  };
8094
8098
 
8095
- // ../../node_modules/.pnpm/viem@2.38.3_typescript@5.9.3_zod@3.25.76/node_modules/viem/_esm/utils/unit/parseUnits.js
8099
+ // ../../node_modules/.pnpm/viem@2.38.4_typescript@5.9.3_zod@3.25.76/node_modules/viem/_esm/utils/unit/parseUnits.js
8096
8100
  function parseUnits(value, decimals) {
8097
8101
  if (!/^(-?)([0-9]*)\.?([0-9]*)$/.test(value))
8098
8102
  throw new InvalidDecimalNumberError({ value });
@@ -8127,7 +8131,7 @@ function parseUnits(value, decimals) {
8127
8131
  return BigInt(`${negative ? "-" : ""}${integer}${fraction}`);
8128
8132
  }
8129
8133
 
8130
- // ../../node_modules/.pnpm/viem@2.38.3_typescript@5.9.3_zod@3.25.76/node_modules/viem/_esm/constants/address.js
8134
+ // ../../node_modules/.pnpm/viem@2.38.4_typescript@5.9.3_zod@3.25.76/node_modules/viem/_esm/constants/address.js
8131
8135
  var zeroAddress = "0x0000000000000000000000000000000000000000";
8132
8136
 
8133
8137
  // src/utils/parsing.ts
@@ -10801,7 +10805,12 @@ var MORPHO_LENS = {
10801
10805
  [Chain.HYPEREVM]: "0x6Bc6aCB905c1216B0119C87Bf9E178ce298310FA",
10802
10806
  [Chain.SONEIUM]: "0x4b5458BB47dCBC1a41B31b41e1a8773dE312BE9d",
10803
10807
  [Chain.ETHEREUM_MAINNET]: "0x4b5458BB47dCBC1a41B31b41e1a8773dE312BE9d",
10804
- [Chain.PLASMA_MAINNET]: "0xcB6Eb8df68153cebF60E1872273Ef52075a5C297"
10808
+ [Chain.PLASMA_MAINNET]: "0xcB6Eb8df68153cebF60E1872273Ef52075a5C297",
10809
+ [Chain.BNB_SMART_CHAIN_MAINNET]: "0xFc98b3157f0447DfbB9FdBE7d072F7DdacA1E27C"
10810
+ // lista lens
10811
+ };
10812
+ var LISTA_LENS = {
10813
+ [Chain.BNB_SMART_CHAIN_MAINNET]: "0xFc98b3157f0447DfbB9FdBE7d072F7DdacA1E27C"
10805
10814
  };
10806
10815
  var buildMorphoUserCallWithLens = (chainId, account, lender, marketsToQuery) => {
10807
10816
  const marketSlices = chunk(marketsToQuery, 100);
@@ -10921,6 +10930,108 @@ var MORPHO_MARKETS = {
10921
10930
  "0x7c985a3ba92fa76a362f661b37a68c9955490eb659b7905aab6019b91042b452"
10922
10931
  ]
10923
10932
  };
10933
+ var LISTA_MARKETS = {
10934
+ [Chain.BNB_SMART_CHAIN_MAINNET]: [
10935
+ "0x2292a4820cdf330b88ba079671484d228db4a07957db9bc24e3f1c0b42c44b84",
10936
+ "0xa6a01504ccb6a0e3832e1fae31cc4f606a7c38cd76071f27befd013b8e46e78e",
10937
+ "0x93e0995138222571035a6deadd617efad2f2400d69067a0d1fc74b179657046a",
10938
+ "0xf3a85dfdf8c44398c49401aa8f4dc3be20bff806b9da2e902d3b379790a312c6",
10939
+ "0x9a7d48f4d5a39353ff9d34c4cefc2dc933bcc11e8be1a503db0910678763c394",
10940
+ "0xb060b526bd2fc99150cff9d6f7e7fab88d5d67e35cf262215f986d62a2fba99e",
10941
+ "0x763c26da46ff4b72e38fd9935538dbdc5379996c7f9fa4489d245adf45e65eef",
10942
+ "0x78d8882695ecc12b1cbaf0e09fa681eef7f89984711e34c91a5d99f51fbe28c5",
10943
+ "0x78d4cf129bf7e4d61a53a3b1c6c6e6ecaaec4a1f3bf1c176b904b2e8ec932bb3",
10944
+ "0x4f9f51fb2cedc44d94fadafb0ebf56ce429a66e72a1d3a80e8903c7bfe09a233",
10945
+ "0x0c604931198d645ed4ebfaa5d3ced8e11528ec004ef2e6c8fb968d8fbdf902b4",
10946
+ "0x8358cc1bf5d19d624bca71db95c077420278234cc9710f9d801c2946bb3c95d5",
10947
+ "0x0e9ce37ed19824e0698b8cf1855bef55cefdc82f37c321c3812d90135f476709",
10948
+ "0x869861f50ecec64d1a75a24ebb118071c5e60122ee263e4ad44546d762c818f9",
10949
+ "0x10a30e6ecc9119aa45b79355b5c75edef77c91528131462205bbac457f3dc274",
10950
+ "0x68f3b098525f043efa59863b1e6ccfb3b9c9eaa698011af78aec0f7ee1e74958",
10951
+ "0xfff455af65ca5548a56d061aa344938b1ebf1baccef2d1ff57c59269f475539c",
10952
+ "0x1e971ef571126edf3a2cfc5bb75137b9d204c09fa4565b7397a4f2c6e79f7abe",
10953
+ "0x60e2142a6689170196ab9b6d477a44dc5ed9477957e1046da274edda8e778cd6",
10954
+ "0x9296f6b16f26036cadab212cc3569490637021728d96cd61637e7dc14525630b",
10955
+ "0x4c8c4dc9d93756111b914027d6e712aed1d3d0fa57b26332b476b245723a6b6e",
10956
+ "0xff10de0835d2f15456bc31c8a04346fa5b481ecf7d3b9d16106bbd45069ed1c1",
10957
+ "0xd9c00925089bfdfa28fd1e9ee734da1461d0b1b9bed9647f6e7ec5acb9d20fc6",
10958
+ "0x970bbb364473bace0004b4e8171f95b37e44e9103bf2d65579eaedd0f9f10294",
10959
+ "0x59bdfd8308fa61a080bfb3e8b0e9b1922248336c1d8742d5c40eecfab261685a",
10960
+ "0x97252720b962a8f6984a8a1e0d5713ac3308bf7e7ef0deaa7a49769743904b06",
10961
+ "0x92a0b35f1cdccf6e8b8f07d1ee59568f84222f38eaeef4083a359ceb4468362c",
10962
+ "0xdf9ad2d18a115cc0ee9239a174a4f0d1b22d7d1393ec71e37638f8f7be68f78c",
10963
+ "0x2bb68bc7f70186f3d4f16db6a19986df6c6cdea3e589c1ae3d30b56b0632c5ec",
10964
+ "0xe4f13e0f056e811b79ca4598bbf8756c7b5d5483e57373036674bc4d24b32a8d",
10965
+ "0x2e865d41371fb021130dc872741c70564d0f5ea4856ff1542163a8b59b0b524d",
10966
+ "0x769813deb1d1e0999fea8db4fa4b03f8ba2a822bfb082f8c30f3d9578c0acdb5",
10967
+ "0x91448288effa647bb24f0ef3eaa999d3e1007dcc76c7cdc6d8136038c7bb8fcb",
10968
+ "0x49c84acd4492ebb13e577adbd7e653fc7dfc2195af45562fc71b111722f6f02f",
10969
+ "0xed20ae46f7f909622225cdf9f301854bd46d74f639ab07bba723e5431ab27653",
10970
+ "0xcc31249ac8d2ccaa0950a812156d3aa0f06f0918ab5763d8b11a54711aac78ed",
10971
+ "0x6350ccd3fe864c1c750f2b5d99b81d1fd712250a650808d2f6e17651b1047e37",
10972
+ "0x3b13048e4b7550330862055e7c81a62b81f283111003eaa2825f54e77e35a23b",
10973
+ "0x24ef5f94def28b34f08e192a810aecd393ea4969eec031ec268de008e8a3bc70",
10974
+ "0xff66db2dcd564ed68063c779e018d25ad1a31af372bd85e4acd770d9b985f5d4",
10975
+ "0x7fed7ee489225e577836f7fc0f641359ab801292610b6afce3b47fc6087cb9e3",
10976
+ "0x9161680af48565835df016a2b2f4987a6793a545758d0379d9e0d7479db07973",
10977
+ "0x642b55769bec1f4e0d8687e24c3db885ae446f6fbb124decae96b6c0ea37f4f1",
10978
+ "0x099a8d12861248c9ab5460f21ed1169d3f5447a8432d016c75019037f24ed9cf",
10979
+ "0x699b2f053a8d301e47fdde812abaf36268b74d6f8e6b8e2d3164954b5ba8e3e5",
10980
+ "0x8a1fffce64f5b29d59e7ebfd7a927e29acdb932cc73508c9861157eeef9b8e1a",
10981
+ "0x975f4cf3db16812d995f60e19bec91a96108d47429237acc8d208bc0519c5b19",
10982
+ "0xd384584abf6504425c9873f34a63372625d46cd1f2e79aeedc77475cacaca922",
10983
+ "0x417eef8a15b54c61c64026d13ff067611579d95d392c969cac919115b5a379a2",
10984
+ "0x98736236a21390ea3697d1776974c4adcd7d8fe2961c9296cb744c3627b8b349",
10985
+ "0xfd073c4948f943af46af445c715802a711a1f6ab3fae2d902bd89ca612a98c07",
10986
+ "0xe2fac994ce98526fbc986a2f3877efddd114a09f790d679eb1cd978c3e050e55",
10987
+ "0x90607b6f2025dd56756d0e54e04e749f863f3663435949668f9c65eee1ccad7b",
10988
+ "0x174a1298d2f4a0baaef5524dfe61f4a16690eb0eddb0d3c19078acfaeda71ac4",
10989
+ "0x2b87aedf2672376147a71cf09d3b7c776f92e6c52d22a12fe1322bb205892961",
10990
+ "0xd6df9bb9ed780d18239e6ddd7c6d17f3c9bee4443149a10ec70bf8ef2a93052f",
10991
+ "0x35ce501c9de47e409c9162b1d8e515a859a7f0c6482d23746c7696fa47849edd",
10992
+ "0xf4859576d776ccbc5c7848228da8edd47902d351b1195787742bf5a2927dfe8c",
10993
+ "0x178d759d9798fe68515d6671d7230c65c2c5538b2d4e23a0e08b337e79018960",
10994
+ "0x5166d134305e09a4605c875f57c6344cc2af34e595942d112e13b5005997055d",
10995
+ "0x169a54980294ed1343d1d2bac1f279924a572ab0f2097214672565f06a275d19",
10996
+ "0x4522789ae88efdbbf289021548be7a0e98bf501f7a7765dd822090fb068cdccb",
10997
+ "0x8bf69f18eb2ad0ca4defa8e8ae8d5c1516118561e543a448dcdcdc860ed1fa47",
10998
+ "0x32f51c0ef2ab59481fc355b522c6638f39c03a820b37d981709a0a654455c1e8",
10999
+ "0xdf6046e4442d873576d16313f634a44a3a621ddc69fdf973ba5025ca427a5e5b",
11000
+ "0x5058916e33f0cd1b1e6b35943a1c322ea8ebca3cfec7636fd97bf3ad077384bb",
11001
+ "0xd2c3aaada06ed9db2cf6f74831dbc65c115c8d2652b19a66b5510f7697a77e4a",
11002
+ "0xe3fe92dd549a7ca1de5b5edf53f2d2300b0cc145390f8b06dab694380f216354",
11003
+ "0x155bad1b463ec4c4bcfd01ac96ce7d346544174da8550f93e98b6bb68377ef24",
11004
+ "0x492bef0bc2f8af11388ba0393d557a2bb9a0a17fa776746edb15ae2206071263",
11005
+ "0x0a55356620b49a0f46971fbde5663ea3cd6522fef33287bce2af46bd50d7f9ec",
11006
+ "0x1945e1e315e1d4c6f3a46186259d77c45c433ad73f9f39bb895a4f0d5702843b",
11007
+ "0xd6c21aa96745a2bbfa4c44622de70db5c6aba2e419a04e39492c3e818bf8cad5",
11008
+ "0x8df489b72324481ad81e6e34efc63ed9ad0f17ce392a9a0f62a63c7af8719cec",
11009
+ "0xb4414852df68f609f4af78d3db26d3d1b4b8b3e1ff9bf0a551a5df5512518409",
11010
+ "0x77847c67f226bb35ab9e90a2e4f7d38c843580e41189a865e6d80377680747a9",
11011
+ "0xcdac2f0341fd96b3f2c69b5a71b8575cda964716434a29805c9ce5c6914189a5",
11012
+ "0xf5851e3064736fe04791d094f24bfb1cb1890d402ab66c0c7657edc9f5a64a4a",
11013
+ "0x5dafe6bc0d68f8e449e20a982387138203cd794218edf6b88342de93da363486",
11014
+ "0xe1d29487971d885780b451e4bcec8e234149cdf641b9c2c96146445f917c3c05",
11015
+ "0xbf9b7ccbd4a052c47a80966e78d94ebcccfa42fd844ab63e4caf462a46e77463",
11016
+ "0xd50ab52aa3e0c116ce4ac0cf2e712322cef72d042c6890086f0af9c49b26cbc3",
11017
+ "0x5bd6e57058349afef09fb956734786b5b52d443bd97eb6bb9b3a5dfd8931abe6",
11018
+ "0x7024975b01054a099391a7335367b04ca419592dc0f5b94ef93d5da8d1fe570a",
11019
+ "0x7de811eba4fa1cf2f417d5d64ab3f06bae3fb900561963954ac1ae9a5d757fd8",
11020
+ "0x6d70b29dfe8c8b1f9963d8a46b756055baf6269701fb0293d117149d9deb8235",
11021
+ "0x01c052192714cc60cced5ee7b8692df04bd352fa1badc8e3b5ba1ea150d61981",
11022
+ "0x42597f4698410b304910a0942da5f3da553b4abd57cd546fdec0ad18270529d9",
11023
+ "0xe5aca112f38ec0deaa2a245d481572b123fcf61594562db46ac479939bb26785",
11024
+ "0xef5adf75aa2171a6b95fb9a09b69d6c4e2624576bfb60961a4a8f3a5e1aa9fa8",
11025
+ "0x7fd2702981745ba53bbf24343f58bcf82202ffebe3329933059731d360b2b55e",
11026
+ "0xc42d3ff5778cf2385e5c9d318824a334afeb9715dad2dcd28742b2a062798eae",
11027
+ "0x0fc58322696aed5e7684583ff7c55a0a8c58225e5ceb47e3c5536acf5138414c",
11028
+ "0xd97241d7e1f99e4375089571d6fc136596154cb8d8b894f0715839b8d10793db",
11029
+ "0xe8d896709e520cfc51e0b6fb4ed5ad35d78824f1b721719822e8a5044f6870bd",
11030
+ "0x811bf77b2067da21bfaeb2c89f71c9d1a9893d7b175b776bf363f9df4bb2604b",
11031
+ "0x70050ea2ef94b1317a2c8a9c258991f67627e55d6e04934f8de7a9fa19eb4275",
11032
+ "0x6bc2c834705eb30ba7122f5d5b5f540eb95565e42fee1c0472f3f76aedb7d12d"
11033
+ ]
11034
+ };
10924
11035
  var safeDivide = (a, b) => {
10925
11036
  return a === 0 || isNaN(a) ? 0 : b !== 0 ? a / b : Infinity;
10926
11037
  };
@@ -11402,20 +11513,34 @@ var FIELD_SIZES = {
11402
11513
  u128: 16,
11403
11514
  u256: 32
11404
11515
  };
11405
- var RECORD_SIZE = 4 * FIELD_SIZES.addr + // loanToken, collateralToken, oracle, irm
11516
+ var MORPHO_RECORD_SIZE = 4 * FIELD_SIZES.addr + // loanToken, collateralToken, oracle, irm
11406
11517
  1 * FIELD_SIZES.u128 + // lltv
11407
11518
  2 * FIELD_SIZES.u256 + // price, rateAtTarget
11408
11519
  5 * FIELD_SIZES.u128 + // totals (4) + lastUpdate
11409
11520
  1 * FIELD_SIZES.u128;
11521
+ var MOOLAH_RECORD_SIZE = 4 * FIELD_SIZES.addr + // loanToken, collateralToken, oracle, irm
11522
+ 1 * FIELD_SIZES.u128 + // lltv
11523
+ 3 * FIELD_SIZES.u256 + // loanTokenPrice, collateralTokenPrice, rateAtTarget
11524
+ 5 * FIELD_SIZES.u128 + // totals (4) + lastUpdate
11525
+ 1 * FIELD_SIZES.u128;
11410
11526
  function decodeMarkets(input) {
11411
11527
  const bytes = normalizeToBytes(input);
11412
- if (bytes.length % RECORD_SIZE !== 0) {
11528
+ if (bytes.length % MORPHO_RECORD_SIZE === 0) {
11529
+ return decodeMorphoMarkets(bytes);
11530
+ } else if (bytes.length % MOOLAH_RECORD_SIZE === 0) {
11531
+ return decodeMoolahMarkets(bytes);
11532
+ } else {
11413
11533
  throw new Error(
11414
- `Invalid data length ${bytes.length}; not a multiple of ${RECORD_SIZE} bytes per record`
11534
+ `Invalid data length ${bytes.length}; not a multiple of ${MORPHO_RECORD_SIZE} (morpho) or ${MOOLAH_RECORD_SIZE} (moolah) bytes per record`
11415
11535
  );
11416
11536
  }
11537
+ }
11538
+ function decodeMorphoMarkets(bytes) {
11539
+ if (bytes.length % MORPHO_RECORD_SIZE !== 0) {
11540
+ throw new Error(`Invalid data length ${bytes.length}; not a multiple of ${MORPHO_RECORD_SIZE} bytes per record`);
11541
+ }
11417
11542
  const markets = [];
11418
- for (let i = 0; i < bytes.length; i += RECORD_SIZE) {
11543
+ for (let i = 0; i < bytes.length; i += MORPHO_RECORD_SIZE) {
11419
11544
  let o = i;
11420
11545
  const loanToken = readAddress(bytes, o, FIELD_SIZES.addr);
11421
11546
  o += FIELD_SIZES.addr;
@@ -11461,6 +11586,62 @@ function decodeMarkets(input) {
11461
11586
  }
11462
11587
  return markets;
11463
11588
  }
11589
+ function decodeMoolahMarkets(bytes) {
11590
+ if (bytes.length % MOOLAH_RECORD_SIZE !== 0) {
11591
+ throw new Error(`Invalid data length ${bytes.length}; not a multiple of ${MOOLAH_RECORD_SIZE} bytes per record`);
11592
+ }
11593
+ const markets = [];
11594
+ for (let i = 0; i < bytes.length; i += MOOLAH_RECORD_SIZE) {
11595
+ let o = i;
11596
+ const loanToken = readAddress(bytes, o, FIELD_SIZES.addr);
11597
+ o += FIELD_SIZES.addr;
11598
+ const collateralToken = readAddress(bytes, o, FIELD_SIZES.addr);
11599
+ o += FIELD_SIZES.addr;
11600
+ const oracle = readAddress(bytes, o, FIELD_SIZES.addr);
11601
+ o += FIELD_SIZES.addr;
11602
+ const irm = readAddress(bytes, o, FIELD_SIZES.addr);
11603
+ o += FIELD_SIZES.addr;
11604
+ const lltv = readUintBE(bytes, o, FIELD_SIZES.u128);
11605
+ o += FIELD_SIZES.u128;
11606
+ const loanTokenPrice = readUintBE(bytes, o, FIELD_SIZES.u256);
11607
+ o += FIELD_SIZES.u256;
11608
+ const collateralTokenPrice = readUintBE(bytes, o, FIELD_SIZES.u256);
11609
+ o += FIELD_SIZES.u256;
11610
+ const rateAtTarget = readUintBE(bytes, o, FIELD_SIZES.u256);
11611
+ o += FIELD_SIZES.u256;
11612
+ const totalSupplyAssets = readUintBE(bytes, o, FIELD_SIZES.u128);
11613
+ o += FIELD_SIZES.u128;
11614
+ const totalSupplyShares = readUintBE(bytes, o, FIELD_SIZES.u128);
11615
+ o += FIELD_SIZES.u128;
11616
+ const totalBorrowAssets = readUintBE(bytes, o, FIELD_SIZES.u128);
11617
+ o += FIELD_SIZES.u128;
11618
+ const totalBorrowShares = readUintBE(bytes, o, FIELD_SIZES.u128);
11619
+ o += FIELD_SIZES.u128;
11620
+ const lastUpdate = readUintBE(bytes, o, FIELD_SIZES.u128);
11621
+ o += FIELD_SIZES.u128;
11622
+ const fee = readUintBE(bytes, o, FIELD_SIZES.u128);
11623
+ o += FIELD_SIZES.u128;
11624
+ const calculatedPrice = collateralTokenPrice && loanTokenPrice ? collateralTokenPrice * 10n ** 36n / loanTokenPrice : 0n;
11625
+ markets.push({
11626
+ loanToken,
11627
+ collateralToken,
11628
+ oracle,
11629
+ irm,
11630
+ lltv,
11631
+ price: calculatedPrice,
11632
+ loanTokenPrice,
11633
+ collateralTokenPrice,
11634
+ rateAtTarget,
11635
+ totalSupplyAssets,
11636
+ totalSupplyShares,
11637
+ totalBorrowAssets,
11638
+ totalBorrowShares,
11639
+ lastUpdate,
11640
+ fee
11641
+ });
11642
+ }
11643
+ return markets;
11644
+ }
11464
11645
  function normalizeToBytes(input) {
11465
11646
  if (typeof input !== "string") {
11466
11647
  return input;
@@ -11860,6 +12041,170 @@ function getMorphoMarketDataConverter(lender, chainId, prices, additionalYields
11860
12041
  ];
11861
12042
  }
11862
12043
 
12044
+ // src/lending/lista/publicCallBuild.ts
12045
+ function buildListaCall(chainId) {
12046
+ const markets = LISTA_MARKETS[chainId] ?? [];
12047
+ const mb = morphoPools()?.LISTA_DAO?.[chainId];
12048
+ if (!mb || markets.length === 0) return [];
12049
+ return [
12050
+ {
12051
+ address: LISTA_LENS[chainId],
12052
+ name: "getMoolahMarketDataCompact",
12053
+ params: [mb, markets]
12054
+ }
12055
+ ];
12056
+ }
12057
+ function getListaMarketDataConverter(lender, chainId, prices, additionalYields = {
12058
+ intrinsicYields: {},
12059
+ lenderRewards: {},
12060
+ loaded: true
12061
+ }, tokens = {}) {
12062
+ const markets = LISTA_MARKETS[chainId] ?? [];
12063
+ return [
12064
+ (rData) => {
12065
+ const decoded = decodeMarkets(rData[0] ?? "0x");
12066
+ const data = {};
12067
+ decoded.forEach((market, i) => {
12068
+ const uniqueKey = markets[i];
12069
+ const { lltv, irm, oracle, loanToken, collateralToken, ...state } = market;
12070
+ if (collateralToken && loanToken && oracle) {
12071
+ const m = "LISTA_DAO_" + uniqueKey.slice(2).toUpperCase();
12072
+ if (!data[m]) data[m] = { data: {} };
12073
+ const loanRewards = {};
12074
+ const loanAsset = tokens[loanToken.toLowerCase()];
12075
+ const collateralAsset = tokens[collateralToken.toLowerCase()];
12076
+ const loanKey = toOracleKey(loanAsset?.assetGroup) ?? toGenericPriceKey(loanAsset.address, chainId);
12077
+ let loanPrice = prices[loanKey];
12078
+ if (!loanPrice) {
12079
+ const collateralKey = toOracleKey(collateralAsset?.assetGroup) ?? toGenericPriceKey(collateralAsset.address, chainId);
12080
+ const collateralPrice = prices[collateralKey];
12081
+ if (collateralPrice) {
12082
+ const priceDebtToCollateral = formatMorphoPrice(
12083
+ state.price.toString(),
12084
+ loanAsset.decimals,
12085
+ collateralAsset.decimals
12086
+ );
12087
+ loanPrice = collateralPrice / priceDebtToCollateral;
12088
+ }
12089
+ }
12090
+ const loanTokenAddress = loanAsset.address.toLowerCase();
12091
+ const meta = tokens[loanTokenAddress] ?? loanAsset;
12092
+ const totalDeposits = formatNr(
12093
+ state.totalSupplyAssets,
12094
+ loanAsset.decimals
12095
+ );
12096
+ const totalDebt = formatNr(
12097
+ state.totalBorrowAssets,
12098
+ loanAsset.decimals
12099
+ );
12100
+ const utilization = MathLib.getUtilization({
12101
+ totalBorrowAssets: state.totalBorrowAssets,
12102
+ totalSupplyAssets: state.totalSupplyAssets
12103
+ });
12104
+ let borrowApy = 0n;
12105
+ let supplyApy = 0n;
12106
+ try {
12107
+ borrowApy = MathLib.getBorrowApy(
12108
+ state.rateAtTarget,
12109
+ utilization,
12110
+ void 0,
12111
+ Number(state.lastUpdate)
12112
+ );
12113
+ supplyApy = MathLib.getSupplyApy(borrowApy, utilization, state.fee);
12114
+ } catch {
12115
+ }
12116
+ const borrowApr = apyToApr2(Number(formatEther(borrowApy))) * 100;
12117
+ const depositApr = apyToApr2(Number(formatEther(supplyApy))) * 100;
12118
+ data[m].data[loanTokenAddress] = {
12119
+ poolId: loanTokenAddress,
12120
+ underlying: loanTokenAddress,
12121
+ asset: meta,
12122
+ totalDeposits,
12123
+ totalDebtStable: 0,
12124
+ totalDebt,
12125
+ totalDepositsUSD: totalDeposits * loanPrice,
12126
+ totalDebtStableUSD: 0,
12127
+ totalLiquidity: totalDeposits - totalDebt,
12128
+ totalLiquidityUSD: (totalDeposits - totalDebt) * loanPrice,
12129
+ totalDebtUSD: totalDebt * loanPrice,
12130
+ depositRate: depositApr,
12131
+ variableBorrowRate: borrowApr,
12132
+ stableBorrowRate: 0,
12133
+ stakingYield: additionalYields.intrinsicYields[meta?.assetGroup] ?? 0,
12134
+ rewards: Object.keys(loanRewards).length > 0 ? loanRewards : void 0,
12135
+ decimals: loanAsset.decimals,
12136
+ config: {
12137
+ 0: {
12138
+ category: 0,
12139
+ borrowCollateralFactor: 0,
12140
+ collateralFactor: 0,
12141
+ borrowFactor: 1
12142
+ }
12143
+ },
12144
+ collateralActive: false,
12145
+ borrowingEnabled: true,
12146
+ hasStable: false,
12147
+ isActive: true,
12148
+ isFrozen: false
12149
+ };
12150
+ const ltv = parseLtv(lltv);
12151
+ const collateralAssetAddress = collateralAsset?.address.toLowerCase();
12152
+ const metaCollateral = tokens[collateralAssetAddress] ?? collateralAsset;
12153
+ data[m].data[collateralAssetAddress] = {
12154
+ poolId: collateralAssetAddress,
12155
+ underlying: collateralAssetAddress,
12156
+ asset: metaCollateral,
12157
+ totalDeposits: 0,
12158
+ // we do not have these metrics when querying on-chain
12159
+ totalDebtStable: 0,
12160
+ totalDebt: 0,
12161
+ totalLiquidity: 0,
12162
+ totalLiquidityUSD: 0,
12163
+ totalDepositsUSD: 0,
12164
+ totalDebtStableUSD: 0,
12165
+ totalDebtUSD: 0,
12166
+ depositRate: 0,
12167
+ variableBorrowRate: 0,
12168
+ stableBorrowRate: 0,
12169
+ stakingYield: additionalYields.intrinsicYields[metaCollateral?.assetGroup] ?? 0,
12170
+ rewards: void 0,
12171
+ decimals: collateralAsset.decimals,
12172
+ config: {
12173
+ 0: {
12174
+ category: 0,
12175
+ borrowCollateralFactor: ltv,
12176
+ collateralFactor: ltv,
12177
+ borrowFactor: 1
12178
+ }
12179
+ },
12180
+ collateralActive: true,
12181
+ borrowingEnabled: false,
12182
+ hasStable: false,
12183
+ isActive: true,
12184
+ isFrozen: false
12185
+ };
12186
+ data[m].params = {
12187
+ market: {
12188
+ lender: m,
12189
+ collateralDecimals: collateralAsset.decimals,
12190
+ loanDecimals: loanAsset.decimals,
12191
+ id: uniqueKey,
12192
+ lltv: lltv.toString(),
12193
+ oracle,
12194
+ irm,
12195
+ collateralAddress: collateralAssetAddress,
12196
+ loanAddress: loanTokenAddress
12197
+ }
12198
+ };
12199
+ data[m].chainId = chainId;
12200
+ }
12201
+ });
12202
+ return data;
12203
+ },
12204
+ markets.length > 0 ? 1 : 0
12205
+ ];
12206
+ }
12207
+
11863
12208
  // src/abis/morpho/lens.ts
11864
12209
  var MorphoLensAbi = [
11865
12210
  {
@@ -11900,6 +12245,45 @@ var MorphoLensAbi = [
11900
12245
  { type: "bytes32[]", name: "marketsIds" }
11901
12246
  ],
11902
12247
  outputs: [{ type: "bytes", name: "data" }]
12248
+ },
12249
+ {
12250
+ inputs: [
12251
+ {
12252
+ internalType: "bytes32[]",
12253
+ name: "marketsIds",
12254
+ type: "bytes32[]"
12255
+ },
12256
+ {
12257
+ internalType: "address",
12258
+ name: "user",
12259
+ type: "address"
12260
+ },
12261
+ {
12262
+ internalType: "address",
12263
+ name: "morpho",
12264
+ type: "address"
12265
+ }
12266
+ ],
12267
+ name: "getUserDataCompact",
12268
+ outputs: [
12269
+ {
12270
+ internalType: "bytes",
12271
+ name: "data",
12272
+ type: "bytes"
12273
+ }
12274
+ ],
12275
+ stateMutability: "view",
12276
+ type: "function"
12277
+ },
12278
+ {
12279
+ name: "getMoolahMarketDataCompact",
12280
+ type: "function",
12281
+ stateMutability: "view",
12282
+ inputs: [
12283
+ { type: "address", name: "morpho" },
12284
+ { type: "bytes32[]", name: "marketsIds" }
12285
+ ],
12286
+ outputs: [{ type: "bytes", name: "data" }]
11903
12287
  }
11904
12288
  ];
11905
12289
 
@@ -12933,7 +13317,10 @@ function buildLenderCall(chainId, lender) {
12933
13317
  if (isCompoundV3(lender))
12934
13318
  return buildCompoundV3StyleLenderReserveCall(chainId, lender);
12935
13319
  if (isInit(lender)) return buildInitStyleLenderReserveCall(chainId);
12936
- if (isMorphoType(lender)) return buildMorphoCall(chainId);
13320
+ if (isMorphoType(lender)) {
13321
+ if (lender.startsWith("LISTA_DAO")) return buildListaCall(chainId);
13322
+ return buildMorphoCall(chainId);
13323
+ }
12937
13324
  if (isCompoundV2Type(lender))
12938
13325
  return buildCompoundV2StyleLenderReserveCall(chainId, lender);
12939
13326
  return [];
@@ -12971,7 +13358,15 @@ function getLenderDataConverter(lender, chainId, prices, additionalYields, token
12971
13358
  additionalYields,
12972
13359
  tokenList
12973
13360
  );
12974
- if (isMorphoType(lender))
13361
+ if (isMorphoType(lender)) {
13362
+ if (lender.startsWith("LISTA_DAO"))
13363
+ return getListaMarketDataConverter(
13364
+ lender,
13365
+ chainId,
13366
+ prices,
13367
+ additionalYields,
13368
+ tokenList
13369
+ );
12975
13370
  return getMorphoMarketDataConverter(
12976
13371
  lender,
12977
13372
  chainId,
@@ -12979,6 +13374,7 @@ function getLenderDataConverter(lender, chainId, prices, additionalYields, token
12979
13374
  additionalYields,
12980
13375
  tokenList
12981
13376
  );
13377
+ }
12982
13378
  if (isCompoundV2Type(lender))
12983
13379
  return getCompoundV2ReservesDataConverter(
12984
13380
  lender,
@@ -13155,9 +13551,9 @@ var getLenderPublicDataAll = async (chainId, lenders, prices, additionalYields,
13155
13551
  var { isArray } = lodash;
13156
13552
  var MULTICALL_DEFAULT_BATCH_SIZE = 4096;
13157
13553
  var maxRetries = 3;
13158
- var multicallViemAbiArray = async (chainId, abi, calls, getEvmClient2, retry = true, providerId = 0, retries = maxRetries, allowFailure = true, batchSize = MULTICALL_DEFAULT_BATCH_SIZE, logs = false) => {
13554
+ var multicallViemAbiArray = async (chainId, abi, calls, getEvmClient4, retry = true, providerId = 0, retries = maxRetries, allowFailure = true, batchSize = MULTICALL_DEFAULT_BATCH_SIZE, logs = false) => {
13159
13555
  try {
13160
- const provider = getEvmClient2(chainId, providerId);
13556
+ const provider = getEvmClient4(chainId, providerId);
13161
13557
  const abiIsArray = isArray(abi[0]);
13162
13558
  const returnData = await provider.multicall({
13163
13559
  allowFailure,
@@ -13183,7 +13579,7 @@ var multicallViemAbiArray = async (chainId, abi, calls, getEvmClient2, retry = t
13183
13579
  chainId,
13184
13580
  abi,
13185
13581
  calls,
13186
- getEvmClient2,
13582
+ getEvmClient4,
13187
13583
  retry,
13188
13584
  providerId,
13189
13585
  retries,
@@ -13199,13 +13595,26 @@ function organizeUserQueries(queries) {
13199
13595
  const morphos = queries.filter((q) => isMorphoType(q.lender));
13200
13596
  if (morphos.length === 0) return queries;
13201
13597
  const nonMorphos = queries.filter((q) => !isMorphoType(q.lender));
13202
- const morphosCollapsed = {
13203
- lender: Lender.MORPHO_BLUE,
13204
- account: queries[0].account,
13205
- params: morphos.map((p) => p.lender),
13206
- assets: void 0
13207
- };
13208
- return [...nonMorphos, morphosCollapsed];
13598
+ const morphoBlue = morphos.filter((q) => q.lender.startsWith("MORPHO_BLUE"));
13599
+ const moolah = morphos.filter((q) => q.lender.startsWith("LISTA_DAO"));
13600
+ const result = [...nonMorphos];
13601
+ if (morphoBlue.length > 0) {
13602
+ result.push({
13603
+ lender: Lender.MORPHO_BLUE,
13604
+ account: morphoBlue[0].account,
13605
+ params: morphoBlue.map((p) => p.lender),
13606
+ assets: void 0
13607
+ });
13608
+ }
13609
+ if (moolah.length > 0) {
13610
+ result.push({
13611
+ lender: Lender.LISTA_DAO,
13612
+ account: moolah[0].account,
13613
+ params: moolah.map((p) => p.lender),
13614
+ assets: void 0
13615
+ });
13616
+ }
13617
+ return result;
13209
13618
  }
13210
13619
 
13211
13620
  // src/lending/user-data/aave-v2-type/userCallBuild.ts
@@ -18597,7 +19006,7 @@ function getUserDataConverter(lender, chainId, account, prices, pricesHist, lend
18597
19006
  lenderPublicState?.data?.[lender]?.data
18598
19007
  );
18599
19008
  }
18600
- var getLenderUserDataResult = async (chainId, queriesRaw, getEvmClient2, allowFailure = true, batchSize = MULTICALL_DEFAULT_BATCH_SIZE, retries = 3, logs = false) => {
19009
+ var getLenderUserDataResult = async (chainId, queriesRaw, getEvmClient4, allowFailure = true, batchSize = MULTICALL_DEFAULT_BATCH_SIZE, retries = 3, logs = false) => {
18601
19010
  let calls = [];
18602
19011
  const queries = organizeUserQueries(queriesRaw);
18603
19012
  for (const query2 of queries) {
@@ -18616,7 +19025,7 @@ var getLenderUserDataResult = async (chainId, queriesRaw, getEvmClient2, allowFa
18616
19025
  chainId,
18617
19026
  calls.map((call) => call.abi),
18618
19027
  calls.map((call) => call.call),
18619
- getEvmClient2,
19028
+ getEvmClient4,
18620
19029
  true,
18621
19030
  0,
18622
19031
  retries,
@@ -18667,7 +19076,7 @@ var convertLenderUserDataResult = (chainId, queriesRaw, rawResults, prices, pric
18667
19076
  var baseUrl = "https://raw.githubusercontent.com/1delta-DAO/lender-metadata/main";
18668
19077
  var aavePools2 = baseUrl + "/config/aave-pools.json";
18669
19078
  var aaveOracles2 = baseUrl + "/data/aave-oracles.json";
18670
- var morphoOracles2 = baseUrl + "/data/morpho-oracles.json";
19079
+ var morphoTypeOracles2 = baseUrl + "/data/morpho-type-oracles.json";
18671
19080
  var compoundV2Pools2 = baseUrl + "/config/compound-v2-pools.json";
18672
19081
  var compoundV3Pools2 = baseUrl + "/config/compound-v3-pools.json";
18673
19082
  var morphoPools2 = baseUrl + "/config/morpho-pools.json";
@@ -18700,7 +19109,7 @@ async function fetchLenderMetaFromDirAndInitialize() {
18700
19109
  compoundV2TokensOverride,
18701
19110
  compoundV3BaseDataOverride,
18702
19111
  aaveOraclesOverride,
18703
- morphoOraclesOverride,
19112
+ morphoTypeOraclesOverride,
18704
19113
  chainsOverride
18705
19114
  } = await fetchLenderMetaFromDir();
18706
19115
  initializeLenderData({
@@ -18716,7 +19125,7 @@ async function fetchLenderMetaFromDirAndInitialize() {
18716
19125
  compoundV3ReservesOverride,
18717
19126
  compoundV2ReservesOverride,
18718
19127
  aaveOraclesOverride,
18719
- morphoOraclesOverride
19128
+ morphoTypeOraclesOverride
18720
19129
  });
18721
19130
  initializeChainData({ chainsOverride });
18722
19131
  }
@@ -18735,7 +19144,7 @@ async function fetchLenderMetaFromDir() {
18735
19144
  compoundV2CTokens,
18736
19145
  compoundV3Base,
18737
19146
  aaveOracles2,
18738
- morphoOracles2,
19147
+ morphoTypeOracles2,
18739
19148
  chains
18740
19149
  ].map(async (a) => fetch(a).then(async (b) => await b.json()));
18741
19150
  const [
@@ -18752,7 +19161,7 @@ async function fetchLenderMetaFromDir() {
18752
19161
  compoundV2TokensOverride,
18753
19162
  compoundV3BaseDataOverride,
18754
19163
  aaveOraclesOverride,
18755
- morphoOraclesOverride,
19164
+ morphoTypeOraclesOverride,
18756
19165
  chainsOverride
18757
19166
  ] = await Promise.all(promises);
18758
19167
  return {
@@ -18769,7 +19178,7 @@ async function fetchLenderMetaFromDir() {
18769
19178
  compoundV2TokensOverride,
18770
19179
  compoundV3BaseDataOverride,
18771
19180
  aaveOraclesOverride,
18772
- morphoOraclesOverride,
19181
+ morphoTypeOraclesOverride,
18773
19182
  chainsOverride
18774
19183
  };
18775
19184
  }
@@ -21620,6 +22029,13 @@ var ProxyOracleAbi = [
21620
22029
  ],
21621
22030
  stateMutability: "view",
21622
22031
  type: "function"
22032
+ },
22033
+ {
22034
+ inputs: [{ internalType: "address", name: "asset", type: "address" }],
22035
+ name: "peek",
22036
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
22037
+ stateMutability: "view",
22038
+ type: "function"
21623
22039
  }
21624
22040
  ];
21625
22041
 
@@ -21723,9 +22139,35 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
21723
22139
  newAssets.forEach((a) => handled.add(a));
21724
22140
  }
21725
22141
  }
21726
- const morphoOraclesObtained = morphoOracles();
21727
- const morphoQueries = (morphoOraclesObtained[chainId] ?? []).filter(
21728
- (a) => !handled.has(a.collateralAsset) || !handled.has(a.loanAsset)
22142
+ const morphoTypeOraclesObtained = morphoTypeOracles();
22143
+ let morphoQueries = [];
22144
+ let listaCalls = [];
22145
+ Object.entries(morphoTypeOraclesObtained[chainId] ?? {}).forEach(
22146
+ ([fork, datas]) => {
22147
+ datas.forEach((data) => {
22148
+ if (fork === Lender.LISTA_DAO) {
22149
+ if (!handled.has(data.collateralAsset))
22150
+ listaCalls.push({
22151
+ asset: data.collateralAsset,
22152
+ address: data.oracle,
22153
+ name: "peek",
22154
+ params: [data.collateralAsset]
22155
+ });
22156
+ if (!handled.has(data.loanAsset))
22157
+ listaCalls.push({
22158
+ asset: data.loanAsset,
22159
+ address: data.oracle,
22160
+ name: "peek",
22161
+ params: [data.loanAsset]
22162
+ });
22163
+ } else if (fork === Lender.MORPHO_BLUE && (!handled.has(data.collateralAsset) || !handled.has(data.loanAsset))) {
22164
+ morphoQueries.push({
22165
+ fork,
22166
+ ...data
22167
+ });
22168
+ }
22169
+ });
22170
+ }
21729
22171
  );
21730
22172
  const morphoCalls = getMorphoCalls(morphoQueries);
21731
22173
  const aaveCalls = getAaveCalls(queries);
@@ -21745,7 +22187,8 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
21745
22187
  ...rwaCalls,
21746
22188
  ...cometCalls,
21747
22189
  ...compoundV2Calls,
21748
- ...morphoCalls
22190
+ ...morphoCalls,
22191
+ ...listaCalls
21749
22192
  ];
21750
22193
  const abis = [
21751
22194
  ...ChainLinkAggregatorAbi,
@@ -21779,6 +22222,7 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
21779
22222
  comet: { calls: cometCalls, names: cometNames },
21780
22223
  compoundV2: { calls: compoundV2Calls, names: compoundV2Names },
21781
22224
  morpho: { queries: morphoQueries },
22225
+ listaCalls,
21782
22226
  uniswapCalls,
21783
22227
  uniswapV3Calls,
21784
22228
  aaveCalls
@@ -21865,6 +22309,7 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
21865
22309
  result,
21866
22310
  meta: {
21867
22311
  morpho,
22312
+ listaCalls,
21868
22313
  chainlink,
21869
22314
  aaveCalls,
21870
22315
  uniswapCalls,
@@ -21876,7 +22321,9 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
21876
22321
  }
21877
22322
  } of chainResults) {
21878
22323
  const morphoOffset = chainlink.calls.length + aaveCalls.length + uniswapCalls.length + uniswapV3Calls.length + api3.calls.length + comet.calls.length + compoundV2.calls.length + rwa.calls.length;
21879
- const morphoResult = result.slice(morphoOffset);
22324
+ const listaOffset = morphoOffset + morpho.queries.length;
22325
+ const morphoResult = result.slice(morphoOffset, listaOffset);
22326
+ const listaResult = result.slice(listaOffset);
21880
22327
  const morphoData = parseMorphoResults(
21881
22328
  chainId,
21882
22329
  morphoResult,
@@ -21884,9 +22331,17 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
21884
22331
  allPrices,
21885
22332
  lists[chainId]?.list
21886
22333
  );
22334
+ const listaData = parseListaResults(
22335
+ chainId,
22336
+ listaResult,
22337
+ listaCalls,
22338
+ allPrices,
22339
+ lists[chainId]?.list
22340
+ );
21887
22341
  allPrices = {
21888
22342
  ...allPrices,
21889
- ...morphoData
22343
+ ...morphoData,
22344
+ ...listaData
21890
22345
  };
21891
22346
  }
21892
22347
  for (const r of otherResults) {
@@ -22515,6 +22970,16 @@ var parseMorphoResults = (chainId, data, queries, donePrices = {}, list = {}) =>
22515
22970
  });
22516
22971
  return prices;
22517
22972
  };
22973
+ var parseListaResults = (chainId, data, queries, donePrices = {}, list = {}) => {
22974
+ let prices = {};
22975
+ data.forEach((d, i) => {
22976
+ const details = queries[i];
22977
+ const asset = details?.asset;
22978
+ const oracleId = list[asset]?.assetGroup ?? chainId + "-" + asset;
22979
+ if (!donePrices[oracleId]) prices[oracleId] = formatUnits(d, 8);
22980
+ });
22981
+ return prices;
22982
+ };
22518
22983
  var parseChainLinkResults = (chainId, data, assetName) => {
22519
22984
  switch (chainId) {
22520
22985
  default: {