-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature Request: Expand account compatible #55
Comments
Pieces of solution
Store:New Code Hash store prefixCodeHash (iota=4)
KeyPrefixCodeHash = []byte{prefixCodeHash} Key: 1 bytes of store key code hash prefix + 20 bytes of address + 8 bytes of account number Test-cases:
|
Proof of Concept #56 I have made a branch to prove that the above solution that is, at this moment, seems to work perfectly with even all deprecated modules of Evmos. 15 commits for 15 implementation steps:
Notes:
Test status:
Migration (for existing chains) based on this implementation
|
like the idea. |
@VictorTrustyDev Why do you need the account number? |
@fedekunze account destruction, account re-initialize. |
Evermint is fork of Evmos v12.1.6 for research & development purpose
Update Sep 2024: implemented in Evermint by #129
Currently, Evermint is using
EthAccount
as the default proto account and the only type of account supported.That causes some limit:
x/vesting
moduleevmtypes.EmptyCodeHash
32 bytes value that also exists in every non-contractEthAccount
(see prove).Request:
EthAccount
authtypes.BaseAccount
as default proto account, compatible with EVM module.x/evm
non-genesis account now only support export/import only accounts with either code or storagelen(code_hash) > 0 && code_hash <> evmtypes.EmptyCodeHash
instead of saving it into everyEthAccount
record. This change will slightly lower gas fee required to read from store in non-evm TxsAware:
x/auth
keeperRemoveAccount
Mindset changes:
CodeHash
record (len(code_hash) == 0 || code_hash == evmtypes.EmptyCodeHash
will be removed from store)len(address_bytes) == 20
. If it is inblockedAddrs
byx/bank
, will be an error instateDb.Commit()
phrase.Migration aware (if any chain planned to implement this):
The text was updated successfully, but these errors were encountered: