UNPKG

@exromany/lido-csm-sdk

Version:

[![GitHub license](https://img.shields.io/github/license/lidofinance/lido-csm-sdk?color=limegreen)](https://github.com/lidofinance/lido-csm-sdk/blob/main/LICENSE.txt) [![Version npm](https://img.shields.io/npm/v/@lidofinance/lido-csm-sdk?label=version)](h

34 lines 1.5 kB
/** * Safety buffer in blocks for slot-to-block estimation (~33 hours at 12s/block). * Accounts for missed slots and clock drift when querying events by estimated block range. */ export const ESTIMATED_BLOCK_GAP = 10000n; export const slotToTimestamp = (slot, { secondsPerSlot, genesisTime, }) => { return Number(BigInt(slot) * secondsPerSlot + genesisTime); }; export const timestampToSlot = (timestamp, { genesisTime, secondsPerSlot, }) => { return (BigInt(timestamp) - genesisTime) / secondsPerSlot; }; export const slotToEpoch = (slot, { slotsPerEpoch }) => { return BigInt(slot) / slotsPerEpoch; }; export const epochToSlot = (epoch, { slotsPerEpoch }) => { return BigInt(epoch) * slotsPerEpoch; }; export const epochToTimestamp = (epoch, config) => { const slot = epochToSlot(epoch, config); return slotToTimestamp(slot, config); }; export const getSlotsPerFrame = ({ epochsPerFrame, slotsPerEpoch, }) => { return epochsPerFrame * slotsPerEpoch; }; export const getFrameDuration = ({ epochsPerFrame, slotsPerEpoch, secondsPerSlot, }) => { return Number(epochsPerFrame * slotsPerEpoch * secondsPerSlot); }; export const slotToApproximateBlockNumber = (slot, config, currentBlock) => { const targetTimestamp = slotToTimestamp(slot, config); const timeDiff = currentBlock.timestamp - BigInt(targetTimestamp); const blockOffset = timeDiff / config.secondsPerSlot; return currentBlock.number - blockOffset; }; //# sourceMappingURL=utils.js.map