* evm: module specification * params and events * readme and messages * minor updates * concepts * genesis state concept * begin and end block * update parameters and genesis * state objects * state table * use permalink * init and export genesis * update abci * extra eips param * review comments * precision * link to photon doc
2.2 KiB
Parameters
The evm module contains the following parameters:
Key | Type | Default Value |
---|---|---|
EVMDenom |
string | "aphoton" |
EnableCreate |
bool | true |
EnableCall |
bool | true |
ExtraEIPs |
[]int | TBD |
EVM denom
The evm denomination parameter defines the token denomination used on the EVM state transitions and gas consumption for EVM messages.
The EVM Denom is used on the following cases:
AnteHandler
: for calculating sufficient balance to pay for gas cost or transaction fees.journal
: to revert certain state executions (balanceChange
andsuicideChange
).stateObject
: to track theevm_denom
balance of the object account.CommitStateDB
: to update account balance from an existing state object.
For example, on Ethereum, the evm_denom
would be ETH
. In the case of Ethermint, the default denomination is the atto photon. 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
.
::: danger
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 (EIPs)
on the Ethereum VM Config
that apply custom jump tables.
The supported activateable EIPS are: