packages feed

hevm-0.51.0: test/contracts/fail/cheatCodes.sol

import "ds-test/test.sol";

interface Hevm {
    function warp(uint256) external;
    function roll(uint256) external;
    function load(address,bytes32) external returns (bytes32);
    function store(address,bytes32,bytes32) external;
    function sign(uint256,bytes32) external returns (uint8,bytes32,bytes32);
    function addr(uint256) external returns (address);
    function ffi(string[] calldata) external returns (bytes memory);
    function prank(address) external;
}

contract Payable {
    function hi() public payable {}
}

contract TestFailCheatCodes is DSTest {
    Hevm hevm = Hevm(HEVM_ADDRESS);

    function testBadFFI() public {
        string[] memory inputs = new string[](2);
        inputs[0] = "echo";
        inputs[1] = "acab";

        // should revert if --ffi hasn't been passed to hevm...
        hevm.ffi(inputs);
    }

    function test_prank_underflow() public {
        address from = address(0x1312);
        uint amt = 10;

        Payable target = new Payable();

        hevm.prank(from);
        target.hi{value : amt}();
    }
}