@defisaver/positions-sdk 2.0.14 → 2.0.15-dev-2

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 (152) hide show
  1. package/.mocharc.json +4 -4
  2. package/.nvmrc +1 -1
  3. package/README.md +64 -64
  4. package/cjs/aaveV2/index.js +9 -5
  5. package/cjs/aaveV3/index.js +63 -46
  6. package/cjs/aaveV3/merit.d.ts +17 -0
  7. package/cjs/aaveV3/merit.js +95 -0
  8. package/cjs/aaveV3/merkl.d.ts +19 -0
  9. package/cjs/aaveV3/merkl.js +98 -0
  10. package/cjs/compoundV2/index.js +13 -7
  11. package/cjs/compoundV3/index.js +7 -2
  12. package/cjs/config/contracts.d.ts +6510 -1851
  13. package/cjs/config/contracts.js +33 -12
  14. package/cjs/contracts.d.ts +178 -0
  15. package/cjs/eulerV2/index.js +11 -2
  16. package/cjs/fluid/index.js +105 -34
  17. package/cjs/helpers/aaveHelpers/index.js +0 -1
  18. package/cjs/helpers/compoundHelpers/index.d.ts +3 -5
  19. package/cjs/helpers/compoundHelpers/index.js +15 -11
  20. package/cjs/helpers/eulerHelpers/index.d.ts +0 -5
  21. package/cjs/helpers/eulerHelpers/index.js +2 -31
  22. package/cjs/helpers/fluidHelpers/index.js +2 -0
  23. package/cjs/helpers/liquityV2Helpers/index.js +3 -2
  24. package/cjs/helpers/morphoBlueHelpers/index.js +66 -66
  25. package/cjs/liquityV2/index.js +10 -2
  26. package/cjs/llamaLend/index.js +10 -2
  27. package/cjs/morphoBlue/index.js +20 -6
  28. package/cjs/spark/index.js +20 -30
  29. package/cjs/staking/eligibility.d.ts +11 -0
  30. package/cjs/staking/eligibility.js +43 -0
  31. package/cjs/staking/index.d.ts +1 -0
  32. package/cjs/staking/index.js +1 -0
  33. package/cjs/staking/staking.d.ts +1 -7
  34. package/cjs/staking/staking.js +29 -55
  35. package/cjs/types/aave.d.ts +3 -8
  36. package/cjs/types/common.d.ts +16 -4
  37. package/cjs/types/common.js +10 -1
  38. package/cjs/types/euler.d.ts +3 -3
  39. package/cjs/types/fluid.d.ts +3 -5
  40. package/cjs/types/liquityV2.d.ts +3 -3
  41. package/cjs/types/llamaLend.d.ts +3 -1
  42. package/cjs/types/morphoBlue.d.ts +3 -5
  43. package/cjs/types/spark.d.ts +0 -3
  44. package/esm/aaveV2/index.js +9 -5
  45. package/esm/aaveV3/index.js +64 -47
  46. package/esm/aaveV3/merit.d.ts +17 -0
  47. package/esm/aaveV3/merit.js +90 -0
  48. package/esm/aaveV3/merkl.d.ts +19 -0
  49. package/esm/aaveV3/merkl.js +92 -0
  50. package/esm/compoundV2/index.js +13 -7
  51. package/esm/compoundV3/index.js +7 -2
  52. package/esm/config/contracts.d.ts +6510 -1851
  53. package/esm/config/contracts.js +33 -12
  54. package/esm/contracts.d.ts +178 -0
  55. package/esm/eulerV2/index.js +11 -2
  56. package/esm/fluid/index.js +106 -35
  57. package/esm/helpers/aaveHelpers/index.js +0 -1
  58. package/esm/helpers/compoundHelpers/index.d.ts +3 -5
  59. package/esm/helpers/compoundHelpers/index.js +16 -12
  60. package/esm/helpers/eulerHelpers/index.d.ts +0 -5
  61. package/esm/helpers/eulerHelpers/index.js +2 -30
  62. package/esm/helpers/fluidHelpers/index.js +2 -0
  63. package/esm/helpers/liquityV2Helpers/index.js +3 -2
  64. package/esm/helpers/morphoBlueHelpers/index.js +66 -66
  65. package/esm/liquityV2/index.js +11 -3
  66. package/esm/llamaLend/index.js +11 -3
  67. package/esm/morphoBlue/index.js +21 -7
  68. package/esm/spark/index.js +21 -31
  69. package/esm/staking/eligibility.d.ts +11 -0
  70. package/esm/staking/eligibility.js +36 -0
  71. package/esm/staking/index.d.ts +1 -0
  72. package/esm/staking/index.js +1 -0
  73. package/esm/staking/staking.d.ts +1 -7
  74. package/esm/staking/staking.js +28 -53
  75. package/esm/types/aave.d.ts +3 -8
  76. package/esm/types/common.d.ts +16 -4
  77. package/esm/types/common.js +9 -0
  78. package/esm/types/euler.d.ts +3 -3
  79. package/esm/types/fluid.d.ts +3 -5
  80. package/esm/types/liquityV2.d.ts +3 -3
  81. package/esm/types/llamaLend.d.ts +3 -1
  82. package/esm/types/morphoBlue.d.ts +3 -5
  83. package/esm/types/spark.d.ts +0 -3
  84. package/package.json +47 -47
  85. package/src/aaveV2/index.ts +239 -236
  86. package/src/aaveV3/index.ts +511 -488
  87. package/src/aaveV3/merit.ts +98 -0
  88. package/src/aaveV3/merkl.ts +141 -0
  89. package/src/compoundV2/index.ts +244 -240
  90. package/src/compoundV3/index.ts +274 -270
  91. package/src/config/contracts.ts +1129 -1108
  92. package/src/constants/index.ts +6 -6
  93. package/src/contracts.ts +107 -107
  94. package/src/curveUsd/index.ts +250 -250
  95. package/src/eulerV2/index.ts +324 -314
  96. package/src/exchange/index.ts +25 -25
  97. package/src/fluid/index.ts +1636 -1568
  98. package/src/helpers/aaveHelpers/index.ts +169 -170
  99. package/src/helpers/compoundHelpers/index.ts +267 -261
  100. package/src/helpers/curveUsdHelpers/index.ts +40 -40
  101. package/src/helpers/eulerHelpers/index.ts +222 -259
  102. package/src/helpers/fluidHelpers/index.ts +326 -324
  103. package/src/helpers/index.ts +10 -10
  104. package/src/helpers/liquityV2Helpers/index.ts +82 -80
  105. package/src/helpers/llamaLendHelpers/index.ts +53 -53
  106. package/src/helpers/makerHelpers/index.ts +52 -52
  107. package/src/helpers/morphoBlueHelpers/index.ts +390 -390
  108. package/src/helpers/sparkHelpers/index.ts +155 -155
  109. package/src/index.ts +45 -45
  110. package/src/liquity/index.ts +104 -104
  111. package/src/liquityV2/index.ts +418 -408
  112. package/src/llamaLend/index.ts +305 -296
  113. package/src/maker/index.ts +223 -223
  114. package/src/markets/aave/index.ts +116 -116
  115. package/src/markets/aave/marketAssets.ts +49 -49
  116. package/src/markets/compound/index.ts +227 -227
  117. package/src/markets/compound/marketsAssets.ts +90 -90
  118. package/src/markets/curveUsd/index.ts +69 -69
  119. package/src/markets/euler/index.ts +26 -26
  120. package/src/markets/fluid/index.ts +2456 -2456
  121. package/src/markets/index.ts +25 -25
  122. package/src/markets/liquityV2/index.ts +102 -102
  123. package/src/markets/llamaLend/contractAddresses.ts +141 -141
  124. package/src/markets/llamaLend/index.ts +235 -235
  125. package/src/markets/morphoBlue/index.ts +895 -895
  126. package/src/markets/spark/index.ts +29 -29
  127. package/src/markets/spark/marketAssets.ts +11 -11
  128. package/src/moneymarket/moneymarketCommonService.ts +80 -80
  129. package/src/morphoBlue/index.ts +236 -222
  130. package/src/portfolio/index.ts +285 -285
  131. package/src/services/priceService.ts +159 -159
  132. package/src/services/utils.ts +63 -63
  133. package/src/services/viem.ts +32 -32
  134. package/src/setup.ts +8 -8
  135. package/src/spark/index.ts +444 -456
  136. package/src/staking/eligibility.ts +37 -0
  137. package/src/staking/index.ts +2 -1
  138. package/src/staking/staking.ts +169 -194
  139. package/src/types/aave.ts +189 -194
  140. package/src/types/common.ts +103 -88
  141. package/src/types/compound.ts +136 -136
  142. package/src/types/curveUsd.ts +121 -121
  143. package/src/types/euler.ts +175 -174
  144. package/src/types/fluid.ts +448 -450
  145. package/src/types/index.ts +11 -11
  146. package/src/types/liquity.ts +30 -30
  147. package/src/types/liquityV2.ts +126 -126
  148. package/src/types/llamaLend.ts +159 -157
  149. package/src/types/maker.ts +63 -63
  150. package/src/types/morphoBlue.ts +194 -194
  151. package/src/types/portfolio.ts +60 -60
  152. package/src/types/spark.ts +135 -137
package/src/types/aave.ts CHANGED
@@ -1,194 +1,189 @@
1
- import {
2
- MMAssetData, MMPositionData, MMUsedAsset, NetworkNumber,
3
- } from './common';
4
-
5
- export enum AaveVersions {
6
- AaveV1 = 'v1',
7
- AaveV2 = 'v2default',
8
- AaveV3 = 'v3default',
9
- AaveV3Lido = 'v3lido',
10
- AaveV3Etherfi = 'v3etherfi',
11
- }
12
- export type AaveMarketInfo = {
13
- chainIds: NetworkNumber[],
14
- label: string,
15
- shortLabel: string,
16
- url: string,
17
- value: AaveVersions,
18
- assets: readonly string[],
19
- provider: '' | 'LendingPoolAddressesProvider' | 'AaveV3PoolAddressesProvider' | 'AaveV3LidoPoolAddressesProvider' | 'AaveV3EtherfiPoolAddressesProvider',
20
- providerAddress: `0x${string}`,
21
- lendingPool: '' | 'AaveLendingPoolV2' | 'AaveV3LendingPool' | 'AaveV3LidoLendingPool' | 'AaveV3EtherfiLendingPool',
22
- lendingPoolAddress: string,
23
- protocolData: '' | 'AaveProtocolDataProvider' | 'AaveV3ProtocolDataProvider' | 'AaveV3LidoProtocolDataProvider' | 'AaveV3EtherfiProtocolDataProvider',
24
- protocolDataAddress: string
25
- subVersionLabel?: string
26
- protocolName: string,
27
- disabled?: boolean,
28
- };
29
-
30
- export interface EModeCategoryData {
31
- label: string,
32
- id: number,
33
- liquidationBonus: string,
34
- liquidationRatio: string,
35
- collateralFactor: string,
36
- borrowableBitmap?: string,
37
- collateralBitmap?: string,
38
- collateralAssets: string[],
39
- borrowAssets: string[],
40
- }
41
- export interface EModeCategoryDataMapping {
42
- enteringTerms: boolean[],
43
- canEnterCategory: boolean,
44
- id: number,
45
- enabledData: {
46
- ratio: string,
47
- liqRatio: string,
48
- liqPercent: string,
49
- collRatio: string,
50
- }
51
- }
52
-
53
- export interface AaveAssetData extends MMAssetData {
54
- sortIndex?: number,
55
- isIsolated?: boolean,
56
- usageAsCollateralEnabled: boolean,
57
- isInactive: boolean,
58
- canBeWithdrawn: boolean,
59
- canBePayBacked: boolean,
60
- liquidationRatio: string,
61
- supplyCap: string,
62
- disabledStableBorrowing: boolean,
63
- borrowRateStable: string,
64
- totalBorrowVar: string,
65
- }
66
-
67
-
68
- export interface AaveV2AssetData extends AaveAssetData {
69
- priceInEth: string,
70
- isFrozen: boolean,
71
- }
72
-
73
- export interface IncentiveData {
74
- token: string,
75
- apy: string,
76
- incentiveKind?: 'staking' | 'reward';
77
- }
78
-
79
- export interface AaveV3AssetData extends AaveAssetData {
80
- isIsolated: boolean,
81
- isSiloed: boolean,
82
- debtCeilingForIsolationMode: string,
83
- isolationModeTotalDebt: string,
84
- isolationModeBorrowingEnabled: boolean,
85
- supplyRateP2P?: string,
86
- borrowRateP2P?: string,
87
- isFrozen: boolean,
88
- isPaused: boolean,
89
- isFlashLoanEnabled: boolean,
90
- assetId: string | number | null,
91
- liquidationBonus: string,
92
- supplyIncentives?: IncentiveData[];
93
- borrowIncentives?: IncentiveData[];
94
- }
95
-
96
- export type EModeCategoriesData = Record<number, EModeCategoryData>;
97
-
98
- export type AaveAssetsData<T> = { [key: string]: T };
99
-
100
- export type AaveV2AssetsData = AaveAssetsData<AaveV2AssetData>;
101
-
102
- export type AaveV2MarketData = { assetsData: AaveV2AssetsData };
103
-
104
- export type AaveV3AssetsData = AaveAssetsData<AaveV3AssetData>;
105
-
106
- export type AaveV3MarketData = { assetsData: AaveV3AssetsData, eModeCategoriesData: EModeCategoriesData };
107
-
108
- export interface AaveUsedAsset extends MMUsedAsset {
109
- stableBorrowRate: string,
110
- borrowedStable: string,
111
- borrowedVariable: string,
112
- borrowedUsdStable: string,
113
- borrowedUsdVariable: string,
114
- stableLimit: string,
115
- variableLimit: string,
116
- limit: string,
117
- }
118
-
119
- export interface AaveV2UsedAsset extends AaveUsedAsset {
120
- }
121
-
122
- export interface AaveV3UsedAsset extends AaveUsedAsset {
123
- supplyRate: string,
124
- borrowRate: string,
125
- interestMode: string,
126
- collateral: boolean,
127
- }
128
-
129
- export type AaveUsedAssets<T> = { [key: string]: T };
130
-
131
- export type AaveV2UsedAssets = AaveUsedAssets<AaveV2UsedAsset>;
132
-
133
- export type AaveV3UsedAssets = AaveUsedAssets<AaveV3UsedAsset>;
134
-
135
- export interface AavePositionData extends MMPositionData {
136
- ratio: string,
137
- minRatio: string,
138
- collRatio: string,
139
- suppliedUsd: string,
140
- borrowedUsd: string,
141
- borrowLimitUsd: string,
142
- suppliedCollateralUsd: string,
143
- incentiveUsd: string,
144
- totalInterestUsd: string,
145
- isSubscribedToAutomation?: boolean,
146
- automationResubscribeRequired?: boolean,
147
- totalSupplied: string,
148
- }
149
-
150
- export interface AaveV2PositionData extends AavePositionData {
151
- usedAssets: AaveV2UsedAssets,
152
- }
153
-
154
- export interface AaveV3PositionData extends AavePositionData {
155
- usedAssets: AaveV3UsedAssets,
156
- eModeCategory: number,
157
- isInIsolationMode: boolean,
158
- isInSiloedMode: boolean,
159
- eModeCategories: { [key: number]: EModeCategoryDataMapping },
160
- }
161
-
162
- export interface AaveV3AggregatedPositionData {
163
- suppliedUsd: string,
164
- suppliedCollateralUsd: string,
165
- borrowedUsd: string,
166
- borrowLimitUsd: string,
167
- liquidationLimitUsd: string,
168
- leftToBorrowUsd: string,
169
- ratio: string,
170
- collRatio: string,
171
- netApy: string,
172
- incentiveUsd: string,
173
- totalInterestUsd: string,
174
- liqRatio: string,
175
- liqPercent: string,
176
- leveragedType: string,
177
- leveragedAsset?: string,
178
- leveragedLsdAssetRatio?: string,
179
- liquidationPrice?: string,
180
- minCollRatio?: string,
181
- collLiquidationRatio?: string,
182
- healthRatio?: string,
183
- minHealthRatio?: string,
184
- }
185
-
186
- export interface AaveHelperCommon {
187
- usedAssets: any,
188
- eModeCategory: number,
189
- eModeCategories?: { [key: number]: EModeCategoryDataMapping },
190
- eModeCategoriesData?: EModeCategoriesData,
191
- assetsData: any,
192
- selectedMarket: Partial<AaveMarketInfo>,
193
- network?: NetworkNumber,
194
- }
1
+ import {
2
+ IncentiveData,
3
+ MMAssetData, MMPositionData, MMUsedAsset, NetworkNumber,
4
+ } from './common';
5
+
6
+ export enum AaveVersions {
7
+ AaveV1 = 'v1',
8
+ AaveV2 = 'v2default',
9
+ AaveV3 = 'v3default',
10
+ AaveV3Lido = 'v3lido',
11
+ AaveV3Etherfi = 'v3etherfi',
12
+ }
13
+ export type AaveMarketInfo = {
14
+ chainIds: NetworkNumber[],
15
+ label: string,
16
+ shortLabel: string,
17
+ url: string,
18
+ value: AaveVersions,
19
+ assets: readonly string[],
20
+ provider: '' | 'LendingPoolAddressesProvider' | 'AaveV3PoolAddressesProvider' | 'AaveV3LidoPoolAddressesProvider' | 'AaveV3EtherfiPoolAddressesProvider',
21
+ providerAddress: `0x${string}`,
22
+ lendingPool: '' | 'AaveLendingPoolV2' | 'AaveV3LendingPool' | 'AaveV3LidoLendingPool' | 'AaveV3EtherfiLendingPool',
23
+ lendingPoolAddress: string,
24
+ protocolData: '' | 'AaveProtocolDataProvider' | 'AaveV3ProtocolDataProvider' | 'AaveV3LidoProtocolDataProvider' | 'AaveV3EtherfiProtocolDataProvider',
25
+ protocolDataAddress: string
26
+ subVersionLabel?: string
27
+ protocolName: string,
28
+ disabled?: boolean,
29
+ };
30
+
31
+ export interface EModeCategoryData {
32
+ label: string,
33
+ id: number,
34
+ liquidationBonus: string,
35
+ liquidationRatio: string,
36
+ collateralFactor: string,
37
+ borrowableBitmap?: string,
38
+ collateralBitmap?: string,
39
+ collateralAssets: string[],
40
+ borrowAssets: string[],
41
+ }
42
+ export interface EModeCategoryDataMapping {
43
+ enteringTerms: boolean[],
44
+ canEnterCategory: boolean,
45
+ id: number,
46
+ enabledData: {
47
+ ratio: string,
48
+ liqRatio: string,
49
+ liqPercent: string,
50
+ collRatio: string,
51
+ }
52
+ }
53
+
54
+ export interface AaveAssetData extends MMAssetData {
55
+ sortIndex?: number,
56
+ isIsolated?: boolean,
57
+ usageAsCollateralEnabled: boolean,
58
+ isInactive: boolean,
59
+ canBeWithdrawn: boolean,
60
+ canBePayBacked: boolean,
61
+ liquidationRatio: string,
62
+ supplyCap: string,
63
+ disabledStableBorrowing: boolean,
64
+ borrowRateStable: string,
65
+ totalBorrowVar: string,
66
+ }
67
+
68
+
69
+ export interface AaveV2AssetData extends AaveAssetData {
70
+ priceInEth: string,
71
+ isFrozen: boolean,
72
+ }
73
+
74
+ export interface AaveV3AssetData extends AaveAssetData {
75
+ isIsolated: boolean,
76
+ isSiloed: boolean,
77
+ debtCeilingForIsolationMode: string,
78
+ isolationModeTotalDebt: string,
79
+ isolationModeBorrowingEnabled: boolean,
80
+ supplyRateP2P?: string,
81
+ borrowRateP2P?: string,
82
+ isFrozen: boolean,
83
+ isPaused: boolean,
84
+ isFlashLoanEnabled: boolean,
85
+ assetId: string | number | null,
86
+ liquidationBonus: string,
87
+ supplyIncentives: IncentiveData[];
88
+ borrowIncentives: IncentiveData[];
89
+ }
90
+
91
+ export type EModeCategoriesData = Record<number, EModeCategoryData>;
92
+
93
+ export type AaveAssetsData<T> = { [key: string]: T };
94
+
95
+ export type AaveV2AssetsData = AaveAssetsData<AaveV2AssetData>;
96
+
97
+ export type AaveV2MarketData = { assetsData: AaveV2AssetsData };
98
+
99
+ export type AaveV3AssetsData = AaveAssetsData<AaveV3AssetData>;
100
+
101
+ export type AaveV3MarketData = { assetsData: AaveV3AssetsData, eModeCategoriesData: EModeCategoriesData };
102
+
103
+ export interface AaveUsedAsset extends MMUsedAsset {
104
+ stableBorrowRate: string,
105
+ borrowedStable: string,
106
+ borrowedVariable: string,
107
+ borrowedUsdStable: string,
108
+ borrowedUsdVariable: string,
109
+ stableLimit: string,
110
+ variableLimit: string,
111
+ limit: string,
112
+ }
113
+
114
+ export interface AaveV2UsedAsset extends AaveUsedAsset {
115
+ }
116
+
117
+ export interface AaveV3UsedAsset extends AaveUsedAsset {
118
+ supplyRate: string,
119
+ borrowRate: string,
120
+ interestMode: string,
121
+ collateral: boolean,
122
+ }
123
+
124
+ export type AaveUsedAssets<T> = { [key: string]: T };
125
+
126
+ export type AaveV2UsedAssets = AaveUsedAssets<AaveV2UsedAsset>;
127
+
128
+ export type AaveV3UsedAssets = AaveUsedAssets<AaveV3UsedAsset>;
129
+
130
+ export interface AavePositionData extends MMPositionData {
131
+ ratio: string,
132
+ minRatio: string,
133
+ collRatio: string,
134
+ suppliedUsd: string,
135
+ borrowedUsd: string,
136
+ borrowLimitUsd: string,
137
+ suppliedCollateralUsd: string,
138
+ incentiveUsd: string,
139
+ totalInterestUsd: string,
140
+ isSubscribedToAutomation?: boolean,
141
+ automationResubscribeRequired?: boolean,
142
+ totalSupplied: string,
143
+ }
144
+
145
+ export interface AaveV2PositionData extends AavePositionData {
146
+ usedAssets: AaveV2UsedAssets,
147
+ }
148
+
149
+ export interface AaveV3PositionData extends AavePositionData {
150
+ usedAssets: AaveV3UsedAssets,
151
+ eModeCategory: number,
152
+ isInIsolationMode: boolean,
153
+ isInSiloedMode: boolean,
154
+ eModeCategories: { [key: number]: EModeCategoryDataMapping },
155
+ }
156
+
157
+ export interface AaveV3AggregatedPositionData {
158
+ suppliedUsd: string,
159
+ suppliedCollateralUsd: string,
160
+ borrowedUsd: string,
161
+ borrowLimitUsd: string,
162
+ liquidationLimitUsd: string,
163
+ leftToBorrowUsd: string,
164
+ ratio: string,
165
+ collRatio: string,
166
+ netApy: string,
167
+ incentiveUsd: string,
168
+ totalInterestUsd: string,
169
+ liqRatio: string,
170
+ liqPercent: string,
171
+ leveragedType: string,
172
+ leveragedAsset?: string,
173
+ leveragedLsdAssetRatio?: string,
174
+ liquidationPrice?: string,
175
+ minCollRatio?: string,
176
+ collLiquidationRatio?: string,
177
+ healthRatio?: string,
178
+ minHealthRatio?: string,
179
+ }
180
+
181
+ export interface AaveHelperCommon {
182
+ usedAssets: any,
183
+ eModeCategory: number,
184
+ eModeCategories?: { [key: number]: EModeCategoryDataMapping },
185
+ eModeCategoriesData?: EModeCategoriesData,
186
+ assetsData: any,
187
+ selectedMarket: Partial<AaveMarketInfo>,
188
+ network?: NetworkNumber,
189
+ }
@@ -1,88 +1,103 @@
1
- // General
2
- export type EthAddress = HexString;
3
- export type Blockish = number | 'latest';
4
- export type AssetSymbol = string;
5
- export type Amount = string | number;
6
-
7
- export enum NetworkNumber {
8
- Eth = 1,
9
- Opt = 10,
10
- Arb = 42161,
11
- Base = 8453,
12
- Linea = 59144,
13
- }
14
- export type Networkish = string | NetworkNumber;
15
-
16
- // Common
17
- export interface MMAssetData {
18
- symbol: string,
19
- supplyRate: string,
20
- borrowRate: string,
21
- price: string,
22
- collateralFactor: string,
23
- underlyingTokenAddress: string,
24
- marketLiquidity: string,
25
- utilization: string,
26
- borrowCap: string,
27
- totalSupply: string,
28
- canBeBorrowed: boolean,
29
- canBeSupplied: boolean,
30
- totalBorrow: string,
31
- incentiveBorrowApy?: string,
32
- incentiveBorrowToken?: string,
33
- incentiveSupplyApy?: string,
34
- incentiveSupplyToken?: string,
35
- borrowRateP2P?: string,
36
- supplyRateP2P?: string,
37
- }
38
-
39
- export interface MMAssetsData {
40
- [token: string]: MMAssetData,
41
- }
42
- export interface MMMarketData {
43
- assetsData: MMAssetData[],
44
- }
45
- export interface MMUsedAsset {
46
- symbol: string,
47
- supplied: string,
48
- suppliedUsd: string,
49
- isSupplied: boolean,
50
- borrowed: string,
51
- borrowedUsd: string,
52
- isBorrowed: boolean,
53
- stableBorrowRate?: string,
54
- debt?: string,
55
- supplyRate?: string,
56
- borrowRate?: string,
57
- interestMode?: string,
58
- collateral?: boolean,
59
- }
60
- export interface MMUsedAssets {
61
- [token: string]: MMUsedAsset,
62
- }
63
- export interface MMUsedAssetWStableB extends MMUsedAsset {
64
- stableBorrowRate: string,
65
- borrowedStable: string,
66
- borrowedVariable: string,
67
- borrowedUsdStable: string,
68
- borrowedUsdVariable: string,
69
- interestMode: string,
70
- }
71
- export interface MMPositionData {
72
- usedAssets: any,
73
- netApy: string,
74
- lastUpdated: number,
75
- // ...
76
- }
77
-
78
- export type Balances = Record<AssetSymbol, Amount>;
79
- export interface PositionBalances {
80
- collateral?: Balances,
81
- debt?: Balances,
82
- selling?: Balances,
83
- deposited?: Balances,
84
- }
85
-
86
- export type EthereumProvider = { request(...args: any): Promise<any> }; // TODO
87
-
88
- export type HexString = `0x${string}`;
1
+ export enum IncentiveKind {
2
+ Staking = 'staking',
3
+ Reward = 'reward',
4
+ }
5
+
6
+ export enum IncentiveEligibilityId {
7
+ AaveV3EthenaLiquidLeverage = '0x8772bb231f3af13ead41d7ecf6abd60f5f716ec8BORROW_BL',
8
+ }
9
+
10
+ export interface IncentiveData {
11
+ token: string,
12
+ apy: string,
13
+ incentiveKind?: IncentiveKind;
14
+ description?: string;
15
+ eligibilityId?: IncentiveEligibilityId;
16
+ }
17
+
18
+ // General
19
+ export type EthAddress = HexString;
20
+ export type Blockish = number | 'latest';
21
+ export type AssetSymbol = string;
22
+ export type Amount = string | number;
23
+
24
+ export enum NetworkNumber {
25
+ Eth = 1,
26
+ Opt = 10,
27
+ Arb = 42161,
28
+ Base = 8453,
29
+ Linea = 59144,
30
+ }
31
+ export type Networkish = string | NetworkNumber;
32
+
33
+ // Common
34
+ export interface MMAssetData {
35
+ symbol: string,
36
+ supplyRate: string,
37
+ borrowRate: string,
38
+ price: string,
39
+ collateralFactor: string,
40
+ underlyingTokenAddress: string,
41
+ marketLiquidity: string,
42
+ utilization: string,
43
+ borrowCap: string,
44
+ totalSupply: string,
45
+ canBeBorrowed: boolean,
46
+ canBeSupplied: boolean,
47
+ totalBorrow: string,
48
+ borrowRateP2P?: string,
49
+ supplyRateP2P?: string,
50
+ supplyIncentives: IncentiveData[];
51
+ borrowIncentives: IncentiveData[];
52
+ }
53
+
54
+ export interface MMAssetsData {
55
+ [token: string]: MMAssetData,
56
+ }
57
+ export interface MMMarketData {
58
+ assetsData: MMAssetData[],
59
+ }
60
+ export interface MMUsedAsset {
61
+ symbol: string,
62
+ supplied: string,
63
+ suppliedUsd: string,
64
+ isSupplied: boolean,
65
+ borrowed: string,
66
+ borrowedUsd: string,
67
+ isBorrowed: boolean,
68
+ stableBorrowRate?: string,
69
+ debt?: string,
70
+ supplyRate?: string,
71
+ borrowRate?: string,
72
+ interestMode?: string,
73
+ collateral?: boolean,
74
+ }
75
+ export interface MMUsedAssets {
76
+ [token: string]: MMUsedAsset,
77
+ }
78
+ export interface MMUsedAssetWStableB extends MMUsedAsset {
79
+ stableBorrowRate: string,
80
+ borrowedStable: string,
81
+ borrowedVariable: string,
82
+ borrowedUsdStable: string,
83
+ borrowedUsdVariable: string,
84
+ interestMode: string,
85
+ }
86
+ export interface MMPositionData {
87
+ usedAssets: any,
88
+ netApy: string,
89
+ lastUpdated: number,
90
+ // ...
91
+ }
92
+
93
+ export type Balances = Record<AssetSymbol, Amount>;
94
+ export interface PositionBalances {
95
+ collateral?: Balances,
96
+ debt?: Balances,
97
+ selling?: Balances,
98
+ deposited?: Balances,
99
+ }
100
+
101
+ export type EthereumProvider = { request(...args: any): Promise<any> }; // TODO
102
+
103
+ export type HexString = `0x${string}`;