diff --git a/src/StdCheats.sol b/src/StdCheats.sol index 915e5bc9..e6d48804 100644 --- a/src/StdCheats.sol +++ b/src/StdCheats.sol @@ -279,8 +279,14 @@ abstract contract StdCheatsSafe { assumeAddressIsNot(addressType4, addr); } - function _isPayable(address addr) private returns (bool) { - if (addr.code.length == 0) { + function _isPayable(address addr) private returns (bool) { + uint256 size; + assembly { + size := extcodesize(addr) + } + + if (size == 0) { + // return false if no code return false; } else { require(addr.balance < type(uint256).max, "balance exceeds max uint256");