@1delta/margin-fetcher 0.0.7 → 0.0.9

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 (56) hide show
  1. package/dist/abis/aave/AaveOracle.d.ts +10 -0
  2. package/dist/abis/aave/AaveOracle.d.ts.map +1 -1
  3. package/dist/abis/aave/AaveOracle.js +13 -0
  4. package/dist/abis/oracle/AaveOracle.d.ts +10 -0
  5. package/dist/abis/oracle/AaveOracle.d.ts.map +1 -1
  6. package/dist/abis/oracle/AaveOracle.js +13 -0
  7. package/dist/assets/index.d.ts +4 -4
  8. package/dist/assets/index.d.ts.map +1 -1
  9. package/dist/assets/index.js +8 -8
  10. package/dist/assets/liquidityThresholds.d.ts +29 -0
  11. package/dist/assets/liquidityThresholds.d.ts.map +1 -0
  12. package/dist/assets/liquidityThresholds.js +51 -0
  13. package/dist/lending/aave-v2-type/publicCallParse.js +3 -3
  14. package/dist/lending/addresses/compoundV3.d.ts +1 -1
  15. package/dist/lending/addresses/compoundV3.d.ts.map +1 -1
  16. package/dist/lending/addresses/compoundV3.js +8 -7
  17. package/dist/lending/user-data/aave-v2-type/userCallBuild.d.ts.map +1 -1
  18. package/dist/lending/user-data/aave-v2-type/userCallBuild.js +4 -23
  19. package/dist/lending/user-data/aave-v2-type/userCallParse.d.ts.map +1 -1
  20. package/dist/lending/user-data/aave-v2-type/userCallParse.js +23 -10
  21. package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts.map +1 -1
  22. package/dist/lending/user-data/aave-v3-type/userCallBuild.js +1 -16
  23. package/dist/lending/user-data/aave-v3-type/userCallParse.d.ts.map +1 -1
  24. package/dist/lending/user-data/aave-v3-type/userCallParse.js +13 -6
  25. package/dist/lending/user-data/aave-v3-type/userCallParseYldr.d.ts.map +1 -1
  26. package/dist/lending/user-data/aave-v3-type/userCallParseYldr.js +12 -6
  27. package/dist/lending/user-data/compound-v3/addresses.d.ts.map +1 -1
  28. package/dist/lending/user-data/compound-v3/addresses.js +8 -7
  29. package/dist/lending/user-data/compound-v3/userCallParse.d.ts.map +1 -1
  30. package/dist/lending/user-data/compound-v3/userCallParse.js +2 -0
  31. package/dist/lending-pairs/computeLendingPairs.d.ts +11 -0
  32. package/dist/lending-pairs/computeLendingPairs.d.ts.map +1 -1
  33. package/dist/lending-pairs/computeLendingPairs.js +84 -5
  34. package/dist/prices/main-prices/fetchOracleData.d.ts +1 -1
  35. package/dist/prices/main-prices/fetchOracleData.d.ts.map +1 -1
  36. package/dist/prices/main-prices/fetchOracleData.js +11 -2
  37. package/dist/utils/parsing.d.ts.map +1 -1
  38. package/dist/utils/parsing.js +4 -2
  39. package/package.json +2 -2
  40. package/src/abis/aave/AaveOracle.ts +13 -0
  41. package/src/abis/oracle/AaveOracle.ts +13 -0
  42. package/src/assets/index.ts +70 -51
  43. package/src/assets/liquidityThresholds.ts +83 -0
  44. package/src/lending/aave-v2-type/publicCallParse.ts +3 -3
  45. package/src/lending/addresses/compoundV3.ts +29 -15
  46. package/src/lending/user-data/aave-v2-type/userCallBuild.ts +1 -25
  47. package/src/lending/user-data/aave-v2-type/userCallParse.ts +23 -10
  48. package/src/lending/user-data/aave-v3-type/userCallBuild.ts +1 -16
  49. package/src/lending/user-data/aave-v3-type/userCallParse.ts +15 -6
  50. package/src/lending/user-data/aave-v3-type/userCallParseYldr.ts +14 -6
  51. package/src/lending/user-data/compound-v3/addresses.ts +58 -39
  52. package/src/lending/user-data/compound-v3/userCallParse.ts +2 -2
  53. package/src/lending-pairs/computeLendingPairs.ts +135 -5
  54. package/src/prices/main-prices/fetchOracleData.ts +14 -2
  55. package/src/utils/parsing.ts +51 -51
  56. package/test/userdata.test.ts +5 -5
@@ -1,4 +1,14 @@
1
1
  export declare const AaveOracleAbi: readonly [{
2
+ readonly inputs: readonly [];
3
+ readonly name: "BASE_CURRENCY_UNIT";
4
+ readonly outputs: readonly [{
5
+ readonly internalType: "uint256";
6
+ readonly name: "";
7
+ readonly type: "uint256";
8
+ }];
9
+ readonly stateMutability: "view";
10
+ readonly type: "function";
11
+ }, {
2
12
  readonly inputs: readonly [{
3
13
  readonly internalType: "address";
4
14
  readonly name: "asset";
@@ -1 +1 @@
1
- {"version":3,"file":"AaveOracle.d.ts","sourceRoot":"","sources":["../../../src/abis/aave/AaveOracle.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoDhB,CAAA"}
1
+ {"version":3,"file":"AaveOracle.d.ts","sourceRoot":"","sources":["../../../src/abis/aave/AaveOracle.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiEhB,CAAA"}
@@ -1,4 +1,17 @@
1
1
  export const AaveOracleAbi = [
2
+ {
3
+ "inputs": [],
4
+ "name": "BASE_CURRENCY_UNIT",
5
+ "outputs": [
6
+ {
7
+ "internalType": "uint256",
8
+ "name": "",
9
+ "type": "uint256"
10
+ }
11
+ ],
12
+ "stateMutability": "view",
13
+ "type": "function"
14
+ },
2
15
  {
3
16
  "inputs": [
4
17
  {
@@ -1,4 +1,14 @@
1
1
  export declare const AaveOracleAbi: readonly [{
2
+ readonly inputs: readonly [];
3
+ readonly name: "BASE_CURRENCY_UNIT";
4
+ readonly outputs: readonly [{
5
+ readonly internalType: "uint256";
6
+ readonly name: "";
7
+ readonly type: "uint256";
8
+ }];
9
+ readonly stateMutability: "view";
10
+ readonly type: "function";
11
+ }, {
2
12
  readonly inputs: readonly [{
3
13
  readonly internalType: "address";
4
14
  readonly name: "asset";
@@ -1 +1 @@
1
- {"version":3,"file":"AaveOracle.d.ts","sourceRoot":"","sources":["../../../src/abis/oracle/AaveOracle.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoDhB,CAAA"}
1
+ {"version":3,"file":"AaveOracle.d.ts","sourceRoot":"","sources":["../../../src/abis/oracle/AaveOracle.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiEhB,CAAA"}
@@ -1,4 +1,17 @@
1
1
  export const AaveOracleAbi = [
2
+ {
3
+ "inputs": [],
4
+ "name": "BASE_CURRENCY_UNIT",
5
+ "outputs": [
6
+ {
7
+ "internalType": "uint256",
8
+ "name": "",
9
+ "type": "uint256"
10
+ }
11
+ ],
12
+ "stateMutability": "view",
13
+ "type": "function"
14
+ },
2
15
  {
3
16
  "inputs": [
4
17
  {
@@ -11,10 +11,10 @@ export declare function getAaveTypePoolDataProviderAddress(chainId: string, lend
11
11
  export declare function getAaveTypePoolAddress(chainId: string, lender: string): string;
12
12
  export declare function getAssetMeta(chainId: string, asset: string | undefined): any;
13
13
  /**
14
- * Convert a string (asset symbol) to a Supported asset, considering also naming conflicts
15
- * @param a string
16
- * @returns SupportedAsset
17
- */
14
+ * Convert a string (asset symbol) to a Supported asset, considering also naming conflicts
15
+ * @param a string
16
+ * @returns SupportedAsset
17
+ */
18
18
  export declare const toOracleKey: (a: string) => string;
19
19
  export declare const toGenericPriceKey: (assetAddress: string, chainId: string) => string;
20
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/assets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6K,MAAM,EAA2B,MAAM,wBAAwB,CAAA;AAGnP,gCAAgC;AAChC,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAGpC,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GACzB,GAAG,CACrD;AAGD,eAAO,MAAM,aAAa,GACtB,SAAS,MAAM,GAAG,SAAS,EAC3B,kBAAiB,MAAuB,KACzC,MAAM,EAGR,CAAA;AAED,eAAO,MAAM,aAAa,GACtB,SAAS,MAAM,GAAG,SAAS,EAC3B,wBAA6B,KAC9B,MAAM,EAGR,CAAA;AAED,eAAO,MAAM,mBAAmB,GAC5B,SAAS,MAAM,GAAG,SAAS,EAC3B,wBAA0C,KAC3C,MAAM,EAGR,CAAA;AAED,eAAO,MAAM,mBAAmB,GAC5B,SAAS,MAAM,GAAG,SAAS,EAC3B,wBAA8B,KAC/B,MAAM,EAGR,CAAA;AAGD,eAAO,MAAM,iBAAiB,GAC1B,SAAS,MAAM,GAAG,SAAS,EAC3B,wBAAsC,KACvC,MAAM,EAGR,CAAA;AAED,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAGjF;AAGD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAG9E;AAGD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GACA,GAAG,CACzE;AAGD;;;;EAIE;AACF,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,WAEpC,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,cAAc,MAAM,EAAE,SAAS,MAAM,WAEtE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/assets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,MAAM,EAEP,MAAM,wBAAwB,CAAC;AAGhC,gCAAgC;AAChC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAC3B,GAAG,CACnD;AAED,eAAO,MAAM,aAAa,GACxB,SAAS,MAAM,GAAG,SAAS,EAC3B,kBAAiB,MAAuB,KACvC,MAAM,EAIR,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,SAAS,MAAM,GAAG,SAAS,EAC3B,wBAA6B,KAC5B,MAAM,EAIR,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,GAAG,SAAS,EAC3B,wBAA0C,KACzC,MAAM,EAMR,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,GAAG,SAAS,EAC3B,wBAA8B,KAC7B,MAAM,EAMR,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,GAAG,SAAS,EAC3B,wBAAsC,KACrC,MAAM,EAIR,CAAC;AAEF,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,OAIf;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,MAAM,CAGR;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GACF,GAAG,CACvE;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,WAEpC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,cAAc,MAAM,EAAE,SAAS,MAAM,WAEtE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { AAVE_FORK_POOL_DATA, AAVE_STYLE_RESERVE_ASSETS, AAVE_STYLE_TOKENS, ASSET_META, COMPOUND_STYLE_RESERVE_ASSETS, COMPOUND_V2_STYLE_RESERVE_ASSETS, INIT_STYLE_RESERVE_ASSETS, Lender, SWAYLEND_RESERVE_ASSETS } from "@1delta/asset-registry";
1
+ import { AAVE_FORK_POOL_DATA, AAVE_STYLE_RESERVE_ASSETS, AAVE_STYLE_TOKENS, ASSET_META, COMPOUND_STYLE_RESERVE_ASSETS, COMPOUND_V2_STYLE_RESERVE_ASSETS, INIT_STYLE_RESERVE_ASSETS, Lender, SWAYLEND_RESERVE_ASSETS, } from "@1delta/asset-registry";
2
2
  import { isAaveType, isCompoundV3, isInit, isSwaylend } from "../utils";
3
3
  /** No specific configuration */
4
4
  export const LENDER_MODE_NO_MODE = 0;
@@ -17,12 +17,12 @@ export const getInitAssets = (chainId, lendingProtocol = Lender.INIT) => {
17
17
  };
18
18
  export const getCompoundV3Assets = (chainId, lendingProtocol = Lender.COMPOUND_V3_USDCE) => {
19
19
  if (isCompoundV3(lendingProtocol))
20
- return COMPOUND_STYLE_RESERVE_ASSETS[lendingProtocol]?.[chainId ?? "0"] ?? [];
20
+ return (COMPOUND_STYLE_RESERVE_ASSETS[lendingProtocol]?.[chainId ?? "0"] ?? []);
21
21
  return [];
22
22
  };
23
23
  export const getCompoundV2Assets = (chainId, lendingProtocol = Lender.VENUS) => {
24
24
  if (isCompoundV3(lendingProtocol))
25
- return COMPOUND_V2_STYLE_RESERVE_ASSETS[lendingProtocol]?.[chainId ?? "0"] ?? [];
25
+ return (COMPOUND_V2_STYLE_RESERVE_ASSETS[lendingProtocol]?.[chainId ?? "0"] ?? []);
26
26
  return [];
27
27
  };
28
28
  export const getSwaylendAssets = (chainId, lendingProtocol = Lender.SWAYLEND_USDC) => {
@@ -42,12 +42,12 @@ export function getAssetMeta(chainId, asset) {
42
42
  return ASSET_META[chainId ?? "0"]?.[asset?.toLowerCase() ?? ""];
43
43
  }
44
44
  /**
45
- * Convert a string (asset symbol) to a Supported asset, considering also naming conflicts
46
- * @param a string
47
- * @returns SupportedAsset
48
- */
45
+ * Convert a string (asset symbol) to a Supported asset, considering also naming conflicts
46
+ * @param a string
47
+ * @returns SupportedAsset
48
+ */
49
49
  export const toOracleKey = (a) => {
50
- return a?.toUpperCase();
50
+ return a;
51
51
  };
52
52
  export const toGenericPriceKey = (assetAddress, chainId) => {
53
53
  return chainId + "-" + assetAddress;
@@ -0,0 +1,29 @@
1
+ export interface LiquidityThresholds {
2
+ /** Minimum total deposits in USD */
3
+ minDepositsUSD: number;
4
+ /** Minimum total debt/borrows in USD */
5
+ minDebtUSD: number;
6
+ /** Minimum total liquidity in USD */
7
+ minLiquidityUSD: number;
8
+ }
9
+ export declare const DEFAULT_LIQUIDITY_THRESHOLDS: LiquidityThresholds;
10
+ export declare const ASSET_GROUP_LIQUIDITY_THRESHOLDS: {
11
+ [assetGroup: string]: LiquidityThresholds;
12
+ };
13
+ export declare const CHAIN_THRESHOLD_MULTIPLIERS: {
14
+ [chainId: string]: number;
15
+ };
16
+ /**
17
+ * Asset based overrides (per chain)
18
+ * assetKey format: "chainId-assetAddress" (lowercase)
19
+ */
20
+ export declare const ASSET_SPECIFIC_THRESHOLDS: {
21
+ [assetKey: string]: LiquidityThresholds;
22
+ };
23
+ export declare function getLiquidityThresholds(chainId: string, assetAddress: string, assetGroup?: string): LiquidityThresholds;
24
+ export declare function meetsLiquidityThresholds(pool: {
25
+ totalDepositsUSD: number;
26
+ totalDebtUSD: number;
27
+ totalLiquidityUSD: number;
28
+ }, thresholds: LiquidityThresholds): boolean;
29
+ //# sourceMappingURL=liquidityThresholds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liquidityThresholds.d.ts","sourceRoot":"","sources":["../../src/assets/liquidityThresholds.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,4BAA4B,EAAE,mBAI1C,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE;IAAE,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,CAAA;CAMzF,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE;IAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAWpE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAAA;CAEhF,CAAC;AAKF,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAC,MAAM,GACjB,mBAAmB,CAkBrB;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,EACnF,UAAU,EAAE,mBAAmB,GAC9B,OAAO,CAMT"}
@@ -0,0 +1,51 @@
1
+ import { Chain } from "@1delta/asset-registry";
2
+ export const DEFAULT_LIQUIDITY_THRESHOLDS = {
3
+ minDepositsUSD: 50_000,
4
+ minDebtUSD: 10_000,
5
+ minLiquidityUSD: 25_000,
6
+ };
7
+ export const ASSET_GROUP_LIQUIDITY_THRESHOLDS = {
8
+ 'USDC': {
9
+ minDepositsUSD: 25_000,
10
+ minDebtUSD: 5_000,
11
+ minLiquidityUSD: 15_000,
12
+ },
13
+ };
14
+ export const CHAIN_THRESHOLD_MULTIPLIERS = {
15
+ [Chain.POLYGON_MAINNET]: 1.0,
16
+ [Chain.ARBITRUM_ONE]: 1.0,
17
+ [Chain.OP_MAINNET]: 1.0,
18
+ [Chain.BASE]: 1.0,
19
+ [Chain.MANTLE]: 0.8,
20
+ [Chain.LINEA]: 0.8,
21
+ [Chain.ZKSYNC_MAINNET]: 0.8,
22
+ [Chain.SCROLL]: 0.8,
23
+ [Chain.TAIKO_ALETHIA]: 0.6,
24
+ [Chain.HEMI_NETWORK]: 0.6,
25
+ };
26
+ /**
27
+ * Asset based overrides (per chain)
28
+ * assetKey format: "chainId-assetAddress" (lowercase)
29
+ */
30
+ export const ASSET_SPECIFIC_THRESHOLDS = {};
31
+ export function getLiquidityThresholds(chainId, assetAddress, assetGroup) {
32
+ // Check for asset overrides
33
+ const assetKey = `${chainId}-${assetAddress.toLowerCase()}`;
34
+ if (ASSET_SPECIFIC_THRESHOLDS[assetKey]) {
35
+ return ASSET_SPECIFIC_THRESHOLDS[assetKey];
36
+ }
37
+ let baseThresholds = assetGroup && ASSET_GROUP_LIQUIDITY_THRESHOLDS[assetGroup]
38
+ ? ASSET_GROUP_LIQUIDITY_THRESHOLDS[assetGroup]
39
+ : DEFAULT_LIQUIDITY_THRESHOLDS;
40
+ const chainMultiplier = CHAIN_THRESHOLD_MULTIPLIERS[chainId] ?? 1.0;
41
+ return {
42
+ minDepositsUSD: Math.floor(baseThresholds.minDepositsUSD * chainMultiplier),
43
+ minDebtUSD: Math.floor(baseThresholds.minDebtUSD * chainMultiplier),
44
+ minLiquidityUSD: Math.floor(baseThresholds.minLiquidityUSD * chainMultiplier),
45
+ };
46
+ }
47
+ export function meetsLiquidityThresholds(pool, thresholds) {
48
+ return (pool.totalDepositsUSD >= thresholds.minDepositsUSD &&
49
+ pool.totalDebtUSD >= thresholds.minDebtUSD &&
50
+ pool.totalLiquidityUSD >= thresholds.minLiquidityUSD);
51
+ }
@@ -27,7 +27,7 @@ export const getAaveV2ReservesDataConverter = (lender, chainId, prices, addition
27
27
  const totalVariableDebt = parseRawAmount(reserveData?.[AaveV2TypeGetReserveDataIndexes.totalVariableDebt]?.toString(), decimals);
28
28
  const liquidity = parseRawAmount(reserveData?.[AaveV2TypeGetReserveDataIndexes.availableLiquidity]?.toString(), decimals);
29
29
  const totalAToken = Number(liquidity) + Number(totalStableDebt) + Number(totalVariableDebt);
30
- const oracleKey = toOracleKey(assetMeta?.symbol) ?? toGenericPriceKey(asset, chainId);
30
+ const oracleKey = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(asset, chainId);
31
31
  const price = prices[oracleKey] ?? 1;
32
32
  const totalDepositsUSD = totalAToken * price;
33
33
  const totalDebtUSD = Number(totalVariableDebt) * price;
@@ -116,7 +116,7 @@ export const getAaveV2ReservesDataConverter = (lender, chainId, prices, addition
116
116
  const totalVariableDebt = parseRawAmount(reserveData?.[AaveV2TypeGetReserveDataIndexes.totalVariableDebt]?.toString(), decimals);
117
117
  const liquidity = parseRawAmount(reserveData?.[AaveV2TypeGetReserveDataIndexes.availableLiquidity]?.toString(), decimals);
118
118
  const totalAToken = Number(liquidity) + Number(totalStableDebt) + Number(totalVariableDebt);
119
- const oracleKey = toOracleKey(assetMeta?.symbol) ?? toGenericPriceKey(asset, chainId);
119
+ const oracleKey = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(asset, chainId);
120
120
  const price = prices?.[oracleKey] ?? 1;
121
121
  const totalDepositsUSD = totalAToken * price;
122
122
  const totalDebtUSD = Number(totalVariableDebt) * price;
@@ -193,7 +193,7 @@ export const getAaveV2ReservesDataConverter = (lender, chainId, prices, addition
193
193
  const totalVariableDebt = parseRawAmount(reserveData?.[AaveV2TypeGetReserveDataIndexes.totalVariableDebt]?.toString(), decimals);
194
194
  const liquidity = Number(parseRawAmount(reserveData?.[AaveV2TypeGetReserveDataIndexes.availableLiquidity]?.toString(), decimals));
195
195
  const totalAToken = liquidity + Number(totalStableDebt) + Number(totalVariableDebt);
196
- const oracleKey = toOracleKey(assetMeta?.symbol) ?? toGenericPriceKey(asset, chainId);
196
+ const oracleKey = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(asset, chainId);
197
197
  const price = prices[oracleKey] ?? 1;
198
198
  const totalDepositsUSD = Number(totalAToken) * price;
199
199
  const totalDebtUSD = Number(totalVariableDebt) * price;
@@ -1,4 +1,4 @@
1
- import { Lender } from '@1delta/asset-registry';
1
+ import { Lender } from "@1delta/asset-registry";
2
2
  export declare function getCompoundV3CometAddress(chainId: string, lender?: Lender): string | undefined;
3
3
  export declare function getCompoundV3CometRewardsAddress(chainId: string): any;
4
4
  export declare function getCompoundV3CometIRGetterAddress(chainId: string): any;
@@ -1 +1 @@
1
- {"version":3,"file":"compoundV3.d.ts","sourceRoot":"","sources":["../../../src/lending/addresses/compoundV3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqD,MAAM,EAAwB,MAAM,wBAAwB,CAAA;AAExH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,SAA2B,GAAG,MAAM,GAAG,SAAS,CAEhH;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,MAAM,OAG/D;AAED,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,MAAM,OAGhE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,OAGrD;AAmBD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM;;;EAE9E"}
1
+ {"version":3,"file":"compoundV3.d.ts","sourceRoot":"","sources":["../../../src/lending/addresses/compoundV3.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,MAAM,EAEP,MAAM,wBAAwB,CAAC;AAEhC,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,MAAM,SAA2B,GAChC,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,MAAM,OAG/D;AAED,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,MAAM,OAGhE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,OAGrD;AAmBD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,OAAO,EAAE,MAAM;;;EAMhB"}
@@ -1,4 +1,4 @@
1
- import { Chain, COMETS_PER_CHAIN_MAP, COMPOUND_BASE_TOKENS, Lender, SWAYLEND_BASE_TOKENS } from '@1delta/asset-registry';
1
+ import { Chain, COMETS_PER_CHAIN_MAP, COMPOUND_BASE_TOKENS, Lender, SWAYLEND_BASE_TOKENS, } from "@1delta/asset-registry";
2
2
  export function getCompoundV3CometAddress(chainId, lender = Lender.COMPOUND_V3_USDCE) {
3
3
  return COMETS_PER_CHAIN_MAP[chainId]?.[lender];
4
4
  }
@@ -16,20 +16,21 @@ export function getCompoundV3CometLens(chainId) {
16
16
  }
17
17
  const addressesCompoundV3 = {
18
18
  lens: {
19
- [Chain.POLYGON_MAINNET]: '0x4eDA401658c5286d16c4d342884F32280B4E8b1b',
20
- [Chain.MANTLE]: '0x32B31A066c8dd3F7b77283Ba1d89Ddaf6DA0a8aE',
21
- [Chain.ARBITRUM_ONE]: '0x13D9c35f4901491Ac4FFebd3100238BBfFBD7181',
19
+ [Chain.POLYGON_MAINNET]: "0x4eDA401658c5286d16c4d342884F32280B4E8b1b",
20
+ [Chain.MANTLE]: "0x32B31A066c8dd3F7b77283Ba1d89Ddaf6DA0a8aE",
21
+ [Chain.ARBITRUM_ONE]: "0x13D9c35f4901491Ac4FFebd3100238BBfFBD7181",
22
22
  [Chain.BASE]: "0x7e2D250E4FD0EeD6BD2cB3DC525A2b9f12508152",
23
23
  [Chain.OP_MAINNET]: "0xA453ba397c61B0c292EA3959A858821145B2707F",
24
24
  },
25
25
  cometRewards: {
26
26
  [Chain.POLYGON_MAINNET]: "0x45939657d1CA34A8FA39A924B71D28Fe8431e581",
27
27
  [Chain.MANTLE]: "0xCd83CbBFCE149d141A5171C3D6a0F0fCCeE225Ab",
28
- [Chain.ARBITRUM_ONE]: '0x88730d254A2f7e6AC8388c3198aFd694bA9f7fae',
28
+ [Chain.ARBITRUM_ONE]: "0x88730d254A2f7e6AC8388c3198aFd694bA9f7fae",
29
29
  [Chain.BASE]: "0x123964802e6ABabBE1Bc9547D72Ef1B69B00A6b1",
30
30
  [Chain.OP_MAINNET]: "0x443EA0340cb75a160F31A440722dec7b5bc3C2E9",
31
- }
31
+ },
32
32
  };
33
33
  export function getCompoundV3BaseAsset(lender, chainId) {
34
- return COMPOUND_BASE_TOKENS[lender]?.[chainId] ?? SWAYLEND_BASE_TOKENS[lender]?.[chainId];
34
+ return (COMPOUND_BASE_TOKENS[lender]?.[chainId] ??
35
+ SWAYLEND_BASE_TOKENS[lender]?.[chainId]);
35
36
  }
@@ -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,wBAAwB,CAAA;AAuC/C,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,EAAE,SAAS,MAAM,KAAG,IAAI,EAqG1F,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,wBAAwB,CAAA;AAmB/C,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,EAAE,SAAS,MAAM,KAAG,IAAI,EAiG1F,CAAA"}
@@ -1,31 +1,13 @@
1
1
  import { Lender } from "@1delta/asset-registry";
2
2
  import { getAaveAssets, getAaveStyleProtocolTokenMap, getAaveTypePoolDataProviderAddress } from "../../../assets";
3
3
  import { getAaveTypeIncentivesControllerAddress, getAaveTypeMultiFeeDistribution } from "../../addresses";
4
- import { getComposerAddress } from "../../../utils";
5
- const fallbackDebtToken = '0x52A1CeB68Ee6b7B5D13E0376A1E0E4423A8cE26e';
6
- const getBaseAaveV2Calls = (chainId, account, lender, assetsToQuery, aaveTokenMap) => {
7
- const broker = getComposerAddress(chainId);
4
+ const getBaseAaveV2Calls = (chainId, account, lender, assetsToQuery) => {
8
5
  return assetsToQuery.flatMap((tk) => [
9
6
  {
10
7
  address: getAaveTypePoolDataProviderAddress(chainId, lender),
11
8
  name: 'getUserReserveData',
12
9
  params: [tk, account],
13
10
  },
14
- {
15
- address: aaveTokenMap[tk].aToken,
16
- name: 'allowance',
17
- params: [account, broker],
18
- },
19
- {
20
- address: aaveTokenMap[tk].vToken ?? fallbackDebtToken,
21
- name: 'borrowAllowance',
22
- params: [account, broker],
23
- },
24
- {
25
- address: aaveTokenMap[tk].sToken ?? fallbackDebtToken,
26
- name: 'borrowAllowance',
27
- params: [account, broker],
28
- },
29
11
  ]);
30
12
  };
31
13
  export const buildAaveV2UserCall = (chainId, lender, account) => {
@@ -37,7 +19,7 @@ export const buildAaveV2UserCall = (chainId, lender, account) => {
37
19
  const aTokens = Object.values(aaveTokenMap).map((a) => a.aToken);
38
20
  const vTokens = Object.values(aaveTokenMap).map((a) => a.vToken);
39
21
  return [
40
- ...getBaseAaveV2Calls(chainId, account, lender, assetsToQuery, aaveTokenMap),
22
+ ...getBaseAaveV2Calls(chainId, account, lender, assetsToQuery),
41
23
  {
42
24
  address: rewarder,
43
25
  name: 'getAllUserRewardsBalance',
@@ -92,15 +74,14 @@ export const buildAaveV2UserCall = (chainId, lender, account) => {
92
74
  };
93
75
  }
94
76
  return [
95
- ...getBaseAaveV2Calls(chainId, account, lender, assetsToQuery, aaveTokenMap),
77
+ ...getBaseAaveV2Calls(chainId, account, lender, assetsToQuery),
96
78
  rewardsBalance,
97
79
  unclaimedRewards
98
80
  ];
99
81
  }
100
82
  default: {
101
83
  const assetsToQuery = getAaveAssets(chainId, lender);
102
- const aaveTokenMap = getAaveStyleProtocolTokenMap(chainId, lender);
103
- return getBaseAaveV2Calls(chainId, account, lender, assetsToQuery, aaveTokenMap);
84
+ return getBaseAaveV2Calls(chainId, account, lender, assetsToQuery);
104
85
  }
105
86
  }
106
87
  };
@@ -1 +1 @@
1
- {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v2-type/userCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EAAgC,yBAAyB,EAAmB,MAAM,UAAU,CAAA;AAQnG,eAAO,MAAM,0BAA0B,GACrC,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,yBAAyB,GAAG,SAAS,EAAE,MAAM,CAqQjE,CAAA"}
1
+ {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v2-type/userCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EAAgC,yBAAyB,EAAmB,MAAM,UAAU,CAAA;AAQnG,eAAO,MAAM,0BAA0B,GACrC,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,yBAAyB,GAAG,SAAS,EAAE,MAAM,CA0QjE,CAAA"}
@@ -10,7 +10,7 @@ export const getAaveV2UserDataConverter = (lender, chainId, account, prices, pri
10
10
  switch (lender) {
11
11
  case Lender.AURELIUS: {
12
12
  const assetsToQuery = getAaveAssets(chainId, lender);
13
- const expectedNumberOfCalls = assetsToQuery.length * 4 + 1;
13
+ const expectedNumberOfCalls = assetsToQuery.length + 1;
14
14
  return [
15
15
  (data) => {
16
16
  if (data.length !== expectedNumberOfCalls) {
@@ -22,11 +22,13 @@ export const getAaveV2UserDataConverter = (lender, chainId, account, prices, pri
22
22
  for (let i = 0; i < assetsToQuery.length; i++) {
23
23
  const asset = assetsToQuery[i];
24
24
  const { dataForAsset, addedDebt, addedDeposits } = createAaveV2Entry(i, data, chainId, asset, prices, pricesHist, 0);
25
+ if (!dataForAsset)
26
+ continue;
25
27
  totalDebt24h += addedDebt;
26
28
  totalDeposits24h += addedDeposits;
27
29
  lendingPositions[asset] = dataForAsset;
28
30
  }
29
- const startIndex = assetsToQuery.length * 4;
31
+ const startIndex = assetsToQuery.length;
30
32
  const rewardMapping = Object.fromEntries(data[startIndex][0].map((key, index) => [key.toLowerCase(), data[startIndex][1][index]]));
31
33
  const rewards = {};
32
34
  for (let i = 0; i < AURELIUS_REWARD_ASSETS.length; i++) {
@@ -54,7 +56,7 @@ export const getAaveV2UserDataConverter = (lender, chainId, account, prices, pri
54
56
  }
55
57
  case Lender.LENDLE: {
56
58
  const assetsToQuery = getAaveAssets(chainId, lender);
57
- const expectedNumberOfCalls = assetsToQuery.length * 4 + 2;
59
+ const expectedNumberOfCalls = assetsToQuery.length + 2;
58
60
  return [
59
61
  (data) => {
60
62
  if (data.length !== expectedNumberOfCalls) {
@@ -77,6 +79,8 @@ export const getAaveV2UserDataConverter = (lender, chainId, account, prices, pri
77
79
  const asset = assetsToQuery[i];
78
80
  totalClaimableLend += mappedClaimableRewardsToTokens[i][asset];
79
81
  const { dataForAsset, addedDebt, addedDeposits } = createAaveV2Entry(i, data, chainId, asset, prices, pricesHist, mappedClaimableRewardsToTokens[i][asset]);
82
+ if (!dataForAsset)
83
+ continue;
80
84
  totalDebt24h += addedDebt;
81
85
  totalDeposits24h += addedDeposits;
82
86
  lendingPositions[asset] = dataForAsset;
@@ -102,7 +106,7 @@ export const getAaveV2UserDataConverter = (lender, chainId, account, prices, pri
102
106
  }
103
107
  case Lender.MERIDIAN: {
104
108
  const assetsToQuery = getLenderAssets(chainId, lender);
105
- const expectedNumberOfCalls = assetsToQuery.length * 4 + 2;
109
+ const expectedNumberOfCalls = assetsToQuery.length + 2;
106
110
  return [
107
111
  (data) => {
108
112
  if (data.length !== expectedNumberOfCalls) {
@@ -128,6 +132,8 @@ export const getAaveV2UserDataConverter = (lender, chainId, account, prices, pri
128
132
  const assetClaimableRewards = mappedClaimableRewardsToTokens[i][asset];
129
133
  totalClaimableRewards += assetClaimableRewards;
130
134
  const { dataForAsset, addedDebt, addedDeposits } = createAaveV2Entry(i, data, chainId, asset, prices, pricesHist, assetClaimableRewards);
135
+ if (!dataForAsset)
136
+ continue;
131
137
  totalDebt24h += addedDebt;
132
138
  totalDeposits24h += addedDeposits;
133
139
  lendingPositions[asset] = dataForAsset;
@@ -154,7 +160,7 @@ export const getAaveV2UserDataConverter = (lender, chainId, account, prices, pri
154
160
  }
155
161
  default: {
156
162
  const assetsToQuery = getLenderAssets(chainId, lender);
157
- const expectedNumberOfCalls = assetsToQuery.length * 4;
163
+ const expectedNumberOfCalls = assetsToQuery.length;
158
164
  return [
159
165
  (data) => {
160
166
  if (data.length !== expectedNumberOfCalls) {
@@ -166,6 +172,8 @@ export const getAaveV2UserDataConverter = (lender, chainId, account, prices, pri
166
172
  for (let i = 0; i < assetsToQuery.length; i++) {
167
173
  const asset = assetsToQuery[i];
168
174
  const { dataForAsset, addedDebt, addedDeposits } = createAaveV2Entry(i, data, chainId, asset, prices, pricesHist, 0);
175
+ if (!dataForAsset)
176
+ continue;
169
177
  totalDebt24h += addedDebt;
170
178
  totalDeposits24h += addedDeposits;
171
179
  lendingPositions[asset] = dataForAsset;
@@ -188,10 +196,19 @@ export const getAaveV2UserDataConverter = (lender, chainId, account, prices, pri
188
196
  }
189
197
  };
190
198
  function createAaveV2Entry(i, data, chainId, asset, prices, pricesHist, claimableRewards) {
191
- const reserveData = data[i * 4];
199
+ const reserveData = data[i];
192
200
  const currentATokenBalanceRaw = reserveData[AaveV2TypeGetUserReserveData.currentATokenBalance]?.toString();
193
201
  const currentStableDebtRaw = reserveData[AaveV2TypeGetUserReserveData.currentStableDebt]?.toString();
194
202
  const currentVariableDebtRaw = reserveData[AaveV2TypeGetUserReserveData.currentVariableDebt]?.toString();
203
+ if (currentATokenBalanceRaw === "0" &&
204
+ currentStableDebtRaw === "0" &&
205
+ currentVariableDebtRaw === "0") {
206
+ return {
207
+ dataForAsset: undefined,
208
+ addedDeposits: 0,
209
+ addedDebt: 0
210
+ };
211
+ }
195
212
  const assetMeta = getAssetMeta(chainId, asset);
196
213
  const decimals = assetMeta?.decimals ?? 18;
197
214
  const currentATokenBalance = parseRawAmount(currentATokenBalanceRaw, decimals);
@@ -213,10 +230,6 @@ function createAaveV2Entry(i, data, chainId, asset, prices, pricesHist, claimabl
213
230
  stableBorrowRate: reserveData[AaveV2TypeGetUserReserveData.stableBorrowRate]?.toString(),
214
231
  collateralActive: Boolean(reserveData[AaveV2TypeGetUserReserveData.usageAsCollateralEnabled]),
215
232
  claimableRewards,
216
- // allowances
217
- allowanceWithdrawal: data[i * 4 + 1]?.toString(),
218
- allowanceBorrowingVariable: data[i * 4 + 2]?.toString(),
219
- allowanceBorrowingStable: data[i * 4 + 3]?.toString(),
220
233
  };
221
234
  return {
222
235
  dataForAsset,
@@ -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,wBAAwB,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAsC/C,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,EAAE,SAAS,MAAM,KAAG,IAAI,EAuB1F,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,wBAAwB,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAuB/C,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,EAAE,SAAS,MAAM,KAAG,IAAI,EAuB1F,CAAA"}
@@ -8,22 +8,7 @@ const getBaseAaveV3Calls = (chainId, account, lender, assetsToQuery, aaveTokenMa
8
8
  address: getAaveTypePoolDataProviderAddress(chainId, lender),
9
9
  name: 'getUserReserveData',
10
10
  params: [tk, account],
11
- },
12
- {
13
- address: aaveTokenMap[tk].aToken,
14
- name: 'allowance',
15
- params: [account, broker],
16
- },
17
- {
18
- address: aaveTokenMap[tk].vToken ?? fallbackDebtToken,
19
- name: 'borrowAllowance',
20
- params: [account, broker],
21
- },
22
- {
23
- address: aaveTokenMap[tk].sToken ?? fallbackDebtToken,
24
- name: 'borrowAllowance',
25
- params: [account, broker],
26
- },
11
+ }
27
12
  ]);
28
13
  };
29
14
  export const buildAaveV3UserCall = (chainId, lender, account) => {
@@ -1 +1 @@
1
- {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v3-type/userCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAKpD,eAAO,MAAM,0BAA0B,GACrC,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,yBAAyB,GAAG,SAAS,EAAE,MAAM,CAiDjE,CAAA"}
1
+ {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v3-type/userCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAKpD,eAAO,MAAM,0BAA0B,GACrC,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,yBAAyB,GAAG,SAAS,EAAE,MAAM,CAmDjE,CAAA"}
@@ -4,7 +4,7 @@ import { AaveTypeGetUserReserveIndexes } from "../../aave-v3-type/types";
4
4
  import { parseRawAmount } from "../../../utils/parsing";
5
5
  export const getAaveV3UserDataConverter = (lender, chainId, account, prices, pricesHist, lenderData) => {
6
6
  const assetsToQuery = getAaveAssets(chainId, lender);
7
- const expectedNumberOfCalls = assetsToQuery.length * 4 + 1;
7
+ const expectedNumberOfCalls = assetsToQuery.length + 1;
8
8
  return [
9
9
  (data) => {
10
10
  if (data.length !== expectedNumberOfCalls) {
@@ -17,6 +17,8 @@ export const getAaveV3UserDataConverter = (lender, chainId, account, prices, pri
17
17
  for (let i = 0; i < assetsToQuery.length; i++) {
18
18
  const asset = assetsToQuery[i];
19
19
  const { dataForAsset, addedDebt, addedDeposits } = createAaveV3Entry(i, data, chainId, asset, prices, pricesHist);
20
+ if (!dataForAsset)
21
+ continue;
20
22
  totalDebt24h += addedDebt;
21
23
  totalDeposits24h += addedDeposits;
22
24
  lendingPositions[asset] = dataForAsset;
@@ -38,10 +40,19 @@ export const getAaveV3UserDataConverter = (lender, chainId, account, prices, pri
38
40
  ];
39
41
  };
40
42
  function createAaveV3Entry(i, data, chainId, asset, prices, pricesHist) {
41
- const reserveData = data[i * 4];
43
+ const reserveData = data[i];
42
44
  const currentATokenBalanceRaw = reserveData[AaveTypeGetUserReserveIndexes.currentATokenBalance]?.toString();
43
45
  const currentStableDebtRaw = reserveData[AaveTypeGetUserReserveIndexes.currentStableDebt]?.toString();
44
46
  const currentVariableDebtRaw = reserveData[AaveTypeGetUserReserveIndexes.currentVariableDebt]?.toString();
47
+ if (currentATokenBalanceRaw === "0" &&
48
+ currentStableDebtRaw === "0" &&
49
+ currentVariableDebtRaw === "0") {
50
+ return {
51
+ dataForAsset: undefined,
52
+ addedDeposits: 0,
53
+ addedDebt: 0
54
+ };
55
+ }
45
56
  const assetMeta = getAssetMeta(chainId, asset);
46
57
  const decimals = assetMeta?.decimals ?? 18;
47
58
  const currentATokenBalance = parseRawAmount(currentATokenBalanceRaw, decimals);
@@ -64,10 +75,6 @@ function createAaveV3Entry(i, data, chainId, asset, prices, pricesHist) {
64
75
  stableBorrowRate: reserveData[AaveTypeGetUserReserveIndexes.stableBorrowRate]?.toString() ?? "0",
65
76
  collateralActive: Boolean(reserveData[AaveTypeGetUserReserveIndexes.usageAsCollateralEnabled]),
66
77
  claimableRewards: 0,
67
- // allowances
68
- allowanceWithdrawal: data[i * 4 + 1]?.toString(),
69
- allowanceBorrowingVariable: data[i * 4 + 2]?.toString(),
70
- allowanceBorrowingStable: data[i * 4 + 3]?.toString(),
71
78
  };
72
79
  return {
73
80
  dataForAsset,
@@ -1 +1 @@
1
- {"version":3,"file":"userCallParseYldr.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v3-type/userCallParseYldr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAKpD,sDAAsD;AACtD,eAAO,MAAM,wBAAwB,GACnC,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,yBAAyB,GAAG,SAAS,EAAE,MAAM,CAiDjE,CAAA"}
1
+ {"version":3,"file":"userCallParseYldr.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v3-type/userCallParseYldr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAKpD,sDAAsD;AACtD,eAAO,MAAM,wBAAwB,GACnC,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,yBAAyB,GAAG,SAAS,EAAE,MAAM,CAkDjE,CAAA"}
@@ -5,7 +5,7 @@ import { parseRawAmount } from "../../../utils/parsing";
5
5
  /** Like Aave V3, not stable debt data and no emode */
6
6
  export const getYldrUserDataConverter = (lender, chainId, account, prices, pricesHist, lenderData) => {
7
7
  const assetsToQuery = getAaveAssets(chainId, lender);
8
- const expectedNumberOfCalls = assetsToQuery.length * 4;
8
+ const expectedNumberOfCalls = assetsToQuery.length;
9
9
  return [
10
10
  (data) => {
11
11
  if (data.length !== expectedNumberOfCalls) {
@@ -17,6 +17,8 @@ export const getYldrUserDataConverter = (lender, chainId, account, prices, price
17
17
  for (let i = 0; i < assetsToQuery.length; i++) {
18
18
  const asset = assetsToQuery[i];
19
19
  const { dataForAsset, addedDebt, addedDeposits } = createAaveV3Entry(i, data, chainId, asset, prices, pricesHist);
20
+ if (!dataForAsset)
21
+ continue;
20
22
  totalDebt24h += addedDebt;
21
23
  totalDeposits24h += addedDeposits;
22
24
  lendingPositions[asset] = dataForAsset;
@@ -38,9 +40,17 @@ export const getYldrUserDataConverter = (lender, chainId, account, prices, price
38
40
  ];
39
41
  };
40
42
  function createAaveV3Entry(i, data, chainId, asset, prices, pricesHist) {
41
- const reserveData = data[i * 4];
43
+ const reserveData = data[i];
42
44
  const currentATokenBalanceRaw = reserveData[YldrTypeGetUserReserveIndexes.currentYTokenBalance]?.toString();
43
45
  const currentVariableDebtRaw = reserveData[YldrTypeGetUserReserveIndexes.currentVariableDebt]?.toString();
46
+ if (currentATokenBalanceRaw === "0" &&
47
+ currentVariableDebtRaw === "0") {
48
+ return {
49
+ dataForAsset: undefined,
50
+ addedDeposits: 0,
51
+ addedDebt: 0
52
+ };
53
+ }
44
54
  const assetMeta = getAssetMeta(chainId, asset);
45
55
  const decimals = assetMeta?.decimals ?? 18;
46
56
  const currentATokenBalance = parseRawAmount(currentATokenBalanceRaw, decimals);
@@ -62,10 +72,6 @@ function createAaveV3Entry(i, data, chainId, asset, prices, pricesHist) {
62
72
  stableBorrowRate: 0,
63
73
  collateralActive: Boolean(reserveData[YldrTypeGetUserReserveIndexes.usageAsCollateralEnabled]),
64
74
  claimableRewards: 0,
65
- // allowances
66
- allowanceWithdrawal: data[i * 4 + 1]?.toString(),
67
- allowanceBorrowingVariable: "0",
68
- allowanceBorrowingStable: data[i * 4 + 3]?.toString(),
69
75
  };
70
76
  return {
71
77
  dataForAsset,
@@ -1 +1 @@
1
- {"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/compound-v3/addresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqD,MAAM,EAAwB,MAAM,wBAAwB,CAAA;AAExH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,SAA2B,GAAG,MAAM,GAAG,SAAS,CAE9G;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,MAAM,UAE/D;AAED,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,MAAM,UAEhE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,UAErD;AAmBD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM;;;EAE9E"}
1
+ {"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/compound-v3/addresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,MAAM,EAEP,MAAM,wBAAwB,CAAC;AAEhC,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,MAAM,SAA2B,GAChC,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,MAAM,UAI/D;AAED,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,MAAM,UAIhE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,UAIrD;AAmBD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,OAAO,EAAE,MAAM;;;EAMhB"}