import BigNumber from 'bignumber.js'; import dayjs from 'dayjs'; export const getBlockTime = ( startBlockNumber: BigNumber, startTime: number | Date, endBlockNumber: BigNumber, endTime: number | Date, ) => { const intervalBlock = endBlockNumber.minus(startBlockNumber); const intervalSecond = new BigNumber( dayjs(endTime).diff(startTime, 'seconds'), ); const blcokTimeSecond = intervalSecond.div(intervalBlock); return blcokTimeSecond.times(1000); }; // console.log(getBlockTime(new BigNumber(553963), new Date('2023-08-03 14:46:39'), new BigNumber(22678498), new Date('2023-11-23 15:15:01')).toNumber()) export const getPreBlock = ( blockTime: number, blockNumber: BigNumber, time: number | Date, ) => { const blockTimeSecond = new BigNumber(blockTime).div(1000); const diffSecond = dayjs(time).diff(dayjs(), 'seconds'); const diffBlock = new BigNumber(diffSecond).div(blockTimeSecond); return diffBlock.plus(blockNumber).decimalPlaces(0, 1); }; export const getTimeByPreBlock = ( blockTime: number, blockNumber: BigNumber, preBlockNumber: string | number | BigNumber, ) => { const blockTimeSecond = new BigNumber(blockTime).div(1000); const now = dayjs(); const diffBlock = new BigNumber(preBlockNumber).minus(blockNumber); const diffSecond = diffBlock.times(blockTimeSecond); return now.add(diffSecond.toNumber(), 's'); };