tl;dr - If a symbolic execution "prove" test is set up with a int128 parameter, int256 numbers are being passed in causing it to revert
For my example, I cloned the gakonst dapp-tools template and added one simple test to the Greeter.t.sol file:
function provePleaseDontFail(int128 x) public {
// hello (note: I've also tried other stuff in here like `assertTrue(true);` but it never reaches this code)
}
Heres the result of running that test -- note at end we see that the reverting case was 170141183460469231731687303715884105728 (hex 0x80000000000000000000000000000000) which is 1 greater than type(int128).max)
fwiw - I've tried this with UINTs as well and had the same problem. However I did not see a problem with negative numbers being passed in to a UINT param
tl;dr - If a symbolic execution "prove" test is set up with a
int128
parameter,int256
numbers are being passed in causing it to revertFor my example, I cloned the gakonst dapp-tools template and added one simple test to the
Greeter.t.sol
file:Heres the result of running that test -- note at end we see that the reverting case was
170141183460469231731687303715884105728
(hex0x80000000000000000000000000000000
) which is 1 greater thantype(int128).max
)fwiw - I've tried this with UINTs as well and had the same problem. However I did not see a problem with negative numbers being passed in to a UINT param