Ganache

使用 Hardhat 進行時間相關測試?

  • January 3, 2022

對於 Ganache,有幾種解決方案

安全帽呢?他們實施了自己的本地區塊鏈 Hardhat Network,這與 Ganache 不同。

這裡有兩種相關的 RPC 方法:evm_increaseTimeevm_setNextBlockTimestamp. 在這兩種情況下,它們都會影響下一個區塊,但不會開採一個。

evm_increaseTime接收將添加到最新塊的時間戳的秒數。evm_setNextBlockTimestamp接收一個絕對的 UNIX 時間戳(同樣,以秒為單位),因此它不受目前塊的影響。

例子

evm_increaseTime

// suppose the current block has a timestamp of 01:00 PM
await network.provider.send("evm_increaseTime", [3600])
await network.provider.send("evm_mine") // this one will have 02:00 PM as its timestamp

evm_setNextBlockTimestamp

await network.provider.send("evm_setNextBlockTimestamp", [1625097600])
await network.provider.send("evm_mine") // this one will have 2021-07-01 12:00 AM as its timestamp, no matter what the previous block has

請記住,Hardhat Network 會驗證新時間戳是否大於前一個時間戳,因此您無法發送任何值。

引用自:https://ethereum.stackexchange.com/questions/86633