See also summary on issue with calls here: https://forum.openzeppelin.com/t/require-in-view-pure-functions-dont-revert-on-public-networks/1211
There is a test contract 0x6491eb4fb1269c7587451cf0102437a685897b78 you can interact with on etherscan Rinkeby. It has functions getWithCheck
and setWithCheck
to get and set a value. If you pass a parameter >=0 the function will be ok, if you pass a parameter <0 the function fails at the require
statement.
For 'getWithCheck', the require statement triggers a Geth bug and you get back the mysterious value:
3963877391197344453575983046348115674221700746820753546331534351508065746944
. This value in hex becomes 0x08c379a0
which is the function selector for Error(string)
, as described [in the solidity docs](https://solidity.readthedocs.io/en/v0.5.11/control-