laconicd/x/evm/spec/07_params.md
Federico Kunze 6e1c16627a
evm: module specification (#538)
* 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
2020-12-09 20:11:15 +01:00

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 and suicideChange).
  • stateObject: to track the evm_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: