@defisaver/positions-sdk 2.1.96 → 2.1.98-aave-v4-apy-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 (136) 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 +3 -3
  5. package/cjs/aaveV4/index.js +2 -0
  6. package/cjs/config/contracts.d.ts +61 -1
  7. package/cjs/config/contracts.js +2 -2
  8. package/cjs/contracts.d.ts +2963 -82
  9. package/cjs/helpers/aaveV4Helpers/index.d.ts +11 -1
  10. package/cjs/helpers/aaveV4Helpers/index.js +59 -1
  11. package/cjs/helpers/morphoBlueHelpers/index.js +66 -66
  12. package/cjs/savings/morphoVaults/index.js +17 -17
  13. package/cjs/services/utils.d.ts +1 -1
  14. package/cjs/services/utils.js +2 -1
  15. package/cjs/types/aaveV4.d.ts +2 -0
  16. package/esm/aaveV3/index.js +3 -3
  17. package/esm/aaveV4/index.js +2 -0
  18. package/esm/config/contracts.d.ts +61 -1
  19. package/esm/config/contracts.js +2 -2
  20. package/esm/contracts.d.ts +2963 -82
  21. package/esm/helpers/aaveV4Helpers/index.d.ts +11 -1
  22. package/esm/helpers/aaveV4Helpers/index.js +57 -0
  23. package/esm/helpers/morphoBlueHelpers/index.js +66 -66
  24. package/esm/savings/morphoVaults/index.js +17 -17
  25. package/esm/services/utils.d.ts +1 -1
  26. package/esm/services/utils.js +2 -1
  27. package/esm/types/aaveV4.d.ts +2 -0
  28. package/package.json +48 -48
  29. package/src/aaveV2/index.ts +240 -240
  30. package/src/aaveV3/index.ts +634 -634
  31. package/src/aaveV3/merit.ts +97 -97
  32. package/src/aaveV3/merkl.ts +74 -74
  33. package/src/aaveV4/index.ts +238 -236
  34. package/src/aaveV4/lend.ts +185 -185
  35. package/src/claiming/aaveV3.ts +154 -154
  36. package/src/claiming/compV3.ts +22 -22
  37. package/src/claiming/ethena.ts +61 -61
  38. package/src/claiming/index.ts +12 -12
  39. package/src/claiming/king.ts +66 -66
  40. package/src/claiming/morphoBlue.ts +118 -118
  41. package/src/claiming/spark.ts +225 -225
  42. package/src/compoundV2/index.ts +245 -245
  43. package/src/compoundV3/index.ts +280 -280
  44. package/src/config/contracts.ts +1357 -1357
  45. package/src/constants/index.ts +10 -10
  46. package/src/contracts.ts +183 -183
  47. package/src/curveUsd/index.ts +254 -254
  48. package/src/eulerV2/index.ts +330 -330
  49. package/src/exchange/index.ts +25 -25
  50. package/src/fluid/index.ts +1800 -1800
  51. package/src/helpers/aaveHelpers/index.ts +203 -203
  52. package/src/helpers/aaveV4Helpers/index.ts +350 -291
  53. package/src/helpers/compoundHelpers/index.ts +280 -280
  54. package/src/helpers/curveUsdHelpers/index.ts +44 -44
  55. package/src/helpers/eulerHelpers/index.ts +230 -230
  56. package/src/helpers/fluidHelpers/index.ts +338 -338
  57. package/src/helpers/index.ts +11 -11
  58. package/src/helpers/liquityV2Helpers/index.ts +85 -85
  59. package/src/helpers/llamaLendHelpers/index.ts +56 -56
  60. package/src/helpers/makerHelpers/index.ts +52 -52
  61. package/src/helpers/morphoBlueHelpers/index.ts +406 -406
  62. package/src/helpers/sparkHelpers/index.ts +170 -170
  63. package/src/index.ts +51 -51
  64. package/src/liquity/index.ts +161 -161
  65. package/src/liquityV2/index.ts +703 -703
  66. package/src/llamaLend/index.ts +305 -305
  67. package/src/maker/index.ts +225 -225
  68. package/src/markets/aave/index.ts +118 -118
  69. package/src/markets/aave/marketAssets.ts +54 -54
  70. package/src/markets/aaveV4/index.ts +191 -191
  71. package/src/markets/compound/index.ts +243 -243
  72. package/src/markets/compound/marketsAssets.ts +97 -97
  73. package/src/markets/curveUsd/index.ts +69 -69
  74. package/src/markets/euler/index.ts +26 -26
  75. package/src/markets/fluid/index.ts +2900 -2900
  76. package/src/markets/index.ts +29 -29
  77. package/src/markets/liquityV2/index.ts +102 -102
  78. package/src/markets/llamaLend/contractAddresses.ts +141 -141
  79. package/src/markets/llamaLend/index.ts +235 -235
  80. package/src/markets/morphoBlue/index.ts +1370 -1370
  81. package/src/markets/spark/index.ts +29 -29
  82. package/src/markets/spark/marketAssets.ts +12 -12
  83. package/src/moneymarket/moneymarketCommonService.ts +91 -91
  84. package/src/morphoBlue/index.ts +274 -274
  85. package/src/portfolio/index.ts +606 -606
  86. package/src/savings/index.ts +111 -111
  87. package/src/savings/makerDsr/index.ts +53 -53
  88. package/src/savings/makerDsr/options.ts +9 -9
  89. package/src/savings/morphoVaults/index.ts +80 -80
  90. package/src/savings/morphoVaults/options.ts +193 -193
  91. package/src/savings/skyOptions/index.ts +95 -95
  92. package/src/savings/skyOptions/options.ts +10 -10
  93. package/src/savings/sparkSavingsVaults/index.ts +60 -60
  94. package/src/savings/sparkSavingsVaults/options.ts +35 -35
  95. package/src/savings/summerVaults/index.ts +56 -56
  96. package/src/savings/summerVaults/options.ts +117 -117
  97. package/src/savings/yearnV3Vaults/index.ts +61 -61
  98. package/src/savings/yearnV3Vaults/options.ts +55 -55
  99. package/src/savings/yearnVaults/index.ts +73 -73
  100. package/src/savings/yearnVaults/options.ts +32 -32
  101. package/src/services/priceService.ts +278 -278
  102. package/src/services/utils.ts +122 -117
  103. package/src/services/viem.ts +57 -57
  104. package/src/setup.ts +8 -8
  105. package/src/spark/index.ts +460 -460
  106. package/src/staking/eligibility.ts +105 -105
  107. package/src/staking/index.ts +1 -1
  108. package/src/staking/staking.ts +201 -201
  109. package/src/types/aave.ts +200 -200
  110. package/src/types/aaveV4.ts +179 -177
  111. package/src/types/claiming.ts +114 -114
  112. package/src/types/common.ts +117 -117
  113. package/src/types/compound.ts +147 -147
  114. package/src/types/curveUsd.ts +125 -125
  115. package/src/types/euler.ts +177 -177
  116. package/src/types/fluid.ts +486 -486
  117. package/src/types/index.ts +16 -16
  118. package/src/types/liquity.ts +31 -31
  119. package/src/types/liquityV2.ts +130 -130
  120. package/src/types/llamaLend.ts +163 -163
  121. package/src/types/maker.ts +64 -64
  122. package/src/types/merit.ts +1 -1
  123. package/src/types/merkl.ts +70 -70
  124. package/src/types/morphoBlue.ts +228 -228
  125. package/src/types/portfolio.ts +64 -64
  126. package/src/types/savings/index.ts +25 -25
  127. package/src/types/savings/makerDsr.ts +13 -13
  128. package/src/types/savings/morphoVaults.ts +32 -32
  129. package/src/types/savings/sky.ts +14 -14
  130. package/src/types/savings/sparkSavingsVaults.ts +15 -15
  131. package/src/types/savings/summerVaults.ts +24 -24
  132. package/src/types/savings/yearnV3Vaults.ts +17 -17
  133. package/src/types/savings/yearnVaults.ts +14 -14
  134. package/src/types/spark.ts +136 -136
  135. package/src/umbrella/index.ts +69 -69
  136. package/src/umbrella/umbrellaUtils.ts +29 -29
package/.mocharc.json CHANGED
@@ -1,4 +1,4 @@
1
- {
2
- "require": "ts-node/register",
3
- "extension": ["ts"]
4
- }
1
+ {
2
+ "require": "ts-node/register",
3
+ "extension": ["ts"]
4
+ }
package/.nvmrc CHANGED
@@ -1 +1 @@
1
- v20.17.0
1
+ v20.17.0
package/README.md CHANGED
@@ -1,64 +1,64 @@
1
- # DeFi Saver Positions SDK
2
-
3
- Supported protocols:
4
- - [Maker](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/maker)
5
- - [Spark](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/spark)
6
- - [CrvUSD](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/curveUsd)
7
- - [Aave V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/aaveV2)
8
- - [Aave V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/aaveV3)
9
- - [Compound V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/compoundV2)
10
- - [Compound V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/compoundV3)
11
- - [Liquity](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/liquity)
12
-
13
- ## Setup
14
- Supported Node version is v10.
15
-
16
- - run `npm install` (first time)
17
- - run `npm run build`
18
-
19
- `build` command will generate contracts and build ejs and esm folders
20
-
21
- ## How to use
22
- [All available imports](https://github.com/defisaver/defisaver-positions-sdk/blob/main/src/index.ts)
23
-
24
- This is a Compound V3 example, and every other protocol is similar
25
- ```js
26
- import { compoundV3 } from '@defisaver/positions-sdk';
27
-
28
-
29
- // every protocol has market data and user data getters
30
- const {
31
- getCompoundV3MarketsData,
32
- getCompoundV3AccountData,
33
- } = compoundV3;
34
-
35
- const provider = 'Your RPC provider';
36
-
37
- const user = '0x123...';
38
-
39
- const { assetsData } = await getCompoundV3MarketsData(
40
- provider, // rpc for the network you are using (note: can be tenderly or any other testnet rpc)
41
- 1, // network
42
- selectedMarket, // market object like in /src/markets/compound/index.ts
43
- provider, // this must be mainnet rpc - used for getting prices onchain and calculating apys
44
- );
45
-
46
- const userData = await getCompoundV3AccountData(
47
- provider,
48
- 1, // network
49
- userAddress, // EOA or DSProxy
50
- '', // proxy address of the user, or just empty string if checking for EOA
51
- {
52
- selectedMarket, // market object as in /src/markets/compound/index.ts
53
- assetsData,
54
- }
55
- );
56
- ```
57
-
58
- More examples found [here](https://github.com/defisaver/defisaver-positions-sdk/tree/main/tests)
59
-
60
- ## Testing
61
-
62
- `npm run test` - Run all tests
63
-
64
- `npm run test-single --name=your_test_name` - Run single test for specified name e.g. for MyTest.js test name is MyTest
1
+ # DeFi Saver Positions SDK
2
+
3
+ Supported protocols:
4
+ - [Maker](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/maker)
5
+ - [Spark](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/spark)
6
+ - [CrvUSD](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/curveUsd)
7
+ - [Aave V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/aaveV2)
8
+ - [Aave V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/aaveV3)
9
+ - [Compound V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/compoundV2)
10
+ - [Compound V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/compoundV3)
11
+ - [Liquity](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/liquity)
12
+
13
+ ## Setup
14
+ Supported Node version is v10.
15
+
16
+ - run `npm install` (first time)
17
+ - run `npm run build`
18
+
19
+ `build` command will generate contracts and build ejs and esm folders
20
+
21
+ ## How to use
22
+ [All available imports](https://github.com/defisaver/defisaver-positions-sdk/blob/main/src/index.ts)
23
+
24
+ This is a Compound V3 example, and every other protocol is similar
25
+ ```js
26
+ import { compoundV3 } from '@defisaver/positions-sdk';
27
+
28
+
29
+ // every protocol has market data and user data getters
30
+ const {
31
+ getCompoundV3MarketsData,
32
+ getCompoundV3AccountData,
33
+ } = compoundV3;
34
+
35
+ const provider = 'Your RPC provider';
36
+
37
+ const user = '0x123...';
38
+
39
+ const { assetsData } = await getCompoundV3MarketsData(
40
+ provider, // rpc for the network you are using (note: can be tenderly or any other testnet rpc)
41
+ 1, // network
42
+ selectedMarket, // market object like in /src/markets/compound/index.ts
43
+ provider, // this must be mainnet rpc - used for getting prices onchain and calculating apys
44
+ );
45
+
46
+ const userData = await getCompoundV3AccountData(
47
+ provider,
48
+ 1, // network
49
+ userAddress, // EOA or DSProxy
50
+ '', // proxy address of the user, or just empty string if checking for EOA
51
+ {
52
+ selectedMarket, // market object as in /src/markets/compound/index.ts
53
+ assetsData,
54
+ }
55
+ );
56
+ ```
57
+
58
+ More examples found [here](https://github.com/defisaver/defisaver-positions-sdk/tree/main/tests)
59
+
60
+ ## Testing
61
+
62
+ `npm run test` - Run all tests
63
+
64
+ `npm run test-single --name=your_test_name` - Run single test for specified name e.g. for MyTest.js test name is MyTest
@@ -109,11 +109,11 @@ function _getAaveV3MarketData(provider_1, network_1, market_1) {
109
109
  const symbol = market.assets[i];
110
110
  // eslint-disable-next-line guard-for-in
111
111
  for (const eModeIndex in eModeCategoriesData) {
112
- if ((0, utils_1.isEnabledOnBitmap)(Number(eModeCategoriesData[eModeIndex].collateralBitmap), Number(tokenMarket.assetId)))
112
+ if ((0, utils_1.isEnabledOnBitmap)(eModeCategoriesData[eModeIndex].collateralBitmap, Number(tokenMarket.assetId)))
113
113
  eModeCategoriesData[eModeIndex].collateralAssets.push(symbol);
114
- if ((0, utils_1.isEnabledOnBitmap)(Number(eModeCategoriesData[eModeIndex].borrowableBitmap), Number(tokenMarket.assetId)))
114
+ if ((0, utils_1.isEnabledOnBitmap)(eModeCategoriesData[eModeIndex].borrowableBitmap, Number(tokenMarket.assetId)))
115
115
  eModeCategoriesData[eModeIndex].borrowAssets.push(symbol);
116
- if ((0, utils_1.isEnabledOnBitmap)(Number(eModeCategoriesData[eModeIndex].ltvzeroBitmap), Number(tokenMarket.assetId)))
116
+ if ((0, utils_1.isEnabledOnBitmap)(eModeCategoriesData[eModeIndex].ltvzeroBitmap, Number(tokenMarket.assetId)))
117
117
  eModeCategoriesData[eModeIndex].ltvZeroAssets.push(symbol);
118
118
  }
119
119
  const borrowCap = tokenMarket.borrowCap.toString();
@@ -165,6 +165,8 @@ const formatReserveAsset = (reserveAsset, hubAsset, reserveId, oracleDecimals, n
165
165
  canBePayBacked: reserveAsset.spokeActive && !reserveAsset.spokeHalted && !reserveAsset.paused,
166
166
  utilization,
167
167
  hubLiquidity,
168
+ premiumMultiplier: premiumMultiplier.toString(),
169
+ liquidityFee: liquidityFee.toString(),
168
170
  });
169
171
  });
170
172
  function _getAaveV4SpokeData(provider_1, network_1, market_1) {
@@ -97696,6 +97696,66 @@ export declare const YearnV3Vault: {
97696
97696
  };
97697
97697
  export declare const AaveV4View: {
97698
97698
  readonly abi: readonly [{
97699
+ readonly inputs: readonly [{
97700
+ readonly internalType: "address";
97701
+ readonly name: "_spoke";
97702
+ readonly type: "address";
97703
+ }, {
97704
+ readonly components: readonly [{
97705
+ readonly internalType: "uint256";
97706
+ readonly name: "reserveId";
97707
+ readonly type: "uint256";
97708
+ }, {
97709
+ readonly internalType: "uint256";
97710
+ readonly name: "liquidityAdded";
97711
+ readonly type: "uint256";
97712
+ }, {
97713
+ readonly internalType: "uint256";
97714
+ readonly name: "liquidityTaken";
97715
+ readonly type: "uint256";
97716
+ }, {
97717
+ readonly internalType: "bool";
97718
+ readonly name: "isDebtAsset";
97719
+ readonly type: "bool";
97720
+ }];
97721
+ readonly internalType: "struct AaveV4View.LiquidityChangeParams[]";
97722
+ readonly name: "_reserveParams";
97723
+ readonly type: "tuple[]";
97724
+ }];
97725
+ readonly name: "getApyAfterValuesEstimation";
97726
+ readonly outputs: readonly [{
97727
+ readonly components: readonly [{
97728
+ readonly internalType: "uint256";
97729
+ readonly name: "reserveId";
97730
+ readonly type: "uint256";
97731
+ }, {
97732
+ readonly internalType: "uint256";
97733
+ readonly name: "hubDrawnRateEstimation";
97734
+ readonly type: "uint256";
97735
+ }, {
97736
+ readonly internalType: "uint256";
97737
+ readonly name: "hubTotalDrawnEstimation";
97738
+ readonly type: "uint256";
97739
+ }, {
97740
+ readonly internalType: "uint256";
97741
+ readonly name: "hubTotalLiquidityEstimation";
97742
+ readonly type: "uint256";
97743
+ }, {
97744
+ readonly internalType: "uint256";
97745
+ readonly name: "hubSwept";
97746
+ readonly type: "uint256";
97747
+ }, {
97748
+ readonly internalType: "uint16";
97749
+ readonly name: "liquidityFee";
97750
+ readonly type: "uint16";
97751
+ }];
97752
+ readonly internalType: "struct AaveV4View.EstimatedRates[]";
97753
+ readonly name: "";
97754
+ readonly type: "tuple[]";
97755
+ }];
97756
+ readonly stateMutability: "view";
97757
+ readonly type: "function";
97758
+ }, {
97699
97759
  readonly inputs: readonly [{
97700
97760
  readonly internalType: "address";
97701
97761
  readonly name: "_eoa";
@@ -99241,7 +99301,7 @@ export declare const AaveV4View: {
99241
99301
  }];
99242
99302
  readonly networks: {
99243
99303
  readonly "1": {
99244
- readonly address: "0x274C0f0164A82B8771145651A8331A909c939e42";
99304
+ readonly address: "0xeCa884900ccC0481F1b65707a80eb294d1245F68";
99245
99305
  };
99246
99306
  };
99247
99307
  };
@@ -1351,10 +1351,10 @@ exports.YearnV3Vault = {
1351
1351
  "abi": [{ "stateMutability": "view", "type": "function", "name": "balanceOf", "inputs": [{ "name": "addr", "type": "address" }], "outputs": [{ "name": "", "type": "uint256" }] }, { "stateMutability": "view", "type": "function", "name": "totalAssets", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }] }, { "stateMutability": "view", "type": "function", "name": "totalDebt", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }] }, { "stateMutability": "view", "type": "function", "name": "totalSupply", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }] }]
1352
1352
  };
1353
1353
  exports.AaveV4View = {
1354
- "abi": [{ "inputs": [{ "internalType": "address", "name": "_eoa", "type": "address" }, { "internalType": "address", "name": "_proxy", "type": "address" }, { "internalType": "address", "name": "_spoke", "type": "address" }], "name": "getEOAApprovalsAndBalances", "outputs": [{ "components": [{ "internalType": "address", "name": "eoa", "type": "address" }, { "internalType": "address", "name": "proxy", "type": "address" }, { "internalType": "address", "name": "spoke", "type": "address" }, { "internalType": "bool", "name": "giverPositionManagerEnabled", "type": "bool" }, { "internalType": "bool", "name": "takerPositionManagerEnabled", "type": "bool" }, { "internalType": "bool", "name": "configPositionManagerEnabled", "type": "bool" }, { "internalType": "bool", "name": "canSetUsingAsCollateral", "type": "bool" }, { "internalType": "bool", "name": "canUpdateUserRiskPremium", "type": "bool" }, { "internalType": "bool", "name": "canUpdateUserDynamicConfig", "type": "bool" }, { "components": [{ "internalType": "uint256", "name": "reserveId", "type": "uint256" }, { "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "uint256", "name": "delegateeBorrowApproval", "type": "uint256" }, { "internalType": "uint256", "name": "delegateeWithdrawApproval", "type": "uint256" }, { "internalType": "uint256", "name": "eoaReserveBalance", "type": "uint256" }], "internalType": "struct AaveV4View.EOAReserveApprovalData[]", "name": "reserveApprovals", "type": "tuple[]" }], "internalType": "struct AaveV4View.EOAApprovalData", "name": "data", "type": "tuple" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "address", "name": "_user", "type": "address" }], "name": "getHealthFactor", "outputs": [{ "internalType": "uint256", "name": "healthFactor", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_hub", "type": "address" }], "name": "getHubAllAssetsData", "outputs": [{ "components": [{ "internalType": "uint16", "name": "assetId", "type": "uint16" }, { "internalType": "uint8", "name": "decimals", "type": "uint8" }, { "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "uint256", "name": "liquidity", "type": "uint256" }, { "internalType": "uint256", "name": "totalSupplied", "type": "uint256" }, { "internalType": "uint256", "name": "totalDrawn", "type": "uint256" }, { "internalType": "uint256", "name": "totalPremium", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebt", "type": "uint256" }, { "internalType": "uint256", "name": "totalDrawnShares", "type": "uint256" }, { "internalType": "uint256", "name": "totalPremiumShares", "type": "uint256" }, { "internalType": "uint256", "name": "swept", "type": "uint256" }, { "internalType": "uint16", "name": "liquidityFee", "type": "uint16" }, { "internalType": "uint120", "name": "drawnIndex", "type": "uint120" }, { "internalType": "uint96", "name": "drawnRate", "type": "uint96" }, { "internalType": "uint40", "name": "lastUpdateTimestamp", "type": "uint40" }, { "internalType": "address", "name": "irStrategy", "type": "address" }, { "internalType": "address", "name": "reinvestmentController", "type": "address" }, { "internalType": "address", "name": "feeReceiver", "type": "address" }, { "internalType": "uint256", "name": "deficitRay", "type": "uint256" }], "internalType": "struct AaveV4View.HubAssetData[]", "name": "hubAssetData", "type": "tuple[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_hub", "type": "address" }, { "internalType": "uint256", "name": "_assetId", "type": "uint256" }], "name": "getHubAssetData", "outputs": [{ "components": [{ "internalType": "uint16", "name": "assetId", "type": "uint16" }, { "internalType": "uint8", "name": "decimals", "type": "uint8" }, { "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "uint256", "name": "liquidity", "type": "uint256" }, { "internalType": "uint256", "name": "totalSupplied", "type": "uint256" }, { "internalType": "uint256", "name": "totalDrawn", "type": "uint256" }, { "internalType": "uint256", "name": "totalPremium", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebt", "type": "uint256" }, { "internalType": "uint256", "name": "totalDrawnShares", "type": "uint256" }, { "internalType": "uint256", "name": "totalPremiumShares", "type": "uint256" }, { "internalType": "uint256", "name": "swept", "type": "uint256" }, { "internalType": "uint16", "name": "liquidityFee", "type": "uint16" }, { "internalType": "uint120", "name": "drawnIndex", "type": "uint120" }, { "internalType": "uint96", "name": "drawnRate", "type": "uint96" }, { "internalType": "uint40", "name": "lastUpdateTimestamp", "type": "uint40" }, { "internalType": "address", "name": "irStrategy", "type": "address" }, { "internalType": "address", "name": "reinvestmentController", "type": "address" }, { "internalType": "address", "name": "feeReceiver", "type": "address" }, { "internalType": "uint256", "name": "deficitRay", "type": "uint256" }], "internalType": "struct AaveV4View.HubAssetData", "name": "hubAssetData", "type": "tuple" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "address", "name": "_user", "type": "address" }], "name": "getLoanData", "outputs": [{ "components": [{ "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "riskPremium", "type": "uint256" }, { "internalType": "uint256", "name": "avgCollateralFactor", "type": "uint256" }, { "internalType": "uint256", "name": "healthFactor", "type": "uint256" }, { "internalType": "uint256", "name": "totalCollateralInUsd", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebtInUsdRay", "type": "uint256" }, { "internalType": "uint256", "name": "activeCollateralCount", "type": "uint256" }, { "internalType": "uint256", "name": "borrowCount", "type": "uint256" }, { "components": [{ "internalType": "uint256", "name": "reserveId", "type": "uint256" }, { "internalType": "uint16", "name": "assetId", "type": "uint16" }, { "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "uint256", "name": "supplied", "type": "uint256" }, { "internalType": "uint256", "name": "drawn", "type": "uint256" }, { "internalType": "uint256", "name": "premium", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebt", "type": "uint256" }, { "internalType": "uint16", "name": "collateralFactor", "type": "uint16" }, { "internalType": "uint32", "name": "maxLiquidationBonus", "type": "uint32" }, { "internalType": "uint16", "name": "liquidationFee", "type": "uint16" }, { "internalType": "bool", "name": "isUsingAsCollateral", "type": "bool" }, { "internalType": "bool", "name": "isBorrowing", "type": "bool" }], "internalType": "struct AaveV4View.UserReserveData[]", "name": "reserves", "type": "tuple[]" }], "internalType": "struct AaveV4View.LoanData", "name": "loanData", "type": "tuple" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_user", "type": "address" }, { "internalType": "address[]", "name": "_spokes", "type": "address[]" }], "name": "getLoanDataForMultipleSpokes", "outputs": [{ "components": [{ "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "riskPremium", "type": "uint256" }, { "internalType": "uint256", "name": "avgCollateralFactor", "type": "uint256" }, { "internalType": "uint256", "name": "healthFactor", "type": "uint256" }, { "internalType": "uint256", "name": "totalCollateralInUsd", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebtInUsdRay", "type": "uint256" }, { "internalType": "uint256", "name": "activeCollateralCount", "type": "uint256" }, { "internalType": "uint256", "name": "borrowCount", "type": "uint256" }, { "components": [{ "internalType": "uint256", "name": "reserveId", "type": "uint256" }, { "internalType": "uint16", "name": "assetId", "type": "uint16" }, { "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "uint256", "name": "supplied", "type": "uint256" }, { "internalType": "uint256", "name": "drawn", "type": "uint256" }, { "internalType": "uint256", "name": "premium", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebt", "type": "uint256" }, { "internalType": "uint16", "name": "collateralFactor", "type": "uint16" }, { "internalType": "uint32", "name": "maxLiquidationBonus", "type": "uint32" }, { "internalType": "uint16", "name": "liquidationFee", "type": "uint16" }, { "internalType": "bool", "name": "isUsingAsCollateral", "type": "bool" }, { "internalType": "bool", "name": "isBorrowing", "type": "bool" }], "internalType": "struct AaveV4View.UserReserveData[]", "name": "reserves", "type": "tuple[]" }], "internalType": "struct AaveV4View.LoanData[]", "name": "loans", "type": "tuple[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "address[]", "name": "_users", "type": "address[]" }], "name": "getLoanDataForMultipleUsers", "outputs": [{ "components": [{ "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "riskPremium", "type": "uint256" }, { "internalType": "uint256", "name": "avgCollateralFactor", "type": "uint256" }, { "internalType": "uint256", "name": "healthFactor", "type": "uint256" }, { "internalType": "uint256", "name": "totalCollateralInUsd", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebtInUsdRay", "type": "uint256" }, { "internalType": "uint256", "name": "activeCollateralCount", "type": "uint256" }, { "internalType": "uint256", "name": "borrowCount", "type": "uint256" }, { "components": [{ "internalType": "uint256", "name": "reserveId", "type": "uint256" }, { "internalType": "uint16", "name": "assetId", "type": "uint16" }, { "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "uint256", "name": "supplied", "type": "uint256" }, { "internalType": "uint256", "name": "drawn", "type": "uint256" }, { "internalType": "uint256", "name": "premium", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebt", "type": "uint256" }, { "internalType": "uint16", "name": "collateralFactor", "type": "uint16" }, { "internalType": "uint32", "name": "maxLiquidationBonus", "type": "uint32" }, { "internalType": "uint16", "name": "liquidationFee", "type": "uint16" }, { "internalType": "bool", "name": "isUsingAsCollateral", "type": "bool" }, { "internalType": "bool", "name": "isBorrowing", "type": "bool" }], "internalType": "struct AaveV4View.UserReserveData[]", "name": "reserves", "type": "tuple[]" }], "internalType": "struct AaveV4View.LoanData[]", "name": "loans", "type": "tuple[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "address", "name": "_user", "type": "address" }], "name": "getLoanDataFull", "outputs": [{ "components": [{ "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "riskPremium", "type": "uint256" }, { "internalType": "uint256", "name": "avgCollateralFactor", "type": "uint256" }, { "internalType": "uint256", "name": "healthFactor", "type": "uint256" }, { "internalType": "uint256", "name": "totalCollateralInUsd", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebtInUsdRay", "type": "uint256" }, { "internalType": "uint256", "name": "activeCollateralCount", "type": "uint256" }, { "internalType": "uint256", "name": "borrowCount", "type": "uint256" }, { "components": [{ "internalType": "uint256", "name": "reserveId", "type": "uint256" }, { "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint8", "name": "decimals", "type": "uint8" }, { "internalType": "bool", "name": "isUsingAsCollateral", "type": "bool" }, { "internalType": "bool", "name": "isBorrowing", "type": "bool" }, { "internalType": "bool", "name": "reservePaused", "type": "bool" }, { "internalType": "bool", "name": "reserveFrozen", "type": "bool" }, { "internalType": "bool", "name": "borrowable", "type": "bool" }, { "internalType": "bool", "name": "spokeActive", "type": "bool" }, { "internalType": "bool", "name": "spokeHalted", "type": "bool" }, { "internalType": "uint256", "name": "userSupplied", "type": "uint256" }, { "internalType": "uint256", "name": "userDrawn", "type": "uint256" }, { "internalType": "uint256", "name": "userPremium", "type": "uint256" }, { "internalType": "uint256", "name": "userTotalDebt", "type": "uint256" }, { "internalType": "uint24", "name": "collateralRisk", "type": "uint24" }, { "internalType": "uint16", "name": "userCollateralFactor", "type": "uint16" }, { "internalType": "uint32", "name": "userMaxLiquidationBonus", "type": "uint32" }, { "internalType": "uint16", "name": "userLiquidationFee", "type": "uint16" }, { "internalType": "uint16", "name": "latestCollateralFactor", "type": "uint16" }, { "internalType": "uint32", "name": "latestMaxLiquidationBonus", "type": "uint32" }, { "internalType": "uint16", "name": "latestLiquidationFee", "type": "uint16" }, { "internalType": "address", "name": "hub", "type": "address" }, { "internalType": "uint16", "name": "hubAssetId", "type": "uint16" }, { "internalType": "uint256", "name": "hubLiquidity", "type": "uint256" }, { "internalType": "uint96", "name": "drawnRate", "type": "uint96" }, { "internalType": "uint120", "name": "drawnIndex", "type": "uint120" }, { "internalType": "uint256", "name": "spokeTotalSupplied", "type": "uint256" }, { "internalType": "uint256", "name": "spokeTotalDrawn", "type": "uint256" }, { "internalType": "uint256", "name": "spokeTotalPremium", "type": "uint256" }, { "internalType": "uint256", "name": "spokeTotalDebt", "type": "uint256" }, { "internalType": "uint256", "name": "spokeSupplyCap", "type": "uint256" }, { "internalType": "uint256", "name": "spokeBorrowCap", "type": "uint256" }, { "internalType": "uint256", "name": "spokeDeficitRay", "type": "uint256" }], "internalType": "struct AaveV4View.UserReserveDataFull[]", "name": "reserves", "type": "tuple[]" }], "internalType": "struct AaveV4View.LoanDataWithFullReserves", "name": "loanData", "type": "tuple" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "uint256", "name": "_reserveId", "type": "uint256" }], "name": "getReserveData", "outputs": [{ "components": [{ "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "uint16", "name": "collateralFactor", "type": "uint16" }, { "internalType": "uint256", "name": "price", "type": "uint256" }], "internalType": "struct AaveV4View.ReserveData", "name": "reserveData", "type": "tuple" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "uint256", "name": "_reserveId", "type": "uint256" }], "name": "getReserveDataFull", "outputs": [{ "components": [{ "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "address", "name": "hub", "type": "address" }, { "internalType": "uint16", "name": "assetId", "type": "uint16" }, { "internalType": "uint8", "name": "decimals", "type": "uint8" }, { "internalType": "bool", "name": "paused", "type": "bool" }, { "internalType": "bool", "name": "frozen", "type": "bool" }, { "internalType": "bool", "name": "borrowable", "type": "bool" }, { "internalType": "uint24", "name": "collateralRisk", "type": "uint24" }, { "internalType": "uint16", "name": "collateralFactor", "type": "uint16" }, { "internalType": "uint32", "name": "maxLiquidationBonus", "type": "uint32" }, { "internalType": "uint16", "name": "liquidationFee", "type": "uint16" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "totalSupplied", "type": "uint256" }, { "internalType": "uint256", "name": "totalDrawn", "type": "uint256" }, { "internalType": "uint256", "name": "totalPremium", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebt", "type": "uint256" }, { "internalType": "uint256", "name": "supplyCap", "type": "uint256" }, { "internalType": "uint256", "name": "borrowCap", "type": "uint256" }, { "internalType": "uint256", "name": "deficitRay", "type": "uint256" }, { "internalType": "bool", "name": "spokeActive", "type": "bool" }, { "internalType": "bool", "name": "spokeHalted", "type": "bool" }], "internalType": "struct AaveV4View.ReserveDataFull", "name": "reserveData", "type": "tuple" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "uint256", "name": "_reserveId", "type": "uint256" }], "name": "getReservePrice", "outputs": [{ "internalType": "uint256", "name": "price", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "uint256[]", "name": "_reserveIds", "type": "uint256[]" }], "name": "getReservePrices", "outputs": [{ "internalType": "uint256[]", "name": "prices", "type": "uint256[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "uint256[]", "name": "_reserveIds", "type": "uint256[]" }], "name": "getReservesData", "outputs": [{ "components": [{ "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "uint16", "name": "collateralFactor", "type": "uint16" }, { "internalType": "uint256", "name": "price", "type": "uint256" }], "internalType": "struct AaveV4View.ReserveData[]", "name": "reserveData", "type": "tuple[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "uint256[]", "name": "_reserveIds", "type": "uint256[]" }], "name": "getReservesDataFull", "outputs": [{ "components": [{ "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "address", "name": "hub", "type": "address" }, { "internalType": "uint16", "name": "assetId", "type": "uint16" }, { "internalType": "uint8", "name": "decimals", "type": "uint8" }, { "internalType": "bool", "name": "paused", "type": "bool" }, { "internalType": "bool", "name": "frozen", "type": "bool" }, { "internalType": "bool", "name": "borrowable", "type": "bool" }, { "internalType": "uint24", "name": "collateralRisk", "type": "uint24" }, { "internalType": "uint16", "name": "collateralFactor", "type": "uint16" }, { "internalType": "uint32", "name": "maxLiquidationBonus", "type": "uint32" }, { "internalType": "uint16", "name": "liquidationFee", "type": "uint16" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "totalSupplied", "type": "uint256" }, { "internalType": "uint256", "name": "totalDrawn", "type": "uint256" }, { "internalType": "uint256", "name": "totalPremium", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebt", "type": "uint256" }, { "internalType": "uint256", "name": "supplyCap", "type": "uint256" }, { "internalType": "uint256", "name": "borrowCap", "type": "uint256" }, { "internalType": "uint256", "name": "deficitRay", "type": "uint256" }, { "internalType": "bool", "name": "spokeActive", "type": "bool" }, { "internalType": "bool", "name": "spokeHalted", "type": "bool" }], "internalType": "struct AaveV4View.ReserveDataFull[]", "name": "reserveData", "type": "tuple[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }], "name": "getSpokeData", "outputs": [{ "components": [{ "internalType": "uint128", "name": "targetHealthFactor", "type": "uint128" }, { "internalType": "uint64", "name": "healthFactorForMaxBonus", "type": "uint64" }, { "internalType": "uint16", "name": "liquidationBonusFactor", "type": "uint16" }, { "internalType": "address", "name": "oracle", "type": "address" }, { "internalType": "uint256", "name": "oracleDecimals", "type": "uint256" }, { "internalType": "uint256", "name": "reserveCount", "type": "uint256" }], "internalType": "struct AaveV4View.SpokeData", "name": "spokeData", "type": "tuple" }, { "components": [{ "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "uint16", "name": "collateralFactor", "type": "uint16" }, { "internalType": "uint256", "name": "price", "type": "uint256" }], "internalType": "struct AaveV4View.ReserveData[]", "name": "reserves", "type": "tuple[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }], "name": "getSpokeDataFull", "outputs": [{ "components": [{ "internalType": "uint128", "name": "targetHealthFactor", "type": "uint128" }, { "internalType": "uint64", "name": "healthFactorForMaxBonus", "type": "uint64" }, { "internalType": "uint16", "name": "liquidationBonusFactor", "type": "uint16" }, { "internalType": "address", "name": "oracle", "type": "address" }, { "internalType": "uint256", "name": "oracleDecimals", "type": "uint256" }, { "internalType": "uint256", "name": "reserveCount", "type": "uint256" }], "internalType": "struct AaveV4View.SpokeData", "name": "spokeData", "type": "tuple" }, { "components": [{ "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "address", "name": "hub", "type": "address" }, { "internalType": "uint16", "name": "assetId", "type": "uint16" }, { "internalType": "uint8", "name": "decimals", "type": "uint8" }, { "internalType": "bool", "name": "paused", "type": "bool" }, { "internalType": "bool", "name": "frozen", "type": "bool" }, { "internalType": "bool", "name": "borrowable", "type": "bool" }, { "internalType": "uint24", "name": "collateralRisk", "type": "uint24" }, { "internalType": "uint16", "name": "collateralFactor", "type": "uint16" }, { "internalType": "uint32", "name": "maxLiquidationBonus", "type": "uint32" }, { "internalType": "uint16", "name": "liquidationFee", "type": "uint16" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "totalSupplied", "type": "uint256" }, { "internalType": "uint256", "name": "totalDrawn", "type": "uint256" }, { "internalType": "uint256", "name": "totalPremium", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebt", "type": "uint256" }, { "internalType": "uint256", "name": "supplyCap", "type": "uint256" }, { "internalType": "uint256", "name": "borrowCap", "type": "uint256" }, { "internalType": "uint256", "name": "deficitRay", "type": "uint256" }, { "internalType": "bool", "name": "spokeActive", "type": "bool" }, { "internalType": "bool", "name": "spokeHalted", "type": "bool" }], "internalType": "struct AaveV4View.ReserveDataFull[]", "name": "reserves", "type": "tuple[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_hub", "type": "address" }, { "internalType": "uint256", "name": "_assetId", "type": "uint256" }], "name": "getSpokesForAsset", "outputs": [{ "internalType": "address[]", "name": "spokes", "type": "address[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "address", "name": "_user", "type": "address" }], "name": "getTokenizationSpokeData", "outputs": [{ "components": [{ "internalType": "address", "name": "underlyingAsset", "type": "address" }, { "internalType": "uint256", "name": "assetId", "type": "uint256" }, { "internalType": "uint8", "name": "decimals", "type": "uint8" }, { "internalType": "address", "name": "spoke", "type": "address" }, { "internalType": "bool", "name": "spokeActive", "type": "bool" }, { "internalType": "bool", "name": "spokeHalted", "type": "bool" }, { "internalType": "uint256", "name": "spokeDepositCap", "type": "uint256" }, { "internalType": "uint256", "name": "spokeTotalAssets", "type": "uint256" }, { "internalType": "uint256", "name": "spokeTotalShares", "type": "uint256" }, { "internalType": "address", "name": "hub", "type": "address" }, { "internalType": "uint256", "name": "hubLiquidity", "type": "uint256" }, { "internalType": "uint96", "name": "hubDrawnRate", "type": "uint96" }, { "internalType": "uint256", "name": "convertToShares", "type": "uint256" }, { "internalType": "uint256", "name": "convertToAssets", "type": "uint256" }, { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "userSuppliedAssets", "type": "uint256" }, { "internalType": "uint256", "name": "userSuppliedShares", "type": "uint256" }], "internalType": "struct AaveV4View.TokenizationSpokeData", "name": "spokeData", "type": "tuple" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address[]", "name": "_spokes", "type": "address[]" }, { "internalType": "address", "name": "_user", "type": "address" }], "name": "getTokenizationSpokesData", "outputs": [{ "components": [{ "internalType": "address", "name": "underlyingAsset", "type": "address" }, { "internalType": "uint256", "name": "assetId", "type": "uint256" }, { "internalType": "uint8", "name": "decimals", "type": "uint8" }, { "internalType": "address", "name": "spoke", "type": "address" }, { "internalType": "bool", "name": "spokeActive", "type": "bool" }, { "internalType": "bool", "name": "spokeHalted", "type": "bool" }, { "internalType": "uint256", "name": "spokeDepositCap", "type": "uint256" }, { "internalType": "uint256", "name": "spokeTotalAssets", "type": "uint256" }, { "internalType": "uint256", "name": "spokeTotalShares", "type": "uint256" }, { "internalType": "address", "name": "hub", "type": "address" }, { "internalType": "uint256", "name": "hubLiquidity", "type": "uint256" }, { "internalType": "uint96", "name": "hubDrawnRate", "type": "uint96" }, { "internalType": "uint256", "name": "convertToShares", "type": "uint256" }, { "internalType": "uint256", "name": "convertToAssets", "type": "uint256" }, { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "userSuppliedAssets", "type": "uint256" }, { "internalType": "uint256", "name": "userSuppliedShares", "type": "uint256" }], "internalType": "struct AaveV4View.TokenizationSpokeData[]", "name": "spokeData", "type": "tuple[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "address", "name": "_user", "type": "address" }, { "internalType": "uint256[]", "name": "_reserveIds", "type": "uint256[]" }], "name": "getUserReserveData", "outputs": [{ "components": [{ "internalType": "uint256", "name": "reserveId", "type": "uint256" }, { "internalType": "uint16", "name": "assetId", "type": "uint16" }, { "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "uint256", "name": "supplied", "type": "uint256" }, { "internalType": "uint256", "name": "drawn", "type": "uint256" }, { "internalType": "uint256", "name": "premium", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebt", "type": "uint256" }, { "internalType": "uint16", "name": "collateralFactor", "type": "uint16" }, { "internalType": "uint32", "name": "maxLiquidationBonus", "type": "uint32" }, { "internalType": "uint16", "name": "liquidationFee", "type": "uint16" }, { "internalType": "bool", "name": "isUsingAsCollateral", "type": "bool" }, { "internalType": "bool", "name": "isBorrowing", "type": "bool" }], "internalType": "struct AaveV4View.UserReserveData[]", "name": "_userReserves", "type": "tuple[]" }], "stateMutability": "view", "type": "function" }],
1354
+ "abi": [{ "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "components": [{ "internalType": "uint256", "name": "reserveId", "type": "uint256" }, { "internalType": "uint256", "name": "liquidityAdded", "type": "uint256" }, { "internalType": "uint256", "name": "liquidityTaken", "type": "uint256" }, { "internalType": "bool", "name": "isDebtAsset", "type": "bool" }], "internalType": "struct AaveV4View.LiquidityChangeParams[]", "name": "_reserveParams", "type": "tuple[]" }], "name": "getApyAfterValuesEstimation", "outputs": [{ "components": [{ "internalType": "uint256", "name": "reserveId", "type": "uint256" }, { "internalType": "uint256", "name": "hubDrawnRateEstimation", "type": "uint256" }, { "internalType": "uint256", "name": "hubTotalDrawnEstimation", "type": "uint256" }, { "internalType": "uint256", "name": "hubTotalLiquidityEstimation", "type": "uint256" }, { "internalType": "uint256", "name": "hubSwept", "type": "uint256" }, { "internalType": "uint16", "name": "liquidityFee", "type": "uint16" }], "internalType": "struct AaveV4View.EstimatedRates[]", "name": "", "type": "tuple[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_eoa", "type": "address" }, { "internalType": "address", "name": "_proxy", "type": "address" }, { "internalType": "address", "name": "_spoke", "type": "address" }], "name": "getEOAApprovalsAndBalances", "outputs": [{ "components": [{ "internalType": "address", "name": "eoa", "type": "address" }, { "internalType": "address", "name": "proxy", "type": "address" }, { "internalType": "address", "name": "spoke", "type": "address" }, { "internalType": "bool", "name": "giverPositionManagerEnabled", "type": "bool" }, { "internalType": "bool", "name": "takerPositionManagerEnabled", "type": "bool" }, { "internalType": "bool", "name": "configPositionManagerEnabled", "type": "bool" }, { "internalType": "bool", "name": "canSetUsingAsCollateral", "type": "bool" }, { "internalType": "bool", "name": "canUpdateUserRiskPremium", "type": "bool" }, { "internalType": "bool", "name": "canUpdateUserDynamicConfig", "type": "bool" }, { "components": [{ "internalType": "uint256", "name": "reserveId", "type": "uint256" }, { "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "uint256", "name": "delegateeBorrowApproval", "type": "uint256" }, { "internalType": "uint256", "name": "delegateeWithdrawApproval", "type": "uint256" }, { "internalType": "uint256", "name": "eoaReserveBalance", "type": "uint256" }], "internalType": "struct AaveV4View.EOAReserveApprovalData[]", "name": "reserveApprovals", "type": "tuple[]" }], "internalType": "struct AaveV4View.EOAApprovalData", "name": "data", "type": "tuple" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "address", "name": "_user", "type": "address" }], "name": "getHealthFactor", "outputs": [{ "internalType": "uint256", "name": "healthFactor", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_hub", "type": "address" }], "name": "getHubAllAssetsData", "outputs": [{ "components": [{ "internalType": "uint16", "name": "assetId", "type": "uint16" }, { "internalType": "uint8", "name": "decimals", "type": "uint8" }, { "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "uint256", "name": "liquidity", "type": "uint256" }, { "internalType": "uint256", "name": "totalSupplied", "type": "uint256" }, { "internalType": "uint256", "name": "totalDrawn", "type": "uint256" }, { "internalType": "uint256", "name": "totalPremium", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebt", "type": "uint256" }, { "internalType": "uint256", "name": "totalDrawnShares", "type": "uint256" }, { "internalType": "uint256", "name": "totalPremiumShares", "type": "uint256" }, { "internalType": "uint256", "name": "swept", "type": "uint256" }, { "internalType": "uint16", "name": "liquidityFee", "type": "uint16" }, { "internalType": "uint120", "name": "drawnIndex", "type": "uint120" }, { "internalType": "uint96", "name": "drawnRate", "type": "uint96" }, { "internalType": "uint40", "name": "lastUpdateTimestamp", "type": "uint40" }, { "internalType": "address", "name": "irStrategy", "type": "address" }, { "internalType": "address", "name": "reinvestmentController", "type": "address" }, { "internalType": "address", "name": "feeReceiver", "type": "address" }, { "internalType": "uint256", "name": "deficitRay", "type": "uint256" }], "internalType": "struct AaveV4View.HubAssetData[]", "name": "hubAssetData", "type": "tuple[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_hub", "type": "address" }, { "internalType": "uint256", "name": "_assetId", "type": "uint256" }], "name": "getHubAssetData", "outputs": [{ "components": [{ "internalType": "uint16", "name": "assetId", "type": "uint16" }, { "internalType": "uint8", "name": "decimals", "type": "uint8" }, { "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "uint256", "name": "liquidity", "type": "uint256" }, { "internalType": "uint256", "name": "totalSupplied", "type": "uint256" }, { "internalType": "uint256", "name": "totalDrawn", "type": "uint256" }, { "internalType": "uint256", "name": "totalPremium", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebt", "type": "uint256" }, { "internalType": "uint256", "name": "totalDrawnShares", "type": "uint256" }, { "internalType": "uint256", "name": "totalPremiumShares", "type": "uint256" }, { "internalType": "uint256", "name": "swept", "type": "uint256" }, { "internalType": "uint16", "name": "liquidityFee", "type": "uint16" }, { "internalType": "uint120", "name": "drawnIndex", "type": "uint120" }, { "internalType": "uint96", "name": "drawnRate", "type": "uint96" }, { "internalType": "uint40", "name": "lastUpdateTimestamp", "type": "uint40" }, { "internalType": "address", "name": "irStrategy", "type": "address" }, { "internalType": "address", "name": "reinvestmentController", "type": "address" }, { "internalType": "address", "name": "feeReceiver", "type": "address" }, { "internalType": "uint256", "name": "deficitRay", "type": "uint256" }], "internalType": "struct AaveV4View.HubAssetData", "name": "hubAssetData", "type": "tuple" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "address", "name": "_user", "type": "address" }], "name": "getLoanData", "outputs": [{ "components": [{ "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "riskPremium", "type": "uint256" }, { "internalType": "uint256", "name": "avgCollateralFactor", "type": "uint256" }, { "internalType": "uint256", "name": "healthFactor", "type": "uint256" }, { "internalType": "uint256", "name": "totalCollateralInUsd", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebtInUsdRay", "type": "uint256" }, { "internalType": "uint256", "name": "activeCollateralCount", "type": "uint256" }, { "internalType": "uint256", "name": "borrowCount", "type": "uint256" }, { "components": [{ "internalType": "uint256", "name": "reserveId", "type": "uint256" }, { "internalType": "uint16", "name": "assetId", "type": "uint16" }, { "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "uint256", "name": "supplied", "type": "uint256" }, { "internalType": "uint256", "name": "drawn", "type": "uint256" }, { "internalType": "uint256", "name": "premium", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebt", "type": "uint256" }, { "internalType": "uint16", "name": "collateralFactor", "type": "uint16" }, { "internalType": "uint32", "name": "maxLiquidationBonus", "type": "uint32" }, { "internalType": "uint16", "name": "liquidationFee", "type": "uint16" }, { "internalType": "bool", "name": "isUsingAsCollateral", "type": "bool" }, { "internalType": "bool", "name": "isBorrowing", "type": "bool" }], "internalType": "struct AaveV4View.UserReserveData[]", "name": "reserves", "type": "tuple[]" }], "internalType": "struct AaveV4View.LoanData", "name": "loanData", "type": "tuple" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_user", "type": "address" }, { "internalType": "address[]", "name": "_spokes", "type": "address[]" }], "name": "getLoanDataForMultipleSpokes", "outputs": [{ "components": [{ "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "riskPremium", "type": "uint256" }, { "internalType": "uint256", "name": "avgCollateralFactor", "type": "uint256" }, { "internalType": "uint256", "name": "healthFactor", "type": "uint256" }, { "internalType": "uint256", "name": "totalCollateralInUsd", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebtInUsdRay", "type": "uint256" }, { "internalType": "uint256", "name": "activeCollateralCount", "type": "uint256" }, { "internalType": "uint256", "name": "borrowCount", "type": "uint256" }, { "components": [{ "internalType": "uint256", "name": "reserveId", "type": "uint256" }, { "internalType": "uint16", "name": "assetId", "type": "uint16" }, { "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "uint256", "name": "supplied", "type": "uint256" }, { "internalType": "uint256", "name": "drawn", "type": "uint256" }, { "internalType": "uint256", "name": "premium", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebt", "type": "uint256" }, { "internalType": "uint16", "name": "collateralFactor", "type": "uint16" }, { "internalType": "uint32", "name": "maxLiquidationBonus", "type": "uint32" }, { "internalType": "uint16", "name": "liquidationFee", "type": "uint16" }, { "internalType": "bool", "name": "isUsingAsCollateral", "type": "bool" }, { "internalType": "bool", "name": "isBorrowing", "type": "bool" }], "internalType": "struct AaveV4View.UserReserveData[]", "name": "reserves", "type": "tuple[]" }], "internalType": "struct AaveV4View.LoanData[]", "name": "loans", "type": "tuple[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "address[]", "name": "_users", "type": "address[]" }], "name": "getLoanDataForMultipleUsers", "outputs": [{ "components": [{ "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "riskPremium", "type": "uint256" }, { "internalType": "uint256", "name": "avgCollateralFactor", "type": "uint256" }, { "internalType": "uint256", "name": "healthFactor", "type": "uint256" }, { "internalType": "uint256", "name": "totalCollateralInUsd", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebtInUsdRay", "type": "uint256" }, { "internalType": "uint256", "name": "activeCollateralCount", "type": "uint256" }, { "internalType": "uint256", "name": "borrowCount", "type": "uint256" }, { "components": [{ "internalType": "uint256", "name": "reserveId", "type": "uint256" }, { "internalType": "uint16", "name": "assetId", "type": "uint16" }, { "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "uint256", "name": "supplied", "type": "uint256" }, { "internalType": "uint256", "name": "drawn", "type": "uint256" }, { "internalType": "uint256", "name": "premium", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebt", "type": "uint256" }, { "internalType": "uint16", "name": "collateralFactor", "type": "uint16" }, { "internalType": "uint32", "name": "maxLiquidationBonus", "type": "uint32" }, { "internalType": "uint16", "name": "liquidationFee", "type": "uint16" }, { "internalType": "bool", "name": "isUsingAsCollateral", "type": "bool" }, { "internalType": "bool", "name": "isBorrowing", "type": "bool" }], "internalType": "struct AaveV4View.UserReserveData[]", "name": "reserves", "type": "tuple[]" }], "internalType": "struct AaveV4View.LoanData[]", "name": "loans", "type": "tuple[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "address", "name": "_user", "type": "address" }], "name": "getLoanDataFull", "outputs": [{ "components": [{ "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "riskPremium", "type": "uint256" }, { "internalType": "uint256", "name": "avgCollateralFactor", "type": "uint256" }, { "internalType": "uint256", "name": "healthFactor", "type": "uint256" }, { "internalType": "uint256", "name": "totalCollateralInUsd", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebtInUsdRay", "type": "uint256" }, { "internalType": "uint256", "name": "activeCollateralCount", "type": "uint256" }, { "internalType": "uint256", "name": "borrowCount", "type": "uint256" }, { "components": [{ "internalType": "uint256", "name": "reserveId", "type": "uint256" }, { "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint8", "name": "decimals", "type": "uint8" }, { "internalType": "bool", "name": "isUsingAsCollateral", "type": "bool" }, { "internalType": "bool", "name": "isBorrowing", "type": "bool" }, { "internalType": "bool", "name": "reservePaused", "type": "bool" }, { "internalType": "bool", "name": "reserveFrozen", "type": "bool" }, { "internalType": "bool", "name": "borrowable", "type": "bool" }, { "internalType": "bool", "name": "spokeActive", "type": "bool" }, { "internalType": "bool", "name": "spokeHalted", "type": "bool" }, { "internalType": "uint256", "name": "userSupplied", "type": "uint256" }, { "internalType": "uint256", "name": "userDrawn", "type": "uint256" }, { "internalType": "uint256", "name": "userPremium", "type": "uint256" }, { "internalType": "uint256", "name": "userTotalDebt", "type": "uint256" }, { "internalType": "uint24", "name": "collateralRisk", "type": "uint24" }, { "internalType": "uint16", "name": "userCollateralFactor", "type": "uint16" }, { "internalType": "uint32", "name": "userMaxLiquidationBonus", "type": "uint32" }, { "internalType": "uint16", "name": "userLiquidationFee", "type": "uint16" }, { "internalType": "uint16", "name": "latestCollateralFactor", "type": "uint16" }, { "internalType": "uint32", "name": "latestMaxLiquidationBonus", "type": "uint32" }, { "internalType": "uint16", "name": "latestLiquidationFee", "type": "uint16" }, { "internalType": "address", "name": "hub", "type": "address" }, { "internalType": "uint16", "name": "hubAssetId", "type": "uint16" }, { "internalType": "uint256", "name": "hubLiquidity", "type": "uint256" }, { "internalType": "uint96", "name": "drawnRate", "type": "uint96" }, { "internalType": "uint120", "name": "drawnIndex", "type": "uint120" }, { "internalType": "uint256", "name": "spokeTotalSupplied", "type": "uint256" }, { "internalType": "uint256", "name": "spokeTotalDrawn", "type": "uint256" }, { "internalType": "uint256", "name": "spokeTotalPremium", "type": "uint256" }, { "internalType": "uint256", "name": "spokeTotalDebt", "type": "uint256" }, { "internalType": "uint256", "name": "spokeSupplyCap", "type": "uint256" }, { "internalType": "uint256", "name": "spokeBorrowCap", "type": "uint256" }, { "internalType": "uint256", "name": "spokeDeficitRay", "type": "uint256" }], "internalType": "struct AaveV4View.UserReserveDataFull[]", "name": "reserves", "type": "tuple[]" }], "internalType": "struct AaveV4View.LoanDataWithFullReserves", "name": "loanData", "type": "tuple" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "uint256", "name": "_reserveId", "type": "uint256" }], "name": "getReserveData", "outputs": [{ "components": [{ "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "uint16", "name": "collateralFactor", "type": "uint16" }, { "internalType": "uint256", "name": "price", "type": "uint256" }], "internalType": "struct AaveV4View.ReserveData", "name": "reserveData", "type": "tuple" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "uint256", "name": "_reserveId", "type": "uint256" }], "name": "getReserveDataFull", "outputs": [{ "components": [{ "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "address", "name": "hub", "type": "address" }, { "internalType": "uint16", "name": "assetId", "type": "uint16" }, { "internalType": "uint8", "name": "decimals", "type": "uint8" }, { "internalType": "bool", "name": "paused", "type": "bool" }, { "internalType": "bool", "name": "frozen", "type": "bool" }, { "internalType": "bool", "name": "borrowable", "type": "bool" }, { "internalType": "uint24", "name": "collateralRisk", "type": "uint24" }, { "internalType": "uint16", "name": "collateralFactor", "type": "uint16" }, { "internalType": "uint32", "name": "maxLiquidationBonus", "type": "uint32" }, { "internalType": "uint16", "name": "liquidationFee", "type": "uint16" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "totalSupplied", "type": "uint256" }, { "internalType": "uint256", "name": "totalDrawn", "type": "uint256" }, { "internalType": "uint256", "name": "totalPremium", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebt", "type": "uint256" }, { "internalType": "uint256", "name": "supplyCap", "type": "uint256" }, { "internalType": "uint256", "name": "borrowCap", "type": "uint256" }, { "internalType": "uint256", "name": "deficitRay", "type": "uint256" }, { "internalType": "bool", "name": "spokeActive", "type": "bool" }, { "internalType": "bool", "name": "spokeHalted", "type": "bool" }], "internalType": "struct AaveV4View.ReserveDataFull", "name": "reserveData", "type": "tuple" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "uint256", "name": "_reserveId", "type": "uint256" }], "name": "getReservePrice", "outputs": [{ "internalType": "uint256", "name": "price", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "uint256[]", "name": "_reserveIds", "type": "uint256[]" }], "name": "getReservePrices", "outputs": [{ "internalType": "uint256[]", "name": "prices", "type": "uint256[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "uint256[]", "name": "_reserveIds", "type": "uint256[]" }], "name": "getReservesData", "outputs": [{ "components": [{ "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "uint16", "name": "collateralFactor", "type": "uint16" }, { "internalType": "uint256", "name": "price", "type": "uint256" }], "internalType": "struct AaveV4View.ReserveData[]", "name": "reserveData", "type": "tuple[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "uint256[]", "name": "_reserveIds", "type": "uint256[]" }], "name": "getReservesDataFull", "outputs": [{ "components": [{ "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "address", "name": "hub", "type": "address" }, { "internalType": "uint16", "name": "assetId", "type": "uint16" }, { "internalType": "uint8", "name": "decimals", "type": "uint8" }, { "internalType": "bool", "name": "paused", "type": "bool" }, { "internalType": "bool", "name": "frozen", "type": "bool" }, { "internalType": "bool", "name": "borrowable", "type": "bool" }, { "internalType": "uint24", "name": "collateralRisk", "type": "uint24" }, { "internalType": "uint16", "name": "collateralFactor", "type": "uint16" }, { "internalType": "uint32", "name": "maxLiquidationBonus", "type": "uint32" }, { "internalType": "uint16", "name": "liquidationFee", "type": "uint16" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "totalSupplied", "type": "uint256" }, { "internalType": "uint256", "name": "totalDrawn", "type": "uint256" }, { "internalType": "uint256", "name": "totalPremium", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebt", "type": "uint256" }, { "internalType": "uint256", "name": "supplyCap", "type": "uint256" }, { "internalType": "uint256", "name": "borrowCap", "type": "uint256" }, { "internalType": "uint256", "name": "deficitRay", "type": "uint256" }, { "internalType": "bool", "name": "spokeActive", "type": "bool" }, { "internalType": "bool", "name": "spokeHalted", "type": "bool" }], "internalType": "struct AaveV4View.ReserveDataFull[]", "name": "reserveData", "type": "tuple[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }], "name": "getSpokeData", "outputs": [{ "components": [{ "internalType": "uint128", "name": "targetHealthFactor", "type": "uint128" }, { "internalType": "uint64", "name": "healthFactorForMaxBonus", "type": "uint64" }, { "internalType": "uint16", "name": "liquidationBonusFactor", "type": "uint16" }, { "internalType": "address", "name": "oracle", "type": "address" }, { "internalType": "uint256", "name": "oracleDecimals", "type": "uint256" }, { "internalType": "uint256", "name": "reserveCount", "type": "uint256" }], "internalType": "struct AaveV4View.SpokeData", "name": "spokeData", "type": "tuple" }, { "components": [{ "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "uint16", "name": "collateralFactor", "type": "uint16" }, { "internalType": "uint256", "name": "price", "type": "uint256" }], "internalType": "struct AaveV4View.ReserveData[]", "name": "reserves", "type": "tuple[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }], "name": "getSpokeDataFull", "outputs": [{ "components": [{ "internalType": "uint128", "name": "targetHealthFactor", "type": "uint128" }, { "internalType": "uint64", "name": "healthFactorForMaxBonus", "type": "uint64" }, { "internalType": "uint16", "name": "liquidationBonusFactor", "type": "uint16" }, { "internalType": "address", "name": "oracle", "type": "address" }, { "internalType": "uint256", "name": "oracleDecimals", "type": "uint256" }, { "internalType": "uint256", "name": "reserveCount", "type": "uint256" }], "internalType": "struct AaveV4View.SpokeData", "name": "spokeData", "type": "tuple" }, { "components": [{ "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "address", "name": "hub", "type": "address" }, { "internalType": "uint16", "name": "assetId", "type": "uint16" }, { "internalType": "uint8", "name": "decimals", "type": "uint8" }, { "internalType": "bool", "name": "paused", "type": "bool" }, { "internalType": "bool", "name": "frozen", "type": "bool" }, { "internalType": "bool", "name": "borrowable", "type": "bool" }, { "internalType": "uint24", "name": "collateralRisk", "type": "uint24" }, { "internalType": "uint16", "name": "collateralFactor", "type": "uint16" }, { "internalType": "uint32", "name": "maxLiquidationBonus", "type": "uint32" }, { "internalType": "uint16", "name": "liquidationFee", "type": "uint16" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "totalSupplied", "type": "uint256" }, { "internalType": "uint256", "name": "totalDrawn", "type": "uint256" }, { "internalType": "uint256", "name": "totalPremium", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebt", "type": "uint256" }, { "internalType": "uint256", "name": "supplyCap", "type": "uint256" }, { "internalType": "uint256", "name": "borrowCap", "type": "uint256" }, { "internalType": "uint256", "name": "deficitRay", "type": "uint256" }, { "internalType": "bool", "name": "spokeActive", "type": "bool" }, { "internalType": "bool", "name": "spokeHalted", "type": "bool" }], "internalType": "struct AaveV4View.ReserveDataFull[]", "name": "reserves", "type": "tuple[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_hub", "type": "address" }, { "internalType": "uint256", "name": "_assetId", "type": "uint256" }], "name": "getSpokesForAsset", "outputs": [{ "internalType": "address[]", "name": "spokes", "type": "address[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "address", "name": "_user", "type": "address" }], "name": "getTokenizationSpokeData", "outputs": [{ "components": [{ "internalType": "address", "name": "underlyingAsset", "type": "address" }, { "internalType": "uint256", "name": "assetId", "type": "uint256" }, { "internalType": "uint8", "name": "decimals", "type": "uint8" }, { "internalType": "address", "name": "spoke", "type": "address" }, { "internalType": "bool", "name": "spokeActive", "type": "bool" }, { "internalType": "bool", "name": "spokeHalted", "type": "bool" }, { "internalType": "uint256", "name": "spokeDepositCap", "type": "uint256" }, { "internalType": "uint256", "name": "spokeTotalAssets", "type": "uint256" }, { "internalType": "uint256", "name": "spokeTotalShares", "type": "uint256" }, { "internalType": "address", "name": "hub", "type": "address" }, { "internalType": "uint256", "name": "hubLiquidity", "type": "uint256" }, { "internalType": "uint96", "name": "hubDrawnRate", "type": "uint96" }, { "internalType": "uint256", "name": "convertToShares", "type": "uint256" }, { "internalType": "uint256", "name": "convertToAssets", "type": "uint256" }, { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "userSuppliedAssets", "type": "uint256" }, { "internalType": "uint256", "name": "userSuppliedShares", "type": "uint256" }], "internalType": "struct AaveV4View.TokenizationSpokeData", "name": "spokeData", "type": "tuple" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address[]", "name": "_spokes", "type": "address[]" }, { "internalType": "address", "name": "_user", "type": "address" }], "name": "getTokenizationSpokesData", "outputs": [{ "components": [{ "internalType": "address", "name": "underlyingAsset", "type": "address" }, { "internalType": "uint256", "name": "assetId", "type": "uint256" }, { "internalType": "uint8", "name": "decimals", "type": "uint8" }, { "internalType": "address", "name": "spoke", "type": "address" }, { "internalType": "bool", "name": "spokeActive", "type": "bool" }, { "internalType": "bool", "name": "spokeHalted", "type": "bool" }, { "internalType": "uint256", "name": "spokeDepositCap", "type": "uint256" }, { "internalType": "uint256", "name": "spokeTotalAssets", "type": "uint256" }, { "internalType": "uint256", "name": "spokeTotalShares", "type": "uint256" }, { "internalType": "address", "name": "hub", "type": "address" }, { "internalType": "uint256", "name": "hubLiquidity", "type": "uint256" }, { "internalType": "uint96", "name": "hubDrawnRate", "type": "uint96" }, { "internalType": "uint256", "name": "convertToShares", "type": "uint256" }, { "internalType": "uint256", "name": "convertToAssets", "type": "uint256" }, { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "userSuppliedAssets", "type": "uint256" }, { "internalType": "uint256", "name": "userSuppliedShares", "type": "uint256" }], "internalType": "struct AaveV4View.TokenizationSpokeData[]", "name": "spokeData", "type": "tuple[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_spoke", "type": "address" }, { "internalType": "address", "name": "_user", "type": "address" }, { "internalType": "uint256[]", "name": "_reserveIds", "type": "uint256[]" }], "name": "getUserReserveData", "outputs": [{ "components": [{ "internalType": "uint256", "name": "reserveId", "type": "uint256" }, { "internalType": "uint16", "name": "assetId", "type": "uint16" }, { "internalType": "address", "name": "underlying", "type": "address" }, { "internalType": "uint256", "name": "supplied", "type": "uint256" }, { "internalType": "uint256", "name": "drawn", "type": "uint256" }, { "internalType": "uint256", "name": "premium", "type": "uint256" }, { "internalType": "uint256", "name": "totalDebt", "type": "uint256" }, { "internalType": "uint16", "name": "collateralFactor", "type": "uint16" }, { "internalType": "uint32", "name": "maxLiquidationBonus", "type": "uint32" }, { "internalType": "uint16", "name": "liquidationFee", "type": "uint16" }, { "internalType": "bool", "name": "isUsingAsCollateral", "type": "bool" }, { "internalType": "bool", "name": "isBorrowing", "type": "bool" }], "internalType": "struct AaveV4View.UserReserveData[]", "name": "_userReserves", "type": "tuple[]" }], "stateMutability": "view", "type": "function" }],
1355
1355
  "networks": {
1356
1356
  "1": {
1357
- "address": "0x274C0f0164A82B8771145651A8331A909c939e42",
1357
+ "address": "0xeCa884900ccC0481F1b65707a80eb294d1245F68",
1358
1358
  }
1359
1359
  }
1360
1360
  };