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