1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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 mineBlock(provider)
}
export const mineBlock = async (
provider: any,
timestamp?: number
): Promise<void> => {
await provider.send('evm_mine', timestamp ? [timestamp] : [])
}
export const getBlockTime = async (
provider: any,
block?: number
): Promise<number> => {
await mineBlock(provider)
if (!!block) {
block = await getNextBlockNumber(provider)
}
return (await provider.getBlock(block)).timestamp
}
export const getNextBlockNumber = async (provider: any): Promise<number> => {
return (await provider.getBlock('latest')).number + 1
}