@1delta/margin-fetcher 0.0.10 → 0.0.13

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 (89) hide show
  1. package/dist/lending/aave-v2-type/types.d.ts +2 -0
  2. package/dist/lending/aave-v2-type/types.d.ts.map +1 -1
  3. package/dist/lending/compound-v3/publicCallParse.d.ts +4 -4
  4. package/dist/lending/compound-v3/publicCallParse.d.ts.map +1 -1
  5. package/dist/lending/compound-v3/publicCallParse.js +37 -22
  6. package/dist/lending/fetchLender.d.ts.map +1 -1
  7. package/dist/lending/fetchLender.js +25 -29
  8. package/dist/lending/fetchLenderAll.d.ts +2 -1
  9. package/dist/lending/fetchLenderAll.d.ts.map +1 -1
  10. package/dist/lending/fetchLenderAll.js +3 -3
  11. package/dist/lending/fetchLenderExt.d.ts +2 -1
  12. package/dist/lending/fetchLenderExt.d.ts.map +1 -1
  13. package/dist/lending/fetchLenderExt.js +28 -14
  14. package/dist/lending/index.d.ts +2 -0
  15. package/dist/lending/index.d.ts.map +1 -1
  16. package/dist/lending/index.js +2 -0
  17. package/dist/lending/morpho/convertPublic.d.ts +3 -5
  18. package/dist/lending/morpho/convertPublic.d.ts.map +1 -1
  19. package/dist/lending/morpho/convertPublic.js +16 -12
  20. package/dist/lending/morpho/fetchPublic.js +1 -1
  21. package/dist/lending/morpho/publicCallBuild.d.ts +1 -4
  22. package/dist/lending/morpho/publicCallBuild.d.ts.map +1 -1
  23. package/dist/lending/morpho/types.d.ts +2 -0
  24. package/dist/lending/morpho/types.d.ts.map +1 -1
  25. package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts.map +1 -1
  26. package/dist/lending/user-data/aave-v3-type/userCallBuild.js +4 -7
  27. package/dist/lending/user-data/abis.d.ts +88 -0
  28. package/dist/lending/user-data/abis.d.ts.map +1 -1
  29. package/dist/lending/user-data/abis.js +5 -1
  30. package/dist/lending/user-data/compound-v3/userCallParse.d.ts.map +1 -1
  31. package/dist/lending/user-data/compound-v3/userCallParse.js +3 -2
  32. package/dist/lending/user-data/fetchUserData.d.ts +4 -4
  33. package/dist/lending/user-data/fetchUserData.d.ts.map +1 -1
  34. package/dist/lending/user-data/fetchUserData.js +46 -25
  35. package/dist/lending/user-data/init/userCallParse.js +1 -1
  36. package/dist/lending/user-data/morpho/userCallBuild.d.ts +4 -5
  37. package/dist/lending/user-data/morpho/userCallBuild.d.ts.map +1 -1
  38. package/dist/lending/user-data/morpho/userCallBuild.js +15 -9
  39. package/dist/lending/user-data/morpho/userCallParse.d.ts +1 -2
  40. package/dist/lending/user-data/morpho/userCallParse.d.ts.map +1 -1
  41. package/dist/lending/user-data/morpho/userCallParse.js +15 -12
  42. package/dist/lending/user-data/types.d.ts +30 -19
  43. package/dist/lending/user-data/types.d.ts.map +1 -1
  44. package/dist/lending/user-data/types.js +12 -0
  45. package/dist/lending/user-data/utils/createGeneralUserState.d.ts +4 -4
  46. package/dist/lending/user-data/utils/createGeneralUserState.d.ts.map +1 -1
  47. package/dist/lending/user-data/utils/createGeneralUserState.js +24 -17
  48. package/dist/utils/index.d.ts +5 -3
  49. package/dist/utils/index.d.ts.map +1 -1
  50. package/dist/utils/index.js +20 -11
  51. package/dist/utils/parsing.d.ts +1 -0
  52. package/dist/utils/parsing.d.ts.map +1 -1
  53. package/dist/utils/parsing.js +3 -0
  54. package/dist/yields/index.d.ts.map +1 -1
  55. package/dist/yields/index.js +12 -5
  56. package/package.json +1 -1
  57. package/src/abis/morpho/blue.ts +99 -0
  58. package/src/abis/morpho/lens.ts +31 -0
  59. package/src/lending/aave-v2-type/types.ts +2 -0
  60. package/src/lending/compound-v3/publicCallParse.ts +93 -37
  61. package/src/lending/fetchLender.ts +86 -49
  62. package/src/lending/fetchLenderAll.ts +30 -0
  63. package/src/lending/fetchLenderExt.ts +82 -0
  64. package/src/lending/index.ts +3 -1
  65. package/src/lending/morpho/convertPublic.ts +153 -0
  66. package/src/lending/morpho/fetchPublic.ts +80 -0
  67. package/src/lending/morpho/publicCallBuild.ts +11 -0
  68. package/src/lending/morpho/types.ts +129 -0
  69. package/src/lending/user-data/aave-v3-type/userCallBuild.ts +2 -8
  70. package/src/lending/user-data/abis.ts +4 -1
  71. package/src/lending/user-data/compound-v3/userCallParse.ts +3 -2
  72. package/src/lending/user-data/fetchUserData.ts +114 -33
  73. package/src/lending/user-data/init/userCallParse.ts +1 -1
  74. package/src/lending/user-data/morpho/decoder.ts +71 -0
  75. package/src/lending/user-data/morpho/morphoLib.ts +61 -0
  76. package/src/lending/user-data/morpho/types.ts +12 -0
  77. package/src/lending/user-data/morpho/userCallBuild.ts +63 -0
  78. package/src/lending/user-data/morpho/userCallParse.ts +150 -0
  79. package/src/lending/user-data/morpho/userCallParseNoDeploy.ts +168 -0
  80. package/src/lending/user-data/types.ts +64 -42
  81. package/src/lending/user-data/utils/createGeneralUserState.ts +56 -32
  82. package/src/utils/index.ts +32 -14
  83. package/src/utils/parsing.ts +5 -0
  84. package/src/yields/index.ts +13 -4
  85. package/test/lenderData.test.ts +13251 -13649
  86. package/test/mainPrices.test.ts +1 -13
  87. package/test/morpho.test.ts +20 -0
  88. package/test/userDataMorpho.test.ts +79 -0
  89. package/test/utils.ts +13 -0
@@ -1,4 +1,5 @@
1
1
  import { RewardsMap } from "../aave-v3-type/types";
2
+ import { GenericCurrency } from "../types";
2
3
  export declare enum AaveV2TypeGetReserveDataIndexes {
3
4
  availableLiquidity = 0,
4
5
  totalStableDebt = 1,
@@ -44,6 +45,7 @@ export declare enum AaveV2TypeIncentivesControllerPoolInfoIndexes {
44
45
  export interface AaveV2GeneralPublicResponse {
45
46
  data: {
46
47
  [tokenSymbol: string]: {
48
+ asset: GenericCurrency;
47
49
  totalDeposits: number;
48
50
  totalDebtStable: number;
49
51
  totalDebt: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lending/aave-v2-type/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,oBAAY,+BAA+B;IACzC,kBAAkB,IAAI;IACtB,eAAe,IAAA;IACf,iBAAiB,IAAA;IACjB,aAAa,IAAA;IACb,kBAAkB,IAAA;IAClB,gBAAgB,IAAA;IAChB,uBAAuB,IAAA;IACvB,cAAc,IAAA;IACd,mBAAmB,IAAA;IACnB,mBAAmB,IAAA;CACpB;AAED,oBAAY,qCAAqC;IAC/C,QAAQ,IAAI;IACZ,GAAG,IAAA;IACH,oBAAoB,IAAA;IACpB,gBAAgB,IAAA;IAChB,aAAa,IAAA;IACb,wBAAwB,IAAA;IACxB,gBAAgB,IAAA;IAChB,uBAAuB,IAAA;IACvB,QAAQ,IAAA;IACR,QAAQ,IAAA;CACT;AAED,oBAAY,4BAA4B;IACtC,oBAAoB,IAAI;IACxB,iBAAiB,IAAA;IACjB,mBAAmB,IAAA;IACnB,mBAAmB,IAAA;IACnB,kBAAkB,IAAA;IAClB,gBAAgB,IAAA;IAChB,aAAa,IAAA;IACb,qBAAqB,IAAA;IACrB,wBAAwB,IAAA;CACzB;AAGD,oBAAY,6CAA6C;IACvD,WAAW,IAAI;IACf,UAAU,IAAA;IACV,cAAc,IAAA;IACd,iBAAiB,IAAA;IACjB,gBAAgB,IAAA;CACjB;AAID,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE;QACJ,CAAC,WAAW,EAAE,MAAM,GAAG;YAErB,aAAa,EAAE,MAAM,CAAC;YACtB,eAAe,EAAE,MAAM,CAAC;YACxB,SAAS,EAAE,MAAM,CAAC;YAElB,gBAAgB,EAAE,MAAM,CAAC;YACzB,kBAAkB,EAAE,MAAM,CAAC;YAC3B,YAAY,EAAE,MAAM,CAAC;YAGrB,WAAW,EAAE,MAAM,CAAA;YACnB,kBAAkB,EAAE,MAAM,CAAA;YAC1B,gBAAgB,EAAE,MAAM,CAAA;YACxB,mBAAmB,CAAC,EAAE,MAAM,CAAA;YAC5B,YAAY,EAAE,MAAM,CAAA;YAGpB,OAAO,CAAC,EAAE,UAAU,CAAA;YAGpB,QAAQ,CAAC,EAAE,MAAM,CAAA;YACjB,wBAAwB,CAAC,EAAE,OAAO,CAAA;YAElC,MAAM,EAAE;gBACN,CAAC,CAAC,CAAC,EAAE;oBACH,QAAQ,EAAE,CAAC,CAAC;oBAEZ,sBAAsB,EAAE,MAAM,CAAC;oBAC/B,gBAAgB,EAAE,MAAM,CAAC;oBACzB,YAAY,EAAE,MAAM,CAAA;iBACrB,CAAA;aACF,CAAA;YAGD,gBAAgB,EAAE,OAAO,CAAC;YAC1B,gBAAgB,EAAE,OAAO,CAAC;YAC1B,SAAS,EAAE,OAAO,CAAC;YACnB,QAAQ,EAAE,OAAO,CAAC;YAClB,QAAQ,EAAE,OAAO,CAAC;SACnB,CAAA;KACF,CAAA;IACD,OAAO,EAAE,MAAM,CAAA;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lending/aave-v2-type/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,oBAAY,+BAA+B;IACzC,kBAAkB,IAAI;IACtB,eAAe,IAAA;IACf,iBAAiB,IAAA;IACjB,aAAa,IAAA;IACb,kBAAkB,IAAA;IAClB,gBAAgB,IAAA;IAChB,uBAAuB,IAAA;IACvB,cAAc,IAAA;IACd,mBAAmB,IAAA;IACnB,mBAAmB,IAAA;CACpB;AAED,oBAAY,qCAAqC;IAC/C,QAAQ,IAAI;IACZ,GAAG,IAAA;IACH,oBAAoB,IAAA;IACpB,gBAAgB,IAAA;IAChB,aAAa,IAAA;IACb,wBAAwB,IAAA;IACxB,gBAAgB,IAAA;IAChB,uBAAuB,IAAA;IACvB,QAAQ,IAAA;IACR,QAAQ,IAAA;CACT;AAED,oBAAY,4BAA4B;IACtC,oBAAoB,IAAI;IACxB,iBAAiB,IAAA;IACjB,mBAAmB,IAAA;IACnB,mBAAmB,IAAA;IACnB,kBAAkB,IAAA;IAClB,gBAAgB,IAAA;IAChB,aAAa,IAAA;IACb,qBAAqB,IAAA;IACrB,wBAAwB,IAAA;CACzB;AAGD,oBAAY,6CAA6C;IACvD,WAAW,IAAI;IACf,UAAU,IAAA;IACV,cAAc,IAAA;IACd,iBAAiB,IAAA;IACjB,gBAAgB,IAAA;CACjB;AAID,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE;QACJ,CAAC,WAAW,EAAE,MAAM,GAAG;YACrB,KAAK,EAAE,eAAe,CAAA;YAEtB,aAAa,EAAE,MAAM,CAAC;YACtB,eAAe,EAAE,MAAM,CAAC;YACxB,SAAS,EAAE,MAAM,CAAC;YAElB,gBAAgB,EAAE,MAAM,CAAC;YACzB,kBAAkB,EAAE,MAAM,CAAC;YAC3B,YAAY,EAAE,MAAM,CAAC;YAGrB,WAAW,EAAE,MAAM,CAAA;YACnB,kBAAkB,EAAE,MAAM,CAAA;YAC1B,gBAAgB,EAAE,MAAM,CAAA;YACxB,mBAAmB,CAAC,EAAE,MAAM,CAAA;YAC5B,YAAY,EAAE,MAAM,CAAA;YAGpB,OAAO,CAAC,EAAE,UAAU,CAAA;YAGpB,QAAQ,CAAC,EAAE,MAAM,CAAA;YACjB,wBAAwB,CAAC,EAAE,OAAO,CAAA;YAElC,MAAM,EAAE;gBACN,CAAC,CAAC,CAAC,EAAE;oBACH,QAAQ,EAAE,CAAC,CAAC;oBAEZ,sBAAsB,EAAE,MAAM,CAAC;oBAC/B,gBAAgB,EAAE,MAAM,CAAC;oBACzB,YAAY,EAAE,MAAM,CAAA;iBACrB,CAAA;aACF,CAAA;YAGD,gBAAgB,EAAE,OAAO,CAAC;YAC1B,gBAAgB,EAAE,OAAO,CAAC;YAC1B,SAAS,EAAE,OAAO,CAAC;YACnB,QAAQ,EAAE,OAAO,CAAC;YAClB,QAAQ,EAAE,OAAO,CAAC;SACnB,CAAA;KACF,CAAA;IACD,OAAO,EAAE,MAAM,CAAA;CAChB"}
@@ -1,7 +1,7 @@
1
- import { Lender } from "@1delta/asset-registry";
2
- import { AdditionalYields } from "../../types";
3
- import { CompoundV3GeneralPublicResponse } from "./types";
4
- import { GenericTokenList } from "../types";
1
+ import { Lender } from '@1delta/asset-registry';
2
+ import { AdditionalYields } from '../../types';
3
+ import { CompoundV3GeneralPublicResponse } from './types';
4
+ import { GenericTokenList } from '../types';
5
5
  export declare const getCompoundV3ReservesDataConverter: (lender: Lender, chainId: string, prices: {
6
6
  [asset: string]: number;
7
7
  }, additionalYields: AdditionalYields, tokenList?: GenericTokenList) => [(data: any[]) => CompoundV3GeneralPublicResponse | undefined, number];
@@ -1 +1 @@
1
- {"version":3,"file":"publicCallParse.d.ts","sourceRoot":"","sources":["../../../src/lending/compound-v3/publicCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAA4B,+BAA+B,EAAE,MAAM,SAAS,CAAA;AAInF,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAM3C,eAAO,MAAM,kCAAkC,GAC7C,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,YAAW,gBAAqB,KAC/B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,+BAA+B,GAAG,SAAS,EAAE,MAAM,CA8HvE,CAAA"}
1
+ {"version":3,"file":"publicCallParse.d.ts","sourceRoot":"","sources":["../../../src/lending/compound-v3/publicCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAEL,+BAA+B,EAChC,MAAM,SAAS,CAAA;AAUhB,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAM3C,eAAO,MAAM,kCAAkC,GAC7C,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,YAAW,gBAAqB,KAC/B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,+BAA+B,GAAG,SAAS,EAAE,MAAM,CA8KvE,CAAA"}
@@ -1,14 +1,14 @@
1
- import { CometInterestRateIndexes } from "./types";
2
- import { getAssetMeta, getCompoundV3Assets, LENDER_MODE_NO_MODE, toGenericPriceKey, toOracleKey } from "../../assets";
3
- import { getCompoundV3BaseAsset } from "../addresses/compoundV3";
4
- import { calculateRateForCompound, parseRawAmount } from "../../utils/parsing";
1
+ import { CometInterestRateIndexes, } from './types';
2
+ import { getAssetMeta, getCompoundV3Assets, LENDER_MODE_NO_MODE, toGenericPriceKey, toOracleKey, } from '../../assets';
3
+ import { getCompoundV3BaseAsset } from '../addresses/compoundV3';
4
+ import { calculateRateForCompound, parseRawAmount } from '../../utils/parsing';
5
5
  const COMET_RISK_DECIMALS = 18;
6
6
  const SECONDS_PER_DAY = 3600 * 24;
7
7
  const DAYS_IN_YEAR = 365;
8
8
  export const getCompoundV3ReservesDataConverter = (lender, chainId, prices, additionalYields, tokenList = {}) => {
9
9
  const assetsToQuery = getCompoundV3Assets(chainId, lender);
10
10
  const baseAssetData = getCompoundV3BaseAsset(lender, chainId);
11
- const tokensNoBase = assetsToQuery.filter(a => a !== baseAssetData.baseAsset);
11
+ const tokensNoBase = assetsToQuery.filter((a) => a !== baseAssetData.baseAsset);
12
12
  const baseLength = tokensNoBase.length * 2;
13
13
  const expectedNumberOfCalls = baseLength + 6;
14
14
  return [
@@ -21,10 +21,14 @@ export const getCompoundV3ReservesDataConverter = (lender, chainId, prices, addi
21
21
  const asset = tokensNoBase[i];
22
22
  const resultsAssetInfo = data[i * 2];
23
23
  const resultsTotals = data[i * 2 + 1];
24
- const assetMeta = tokenList[asset] ?? { ...getAssetMeta(chainId, asset), address: asset };
24
+ const assetMeta = tokenList[asset] ?? {
25
+ ...getAssetMeta(chainId, asset),
26
+ address: asset,
27
+ };
25
28
  const decimals = assetMeta?.decimals ?? 18;
26
29
  const totals = parseRawAmount(resultsTotals[0], decimals);
27
- const oracleKey = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(asset, chainId);
30
+ const oracleKey = toOracleKey(assetMeta?.assetGroup) ??
31
+ toGenericPriceKey(asset, chainId);
28
32
  result[asset] = {
29
33
  poolId: asset,
30
34
  underlying: asset,
@@ -35,8 +39,8 @@ export const getCompoundV3ReservesDataConverter = (lender, chainId, prices, addi
35
39
  // collateral factors
36
40
  borrowCollateralFactor: parseRawAmount(resultsAssetInfo.borrowCollateralFactor.toString(), COMET_RISK_DECIMALS),
37
41
  collateralFactor: parseRawAmount(resultsAssetInfo.liquidateCollateralFactor.toString(), COMET_RISK_DECIMALS),
38
- borrowFactor: 1
39
- }
42
+ borrowFactor: 1,
43
+ },
40
44
  },
41
45
  supplyCap: parseRawAmount(resultsAssetInfo.supplyCap.toString(), decimals),
42
46
  // interest rates
@@ -55,10 +59,13 @@ export const getCompoundV3ReservesDataConverter = (lender, chainId, prices, addi
55
59
  totalDepositsUSD: Number(totals) * (prices[oracleKey] ?? 1),
56
60
  // rewards
57
61
  rewards: {},
58
- borrowingEnabled: false
62
+ borrowingEnabled: false,
59
63
  };
60
64
  }
61
- const baseMeta = getAssetMeta(chainId, baseAssetData.baseAsset);
65
+ const baseMeta = tokenList[baseAssetData.baseAsset] ?? {
66
+ ...getAssetMeta(chainId, baseAssetData.baseAsset),
67
+ address: baseAssetData.baseAsset,
68
+ };
62
69
  // parse data for rewards calculation
63
70
  const decimals = baseMeta?.decimals ?? 18;
64
71
  const resultsSupplyRewards = Number(data[baseLength]?.toString());
@@ -66,17 +73,19 @@ export const getCompoundV3ReservesDataConverter = (lender, chainId, prices, addi
66
73
  const resultsIndexScale = data[baseLength + 2]?.toString();
67
74
  const resultsSupply = parseRawAmount(data[baseLength + 3]?.toString(), decimals);
68
75
  const resultsBorrow = parseRawAmount(data[baseLength + 4]?.toString(), decimals);
69
- const compToSuppliersPerDay = resultsSupplyRewards / Number(resultsIndexScale) * SECONDS_PER_DAY;
70
- const compToBorrowersPerDay = resultsBorrowRewards / Number(resultsIndexScale) * SECONDS_PER_DAY;
76
+ const compToSuppliersPerDay = (resultsSupplyRewards / Number(resultsIndexScale)) * SECONDS_PER_DAY;
77
+ const compToBorrowersPerDay = (resultsBorrowRewards / Number(resultsIndexScale)) * SECONDS_PER_DAY;
71
78
  const resultsInterest = data[baseLength + 5];
72
- const oracleKeyBase = toOracleKey(baseMeta?.assetGroup) ?? toGenericPriceKey(baseAssetData.baseAsset, chainId);
79
+ const oracleKeyBase = toOracleKey(baseMeta?.assetGroup) ??
80
+ toGenericPriceKey(baseAssetData.baseAsset, chainId);
73
81
  const price = prices[oracleKeyBase] ?? 1;
74
82
  const liquidity = Number(resultsSupply) - Number(resultsBorrow);
75
- const compPrice = prices["COMP"];
83
+ const compPrice = prices['COMP'];
76
84
  const baseData = {
77
85
  [baseAssetData.baseAsset]: {
78
86
  poolId: baseAssetData.baseAsset,
79
87
  underlying: baseAssetData.baseAsset,
88
+ asset: baseMeta,
80
89
  // collateral factots
81
90
  borrowCollateralFactor: 0,
82
91
  collateralFactor: 0,
@@ -87,8 +96,8 @@ export const getCompoundV3ReservesDataConverter = (lender, chainId, prices, addi
87
96
  // collateral factors
88
97
  borrowCollateralFactor: 0,
89
98
  collateralFactor: 0,
90
- borrowFactor: 1
91
- }
99
+ borrowFactor: 1,
100
+ },
92
101
  },
93
102
  // interest rates
94
103
  variableBorrowRate: calculateRateForCompound(resultsInterest[CometInterestRateIndexes.borrowRate].toString(), chainId, lender),
@@ -104,17 +113,23 @@ export const getCompoundV3ReservesDataConverter = (lender, chainId, prices, addi
104
113
  // rewards
105
114
  rewards: {
106
115
  COMP: {
107
- depositRate: (compPrice * compToSuppliersPerDay / Number(resultsSupply)) * DAYS_IN_YEAR * 100 / price,
108
- variableBorrowRate: (compPrice * compToBorrowersPerDay / Number(resultsBorrow)) * DAYS_IN_YEAR * 100 / price,
116
+ depositRate: (((compPrice * compToSuppliersPerDay) / Number(resultsSupply)) *
117
+ DAYS_IN_YEAR *
118
+ 100) /
119
+ price,
120
+ variableBorrowRate: (((compPrice * compToBorrowersPerDay) / Number(resultsBorrow)) *
121
+ DAYS_IN_YEAR *
122
+ 100) /
123
+ price,
109
124
  stableBorrowRate: 0,
110
- }
125
+ },
111
126
  },
112
127
  borrowingEnabled: true,
113
128
  stakingYield: additionalYields.intrinsicYields[oracleKeyBase] ?? 0,
114
- }
129
+ },
115
130
  };
116
131
  return { data: { ...result, ...baseData }, chainId };
117
132
  },
118
- expectedNumberOfCalls
133
+ expectedNumberOfCalls,
119
134
  ];
120
135
  };
@@ -1 +1 @@
1
- {"version":3,"file":"fetchLender.d.ts","sourceRoot":"","sources":["../../src/lending/fetchLender.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAWnE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAwD1C,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,gBAAgB,sBAAsB,EACtC,YAAW,MAAM,OAAO,CAAC,gBAAgB,CAA6B,KACrE,OAAO,CAAC;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CA8CnC,CAAA"}
1
+ {"version":3,"file":"fetchLender.d.ts","sourceRoot":"","sources":["../../src/lending/fetchLender.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAWnE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AA+E1C,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,gBAAgB,sBAAsB,EACtC,YAAW,MAAM,OAAO,CAAC,gBAAgB,CAExC,KACA,OAAO,CAAC;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAqDnC,CAAA"}
@@ -12,7 +12,7 @@ import { InitLensAbi } from '../abis/init/InitLens';
12
12
  import { CometAbi } from '../abis/compound-v3/Comet';
13
13
  import { CometExtAbi } from '../abis/compound-v3/CometExt';
14
14
  import { IrgetterAbi } from '../abis/compound-v3/IrGetter';
15
- import { isAaveV2Type, isAaveV3Original, isAaveV3Type, isCompoundV3, isInit } from '../utils';
15
+ import { isAaveV2Type, isAaveV3Original, isAaveV3Type, isCompoundV3, isInit, } from '../utils';
16
16
  import { buildAaveV2StyleLenderReserveCall } from './aave-v2-type/publicCallBuild';
17
17
  import { buildAaveV3StyleLenderReserveCall } from './aave-v3-type/publicCallBuild';
18
18
  import { buildInitStyleLenderReserveCall } from './init/publicCallBuild';
@@ -30,18 +30,22 @@ function buildLenderCall(chainId, lender) {
30
30
  return buildAaveV2StyleLenderReserveCall(chainId, lender);
31
31
  if (isAaveV3Type(lender))
32
32
  return buildAaveV3StyleLenderReserveCall(chainId, lender);
33
+ if (isCompoundV3(lender))
34
+ return buildCompoundV3StyleLenderReserveCall(chainId, lender);
33
35
  if (isInit(lender))
34
36
  return buildInitStyleLenderReserveCall(chainId, lender);
35
- return buildCompoundV3StyleLenderReserveCall(chainId, lender);
37
+ return [];
36
38
  }
37
39
  function getLenderDataConverter(lender, chainId, prices, additionalYields, tokenList = {}) {
38
40
  if (isAaveV2Type(lender))
39
41
  return getAaveV2ReservesDataConverter(lender, chainId, prices, additionalYields, tokenList);
40
42
  if (isAaveV3Type(lender))
41
43
  return getAaveV3ReservesDataConverter(lender, chainId, prices, additionalYields, tokenList);
44
+ if (isCompoundV3(lender))
45
+ return getCompoundV3ReservesDataConverter(lender, chainId, prices, additionalYields, tokenList);
42
46
  if (isInit(lender))
43
47
  return getInitReservesDataConverter(lender, chainId, prices, additionalYields, tokenList);
44
- return getCompoundV3ReservesDataConverter(lender, chainId, prices, additionalYields, tokenList);
48
+ return [() => null, 0];
45
49
  }
46
50
  const getAbi = (lender) => {
47
51
  if (isAaveV2Type(lender))
@@ -49,33 +53,23 @@ const getAbi = (lender) => {
49
53
  ...ProtocolDataProviderAbi,
50
54
  ...UniswapV2PairAbi,
51
55
  ...RewarderAbi,
52
- ...IncentivesControllerAbi
56
+ ...IncentivesControllerAbi,
53
57
  ];
54
58
  if (isAaveV3Original(lender))
55
- return [
56
- ...AavePoolV3UpgradedAbi,
57
- ...AaveV3ProtocolDataProviderAbi
58
- ];
59
+ return [...AavePoolV3UpgradedAbi, ...AaveV3ProtocolDataProviderAbi];
59
60
  if (lender === Lender.YLDR)
60
- return [
61
- ...YLDRProtocolDataProviderAbi,
62
- ];
61
+ return [...YLDRProtocolDataProviderAbi];
63
62
  if (isAaveV3Type(lender))
64
- return [
65
- ...AavePoolLegacyAbi,
66
- ...AavePoolDataProviderLegacyAbi
67
- ];
63
+ return [...AavePoolLegacyAbi, ...AavePoolDataProviderLegacyAbi];
68
64
  if (isCompoundV3(lender))
69
- return [
70
- ...IrgetterAbi,
71
- ...CometAbi,
72
- ...CometExtAbi
73
- ];
65
+ return [...IrgetterAbi, ...CometAbi, ...CometExtAbi];
74
66
  if (isInit(lender))
75
67
  return InitLensAbi;
76
68
  return [];
77
69
  };
78
- export const getLenderPublicData = async (chainId, lenders, prices, additionalYields, multicallRetry, tokenList = async () => { return {}; }) => {
70
+ export const getLenderPublicData = async (chainId, lenders, prices, additionalYields, multicallRetry, tokenList = async () => {
71
+ return {};
72
+ }) => {
79
73
  let calls = [];
80
74
  for (const lender of lenders) {
81
75
  const abi = getAbi(lender);
@@ -94,15 +88,17 @@ export const getLenderPublicData = async (chainId, lenders, prices, additionalYi
94
88
  let currentSlice = 0;
95
89
  for (const lender of lenders) {
96
90
  const [converter, sliceLength] = getLenderDataConverter(lender, chainId, prices, additionalYields, list);
97
- const data = rawResults.slice(currentSlice, currentSlice + sliceLength);
98
- const convertedData = converter(data);
99
- if (!convertedData) {
100
- invalidLenders.push(lender);
101
- }
102
- else {
103
- lenderData[lender] = convertedData;
91
+ if (sliceLength > 0) {
92
+ const data = rawResults.slice(currentSlice, currentSlice + sliceLength);
93
+ const convertedData = converter(data);
94
+ if (!convertedData) {
95
+ invalidLenders.push(lender);
96
+ }
97
+ else {
98
+ lenderData[lender] = convertedData;
99
+ }
100
+ currentSlice += sliceLength;
104
101
  }
105
- currentSlice += sliceLength;
106
102
  }
107
103
  return lenderData;
108
104
  };
@@ -1,8 +1,9 @@
1
1
  import { AdditionalYields, MulticallRetryFunction } from '../types';
2
2
  import { Lender } from '@1delta/asset-registry';
3
+ import { GenericTokenList } from './types';
3
4
  export declare const getLenderPublicDataAll: (chainId: string, lenders: Lender[], prices: {
4
5
  [asset: string]: number;
5
- }, additionalYields: AdditionalYields, multicallRetry: MulticallRetryFunction) => Promise<{
6
+ }, additionalYields: AdditionalYields, multicallRetry: MulticallRetryFunction, tokenList?: () => Promise<GenericTokenList>) => Promise<{
6
7
  [lender: string]: any;
7
8
  }>;
8
9
  //# sourceMappingURL=fetchLenderAll.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchLenderAll.d.ts","sourceRoot":"","sources":["../../src/lending/fetchLenderAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAM/C,eAAO,MAAM,sBAAsB,GACjC,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,gBAAgB,sBAAsB,KACrC,OAAO,CAAC;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAcnC,CAAA"}
1
+ {"version":3,"file":"fetchLenderAll.d.ts","sourceRoot":"","sources":["../../src/lending/fetchLenderAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAI1C,eAAO,MAAM,sBAAsB,GACjC,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,gBAAgB,sBAAsB,EACtC,YAAY,MAAM,OAAO,CAAC,gBAAgB,CAAC,KAC1C,OAAO,CAAC;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAcnC,CAAA"}
@@ -2,11 +2,11 @@ import { Lender } from '@1delta/asset-registry';
2
2
  import { getLenderPublicData } from './fetchLender';
3
3
  import { getLenderPublicDataViaApi } from './fetchLenderExt';
4
4
  const LENDERS_VIA_API = [Lender.MORPHO_BLUE];
5
- export const getLenderPublicDataAll = async (chainId, lenders, prices, additionalYields, multicallRetry) => {
5
+ export const getLenderPublicDataAll = async (chainId, lenders, prices, additionalYields, multicallRetry, tokenList) => {
6
6
  const lendersApi = lenders.filter(l => LENDERS_VIA_API.includes(l));
7
7
  const lendersOnChain = lenders.filter(l => !LENDERS_VIA_API.includes(l));
8
- const onChain = getLenderPublicData(chainId, lendersOnChain, prices, additionalYields, multicallRetry);
9
- const api = getLenderPublicDataViaApi(chainId, lendersApi, prices, additionalYields);
8
+ const onChain = getLenderPublicData(chainId, lendersOnChain, prices, additionalYields, multicallRetry, tokenList);
9
+ const api = getLenderPublicDataViaApi(chainId, lendersApi, prices, additionalYields, tokenList);
10
10
  const [onChainRes, apiRes] = await Promise.all([onChain, api]);
11
11
  return { ...onChainRes, ...apiRes };
12
12
  };
@@ -1,8 +1,9 @@
1
1
  import { AdditionalYields } from '../types';
2
2
  import { Lender } from '@1delta/asset-registry';
3
+ import { GenericTokenList } from './types';
3
4
  export declare const getLenderPublicDataViaApi: (chainId: string, lenders: Lender[], prices: {
4
5
  [asset: string]: number;
5
- }, additionalYields: AdditionalYields) => Promise<{
6
+ }, additionalYields: AdditionalYields, tokenList?: () => Promise<GenericTokenList>) => Promise<{
6
7
  [lender: string]: any;
7
8
  }>;
8
9
  //# sourceMappingURL=fetchLenderExt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchLenderExt.d.ts","sourceRoot":"","sources":["../../src/lending/fetchLenderExt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAc/C,eAAO,MAAM,yBAAyB,GACpC,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,KACjC,OAAO,CAAC;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAuBnC,CAAA"}
1
+ {"version":3,"file":"fetchLenderExt.d.ts","sourceRoot":"","sources":["../../src/lending/fetchLenderExt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AA2B1C,eAAO,MAAM,yBAAyB,GACpC,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,YAAW,MAAM,OAAO,CAAC,gBAAgB,CAExC,KACA,OAAO,CAAC;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CA2CnC,CAAA"}
@@ -1,27 +1,41 @@
1
1
  import { isMorphoType, isMultiMarket } from '../utils';
2
- import { fetchMorphoPublicData } from './morpho/publicCallBuild';
3
- async function getgetLenderDataFromApi(lender, chainId, prices, additionalYields) {
2
+ import { fetchMorphoMarkets } from './morpho/fetchPublic';
3
+ import { convertMarketsToMorphoResponse } from './morpho/convertPublic';
4
+ async function getLenderDataFromApi(lender, chainId, prices, additionalYields) {
4
5
  if (isMorphoType(lender))
5
- return await fetchMorphoPublicData(chainId, additionalYields);
6
+ return await fetchMorphoMarkets(chainId);
6
7
  return {};
7
8
  }
8
- export const getLenderPublicDataViaApi = async (chainId, lenders, prices, additionalYields) => {
9
+ function convertLenderDataFromApi(lender, chainId, data, prices, additionalYields, list = {}) {
10
+ if (isMorphoType(lender))
11
+ return convertMarketsToMorphoResponse(data, chainId, additionalYields, list);
12
+ return {};
13
+ }
14
+ export const getLenderPublicDataViaApi = async (chainId, lenders, prices, additionalYields, tokenList = async () => {
15
+ return {};
16
+ }) => {
9
17
  let promises = [];
10
18
  for (const lender of lenders) {
11
- promises.push(getgetLenderDataFromApi(lender, chainId, prices, additionalYields));
19
+ promises.push(getLenderDataFromApi(lender, chainId, prices, additionalYields));
12
20
  }
13
- const results = await Promise.all(promises);
21
+ const [list, ...results] = await Promise.all([tokenList(), ...promises]);
14
22
  const lenderData = {};
15
23
  for (let i = 0; i < lenders.length; i++) {
16
- const lender = lenders[i];
17
- if (isMultiMarket(lender)) {
18
- const dataObtained = results[i];
19
- Object.keys(dataObtained.data).forEach((marketId) => {
20
- lenderData[marketId] = dataObtained.data[marketId];
21
- });
24
+ try {
25
+ const lender = lenders[i];
26
+ if (isMultiMarket(lender)) {
27
+ const dataObtained = results[i];
28
+ const converted = convertLenderDataFromApi(lender, chainId, dataObtained, prices, additionalYields, list);
29
+ Object.keys(converted).forEach((marketId) => {
30
+ lenderData[marketId] = converted[marketId];
31
+ });
32
+ }
33
+ else {
34
+ lenderData[lender] = convertLenderDataFromApi(lender, chainId, results[i], prices, additionalYields, list);
35
+ }
22
36
  }
23
- else {
24
- lenderData[lender] = results[i];
37
+ catch (e) {
38
+ console.log('error fetching from API on', chainId, ':', e);
25
39
  }
26
40
  }
27
41
  return lenderData;
@@ -1,4 +1,6 @@
1
1
  export * from "./fetchLender";
2
+ export * from "./fetchLenderExt";
3
+ export * from "./fetchLenderAll";
2
4
  export * from "./user-data";
3
5
  export * from "./types";
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lending/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lending/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA"}
@@ -1,3 +1,5 @@
1
1
  export * from "./fetchLender";
2
+ export * from "./fetchLenderExt";
3
+ export * from "./fetchLenderAll";
2
4
  export * from "./user-data";
3
5
  export * from "./types";
@@ -1,9 +1,7 @@
1
1
  import { MorphoGeneralPublicResponse, GetMarketsResponse } from './types';
2
2
  import { AdditionalYields } from '../../types';
3
- export declare function convertMarketsToMorphoResponse(response: GetMarketsResponse, chainId: string, additionalYields?: AdditionalYields): {
4
- chainId: string;
5
- data: {
6
- [m: string]: MorphoGeneralPublicResponse;
7
- };
3
+ import { GenericTokenList } from '../types';
4
+ export declare function convertMarketsToMorphoResponse(response: GetMarketsResponse, chainId: string, additionalYields?: AdditionalYields, tokens?: GenericTokenList): {
5
+ [m: string]: MorphoGeneralPublicResponse;
8
6
  };
9
7
  //# sourceMappingURL=convertPublic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertPublic.d.ts","sourceRoot":"","sources":["../../../src/lending/morpho/convertPublic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAc,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAErF,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAkB9C,wBAAgB,8BAA8B,CAC1C,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,MAAM,EACf,gBAAgB,GAAE,gBAA2E,GAC9F;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,2BAA2B,CAAA;KAAE,CAAA;CAAE,CAiHzE"}
1
+ {"version":3,"file":"convertPublic.d.ts","sourceRoot":"","sources":["../../../src/lending/morpho/convertPublic.ts"],"names":[],"mappings":"AACA,OAAO,EACL,2BAA2B,EAE3B,kBAAkB,EACnB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAc3C,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,MAAM,EACf,gBAAgB,GAAE,gBAIjB,EACD,MAAM,GAAE,gBAAqB,GAC3B;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,2BAA2B,CAAA;CAAE,CAyH/C"}
@@ -1,24 +1,26 @@
1
1
  import { formatUnits } from 'viem';
2
2
  import { apyToApr } from '../user-data/utils';
3
- import { getAssetMeta } from '../../assets';
4
3
  function parseLtv(ltv) {
5
4
  let str = 0;
6
5
  try {
7
6
  str = Number(formatUnits(BigInt(ltv), 18));
8
7
  }
9
- catch (e) {
10
- }
8
+ catch (e) { }
11
9
  return str;
12
10
  }
13
11
  function formatNr(n, d) {
14
12
  return Number(formatUnits(BigInt(n ?? 0), d));
15
13
  }
16
- export function convertMarketsToMorphoResponse(response, chainId, additionalYields = { intrinsicYields: {}, lenderRewards: {}, loaded: true }) {
14
+ export function convertMarketsToMorphoResponse(response, chainId, additionalYields = {
15
+ intrinsicYields: {},
16
+ lenderRewards: {},
17
+ loaded: true,
18
+ }, tokens = {}) {
17
19
  const data = {};
18
20
  response.markets.items.forEach((market) => {
19
21
  const { uniqueKey, lltv, irmAddress, oracleAddress, loanAsset, collateralAsset, state, } = market;
20
22
  if (collateralAsset && loanAsset && oracleAddress) {
21
- const m = "MORPHO_BLUE_" + collateralAsset.symbol?.toUpperCase() + "_" + loanAsset.symbol?.toUpperCase() + "_" + uniqueKey.slice(2).toUpperCase();
23
+ const m = 'MORPHO_BLUE_' + uniqueKey.slice(2).toUpperCase();
22
24
  // @ts-ignore
23
25
  if (!data[m])
24
26
  data[m] = { data: {} };
@@ -32,9 +34,11 @@ export function convertMarketsToMorphoResponse(response, chainId, additionalYiel
32
34
  // }
33
35
  // })
34
36
  const loanAssetAddress = loanAsset.address.toLowerCase();
37
+ const meta = tokens[loanAssetAddress] ?? loanAsset;
35
38
  data[m].data[loanAssetAddress] = {
36
39
  poolId: loanAssetAddress,
37
40
  underlying: loanAssetAddress,
41
+ asset: meta,
38
42
  totalDeposits: formatNr(state.supplyAssets, loanAsset.decimals),
39
43
  totalDebtStable: 0,
40
44
  totalDebt: formatNr(state.borrowAssets, loanAsset.decimals),
@@ -44,7 +48,7 @@ export function convertMarketsToMorphoResponse(response, chainId, additionalYiel
44
48
  depositRate: apyToApr(Number(state.supplyApy)) * 100,
45
49
  variableBorrowRate: apyToApr(Number(state.borrowApy)) * 100,
46
50
  stableBorrowRate: 0,
47
- stakingYield: additionalYields.intrinsicYields[getAssetMeta(chainId, loanAssetAddress)?.assetGroup] ?? 0,
51
+ stakingYield: additionalYields.intrinsicYields[meta?.assetGroup] ?? 0,
48
52
  rewards: Object.keys(loanRewards).length > 0 ? loanRewards : undefined,
49
53
  decimals: loanAsset.decimals,
50
54
  config: {
@@ -63,10 +67,12 @@ export function convertMarketsToMorphoResponse(response, chainId, additionalYiel
63
67
  };
64
68
  const ltv = parseLtv(lltv);
65
69
  const collateralAssetAddress = collateralAsset.address.toLowerCase();
70
+ const metaCollateral = tokens[collateralAssetAddress] ?? collateralAsset;
66
71
  // 2. COLLATERAL asset entry
67
72
  data[m].data[collateralAssetAddress] = {
68
73
  poolId: collateralAssetAddress,
69
74
  underlying: collateralAssetAddress,
75
+ asset: metaCollateral,
70
76
  totalDeposits: formatNr(state.collateralAssets, collateralAsset.decimals),
71
77
  totalDebtStable: 0,
72
78
  totalDebt: 0,
@@ -76,7 +82,7 @@ export function convertMarketsToMorphoResponse(response, chainId, additionalYiel
76
82
  depositRate: 0,
77
83
  variableBorrowRate: 0,
78
84
  stableBorrowRate: 0,
79
- stakingYield: additionalYields.intrinsicYields[getAssetMeta(chainId, collateralAssetAddress)?.assetGroup] ?? 0,
85
+ stakingYield: additionalYields.intrinsicYields[metaCollateral?.assetGroup] ?? 0,
80
86
  rewards: undefined,
81
87
  decimals: collateralAsset.decimals,
82
88
  config: {
@@ -104,12 +110,10 @@ export function convertMarketsToMorphoResponse(response, chainId, additionalYiel
104
110
  irm: irmAddress,
105
111
  collateralAddress: collateralAsset.address,
106
112
  loanAddress: loanAsset.address,
107
- }
113
+ },
108
114
  };
115
+ data[m].chainId = chainId;
109
116
  }
110
117
  });
111
- return {
112
- data,
113
- chainId
114
- };
118
+ return data;
115
119
  }
@@ -54,7 +54,7 @@ query GetMarkets {
54
54
  const BASE_URL = "https://blue-api.morpho.org/graphql";
55
55
  export async function fetchMorphoMarkets(chainId) {
56
56
  const requestBody = {
57
- query: query(500, 0, chainId),
57
+ query: query(200, 0, chainId),
58
58
  variables: {},
59
59
  };
60
60
  const response = await fetch(BASE_URL, {
@@ -1,8 +1,5 @@
1
1
  import { AdditionalYields } from "../../types";
2
2
  export declare function fetchMorphoPublicData(chainId: string, yields?: AdditionalYields): Promise<{
3
- chainId: string;
4
- data: {
5
- [m: string]: import("./types").MorphoGeneralPublicResponse;
6
- };
3
+ [m: string]: import("./types").MorphoGeneralPublicResponse;
7
4
  }>;
8
5
  //# sourceMappingURL=publicCallBuild.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"publicCallBuild.d.ts","sourceRoot":"","sources":["../../../src/lending/morpho/publicCallBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAI9C,wBAAsB,qBAAqB,CACvC,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,gBAA2E;;;;;GAItF"}
1
+ {"version":3,"file":"publicCallBuild.d.ts","sourceRoot":"","sources":["../../../src/lending/morpho/publicCallBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAI9C,wBAAsB,qBAAqB,CACvC,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,gBAA2E;;GAItF"}
@@ -1,3 +1,4 @@
1
+ import { GenericCurrency } from "../types";
1
2
  export type GetMarketsResponse = {
2
3
  markets: {
3
4
  items: {
@@ -70,6 +71,7 @@ export interface MorphoGeneralPublicResponse {
70
71
  [tokenSymbol: string]: {
71
72
  poolId: string;
72
73
  underlying: string;
74
+ asset: GenericCurrency;
73
75
  totalDeposits: number;
74
76
  totalDebtStable: 0;
75
77
  totalDebt: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lending/morpho/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lending/morpho/types.ts"],"names":[],"mappings":"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"}
@@ -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;AAuB/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;AAmB/C,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,EAAE,SAAS,MAAM,KAAG,IAAI,EAqB1F,CAAA"}
@@ -1,8 +1,6 @@
1
- import { getAaveAssets, getAaveStyleProtocolTokenMap, getAaveTypePoolDataProviderAddress, getAaveTypePoolAddress } from "../../../assets";
2
- import { getComposerAddress, isYLDR } from "../../../utils";
3
- const fallbackDebtToken = '0x52A1CeB68Ee6b7B5D13E0376A1E0E4423A8cE26e';
4
- const getBaseAaveV3Calls = (chainId, account, lender, assetsToQuery, aaveTokenMap) => {
5
- const broker = getComposerAddress(chainId);
1
+ import { getAaveAssets, getAaveTypePoolDataProviderAddress, getAaveTypePoolAddress } from "../../../assets";
2
+ import { isYLDR } from "../../../utils";
3
+ const getBaseAaveV3Calls = (chainId, account, lender, assetsToQuery) => {
6
4
  return assetsToQuery.flatMap((tk) => [
7
5
  {
8
6
  address: getAaveTypePoolDataProviderAddress(chainId, lender),
@@ -13,9 +11,8 @@ const getBaseAaveV3Calls = (chainId, account, lender, assetsToQuery, aaveTokenMa
13
11
  };
14
12
  export const buildAaveV3UserCall = (chainId, lender, account) => {
15
13
  const assetsToQuery = getAaveAssets(chainId, lender);
16
- const aaveTokenMap = getAaveStyleProtocolTokenMap(chainId, lender);
17
14
  const calls = [
18
- ...getBaseAaveV3Calls(chainId, account, lender, assetsToQuery, aaveTokenMap),
15
+ ...getBaseAaveV3Calls(chainId, account, lender, assetsToQuery),
19
16
  ];
20
17
  if (!isYLDR(lender)) {
21
18
  const callDataEmode = {