@defisaver/positions-sdk 2.1.7 → 2.1.9-dev-spark-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 (154) 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/aaveV3/merit.js +3 -0
  6. package/cjs/aaveV3/merkl.d.ts +1 -1
  7. package/cjs/config/contracts.d.ts +20 -0
  8. package/cjs/config/contracts.js +20 -0
  9. package/cjs/fluid/index.js +40 -12
  10. package/cjs/helpers/aaveHelpers/index.d.ts +1 -1
  11. package/cjs/helpers/aaveHelpers/index.js +6 -4
  12. package/cjs/helpers/morphoBlueHelpers/index.d.ts +1 -1
  13. package/cjs/helpers/morphoBlueHelpers/index.js +66 -66
  14. package/cjs/helpers/sparkHelpers/index.d.ts +4 -4
  15. package/cjs/helpers/sparkHelpers/index.js +12 -12
  16. package/cjs/markets/aave/index.js +1 -1
  17. package/cjs/markets/aave/marketAssets.d.ts +4 -0
  18. package/cjs/markets/aave/marketAssets.js +5 -1
  19. package/cjs/markets/compound/index.js +11 -0
  20. package/cjs/markets/compound/marketsAssets.d.ts +7 -0
  21. package/cjs/markets/compound/marketsAssets.js +7 -0
  22. package/cjs/markets/fluid/index.d.ts +4 -0
  23. package/cjs/markets/fluid/index.js +4 -0
  24. package/cjs/markets/spark/marketAssets.d.ts +1 -0
  25. package/cjs/markets/spark/marketAssets.js +1 -0
  26. package/cjs/portfolio/index.js +1 -1
  27. package/cjs/services/utils.d.ts +8 -4
  28. package/cjs/services/utils.js +30 -10
  29. package/cjs/services/viem.d.ts +54 -15
  30. package/cjs/services/viem.js +2 -0
  31. package/cjs/spark/index.d.ts +3 -1
  32. package/cjs/spark/index.js +24 -14
  33. package/cjs/staking/eligibility.js +1 -6
  34. package/cjs/types/common.d.ts +4 -2
  35. package/cjs/types/common.js +2 -0
  36. package/cjs/types/fluid.d.ts +7 -3
  37. package/cjs/types/fluid.js +4 -0
  38. package/cjs/types/spark.d.ts +3 -1
  39. package/esm/aaveV3/index.js +4 -4
  40. package/esm/aaveV3/merit.js +3 -0
  41. package/esm/aaveV3/merkl.d.ts +1 -1
  42. package/esm/config/contracts.d.ts +20 -0
  43. package/esm/config/contracts.js +20 -0
  44. package/esm/fluid/index.js +40 -12
  45. package/esm/helpers/aaveHelpers/index.d.ts +1 -1
  46. package/esm/helpers/aaveHelpers/index.js +7 -5
  47. package/esm/helpers/morphoBlueHelpers/index.d.ts +1 -1
  48. package/esm/helpers/morphoBlueHelpers/index.js +66 -66
  49. package/esm/helpers/sparkHelpers/index.d.ts +4 -4
  50. package/esm/helpers/sparkHelpers/index.js +13 -13
  51. package/esm/markets/aave/index.js +1 -1
  52. package/esm/markets/aave/marketAssets.d.ts +4 -0
  53. package/esm/markets/aave/marketAssets.js +4 -0
  54. package/esm/markets/compound/index.js +11 -0
  55. package/esm/markets/compound/marketsAssets.d.ts +7 -0
  56. package/esm/markets/compound/marketsAssets.js +7 -0
  57. package/esm/markets/fluid/index.d.ts +4 -0
  58. package/esm/markets/fluid/index.js +4 -0
  59. package/esm/markets/spark/marketAssets.d.ts +1 -0
  60. package/esm/markets/spark/marketAssets.js +1 -0
  61. package/esm/portfolio/index.js +1 -1
  62. package/esm/services/utils.d.ts +8 -4
  63. package/esm/services/utils.js +21 -5
  64. package/esm/services/viem.d.ts +54 -15
  65. package/esm/services/viem.js +3 -1
  66. package/esm/spark/index.d.ts +3 -1
  67. package/esm/spark/index.js +25 -15
  68. package/esm/staking/eligibility.js +1 -6
  69. package/esm/types/common.d.ts +4 -2
  70. package/esm/types/common.js +2 -0
  71. package/esm/types/fluid.d.ts +7 -3
  72. package/esm/types/fluid.js +4 -0
  73. package/esm/types/spark.d.ts +3 -1
  74. package/package.json +47 -47
  75. package/src/aaveV2/index.ts +240 -240
  76. package/src/aaveV3/index.ts +614 -614
  77. package/src/aaveV3/merit.ts +97 -94
  78. package/src/aaveV3/merkl.ts +74 -74
  79. package/src/claiming/aaveV3.ts +154 -154
  80. package/src/claiming/compV3.ts +22 -22
  81. package/src/claiming/index.ts +12 -12
  82. package/src/claiming/king.ts +66 -66
  83. package/src/claiming/morphoBlue.ts +118 -118
  84. package/src/claiming/spark.ts +225 -225
  85. package/src/compoundV2/index.ts +244 -244
  86. package/src/compoundV3/index.ts +274 -274
  87. package/src/config/contracts.ts +1251 -1231
  88. package/src/constants/index.ts +10 -10
  89. package/src/contracts.ts +120 -120
  90. package/src/curveUsd/index.ts +254 -254
  91. package/src/eulerV2/index.ts +324 -324
  92. package/src/exchange/index.ts +25 -25
  93. package/src/fluid/index.ts +1668 -1638
  94. package/src/helpers/aaveHelpers/index.ts +187 -185
  95. package/src/helpers/compoundHelpers/index.ts +283 -283
  96. package/src/helpers/curveUsdHelpers/index.ts +40 -40
  97. package/src/helpers/eulerHelpers/index.ts +222 -222
  98. package/src/helpers/fluidHelpers/index.ts +326 -326
  99. package/src/helpers/index.ts +10 -10
  100. package/src/helpers/liquityV2Helpers/index.ts +82 -82
  101. package/src/helpers/llamaLendHelpers/index.ts +53 -53
  102. package/src/helpers/makerHelpers/index.ts +52 -52
  103. package/src/helpers/morphoBlueHelpers/index.ts +396 -396
  104. package/src/helpers/sparkHelpers/index.ts +158 -155
  105. package/src/index.ts +47 -47
  106. package/src/liquity/index.ts +159 -159
  107. package/src/liquityV2/index.ts +657 -657
  108. package/src/llamaLend/index.ts +305 -305
  109. package/src/maker/index.ts +223 -223
  110. package/src/markets/aave/index.ts +116 -116
  111. package/src/markets/aave/marketAssets.ts +54 -49
  112. package/src/markets/compound/index.ts +238 -227
  113. package/src/markets/compound/marketsAssets.ts +97 -90
  114. package/src/markets/curveUsd/index.ts +69 -69
  115. package/src/markets/euler/index.ts +26 -26
  116. package/src/markets/fluid/index.ts +2460 -2456
  117. package/src/markets/index.ts +25 -25
  118. package/src/markets/liquityV2/index.ts +102 -102
  119. package/src/markets/llamaLend/contractAddresses.ts +141 -141
  120. package/src/markets/llamaLend/index.ts +235 -235
  121. package/src/markets/morphoBlue/index.ts +895 -895
  122. package/src/markets/spark/index.ts +29 -29
  123. package/src/markets/spark/marketAssets.ts +12 -11
  124. package/src/moneymarket/moneymarketCommonService.ts +80 -80
  125. package/src/morphoBlue/index.ts +274 -274
  126. package/src/portfolio/index.ts +570 -570
  127. package/src/services/priceService.ts +159 -159
  128. package/src/services/utils.ts +115 -99
  129. package/src/services/viem.ts +34 -32
  130. package/src/setup.ts +8 -8
  131. package/src/spark/index.ts +465 -445
  132. package/src/staking/eligibility.ts +53 -59
  133. package/src/staking/index.ts +1 -1
  134. package/src/staking/staking.ts +170 -170
  135. package/src/types/aave.ts +189 -189
  136. package/src/types/claiming.ts +109 -109
  137. package/src/types/common.ts +107 -105
  138. package/src/types/compound.ts +136 -136
  139. package/src/types/curveUsd.ts +123 -123
  140. package/src/types/euler.ts +175 -175
  141. package/src/types/fluid.ts +452 -448
  142. package/src/types/index.ts +13 -13
  143. package/src/types/liquity.ts +30 -30
  144. package/src/types/liquityV2.ts +126 -126
  145. package/src/types/llamaLend.ts +159 -159
  146. package/src/types/maker.ts +63 -63
  147. package/src/types/merit.ts +1 -1
  148. package/src/types/merkl.ts +70 -70
  149. package/src/types/morphoBlue.ts +194 -194
  150. package/src/types/portfolio.ts +60 -60
  151. package/src/types/spark.ts +136 -135
  152. package/src/umbrella/index.ts +69 -69
  153. package/src/umbrella/umbrellaUtils.ts +29 -29
  154. package/CLAUDE.md +0 -32
@@ -1,160 +1,160 @@
1
- import Dec from 'decimal.js';
2
- import { assetAmountInEth, getAssetInfo } from '@defisaver/tokens';
3
- import { Client } from 'viem';
4
- import {
5
- Blockish, EthAddress, EthereumProvider, NetworkNumber, PositionBalances,
6
- } from '../types/common';
7
- import {
8
- LiquityActivePoolContractViem,
9
- LiquityCollSurplusPoolContractViem,
10
- LiquityLQTYStakingViem,
11
- LiquityPriceFeedContractViem,
12
- LiquityStabilityPoolViem,
13
- LiquityTroveManagerContractViem,
14
- LiquityViewContractViem,
15
- } from '../contracts';
16
- import { LIQUITY_TROVE_STATUS_ENUM, LiquityTroveInfo } from '../types';
17
- import { ZERO_ADDRESS } from '../constants';
18
- import { getViemProvider, setViemBlockNumber } from '../services/viem';
19
- import { getEthAmountForDecimals } from '../services/utils';
20
-
21
- export const LIQUITY_NORMAL_MODE_RATIO = 110; // MCR
22
- export const LIQUITY_RECOVERY_MODE_RATIO = 150; // CCR
23
-
24
- export const _getLiquityAccountBalances = async (provider: Client, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress): Promise<PositionBalances> => {
25
- let balances: PositionBalances = {
26
- collateral: {},
27
- debt: {},
28
- };
29
-
30
- if (!address) {
31
- return balances;
32
- }
33
-
34
- const viewContract = LiquityViewContractViem(provider, network, block);
35
- const troveInfo = await viewContract.read.getTroveInfo([address], setViemBlockNumber(block));
36
-
37
- balances = {
38
- collateral: {
39
- [addressMapping ? getAssetInfo('ETH', network).address.toLowerCase() : 'ETH']: troveInfo[1].toString(),
40
- },
41
- debt: {
42
- [addressMapping ? getAssetInfo('LUSD', network).address.toLowerCase() : 'LUSD']: troveInfo[2].toString(),
43
- },
44
- };
45
-
46
- return balances;
47
- };
48
-
49
- export const getLiquityAccountBalances = async (provider: EthereumProvider, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress): Promise<PositionBalances> => _getLiquityAccountBalances(getViemProvider(provider, network), network, block, addressMapping, address);
50
-
51
- const _getDebtInFront = async (viewContract: any, address: EthAddress, accumulatedSum = '0', iterations = 2000): Promise<string> => {
52
- const res = await viewContract.read.getDebtInFront([address, accumulatedSum, iterations]);
53
- const debt = res[1].toString();
54
- const next = res[0];
55
- if (next === ZERO_ADDRESS) return assetAmountInEth(debt, 'LUSD');
56
- return _getDebtInFront(viewContract, next, debt, iterations);
57
- };
58
-
59
- export const getDebtInFront = async (provider: EthereumProvider, address: EthAddress): Promise<string> => {
60
- const client = getViemProvider(provider, NetworkNumber.Eth);
61
- const viewContract = LiquityViewContractViem(client, NetworkNumber.Eth);
62
- return _getDebtInFront(viewContract, address);
63
- };
64
-
65
- export const _getLiquityTroveInfo = async (provider: Client, network: NetworkNumber, address: EthAddress): Promise<LiquityTroveInfo> => {
66
- const viewContract = LiquityViewContractViem(provider, network);
67
- const collSurplusPoolContract = LiquityCollSurplusPoolContractViem(provider, network);
68
- const troveManagerContract = LiquityTroveManagerContractViem(provider, network);
69
- const priceFeedContract = LiquityPriceFeedContractViem(provider, network);
70
- const activePoolContract = LiquityActivePoolContractViem(provider, network);
71
-
72
- const [
73
- troveInfo,
74
- collSurplusInfo,
75
- borrowingRateWithDecay,
76
- assetPrice,
77
- totalETH,
78
- totalLUSD,
79
- debtInFront,
80
- ] = await Promise.all([
81
- viewContract.read.getTroveInfo([address]),
82
- collSurplusPoolContract.read.getCollateral([address]),
83
- troveManagerContract.read.getBorrowingRateWithDecay(),
84
- priceFeedContract.read.fetchPrice(),
85
- activePoolContract.read.getETH(),
86
- activePoolContract.read.getLUSDDebt(),
87
- _getDebtInFront(viewContract, address),
88
- ]);
89
-
90
- const recoveryMode = troveInfo[6];
91
-
92
- const payload = {
93
- troveStatus: LIQUITY_TROVE_STATUS_ENUM[+(troveInfo[0].toString())],
94
- collateral: assetAmountInEth(troveInfo[1].toString()),
95
- debtInAsset: assetAmountInEth(troveInfo[2].toString()),
96
- TCRatio: assetAmountInEth(troveInfo[4].toString()),
97
- recoveryMode,
98
- claimableCollateral: assetAmountInEth(collSurplusInfo.toString()),
99
- borrowingRateWithDecay: assetAmountInEth(borrowingRateWithDecay.toString()),
100
- assetPrice: assetAmountInEth(assetPrice.toString()),
101
- totalETH: totalETH.toString(),
102
- totalLUSD: totalLUSD.toString(),
103
- debtInFront: debtInFront.toString(),
104
- minCollateralRatio: recoveryMode ? LIQUITY_RECOVERY_MODE_RATIO : LIQUITY_NORMAL_MODE_RATIO,
105
- priceForRecovery: new Dec(recoveryMode ? LIQUITY_RECOVERY_MODE_RATIO : LIQUITY_NORMAL_MODE_RATIO).mul(totalLUSD).div(totalETH).div(100)
106
- .toString(),
107
- };
108
-
109
- return payload;
110
- };
111
-
112
- export const getLiquityTroveInfo = async (provider: EthereumProvider, network: NetworkNumber, address: EthAddress): Promise<LiquityTroveInfo> => _getLiquityTroveInfo(getViemProvider(provider, network, { batch: { multicall: true } }), network, address);
113
-
114
- export const getLiquityStakingData = async (provider: Client, network: NetworkNumber, address: EthAddress) => {
115
- const lqtyStakingView = LiquityLQTYStakingViem(provider, network);
116
- const stabilityPoolView = LiquityStabilityPoolViem(provider, network);
117
- const [
118
- stakes,
119
- pendingETHGain,
120
- pendingLUSDGain,
121
- totalLQTYStakes,
122
- stabilityPoolETHGain,
123
- stabilityPoolLQTYGain,
124
- compoundedLUSDDeposit,
125
- totalLUSDDeposits,
126
- ] = await Promise.all([
127
- lqtyStakingView.read.stakes([address]),
128
- lqtyStakingView.read.getPendingETHGain([address]),
129
- lqtyStakingView.read.getPendingLUSDGain([address]),
130
- lqtyStakingView.read.totalLQTYStaked(),
131
- stabilityPoolView.read.getDepositorETHGain([address]),
132
- stabilityPoolView.read.getDepositorLQTYGain([address]),
133
- stabilityPoolView.read.getCompoundedLUSDDeposit([address]),
134
- stabilityPoolView.read.getTotalLUSDDeposits(),
135
- ]);
136
- const totalLUSDDeposited = getEthAmountForDecimals(totalLUSDDeposits as string, 18);
137
- const totalLQTYStaked = getEthAmountForDecimals(totalLQTYStakes as string, 18);
138
- const stakedLQTY = getEthAmountForDecimals(stakes as string, 18);
139
- const stakedLUSDBalance = getEthAmountForDecimals(compoundedLUSDDeposit as string, 18);
140
- const rewardETH = getEthAmountForDecimals(pendingETHGain as string, 18);
141
- const rewardLUSD = getEthAmountForDecimals(pendingLUSDGain as string, 18);
142
- const stabilityRewardETH = getEthAmountForDecimals(stabilityPoolETHGain as string, 18);
143
- const stabilityRewardLQTY = getEthAmountForDecimals(stabilityPoolLQTYGain as string, 18);
144
-
145
- const showStakingBalances = !!(+stakedLQTY || +stakedLUSDBalance
146
- || +rewardETH || +rewardLUSD
147
- || +stabilityRewardETH || +stabilityRewardLQTY);
148
-
149
- return {
150
- totalLUSDDeposited,
151
- totalLQTYStaked,
152
- stakedLQTY,
153
- stakedLUSDBalance,
154
- rewardETH,
155
- rewardLUSD,
156
- stabilityRewardETH,
157
- stabilityRewardLQTY,
158
- showStakingBalances,
159
- };
1
+ import Dec from 'decimal.js';
2
+ import { assetAmountInEth, getAssetInfo } from '@defisaver/tokens';
3
+ import { Client } from 'viem';
4
+ import {
5
+ Blockish, EthAddress, EthereumProvider, NetworkNumber, PositionBalances,
6
+ } from '../types/common';
7
+ import {
8
+ LiquityActivePoolContractViem,
9
+ LiquityCollSurplusPoolContractViem,
10
+ LiquityLQTYStakingViem,
11
+ LiquityPriceFeedContractViem,
12
+ LiquityStabilityPoolViem,
13
+ LiquityTroveManagerContractViem,
14
+ LiquityViewContractViem,
15
+ } from '../contracts';
16
+ import { LIQUITY_TROVE_STATUS_ENUM, LiquityTroveInfo } from '../types';
17
+ import { ZERO_ADDRESS } from '../constants';
18
+ import { getViemProvider, setViemBlockNumber } from '../services/viem';
19
+ import { getEthAmountForDecimals } from '../services/utils';
20
+
21
+ export const LIQUITY_NORMAL_MODE_RATIO = 110; // MCR
22
+ export const LIQUITY_RECOVERY_MODE_RATIO = 150; // CCR
23
+
24
+ export const _getLiquityAccountBalances = async (provider: Client, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress): Promise<PositionBalances> => {
25
+ let balances: PositionBalances = {
26
+ collateral: {},
27
+ debt: {},
28
+ };
29
+
30
+ if (!address) {
31
+ return balances;
32
+ }
33
+
34
+ const viewContract = LiquityViewContractViem(provider, network, block);
35
+ const troveInfo = await viewContract.read.getTroveInfo([address], setViemBlockNumber(block));
36
+
37
+ balances = {
38
+ collateral: {
39
+ [addressMapping ? getAssetInfo('ETH', network).address.toLowerCase() : 'ETH']: troveInfo[1].toString(),
40
+ },
41
+ debt: {
42
+ [addressMapping ? getAssetInfo('LUSD', network).address.toLowerCase() : 'LUSD']: troveInfo[2].toString(),
43
+ },
44
+ };
45
+
46
+ return balances;
47
+ };
48
+
49
+ export const getLiquityAccountBalances = async (provider: EthereumProvider, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress): Promise<PositionBalances> => _getLiquityAccountBalances(getViemProvider(provider, network), network, block, addressMapping, address);
50
+
51
+ const _getDebtInFront = async (viewContract: any, address: EthAddress, accumulatedSum = '0', iterations = 2000): Promise<string> => {
52
+ const res = await viewContract.read.getDebtInFront([address, accumulatedSum, iterations]);
53
+ const debt = res[1].toString();
54
+ const next = res[0];
55
+ if (next === ZERO_ADDRESS) return assetAmountInEth(debt, 'LUSD');
56
+ return _getDebtInFront(viewContract, next, debt, iterations);
57
+ };
58
+
59
+ export const getDebtInFront = async (provider: EthereumProvider, address: EthAddress): Promise<string> => {
60
+ const client = getViemProvider(provider, NetworkNumber.Eth);
61
+ const viewContract = LiquityViewContractViem(client, NetworkNumber.Eth);
62
+ return _getDebtInFront(viewContract, address);
63
+ };
64
+
65
+ export const _getLiquityTroveInfo = async (provider: Client, network: NetworkNumber, address: EthAddress): Promise<LiquityTroveInfo> => {
66
+ const viewContract = LiquityViewContractViem(provider, network);
67
+ const collSurplusPoolContract = LiquityCollSurplusPoolContractViem(provider, network);
68
+ const troveManagerContract = LiquityTroveManagerContractViem(provider, network);
69
+ const priceFeedContract = LiquityPriceFeedContractViem(provider, network);
70
+ const activePoolContract = LiquityActivePoolContractViem(provider, network);
71
+
72
+ const [
73
+ troveInfo,
74
+ collSurplusInfo,
75
+ borrowingRateWithDecay,
76
+ assetPrice,
77
+ totalETH,
78
+ totalLUSD,
79
+ debtInFront,
80
+ ] = await Promise.all([
81
+ viewContract.read.getTroveInfo([address]),
82
+ collSurplusPoolContract.read.getCollateral([address]),
83
+ troveManagerContract.read.getBorrowingRateWithDecay(),
84
+ priceFeedContract.read.fetchPrice(),
85
+ activePoolContract.read.getETH(),
86
+ activePoolContract.read.getLUSDDebt(),
87
+ _getDebtInFront(viewContract, address),
88
+ ]);
89
+
90
+ const recoveryMode = troveInfo[6];
91
+
92
+ const payload = {
93
+ troveStatus: LIQUITY_TROVE_STATUS_ENUM[+(troveInfo[0].toString())],
94
+ collateral: assetAmountInEth(troveInfo[1].toString()),
95
+ debtInAsset: assetAmountInEth(troveInfo[2].toString()),
96
+ TCRatio: assetAmountInEth(troveInfo[4].toString()),
97
+ recoveryMode,
98
+ claimableCollateral: assetAmountInEth(collSurplusInfo.toString()),
99
+ borrowingRateWithDecay: assetAmountInEth(borrowingRateWithDecay.toString()),
100
+ assetPrice: assetAmountInEth(assetPrice.toString()),
101
+ totalETH: totalETH.toString(),
102
+ totalLUSD: totalLUSD.toString(),
103
+ debtInFront: debtInFront.toString(),
104
+ minCollateralRatio: recoveryMode ? LIQUITY_RECOVERY_MODE_RATIO : LIQUITY_NORMAL_MODE_RATIO,
105
+ priceForRecovery: new Dec(recoveryMode ? LIQUITY_RECOVERY_MODE_RATIO : LIQUITY_NORMAL_MODE_RATIO).mul(totalLUSD).div(totalETH).div(100)
106
+ .toString(),
107
+ };
108
+
109
+ return payload;
110
+ };
111
+
112
+ export const getLiquityTroveInfo = async (provider: EthereumProvider, network: NetworkNumber, address: EthAddress): Promise<LiquityTroveInfo> => _getLiquityTroveInfo(getViemProvider(provider, network, { batch: { multicall: true } }), network, address);
113
+
114
+ export const getLiquityStakingData = async (provider: Client, network: NetworkNumber, address: EthAddress) => {
115
+ const lqtyStakingView = LiquityLQTYStakingViem(provider, network);
116
+ const stabilityPoolView = LiquityStabilityPoolViem(provider, network);
117
+ const [
118
+ stakes,
119
+ pendingETHGain,
120
+ pendingLUSDGain,
121
+ totalLQTYStakes,
122
+ stabilityPoolETHGain,
123
+ stabilityPoolLQTYGain,
124
+ compoundedLUSDDeposit,
125
+ totalLUSDDeposits,
126
+ ] = await Promise.all([
127
+ lqtyStakingView.read.stakes([address]),
128
+ lqtyStakingView.read.getPendingETHGain([address]),
129
+ lqtyStakingView.read.getPendingLUSDGain([address]),
130
+ lqtyStakingView.read.totalLQTYStaked(),
131
+ stabilityPoolView.read.getDepositorETHGain([address]),
132
+ stabilityPoolView.read.getDepositorLQTYGain([address]),
133
+ stabilityPoolView.read.getCompoundedLUSDDeposit([address]),
134
+ stabilityPoolView.read.getTotalLUSDDeposits(),
135
+ ]);
136
+ const totalLUSDDeposited = getEthAmountForDecimals(totalLUSDDeposits as string, 18);
137
+ const totalLQTYStaked = getEthAmountForDecimals(totalLQTYStakes as string, 18);
138
+ const stakedLQTY = getEthAmountForDecimals(stakes as string, 18);
139
+ const stakedLUSDBalance = getEthAmountForDecimals(compoundedLUSDDeposit as string, 18);
140
+ const rewardETH = getEthAmountForDecimals(pendingETHGain as string, 18);
141
+ const rewardLUSD = getEthAmountForDecimals(pendingLUSDGain as string, 18);
142
+ const stabilityRewardETH = getEthAmountForDecimals(stabilityPoolETHGain as string, 18);
143
+ const stabilityRewardLQTY = getEthAmountForDecimals(stabilityPoolLQTYGain as string, 18);
144
+
145
+ const showStakingBalances = !!(+stakedLQTY || +stakedLUSDBalance
146
+ || +rewardETH || +rewardLUSD
147
+ || +stabilityRewardETH || +stabilityRewardLQTY);
148
+
149
+ return {
150
+ totalLUSDDeposited,
151
+ totalLQTYStaked,
152
+ stakedLQTY,
153
+ stakedLUSDBalance,
154
+ rewardETH,
155
+ rewardLUSD,
156
+ stabilityRewardETH,
157
+ stabilityRewardLQTY,
158
+ showStakingBalances,
159
+ };
160
160
  };