@defisaver/positions-sdk 2.1.42 → 2.1.43-dev-stats-test-1-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 (114) hide show
  1. package/.mocharc.json +4 -4
  2. package/.nvmrc +1 -1
  3. package/README.md +64 -64
  4. package/cjs/aaveV3/index.js +31 -9
  5. package/cjs/aaveV3/merit.js +5 -1
  6. package/cjs/aaveV3/merkl.js +1 -0
  7. package/cjs/helpers/morphoBlueHelpers/index.js +66 -66
  8. package/cjs/savings/morphoVaults/index.js +17 -17
  9. package/esm/aaveV3/index.js +31 -9
  10. package/esm/aaveV3/merit.js +5 -1
  11. package/esm/aaveV3/merkl.js +1 -0
  12. package/esm/helpers/morphoBlueHelpers/index.js +66 -66
  13. package/esm/savings/morphoVaults/index.js +17 -17
  14. package/package.json +48 -48
  15. package/src/aaveV2/index.ts +240 -240
  16. package/src/aaveV3/index.ts +648 -625
  17. package/src/aaveV3/merit.ts +99 -97
  18. package/src/aaveV3/merkl.ts +75 -74
  19. package/src/claiming/aaveV3.ts +154 -154
  20. package/src/claiming/compV3.ts +22 -22
  21. package/src/claiming/ethena.ts +61 -61
  22. package/src/claiming/index.ts +12 -12
  23. package/src/claiming/king.ts +66 -66
  24. package/src/claiming/morphoBlue.ts +118 -118
  25. package/src/claiming/spark.ts +225 -225
  26. package/src/compoundV2/index.ts +244 -244
  27. package/src/compoundV3/index.ts +274 -274
  28. package/src/config/contracts.ts +1295 -1295
  29. package/src/constants/index.ts +10 -10
  30. package/src/contracts.ts +171 -171
  31. package/src/curveUsd/index.ts +254 -254
  32. package/src/eulerV2/index.ts +324 -324
  33. package/src/exchange/index.ts +25 -25
  34. package/src/fluid/index.ts +1800 -1800
  35. package/src/helpers/aaveHelpers/index.ts +187 -187
  36. package/src/helpers/compoundHelpers/index.ts +283 -283
  37. package/src/helpers/curveUsdHelpers/index.ts +40 -40
  38. package/src/helpers/eulerHelpers/index.ts +222 -222
  39. package/src/helpers/fluidHelpers/index.ts +326 -326
  40. package/src/helpers/index.ts +10 -10
  41. package/src/helpers/liquityV2Helpers/index.ts +82 -82
  42. package/src/helpers/llamaLendHelpers/index.ts +53 -53
  43. package/src/helpers/makerHelpers/index.ts +52 -52
  44. package/src/helpers/morphoBlueHelpers/index.ts +396 -396
  45. package/src/helpers/sparkHelpers/index.ts +158 -158
  46. package/src/index.ts +49 -49
  47. package/src/liquity/index.ts +159 -159
  48. package/src/liquityV2/index.ts +703 -703
  49. package/src/llamaLend/index.ts +305 -305
  50. package/src/maker/index.ts +223 -223
  51. package/src/markets/aave/index.ts +118 -118
  52. package/src/markets/aave/marketAssets.ts +54 -54
  53. package/src/markets/compound/index.ts +243 -243
  54. package/src/markets/compound/marketsAssets.ts +97 -97
  55. package/src/markets/curveUsd/index.ts +69 -69
  56. package/src/markets/euler/index.ts +26 -26
  57. package/src/markets/fluid/index.ts +2900 -2900
  58. package/src/markets/index.ts +25 -25
  59. package/src/markets/liquityV2/index.ts +102 -102
  60. package/src/markets/llamaLend/contractAddresses.ts +141 -141
  61. package/src/markets/llamaLend/index.ts +235 -235
  62. package/src/markets/morphoBlue/index.ts +971 -971
  63. package/src/markets/spark/index.ts +29 -29
  64. package/src/markets/spark/marketAssets.ts +12 -12
  65. package/src/moneymarket/moneymarketCommonService.ts +85 -85
  66. package/src/morphoBlue/index.ts +274 -274
  67. package/src/portfolio/index.ts +598 -598
  68. package/src/savings/index.ts +95 -95
  69. package/src/savings/makerDsr/index.ts +53 -53
  70. package/src/savings/makerDsr/options.ts +9 -9
  71. package/src/savings/morphoVaults/index.ts +80 -80
  72. package/src/savings/morphoVaults/options.ts +193 -193
  73. package/src/savings/skyOptions/index.ts +95 -95
  74. package/src/savings/skyOptions/options.ts +10 -10
  75. package/src/savings/sparkSavingsVaults/index.ts +60 -60
  76. package/src/savings/sparkSavingsVaults/options.ts +35 -35
  77. package/src/savings/yearnV3Vaults/index.ts +61 -61
  78. package/src/savings/yearnV3Vaults/options.ts +55 -55
  79. package/src/savings/yearnVaults/index.ts +73 -73
  80. package/src/savings/yearnVaults/options.ts +32 -32
  81. package/src/services/priceService.ts +278 -278
  82. package/src/services/utils.ts +115 -115
  83. package/src/services/viem.ts +34 -34
  84. package/src/setup.ts +8 -8
  85. package/src/spark/index.ts +458 -458
  86. package/src/staking/eligibility.ts +53 -53
  87. package/src/staking/index.ts +1 -1
  88. package/src/staking/staking.ts +186 -186
  89. package/src/types/aave.ts +196 -196
  90. package/src/types/claiming.ts +114 -114
  91. package/src/types/common.ts +107 -107
  92. package/src/types/compound.ts +144 -144
  93. package/src/types/curveUsd.ts +123 -123
  94. package/src/types/euler.ts +175 -175
  95. package/src/types/fluid.ts +483 -483
  96. package/src/types/index.ts +14 -14
  97. package/src/types/liquity.ts +30 -30
  98. package/src/types/liquityV2.ts +126 -126
  99. package/src/types/llamaLend.ts +159 -159
  100. package/src/types/maker.ts +63 -63
  101. package/src/types/merit.ts +1 -1
  102. package/src/types/merkl.ts +70 -70
  103. package/src/types/morphoBlue.ts +200 -200
  104. package/src/types/portfolio.ts +60 -60
  105. package/src/types/savings/index.ts +23 -23
  106. package/src/types/savings/makerDsr.ts +13 -13
  107. package/src/types/savings/morphoVaults.ts +32 -32
  108. package/src/types/savings/sky.ts +14 -14
  109. package/src/types/savings/sparkSavingsVaults.ts +15 -15
  110. package/src/types/savings/yearnV3Vaults.ts +17 -17
  111. package/src/types/savings/yearnVaults.ts +14 -14
  112. package/src/types/spark.ts +134 -134
  113. package/src/umbrella/index.ts +69 -69
  114. 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;