Open sideninja opened 1 week ago
The pull request introduces significant changes across multiple files, primarily focusing on restructuring the codebase to enhance the Ethereum Virtual Machine (EVM) integration with the Flow blockchain. Key modifications include updating client types, refining transaction execution logic, and implementing caching mechanisms for improved performance. Additionally, the .gitignore
file has been updated, and various tests have been adjusted to align with the new functionalities and expectations.
Files | Change Summary |
---|---|
.gitignore |
Removed entry for tests/web3js/package-lock.json and added metrics/data/ to ignore list. |
api/api.go , bootstrap/bootstrap.go |
Updated client types from requester to evm , modifying struct fields and method signatures accordingly. |
go.mod |
Updated dependency versions for github.com/onflow/flow-go and github.com/onflow/flow/protobuf/go/flow . |
models/block.go , models/block_test.go |
Simplified block decoding logic and updated tests to reflect changes in decoding methods. |
services/evm/*.go |
Refactored EVM client interface, introduced new structs and methods for transaction execution and state management. |
tests/*.go , tests/web3js/*.js |
Adjusted test cases to align with new functionalities, updated expected values, and added new tests for coverage. |
sequenceDiagram
participant User
participant EVMClient
participant Ledger
participant Emulator
User->>EVMClient: Send Transaction
EVMClient->>Ledger: Fetch State
Ledger->>EVMClient: Return State
EVMClient->>Emulator: Execute Transaction
Emulator->>EVMClient: Return Execution Result
EVMClient->>User: Return Transaction Receipt
Objective | Addressed | Explanation |
---|---|---|
Ensure scalability of remote register API during re-execution (574) | β | |
Validate re-executed state (574) | β | The changes do not include specific validation logic. |
Testing
π "In the code where changes bloom,
The EVM finds its room.
With clients new and tests refined,
A brighter path we now can find.
Hopping through each line with glee,
In Flow's embrace, we dance so free!" π
Closes: #574
Description
This PR adds state read and execution using remote registers API from the AN.
For contributor use:
master
branchFiles changed
in the Github PR explorerSummary by CodeRabbit
Release Notes
New Features
BlockExecutor
for executing transactions in the EVM context on the Flow blockchain.Refactor
requester
toevm
across multiple services.EVMClient
.Bug Fixes
evm
services.Chores
go.mod
files to ensure compatibility with the latest changes..gitignore
for better file management.