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}();
}
}