Closed sideninja closed 1 week ago
[!WARNING]
Rate limit exceeded
@sideninja has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 15 minutes and 21 seconds before requesting another review.
How to resolve this issue?
After the wait time has elapsed, a review can be triggered using the `@coderabbitai review` command as a PR comment. Alternatively, push new commits to this PR. We recommend that you space out your commits to avoid hitting the rate limit.How do rate limits work?
CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our [FAQ](https://coderabbit.ai/docs/faq) for further information.Commits
Files that changed from the base of the PR and between 11833ebb7a0a8e23a35f55d008c4c2bf277bda78 and 16798f25c2365d6cd476902387c7e1696f80feaa.
The changes involve significant refactoring and enhancements across multiple files in the EVM Gateway codebase. Key updates include renaming network environments in documentation, restructuring the BlockChainAPI
for improved clarity, introducing a ClientHandler
for EVM operations, and implementing a state engine for managing blockchain state. Additionally, new methods and interfaces have been added for better transaction handling and state validation, while existing methods have been updated to improve functionality and maintainability.
Files | Change Summary |
---|---|
README.md |
Updated network names for public RPC endpoints: "EVM on Flow Testnet" to "Testnet" and "EVM on Flow" to "Mainnet". |
api/api.go , api/pull.go |
Refactored BlockChainAPI , changed field types, updated method calls from LatestEVMHeight() to LatestIndexedHeight() , added new methods for block number resolution. |
bootstrap/bootstrap.go |
Added State field to Bootstrap , introduced StartStateIndex and StopStateIndex methods, renamed existing fields for consistency. |
services/requester/client_handler.go |
Introduced ClientHandler for EVM operations, added methods for local state interaction. |
services/requester/remote_client.go |
Refactored Requester interface into RemoteClient , modified method signatures for consistency. |
tests/go.mod |
Updated dependency versions for github.com/onflow/flow-emulator , github.com/onflow/flow-go , and github.com/onflow/flow/protobuf/go/flow . |
Objective | Addressed | Explanation |
---|---|---|
Extend EVM Gateway to operate in archive mode, indexing state alongside transactions (Issue #322). | ✅ | |
Implement APIs for state inspection such as eth_getBalance , eth_getStorageAt , eth_getTransactionCount , eth_getCode (Issue #322). |
✅ | |
Improve event ingestion to build and index Cadence values read through Cadence arch (Issue #322). | ❌ | Event ingestion improvements are not implemented. |
Create an emulator for executing EVM transactions locally (Issue #322). | ✅ | |
Implement a ledger for state management in the EVM emulator (Issue #322). | ❓ | Ledger implementation details are unclear. |
api/api.go
and related files may relate to the changes in the main PR, as both involve enhancing the functionality and usability of the API.api/api.go
regarding the BlockChainAPI
structure are relevant to the state management enhancements in the main PR, particularly in how state is accessed.Improvement
, EVM
, Testing
🐇 In the land of code where bunnies hop,
Changes abound, we never stop!
From state engines to handlers bright,
Our EVM dances in the light.
With tests that leap and functions that sing,
Hooray for the changes that new features bring! 🌟
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Closing in favor of: https://github.com/onflow/flow-evm-gateway/pull/635
Closes: #322 #450 #451 #452
Includes PRs
550
546
542
541
540
537
This is a feature branch that contains work from multiple PRs to implement local register index along with the state re-execution.
It's still in draft because further testing is needed and we should also include the checksum to validate the local state after each transaction is executed, that is depending on the PR https://github.com/onflow/flow-go/pull/6456 those checksum should be used to validate the state instead of the receipt checking which is currently done.
For contributor use:
master
branchFiles changed
in the Github PR explorerSummary by CodeRabbit
Release Notes
New Features
ClientHandler
for managing EVM operations, enhancing local and remote client interactions.State
field in theBootstrap
struct for state indexing management.BlockState
for robust transaction execution and state management.Bug Fixes
Documentation
Tests
handleCall
function to validate local and remote call handling.Chores
go.mod
file for improved functionality and stability.