@defisaver/positions-sdk 2.1.29 → 2.1.31-syrup-dev

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 (133) hide show
  1. package/.mocharc.json +4 -4
  2. package/.nvmrc +1 -1
  3. package/CLAUDE.md +32 -0
  4. package/README.md +64 -64
  5. package/cjs/config/contracts.d.ts +57 -0
  6. package/cjs/config/contracts.js +4 -1
  7. package/cjs/contracts.d.ts +46351 -0
  8. package/cjs/contracts.js +20 -2
  9. package/cjs/helpers/morphoBlueHelpers/index.js +66 -66
  10. package/cjs/markets/aave/marketAssets.js +2 -2
  11. package/cjs/savings/index.d.ts +4 -3
  12. package/cjs/savings/index.js +9 -1
  13. package/cjs/savings/morphoVaults/index.js +17 -17
  14. package/cjs/savings/sparkSavingsVaults/index.d.ts +7 -0
  15. package/cjs/savings/sparkSavingsVaults/index.js +98 -0
  16. package/cjs/savings/sparkSavingsVaults/options.d.ts +6 -0
  17. package/cjs/savings/sparkSavingsVaults/options.js +35 -0
  18. package/cjs/types/savings/index.d.ts +3 -1
  19. package/cjs/types/savings/index.js +1 -0
  20. package/cjs/types/savings/sparkSavingsVaults.d.ts +14 -0
  21. package/cjs/types/savings/sparkSavingsVaults.js +9 -0
  22. package/esm/config/contracts.d.ts +57 -0
  23. package/esm/config/contracts.js +3 -0
  24. package/esm/contracts.d.ts +46351 -0
  25. package/esm/contracts.js +16 -0
  26. package/esm/helpers/morphoBlueHelpers/index.js +66 -66
  27. package/esm/markets/aave/marketAssets.js +2 -2
  28. package/esm/savings/index.d.ts +4 -3
  29. package/esm/savings/index.js +8 -1
  30. package/esm/savings/morphoVaults/index.js +17 -17
  31. package/esm/savings/sparkSavingsVaults/index.d.ts +7 -0
  32. package/esm/savings/sparkSavingsVaults/index.js +57 -0
  33. package/esm/savings/sparkSavingsVaults/options.d.ts +6 -0
  34. package/esm/savings/sparkSavingsVaults/options.js +31 -0
  35. package/esm/types/savings/index.d.ts +3 -1
  36. package/esm/types/savings/index.js +1 -0
  37. package/esm/types/savings/sparkSavingsVaults.d.ts +14 -0
  38. package/esm/types/savings/sparkSavingsVaults.js +6 -0
  39. package/package.json +48 -48
  40. package/src/aaveV2/index.ts +240 -240
  41. package/src/aaveV3/index.ts +614 -614
  42. package/src/aaveV3/merit.ts +97 -97
  43. package/src/aaveV3/merkl.ts +74 -74
  44. package/src/claiming/aaveV3.ts +154 -154
  45. package/src/claiming/compV3.ts +22 -22
  46. package/src/claiming/ethena.ts +61 -61
  47. package/src/claiming/index.ts +12 -12
  48. package/src/claiming/king.ts +66 -66
  49. package/src/claiming/morphoBlue.ts +118 -118
  50. package/src/claiming/spark.ts +225 -225
  51. package/src/compoundV2/index.ts +244 -244
  52. package/src/compoundV3/index.ts +274 -274
  53. package/src/config/contracts.ts +1285 -1282
  54. package/src/constants/index.ts +10 -10
  55. package/src/contracts.ts +160 -142
  56. package/src/curveUsd/index.ts +254 -254
  57. package/src/eulerV2/index.ts +324 -324
  58. package/src/exchange/index.ts +25 -25
  59. package/src/fluid/index.ts +1800 -1800
  60. package/src/helpers/aaveHelpers/index.ts +187 -187
  61. package/src/helpers/compoundHelpers/index.ts +283 -283
  62. package/src/helpers/curveUsdHelpers/index.ts +40 -40
  63. package/src/helpers/eulerHelpers/index.ts +222 -222
  64. package/src/helpers/fluidHelpers/index.ts +326 -326
  65. package/src/helpers/index.ts +10 -10
  66. package/src/helpers/liquityV2Helpers/index.ts +82 -82
  67. package/src/helpers/llamaLendHelpers/index.ts +53 -53
  68. package/src/helpers/makerHelpers/index.ts +52 -52
  69. package/src/helpers/morphoBlueHelpers/index.ts +396 -396
  70. package/src/helpers/sparkHelpers/index.ts +158 -158
  71. package/src/index.ts +49 -49
  72. package/src/liquity/index.ts +159 -159
  73. package/src/liquityV2/index.ts +703 -703
  74. package/src/llamaLend/index.ts +305 -305
  75. package/src/maker/index.ts +223 -223
  76. package/src/markets/aave/index.ts +118 -118
  77. package/src/markets/aave/marketAssets.ts +54 -54
  78. package/src/markets/compound/index.ts +243 -243
  79. package/src/markets/compound/marketsAssets.ts +97 -97
  80. package/src/markets/curveUsd/index.ts +69 -69
  81. package/src/markets/euler/index.ts +26 -26
  82. package/src/markets/fluid/index.ts +2900 -2900
  83. package/src/markets/index.ts +25 -25
  84. package/src/markets/liquityV2/index.ts +102 -102
  85. package/src/markets/llamaLend/contractAddresses.ts +141 -141
  86. package/src/markets/llamaLend/index.ts +235 -235
  87. package/src/markets/morphoBlue/index.ts +971 -971
  88. package/src/markets/spark/index.ts +29 -29
  89. package/src/markets/spark/marketAssets.ts +12 -12
  90. package/src/moneymarket/moneymarketCommonService.ts +85 -85
  91. package/src/morphoBlue/index.ts +274 -274
  92. package/src/portfolio/index.ts +598 -598
  93. package/src/savings/index.ts +55 -46
  94. package/src/savings/makerDsr/index.ts +53 -53
  95. package/src/savings/makerDsr/options.ts +9 -9
  96. package/src/savings/morphoVaults/index.ts +80 -80
  97. package/src/savings/morphoVaults/options.ts +203 -203
  98. package/src/savings/sparkSavingsVaults/index.ts +61 -0
  99. package/src/savings/sparkSavingsVaults/options.ts +36 -0
  100. package/src/savings/yearnVaults/index.ts +73 -73
  101. package/src/savings/yearnVaults/options.ts +32 -32
  102. package/src/services/priceService.ts +278 -278
  103. package/src/services/utils.ts +115 -115
  104. package/src/services/viem.ts +34 -34
  105. package/src/setup.ts +8 -8
  106. package/src/spark/index.ts +456 -456
  107. package/src/staking/eligibility.ts +53 -53
  108. package/src/staking/index.ts +1 -1
  109. package/src/staking/staking.ts +186 -186
  110. package/src/types/aave.ts +196 -196
  111. package/src/types/claiming.ts +114 -114
  112. package/src/types/common.ts +107 -107
  113. package/src/types/compound.ts +144 -144
  114. package/src/types/curveUsd.ts +123 -123
  115. package/src/types/euler.ts +175 -175
  116. package/src/types/fluid.ts +483 -483
  117. package/src/types/index.ts +14 -14
  118. package/src/types/liquity.ts +30 -30
  119. package/src/types/liquityV2.ts +126 -126
  120. package/src/types/llamaLend.ts +159 -159
  121. package/src/types/maker.ts +63 -63
  122. package/src/types/merit.ts +1 -1
  123. package/src/types/merkl.ts +70 -70
  124. package/src/types/morphoBlue.ts +200 -200
  125. package/src/types/portfolio.ts +60 -60
  126. package/src/types/savings/index.ts +20 -18
  127. package/src/types/savings/makerDsr.ts +13 -13
  128. package/src/types/savings/morphoVaults.ts +33 -33
  129. package/src/types/savings/sparkSavingsVaults.ts +16 -0
  130. package/src/types/savings/yearnVaults.ts +14 -14
  131. package/src/types/spark.ts +133 -133
  132. package/src/umbrella/index.ts +69 -69
  133. package/src/umbrella/umbrellaUtils.ts +29 -29
package/src/types/aave.ts CHANGED
@@ -1,196 +1,196 @@
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
-
14
- export enum AaveVersionType {
15
- V1 = 'v1',
16
- V2 = 'v2',
17
- V3 = 'v3',
18
- }
19
-
20
- export type AaveMarketInfo = {
21
- chainIds: NetworkNumber[],
22
- label: string,
23
- shortLabel: string,
24
- url: string,
25
- value: AaveVersions,
26
- assets: readonly string[],
27
- provider: '' | 'LendingPoolAddressesProvider' | 'AaveV3PoolAddressesProvider' | 'AaveV3LidoPoolAddressesProvider' | 'AaveV3EtherfiPoolAddressesProvider',
28
- providerAddress: `0x${string}`,
29
- lendingPool: '' | 'AaveLendingPoolV2' | 'AaveV3LendingPool' | 'AaveV3LidoLendingPool' | 'AaveV3EtherfiLendingPool',
30
- lendingPoolAddress: string,
31
- protocolData: '' | 'AaveProtocolDataProvider' | 'AaveV3ProtocolDataProvider' | 'AaveV3LidoProtocolDataProvider' | 'AaveV3EtherfiProtocolDataProvider',
32
- protocolDataAddress: string
33
- subVersionLabel?: string
34
- protocolName: string,
35
- disabled?: boolean,
36
- };
37
-
38
- export interface EModeCategoryData {
39
- label: string,
40
- id: number,
41
- liquidationBonus: string,
42
- liquidationRatio: string,
43
- collateralFactor: string,
44
- borrowableBitmap?: string,
45
- collateralBitmap?: string,
46
- collateralAssets: string[],
47
- borrowAssets: string[],
48
- }
49
- export interface EModeCategoryDataMapping {
50
- enteringTerms: boolean[],
51
- canEnterCategory: boolean,
52
- id: number,
53
- enabledData: {
54
- ratio: string,
55
- liqRatio: string,
56
- liqPercent: string,
57
- collRatio: string,
58
- }
59
- }
60
-
61
- export interface AaveAssetData extends MMAssetData {
62
- sortIndex?: number,
63
- isIsolated?: boolean,
64
- usageAsCollateralEnabled: boolean,
65
- isInactive: boolean,
66
- canBeWithdrawn: boolean,
67
- canBePayBacked: boolean,
68
- liquidationRatio: string,
69
- supplyCap: string,
70
- disabledStableBorrowing: boolean,
71
- borrowRateStable: string,
72
- totalBorrowVar: string,
73
- }
74
-
75
-
76
- export interface AaveV2AssetData extends AaveAssetData {
77
- priceInEth: string,
78
- isFrozen: boolean,
79
- }
80
-
81
- export interface AaveV3AssetData extends AaveAssetData {
82
- isIsolated: boolean,
83
- isSiloed: boolean,
84
- debtCeilingForIsolationMode: string,
85
- isolationModeTotalDebt: string,
86
- isolationModeBorrowingEnabled: boolean,
87
- supplyRateP2P?: string,
88
- borrowRateP2P?: string,
89
- isFrozen: boolean,
90
- isPaused: boolean,
91
- isFlashLoanEnabled: boolean,
92
- assetId: string | number | null,
93
- liquidationBonus: string,
94
- supplyIncentives: IncentiveData[];
95
- borrowIncentives: IncentiveData[];
96
- }
97
-
98
- export type EModeCategoriesData = Record<number, EModeCategoryData>;
99
-
100
- export type AaveAssetsData<T> = { [key: string]: T };
101
-
102
- export type AaveV2AssetsData = AaveAssetsData<AaveV2AssetData>;
103
-
104
- export type AaveV2MarketData = { assetsData: AaveV2AssetsData };
105
-
106
- export type AaveV3AssetsData = AaveAssetsData<AaveV3AssetData>;
107
-
108
- export type AaveV3MarketData = { assetsData: AaveV3AssetsData, eModeCategoriesData: EModeCategoriesData };
109
-
110
- export interface AaveUsedAsset extends MMUsedAsset {
111
- stableBorrowRate: string,
112
- borrowedStable: string,
113
- borrowedVariable: string,
114
- borrowedUsdStable: string,
115
- borrowedUsdVariable: string,
116
- stableLimit: string,
117
- variableLimit: string,
118
- limit: string,
119
- }
120
-
121
- export interface AaveV2UsedAsset extends AaveUsedAsset {
122
- }
123
-
124
- export interface AaveV3UsedAsset extends AaveUsedAsset {
125
- supplyRate: string,
126
- borrowRate: string,
127
- interestMode: string,
128
- collateral: boolean,
129
- }
130
-
131
- export type AaveUsedAssets<T> = { [key: string]: T };
132
-
133
- export type AaveV2UsedAssets = AaveUsedAssets<AaveV2UsedAsset>;
134
-
135
- export type AaveV3UsedAssets = AaveUsedAssets<AaveV3UsedAsset>;
136
-
137
- export interface AavePositionData extends MMPositionData {
138
- ratio: string,
139
- minRatio: string,
140
- collRatio: string,
141
- suppliedUsd: string,
142
- borrowedUsd: string,
143
- borrowLimitUsd: string,
144
- suppliedCollateralUsd: string,
145
- incentiveUsd: string,
146
- totalInterestUsd: string,
147
- isSubscribedToAutomation?: boolean,
148
- automationResubscribeRequired?: boolean,
149
- totalSupplied: string,
150
- }
151
-
152
- export interface AaveV2PositionData extends AavePositionData {
153
- usedAssets: AaveV2UsedAssets,
154
- }
155
-
156
- export interface AaveV3PositionData extends AavePositionData {
157
- usedAssets: AaveV3UsedAssets,
158
- eModeCategory: number,
159
- isInIsolationMode: boolean,
160
- isInSiloedMode: boolean,
161
- eModeCategories: { [key: number]: EModeCategoryDataMapping },
162
- }
163
-
164
- export interface AaveV3AggregatedPositionData {
165
- suppliedUsd: string,
166
- suppliedCollateralUsd: string,
167
- borrowedUsd: string,
168
- borrowLimitUsd: string,
169
- liquidationLimitUsd: string,
170
- leftToBorrowUsd: string,
171
- ratio: string,
172
- collRatio: string,
173
- netApy: string,
174
- incentiveUsd: string,
175
- totalInterestUsd: string,
176
- liqRatio: string,
177
- liqPercent: string,
178
- leveragedType: string,
179
- leveragedAsset?: string,
180
- leveragedLsdAssetRatio?: string,
181
- liquidationPrice?: string,
182
- minCollRatio?: string,
183
- collLiquidationRatio?: string,
184
- healthRatio?: string,
185
- minHealthRatio?: string,
186
- }
187
-
188
- export interface AaveHelperCommon {
189
- usedAssets: any,
190
- eModeCategory: number,
191
- eModeCategories?: { [key: number]: EModeCategoryDataMapping },
192
- eModeCategoriesData?: EModeCategoriesData,
193
- assetsData: any,
194
- selectedMarket: Partial<AaveMarketInfo>,
195
- network?: NetworkNumber,
196
- }
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
+
14
+ export enum AaveVersionType {
15
+ V1 = 'v1',
16
+ V2 = 'v2',
17
+ V3 = 'v3',
18
+ }
19
+
20
+ export type AaveMarketInfo = {
21
+ chainIds: NetworkNumber[],
22
+ label: string,
23
+ shortLabel: string,
24
+ url: string,
25
+ value: AaveVersions,
26
+ assets: readonly string[],
27
+ provider: '' | 'LendingPoolAddressesProvider' | 'AaveV3PoolAddressesProvider' | 'AaveV3LidoPoolAddressesProvider' | 'AaveV3EtherfiPoolAddressesProvider',
28
+ providerAddress: `0x${string}`,
29
+ lendingPool: '' | 'AaveLendingPoolV2' | 'AaveV3LendingPool' | 'AaveV3LidoLendingPool' | 'AaveV3EtherfiLendingPool',
30
+ lendingPoolAddress: string,
31
+ protocolData: '' | 'AaveProtocolDataProvider' | 'AaveV3ProtocolDataProvider' | 'AaveV3LidoProtocolDataProvider' | 'AaveV3EtherfiProtocolDataProvider',
32
+ protocolDataAddress: string
33
+ subVersionLabel?: string
34
+ protocolName: string,
35
+ disabled?: boolean,
36
+ };
37
+
38
+ export interface EModeCategoryData {
39
+ label: string,
40
+ id: number,
41
+ liquidationBonus: string,
42
+ liquidationRatio: string,
43
+ collateralFactor: string,
44
+ borrowableBitmap?: string,
45
+ collateralBitmap?: string,
46
+ collateralAssets: string[],
47
+ borrowAssets: string[],
48
+ }
49
+ export interface EModeCategoryDataMapping {
50
+ enteringTerms: boolean[],
51
+ canEnterCategory: boolean,
52
+ id: number,
53
+ enabledData: {
54
+ ratio: string,
55
+ liqRatio: string,
56
+ liqPercent: string,
57
+ collRatio: string,
58
+ }
59
+ }
60
+
61
+ export interface AaveAssetData extends MMAssetData {
62
+ sortIndex?: number,
63
+ isIsolated?: boolean,
64
+ usageAsCollateralEnabled: boolean,
65
+ isInactive: boolean,
66
+ canBeWithdrawn: boolean,
67
+ canBePayBacked: boolean,
68
+ liquidationRatio: string,
69
+ supplyCap: string,
70
+ disabledStableBorrowing: boolean,
71
+ borrowRateStable: string,
72
+ totalBorrowVar: string,
73
+ }
74
+
75
+
76
+ export interface AaveV2AssetData extends AaveAssetData {
77
+ priceInEth: string,
78
+ isFrozen: boolean,
79
+ }
80
+
81
+ export interface AaveV3AssetData extends AaveAssetData {
82
+ isIsolated: boolean,
83
+ isSiloed: boolean,
84
+ debtCeilingForIsolationMode: string,
85
+ isolationModeTotalDebt: string,
86
+ isolationModeBorrowingEnabled: boolean,
87
+ supplyRateP2P?: string,
88
+ borrowRateP2P?: string,
89
+ isFrozen: boolean,
90
+ isPaused: boolean,
91
+ isFlashLoanEnabled: boolean,
92
+ assetId: string | number | null,
93
+ liquidationBonus: string,
94
+ supplyIncentives: IncentiveData[];
95
+ borrowIncentives: IncentiveData[];
96
+ }
97
+
98
+ export type EModeCategoriesData = Record<number, EModeCategoryData>;
99
+
100
+ export type AaveAssetsData<T> = { [key: string]: T };
101
+
102
+ export type AaveV2AssetsData = AaveAssetsData<AaveV2AssetData>;
103
+
104
+ export type AaveV2MarketData = { assetsData: AaveV2AssetsData };
105
+
106
+ export type AaveV3AssetsData = AaveAssetsData<AaveV3AssetData>;
107
+
108
+ export type AaveV3MarketData = { assetsData: AaveV3AssetsData, eModeCategoriesData: EModeCategoriesData };
109
+
110
+ export interface AaveUsedAsset extends MMUsedAsset {
111
+ stableBorrowRate: string,
112
+ borrowedStable: string,
113
+ borrowedVariable: string,
114
+ borrowedUsdStable: string,
115
+ borrowedUsdVariable: string,
116
+ stableLimit: string,
117
+ variableLimit: string,
118
+ limit: string,
119
+ }
120
+
121
+ export interface AaveV2UsedAsset extends AaveUsedAsset {
122
+ }
123
+
124
+ export interface AaveV3UsedAsset extends AaveUsedAsset {
125
+ supplyRate: string,
126
+ borrowRate: string,
127
+ interestMode: string,
128
+ collateral: boolean,
129
+ }
130
+
131
+ export type AaveUsedAssets<T> = { [key: string]: T };
132
+
133
+ export type AaveV2UsedAssets = AaveUsedAssets<AaveV2UsedAsset>;
134
+
135
+ export type AaveV3UsedAssets = AaveUsedAssets<AaveV3UsedAsset>;
136
+
137
+ export interface AavePositionData extends MMPositionData {
138
+ ratio: string,
139
+ minRatio: string,
140
+ collRatio: string,
141
+ suppliedUsd: string,
142
+ borrowedUsd: string,
143
+ borrowLimitUsd: string,
144
+ suppliedCollateralUsd: string,
145
+ incentiveUsd: string,
146
+ totalInterestUsd: string,
147
+ isSubscribedToAutomation?: boolean,
148
+ automationResubscribeRequired?: boolean,
149
+ totalSupplied: string,
150
+ }
151
+
152
+ export interface AaveV2PositionData extends AavePositionData {
153
+ usedAssets: AaveV2UsedAssets,
154
+ }
155
+
156
+ export interface AaveV3PositionData extends AavePositionData {
157
+ usedAssets: AaveV3UsedAssets,
158
+ eModeCategory: number,
159
+ isInIsolationMode: boolean,
160
+ isInSiloedMode: boolean,
161
+ eModeCategories: { [key: number]: EModeCategoryDataMapping },
162
+ }
163
+
164
+ export interface AaveV3AggregatedPositionData {
165
+ suppliedUsd: string,
166
+ suppliedCollateralUsd: string,
167
+ borrowedUsd: string,
168
+ borrowLimitUsd: string,
169
+ liquidationLimitUsd: string,
170
+ leftToBorrowUsd: string,
171
+ ratio: string,
172
+ collRatio: string,
173
+ netApy: string,
174
+ incentiveUsd: string,
175
+ totalInterestUsd: string,
176
+ liqRatio: string,
177
+ liqPercent: string,
178
+ leveragedType: string,
179
+ leveragedAsset?: string,
180
+ leveragedLsdAssetRatio?: string,
181
+ liquidationPrice?: string,
182
+ minCollRatio?: string,
183
+ collLiquidationRatio?: string,
184
+ healthRatio?: string,
185
+ minHealthRatio?: string,
186
+ }
187
+
188
+ export interface AaveHelperCommon {
189
+ usedAssets: any,
190
+ eModeCategory: number,
191
+ eModeCategories?: { [key: number]: EModeCategoryDataMapping },
192
+ eModeCategoriesData?: EModeCategoriesData,
193
+ assetsData: any,
194
+ selectedMarket: Partial<AaveMarketInfo>,
195
+ network?: NetworkNumber,
196
+ }
@@ -1,114 +1,114 @@
1
- import { EthAddress } from './common';
2
-
3
- export enum ClaimType {
4
- /** Rewards from AAVE - various tokens & aTokens (supplied to protocol) */
5
- AAVE_REWARDS = 'AAVE_REWARDS',
6
- /** Merit rewards from AAVE (various tokens) */
7
- AAVE_MERIT_REWARDS = 'AAVE_MERIT_REWARDS',
8
- /** Rewards from Compound V3 (only in COMP) */
9
- COMPOUND_V3_COMP = 'COMPOUND_V3_COMP',
10
- /** Rewards from Spark (wstETH only for now) */
11
- SPARK_REWARDS = 'SPARK_REWARDS',
12
- /** Rewards from Morpho */
13
- MORPHO = 'MORPHO',
14
- /** Rewards from King (prev LTR^2 - received for weETH holding) */
15
- KING_REWARDS = 'KING_REWARDS',
16
- /** Spark Airdrop */
17
- SPARK_AIRDROP = 'SPARK_AIRDROP',
18
- /** Spark Airdrop */
19
- SPARK_WST_ETH_REWARDS = 'SPARK_WST_ETH_REWARDS', // TODO: This will be removed once we fully refactor spark rewards
20
-
21
- ETHENA_AIRDROP = 'ETHENA_AIRDROP',
22
- }
23
-
24
- type _ClaimableTokenPartial = {
25
- symbol: string;
26
- underlyingSymbol: string;
27
- tokenAddress: EthAddress;
28
- amount: string;
29
- walletAddress: EthAddress;
30
- label: string;
31
- };
32
- export type AaveRewardsClaimableToken = _ClaimableTokenPartial & {
33
- claimType: ClaimType.AAVE_REWARDS;
34
- additionalClaimFields: {
35
- marketAddress: EthAddress;
36
- aTokenAddresses: string[];
37
- isAaveToken: boolean;
38
- };
39
- };
40
- export type AaveMeritRewardsClaimableToken = _ClaimableTokenPartial & {
41
- claimType: ClaimType.AAVE_MERIT_REWARDS;
42
- additionalClaimFields: {
43
- accumulated: string;
44
- proof: string[];
45
- decimals: string;
46
- unclaimed: string;
47
- };
48
- };
49
-
50
- export type SparkRewardsClaimableToken = _ClaimableTokenPartial & {
51
- claimType: ClaimType.SPARK_REWARDS;
52
- additionalClaimFields: {
53
- sparkAssetAddresses: string[];
54
- };
55
- };
56
-
57
- export type KingRewardsClaimableToken = _ClaimableTokenPartial & {
58
- claimType: ClaimType.KING_REWARDS;
59
- additionalClaimFields: {
60
- allRewardsAmount: string;
61
- merkleRoot: string;
62
- merkleProofs: string[];
63
- };
64
- };
65
-
66
- export type MorphoClaimableToken = _ClaimableTokenPartial & {
67
- claimType: ClaimType.MORPHO,
68
- additionalClaimFields: {
69
- originalAmount: string,
70
- merkleProofs: string[];
71
- distributor: EthAddress;
72
- isLegacy: boolean;
73
- txData: string;
74
- }
75
- };
76
-
77
-
78
- export type CompoundV3CompClaimableToken = _ClaimableTokenPartial & {
79
- claimType: ClaimType.COMPOUND_V3_COMP,
80
- additionalClaimFields: {
81
- marketAddress: EthAddress;
82
- }
83
- };
84
-
85
- export enum SparkAirdropType {
86
- SPARK_IGNITION = 'spark-ignition',
87
- PRE_FARMING_AND_SOCIAL = 'pre-farming-and-social',
88
- }
89
-
90
- export type SparkAirdropClaimableToken = _ClaimableTokenPartial & {
91
- claimType: ClaimType.SPARK_AIRDROP,
92
- additionalClaimFields: {
93
- merkleRoot: string;
94
- merkleProofs: string[];
95
- epoch: number;
96
- rewardType: SparkAirdropType;
97
- allRewardsAmount: string;
98
- };
99
- };
100
-
101
- export type SparkWstEthRewardsClaimableToken = _ClaimableTokenPartial & { claimType: ClaimType.SPARK_WST_ETH_REWARDS };
102
-
103
- export type EthenaAirdropClaimableToken = _ClaimableTokenPartial & { claimType: ClaimType.ETHENA_AIRDROP };
104
-
105
- export type ClaimableToken =
106
- AaveRewardsClaimableToken
107
- | AaveMeritRewardsClaimableToken
108
- | CompoundV3CompClaimableToken
109
- | MorphoClaimableToken
110
- | SparkRewardsClaimableToken
111
- | KingRewardsClaimableToken
112
- | SparkAirdropClaimableToken
113
- | SparkWstEthRewardsClaimableToken
114
- | EthenaAirdropClaimableToken;
1
+ import { EthAddress } from './common';
2
+
3
+ export enum ClaimType {
4
+ /** Rewards from AAVE - various tokens & aTokens (supplied to protocol) */
5
+ AAVE_REWARDS = 'AAVE_REWARDS',
6
+ /** Merit rewards from AAVE (various tokens) */
7
+ AAVE_MERIT_REWARDS = 'AAVE_MERIT_REWARDS',
8
+ /** Rewards from Compound V3 (only in COMP) */
9
+ COMPOUND_V3_COMP = 'COMPOUND_V3_COMP',
10
+ /** Rewards from Spark (wstETH only for now) */
11
+ SPARK_REWARDS = 'SPARK_REWARDS',
12
+ /** Rewards from Morpho */
13
+ MORPHO = 'MORPHO',
14
+ /** Rewards from King (prev LTR^2 - received for weETH holding) */
15
+ KING_REWARDS = 'KING_REWARDS',
16
+ /** Spark Airdrop */
17
+ SPARK_AIRDROP = 'SPARK_AIRDROP',
18
+ /** Spark Airdrop */
19
+ SPARK_WST_ETH_REWARDS = 'SPARK_WST_ETH_REWARDS', // TODO: This will be removed once we fully refactor spark rewards
20
+
21
+ ETHENA_AIRDROP = 'ETHENA_AIRDROP',
22
+ }
23
+
24
+ type _ClaimableTokenPartial = {
25
+ symbol: string;
26
+ underlyingSymbol: string;
27
+ tokenAddress: EthAddress;
28
+ amount: string;
29
+ walletAddress: EthAddress;
30
+ label: string;
31
+ };
32
+ export type AaveRewardsClaimableToken = _ClaimableTokenPartial & {
33
+ claimType: ClaimType.AAVE_REWARDS;
34
+ additionalClaimFields: {
35
+ marketAddress: EthAddress;
36
+ aTokenAddresses: string[];
37
+ isAaveToken: boolean;
38
+ };
39
+ };
40
+ export type AaveMeritRewardsClaimableToken = _ClaimableTokenPartial & {
41
+ claimType: ClaimType.AAVE_MERIT_REWARDS;
42
+ additionalClaimFields: {
43
+ accumulated: string;
44
+ proof: string[];
45
+ decimals: string;
46
+ unclaimed: string;
47
+ };
48
+ };
49
+
50
+ export type SparkRewardsClaimableToken = _ClaimableTokenPartial & {
51
+ claimType: ClaimType.SPARK_REWARDS;
52
+ additionalClaimFields: {
53
+ sparkAssetAddresses: string[];
54
+ };
55
+ };
56
+
57
+ export type KingRewardsClaimableToken = _ClaimableTokenPartial & {
58
+ claimType: ClaimType.KING_REWARDS;
59
+ additionalClaimFields: {
60
+ allRewardsAmount: string;
61
+ merkleRoot: string;
62
+ merkleProofs: string[];
63
+ };
64
+ };
65
+
66
+ export type MorphoClaimableToken = _ClaimableTokenPartial & {
67
+ claimType: ClaimType.MORPHO,
68
+ additionalClaimFields: {
69
+ originalAmount: string,
70
+ merkleProofs: string[];
71
+ distributor: EthAddress;
72
+ isLegacy: boolean;
73
+ txData: string;
74
+ }
75
+ };
76
+
77
+
78
+ export type CompoundV3CompClaimableToken = _ClaimableTokenPartial & {
79
+ claimType: ClaimType.COMPOUND_V3_COMP,
80
+ additionalClaimFields: {
81
+ marketAddress: EthAddress;
82
+ }
83
+ };
84
+
85
+ export enum SparkAirdropType {
86
+ SPARK_IGNITION = 'spark-ignition',
87
+ PRE_FARMING_AND_SOCIAL = 'pre-farming-and-social',
88
+ }
89
+
90
+ export type SparkAirdropClaimableToken = _ClaimableTokenPartial & {
91
+ claimType: ClaimType.SPARK_AIRDROP,
92
+ additionalClaimFields: {
93
+ merkleRoot: string;
94
+ merkleProofs: string[];
95
+ epoch: number;
96
+ rewardType: SparkAirdropType;
97
+ allRewardsAmount: string;
98
+ };
99
+ };
100
+
101
+ export type SparkWstEthRewardsClaimableToken = _ClaimableTokenPartial & { claimType: ClaimType.SPARK_WST_ETH_REWARDS };
102
+
103
+ export type EthenaAirdropClaimableToken = _ClaimableTokenPartial & { claimType: ClaimType.ETHENA_AIRDROP };
104
+
105
+ export type ClaimableToken =
106
+ AaveRewardsClaimableToken
107
+ | AaveMeritRewardsClaimableToken
108
+ | CompoundV3CompClaimableToken
109
+ | MorphoClaimableToken
110
+ | SparkRewardsClaimableToken
111
+ | KingRewardsClaimableToken
112
+ | SparkAirdropClaimableToken
113
+ | SparkWstEthRewardsClaimableToken
114
+ | EthenaAirdropClaimableToken;