0g-chain/x/evmutil/spec
Robert Pirtle ff709d73e1
feat(evmutil): add allow list for evm-convertible sdk denoms (#1590)
* add proto for allowed sdk denoms -> evm conversion

* add validation for AllowedNativeCoinERC20Token

* add validation for AllowedNativeCoinERC20Tokens

* add AllowedNativeDenoms into params & genesis

* add evmutil Params.Validate() test

* fix eip712 ante test

* update changelog

* update internal testnet genesis.json

* update state & param specs

updates to the sections describing functionality will be updated once
that functionality actually exists... :)

* update field decimal -> decimals

field now matches erc20 spec

* add validation decimals will cast to uint8

* add v2 store migration for evmutil

* create & register evmutil migrations

* adds migrator to evmutil's keeper
* sets up Migrate1To2 migration
* registers migration in module
* updates GetParams to properly handle historic block queries

* add unit test for GetParams with historic store
2023-05-19 16:01:46 -07:00
..
01_concepts.md update evmutil specs (#1356) 2022-11-03 08:16:16 -07:00
02_state.md feat(evmutil): add allow list for evm-convertible sdk denoms (#1590) 2023-05-19 16:01:46 -07:00
03_messages.md update evmutil specs (#1356) 2022-11-03 08:16:16 -07:00
04_events.md update evmutil specs (#1356) 2022-11-03 08:16:16 -07:00
05_params.md feat(evmutil): add allow list for evm-convertible sdk denoms (#1590) 2023-05-19 16:01:46 -07:00
README.md update evmutil specs (#1356) 2022-11-03 08:16:16 -07:00

evmutil

Table of Contents

  1. Concepts
  2. State
  3. Messages
  4. Events
  5. Params

Overview

The evmutil module provides additional functionalities on top of the evm module.

EVM akava Usage

evmutil stores additional state data for evm accounts and exposes an EvmBankKeeper that should be used by the x/evm keeper for bank operations. The purpose of the EvmBankKeeper is to allow the usage of the akava balance on the EVM via an account's existing ukava balance. This is needed because the EVM gas token use 18 decimals, and since ukava has 6 decimals, it cannot be used as the EVM gas denom directly.

For additional details on how balance conversions work, see Concepts.

ERC20 Token <> sdk.Coin Conversion

evmutil exposes messages to allow for the conversion of Kava ERC20 tokens and sdk.Coins via a whitelist.

For additional details on how these messages work, see Messages.