3分钟Solidity: 14.6 Foundry时间测试

13 阅读1分钟

欢迎订阅专栏3分钟Solidity--智能合约--Web3区块链技术必学

Foundry时间

有关此内容的最新版本,请参阅 Cyfrin.io 上的Foundry时间(代码示例)

// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;

import "forge-std/Test.sol";

contract TimeTest is Test {
    // vm.warp - 将区块时间戳设置为未来时间戳
    // vm.roll - 设置区块号
    // skip - 增加当前时间戳
    // rewind - 减少当前时间戳

    function test() public {
        console.log("timestamp", block.timestamp);
        console.log("block number", block.number);

        console.log("warp");
        vm.warp(block.timestamp + 10);
        console.log("timestamp", block.timestamp);

        console.log("skip");
        skip(10);
        console.log("timestamp", block.timestamp);

        console.log("roll");
        vm.roll(10);
        console.log("block number", block.number);

        console.log("rewind");
        rewind(10);
        console.log("timestamp", block.timestamp);
    }
}

Try on Remix