Update onflow/go-ethereum to latest v1.16.2 - #855
Conversation
WalkthroughThis update introduces dependency version bumps in both main and test Changes
Sequence Diagram(s)sequenceDiagram
participant Test as Test Suite
participant BlockIndexer
participant ReceiptIndexer
participant Block as Block Model
Test->>BlockIndexer: Store block (height, ID)
BlockIndexer-->>Test: Block stored
Test->>ReceiptIndexer: Create receipt (with stored block)
ReceiptIndexer->>Block: Access block fields (height, hash, timestamp)
ReceiptIndexer-->>Test: Receipt stored with block data
sequenceDiagram
participant Receipts
participant Store
participant Block as Block Model
Receipts->>Store: Fetch receipts by block height
Store-->>Receipts: Return receipts bytes
Receipts->>Store: Fetch block by block height
Store-->>Receipts: Return block bytes
Receipts->>Block: Decode block, get timestamp
Receipts->>Receipts: Assign block timestamp to logs
Receipts-->>Caller: Return enriched receipts
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~15–20 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
Note 🔌 MCP (Model Context Protocol) integration is now available in Early Access!Pro users can now connect to remote MCP servers under the Integrations page to get reviews and chat conversations that understand additional development context. 📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (4)
🚧 Files skipped from review as they are similar to previous changes (4)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
✨ Finishing Touches
🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
50c0d7b to
61841a3
Compare
onflow/go-ethereum to latest v1.16.1onflow/go-ethereum to latest v1.16.2
61841a3 to
5a38173
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (2)
go.sumis excluded by!**/*.sumtests/go.sumis excluded by!**/*.sum
📒 Files selected for processing (7)
go.mod(8 hunks)models/transaction.go(1 hunks)storage/index_test.go(10 hunks)storage/mocks/mocks.go(1 hunks)storage/pebble/receipts.go(1 hunks)tests/go.mod(8 hunks)tests/web3js/eth_logs_filtering_test.js(2 hunks)
🚧 Files skipped from review as they are similar to previous changes (6)
- tests/web3js/eth_logs_filtering_test.js
- models/transaction.go
- storage/mocks/mocks.go
- go.mod
- tests/go.mod
- storage/pebble/receipts.go
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: peterargue
PR: onflow/flow-evm-gateway#617
File: api/stream.go:62-67
Timestamp: 2024-10-18T19:26:37.579Z
Learning: In the `flow-evm-gateway` project, within the Go file `api/stream.go`, the `prepareBlockResponse` method includes the Bloom filter as the field `LogsBloom` in the returned `Block` struct.
📚 Learning: 2024-10-18T19:26:37.579Z
Learnt from: peterargue
PR: onflow/flow-evm-gateway#617
File: api/stream.go:62-67
Timestamp: 2024-10-18T19:26:37.579Z
Learning: In the `flow-evm-gateway` project, within the Go file `api/stream.go`, the `prepareBlockResponse` method includes the Bloom filter as the field `LogsBloom` in the returned `Block` struct.
Applied to files:
storage/index_test.go
📚 Learning: 2024-10-17T18:04:04.165Z
Learnt from: peterargue
PR: onflow/flow-evm-gateway#615
File: bootstrap/bootstrap.go:167-197
Timestamp: 2024-10-17T18:04:04.165Z
Learning: In the `flow-evm-gateway` Go project, the validation ensuring that `startHeight` is less than or equal to `endHeight` is performed before the `StartTraceDownloader` method in `bootstrap/bootstrap.go`, so additional checks in this method are unnecessary.
Applied to files:
storage/index_test.go
🔇 Additional comments (7)
storage/index_test.go (7)
60-60: LGTM: Pass BlocksIndexer into ReceiptTestSuiteGood wiring. This ensures tests reflect the new receipts → blocks dependency.
280-280: LGTM: Add BlocksIndexer to ReceiptTestSuiteStruct updated consistently with its usage in tests.
289-296: LGTM: Store block in same batch before receiptStoring the block and receipt in the same batch maintains atomicity and aligns with the new coupling.
305-327: LGTM: Multiple receipts at same height with consistent log indicesBlock is stored first in the same batch; receipts and log indices are handled correctly.
341-359: LGTM: Negative case for multiple heightsCorrectly expects an error when storing receipts spanning different heights.
366-374: LGTM: GetByTransactionID happy-path setupBlock-first store in same batch is correct; setup matches the updated receipt creation API.
395-402: LGTM: GetByBlockHeight prep and isolation of another blockBlock/receipt stored atomically; second, different-height block is isolated in a new batch and committed separately.
Also applies to: 411-417
5a38173 to
aeeac14
Compare
Work Towards: #840
Description
This includes performance optimizations, new fields in certain JSON-RPC endpoints, new fields in certain native tracers as well as a new native tracer.
For contributor use:
masterbranchFiles changedin the Github PR explorerSummary by CodeRabbit
New Features
Bug Fixes
Tests
blockTimestampfield in log entries.Chores