diff --git a/src/components/Minting/Minting.tsx b/src/components/Minting/Minting.tsx index 73d1aa7..d4142ca 100644 --- a/src/components/Minting/Minting.tsx +++ b/src/components/Minting/Minting.tsx @@ -42,8 +42,12 @@ import { useAtom, useSetAtom } from 'jotai'; import { memberGroupsAtom, txListAtom } from '../../atoms/global'; import { useTranslation } from 'react-i18next'; import { TransitionUp } from '../../common/Transitions.tsx'; -import { averageBlockDay, averageBlockTime, levelUpBlocks } from './Stats.tsx'; -import { node } from 'slate'; +import { + averageBlockDay, + averageBlockTime, + dayReward, + levelUpBlocks, +} from './MintingStats.tsx'; export const Minting = ({ setIsOpenMinting, myAddress, show }) => { const setTxList = useSetAtom(txListAtom); @@ -187,6 +191,7 @@ export const Minting = ({ setIsOpenMinting, myAddress, show }) => { const response = await fetch(url); const data = await response.json(); setAdminInfo(data); + setTimeout(getAdminInfo, 30000); } catch (error) { console.log(error); } @@ -198,6 +203,7 @@ export const Minting = ({ setIsOpenMinting, myAddress, show }) => { const response = await fetch(url); const data = await response.json(); setNodeStatus(data); + setTimeout(getNodeStatus, 30000); } catch (error) { console.error('Request failed', error); } @@ -703,7 +709,11 @@ export const Minting = ({ setIsOpenMinting, myAddress, show }) => { /> {/* */} diff --git a/src/components/Minting/Stats.tsx b/src/components/Minting/MintingStats.tsx similarity index 63% rename from src/components/Minting/Stats.tsx rename to src/components/Minting/MintingStats.tsx index a05d072..9aab805 100644 --- a/src/components/Minting/Stats.tsx +++ b/src/components/Minting/MintingStats.tsx @@ -1,10 +1,3 @@ -export const averageBlockDay = (adminInfo, nodeHeightBlock) => { - const time = adminInfo.currentTimestamp - nodeHeightBlock.timestamp; - const average: number = time / 1000 / 1440; - const averageBlockDay = 86400 / average; - return averageBlockDay; -}; - const accountTargetBlocks = (level: number) => { if (level === 0) { return 7200; @@ -31,30 +24,75 @@ const accountTargetBlocks = (level: number) => { } }; -export const accountLevel = (level: number) => { +export const accountLevel = (level: number): number => { if (level === 0) { - return '1'; + return 1; } else if (level === 1) { - return '2'; + return 2; } else if (level === 2) { - return '3'; + return 3; } else if (level === 3) { - return '4'; + return 4; } else if (level === 4) { - return '5'; + return 5; } else if (level === 5) { - return '6'; + return 6; } else if (level === 6) { - return '7'; + return 7; } else if (level === 7) { - return '8'; + return 8; } else if (level === 8) { - return '9'; + return 9; } else if (level === 9) { - return '10'; + return 10; + } else { + return 0; // fallback: should never reach this point } }; +export const blockReward = (nodeStatus): number => { + if (nodeStatus.height < 259201) { + return 5.0; + } else if (nodeStatus.height < 518401) { + return 4.75; + } else if (nodeStatus.height < 777601) { + return 4.5; + } else if (nodeStatus.height < 1036801) { + return 4.25; + } else if (nodeStatus.height < 1296001) { + return 4.0; + } else if (nodeStatus.height < 1555201) { + return 3.75; + } else if (nodeStatus.height < 1814401) { + return 3.5; + } else if (nodeStatus.height < 2073601) { + return 3.25; + } else if (nodeStatus.height < 2332801) { + return 3.0; + } else if (nodeStatus.height < 2592001) { + return 2.75; + } else if (nodeStatus.height < 2851201) { + return 2.5; + } else if (nodeStatus.height < 3110401) { + return 2.25; + } else { + return 2.0; + } +}; + +export const averageBlockDay = (adminInfo, nodeHeightBlock) => { + const time = adminInfo.currentTimestamp - nodeHeightBlock.timestamp; + const average: number = time / 1000 / 1440; + const averageBlockDay = 86400 / average; + return averageBlockDay; +}; + +export const averageBlockTime = (adminInfo, nodeHeightBlock) => { + const avgBlockString = adminInfo.currentTimestamp - nodeHeightBlock.timestamp; + const averageTimeString = avgBlockString / 1000 / 1440; + return averageTimeString; +}; + export const levelUpBlocks = (accountInfo, nodeStatus) => { if ( accountInfo?.blocksMinted === undefined || @@ -90,8 +128,8 @@ export const levelUpDays = ( return countDays.toFixed(2); }; -export const averageBlockTime = (adminInfo, nodeHeightBlock) => { - const avgBlockString = adminInfo.currentTimestamp - nodeHeightBlock.timestamp; - const averageTimeString = avgBlockString / 1000 / 1440; - return averageTimeString; +export const dayReward = (adminInfo, nodeHeightBlock, nodeStatus) => { + const reward = + averageBlockDay(adminInfo, nodeHeightBlock) * blockReward(nodeStatus); + return reward; };