Skip to content

go-ethereum v1.13.0 changed "eth_call" to take data in the "input" field rather than the "data" field #28608

@zomglings

Description

@zomglings

Expected behaviour

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.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions