hiero-ledger / hiero-ledger/hiero-consensus-node

EthereumTransaction with WRONG_NONCE result incorrectly includes contractCallResult in TransactionRecord

Open
#26,307 0 comments 0 reactions 0 assignees View on GitHub
Hedera Smart Contract Service
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.