@1delta/margin-fetcher 0.0.33 → 0.0.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/lending/user-data/aave-v2-type/userCallBuild.d.ts +2 -2
  2. package/dist/lending/user-data/aave-v2-type/userCallBuild.d.ts.map +1 -1
  3. package/dist/lending/user-data/aave-v2-type/userCallBuild.js +8 -11
  4. package/dist/lending/user-data/aave-v2-type/userCallParse.js +2 -2
  5. package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts +2 -2
  6. package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts.map +1 -1
  7. package/dist/lending/user-data/aave-v3-type/userCallBuild.js +6 -8
  8. package/dist/lending/user-data/aave-v3-type/userCallParse.js +2 -2
  9. package/dist/lending/user-data/aave-v3-type/userCallParseYldr.js +3 -3
  10. package/dist/lending/user-data/compound-v3/userCallBuild.d.ts +1 -1
  11. package/dist/lending/user-data/compound-v3/userCallBuild.d.ts.map +1 -1
  12. package/dist/lending/user-data/compound-v3/userCallBuild.js +2 -2
  13. package/dist/lending/user-data/compound-v3/userCallParse.d.ts.map +1 -1
  14. package/dist/lending/user-data/compound-v3/userCallParse.js +1 -1
  15. package/dist/lending/user-data/fetchUserData.d.ts +1 -0
  16. package/dist/lending/user-data/fetchUserData.d.ts.map +1 -1
  17. package/dist/lending/user-data/fetchUserData.js +6 -5
  18. package/dist/lending/user-data/morpho/userCallParse.d.ts.map +1 -1
  19. package/dist/lending/user-data/types.d.ts +2 -0
  20. package/dist/lending/user-data/types.d.ts.map +1 -1
  21. package/dist/lending/user-data/types.js +6 -2
  22. package/dist/utils/index.d.ts +0 -1
  23. package/dist/utils/index.d.ts.map +1 -1
  24. package/dist/utils/index.js +0 -4
  25. package/package.json +1 -1
  26. package/src/lending/user-data/aave-v2-type/userCallBuild.ts +25 -31
  27. package/src/lending/user-data/aave-v2-type/userCallParse.ts +2 -2
  28. package/src/lending/user-data/aave-v3-type/userCallBuild.ts +17 -15
  29. package/src/lending/user-data/aave-v3-type/userCallParse.ts +2 -2
  30. package/src/lending/user-data/aave-v3-type/userCallParseYldr.ts +3 -3
  31. package/src/lending/user-data/compound-v3/userCallBuild.ts +2 -1
  32. package/src/lending/user-data/compound-v3/userCallParse.ts +1 -5
  33. package/src/lending/user-data/fetchUserData.ts +8 -6
  34. package/src/lending/user-data/morpho/userCallParse.ts +2 -4
  35. package/src/lending/user-data/types.ts +7 -3
  36. package/src/utils/index.ts +0 -6
  37. package/test/userDataAaveMainnet.test.ts +9 -10
  38. package/test/userDataMorphoEthereum.test.ts +23 -25
@@ -1,4 +1,4 @@
1
- import { Call } from "../../../utils/multicall";
1
+ import { Call } from '../../../utils/multicall';
2
2
  import { Lender } from '@1delta/lender-registry';
3
- export declare const buildAaveV2UserCall: (chainId: string, lender: Lender, account: string) => Call[];
3
+ export declare const buildAaveV2UserCall: (chainId: string, lender: Lender, account: string, assets?: string[]) => Call[];
4
4
  //# sourceMappingURL=userCallBuild.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"userCallBuild.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v2-type/userCallBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAmBhD,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,EAAE,SAAS,MAAM,KAAG,IAAI,EAiG1F,CAAA"}
1
+ {"version":3,"file":"userCallBuild.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v2-type/userCallBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AA0BhD,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,EACf,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,KAChB,IAAI,EA+EN,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { Lender } from '@1delta/lender-registry';
2
- import { getAaveAssets, getAaveStyleProtocolTokenMap, getAaveTypePoolDataProviderAddress } from "../../../assets";
3
- import { getAaveTypeIncentivesControllerAddress, getAaveTypeMultiFeeDistribution } from "../../addresses";
2
+ import { getAaveAssets, getAaveStyleProtocolTokenMap, getAaveTypePoolDataProviderAddress, } from '../../../assets';
3
+ import { getAaveTypeIncentivesControllerAddress, getAaveTypeMultiFeeDistribution, } from '../../addresses';
4
4
  const getBaseAaveV2Calls = (chainId, account, lender, assetsToQuery) => {
5
5
  return assetsToQuery.flatMap((tk) => [
6
6
  {
@@ -10,11 +10,11 @@ const getBaseAaveV2Calls = (chainId, account, lender, assetsToQuery) => {
10
10
  },
11
11
  ]);
12
12
  };
13
- export const buildAaveV2UserCall = (chainId, lender, account) => {
13
+ export const buildAaveV2UserCall = (chainId, lender, account, assets) => {
14
14
  switch (lender) {
15
15
  case Lender.AURELIUS: {
16
16
  const rewarder = getAaveTypeIncentivesControllerAddress(chainId, lender);
17
- const assetsToQuery = getAaveAssets(chainId, lender);
17
+ const assetsToQuery = assets ?? getAaveAssets(chainId, lender);
18
18
  const aaveTokenMap = getAaveStyleProtocolTokenMap(chainId, lender);
19
19
  const aTokens = Object.values(aaveTokenMap).map((a) => a.aToken);
20
20
  const vTokens = Object.values(aaveTokenMap).map((a) => a.vToken);
@@ -24,13 +24,10 @@ export const buildAaveV2UserCall = (chainId, lender, account) => {
24
24
  address: rewarder,
25
25
  name: 'getAllUserRewardsBalance',
26
26
  params: [
27
- [
28
- ...Object.values(aTokens),
29
- ...Object.values(vTokens)
30
- ],
31
- account
27
+ [...Object.values(aTokens), ...Object.values(vTokens)],
28
+ account,
32
29
  ],
33
- }
30
+ },
34
31
  ];
35
32
  }
36
33
  case Lender.MERIDIAN:
@@ -76,7 +73,7 @@ export const buildAaveV2UserCall = (chainId, lender, account) => {
76
73
  return [
77
74
  ...getBaseAaveV2Calls(chainId, account, lender, assetsToQuery),
78
75
  rewardsBalance,
79
- unclaimedRewards
76
+ unclaimedRewards,
80
77
  ];
81
78
  }
82
79
  default: {
@@ -223,8 +223,8 @@ function createAaveV2Entry(i, data, chainId, asset, prices, pricesHist, claimabl
223
223
  const price = prices[key] ?? 1;
224
224
  const priceHist = pricesHist?.[key] ?? price;
225
225
  const dataForAsset = {
226
- poolId: asset,
227
- underlying: asset,
226
+ poolId: asset.address,
227
+ underlying: asset.address,
228
228
  deposits: currentATokenBalance,
229
229
  depositsRaw: currentATokenBalanceRaw,
230
230
  debtStable: currentStableDebt,
@@ -1,4 +1,4 @@
1
1
  import { Lender } from '@1delta/lender-registry';
2
- import { Call } from "../../../utils/multicall";
3
- export declare const buildAaveV3UserCall: (chainId: string, lender: Lender, account: string) => Call[];
2
+ import { Call } from '../../../utils/multicall';
3
+ export declare const buildAaveV3UserCall: (chainId: string, lender: Lender, account: string, assets?: string[]) => Call[];
4
4
  //# sourceMappingURL=userCallBuild.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"userCallBuild.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v3-type/userCallBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAmB/C,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,EAAE,SAAS,MAAM,KAAG,IAAI,EAqB1F,CAAA"}
1
+ {"version":3,"file":"userCallBuild.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v3-type/userCallBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAuB/C,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,EACf,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,KAChB,IAAI,EAcN,CAAA"}
@@ -1,19 +1,17 @@
1
- import { getAaveAssets, getAaveTypePoolDataProviderAddress, getAaveTypePoolAddress } from "../../../assets";
2
- import { isYLDR } from "../../../utils";
1
+ import { getAaveAssets, getAaveTypePoolDataProviderAddress, getAaveTypePoolAddress, } from '../../../assets';
2
+ import { isYLDR } from '../../../utils';
3
3
  const getBaseAaveV3Calls = (chainId, account, lender, assetsToQuery) => {
4
4
  return assetsToQuery.flatMap((tk) => [
5
5
  {
6
6
  address: getAaveTypePoolDataProviderAddress(chainId, lender),
7
7
  name: 'getUserReserveData',
8
8
  params: [tk, account],
9
- }
9
+ },
10
10
  ]);
11
11
  };
12
- export const buildAaveV3UserCall = (chainId, lender, account) => {
13
- const assetsToQuery = getAaveAssets(chainId, lender);
14
- const calls = [
15
- ...getBaseAaveV3Calls(chainId, account, lender, assetsToQuery),
16
- ];
12
+ export const buildAaveV3UserCall = (chainId, lender, account, assets) => {
13
+ const assetsToQuery = assets ?? getAaveAssets(chainId, lender);
14
+ const calls = [...getBaseAaveV3Calls(chainId, account, lender, assetsToQuery)];
17
15
  if (!isYLDR(lender)) {
18
16
  const callDataEmode = {
19
17
  address: getAaveTypePoolAddress(chainId, lender),
@@ -63,8 +63,8 @@ function createAaveV3Entry(i, data, chainId, asset, prices, pricesHist) {
63
63
  const price = prices[key] ?? 1;
64
64
  const priceHist = pricesHist?.[key] ?? price;
65
65
  const dataForAsset = {
66
- poolId: asset,
67
- underlying: asset,
66
+ poolId: asset.address,
67
+ underlying: asset.address,
68
68
  deposits: currentATokenBalance,
69
69
  depositsRaw: currentATokenBalanceRaw,
70
70
  debtStable: currentStableDebt,
@@ -16,7 +16,7 @@ export const getYldrUserDataConverter = (lender, chainId, account, prices, price
16
16
  let totalDeposits24h = 0;
17
17
  for (let i = 0; i < assetsToQuery.length; i++) {
18
18
  const asset = assetsToQuery[i];
19
- const { dataForAsset, addedDebt, addedDeposits } = createAaveV3Entry(i, data, chainId, lenderData[asset].asset ``, prices, pricesHist);
19
+ const { dataForAsset, addedDebt, addedDeposits } = createAaveV3Entry(i, data, chainId, lenderData[asset].asset, prices, pricesHist);
20
20
  if (!dataForAsset)
21
21
  continue;
22
22
  totalDebt24h += addedDebt;
@@ -60,8 +60,8 @@ function createAaveV3Entry(i, data, chainId, asset, prices, pricesHist) {
60
60
  const price = prices[key] ?? 1;
61
61
  const priceHist = pricesHist?.[key] ?? price;
62
62
  const dataForAsset = {
63
- poolId: asset,
64
- underlying: asset,
63
+ poolId: asset.address,
64
+ underlying: asset.address,
65
65
  deposits: currentATokenBalance,
66
66
  depositsRaw: currentATokenBalanceRaw,
67
67
  debtStable: '0',
@@ -1,4 +1,4 @@
1
1
  import { Lender } from '@1delta/lender-registry';
2
2
  import { Call } from '../../../utils/multicall';
3
- export declare const buildCompoundV3UserCall: (chainId: string, lender: Lender, account: string) => Call[];
3
+ export declare const buildCompoundV3UserCall: (chainId: string, lender: Lender, account: string, assetsOverride?: string[]) => Call[];
4
4
  //# sourceMappingURL=userCallBuild.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"userCallBuild.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/compound-v3/userCallBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAQ/C,eAAO,MAAM,uBAAuB,GAClC,SAAS,MAAM,EACf,QAAQ,MAAM,EACd,SAAS,MAAM,KACd,IAAI,EAkCN,CAAA"}
1
+ {"version":3,"file":"userCallBuild.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/compound-v3/userCallBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAQ/C,eAAO,MAAM,uBAAuB,GAClC,SAAS,MAAM,EACf,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,iBAAiB,MAAM,EAAE,KACxB,IAAI,EAkCN,CAAA"}
@@ -1,9 +1,9 @@
1
1
  import { getLenderAssets } from '../../../utils';
2
2
  import { getCompoundV3BaseAsset, getCompoundV3CometAddress, getCompoundV3CometRewardsAddress, } from '../../addresses/compoundV3';
3
- export const buildCompoundV3UserCall = (chainId, lender, account) => {
3
+ export const buildCompoundV3UserCall = (chainId, lender, account, assetsOverride) => {
4
4
  const baseAsset = getCompoundV3BaseAsset(lender, chainId)?.baseAsset;
5
5
  const cometContractAddress = getCompoundV3CometAddress(chainId, lender);
6
- const assets = getLenderAssets(chainId, lender);
6
+ const assets = assetsOverride ?? getLenderAssets(chainId, lender);
7
7
  const assetsNoBase = assets.filter((a) => a !== baseAsset);
8
8
  const baseCalls = [
9
9
  {
@@ -1 +1 @@
1
- {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/compound-v3/userCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAA;AASxD,eAAO,MAAM,8BAA8B,GACzC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,YAAY;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACvC,YAAY,GAAG,KACd,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,6BAA6B,GAAG,SAAS,EAAE,MAAM,CAmHrE,CAAA"}
1
+ {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/compound-v3/userCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAA;AAMxD,eAAO,MAAM,8BAA8B,GACzC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,YAAY;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACvC,YAAY,GAAG,KACd,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,6BAA6B,GAAG,SAAS,EAAE,MAAM,CAkHrE,CAAA"}
@@ -1,4 +1,4 @@
1
- import { toGenericPriceKey, toOracleKey, } from '../../../assets';
1
+ import { toGenericPriceKey, toOracleKey } from '../../../assets';
2
2
  import { getCompoundV3BaseAsset } from '../../addresses/compoundV3';
3
3
  import { parseRawAmount } from '../../../utils/parsing';
4
4
  import { createBaseTypeUserState } from '../utils';
@@ -8,6 +8,7 @@ import { GetEvmClientFunction } from '../../types';
8
8
  * @param allowFailure - multicall can fail in single call, default is true - note that this might mess with the retries as it will never error
9
9
  * @param batchSize - multicall batch size, default is 4096
10
10
  * @param logs - show multicall error logs, default is false
11
+ * @param lenderData - optional public lender data to dynamically use pols and assets provided externally
11
12
  * @returns The raw results from the multicall, "0x" for failures
12
13
  */
13
14
  export declare const getLenderUserDataResult: (chainId: string, queriesRaw: LenderUserQuery[], getEvmClient: GetEvmClientFunction, allowFailure?: boolean, batchSize?: number, retries?: number, logs?: boolean) => Promise<any[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"fetchUserData.d.ts","sourceRoot":"","sources":["../../../src/lending/user-data/fetchUserData.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,eAAe,EAAuB,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AA6FlD;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,MAAM,EACf,YAAY,eAAe,EAAE,EAC7B,cAAc,oBAAoB,EAClC,sBAAmB,EACnB,kBAAwC,EACxC,gBAAW,EACX,cAAY,KACX,OAAO,CAAC,GAAG,EAAE,CAgCf,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,GACtC,SAAS,MAAM,EACf,YAAY,eAAe,EAAE,EAC7B,YAAY,GAAG,EAAE,EACjB,QAAQ,GAAG,EACX,YAAY,GAAG,EACf,aAAa,GAAG,KACf;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAsCzB,CAAA"}
1
+ {"version":3,"file":"fetchUserData.d.ts","sourceRoot":"","sources":["../../../src/lending/user-data/fetchUserData.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,eAAe,EAAuB,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAgGlD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,MAAM,EACf,YAAY,eAAe,EAAE,EAC7B,cAAc,oBAAoB,EAClC,sBAAmB,EACnB,kBAAwC,EACxC,gBAAW,EACX,cAAY,KACX,OAAO,CAAC,GAAG,EAAE,CAgCf,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,GACtC,SAAS,MAAM,EACf,YAAY,eAAe,EAAE,EAC7B,YAAY,GAAG,EAAE,EACjB,QAAQ,GAAG,EACX,YAAY,GAAG,EACf,aAAa,GAAG,KACf;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAoCzB,CAAA"}
@@ -13,16 +13,16 @@ import { getCompoundV3UserDataConverter } from './compound-v3/userCallParse';
13
13
  import { getYldrUserDataConverter } from './aave-v3-type/userCallParseYldr';
14
14
  import { buildMorphoUserCallWithLens } from './morpho/userCallBuild';
15
15
  import { getMorphoUserDataConverterWithlens } from './morpho/userCallParse';
16
- function buildUserCall(chainId, lender, account, params) {
16
+ function buildUserCall(chainId, lender, account, params, assets) {
17
17
  if (isAaveV2Type(lender))
18
- return buildAaveV2UserCall(chainId, lender, account);
18
+ return buildAaveV2UserCall(chainId, lender, account, assets);
19
19
  if (isAaveV3Type(lender))
20
- return buildAaveV3UserCall(chainId, lender, account);
20
+ return buildAaveV3UserCall(chainId, lender, account, assets);
21
21
  if (isInit(lender))
22
22
  return buildInitUserCall(chainId, lender, account);
23
23
  if (isMorphoType(lender))
24
24
  return buildMorphoUserCallWithLens(chainId, account, lender, params);
25
- return buildCompoundV3UserCall(chainId, lender, account);
25
+ return buildCompoundV3UserCall(chainId, lender, account, assets);
26
26
  }
27
27
  function getUserDataConverter(lender, chainId, account, prices, pricesHist, lenderPublicState, params) {
28
28
  if (isYLDR(lender))
@@ -45,6 +45,7 @@ function getUserDataConverter(lender, chainId, account, prices, pricesHist, lend
45
45
  * @param allowFailure - multicall can fail in single call, default is true - note that this might mess with the retries as it will never error
46
46
  * @param batchSize - multicall batch size, default is 4096
47
47
  * @param logs - show multicall error logs, default is false
48
+ * @param lenderData - optional public lender data to dynamically use pols and assets provided externally
48
49
  * @returns The raw results from the multicall, "0x" for failures
49
50
  */
50
51
  export const getLenderUserDataResult = async (chainId, queriesRaw, getEvmClient, allowFailure = true, batchSize = MULTICALL_DEFAULT_BATCH_SIZE, retries = 3, logs = false) => {
@@ -52,7 +53,7 @@ export const getLenderUserDataResult = async (chainId, queriesRaw, getEvmClient,
52
53
  const queries = organizeUserQueries(queriesRaw);
53
54
  for (const query of queries) {
54
55
  const abi = getAbi(query.lender);
55
- const callData = buildUserCall(chainId, query.lender, query.account, query.params);
56
+ const callData = buildUserCall(chainId, query.lender, query.account, query.params, query.assets);
56
57
  const mappedCalls = callData.map((call) => ({ call, abi }));
57
58
  calls = [...calls, ...mappedCalls];
58
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/morpho/userCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAiDpD,eAAO,MAAM,kCAAkC,GAC7C,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,YAAY;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACvC,YAAY,GAAG,KACd,CACD,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,yBAAyB,CAAA;CAAE,GAAG,SAAS,EAC5E,MAAM,CA6FP,CAAA"}
1
+ {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/morpho/userCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAiDpD,eAAO,MAAM,kCAAkC,GAC7C,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,YAAY;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACvC,YAAY,GAAG,KACd,CACD,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,yBAAyB,CAAA;CAAE,GAAG,SAAS,EAC5E,MAAM,CA2FP,CAAA"}
@@ -8,6 +8,8 @@ export interface LenderUserQuery {
8
8
  account: string;
9
9
  /** custom parameters for fetching e.g. multi-market lenders */
10
10
  params?: any[];
11
+ /** custom parameters for spceifying assets */
12
+ assets?: any[];
11
13
  }
12
14
  /** Filter all morphos into one for querying */
13
15
  export declare function organizeUserQueries(queries: LenderUserQuery[]): LenderUserQuery[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lending/user-data/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lending/user-data/types.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,16 @@
1
1
  import { Lender } from '@1delta/lender-registry';
2
+ import { isMorphoType } from '../../utils';
2
3
  /** Filter all morphos into one for querying */
3
4
  export function organizeUserQueries(queries) {
4
- const morphos = queries.filter((q) => q.lender?.startsWith('MORPHO_BLUE'));
5
- const nonMorphos = queries.filter((q) => !q.lender?.startsWith('MORPHO_BLUE'));
5
+ const morphos = queries.filter((q) => isMorphoType(q.lender));
6
+ if (morphos.length === 0)
7
+ return queries;
8
+ const nonMorphos = queries.filter((q) => !isMorphoType(q.lender));
6
9
  const morphosCollapsed = {
7
10
  lender: Lender.MORPHO_BLUE,
8
11
  account: queries[0].account,
9
12
  params: morphos.map((p) => p.lender),
13
+ assets: undefined
10
14
  };
11
15
  return [...nonMorphos, morphosCollapsed];
12
16
  }
@@ -8,7 +8,6 @@ export declare function isAaveV2Type(lender: string): boolean;
8
8
  export declare function isYLDR(lender: string): lender is Lender.YLDR;
9
9
  export declare function isAaveV32Type(lender: string): boolean;
10
10
  export declare function isAaveType(lender: string): boolean;
11
- export declare function isSwaylend(lender: string): boolean;
12
11
  export declare const getLendersForChain: (c: string) => string[];
13
12
  /** Filter lenders by protocol list */
14
13
  export declare const filterLendersByProtocol: (allLenders: string[], protocolList?: string[]) => string[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,MAAM,EAEP,MAAM,yBAAyB,CAAA;AAehC,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,WAE1C;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,WAE9C;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,yBAEpC;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,WAE1C;AAID,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,WAE1C;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,WAE1C;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,yBAEpC;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,WAE3C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,WAExC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,WAExC;AAED,eAAO,MAAM,kBAAkB,GAAI,GAAG,MAAM,aA2B3C,CAAA;AAED,sCAAsC;AACtC,eAAO,MAAM,uBAAuB,GAClC,YAAY,MAAM,EAAE,EACpB,eAAe,MAAM,EAAE,KACtB,MAAM,EAaR,CAAA;AAED,mCAAmC;AACnC,eAAO,MAAM,gBAAgB;;CAS5B,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,SAAS,MAAM,KAAG,MAEpD,CAAA;AAED,eAAO,MAAM,eAAe,GAC1B,SAAS,MAAM,GAAG,MAAM,GAAG,SAAS,EACpC,wBAAgC,KAC/B,MAAM,EAOR,CAAA;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,WAE3C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,MAAM,EAEP,MAAM,yBAAyB,CAAA;AAehC,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,WAE1C;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,WAE9C;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,yBAEpC;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,WAE1C;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,WAE1C;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,WAE1C;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,yBAEpC;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,WAE3C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,WAExC;AAED,eAAO,MAAM,kBAAkB,GAAI,GAAG,MAAM,aA2B3C,CAAA;AAED,sCAAsC;AACtC,eAAO,MAAM,uBAAuB,GAClC,YAAY,MAAM,EAAE,EACpB,eAAe,MAAM,EAAE,KACtB,MAAM,EAaR,CAAA;AAED,mCAAmC;AACnC,eAAO,MAAM,gBAAgB;;CAS5B,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,SAAS,MAAM,KAAG,MAEpD,CAAA;AAED,eAAO,MAAM,eAAe,GAC1B,SAAS,MAAM,GAAG,MAAM,GAAG,SAAS,EACpC,wBAAgC,KAC/B,MAAM,EAOR,CAAA;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,WAE3C"}
@@ -16,7 +16,6 @@ export function isInit(lender) {
16
16
  export function isMorphoType(lender) {
17
17
  return lender?.startsWith('MORPHO_BLUE');
18
18
  }
19
- const SWAYLEND_KEY = 'SWAYLEND';
20
19
  export function isAaveV3Type(lender) {
21
20
  return AAVE_V3_LENDERS.includes(lender);
22
21
  }
@@ -32,9 +31,6 @@ export function isAaveV32Type(lender) {
32
31
  export function isAaveType(lender) {
33
32
  return [...AAVE_V3_LENDERS, ...AAVE_V2_LENDERS].includes(lender);
34
33
  }
35
- export function isSwaylend(lender) {
36
- return lender?.startsWith(SWAYLEND_KEY);
37
- }
38
34
  export const getLendersForChain = (c) => {
39
35
  let lenders = [];
40
36
  // aaves
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1delta/margin-fetcher",
3
- "version": "0.0.33",
3
+ "version": "0.0.35",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,7 +1,14 @@
1
- import { Call } from "../../../utils/multicall"
1
+ import { Call } from '../../../utils/multicall'
2
2
  import { Lender } from '@1delta/lender-registry'
3
- import { getAaveAssets, getAaveStyleProtocolTokenMap, getAaveTypePoolDataProviderAddress } from "../../../assets"
4
- import { getAaveTypeIncentivesControllerAddress, getAaveTypeMultiFeeDistribution } from "../../addresses"
3
+ import {
4
+ getAaveAssets,
5
+ getAaveStyleProtocolTokenMap,
6
+ getAaveTypePoolDataProviderAddress,
7
+ } from '../../../assets'
8
+ import {
9
+ getAaveTypeIncentivesControllerAddress,
10
+ getAaveTypeMultiFeeDistribution,
11
+ } from '../../addresses'
5
12
 
6
13
  const getBaseAaveV2Calls = (
7
14
  chainId: string,
@@ -18,11 +25,16 @@ const getBaseAaveV2Calls = (
18
25
  ])
19
26
  }
20
27
 
21
- export const buildAaveV2UserCall = (chainId: string, lender: Lender, account: string): Call[] => {
28
+ export const buildAaveV2UserCall = (
29
+ chainId: string,
30
+ lender: Lender,
31
+ account: string,
32
+ assets?: string[],
33
+ ): Call[] => {
22
34
  switch (lender) {
23
35
  case Lender.AURELIUS: {
24
36
  const rewarder = getAaveTypeIncentivesControllerAddress(chainId, lender)
25
- const assetsToQuery = getAaveAssets(chainId, lender)
37
+ const assetsToQuery = assets ?? getAaveAssets(chainId, lender)
26
38
 
27
39
  const aaveTokenMap = getAaveStyleProtocolTokenMap(chainId, lender)
28
40
 
@@ -30,23 +42,15 @@ export const buildAaveV2UserCall = (chainId: string, lender: Lender, account: st
30
42
  const vTokens = Object.values(aaveTokenMap).map((a: any) => a.vToken)
31
43
 
32
44
  return [
33
- ...getBaseAaveV2Calls(
34
- chainId,
35
- account,
36
- lender,
37
- assetsToQuery,
38
- ),
45
+ ...getBaseAaveV2Calls(chainId, account, lender, assetsToQuery),
39
46
  {
40
47
  address: rewarder,
41
48
  name: 'getAllUserRewardsBalance',
42
49
  params: [
43
- [
44
- ...Object.values(aTokens),
45
- ...Object.values(vTokens)
46
- ],
47
- account
50
+ [...Object.values(aTokens), ...Object.values(vTokens)],
51
+ account,
48
52
  ],
49
- }
53
+ },
50
54
  ]
51
55
  }
52
56
  case Lender.MERIDIAN:
@@ -95,24 +99,14 @@ export const buildAaveV2UserCall = (chainId: string, lender: Lender, account: st
95
99
  }
96
100
 
97
101
  return [
98
- ...getBaseAaveV2Calls(
99
- chainId,
100
- account,
101
- lender,
102
- assetsToQuery
103
- ),
102
+ ...getBaseAaveV2Calls(chainId, account, lender, assetsToQuery),
104
103
  rewardsBalance,
105
- unclaimedRewards
104
+ unclaimedRewards,
106
105
  ]
107
106
  }
108
107
  default: {
109
108
  const assetsToQuery = getAaveAssets(chainId, lender)
110
- return getBaseAaveV2Calls(
111
- chainId,
112
- account,
113
- lender,
114
- assetsToQuery,
115
- )
109
+ return getBaseAaveV2Calls(chainId, account, lender, assetsToQuery)
116
110
  }
117
111
  }
118
- }
112
+ }
@@ -375,8 +375,8 @@ function createAaveV2Entry(
375
375
  const priceHist = pricesHist?.[key] ?? price
376
376
 
377
377
  const dataForAsset = {
378
- poolId: asset,
379
- underlying: asset,
378
+ poolId: asset.address,
379
+ underlying: asset.address,
380
380
  deposits: currentATokenBalance,
381
381
  depositsRaw: currentATokenBalanceRaw,
382
382
  debtStable: currentStableDebt,
@@ -1,7 +1,11 @@
1
1
  import { Lender } from '@1delta/lender-registry'
2
- import { Call } from "../../../utils/multicall"
3
- import { getAaveAssets, getAaveTypePoolDataProviderAddress, getAaveTypePoolAddress } from "../../../assets"
4
- import { isYLDR } from "../../../utils"
2
+ import { Call } from '../../../utils/multicall'
3
+ import {
4
+ getAaveAssets,
5
+ getAaveTypePoolDataProviderAddress,
6
+ getAaveTypePoolAddress,
7
+ } from '../../../assets'
8
+ import { isYLDR } from '../../../utils'
5
9
 
6
10
  const getBaseAaveV3Calls = (
7
11
  chainId: string,
@@ -14,21 +18,19 @@ const getBaseAaveV3Calls = (
14
18
  address: getAaveTypePoolDataProviderAddress(chainId, lender),
15
19
  name: 'getUserReserveData',
16
20
  params: [tk, account],
17
- }
21
+ },
18
22
  ])
19
23
  }
20
24
 
21
- export const buildAaveV3UserCall = (chainId: string, lender: Lender, account: string): Call[] => {
22
- const assetsToQuery = getAaveAssets(chainId, lender)
25
+ export const buildAaveV3UserCall = (
26
+ chainId: string,
27
+ lender: Lender,
28
+ account: string,
29
+ assets?: string[],
30
+ ): Call[] => {
31
+ const assetsToQuery = assets ?? getAaveAssets(chainId, lender)
23
32
 
24
- const calls = [
25
- ...getBaseAaveV3Calls(
26
- chainId,
27
- account,
28
- lender,
29
- assetsToQuery,
30
- ),
31
- ]
33
+ const calls = [...getBaseAaveV3Calls(chainId, account, lender, assetsToQuery)]
32
34
  if (!isYLDR(lender)) {
33
35
  const callDataEmode = {
34
36
  address: getAaveTypePoolAddress(chainId, lender),
@@ -39,4 +41,4 @@ export const buildAaveV3UserCall = (chainId: string, lender: Lender, account: st
39
41
  }
40
42
 
41
43
  return calls
42
- }
44
+ }
@@ -114,8 +114,8 @@ function createAaveV3Entry(
114
114
  const priceHist = pricesHist?.[key] ?? price
115
115
 
116
116
  const dataForAsset = {
117
- poolId: asset,
118
- underlying: asset,
117
+ poolId: asset.address,
118
+ underlying: asset.address,
119
119
  deposits: currentATokenBalance,
120
120
  depositsRaw: currentATokenBalanceRaw,
121
121
  debtStable: currentStableDebt,
@@ -33,7 +33,7 @@ export const getYldrUserDataConverter = (
33
33
  i,
34
34
  data,
35
35
  chainId,
36
- lenderData[asset].asset``,
36
+ lenderData[asset].asset,
37
37
  prices,
38
38
  pricesHist,
39
39
  )
@@ -103,8 +103,8 @@ function createAaveV3Entry(
103
103
  const priceHist = pricesHist?.[key] ?? price
104
104
 
105
105
  const dataForAsset = {
106
- poolId: asset,
107
- underlying: asset,
106
+ poolId: asset.address,
107
+ underlying: asset.address,
108
108
  deposits: currentATokenBalance,
109
109
  depositsRaw: currentATokenBalanceRaw,
110
110
  debtStable: '0',
@@ -11,10 +11,11 @@ export const buildCompoundV3UserCall = (
11
11
  chainId: string,
12
12
  lender: Lender,
13
13
  account: string,
14
+ assetsOverride?: string[],
14
15
  ): Call[] => {
15
16
  const baseAsset = getCompoundV3BaseAsset(lender, chainId)?.baseAsset
16
17
  const cometContractAddress = getCompoundV3CometAddress(chainId, lender)!
17
- const assets = getLenderAssets(chainId, lender)
18
+ const assets = assetsOverride ?? getLenderAssets(chainId, lender)
18
19
  const assetsNoBase = assets.filter((a) => a !== baseAsset)
19
20
 
20
21
  const baseCalls = [
@@ -1,9 +1,6 @@
1
1
  import { Lender } from '@1delta/lender-registry'
2
2
  import { CompoundV3UserReserveResponse } from '../types'
3
- import {
4
- toGenericPriceKey,
5
- toOracleKey,
6
- } from '../../../assets'
3
+ import { toGenericPriceKey, toOracleKey } from '../../../assets'
7
4
  import { getCompoundV3BaseAsset } from '../../addresses/compoundV3'
8
5
  import { parseRawAmount } from '../../../utils/parsing'
9
6
  import { createBaseTypeUserState } from '../utils'
@@ -116,7 +113,6 @@ export const getCompoundV3UserDataConverter = (
116
113
  },
117
114
  account,
118
115
  }
119
-
120
116
  const userData = createBaseTypeUserState(
121
117
  payload,
122
118
  lenderData,
@@ -32,13 +32,16 @@ function buildUserCall(
32
32
  lender: Lender,
33
33
  account: string,
34
34
  params?: any,
35
+ assets?: any[],
35
36
  ) {
36
- if (isAaveV2Type(lender)) return buildAaveV2UserCall(chainId, lender, account)
37
- if (isAaveV3Type(lender)) return buildAaveV3UserCall(chainId, lender, account)
37
+ if (isAaveV2Type(lender))
38
+ return buildAaveV2UserCall(chainId, lender, account, assets)
39
+ if (isAaveV3Type(lender))
40
+ return buildAaveV3UserCall(chainId, lender, account, assets)
38
41
  if (isInit(lender)) return buildInitUserCall(chainId, lender, account)
39
42
  if (isMorphoType(lender))
40
43
  return buildMorphoUserCallWithLens(chainId, account, lender, params)
41
- return buildCompoundV3UserCall(chainId, lender, account)
44
+ return buildCompoundV3UserCall(chainId, lender, account, assets)
42
45
  }
43
46
 
44
47
  function getUserDataConverter(
@@ -114,6 +117,7 @@ function getUserDataConverter(
114
117
  * @param allowFailure - multicall can fail in single call, default is true - note that this might mess with the retries as it will never error
115
118
  * @param batchSize - multicall batch size, default is 4096
116
119
  * @param logs - show multicall error logs, default is false
120
+ * @param lenderData - optional public lender data to dynamically use pols and assets provided externally
117
121
  * @returns The raw results from the multicall, "0x" for failures
118
122
  */
119
123
  export const getLenderUserDataResult = async (
@@ -139,11 +143,11 @@ export const getLenderUserDataResult = async (
139
143
  query.lender,
140
144
  query.account,
141
145
  query.params,
146
+ query.assets,
142
147
  )
143
148
  const mappedCalls = callData.map((call) => ({ call, abi }))
144
149
  calls = [...calls, ...mappedCalls]
145
150
  }
146
-
147
151
  return await multicallViemAbiArray(
148
152
  chainId,
149
153
  calls.map((call) => call.abi),
@@ -189,11 +193,9 @@ export const convertLenderUserDataResult = (
189
193
  lenderState[chainId],
190
194
  query.params,
191
195
  )
192
-
193
196
  try {
194
197
  const data = rawResults.slice(currentSlice, currentSlice + sliceLength)
195
198
  const convertedData = converter(data)
196
-
197
199
  if (convertedData) {
198
200
  if (isMultiMarket(query.lender)) {
199
201
  Object.keys(convertedData).forEach((market) => {
@@ -85,7 +85,6 @@ export const getMorphoUserDataConverterWithlens = (
85
85
  for (let i = 0; i < data.length; i++) {
86
86
  // get balance data array for chunk
87
87
  const balanceDatas = decodePackedDataset(data[i])
88
-
89
88
  // itereate of balanceDatas received in chunk
90
89
  balanceDatas.forEach((balanceData) => {
91
90
  // this will get the market by index
@@ -94,7 +93,6 @@ export const getMorphoUserDataConverterWithlens = (
94
93
  marketsHandled.push(markeId)
95
94
 
96
95
  const market = lenderData[markeId]?.params?.market
97
-
98
96
  const { dataForMarket, addedDebt, addedDeposits } =
99
97
  createMorphoEntryFromMarketWithLens(
100
98
  balanceData,
@@ -183,9 +181,9 @@ function createMorphoEntryFromMarketWithLens(
183
181
  }
184
182
 
185
183
  const collateralAddress = market.collateralAddress.toLowerCase()
186
-
184
+
187
185
  const collateralAssetMeta = lenderData[collateralAddress].asset
188
-
186
+
189
187
  // loan asset deposits
190
188
  const loanDepositNumber = parseRawAmount(
191
189
  deposits.toString(),
@@ -1,5 +1,6 @@
1
1
  import { Lender } from '@1delta/lender-registry'
2
2
  import { BaseYields, RewardsMap } from '../aave-v3-type/types'
3
+ import { isMorphoType } from '../../utils'
3
4
 
4
5
  export type SerializedBigNumber = string
5
6
  export type SerializedNumber = string
@@ -11,17 +12,20 @@ export interface LenderUserQuery {
11
12
  account: string
12
13
  /** custom parameters for fetching e.g. multi-market lenders */
13
14
  params?: any[]
15
+ /** custom parameters for spceifying assets */
16
+ assets?: any[]
14
17
  }
15
18
 
16
-
17
19
  /** Filter all morphos into one for querying */
18
20
  export function organizeUserQueries(queries: LenderUserQuery[]) {
19
- const morphos = queries.filter((q) => q.lender?.startsWith('MORPHO_BLUE'))
20
- const nonMorphos = queries.filter((q) => !q.lender?.startsWith('MORPHO_BLUE'))
21
+ const morphos = queries.filter((q) => isMorphoType(q.lender))
22
+ if (morphos.length === 0) return queries
23
+ const nonMorphos = queries.filter((q) => !isMorphoType(q.lender))
21
24
  const morphosCollapsed = {
22
25
  lender: Lender.MORPHO_BLUE,
23
26
  account: queries[0].account,
24
27
  params: morphos.map((p) => p.lender),
28
+ assets: undefined
25
29
  }
26
30
  return [...nonMorphos, morphosCollapsed]
27
31
  }
@@ -34,8 +34,6 @@ export function isMorphoType(lender: string) {
34
34
  return lender?.startsWith('MORPHO_BLUE')
35
35
  }
36
36
 
37
- const SWAYLEND_KEY = 'SWAYLEND'
38
-
39
37
  export function isAaveV3Type(lender: string) {
40
38
  return AAVE_V3_LENDERS.includes(lender as any)
41
39
  }
@@ -56,10 +54,6 @@ export function isAaveType(lender: string) {
56
54
  return [...AAVE_V3_LENDERS, ...AAVE_V2_LENDERS].includes(lender as any)
57
55
  }
58
56
 
59
- export function isSwaylend(lender: string) {
60
- return lender?.startsWith(SWAYLEND_KEY)
61
- }
62
-
63
57
  export const getLendersForChain = (c: string) => {
64
58
  let lenders: string[] = []
65
59
  // aaves
@@ -7,8 +7,9 @@ import { getEvmClient } from '@1delta/providers'
7
7
  import { Chain } from '@1delta/chain-registry'
8
8
  import { prettyPrint } from './utils'
9
9
  import { TestDataMainnet } from './dataMainnet'
10
+ import { fetchLenderMetaFromDirAndInitialize } from '../src/lending'
10
11
 
11
- export const queries = {
12
+ const queries = {
12
13
  '1': [
13
14
  {
14
15
  account: '0xbadA9c382165b31419F4CC0eDf0Fa84f80A3C8E5',
@@ -83,17 +84,15 @@ describe(
83
84
  it.only(
84
85
  'should fetch user data for Morpho on Base',
85
86
  async () => {
86
- try {
87
- const { userData } = await getUserData([Chain.ETHEREUM_MAINNET])
87
+ await fetchLenderMetaFromDirAndInitialize()
88
88
 
89
- prettyPrint(userData)
89
+ const { userData } = await getUserData([Chain.ETHEREUM_MAINNET])
90
90
 
91
- // Basic validation
92
- expect(userData).toBeDefined()
93
- expect(typeof userData).toBe('object')
94
- } catch (error) {
95
- console.log('Error fetching Morpho Base data:', error)
96
- }
91
+ prettyPrint(userData)
92
+
93
+ // Basic validation
94
+ expect(userData).toBeDefined()
95
+ expect(typeof userData).toBe('object')
97
96
  },
98
97
  { timeout: 30000 },
99
98
  )
@@ -3,39 +3,44 @@ import {
3
3
  getLenderUserDataResult,
4
4
  convertLenderUserDataResult,
5
5
  } from '../src/lending/user-data/fetchUserData'
6
- import { getEvmClient } from '@1delta/providers'
6
+ import { getEvmClient, getEvmClientWithCustomRpcs } from '@1delta/providers'
7
7
  import { Chain } from '@1delta/chain-registry'
8
8
  import { Lender } from '@1delta/lender-registry'
9
9
  import { LenderUserQuery } from '../src/lending/user-data/types'
10
10
  import { prettyPrint } from './utils'
11
+ import { fetchLenderMetaFromDirAndInitialize } from '../src/lending'
11
12
 
12
13
  // random user with ETH
13
14
  const TEST_ADDRESS = '0xbadA9c382165b31419F4CC0eDf0Fa84f80A3C8E5'
14
- let prices
15
+ let prices, pricesHist
15
16
 
16
17
  async function getUserData(chainId: Chain, publicData: any) {
17
18
  // Define user queries
18
19
  const queries: LenderUserQuery[] = Object.keys(publicData.data).map((m) => ({
19
20
  lender: m,
20
21
  account: TEST_ADDRESS.toLowerCase(),
22
+ assets: Object.keys(publicData.data[m].data), // map the assets to query
21
23
  // params: lenders,
22
24
  }))
23
25
 
24
- // console.log("queries", queries)
26
+ // console.log("queries", queries)
25
27
 
26
28
  // Fetch raw user data
27
29
  const rawUserData = await getLenderUserDataResult(
28
30
  chainId,
29
31
  queries,
30
- getEvmClient,
32
+ getEvmClientWithCustomRpcs,
31
33
  )
34
+
35
+ // console.log('rawUserData', rawUserData)
36
+
32
37
  // Convert raw data to structured format
33
38
  const userData = convertLenderUserDataResult(
34
39
  chainId,
35
40
  queries,
36
41
  rawUserData,
37
42
  prices as any,
38
- prices as any,
43
+ pricesHist as any,
39
44
  { [chainId]: publicData },
40
45
  )
41
46
 
@@ -48,28 +53,21 @@ describe(
48
53
  it(
49
54
  'should fetch user data for Morpho on KATANA',
50
55
  async () => {
51
- try {
52
- const chainId = Chain.ETHEREUM_MAINNET
53
- const all = await fetch(
54
- `https://margin-data.1delta.io/lending-multi?chains=${chainId}`,
55
- ).then((a) => a.json())
56
- prices = all.prices
57
-
58
- const publicData = all.data[chainId]
59
- const { userData } = await getUserData(chainId, publicData)
56
+ await fetchLenderMetaFromDirAndInitialize()
57
+ const chainId = Chain.ETHEREUM_MAINNET
58
+ const all = await fetch(
59
+ `https://margin-data.1delta.io/lending-multi?chains=${chainId}`,
60
+ ).then((a) => a.json())
61
+ prices = all.prices
62
+ pricesHist = all.pricesHist
63
+ const publicData = all.data[chainId]
64
+ const { userData } = await getUserData(chainId, publicData)
60
65
 
61
- prettyPrint(
62
- userData[
63
- 'MORPHO_BLUE_C4E18EB6D0E9B0FA90A15BC0A98190CBF3D5BA763AF410346F5174B014CEFD8D'
64
- ],
65
- )
66
+ prettyPrint(userData)
66
67
 
67
- // Basic validation
68
- expect(userData).toBeDefined()
69
- expect(typeof userData).toBe('object')
70
- } catch (error) {
71
- console.log('Error fetching Morpho KATANA data:', error)
72
- }
68
+ // Basic validation
69
+ expect(userData).toBeDefined()
70
+ expect(typeof userData).toBe('object')
73
71
  },
74
72
  { timeout: 30000 },
75
73
  )