fix: returning empty tracer object on transactions without executed opcodes (#4965)#4989
Conversation
…pcodes (hiero-ledger#4965) Signed-off-by: Bartosz Solka <bartosz.solka@blockydevs.com>
Codecov Report❌ Patch coverage is
❌ Your project check has failed because the head coverage (76.67%) is below the target coverage (80.00%). You can increase the head coverage or adjust the target coverage.
@@ Coverage Diff @@
## main #4989 +/- ##
===========================================
- Coverage 96.02% 76.67% -19.35%
===========================================
Files 143 143
Lines 24064 24064
Branches 1912 926 -986
===========================================
- Hits 23108 18452 -4656
- Misses 932 5591 +4659
+ Partials 24 21 -3
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 83 files with indirect coverage changes 🚀 New features to boost your workflow:
|
jasuwienas
left a comment
There was a problem hiding this comment.
lgtm!
It looks like we’re wrapping getContractsResultsOpcodes and getContractResultWithRetry in try/catch blocks, and when we get a 404, we return null - so this should work as expected (unless we get sometjing else than 404 from mirrornode)
…iero-ledger#4965) Signed-off-by: Bartosz Solka <bartosz.solka@blockydevs.com>
Description
This PR fixes an issue where debug_traceTransaction could fail with RESOURCE_NOT_FOUND for transactions that reached consensus, produced a contract result, but did not execute any EVM opcodes or actions. It updates the OpcodeLogger, CallTracer, and PrestateTracer flows to return empty traces for such “non-executed but non-synthetic” transactions, independent of HEDERA_SPECIFIC_REVERT_STATUSES, while preserving the existing synthetic-transaction behavior.
Related issue(s)
Fixes #4965
Testing Guide
Changes from original design (optional)
N/A
Additional work needed (optional)
N/A
Checklist