You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Programs which make JSONRPC eth_call requests should not have to worry about the version of the client they are connecting to as long as it accepts "jsonrpc": "2.0" requests.
Actual behaviour
If the client is on tag v1.12.2, then the eth_call parameters must specify the view call using the "data" field. If the client is on tag v1.13.0 or higher, then they must instead use the "input" field.
This is not backwards compatible in any way shape or form, and the only way to understand what request schema to use is to inspect web3_clientVersion.
Steps to reproduce the behaviour
Run two go-ethereum nodes, one at v1.12.2 and the other at v1.13.0. Deploy a contract with a view method. Construct a JSONRPC API eth_call request for that method. The request that works for v1.12.2 clients will not work for v1.13.0 clients.
Note
Incidentally, I suspect most clients would be ok with both fields being passed.