Skip to content

Align JSON-RPC API responses/arguments with Geth #446

@zsystm

Description

@zsystm

Several supported JSON-RPC APIs differ from Geth in their returned fields or supported features.
This issue tracks the adjustments needed to achieve full compatibility.


eth_getBlockByHash

Type Field(s)
Missing field withdrawals ([]*Withdrawal), header.excessBlobGas (*uint64), header.blobGasUsed (*common.Hash), header.parentBeaconBlockRoot (*common.Hash), requestsHash (*common.Hash), header.withdrawalsRoot (*common.Hash)
Always empty value receiptsRoot (*common.Hash)
Extra (not in Geth) totalDifficulty (*hexutil.Big)

eth_getBlockByNumber

Type Field(s)
Missing field withdrawals ([]*Withdrawal), header.excessBlobGas (*uint64), header.blobGasUsed (*common.Hash), header.parentBeaconBlockRoot (*common.Hash), requestsHash (*common.Hash), header.withdrawalsRoot (*common.Hash)
Always empty value receiptsRoot (*common.Hash)
Extra (not in Geth) totalDifficulty (*hexutil.Big)

eth_getTransactionByHash

eth_getTransactionByBlockHashAndIndex

eth_getTransactionByBlockNumberAndIndex

Type Field(s)
Missing field yParity (*hexutil.Uint64)

debug_traceBlock, debug_traceBlockByNumber, debug_traceBlockByHash

Type Note
Missing feature StateOverrides not supported (unlike Geth)

Recommendation:

  • Add missing fields to match Geth’s return structure.
  • Remove extra fields not present in Geth, unless intentionally diverging (document if so).
  • Implement missing features where applicable (e.g., StateOverrides).

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions