@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.
- 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 +510 -44
- 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
|
|
@@ -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
|
-
|
|
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
|
|
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,
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
21726
|
-
|
|
21727
|
-
|
|
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
|
|
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: {
|