fix(blockscout): always trace CREATE transactions#2293
Conversation
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Explore these optional code suggestions:
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2293 +/- ##
===========================================
+ Coverage 45.23% 84.76% +39.52%
===========================================
Files 129 129
Lines 9227 10575 +1348
===========================================
+ Hits 4174 8964 +4790
+ Misses 5053 1611 -3442
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Final benchmark: Git Info:
Leader Stats: Follower Stats: Plots: |
User description
When the internal transaction indexer is enabled in Blockscout it relies on that to index bytecodes. So while it is useful to only trace failed transactions as to not put too much strain on stratus, we need to trace successful transactions that create contracts.
PR Type
Bug fix, Enhancement
Description
Always trace CREATE transactions for Blockscout compatibility
Modify condition to check for deployed contract address
Ensure correct bytecode indexing for internal transaction indexer
Maintain performance by tracing only necessary transactions
Diagram Walkthrough
flowchart LR TX["Transaction"] --> CHECK{"Is CREATE?"} CHECK -->|Yes| TRACE["Always Trace"] CHECK -->|No| CONDITION{"Trace Unsuccessful Only?"} CONDITION -->|Yes| RESULT{"Successful?"} RESULT -->|No| TRACE RESULT -->|Yes| SKIP["Skip Tracing"] CONDITION -->|No| TRACEFile Walkthrough
evm.rs
Refine transaction tracing logic for CREATE transactionssrc/eth/executor/evm.rs