@defisaver/positions-sdk 2.1.2 → 2.1.4

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 (100) hide show
  1. package/.mocharc.json +4 -4
  2. package/.nvmrc +1 -1
  3. package/README.md +64 -64
  4. package/cjs/helpers/aaveHelpers/index.js +8 -7
  5. package/cjs/helpers/morphoBlueHelpers/index.js +66 -66
  6. package/cjs/staking/eligibility.d.ts +4 -2
  7. package/cjs/staking/eligibility.js +3 -4
  8. package/cjs/staking/staking.d.ts +2 -1
  9. package/cjs/staking/staking.js +5 -4
  10. package/cjs/types/common.d.ts +1 -1
  11. package/cjs/types/common.js +1 -1
  12. package/esm/helpers/aaveHelpers/index.js +8 -7
  13. package/esm/helpers/morphoBlueHelpers/index.js +66 -66
  14. package/esm/staking/eligibility.d.ts +4 -2
  15. package/esm/staking/eligibility.js +3 -4
  16. package/esm/staking/staking.d.ts +2 -1
  17. package/esm/staking/staking.js +5 -4
  18. package/esm/types/common.d.ts +1 -1
  19. package/esm/types/common.js +1 -1
  20. package/package.json +47 -47
  21. package/src/aaveV2/index.ts +240 -240
  22. package/src/aaveV3/index.ts +614 -614
  23. package/src/aaveV3/merit.ts +94 -94
  24. package/src/aaveV3/merkl.ts +74 -74
  25. package/src/claiming/aaveV3.ts +154 -154
  26. package/src/claiming/compV3.ts +22 -22
  27. package/src/claiming/index.ts +12 -12
  28. package/src/claiming/king.ts +66 -66
  29. package/src/claiming/morphoBlue.ts +118 -118
  30. package/src/claiming/spark.ts +225 -225
  31. package/src/compoundV2/index.ts +244 -244
  32. package/src/compoundV3/index.ts +274 -274
  33. package/src/config/contracts.ts +1228 -1228
  34. package/src/constants/index.ts +10 -10
  35. package/src/contracts.ts +120 -120
  36. package/src/curveUsd/index.ts +250 -250
  37. package/src/eulerV2/index.ts +324 -324
  38. package/src/exchange/index.ts +25 -25
  39. package/src/fluid/index.ts +1638 -1638
  40. package/src/helpers/aaveHelpers/index.ts +185 -183
  41. package/src/helpers/compoundHelpers/index.ts +283 -283
  42. package/src/helpers/curveUsdHelpers/index.ts +40 -40
  43. package/src/helpers/eulerHelpers/index.ts +222 -222
  44. package/src/helpers/fluidHelpers/index.ts +326 -326
  45. package/src/helpers/index.ts +10 -10
  46. package/src/helpers/liquityV2Helpers/index.ts +82 -82
  47. package/src/helpers/llamaLendHelpers/index.ts +53 -53
  48. package/src/helpers/makerHelpers/index.ts +52 -52
  49. package/src/helpers/morphoBlueHelpers/index.ts +396 -396
  50. package/src/helpers/sparkHelpers/index.ts +155 -155
  51. package/src/index.ts +47 -47
  52. package/src/liquity/index.ts +159 -159
  53. package/src/liquityV2/index.ts +657 -657
  54. package/src/llamaLend/index.ts +305 -305
  55. package/src/maker/index.ts +223 -223
  56. package/src/markets/aave/index.ts +116 -116
  57. package/src/markets/aave/marketAssets.ts +49 -49
  58. package/src/markets/compound/index.ts +227 -227
  59. package/src/markets/compound/marketsAssets.ts +90 -90
  60. package/src/markets/curveUsd/index.ts +69 -69
  61. package/src/markets/euler/index.ts +26 -26
  62. package/src/markets/fluid/index.ts +2456 -2456
  63. package/src/markets/index.ts +25 -25
  64. package/src/markets/liquityV2/index.ts +102 -102
  65. package/src/markets/llamaLend/contractAddresses.ts +141 -141
  66. package/src/markets/llamaLend/index.ts +235 -235
  67. package/src/markets/morphoBlue/index.ts +895 -895
  68. package/src/markets/spark/index.ts +29 -29
  69. package/src/markets/spark/marketAssets.ts +11 -11
  70. package/src/moneymarket/moneymarketCommonService.ts +80 -80
  71. package/src/morphoBlue/index.ts +274 -274
  72. package/src/portfolio/index.ts +570 -570
  73. package/src/services/priceService.ts +159 -159
  74. package/src/services/utils.ts +99 -99
  75. package/src/services/viem.ts +32 -32
  76. package/src/setup.ts +8 -8
  77. package/src/spark/index.ts +445 -445
  78. package/src/staking/eligibility.ts +59 -60
  79. package/src/staking/index.ts +1 -1
  80. package/src/staking/staking.ts +170 -170
  81. package/src/types/aave.ts +189 -189
  82. package/src/types/claiming.ts +109 -109
  83. package/src/types/common.ts +105 -105
  84. package/src/types/compound.ts +136 -136
  85. package/src/types/curveUsd.ts +121 -121
  86. package/src/types/euler.ts +175 -175
  87. package/src/types/fluid.ts +448 -448
  88. package/src/types/index.ts +13 -13
  89. package/src/types/liquity.ts +30 -30
  90. package/src/types/liquityV2.ts +126 -126
  91. package/src/types/llamaLend.ts +159 -159
  92. package/src/types/maker.ts +63 -63
  93. package/src/types/merit.ts +1 -1
  94. package/src/types/merkl.ts +70 -70
  95. package/src/types/morphoBlue.ts +194 -194
  96. package/src/types/portfolio.ts +60 -60
  97. package/src/types/spark.ts +135 -135
  98. package/src/umbrella/index.ts +69 -69
  99. package/src/umbrella/umbrellaUtils.ts +29 -29
  100. package/CLAUDE.md +0 -32
package/src/types/aave.ts CHANGED
@@ -1,189 +1,189 @@
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
+ 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,109 +1,109 @@
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
-
22
- type _ClaimableTokenPartial = {
23
- symbol: string;
24
- underlyingSymbol: string;
25
- tokenAddress: EthAddress;
26
- amount: string;
27
- walletAddress: EthAddress;
28
- label: string;
29
- };
30
- export type AaveRewardsClaimableToken = _ClaimableTokenPartial & {
31
- claimType: ClaimType.AAVE_REWARDS;
32
- additionalClaimFields: {
33
- marketAddress: EthAddress;
34
- aTokenAddresses: string[];
35
- isAaveToken: boolean;
36
- };
37
- };
38
- export type AaveMeritRewardsClaimableToken = _ClaimableTokenPartial & {
39
- claimType: ClaimType.AAVE_MERIT_REWARDS;
40
- additionalClaimFields: {
41
- accumulated: string;
42
- proof: string[];
43
- decimals: string;
44
- unclaimed: string;
45
- };
46
- };
47
-
48
- export type SparkRewardsClaimableToken = _ClaimableTokenPartial & {
49
- claimType: ClaimType.SPARK_REWARDS;
50
- additionalClaimFields: {
51
- sparkAssetAddresses: string[];
52
- };
53
- };
54
-
55
- export type KingRewardsClaimableToken = _ClaimableTokenPartial & {
56
- claimType: ClaimType.KING_REWARDS;
57
- additionalClaimFields: {
58
- allRewardsAmount: string;
59
- merkleRoot: string;
60
- merkleProofs: string[];
61
- };
62
- };
63
-
64
- export type MorphoClaimableToken = _ClaimableTokenPartial & {
65
- claimType: ClaimType.MORPHO,
66
- additionalClaimFields: {
67
- originalAmount: string,
68
- merkleProofs: string[];
69
- distributor: EthAddress;
70
- isLegacy: boolean;
71
- txData: string;
72
- }
73
- };
74
-
75
-
76
- export type CompoundV3CompClaimableToken = _ClaimableTokenPartial & {
77
- claimType: ClaimType.COMPOUND_V3_COMP,
78
- additionalClaimFields: {
79
- marketAddress: EthAddress;
80
- }
81
- };
82
-
83
- export enum SparkAirdropType {
84
- SPARK_IGNITION = 'spark-ignition',
85
- PRE_FARMING_AND_SOCIAL = 'pre-farming-and-social',
86
- }
87
-
88
- export type SparkAirdropClaimableToken = _ClaimableTokenPartial & {
89
- claimType: ClaimType.SPARK_AIRDROP,
90
- additionalClaimFields: {
91
- merkleRoot: string;
92
- merkleProofs: string[];
93
- epoch: number;
94
- rewardType: SparkAirdropType;
95
- allRewardsAmount: string;
96
- };
97
- };
98
-
99
- export type SparkWstEthRewardsClaimableToken = _ClaimableTokenPartial & { claimType: ClaimType.SPARK_WST_ETH_REWARDS };
100
-
101
- export type ClaimableToken =
102
- AaveRewardsClaimableToken
103
- | AaveMeritRewardsClaimableToken
104
- | CompoundV3CompClaimableToken
105
- | MorphoClaimableToken
106
- | SparkRewardsClaimableToken
107
- | KingRewardsClaimableToken
108
- | SparkAirdropClaimableToken
109
- | SparkWstEthRewardsClaimableToken;
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
+
22
+ type _ClaimableTokenPartial = {
23
+ symbol: string;
24
+ underlyingSymbol: string;
25
+ tokenAddress: EthAddress;
26
+ amount: string;
27
+ walletAddress: EthAddress;
28
+ label: string;
29
+ };
30
+ export type AaveRewardsClaimableToken = _ClaimableTokenPartial & {
31
+ claimType: ClaimType.AAVE_REWARDS;
32
+ additionalClaimFields: {
33
+ marketAddress: EthAddress;
34
+ aTokenAddresses: string[];
35
+ isAaveToken: boolean;
36
+ };
37
+ };
38
+ export type AaveMeritRewardsClaimableToken = _ClaimableTokenPartial & {
39
+ claimType: ClaimType.AAVE_MERIT_REWARDS;
40
+ additionalClaimFields: {
41
+ accumulated: string;
42
+ proof: string[];
43
+ decimals: string;
44
+ unclaimed: string;
45
+ };
46
+ };
47
+
48
+ export type SparkRewardsClaimableToken = _ClaimableTokenPartial & {
49
+ claimType: ClaimType.SPARK_REWARDS;
50
+ additionalClaimFields: {
51
+ sparkAssetAddresses: string[];
52
+ };
53
+ };
54
+
55
+ export type KingRewardsClaimableToken = _ClaimableTokenPartial & {
56
+ claimType: ClaimType.KING_REWARDS;
57
+ additionalClaimFields: {
58
+ allRewardsAmount: string;
59
+ merkleRoot: string;
60
+ merkleProofs: string[];
61
+ };
62
+ };
63
+
64
+ export type MorphoClaimableToken = _ClaimableTokenPartial & {
65
+ claimType: ClaimType.MORPHO,
66
+ additionalClaimFields: {
67
+ originalAmount: string,
68
+ merkleProofs: string[];
69
+ distributor: EthAddress;
70
+ isLegacy: boolean;
71
+ txData: string;
72
+ }
73
+ };
74
+
75
+
76
+ export type CompoundV3CompClaimableToken = _ClaimableTokenPartial & {
77
+ claimType: ClaimType.COMPOUND_V3_COMP,
78
+ additionalClaimFields: {
79
+ marketAddress: EthAddress;
80
+ }
81
+ };
82
+
83
+ export enum SparkAirdropType {
84
+ SPARK_IGNITION = 'spark-ignition',
85
+ PRE_FARMING_AND_SOCIAL = 'pre-farming-and-social',
86
+ }
87
+
88
+ export type SparkAirdropClaimableToken = _ClaimableTokenPartial & {
89
+ claimType: ClaimType.SPARK_AIRDROP,
90
+ additionalClaimFields: {
91
+ merkleRoot: string;
92
+ merkleProofs: string[];
93
+ epoch: number;
94
+ rewardType: SparkAirdropType;
95
+ allRewardsAmount: string;
96
+ };
97
+ };
98
+
99
+ export type SparkWstEthRewardsClaimableToken = _ClaimableTokenPartial & { claimType: ClaimType.SPARK_WST_ETH_REWARDS };
100
+
101
+ export type ClaimableToken =
102
+ AaveRewardsClaimableToken
103
+ | AaveMeritRewardsClaimableToken
104
+ | CompoundV3CompClaimableToken
105
+ | MorphoClaimableToken
106
+ | SparkRewardsClaimableToken
107
+ | KingRewardsClaimableToken
108
+ | SparkAirdropClaimableToken
109
+ | SparkWstEthRewardsClaimableToken;