eth-time.ts 873 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
export const getEthTime = async (provider: any): Promise<number> => {
  return (await provider.getBlock('latest')).timestamp
}

export const setEthTime = async (
  provider: any,
  time: number
): Promise<void> => {
  await provider.send('evm_setNextBlockTimestamp', [time])
}

export const increaseEthTime = async (
  provider: any,
  amount: number
): Promise<void> => {
  await setEthTime(provider, (await getEthTime(provider)) + amount)
  await provider.send('evm_mine', [])
}

export const getBlockTime = async (
  provider: any,
22
  block?: number
23 24
): Promise<number> => {
  await provider.send('evm_mine', [])
25 26 27
  if (!!block) {
    block = await getNextBlockNumber(provider)
  }
28 29
  return (await provider.getBlock(block)).timestamp
}
30 31 32 33

export const getNextBlockNumber = async (provider: any): Promise<number> => {
  return (await provider.getBlock('latest')).number + 1
}