@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 +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,3 +1,15 @@
1
+ import { Lender } from '@1delta/asset-registry';
2
+ /** Filter all morphos into one for querying */
3
+ 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'));
6
+ const morphosCollapsed = {
7
+ lender: Lender.MORPHO_BLUE,
8
+ account: queries[0].account,
9
+ params: morphos.map((p) => p.lender),
10
+ };
11
+ return [...nonMorphos, morphosCollapsed];
12
+ }
1
13
  // Aave V2 specific enums
2
14
  export var AaveV2TypeGetUserReserveData;
3
15
  (function (AaveV2TypeGetUserReserveData) {
@@ -1,4 +1,4 @@
1
- import { AaveV2Public, AaveV2UserReserveResponse, AaveV3Public, AaveV3UserReserveResponse, CompoundV3Public, CompoundV3UserReserveResponse } from "../types";
1
+ import { AaveV2Public, AaveV2UserReserveResponse, AaveV3Public, AaveV3UserReserveResponse, CompoundV3Public, CompoundV3UserReserveResponse } from '../types';
2
2
  type LenderUserData = AaveV3UserReserveResponse | AaveV2UserReserveResponse | CompoundV3UserReserveResponse;
3
3
  type LenderState = AaveV3Public | AaveV2Public | CompoundV3Public;
4
4
  export declare function createBaseTypeUserState(payload: LenderUserData, lenderData: {
@@ -7,7 +7,7 @@ export declare function createBaseTypeUserState(payload: LenderUserData, lenderD
7
7
  account: string;
8
8
  chainId: string;
9
9
  balanceData: {
10
- "0": {
10
+ '0': {
11
11
  rewards?: any;
12
12
  borrowDiscountedCollateral: number;
13
13
  collateral: number;
@@ -21,7 +21,7 @@ export declare function createBaseTypeUserState(payload: LenderUserData, lenderD
21
21
  };
22
22
  };
23
23
  aprData: {
24
- "0": {
24
+ '0': {
25
25
  apr: number;
26
26
  borrowApr: number;
27
27
  depositApr: number;
@@ -35,7 +35,7 @@ export declare function createBaseTypeUserState(payload: LenderUserData, lenderD
35
35
  };
36
36
  };
37
37
  userConfigs: {
38
- "0": {
38
+ '0': {
39
39
  selectedMode: number;
40
40
  id: string;
41
41
  };
@@ -1 +1 @@
1
- {"version":3,"file":"createGeneralUserState.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/utils/createGeneralUserState.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,YAAY,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAA;AAG5J,KAAK,cAAc,GAAG,yBAAyB,GAAG,yBAAyB,GAAG,6BAA6B,CAAA;AAC3G,KAAK,WAAW,GAAG,YAAY,GAAG,YAAY,GAAG,gBAAgB,CAAA;AAEjE,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;CAAE,EACxC,gBAAgB,GAAE,MAAU,EAC5B,YAAY,GAAE,MAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0GzB"}
1
+ {"version":3,"file":"createGeneralUserState.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/utils/createGeneralUserState.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,yBAAyB,EACzB,YAAY,EACZ,yBAAyB,EACzB,gBAAgB,EAChB,6BAA6B,EAC9B,MAAM,UAAU,CAAA;AAGjB,KAAK,cAAc,GACf,yBAAyB,GACzB,yBAAyB,GACzB,6BAA6B,CAAA;AACjC,KAAK,WAAW,GAAG,YAAY,GAAG,YAAY,GAAG,gBAAgB,CAAA;AAEjE,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;CAAE,EACxC,gBAAgB,GAAE,MAAU,EAC5B,YAAY,GAAE,MAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwHzB"}
@@ -1,7 +1,7 @@
1
- import { divideAccrualsToAprs } from ".";
2
- import { safeDivide } from "./formatting";
1
+ import { divideAccrualsToAprs } from '.';
2
+ import { safeDivide } from './formatting';
3
3
  export function createBaseTypeUserState(payload, lenderData, totalDeposits24h = 0, totalDebt24h = 0) {
4
- let assetKeys = Object.keys(payload.lendingPositions["0"] ?? {});
4
+ let assetKeys = Object.keys(payload.lendingPositions['0'] ?? {});
5
5
  const { chainId, account } = payload;
6
6
  const mode = Number(payload.userEMode ?? 0);
7
7
  // organic yields
@@ -24,19 +24,22 @@ export function createBaseTypeUserState(payload, lenderData, totalDeposits24h =
24
24
  const asset = assetKeys[i];
25
25
  if (!lenderData?.[asset])
26
26
  continue;
27
- const { depositsUSD, debtStableUSD, debtUSD, collateralActive } = payload.lendingPositions["0"][asset];
28
- const { depositRate, stakingYield, variableBorrowRate, stableBorrowRate, rewards } = lenderData[asset];
27
+ const { depositsUSD, debtStableUSD, debtUSD, collateralActive } = payload.lendingPositions['0'][asset];
28
+ const { depositRate, stakingYield, variableBorrowRate, stableBorrowRate, rewards, } = lenderData[asset];
29
29
  // amounts
30
30
  deposits += depositsUSD;
31
31
  debt += debtStableUSD;
32
32
  debt += debtUSD;
33
- // rewards
33
+ // rewards
34
34
  Object.entries(rewards ?? {}).forEach(([key, rewardData]) => {
35
35
  rewardDepositAccrual += rewardData.depositRate * depositsUSD;
36
- rewardBorrowAccrual += rewardData.variableBorrowRate * debtUSD + (rewardData.stableBorrowRate ?? 0) * debtStableUSD;
36
+ rewardBorrowAccrual +=
37
+ rewardData.variableBorrowRate * debtUSD +
38
+ (rewardData.stableBorrowRate ?? 0) * debtStableUSD;
37
39
  // totals
38
40
  const rewDepo = rewardData.depositRate * depositsUSD;
39
- const rewDebt = rewardData.variableBorrowRate * debtUSD + (rewardData.stableBorrowRate ?? 0) * (debtStableUSD ?? 0);
41
+ const rewDebt = rewardData.variableBorrowRate * debtUSD +
42
+ (rewardData.stableBorrowRate ?? 0) * (debtStableUSD ?? 0);
40
43
  if (!rewardsPerAsset[key])
41
44
  rewardsPerAsset[key] = { depositApr: 0, borrowApr: 0 };
42
45
  if (rewDepo > 0)
@@ -49,17 +52,21 @@ export function createBaseTypeUserState(payload, lenderData, totalDeposits24h =
49
52
  stakingBorrowAccrual += (stakingYield ?? 0) * (debtStableUSD + debtUSD);
50
53
  if (collateralActive) {
51
54
  // risk adjusted
52
- collateral += (lenderData[asset].config[mode]?.collateralFactor ?? 1) * depositsUSD;
53
- borrowDiscountedCollateral += (lenderData[asset].config[mode]?.borrowCollateralFactor ?? 1) * depositsUSD;
55
+ collateral +=
56
+ (lenderData[asset].config[mode]?.collateralFactor ?? 1) * depositsUSD;
57
+ borrowDiscountedCollateral +=
58
+ (lenderData[asset].config[mode]?.borrowCollateralFactor ?? 1) *
59
+ depositsUSD;
54
60
  }
55
61
  // IRs
56
62
  depositInterest += depositRate * depositsUSD;
57
- borrowInterest += debtStableUSD * stableBorrowRate + debtUSD * variableBorrowRate;
63
+ borrowInterest +=
64
+ debtStableUSD * stableBorrowRate + debtUSD * variableBorrowRate;
58
65
  }
59
66
  const nav = deposits - debt;
60
67
  // aggregated balance data
61
68
  const balanceData = {
62
- "0": {
69
+ '0': {
63
70
  borrowDiscountedCollateral,
64
71
  collateral,
65
72
  deposits,
@@ -69,12 +76,12 @@ export function createBaseTypeUserState(payload, lenderData, totalDeposits24h =
69
76
  deposits24h: totalDeposits24h,
70
77
  debt24h: totalDebt24h,
71
78
  nav24h: totalDeposits24h - totalDebt24h,
72
- ...(payload.rewards ? { rewards: payload.rewards } : {})
73
- }
79
+ ...(payload.rewards ? { rewards: payload.rewards } : {}),
80
+ },
74
81
  };
75
82
  // aggregated apr data
76
83
  const aprData = {
77
- "0": {
84
+ '0': {
78
85
  apr: safeDivide(depositInterest - borrowInterest, nav),
79
86
  borrowApr: safeDivide(borrowInterest, debt),
80
87
  depositApr: safeDivide(depositInterest, deposits),
@@ -85,9 +92,9 @@ export function createBaseTypeUserState(payload, lenderData, totalDeposits24h =
85
92
  stakingApr: safeDivide(stakingDepositAccrual - stakingBorrowAccrual, nav),
86
93
  stakingDepositApr: safeDivide(stakingDepositAccrual, deposits),
87
94
  stakingBorrowApr: safeDivide(stakingBorrowAccrual, debt),
88
- }
95
+ },
89
96
  };
90
- const userConfigs = { "0": { selectedMode: mode, id: account } };
97
+ const userConfigs = { '0': { selectedMode: mode, id: account } };
91
98
  return {
92
99
  account,
93
100
  chainId,
@@ -1,4 +1,8 @@
1
1
  import { Lender } from "@1delta/asset-registry";
2
+ export declare function isCompoundV3(lender: string): boolean;
3
+ export declare function isCompoundV3Type(lender: string): boolean;
4
+ export declare function isInit(lender: string): lender is Lender.INIT;
5
+ export declare function isMorphoType(lender: string): boolean;
2
6
  export declare const AAVE_V3_2_PROTOCOLS: Lender[];
3
7
  export declare function isAaveV3Type(lender: string): boolean;
4
8
  export declare function isAaveV3Original(lender: string): boolean;
@@ -6,9 +10,6 @@ export declare function isAaveV2Type(lender: string): boolean;
6
10
  export declare function isYLDR(lender: string): lender is Lender.YLDR;
7
11
  export declare function isAaveV32Type(lender: Lender): boolean;
8
12
  export declare function isAaveType(lender: string): boolean;
9
- export declare function isCompoundV3(lender: string): boolean;
10
- export declare function isCompoundV3Type(lender: string): boolean;
11
- export declare function isInit(lender: string): lender is Lender.INIT;
12
13
  export declare function isSwaylend(lender: string): boolean;
13
14
  export declare const getLendersForChain: (c: string) => string[];
14
15
  /** Filter lenders by protocol list */
@@ -19,4 +20,5 @@ export declare const AAVES_PER_CHAIN: {
19
20
  };
20
21
  export declare const getComposerAddress: (chainId: string) => string;
21
22
  export declare const getLenderAssets: (chainId: string | number | undefined, lendingProtocol?: Lender) => string[];
23
+ export declare function isMultiMarket(lender: string): boolean;
22
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,MAAM,EAGP,MAAM,wBAAwB,CAAA;AAQ/B,eAAO,MAAM,mBAAmB,UAAkE,CAAA;AAElG,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,WAE1C;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,WAE9C;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,YAAY,CAAC,MAAM,EAAE,MAAM,WAE1C;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,WAE9C;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,yBAEpC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,WAExC;AAED,eAAO,MAAM,kBAAkB,GAAI,GAAG,MAAM,aAqB3C,CAAA;AAED,sCAAsC;AACtC,eAAO,MAAM,uBAAuB,GAAI,YAAY,MAAM,EAAE,EAAE,eAAe,MAAM,EAAE,KAAG,MAAM,EAQ7F,CAAA;AAaD,mCAAmC;AACnC,eAAO,MAAM,eAAe;;CAAqB,CAAA;AAEjD,eAAO,MAAM,kBAAkB,GAAI,SAAS,MAAM,KAAG,MAEpD,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,SAAS,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,wBAAgC,KAAG,MAAM,EAO9G,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,MAAM,EAIP,MAAM,wBAAwB,CAAA;AAO/B,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,WAA+C;AAE1F,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,WAA+C;AAE9F,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,yBAAmC;AAExE,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,WAI1C;AAID,eAAO,MAAM,mBAAmB,UAAkE,CAAA;AAElG,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,WAE1C;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,WAE9C;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,aA4B3C,CAAA;AAED,sCAAsC;AACtC,eAAO,MAAM,uBAAuB,GAAI,YAAY,MAAM,EAAE,EAAE,eAAe,MAAM,EAAE,KAAG,MAAM,EAS7F,CAAA;AAaD,mCAAmC;AACnC,eAAO,MAAM,eAAe;;CAAqB,CAAA;AAEjD,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;AAGD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,WAE3C"}
@@ -1,8 +1,16 @@
1
- import { AAVE_FORK_POOL_DATA, AAVE_STYLE_RESERVE_ASSETS, AAVE_V2_LENDERS, AAVE_V3_LENDERS, COMPOUND_BASE_TOKENS, COMPOUND_STYLE_RESERVE_ASSETS, INIT_STYLE_RESERVE_ASSETS, Lender, SWAYLEND_RESERVE_ASSETS, INIT_CONFIG_DATA, } from "@1delta/asset-registry";
1
+ import { AAVE_FORK_POOL_DATA, AAVE_STYLE_RESERVE_ASSETS, AAVE_V2_LENDERS, AAVE_V3_LENDERS, COMPOUND_BASE_TOKENS, COMPOUND_STYLE_RESERVE_ASSETS, INIT_STYLE_RESERVE_ASSETS, Lender, SWAYLEND_RESERVE_ASSETS, INIT_CONFIG_DATA, MORPHO_BLUE_POOL_DATA, } from "@1delta/asset-registry";
2
2
  import { uniq } from "lodash";
3
3
  import { COMPOSERS } from "./constants";
4
4
  const AAVE_V3_KEY = "AAVE_V3";
5
5
  const COMPOUND_V3_KEY = "COMPOUND_V3";
6
+ export function isCompoundV3(lender) { return lender.startsWith(COMPOUND_V3_KEY); }
7
+ export function isCompoundV3Type(lender) { return lender.startsWith(COMPOUND_V3_KEY); }
8
+ export function isInit(lender) { return lender === Lender.INIT; }
9
+ export function isMorphoType(lender) {
10
+ return [
11
+ Lender.MORPHO_BLUE
12
+ ].includes(lender);
13
+ }
6
14
  const SWAYLEND_KEY = "SWAYLEND";
7
15
  export const AAVE_V3_2_PROTOCOLS = [Lender.AAVE_V3, Lender.AAVE_V3_ETHER_FI, Lender.AAVE_V3_PRIME];
8
16
  export function isAaveV3Type(lender) {
@@ -23,15 +31,6 @@ export function isAaveV32Type(lender) {
23
31
  export function isAaveType(lender) {
24
32
  return [...AAVE_V3_LENDERS, ...AAVE_V2_LENDERS].includes(lender);
25
33
  }
26
- export function isCompoundV3(lender) {
27
- return lender.startsWith(COMPOUND_V3_KEY);
28
- }
29
- export function isCompoundV3Type(lender) {
30
- return lender.startsWith(COMPOUND_V3_KEY);
31
- }
32
- export function isInit(lender) {
33
- return lender === Lender.INIT;
34
- }
35
34
  export function isSwaylend(lender) {
36
35
  return lender.startsWith(SWAYLEND_KEY);
37
36
  }
@@ -55,6 +54,12 @@ export const getLendersForChain = (c) => {
55
54
  if (chains.includes(c))
56
55
  lenders.push(l);
57
56
  });
57
+ // morpho
58
+ Object.entries(MORPHO_BLUE_POOL_DATA).forEach(([l, data]) => {
59
+ const chains = Object.keys(data);
60
+ if (chains.includes(c))
61
+ lenders.push(l);
62
+ });
58
63
  return lenders;
59
64
  };
60
65
  /** Filter lenders by protocol list */
@@ -63,8 +68,9 @@ export const filterLendersByProtocol = (allLenders, protocolList) => {
63
68
  if (!protocolList || protocolList.length === 0) {
64
69
  return allLenders;
65
70
  }
71
+ const hasMorpho = protocolList.includes(Lender.MORPHO_BLUE);
66
72
  // Filter lenders based on protocol list
67
- return allLenders.filter((lender) => protocolList.includes(lender));
73
+ return allLenders.filter((lender) => protocolList.includes(lender) || (hasMorpho && lender.startsWith("MORPHO_BLUE")));
68
74
  };
69
75
  const getAavesForChain = () => {
70
76
  let lenders = {};
@@ -95,3 +101,6 @@ export const getLenderAssets = (chainId, lendingProtocol = Lender.AAVE_V3) => {
95
101
  return SWAYLEND_RESERVE_ASSETS[lendingProtocol]?.[chainId ?? 0] ?? [];
96
102
  return [];
97
103
  };
104
+ export function isMultiMarket(lender) {
105
+ return lender.startsWith("MORPHO_BLUE");
106
+ }
@@ -7,6 +7,7 @@ export declare enum TimeScale {
7
7
  }
8
8
  export declare const aprToApy: (apr: number) => number;
9
9
  export declare const apyToApr: (apy: number) => number;
10
+ export declare const apyToAprPercent: (apy: number) => number;
10
11
  export declare const formatAaveYieldToNumber: (n?: string | bigint) => number;
11
12
  export declare const calculateRateForCompound: (n: string, chainId: string, lender?: Lender) => number;
12
13
  export declare const formatAaveRawApyToApr: (raw: bigint | string | undefined) => number;
@@ -1 +1 @@
1
- {"version":3,"file":"parsing.d.ts","sourceRoot":"","sources":["../../src/utils/parsing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIvD,eAAO,MAAM,GAAG,QAAQ,CAAC;AAEzB,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,EAAE,iBAAa,KAAG,MAO/D,CAAC;AAEF,oBAAY,SAAS;IACnB,KAAK,IAAA;IACL,EAAE,IAAA;CACH;AAYD,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,WAEnC,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,WAEnC,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,IAAI,MAAM,GAAG,MAAM,KAAG,MAG7D,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,GAAG,MAAM,EACT,SAAS,MAAM,EACf,eAAiC,KAChC,MAgBF,CAAC;AACF,eAAO,MAAM,qBAAqB,GAAI,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS,WAGrE,CAAC;AAGF,eAAO,MAAM,gBAAgB,GAAI,eAAe,MAAM,GAAG,MAAM,WAI9D,CAAC"}
1
+ {"version":3,"file":"parsing.d.ts","sourceRoot":"","sources":["../../src/utils/parsing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIvD,eAAO,MAAM,GAAG,QAAQ,CAAC;AAEzB,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,EAAE,iBAAa,KAAG,MAO/D,CAAC;AAEF,oBAAY,SAAS;IACnB,KAAK,IAAA;IACL,EAAE,IAAA;CACH;AAYD,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,WAEnC,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,WAEnC,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,WAE1C,CAAC;AAGF,eAAO,MAAM,uBAAuB,GAAI,IAAI,MAAM,GAAG,MAAM,KAAG,MAG7D,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,GAAG,MAAM,EACT,SAAS,MAAM,EACf,eAAiC,KAChC,MAgBF,CAAC;AACF,eAAO,MAAM,qBAAqB,GAAI,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS,WAGrE,CAAC;AAGF,eAAO,MAAM,gBAAgB,GAAI,eAAe,MAAM,GAAG,MAAM,WAI9D,CAAC"}
@@ -30,6 +30,9 @@ export const aprToApy = (apr) => {
30
30
  export const apyToApr = (apy) => {
31
31
  return ((apy + 1) ** (1 / SECONDS_PER_YEAR) - 1) * SECONDS_PER_YEAR;
32
32
  };
33
+ export const apyToAprPercent = (apy) => {
34
+ return 100 * ((apy / 100 + 1) ** (1 / SECONDS_PER_YEAR) - 1) * SECONDS_PER_YEAR;
35
+ };
33
36
  export const formatAaveYieldToNumber = (n) => {
34
37
  if (!n)
35
38
  return 0;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/yields/index.ts"],"names":[],"mappings":"AAiCA,UAAU,iBAAiB;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,qBAAqB,EAAE,GAAG,CAAA;IAC1B,oBAAoB,EAAE,GAAG,CAAA;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACnC,eAAe,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;KAAE,CAAA;IACxD,aAAa,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG;YAAE,CAAC,MAAM,EAAE,MAAM,GAAG;gBAAE,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAAA;aAAE,CAAA;SAAE,CAAA;KAAE,CAAA;CACrG;AAYD,eAAO,MAAM,kBAAkB,uCA6I9B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/yields/index.ts"],"names":[],"mappings":"AAkCA,UAAU,iBAAiB;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,qBAAqB,EAAE,GAAG,CAAA;IAC1B,oBAAoB,EAAE,GAAG,CAAA;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACnC,eAAe,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;KAAE,CAAA;IACxD,aAAa,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG;YAAE,CAAC,MAAM,EAAE,MAAM,GAAG;gBAAE,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAAA;aAAE,CAAA;SAAE,CAAA;KAAE,CAAA;CACrG;AAYD,eAAO,MAAM,kBAAkB,uCAqJ9B,CAAA"}
@@ -1,4 +1,4 @@
1
- import { apyToApr } from "../utils/parsing";
1
+ import { apyToAprPercent, apyToApr } from "../utils/parsing";
2
2
  const FeedData = {
3
3
  WSTETH: 'https://eth-api.lido.fi/v1/protocol/steth/apr/sma',
4
4
  STMATIC: 'https://polygon.lido.fi/api/stats',
@@ -11,6 +11,7 @@ const FeedData = {
11
11
  WEETH: 'https://www.ether.fi/api/apr',
12
12
  SAVAX: "https://api.benqi.fi/liquidstaking/apr",
13
13
  RSETH: "https://universe.kelpdao.xyz/rseth/totalApy",
14
+ TRUMATIC: "https://api.trufin.io/staker/apy?staker=MATIC"
14
15
  };
15
16
  const LenderAPIs = {
16
17
  MERIDIAN: 'https://omnidex.bmaa3ajd1gjri.eu-west-2.cs.amazonlightsail.com/lending_yields'
@@ -81,7 +82,7 @@ export const fetchGeneralYields = async () => {
81
82
  const susdePromise = safeFetch('SUSDE', async () => {
82
83
  try {
83
84
  const res = await fetch(FeedData.SUSDE).then(r => r.json());
84
- return Number(res?.data[0]?.apy ?? 0);
85
+ return apyToAprPercent(res?.data[0]?.apy ?? 0);
85
86
  }
86
87
  catch (e) {
87
88
  return 0;
@@ -89,7 +90,11 @@ export const fetchGeneralYields = async () => {
89
90
  });
90
91
  const rsethPromise = safeFetch('RSETH', async () => {
91
92
  const res = await fetch(FeedData.RSETH).then(r => r.json());
92
- return Number(res.totalAPY);
93
+ return apyToAprPercent(res.totalAPY);
94
+ });
95
+ const trumaticPromise = safeFetch('TRUMATIC', async () => {
96
+ const res = await fetch(FeedData.TRUMATIC).then(r => r.json());
97
+ return apyToAprPercent(res.apy);
93
98
  });
94
99
  const cbethPromise = safeFetch('CBETH', async () => {
95
100
  try {
@@ -99,7 +104,7 @@ export const fetchGeneralYields = async () => {
99
104
  "Content-Type": "application/json"
100
105
  }
101
106
  }).then(r => r.json());
102
- return Number(res.apy) * 100;
107
+ return apyToAprPercent(res.apy) * 100;
103
108
  }
104
109
  catch (e) {
105
110
  console.log("CBETH failed", e);
@@ -116,7 +121,7 @@ export const fetchGeneralYields = async () => {
116
121
  }
117
122
  })));
118
123
  });
119
- const [wstethData, ezethData, rethData, weethData, stmaticData, methData, maticXdata, susdeData, meridianData, savaxData, cbethData, rsethData,] = await Promise.all([
124
+ const [wstethData, ezethData, rethData, weethData, stmaticData, methData, maticXdata, susdeData, meridianData, savaxData, cbethData, rsethData, trumaticData] = await Promise.all([
120
125
  wstethPromise,
121
126
  ezethPromise,
122
127
  rethPromise,
@@ -129,6 +134,7 @@ export const fetchGeneralYields = async () => {
129
134
  savaxPromise,
130
135
  cbethPromise,
131
136
  rsethPromise,
137
+ trumaticPromise,
132
138
  ]);
133
139
  const data = {
134
140
  intrinsicYields: {
@@ -146,6 +152,7 @@ export const fetchGeneralYields = async () => {
146
152
  SAVAX: savaxData,
147
153
  CBETH: cbethData,
148
154
  RSETH: rsethData,
155
+ TRUMATIC: trumaticData,
149
156
  },
150
157
  lenderRewards: {
151
158
  "167000": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1delta/margin-fetcher",
3
- "version": "0.0.10",
3
+ "version": "0.0.13",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -0,0 +1,99 @@
1
+ export const MorphoBlueAbi = [
2
+ {
3
+ "inputs": [
4
+ {
5
+ "internalType": "Id",
6
+ "name": "",
7
+ "type": "bytes32"
8
+ },
9
+ {
10
+ "internalType": "address",
11
+ "name": "",
12
+ "type": "address"
13
+ }
14
+ ],
15
+ "name": "position",
16
+ "outputs": [
17
+ {
18
+ "internalType": "uint256",
19
+ "name": "supplyShares",
20
+ "type": "uint256"
21
+ },
22
+ {
23
+ "internalType": "uint128",
24
+ "name": "borrowShares",
25
+ "type": "uint128"
26
+ },
27
+ {
28
+ "internalType": "uint128",
29
+ "name": "collateral",
30
+ "type": "uint128"
31
+ }
32
+ ],
33
+ "stateMutability": "view",
34
+ "type": "function"
35
+ },
36
+ {
37
+ "inputs": [
38
+ {
39
+ "internalType": "bytes32[]",
40
+ "name": "slots",
41
+ "type": "bytes32[]"
42
+ }
43
+ ],
44
+ "name": "extSloads",
45
+ "outputs": [
46
+ {
47
+ "internalType": "bytes32[]",
48
+ "name": "res",
49
+ "type": "bytes32[]"
50
+ }
51
+ ],
52
+ "stateMutability": "view",
53
+ "type": "function"
54
+ },
55
+ {
56
+ "inputs": [
57
+ {
58
+ "internalType": "Id",
59
+ "name": "",
60
+ "type": "bytes32"
61
+ }
62
+ ],
63
+ "name": "market",
64
+ "outputs": [
65
+ {
66
+ "internalType": "uint128",
67
+ "name": "totalSupplyAssets",
68
+ "type": "uint128"
69
+ },
70
+ {
71
+ "internalType": "uint128",
72
+ "name": "totalSupplyShares",
73
+ "type": "uint128"
74
+ },
75
+ {
76
+ "internalType": "uint128",
77
+ "name": "totalBorrowAssets",
78
+ "type": "uint128"
79
+ },
80
+ {
81
+ "internalType": "uint128",
82
+ "name": "totalBorrowShares",
83
+ "type": "uint128"
84
+ },
85
+ {
86
+ "internalType": "uint128",
87
+ "name": "lastUpdate",
88
+ "type": "uint128"
89
+ },
90
+ {
91
+ "internalType": "uint128",
92
+ "name": "fee",
93
+ "type": "uint128"
94
+ }
95
+ ],
96
+ "stateMutability": "view",
97
+ "type": "function"
98
+ },
99
+ ] as const
@@ -0,0 +1,31 @@
1
+ export const MorphoLensAbi = [
2
+ {
3
+ "inputs": [
4
+ {
5
+ "internalType": "bytes32[]",
6
+ "name": "marketsIds",
7
+ "type": "bytes32[]"
8
+ },
9
+ {
10
+ "internalType": "address",
11
+ "name": "user",
12
+ "type": "address"
13
+ },
14
+ {
15
+ "internalType": "address",
16
+ "name": "morpho",
17
+ "type": "address"
18
+ }
19
+ ],
20
+ "name": "getUserDataCompact",
21
+ "outputs": [
22
+ {
23
+ "internalType": "bytes",
24
+ "name": "data",
25
+ "type": "bytes"
26
+ }
27
+ ],
28
+ "stateMutability": "view",
29
+ "type": "function"
30
+ }
31
+ ]
@@ -1,4 +1,5 @@
1
1
  import { RewardsMap } from "../aave-v3-type/types";
2
+ import { GenericCurrency } from "../types";
2
3
 
3
4
 
4
5
  export enum AaveV2TypeGetReserveDataIndexes {
@@ -53,6 +54,7 @@ export enum AaveV2TypeIncentivesControllerPoolInfoIndexes {
53
54
  export interface AaveV2GeneralPublicResponse {
54
55
  data: {
55
56
  [tokenSymbol: string]: {
57
+ asset: GenericCurrency
56
58
  // token amounts
57
59
  totalDeposits: number;
58
60
  totalDebtStable: number;