Skip to content

Conversation

@lupin012
Copy link
Contributor

@lupin012 lupin012 commented Oct 16, 2025

This PR fixes the following Hive RPC compatibility tests:

  • eth_getTransactionReceipt/get-legacy-contract (erigon_default)
  • eth_getTransactionReceipt/get-legacy-input (erigon_default)
  • eth_getTransactionReceipt/get-legacy-receipt (erigon_default)

For pre-Byzantium blocks, the Ethereum specification requires that transaction receipts contains:
the "postState" field and
"NOT" the status field.

To calculate "postState" it is necessary enable the commitment
The current database and snapshots for pre-Byzantium blocks do not contain valid postState data, therefore, we must explicitly re-calculate these receipts to be compliant to the specification (postState instead of status).

If "commitment is not enabled", we always provide the "status" field, regardless of the block number.

Some tests has been implemented to see the fixes using the hive DB

In order to see these tests successfully solved in Hive, a PR enabling commitment is required in the Hive repository itself

@lupin012 lupin012 changed the title rpcdaemon: calculate postState for pre-byzantium blocks rpcdaemon: fix Hive test eth_getTransactionReceipt pre-byzantium Oct 16, 2025
@lupin012 lupin012 marked this pull request as ready for review October 16, 2025 21:08
@AskAlexSharov AskAlexSharov merged commit 7a14067 into main Oct 17, 2025
27 of 30 checks passed
@AskAlexSharov AskAlexSharov deleted the lupin012/fix_hive_eth_getTransactionReceipt_postState branch October 17, 2025 01:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants