@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.
- package/dist/abis/morpho/lens.d.ts +37 -0
- package/dist/abis/morpho/lens.d.ts.map +1 -1
- package/dist/abis/oracle/ProxyOracle.d.ts +14 -0
- package/dist/abis/oracle/ProxyOracle.d.ts.map +1 -1
- package/dist/ccip-K7DULWY3.js +5 -0
- package/dist/{ccip-3LVCRM55.js.map → ccip-K7DULWY3.js.map} +1 -1
- package/dist/{chunk-5KOR6CTI.js → chunk-GMQNO5GH.js} +79 -77
- package/dist/chunk-GMQNO5GH.js.map +1 -0
- package/dist/index.js +507 -42
- package/dist/index.js.map +1 -1
- package/dist/lending/fetchLender.d.ts.map +1 -1
- package/dist/lending/lista/getMarketsFromChain.d.ts +8 -0
- package/dist/lending/lista/getMarketsFromChain.d.ts.map +1 -0
- package/dist/lending/lista/getMarketsOnChain.d.ts +6 -0
- package/dist/lending/lista/getMarketsOnChain.d.ts.map +1 -0
- package/dist/lending/lista/publicCallBuild.d.ts +10 -0
- package/dist/lending/lista/publicCallBuild.d.ts.map +1 -0
- package/dist/lending/meta/index.d.ts +1 -1
- package/dist/lending/morpho/constants/markets.d.ts +3 -0
- package/dist/lending/morpho/constants/markets.d.ts.map +1 -1
- package/dist/lending/morpho/utils/evmParser.d.ts +11 -0
- package/dist/lending/morpho/utils/evmParser.d.ts.map +1 -1
- package/dist/lending/user-data/abis.d.ts +15 -0
- package/dist/lending/user-data/abis.d.ts.map +1 -1
- package/dist/lending/user-data/morpho/userCallBuild.d.ts +3 -0
- package/dist/lending/user-data/morpho/userCallBuild.d.ts.map +1 -1
- package/dist/prices/main-prices/fetchOracleData.d.ts.map +1 -1
- package/dist/types/lenderTypes.d.ts.map +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/ccip-3LVCRM55.js +0 -5
- package/dist/chunk-5KOR6CTI.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { formatEther, BaseError, formatUnits } from './chunk-
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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 %
|
|
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 ${
|
|
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 +=
|
|
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))
|
|
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,
|
|
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 =
|
|
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
|
-
|
|
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
|
|
13203
|
-
|
|
13204
|
-
|
|
13205
|
-
|
|
13206
|
-
|
|
13207
|
-
|
|
13208
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
21727
|
-
|
|
21728
|
-
|
|
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
|
|
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: {
|