@defisaver/positions-sdk 2.1.41 → 2.1.43-aave-v4-dev-1

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 (145) hide show
  1. package/.mocharc.json +4 -4
  2. package/.nvmrc +1 -1
  3. package/README.md +64 -64
  4. package/cjs/aaveV4/index.d.ts +7 -0
  5. package/cjs/aaveV4/index.js +99 -0
  6. package/cjs/config/contracts.d.ts +1069 -0
  7. package/cjs/config/contracts.js +9 -0
  8. package/cjs/contracts.d.ts +18265 -0
  9. package/cjs/contracts.js +2 -1
  10. package/cjs/helpers/morphoBlueHelpers/index.js +66 -66
  11. package/cjs/index.d.ts +2 -1
  12. package/cjs/index.js +3 -1
  13. package/cjs/markets/aaveV4/index.d.ts +6 -0
  14. package/cjs/markets/aaveV4/index.js +20 -0
  15. package/cjs/markets/index.d.ts +1 -0
  16. package/cjs/markets/index.js +3 -1
  17. package/cjs/savings/morphoVaults/index.js +17 -17
  18. package/cjs/savings/morphoVaults/options.js +2 -2
  19. package/cjs/types/aaveV4.d.ts +73 -0
  20. package/cjs/types/aaveV4.js +11 -0
  21. package/cjs/types/index.d.ts +1 -0
  22. package/cjs/types/index.js +1 -0
  23. package/esm/aaveV4/index.d.ts +7 -0
  24. package/esm/aaveV4/index.js +90 -0
  25. package/esm/config/contracts.d.ts +1069 -0
  26. package/esm/config/contracts.js +8 -0
  27. package/esm/contracts.d.ts +18265 -0
  28. package/esm/contracts.js +1 -0
  29. package/esm/helpers/morphoBlueHelpers/index.js +66 -66
  30. package/esm/index.d.ts +2 -1
  31. package/esm/index.js +2 -1
  32. package/esm/markets/aaveV4/index.d.ts +6 -0
  33. package/esm/markets/aaveV4/index.js +15 -0
  34. package/esm/markets/index.d.ts +1 -0
  35. package/esm/markets/index.js +1 -0
  36. package/esm/savings/morphoVaults/index.js +17 -17
  37. package/esm/savings/morphoVaults/options.js +2 -2
  38. package/esm/types/aaveV4.d.ts +73 -0
  39. package/esm/types/aaveV4.js +8 -0
  40. package/esm/types/index.d.ts +1 -0
  41. package/esm/types/index.js +1 -0
  42. package/package.json +48 -48
  43. package/src/aaveV2/index.ts +240 -240
  44. package/src/aaveV3/index.ts +625 -625
  45. package/src/aaveV3/merit.ts +97 -97
  46. package/src/aaveV3/merkl.ts +74 -74
  47. package/src/aaveV4/index.ts +90 -0
  48. package/src/claiming/aaveV3.ts +154 -154
  49. package/src/claiming/compV3.ts +22 -22
  50. package/src/claiming/ethena.ts +61 -61
  51. package/src/claiming/index.ts +12 -12
  52. package/src/claiming/king.ts +66 -66
  53. package/src/claiming/morphoBlue.ts +118 -118
  54. package/src/claiming/spark.ts +225 -225
  55. package/src/compoundV2/index.ts +244 -244
  56. package/src/compoundV3/index.ts +274 -274
  57. package/src/config/contracts.ts +1303 -1295
  58. package/src/constants/index.ts +10 -10
  59. package/src/contracts.ts +174 -172
  60. package/src/curveUsd/index.ts +254 -254
  61. package/src/eulerV2/index.ts +324 -324
  62. package/src/exchange/index.ts +25 -25
  63. package/src/fluid/index.ts +1800 -1800
  64. package/src/helpers/aaveHelpers/index.ts +187 -187
  65. package/src/helpers/compoundHelpers/index.ts +283 -283
  66. package/src/helpers/curveUsdHelpers/index.ts +40 -40
  67. package/src/helpers/eulerHelpers/index.ts +222 -222
  68. package/src/helpers/fluidHelpers/index.ts +326 -326
  69. package/src/helpers/index.ts +10 -10
  70. package/src/helpers/liquityV2Helpers/index.ts +82 -82
  71. package/src/helpers/llamaLendHelpers/index.ts +53 -53
  72. package/src/helpers/makerHelpers/index.ts +52 -52
  73. package/src/helpers/morphoBlueHelpers/index.ts +396 -396
  74. package/src/helpers/sparkHelpers/index.ts +158 -158
  75. package/src/index.ts +51 -49
  76. package/src/liquity/index.ts +159 -159
  77. package/src/liquityV2/index.ts +703 -703
  78. package/src/llamaLend/index.ts +305 -305
  79. package/src/maker/index.ts +223 -223
  80. package/src/markets/aave/index.ts +118 -118
  81. package/src/markets/aave/marketAssets.ts +54 -54
  82. package/src/markets/aaveV4/index.ts +17 -0
  83. package/src/markets/compound/index.ts +243 -243
  84. package/src/markets/compound/marketsAssets.ts +97 -97
  85. package/src/markets/curveUsd/index.ts +69 -69
  86. package/src/markets/euler/index.ts +26 -26
  87. package/src/markets/fluid/index.ts +2900 -2900
  88. package/src/markets/index.ts +26 -25
  89. package/src/markets/liquityV2/index.ts +102 -102
  90. package/src/markets/llamaLend/contractAddresses.ts +141 -141
  91. package/src/markets/llamaLend/index.ts +235 -235
  92. package/src/markets/morphoBlue/index.ts +971 -971
  93. package/src/markets/spark/index.ts +29 -29
  94. package/src/markets/spark/marketAssets.ts +12 -12
  95. package/src/moneymarket/moneymarketCommonService.ts +85 -85
  96. package/src/morphoBlue/index.ts +274 -274
  97. package/src/portfolio/index.ts +598 -598
  98. package/src/savings/index.ts +95 -95
  99. package/src/savings/makerDsr/index.ts +53 -53
  100. package/src/savings/makerDsr/options.ts +9 -9
  101. package/src/savings/morphoVaults/index.ts +80 -80
  102. package/src/savings/morphoVaults/options.ts +193 -193
  103. package/src/savings/skyOptions/index.ts +95 -95
  104. package/src/savings/skyOptions/options.ts +10 -10
  105. package/src/savings/sparkSavingsVaults/index.ts +60 -60
  106. package/src/savings/sparkSavingsVaults/options.ts +35 -35
  107. package/src/savings/yearnV3Vaults/index.ts +61 -61
  108. package/src/savings/yearnV3Vaults/options.ts +55 -55
  109. package/src/savings/yearnVaults/index.ts +73 -73
  110. package/src/savings/yearnVaults/options.ts +32 -32
  111. package/src/services/priceService.ts +278 -278
  112. package/src/services/utils.ts +115 -115
  113. package/src/services/viem.ts +34 -34
  114. package/src/setup.ts +8 -8
  115. package/src/spark/index.ts +458 -458
  116. package/src/staking/eligibility.ts +53 -53
  117. package/src/staking/index.ts +1 -1
  118. package/src/staking/staking.ts +186 -186
  119. package/src/types/aave.ts +196 -196
  120. package/src/types/aaveV4.ts +81 -0
  121. package/src/types/claiming.ts +114 -114
  122. package/src/types/common.ts +107 -107
  123. package/src/types/compound.ts +144 -144
  124. package/src/types/curveUsd.ts +123 -123
  125. package/src/types/euler.ts +175 -175
  126. package/src/types/fluid.ts +483 -483
  127. package/src/types/index.ts +16 -15
  128. package/src/types/liquity.ts +30 -30
  129. package/src/types/liquityV2.ts +126 -126
  130. package/src/types/llamaLend.ts +159 -159
  131. package/src/types/maker.ts +63 -63
  132. package/src/types/merit.ts +1 -1
  133. package/src/types/merkl.ts +70 -70
  134. package/src/types/morphoBlue.ts +200 -200
  135. package/src/types/portfolio.ts +60 -60
  136. package/src/types/savings/index.ts +23 -23
  137. package/src/types/savings/makerDsr.ts +13 -13
  138. package/src/types/savings/morphoVaults.ts +32 -32
  139. package/src/types/savings/sky.ts +14 -14
  140. package/src/types/savings/sparkSavingsVaults.ts +15 -15
  141. package/src/types/savings/yearnV3Vaults.ts +17 -17
  142. package/src/types/savings/yearnVaults.ts +14 -14
  143. package/src/types/spark.ts +134 -134
  144. package/src/umbrella/index.ts +69 -69
  145. 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
+ }
@@ -0,0 +1,81 @@
1
+ import { EthAddress, NetworkNumber } from './common';
2
+
3
+ export enum AaveV4SpokesType {
4
+ AaveV4CoreSpoke = 'aave_v4_core_spoke',
5
+ }
6
+
7
+ export enum AaveV4HubsType {
8
+ AaveV4CoreHub = 'aave_v4_core_hub',
9
+ }
10
+
11
+ export interface AaveV4SpokeInfo {
12
+ chainIds: NetworkNumber[],
13
+ label: string,
14
+ value: AaveV4SpokesType,
15
+ url: string,
16
+ address: EthAddress,
17
+ hubs: EthAddress[],
18
+ }
19
+
20
+ export interface AaveV4HubAssetOnChainData {
21
+ assetId: number,
22
+ drawnRate: bigint,
23
+ }
24
+
25
+ export interface AaveV4HubOnChainData {
26
+ assets: Record<number, AaveV4HubAssetOnChainData>,
27
+ }
28
+
29
+ export interface AaveV4ReserveAssetOnChain {
30
+ underlying: EthAddress,
31
+ hub: EthAddress,
32
+ assetId: number,
33
+ decimals: number,
34
+ paused: boolean,
35
+ frozen: boolean,
36
+ borrowable: boolean,
37
+ collateralRisk: number,
38
+ collateralFactor: number,
39
+ maxLiquidationBonus: number,
40
+ liquidationFee: number,
41
+ price: bigint,
42
+ totalSupplied: bigint,
43
+ totalDrawn: bigint,
44
+ totalPremium: bigint,
45
+ totalDebt: bigint,
46
+ supplyCap: bigint,
47
+ borrowCap: bigint,
48
+ deficitRay: bigint,
49
+ spokeActive: boolean,
50
+ spokePaused: boolean
51
+ }
52
+
53
+ export interface AaveV4ReserveAssetData {
54
+ symbol: string,
55
+ underlying: EthAddress,
56
+ hub: EthAddress,
57
+ assetId: number,
58
+ paused: boolean,
59
+ frozen: boolean,
60
+ borrowable: boolean,
61
+ collateralRisk: number,
62
+ collateralFactor: number,
63
+ liquidationFee: number,
64
+ price: string,
65
+ totalSupplied: string,
66
+ totalDrawn: string,
67
+ totalPremium: string,
68
+ totalDebt: string,
69
+ supplyCap: string,
70
+ borrowCap: string,
71
+ spokeActive: boolean,
72
+ spokePaused: boolean,
73
+ drawnRate: string,
74
+ }
75
+
76
+ export interface AaveV4SpokeData {
77
+ assetsData: Record<string, AaveV4ReserveAssetData>,
78
+ oracle: EthAddress,
79
+ oracleDecimals: number,
80
+ address: EthAddress,
81
+ }