evm_setNextBlockTimestamp 和 evm_setNextBlockTimestamp。
获取正确的时间
在交易或eth_call 执行期间,当合约内访问 block.timestamp 时,其值取决于目标区块(latest 或 pending 区块):
- 对于
pending区块:block.timestamp == time.now() + adjustment_offset。这表示由时间调整方法调整后的当前时间。 - 对于
latest区块:block.timestamp == latest_block.timestamp。这是最近挖掘区块的时间戳。
adjustment_offset 来自时间调整方法:
-
evm_setNextBlockTimestamp: 将时间跳到下一个区块的时间戳:adjustment_offset = timestamp - time.now()。 -
evm_increaseTime: 按相对量向前推进时间。adjustment_offset += increase_value
示例
按偏移量增加时间
showLineNumbers
设置 pending 区块的时间戳
showLineNumbers