@1delta/margin-fetcher 0.0.96 → 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 +510 -44
  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
@@ -18484,7 +18893,8 @@ var getCompoundV2UserDataConverter = (lender, chainId, account, prices, pricesHi
18484
18893
  function createCompoundV2Entry(i, data, assetsIn, vToken, asset, prices, pricesHist, claimableRewards) {
18485
18894
  const depositsRaw = data[2 * i].toString();
18486
18895
  const borrowsRaw = data[2 * i + 1].toString();
18487
- if (depositsRaw === "0" && borrowsRaw === "0") {
18896
+ const collateralEnabled = Boolean(assetsIn?.includes(vToken));
18897
+ if (!collateralEnabled && depositsRaw === "0" && borrowsRaw === "0") {
18488
18898
  return {
18489
18899
  dataForAsset: void 0,
18490
18900
  addedDeposits: 0,
@@ -18508,7 +18918,7 @@ function createCompoundV2Entry(i, data, assetsIn, vToken, asset, prices, pricesH
18508
18918
  depositsUSD: currentATokenBalance * price,
18509
18919
  debtStableUSD: 0,
18510
18920
  debtUSD: currentVariableDebt * price,
18511
- collateralEnabled: Boolean(assetsIn?.includes(vToken)),
18921
+ collateralEnabled,
18512
18922
  claimableRewards
18513
18923
  };
18514
18924
  return {
@@ -18596,7 +19006,7 @@ function getUserDataConverter(lender, chainId, account, prices, pricesHist, lend
18596
19006
  lenderPublicState?.data?.[lender]?.data
18597
19007
  );
18598
19008
  }
18599
- 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) => {
18600
19010
  let calls = [];
18601
19011
  const queries = organizeUserQueries(queriesRaw);
18602
19012
  for (const query2 of queries) {
@@ -18615,7 +19025,7 @@ var getLenderUserDataResult = async (chainId, queriesRaw, getEvmClient2, allowFa
18615
19025
  chainId,
18616
19026
  calls.map((call) => call.abi),
18617
19027
  calls.map((call) => call.call),
18618
- getEvmClient2,
19028
+ getEvmClient4,
18619
19029
  true,
18620
19030
  0,
18621
19031
  retries,
@@ -18666,7 +19076,7 @@ var convertLenderUserDataResult = (chainId, queriesRaw, rawResults, prices, pric
18666
19076
  var baseUrl = "https://raw.githubusercontent.com/1delta-DAO/lender-metadata/main";
18667
19077
  var aavePools2 = baseUrl + "/config/aave-pools.json";
18668
19078
  var aaveOracles2 = baseUrl + "/data/aave-oracles.json";
18669
- var morphoOracles2 = baseUrl + "/data/morpho-oracles.json";
19079
+ var morphoTypeOracles2 = baseUrl + "/data/morpho-type-oracles.json";
18670
19080
  var compoundV2Pools2 = baseUrl + "/config/compound-v2-pools.json";
18671
19081
  var compoundV3Pools2 = baseUrl + "/config/compound-v3-pools.json";
18672
19082
  var morphoPools2 = baseUrl + "/config/morpho-pools.json";
@@ -18699,7 +19109,7 @@ async function fetchLenderMetaFromDirAndInitialize() {
18699
19109
  compoundV2TokensOverride,
18700
19110
  compoundV3BaseDataOverride,
18701
19111
  aaveOraclesOverride,
18702
- morphoOraclesOverride,
19112
+ morphoTypeOraclesOverride,
18703
19113
  chainsOverride
18704
19114
  } = await fetchLenderMetaFromDir();
18705
19115
  initializeLenderData({
@@ -18715,7 +19125,7 @@ async function fetchLenderMetaFromDirAndInitialize() {
18715
19125
  compoundV3ReservesOverride,
18716
19126
  compoundV2ReservesOverride,
18717
19127
  aaveOraclesOverride,
18718
- morphoOraclesOverride
19128
+ morphoTypeOraclesOverride
18719
19129
  });
18720
19130
  initializeChainData({ chainsOverride });
18721
19131
  }
@@ -18734,7 +19144,7 @@ async function fetchLenderMetaFromDir() {
18734
19144
  compoundV2CTokens,
18735
19145
  compoundV3Base,
18736
19146
  aaveOracles2,
18737
- morphoOracles2,
19147
+ morphoTypeOracles2,
18738
19148
  chains
18739
19149
  ].map(async (a) => fetch(a).then(async (b) => await b.json()));
18740
19150
  const [
@@ -18751,7 +19161,7 @@ async function fetchLenderMetaFromDir() {
18751
19161
  compoundV2TokensOverride,
18752
19162
  compoundV3BaseDataOverride,
18753
19163
  aaveOraclesOverride,
18754
- morphoOraclesOverride,
19164
+ morphoTypeOraclesOverride,
18755
19165
  chainsOverride
18756
19166
  ] = await Promise.all(promises);
18757
19167
  return {
@@ -18768,7 +19178,7 @@ async function fetchLenderMetaFromDir() {
18768
19178
  compoundV2TokensOverride,
18769
19179
  compoundV3BaseDataOverride,
18770
19180
  aaveOraclesOverride,
18771
- morphoOraclesOverride,
19181
+ morphoTypeOraclesOverride,
18772
19182
  chainsOverride
18773
19183
  };
18774
19184
  }
@@ -21619,6 +22029,13 @@ var ProxyOracleAbi = [
21619
22029
  ],
21620
22030
  stateMutability: "view",
21621
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"
21622
22039
  }
21623
22040
  ];
21624
22041
 
@@ -21722,9 +22139,35 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
21722
22139
  newAssets.forEach((a) => handled.add(a));
21723
22140
  }
21724
22141
  }
21725
- const morphoOraclesObtained = morphoOracles();
21726
- const morphoQueries = (morphoOraclesObtained[chainId] ?? []).filter(
21727
- (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
+ }
21728
22171
  );
21729
22172
  const morphoCalls = getMorphoCalls(morphoQueries);
21730
22173
  const aaveCalls = getAaveCalls(queries);
@@ -21744,7 +22187,8 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
21744
22187
  ...rwaCalls,
21745
22188
  ...cometCalls,
21746
22189
  ...compoundV2Calls,
21747
- ...morphoCalls
22190
+ ...morphoCalls,
22191
+ ...listaCalls
21748
22192
  ];
21749
22193
  const abis = [
21750
22194
  ...ChainLinkAggregatorAbi,
@@ -21778,6 +22222,7 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
21778
22222
  comet: { calls: cometCalls, names: cometNames },
21779
22223
  compoundV2: { calls: compoundV2Calls, names: compoundV2Names },
21780
22224
  morpho: { queries: morphoQueries },
22225
+ listaCalls,
21781
22226
  uniswapCalls,
21782
22227
  uniswapV3Calls,
21783
22228
  aaveCalls
@@ -21864,6 +22309,7 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
21864
22309
  result,
21865
22310
  meta: {
21866
22311
  morpho,
22312
+ listaCalls,
21867
22313
  chainlink,
21868
22314
  aaveCalls,
21869
22315
  uniswapCalls,
@@ -21875,7 +22321,9 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
21875
22321
  }
21876
22322
  } of chainResults) {
21877
22323
  const morphoOffset = chainlink.calls.length + aaveCalls.length + uniswapCalls.length + uniswapV3Calls.length + api3.calls.length + comet.calls.length + compoundV2.calls.length + rwa.calls.length;
21878
- 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);
21879
22327
  const morphoData = parseMorphoResults(
21880
22328
  chainId,
21881
22329
  morphoResult,
@@ -21883,9 +22331,17 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
21883
22331
  allPrices,
21884
22332
  lists[chainId]?.list
21885
22333
  );
22334
+ const listaData = parseListaResults(
22335
+ chainId,
22336
+ listaResult,
22337
+ listaCalls,
22338
+ allPrices,
22339
+ lists[chainId]?.list
22340
+ );
21886
22341
  allPrices = {
21887
22342
  ...allPrices,
21888
- ...morphoData
22343
+ ...morphoData,
22344
+ ...listaData
21889
22345
  };
21890
22346
  }
21891
22347
  for (const r of otherResults) {
@@ -22514,6 +22970,16 @@ var parseMorphoResults = (chainId, data, queries, donePrices = {}, list = {}) =>
22514
22970
  });
22515
22971
  return prices;
22516
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
+ };
22517
22983
  var parseChainLinkResults = (chainId, data, assetName) => {
22518
22984
  switch (chainId) {
22519
22985
  default: {