From 8498cf2732ba51ca3444fd4ad07fabbcec79d78d Mon Sep 17 00:00:00 2001 From: "xrypto.c" Date: Fri, 11 Oct 2024 22:32:03 +0800 Subject: [PATCH] feat: add total rewards --- .../src/Overview/MainnetRewards.tsx | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/packages/page-staking/src/Overview/MainnetRewards.tsx b/packages/page-staking/src/Overview/MainnetRewards.tsx index 51bb0f0ec..9c692a926 100644 --- a/packages/page-staking/src/Overview/MainnetRewards.tsx +++ b/packages/page-staking/src/Overview/MainnetRewards.tsx @@ -21,6 +21,31 @@ interface Props { const UNIT = new BN(1_000_000_000_000) +async function getAllRewards(idx: number): Promise { + const { api } = useApi(); + + // erasStakingPayout + const erasp = await api.query.staking.erasStakingPayout(idx); + + const erasStakingPayout = JSON.parse(JSON.stringify(erasp)); + // console.log(`erasStakingPayout: ${idx}: ${erasStakingPayout}`); + + // erasAuthoringPayout + const keys = await api.query.staking.erasAuthoringPayout.keys(idx); + + let totalValue = new BN(0); + + for (const key of keys) { + const [_, accountId] = key.args; + const value = await api.query.staking.erasAuthoringPayout(idx, accountId); + totalValue = totalValue.add(new BN(value.toString())); + } + + // console.log(`erasAuthoringPayout ${idx}: ${totalValue.toString()}`); + + return totalValue.add(new BN(erasStakingPayout as string)).div(UNIT).toNumber(); +} + function MainnetReward ({ children, className = '', label }: Props): React.ReactElement { const { api } = useApi(); const { t } = useTranslation(); @@ -31,6 +56,10 @@ function MainnetReward ({ children, className = '', label }: Props): React.React const stakingRewards = new BN(3011.635871031734).mul(UNIT) const total = marketPayout && stakingRewards.add(new BN(Number(marketPayout).toString())) + getAllRewards(activeEra as number - 1).then((res) => { + console.log("================> getAllRewards: ", res); + }) + return (
{label || ''}