[X] This is not a security-related bug/issue. If it is, please follow please follow the security policy.
[X] This is not a question or a support request. If you have any lotus related questions, please ask in the lotus forum.
[X] This is not a new feature request. If it is, please file a feature request instead.
[X] This is not an enhancement request. If it is, please file a improvement suggestion instead.
[X] I have searched on the issue tracker and the lotus forum, and there is no existing related issue or discussion.
[X] I am running the Latest release, or the most recent RC(release canadiate) for the upcoming release or the dev branch(master), or have an issue updating to any of these.
[X] I did not make any code changes to lotus.
Lotus component
[ ] lotus daemon - chain sync
[ ] lotus miner - mining and block production
[ ] lotus miner/worker - sealing
[ ] lotus miner - proving(WindowPoSt)
[ ] lotus miner/market - storage deal
[ ] lotus miner/market - retrieval deal
[ ] lotus miner/market - data transfer
[ ] lotus client
[x] lotus JSON-RPC API
[ ] lotus message management (mpool)
[ ] Other
Lotus Version
releases/v1.20.0
Describe the Bug
The openrpc conformance tests fail when checking the schema of Ethereum transactions returned from the eth json-rpc api.
eth_conformance_test.go:306: - transactions: Must validate at least one schema (anyOf)
eth_conformance_test.go:306: - transactions.0: Must validate one and only one schema (oneOf)
eth_conformance_test.go:306: - transactions.0: accessList is required
eth_conformance_test.go:306: - transactions.0: yParity is required
Affected methods:
eth_getBlockByNumber (with full tx info)
eth_getBlockByHash (with full tx info)
eth_getTransactionByHash
eth_getTransactionByBlockHashAndIndex and eth_getTransactionByBlockNumberAndIndex but these are curently unimplemented and are returning an empty EthTx struct
With regards to the missing fields on Transactions the openrpc spec gives 3 possible response types:
Signed 1559 Transaction: Lotus is missing accessList, yParity
Signed 2930 Transaction: Lotus is missing accessList, gasPrice, yParity
Signed Legacy Transaction: Lotus is missing gasPrice
Checklist
Latest release
, or the most recent RC(release canadiate) for the upcoming release or the dev branch(master), or have an issue updating to any of these.Lotus component
Lotus Version
Describe the Bug
The openrpc conformance tests fail when checking the schema of Ethereum transactions returned from the eth json-rpc api.
Affected methods:
eth_getBlockByNumber
(with full tx info)eth_getBlockByHash
(with full tx info)eth_getTransactionByHash
eth_getTransactionByBlockHashAndIndex
andeth_getTransactionByBlockNumberAndIndex
but these are curently unimplemented and are returning an emptyEthTx
structThe openrpc specification used was obtained by building https://github.com/ethereum/execution-apis/tree/b7c5d3420e00648f456744d121ffbd929862924d
With regards to the missing fields on Transactions the openrpc spec gives 3 possible response types:
Signed 1559 Transaction: Lotus is missing accessList, yParity Signed 2930 Transaction: Lotus is missing accessList, gasPrice, yParity Signed Legacy Transaction: Lotus is missing gasPrice
See https://www.jsonschemavalidator.net/s/euWIlkpO
Lotus should either add the missing fields (and populate or leave as default) or document the differences
Logging Information
Repo Steps
Check out https://github.com/filecoin-project/lotus/pull/10102 and run following in itests folder: