@defisaver/positions-sdk 2.1.54 → 2.1.56-dev-exposure

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 (184) hide show
  1. package/.mocharc.json +4 -4
  2. package/.nvmrc +1 -1
  3. package/README.md +64 -64
  4. package/cjs/aaveV3/index.d.ts +1 -0
  5. package/cjs/aaveV3/index.js +5 -2
  6. package/cjs/compoundV2/index.d.ts +1 -0
  7. package/cjs/compoundV2/index.js +1 -0
  8. package/cjs/compoundV3/index.d.ts +1 -0
  9. package/cjs/compoundV3/index.js +1 -0
  10. package/cjs/eulerV2/index.d.ts +1 -0
  11. package/cjs/eulerV2/index.js +1 -0
  12. package/cjs/fluid/index.d.ts +3 -0
  13. package/cjs/helpers/aaveHelpers/index.js +1 -0
  14. package/cjs/helpers/compoundHelpers/index.js +2 -0
  15. package/cjs/helpers/curveUsdHelpers/index.js +1 -0
  16. package/cjs/helpers/eulerHelpers/index.js +1 -0
  17. package/cjs/helpers/fluidHelpers/index.js +1 -0
  18. package/cjs/helpers/liquityV2Helpers/index.js +1 -0
  19. package/cjs/helpers/llamaLendHelpers/index.js +1 -0
  20. package/cjs/helpers/morphoBlueHelpers/index.js +67 -66
  21. package/cjs/helpers/sparkHelpers/index.js +1 -0
  22. package/cjs/liquity/index.js +2 -0
  23. package/cjs/maker/index.js +2 -0
  24. package/cjs/markets/morphoBlue/index.d.ts +4 -0
  25. package/cjs/markets/morphoBlue/index.js +36 -2
  26. package/cjs/moneymarket/moneymarketCommonService.d.ts +1 -0
  27. package/cjs/moneymarket/moneymarketCommonService.js +8 -1
  28. package/cjs/savings/morphoVaults/index.js +17 -17
  29. package/cjs/spark/index.d.ts +1 -0
  30. package/cjs/spark/index.js +1 -0
  31. package/cjs/types/aave.d.ts +1 -0
  32. package/cjs/types/common.d.ts +1 -0
  33. package/cjs/types/compound.d.ts +1 -0
  34. package/cjs/types/curveUsd.d.ts +2 -0
  35. package/cjs/types/euler.d.ts +1 -0
  36. package/cjs/types/fluid.d.ts +1 -0
  37. package/cjs/types/liquity.d.ts +1 -0
  38. package/cjs/types/liquityV2.d.ts +2 -0
  39. package/cjs/types/llamaLend.d.ts +2 -0
  40. package/cjs/types/maker.d.ts +1 -0
  41. package/cjs/types/morphoBlue.d.ts +4 -0
  42. package/cjs/types/morphoBlue.js +2 -0
  43. package/cjs/types/spark.d.ts +1 -0
  44. package/esm/aaveV3/index.d.ts +1 -0
  45. package/esm/aaveV3/index.js +5 -2
  46. package/esm/compoundV2/index.d.ts +1 -0
  47. package/esm/compoundV2/index.js +1 -0
  48. package/esm/compoundV3/index.d.ts +1 -0
  49. package/esm/compoundV3/index.js +1 -0
  50. package/esm/eulerV2/index.d.ts +1 -0
  51. package/esm/eulerV2/index.js +1 -0
  52. package/esm/fluid/index.d.ts +3 -0
  53. package/esm/helpers/aaveHelpers/index.js +2 -1
  54. package/esm/helpers/compoundHelpers/index.js +3 -1
  55. package/esm/helpers/curveUsdHelpers/index.js +2 -1
  56. package/esm/helpers/eulerHelpers/index.js +2 -1
  57. package/esm/helpers/fluidHelpers/index.js +2 -1
  58. package/esm/helpers/liquityV2Helpers/index.js +2 -1
  59. package/esm/helpers/llamaLendHelpers/index.js +2 -1
  60. package/esm/helpers/morphoBlueHelpers/index.js +68 -67
  61. package/esm/helpers/sparkHelpers/index.js +2 -1
  62. package/esm/liquity/index.js +2 -0
  63. package/esm/maker/index.js +2 -0
  64. package/esm/markets/morphoBlue/index.d.ts +4 -0
  65. package/esm/markets/morphoBlue/index.js +32 -0
  66. package/esm/moneymarket/moneymarketCommonService.d.ts +1 -0
  67. package/esm/moneymarket/moneymarketCommonService.js +6 -0
  68. package/esm/savings/morphoVaults/index.js +17 -17
  69. package/esm/spark/index.d.ts +1 -0
  70. package/esm/spark/index.js +1 -0
  71. package/esm/types/aave.d.ts +1 -0
  72. package/esm/types/common.d.ts +1 -0
  73. package/esm/types/compound.d.ts +1 -0
  74. package/esm/types/curveUsd.d.ts +2 -0
  75. package/esm/types/euler.d.ts +1 -0
  76. package/esm/types/fluid.d.ts +1 -0
  77. package/esm/types/liquity.d.ts +1 -0
  78. package/esm/types/liquityV2.d.ts +2 -0
  79. package/esm/types/llamaLend.d.ts +2 -0
  80. package/esm/types/maker.d.ts +1 -0
  81. package/esm/types/morphoBlue.d.ts +4 -0
  82. package/esm/types/morphoBlue.js +2 -0
  83. package/esm/types/spark.d.ts +1 -0
  84. package/package.json +48 -48
  85. package/src/aaveV2/index.ts +240 -240
  86. package/src/aaveV3/index.ts +638 -635
  87. package/src/aaveV3/merit.ts +97 -97
  88. package/src/aaveV3/merkl.ts +74 -74
  89. package/src/claiming/aaveV3.ts +154 -154
  90. package/src/claiming/compV3.ts +22 -22
  91. package/src/claiming/ethena.ts +61 -61
  92. package/src/claiming/index.ts +12 -12
  93. package/src/claiming/king.ts +66 -66
  94. package/src/claiming/morphoBlue.ts +118 -118
  95. package/src/claiming/spark.ts +225 -225
  96. package/src/compoundV2/index.ts +245 -244
  97. package/src/compoundV3/index.ts +275 -274
  98. package/src/config/contracts.ts +1320 -1320
  99. package/src/constants/index.ts +10 -10
  100. package/src/contracts.ts +171 -171
  101. package/src/curveUsd/index.ts +254 -254
  102. package/src/eulerV2/index.ts +325 -324
  103. package/src/exchange/index.ts +25 -25
  104. package/src/fluid/index.ts +1800 -1800
  105. package/src/helpers/aaveHelpers/index.ts +203 -202
  106. package/src/helpers/compoundHelpers/index.ts +278 -276
  107. package/src/helpers/curveUsdHelpers/index.ts +44 -40
  108. package/src/helpers/eulerHelpers/index.ts +230 -229
  109. package/src/helpers/fluidHelpers/index.ts +338 -335
  110. package/src/helpers/index.ts +10 -10
  111. package/src/helpers/liquityV2Helpers/index.ts +85 -82
  112. package/src/helpers/llamaLendHelpers/index.ts +56 -53
  113. package/src/helpers/makerHelpers/index.ts +52 -52
  114. package/src/helpers/morphoBlueHelpers/index.ts +406 -405
  115. package/src/helpers/sparkHelpers/index.ts +170 -169
  116. package/src/index.ts +49 -49
  117. package/src/liquity/index.ts +161 -159
  118. package/src/liquityV2/index.ts +703 -703
  119. package/src/llamaLend/index.ts +305 -305
  120. package/src/maker/index.ts +225 -223
  121. package/src/markets/aave/index.ts +118 -118
  122. package/src/markets/aave/marketAssets.ts +54 -54
  123. package/src/markets/compound/index.ts +243 -243
  124. package/src/markets/compound/marketsAssets.ts +97 -97
  125. package/src/markets/curveUsd/index.ts +69 -69
  126. package/src/markets/euler/index.ts +26 -26
  127. package/src/markets/fluid/index.ts +2900 -2900
  128. package/src/markets/index.ts +25 -25
  129. package/src/markets/liquityV2/index.ts +102 -102
  130. package/src/markets/llamaLend/contractAddresses.ts +141 -141
  131. package/src/markets/llamaLend/index.ts +235 -235
  132. package/src/markets/morphoBlue/index.ts +1020 -988
  133. package/src/markets/spark/index.ts +29 -29
  134. package/src/markets/spark/marketAssets.ts +12 -12
  135. package/src/moneymarket/moneymarketCommonService.ts +90 -84
  136. package/src/morphoBlue/index.ts +274 -274
  137. package/src/portfolio/index.ts +586 -586
  138. package/src/savings/index.ts +95 -95
  139. package/src/savings/makerDsr/index.ts +53 -53
  140. package/src/savings/makerDsr/options.ts +9 -9
  141. package/src/savings/morphoVaults/index.ts +80 -80
  142. package/src/savings/morphoVaults/options.ts +193 -193
  143. package/src/savings/skyOptions/index.ts +95 -95
  144. package/src/savings/skyOptions/options.ts +10 -10
  145. package/src/savings/sparkSavingsVaults/index.ts +60 -60
  146. package/src/savings/sparkSavingsVaults/options.ts +35 -35
  147. package/src/savings/yearnV3Vaults/index.ts +61 -61
  148. package/src/savings/yearnV3Vaults/options.ts +55 -55
  149. package/src/savings/yearnVaults/index.ts +73 -73
  150. package/src/savings/yearnVaults/options.ts +32 -32
  151. package/src/services/priceService.ts +278 -278
  152. package/src/services/utils.ts +115 -115
  153. package/src/services/viem.ts +57 -57
  154. package/src/setup.ts +8 -8
  155. package/src/spark/index.ts +460 -459
  156. package/src/staking/eligibility.ts +53 -53
  157. package/src/staking/index.ts +1 -1
  158. package/src/staking/staking.ts +192 -192
  159. package/src/types/aave.ts +200 -199
  160. package/src/types/claiming.ts +114 -114
  161. package/src/types/common.ts +116 -115
  162. package/src/types/compound.ts +146 -145
  163. package/src/types/curveUsd.ts +125 -123
  164. package/src/types/euler.ts +177 -176
  165. package/src/types/fluid.ts +486 -485
  166. package/src/types/index.ts +15 -15
  167. package/src/types/liquity.ts +31 -30
  168. package/src/types/liquityV2.ts +130 -128
  169. package/src/types/llamaLend.ts +163 -161
  170. package/src/types/maker.ts +64 -63
  171. package/src/types/merit.ts +1 -1
  172. package/src/types/merkl.ts +70 -70
  173. package/src/types/morphoBlue.ts +206 -202
  174. package/src/types/portfolio.ts +60 -60
  175. package/src/types/savings/index.ts +23 -23
  176. package/src/types/savings/makerDsr.ts +13 -13
  177. package/src/types/savings/morphoVaults.ts +32 -32
  178. package/src/types/savings/sky.ts +14 -14
  179. package/src/types/savings/sparkSavingsVaults.ts +15 -15
  180. package/src/types/savings/yearnV3Vaults.ts +17 -17
  181. package/src/types/savings/yearnVaults.ts +14 -14
  182. package/src/types/spark.ts +136 -135
  183. package/src/umbrella/index.ts +69 -69
  184. package/src/umbrella/umbrellaUtils.ts +29 -29
@@ -1,115 +1,116 @@
1
- export enum IncentiveKind {
2
- Staking = 'staking',
3
- Reward = 'reward',
4
- }
5
-
6
- export enum IncentiveEligibilityId {
7
- AaveV3EthenaLiquidLeverage = '0x8014e0076e5393e62c49a7134070d8fccc922e46BORROW_BL',
8
- AaveV3ArbitrumEthSupply = '0x5d16261c6715a653248269861bbacf68a9774cde',
9
- AaveV3ArbitrumETHLSBorrow = '0x0c84331e39d6658Cd6e6b9ba04736cC4c4734351',
10
- AaveV3EthenaLiquidLeveragePlasma = '0x67264783f1e9a2af8627a235853057a6fc975bd2BORROW_BL',
11
- }
12
-
13
- export enum LeverageType {
14
- Long = 'long',
15
- Short = 'short',
16
- VolatilePair = 'volatile-pair',
17
- VolatilePairReverse = 'volatile-pair-reverse',
18
- None = '',
19
- }
20
-
21
- export interface IncentiveData {
22
- token: string,
23
- apy: string,
24
- incentiveKind?: IncentiveKind;
25
- description?: string;
26
- eligibilityId?: IncentiveEligibilityId;
27
- }
28
-
29
- // General
30
- export type EthAddress = HexString;
31
- export type Blockish = number | 'latest';
32
- export type AssetSymbol = string;
33
- export type Amount = string | number;
34
-
35
- export enum NetworkNumber {
36
- Eth = 1,
37
- Opt = 10,
38
- Arb = 42161,
39
- Base = 8453,
40
- Linea = 59144,
41
- Plasma = 9745,
42
- }
43
- export type Networkish = string | NetworkNumber;
44
-
45
- // Common
46
- export interface MMAssetData {
47
- symbol: string,
48
- supplyRate: string,
49
- borrowRate: string,
50
- price: string,
51
- collateralFactor: string,
52
- underlyingTokenAddress: string,
53
- marketLiquidity: string,
54
- utilization: string,
55
- borrowCap: string,
56
- totalSupply: string,
57
- canBeBorrowed: boolean,
58
- canBeSupplied: boolean,
59
- totalBorrow: string,
60
- borrowRateP2P?: string,
61
- supplyRateP2P?: string,
62
- supplyIncentives: IncentiveData[];
63
- borrowIncentives: IncentiveData[];
64
- }
65
-
66
- export interface MMAssetsData {
67
- [token: string]: MMAssetData,
68
- }
69
- export interface MMMarketData {
70
- assetsData: MMAssetData[],
71
- }
72
- export interface MMUsedAsset {
73
- symbol: string,
74
- supplied: string,
75
- suppliedUsd: string,
76
- isSupplied: boolean,
77
- borrowed: string,
78
- borrowedUsd: string,
79
- isBorrowed: boolean,
80
- stableBorrowRate?: string,
81
- debt?: string,
82
- supplyRate?: string,
83
- borrowRate?: string,
84
- interestMode?: string,
85
- collateral?: boolean,
86
- }
87
- export interface MMUsedAssets {
88
- [token: string]: MMUsedAsset,
89
- }
90
- export interface MMUsedAssetWStableB extends MMUsedAsset {
91
- stableBorrowRate: string,
92
- borrowedStable: string,
93
- borrowedVariable: string,
94
- borrowedUsdStable: string,
95
- borrowedUsdVariable: string,
96
- interestMode: string,
97
- }
98
- export interface MMPositionData {
99
- usedAssets: any,
100
- netApy: string,
101
- lastUpdated: number,
102
- // ...
103
- }
104
-
105
- export type Balances = Record<AssetSymbol, Amount>;
106
- export interface PositionBalances {
107
- collateral?: Balances,
108
- debt?: Balances,
109
- selling?: Balances,
110
- deposited?: Balances,
111
- }
112
-
113
- export type EthereumProvider = { request(...args: any): Promise<any> }; // TODO
114
-
115
- export type HexString = `0x${string}`;
1
+ export enum IncentiveKind {
2
+ Staking = 'staking',
3
+ Reward = 'reward',
4
+ }
5
+
6
+ export enum IncentiveEligibilityId {
7
+ AaveV3EthenaLiquidLeverage = '0x8014e0076e5393e62c49a7134070d8fccc922e46BORROW_BL',
8
+ AaveV3ArbitrumEthSupply = '0x5d16261c6715a653248269861bbacf68a9774cde',
9
+ AaveV3ArbitrumETHLSBorrow = '0x0c84331e39d6658Cd6e6b9ba04736cC4c4734351',
10
+ AaveV3EthenaLiquidLeveragePlasma = '0x67264783f1e9a2af8627a235853057a6fc975bd2BORROW_BL',
11
+ }
12
+
13
+ export enum LeverageType {
14
+ Long = 'long',
15
+ Short = 'short',
16
+ VolatilePair = 'volatile-pair',
17
+ VolatilePairReverse = 'volatile-pair-reverse',
18
+ None = '',
19
+ }
20
+
21
+ export interface IncentiveData {
22
+ token: string,
23
+ apy: string,
24
+ incentiveKind?: IncentiveKind;
25
+ description?: string;
26
+ eligibilityId?: IncentiveEligibilityId;
27
+ }
28
+
29
+ // General
30
+ export type EthAddress = HexString;
31
+ export type Blockish = number | 'latest';
32
+ export type AssetSymbol = string;
33
+ export type Amount = string | number;
34
+
35
+ export enum NetworkNumber {
36
+ Eth = 1,
37
+ Opt = 10,
38
+ Arb = 42161,
39
+ Base = 8453,
40
+ Linea = 59144,
41
+ Plasma = 9745,
42
+ }
43
+ export type Networkish = string | NetworkNumber;
44
+
45
+ // Common
46
+ export interface MMAssetData {
47
+ symbol: string,
48
+ supplyRate: string,
49
+ borrowRate: string,
50
+ price: string,
51
+ collateralFactor: string,
52
+ underlyingTokenAddress: string,
53
+ marketLiquidity: string,
54
+ utilization: string,
55
+ borrowCap: string,
56
+ totalSupply: string,
57
+ canBeBorrowed: boolean,
58
+ canBeSupplied: boolean,
59
+ totalBorrow: string,
60
+ borrowRateP2P?: string,
61
+ supplyRateP2P?: string,
62
+ supplyIncentives: IncentiveData[];
63
+ borrowIncentives: IncentiveData[];
64
+ }
65
+
66
+ export interface MMAssetsData {
67
+ [token: string]: MMAssetData,
68
+ }
69
+ export interface MMMarketData {
70
+ assetsData: MMAssetData[],
71
+ }
72
+ export interface MMUsedAsset {
73
+ symbol: string,
74
+ supplied: string,
75
+ suppliedUsd: string,
76
+ isSupplied: boolean,
77
+ borrowed: string,
78
+ borrowedUsd: string,
79
+ isBorrowed: boolean,
80
+ stableBorrowRate?: string,
81
+ debt?: string,
82
+ supplyRate?: string,
83
+ borrowRate?: string,
84
+ interestMode?: string,
85
+ collateral?: boolean,
86
+ }
87
+ export interface MMUsedAssets {
88
+ [token: string]: MMUsedAsset,
89
+ }
90
+ export interface MMUsedAssetWStableB extends MMUsedAsset {
91
+ stableBorrowRate: string,
92
+ borrowedStable: string,
93
+ borrowedVariable: string,
94
+ borrowedUsdStable: string,
95
+ borrowedUsdVariable: string,
96
+ interestMode: string,
97
+ }
98
+ export interface MMPositionData {
99
+ usedAssets: any,
100
+ netApy: string,
101
+ lastUpdated: number,
102
+ exposure: string,
103
+ // ...
104
+ }
105
+
106
+ export type Balances = Record<AssetSymbol, Amount>;
107
+ export interface PositionBalances {
108
+ collateral?: Balances,
109
+ debt?: Balances,
110
+ selling?: Balances,
111
+ deposited?: Balances,
112
+ }
113
+
114
+ export type EthereumProvider = { request(...args: any): Promise<any> }; // TODO
115
+
116
+ export type HexString = `0x${string}`;
@@ -1,146 +1,147 @@
1
- import {
2
- EthAddress,
3
- LeverageType,
4
- MMAssetData,
5
- MMPositionData,
6
- MMUsedAsset,
7
- NetworkNumber,
8
- } from './common';
9
-
10
- export enum CompoundVersions {
11
- 'CompoundV2' = 'v2',
12
- 'CompoundV3USDC' = 'v3-USDC',
13
- 'CompoundV3USDCe' = 'v3-USDC.e',
14
- 'CompoundV3ETH' = 'v3-ETH',
15
- 'CompoundV3USDbC' = 'v3-USDbC',
16
- 'CompoundV3USDT' = 'v3-USDT',
17
- 'CompoundV3USDS' = 'v3-USDS',
18
- 'CompoundV3wstETH' = 'v3-wstETH',
19
- }
20
-
21
- export enum CompoundVersionType {
22
- V2 = 'v2',
23
- V3 = 'v3',
24
- }
25
-
26
- export interface CompoundBulkerOptions {
27
- supply: number | string,
28
- withdraw: number | string,
29
- }
30
-
31
- export interface CompoundMarketData {
32
- chainIds: NetworkNumber[],
33
- label: string,
34
- shortLabel: string,
35
- value: CompoundVersions,
36
- baseAsset: string,
37
- collAssets: readonly string[],
38
- baseMarket: string,
39
- baseMarketAddress: EthAddress,
40
- secondLabel: string,
41
- bulkerName: string,
42
- bulkerAddress: EthAddress,
43
- bulkerOptions: CompoundBulkerOptions,
44
- // icon: Function,
45
- }
46
-
47
- export interface CompoundUsedAsset extends MMUsedAsset {
48
- collateral: boolean,
49
- limit?: string,
50
- }
51
-
52
- export interface CompoundV2UsedAsset extends CompoundUsedAsset {
53
- }
54
- export interface CompoundV3UsedAsset extends CompoundUsedAsset {
55
- }
56
-
57
- export interface CompoundUsedAssets<T> {
58
- [token: string]: T,
59
- }
60
-
61
- export type CompoundV2UsedAssets = CompoundUsedAssets<CompoundV2UsedAsset>;
62
- export type CompoundV3UsedAssets = CompoundUsedAssets<CompoundV3UsedAsset>;
63
-
64
- export interface CompoundAssetData extends MMAssetData {
65
- supplyCapAlternative?: string,
66
- totalSupplyAlternative?: string,
67
- sortIndex?: number,
68
- }
69
-
70
- export interface CompoundV2AssetData extends CompoundAssetData {
71
- }
72
- export interface CompoundV3AssetData extends CompoundAssetData {
73
- borrowCollateralFactor: string,
74
- liquidateCollateralFactor: string,
75
- liquidationFactor: string,
76
- minDebt: string,
77
- supplyReserved: string,
78
- liquidationRatio: string,
79
- supplyCap: string,
80
- priceInBaseAsset: string,
81
- }
82
-
83
- export interface CompoundAssetsData<T> {
84
- [token: string]: T
85
- }
86
- export type CompoundV2AssetsData = CompoundAssetsData<CompoundV2AssetData>;
87
- export type CompoundV3AssetsData = CompoundAssetsData<CompoundV3AssetData>;
88
-
89
- export type CompoundMarketsData<T> = { assetsData: T };
90
- export type CompoundV2MarketsData = CompoundMarketsData<CompoundV2AssetsData>;
91
- export type CompoundV3MarketsData = CompoundMarketsData<CompoundV3AssetsData>;
92
-
93
- export interface BaseAdditionalAssetData {
94
- totalBorrow: string,
95
- utilization: string,
96
- marketLiquidity: string,
97
- rewardSupplySpeed: string,
98
- rewardBorrowSpeed: string,
99
- minDebt: string,
100
- isBase: boolean,
101
- }
102
-
103
- export interface CompoundAggregatedPositionData {
104
- suppliedUsd: string,
105
- suppliedCollateralUsd: string,
106
- borrowedUsd: string,
107
- borrowLimitUsd: string,
108
- liquidationLimitUsd: string,
109
- leftToBorrowUsd: string,
110
- ratio: string,
111
- collRatio: string,
112
- netApy: string,
113
- incentiveUsd: string,
114
- totalInterestUsd: string,
115
- liqRatio: string,
116
- liqPercent: string,
117
- leveragedType: LeverageType,
118
- leveragedAsset?: string,
119
- currentVolatilePairRatio?: string,
120
- liquidationPrice?: string,
121
- minRatio: string,
122
- debtTooLow: boolean,
123
- minDebt: string,
124
- minCollRatio: string,
125
- collLiquidationRatio: string,
126
- }
127
-
128
- export interface CompoundPositionData extends MMPositionData {
129
- ratio: string,
130
- minRatio: string,
131
- suppliedUsd: string,
132
- borrowedUsd: string,
133
- borrowLimitUsd: string,
134
- incentiveUsd: string,
135
- totalInterestUsd: string,
136
- isSubscribedToAutomation?: boolean,
137
- automationResubscribeRequired?: boolean,
138
- }
139
-
140
- export interface CompoundV2PositionData extends CompoundPositionData {
141
- usedAssets: CompoundV2UsedAssets,
142
- }
143
-
144
- export interface CompoundV3PositionData extends CompoundPositionData {
145
- usedAssets: CompoundV3UsedAssets,
1
+ import {
2
+ EthAddress,
3
+ LeverageType,
4
+ MMAssetData,
5
+ MMPositionData,
6
+ MMUsedAsset,
7
+ NetworkNumber,
8
+ } from './common';
9
+
10
+ export enum CompoundVersions {
11
+ 'CompoundV2' = 'v2',
12
+ 'CompoundV3USDC' = 'v3-USDC',
13
+ 'CompoundV3USDCe' = 'v3-USDC.e',
14
+ 'CompoundV3ETH' = 'v3-ETH',
15
+ 'CompoundV3USDbC' = 'v3-USDbC',
16
+ 'CompoundV3USDT' = 'v3-USDT',
17
+ 'CompoundV3USDS' = 'v3-USDS',
18
+ 'CompoundV3wstETH' = 'v3-wstETH',
19
+ }
20
+
21
+ export enum CompoundVersionType {
22
+ V2 = 'v2',
23
+ V3 = 'v3',
24
+ }
25
+
26
+ export interface CompoundBulkerOptions {
27
+ supply: number | string,
28
+ withdraw: number | string,
29
+ }
30
+
31
+ export interface CompoundMarketData {
32
+ chainIds: NetworkNumber[],
33
+ label: string,
34
+ shortLabel: string,
35
+ value: CompoundVersions,
36
+ baseAsset: string,
37
+ collAssets: readonly string[],
38
+ baseMarket: string,
39
+ baseMarketAddress: EthAddress,
40
+ secondLabel: string,
41
+ bulkerName: string,
42
+ bulkerAddress: EthAddress,
43
+ bulkerOptions: CompoundBulkerOptions,
44
+ // icon: Function,
45
+ }
46
+
47
+ export interface CompoundUsedAsset extends MMUsedAsset {
48
+ collateral: boolean,
49
+ limit?: string,
50
+ }
51
+
52
+ export interface CompoundV2UsedAsset extends CompoundUsedAsset {
53
+ }
54
+ export interface CompoundV3UsedAsset extends CompoundUsedAsset {
55
+ }
56
+
57
+ export interface CompoundUsedAssets<T> {
58
+ [token: string]: T,
59
+ }
60
+
61
+ export type CompoundV2UsedAssets = CompoundUsedAssets<CompoundV2UsedAsset>;
62
+ export type CompoundV3UsedAssets = CompoundUsedAssets<CompoundV3UsedAsset>;
63
+
64
+ export interface CompoundAssetData extends MMAssetData {
65
+ supplyCapAlternative?: string,
66
+ totalSupplyAlternative?: string,
67
+ sortIndex?: number,
68
+ }
69
+
70
+ export interface CompoundV2AssetData extends CompoundAssetData {
71
+ }
72
+ export interface CompoundV3AssetData extends CompoundAssetData {
73
+ borrowCollateralFactor: string,
74
+ liquidateCollateralFactor: string,
75
+ liquidationFactor: string,
76
+ minDebt: string,
77
+ supplyReserved: string,
78
+ liquidationRatio: string,
79
+ supplyCap: string,
80
+ priceInBaseAsset: string,
81
+ }
82
+
83
+ export interface CompoundAssetsData<T> {
84
+ [token: string]: T
85
+ }
86
+ export type CompoundV2AssetsData = CompoundAssetsData<CompoundV2AssetData>;
87
+ export type CompoundV3AssetsData = CompoundAssetsData<CompoundV3AssetData>;
88
+
89
+ export type CompoundMarketsData<T> = { assetsData: T };
90
+ export type CompoundV2MarketsData = CompoundMarketsData<CompoundV2AssetsData>;
91
+ export type CompoundV3MarketsData = CompoundMarketsData<CompoundV3AssetsData>;
92
+
93
+ export interface BaseAdditionalAssetData {
94
+ totalBorrow: string,
95
+ utilization: string,
96
+ marketLiquidity: string,
97
+ rewardSupplySpeed: string,
98
+ rewardBorrowSpeed: string,
99
+ minDebt: string,
100
+ isBase: boolean,
101
+ }
102
+
103
+ export interface CompoundAggregatedPositionData {
104
+ suppliedUsd: string,
105
+ suppliedCollateralUsd: string,
106
+ borrowedUsd: string,
107
+ borrowLimitUsd: string,
108
+ liquidationLimitUsd: string,
109
+ leftToBorrowUsd: string,
110
+ ratio: string,
111
+ collRatio: string,
112
+ netApy: string,
113
+ incentiveUsd: string,
114
+ totalInterestUsd: string,
115
+ liqRatio: string,
116
+ liqPercent: string,
117
+ leveragedType: LeverageType,
118
+ leveragedAsset?: string,
119
+ currentVolatilePairRatio?: string,
120
+ liquidationPrice?: string,
121
+ minRatio: string,
122
+ debtTooLow: boolean,
123
+ minDebt: string,
124
+ minCollRatio: string,
125
+ collLiquidationRatio: string,
126
+ exposure: string,
127
+ }
128
+
129
+ export interface CompoundPositionData extends MMPositionData {
130
+ ratio: string,
131
+ minRatio: string,
132
+ suppliedUsd: string,
133
+ borrowedUsd: string,
134
+ borrowLimitUsd: string,
135
+ incentiveUsd: string,
136
+ totalInterestUsd: string,
137
+ isSubscribedToAutomation?: boolean,
138
+ automationResubscribeRequired?: boolean,
139
+ }
140
+
141
+ export interface CompoundV2PositionData extends CompoundPositionData {
142
+ usedAssets: CompoundV2UsedAssets,
143
+ }
144
+
145
+ export interface CompoundV3PositionData extends CompoundPositionData {
146
+ usedAssets: CompoundV3UsedAssets,
146
147
  }