diff --git a/src/components/tst-staking/StakingRewardsList.jsx b/src/components/tst-staking/StakingRewardsList.jsx
index a58cc33..b012b1f 100644
--- a/src/components/tst-staking/StakingRewardsList.jsx
+++ b/src/components/tst-staking/StakingRewardsList.jsx
@@ -8,17 +8,6 @@ import CenterLoader from "../ui/CenterLoader";
import ClaimingRewardsModal from "./ClaimingRewardsModal";
-const formatUSD = (value) => {
- if (value >= 0) {
- return new Intl.NumberFormat('en-US', {
- style: 'currency',
- currency: 'USD',
- minimumFractionDigits: 2,
- maximumFractionDigits: 2
- }).format(Math.abs(value));
- }
-};
-
const StakingRewardsList = ({
stakedSince,
poolRewardsLoading,
@@ -43,15 +32,17 @@ const StakingRewardsList = ({
const rewardsWithPrices = rewardData.map(reward => {
const useAmount = ethers.formatUnits(reward.amount, reward.decimals);
+ const useRate = ethers.formatUnits(reward.dailyReward, reward.decimals);
const price = latestPrices[reward.asset] || 1; // Default to 1 for stablecoins
const usdValue = parseFloat(useAmount) * price;
+ const usdRate = parseFloat(useRate) * price;
return {
...reward,
usdValue: usdValue,
+ usdRate: usdRate,
price: price
};
})
-
const rows = rewardsWithPrices || [];
let noRewards = true;
@@ -87,7 +78,6 @@ const StakingRewardsList = ({
Asset |
Amount |
- Value (USD) |
Daily Rate Per TST |
@@ -99,6 +89,7 @@ const StakingRewardsList = ({
const symbol = asset?.asset;
const dailyReward = asset?.dailyReward || 0n;
const value = asset?.usdValue || 0;
+ const rate = asset?.usdRate || 0;
return(
@@ -106,13 +97,16 @@ const StakingRewardsList = ({
{symbol}
- {ethers.formatUnits(amount, decimals)}
+ {ethers.formatUnits(amount, decimals)}
+
+ ~${value.toFixed(8)}
+
|
- {formatUSD(value)}
- |
-
- {ethers.formatUnits(dailyReward, decimals)}
+ {ethers.formatUnits(dailyReward, decimals)}
+
+ ~${rate.toFixed(8)}
+
|
)}
diff --git a/src/components/tst-staking/StakingSummary.jsx b/src/components/tst-staking/StakingSummary.jsx
index 4dda213..3b9e2d0 100644
--- a/src/components/tst-staking/StakingSummary.jsx
+++ b/src/components/tst-staking/StakingSummary.jsx
@@ -211,34 +211,47 @@ const StakingSummary = ({
}
function getDaysStaked() {
- const start = moment.unix((Number(rawStakedSince)));
+ let start = moment.unix((Number(rawStakedSince)));
const today = moment();
+ if (!rawStakedSince) {
+ start = today;
+ }
const since = today.diff(start, 'days');
return since;
}
+ // const calculateSimpleAPY = (stakedAmount, totalRewardsValue, daysStaked) => {
+ // const dailyEarnings = Number(totalRewardsValue / daysStaked) || 0;
+ // const annualEarningsPerTST = (dailyEarnings * 365) / Number(stakedAmount) || 0;
+ // return annualEarningsPerTST * 100;
+ // }
const calculateSimpleAPY = (stakedAmount, totalRewardsValue, daysStaked) => {
- const dailyEarnings = totalRewardsValue / daysStaked;
- const annualEarningsPerTST = (dailyEarnings * 365) / stakedAmount;
- // console.log(123123, stakedAmount, totalRewardsValue, daysStaked)
- return annualEarningsPerTST * 100;
+ const dailyEarnings = totalRewardsValue || 0;
+ const annualEarningsPerTST = (dailyEarnings * 365) / Number(stakedAmount) || 0;
+
+ return annualEarningsPerTST;
}
const rewardsWithPrices = rewardsData.map(reward => {
const useAmount = ethers.formatUnits(reward.amount, reward.decimals);
+ const useRate = ethers.formatUnits(reward.dailyReward, reward.decimals);
const price = latestPrices[reward.asset] || 1; // Default to 1 for stablecoins
const usdValue = parseFloat(useAmount) * price;
+ const usdRate = parseFloat(useRate) * price;
return {
...reward,
usdValue: usdValue,
+ usdRate: usdRate,
price: price
};
})
- const totalValue = rewardsWithPrices.reduce((sum, reward) => sum + reward.usdValue, 0) || 0;
+
+ const totalValueUSD = rewardsWithPrices.reduce((sum, reward) => sum + reward.usdValue, 0) || 0;
+ const totalRateUSD = rewardsWithPrices.reduce((sum, reward) => sum + reward.usdRate, 0) || 0;
const daysStaked = getDaysStaked() || 0;
- const dailyEarnings = (totalValue / daysStaked) || 0;
+ const dailyEarnings = (totalRateUSD / daysStaked) || 0;
const monthlyProjection = (dailyEarnings * 30) || 0;
const currentTier = getCurrentTier(stakedAmount);
@@ -248,7 +261,7 @@ const StakingSummary = ({
if (nextTier?.minAmount) {
progress = (stakedAmount / nextTier.minAmount) * 100;
}
- const apyDisplay = calculateSimpleAPY(stakedAmount, totalValue, daysStaked) + '%' || '0%';
+ const apyDisplay = calculateSimpleAPY(stakedAmount, totalRateUSD, daysStaked) + '%' || '0%';
let stakeRatio = 'TODO.DOTO';
@@ -275,7 +288,7 @@ const StakingSummary = ({
Participate in protocol governance
-
+
@@ -286,7 +299,7 @@ const StakingSummary = ({
-
+ {/*
Historical APY
@@ -304,7 +317,7 @@ const StakingSummary = ({
0%
-
+
*/}
@@ -343,7 +356,7 @@ const StakingSummary = ({
Total Value Accrued
- {formatUSD(totalValue)}
+ {formatUSD(totalValueUSD)}
@@ -381,7 +394,7 @@ const StakingSummary = ({
{/* */}
-
+
@@ -392,7 +405,7 @@ const StakingSummary = ({
-
+ {/*
Historical APY
@@ -410,7 +423,7 @@ const StakingSummary = ({
{apyDisplay}
-
+
*/}
{/*
@@ -474,7 +487,7 @@ const StakingSummary = ({
Total Value Accrued
- {formatUSD(totalValue)}
+ {formatUSD(totalValueUSD)}
Current market prices