Parameters
The evm module contains the following parameters:
Params
Key | Type | Default Value |
---|---|---|
| string |
|
| bool |
|
| bool |
|
| []int | TBD |
| ChainConfig | See ChainConfig |
EVM denom
The evm denomination parameter defines the token denomination used on the EVM state transitions and gas consumption for EVM messages.
For example, on Ethereum, the evm_denom
would be ETH
. In the case of Ethermint, the default denomination is the atto photon (used on the BlockX testnets). In terms of precision, the PHOTON
and ETH
share the same value, i.e 1 PHOTON = 10^18 atto photon
and 1 ETH = 10^18 wei
.
SDK applications that want to import the EVM module as a dependency will need to set their own evm_denom
(i.e not "aphoton"
).
Enable Create
The enable create parameter toggles state transitions that use the vm.Create
function. When the parameter is disabled, it will prevent all contract creation functionality.
Enable Transfer
The enable transfer toggles state transitions that use the vm.Call
function. When the parameter is disabled, it will prevent transfers between accounts and executing a smart contract call.
Extra EIPs
The extra EIPs parameter defines the set of activateable Ethereum Improvement Proposals) on the Ethereum VM Config
that apply custom jump tables.
Note that some of these EIPs are already enabled by the chain configuration, depending on the hard fork number.
The supported activateable EIPS are:
Chain Config
The ChainConfig
is a protobuf wrapper type that contains the same fields as the go-ethereum ChainConfig
parameters, but using *sdk.Int
types instead of *big.Int
.
By default, all block configuration fields but ConstantinopleBlock
, are enabled at genesis (height 0).
ChainConfig Defaults
Name | Default Value |
---|---|
HomesteadBlock | 0 |
DAOForkBlock | 0 |
DAOForkSupport |
|
EIP150Block | 0 |
EIP150Hash |
|
EIP155Block | 0 |
EIP158Block | 0 |
ByzantiumBlock | 0 |
ConstantinopleBlock | 0 |
PetersburgBlock | 0 |
IstanbulBlock | 0 |
MuirGlacierBlock | 0 |
BerlinBlock | 0 |
LondonBlock | 0 |