hiero-ledger / hiero-ledger/hiero-consensus-node
EthereumTransaction with WRONG_NONCE result incorrectly includes contractCallResult in TransactionRecord
- Dominant language
- Java
- Stars
- 407
- Forks
- 226
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 210
Description
### Problem
Since approximately June 20, 2024, the consensus node started including `contractCallResult` in the TransactionRecord for `EthereumTransaction` transactions that fail with result `WRONG_NONCE` (response code 312).
This is incorrect: a `WRONG_NONCE` transaction is rejected at nonce validation before entering EVM execution. It should produce **no** `contractCallResult` in the record.
### Evidence from mainnet:
Cutoff:
- Last `WRONG_NONCE` without contract_result: 1718897023.546066003 (~June 20, 2024 16:43 UTC)
- First `WRONG_NONCE` with contract_result: 1718903044.530386003 (~June 20, 2024 18:04 UTC)
Hashscan examples:
- Before (no `contract_result`, correct): https://hashscan.io/mainnet/transaction/1680261149.950191962
- After (has `contract_result`, incorrect): https://hashscan.io/mainnet/transaction/1718906649.580677680
### Related
- Mirror node tracking issue: hiero-ledger/hiero-mirror-node#13450
- Mirror node PR: hiero-ledger/hiero-mirror-node#13657
Contributor guide
Research direction
Start by tracing EthereumTransaction handling for result WRONG_NONCE and where TransactionRecord receives contractCallResult; the issue provides mainnet examples for comparison. Reproduce or inspect the regression around June 20, 2024, then verify with a focused test that a WRONG_NONCE transaction produces no contractCallResult while EVM-executed failures retain the expected record data.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- blockchain
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100