Crates.io | pallet-evm |
lib.rs | pallet-evm |
version | 5.0.0 |
source | src |
created_at | 2020-02-28 05:51:08.092425 |
updated_at | 2021-08-08 07:43:40.979685 |
description | FRAME EVM contracts pallet |
homepage | https://substrate.dev |
repository | https://github.com/paritytech/frontier/ |
max_upload_size | |
id | 213443 |
size | 417,585 |
The EVM module allows unmodified EVM code to be executed in a Substrate-based blockchain.
The EVM module uses SputnikVM
as the underlying EVM engine. The engine is overhauled so that it's modular
.
There are a separate set of accounts managed by the EVM module. Substrate based accounts can call the EVM Module to deposit or withdraw balance from the Substrate base-currency into a different balance managed and used by the EVM module. Once a user has populated their balance, they can create and call smart contracts using this module.
There's one-to-one mapping from Substrate accounts and EVM external accounts that is defined by a conversion function.
The EVM module should be able to produce nearly identical results compared to the Ethereum mainnet, including gas cost and balance changes.
Observable differences include:
We currently do not aim to make unobservable behaviors, such as state root, to be the same. We also don't aim to follow the exact same transaction / receipt format. However, given one Ethereum transaction and one Substrate account's private key, one should be able to convert any Ethereum transaction into a transaction compatible with this module.
The gas configurations are configurable. Right now, a pre-defined Istanbul hard fork configuration option is provided.
License: Apache-2.0