cosmos-sdk
cosmos-sdk copied to clipboard
Epic: x/accounts
This epic tracks x/accounts development:
MVP
- [x] Interface #17496 [audit]
- [x] state isolation #17508 [audit]
- [x] execution, query and init logic #17514 [audit]
- [x] query and msg server logic #17615 [audit]
- [x] module communication #17686 [audit]
- [x] Export/import Genesis https://github.com/cosmos/cosmos-sdk/pull/17802 [audit]
- [x] Simapp Wiring https://github.com/cosmos/cosmos-sdk/pull/18253 [audit]
Release (breaking changes we must have before release)
- [x] Move x/accounts to gogoproto: https://github.com/cosmos/cosmos-sdk/pull/18653/files
- [x] Use account number as bytes prefix for the account storage. https://github.com/cosmos/cosmos-sdk/pull/18664
- [ ] Init Genesis (starting new chain, from scratch; not import/export) [audit]
- [ ] Address Scheme #17516 [audit]
- [x] Migrate x/accounts to use gogoproto instead of protov2 https://github.com/cosmos/cosmos-sdk/pull/18653
- [x] use google.Protobuf.Any instead of bytes for messages: https://github.com/cosmos/cosmos-sdk/pull/18653 [audit]
- [x] Make x/accounts use the same account number sequence as x/auth. https://github.com/cosmos/cosmos-sdk/pull/20405 [audit]
- [ ] Add migration message to migrate x/auth account to x/accounts
- [ ] Make auth check also for x/accounts state when checking for account existence.
- [x] Add Gas and Binary Codec as dependencies: https://github.com/cosmos/cosmos-sdk/pull/19068
Post-Release (can be added in an additive way without breaking things)
- [ ] Authorized execution from sender (authorize the account to execute an action on behalf of the invoker, eg: coin send)
- [x] Allow to send coins on account init and execute https://github.com/cosmos/cosmos-sdk/pull/19360
- [x] Events #17687
- [x] More core services (block service, branching..)
- [x] Account Schema
- [x] Assert Account Interface functionality https://github.com/cosmos/cosmos-sdk/pull/19361
Account Abstraction
- [x] Define core.branch.Service https://github.com/cosmos/cosmos-sdk/pull/18379 [audit]
- [x] Implement core.branch.Service https://github.com/cosmos/cosmos-sdk/pull/18475 [audit]
- [x] Add account abstraction interfaces and protofiles. https://github.com/cosmos/cosmos-sdk/pull/18404 [audit]
- [x] Implement account abstraction execution [audit]
- [x] Implement AA user op execution logic https://github.com/cosmos/cosmos-sdk/pull/18499 [audit]
- [x] Implement user operation simulation https://github.com/cosmos/cosmos-sdk/pull/18979 [audit]
- [ ] Decide if to introduce Sequence to user operation (required to avoid tx hash conflicts)
- [x] Implement MsgServer https://github.com/cosmos/cosmos-sdk/pull/18969
- [x] Implement BaseAccount as Abstracted Account
Tx Integration (Enshrining)
Tasks needed to integrate account abstraction authentication into the TX execution.
- [x] Add TxCompat field, contains auxiliary fields needed to convert a TX into a UserOperation. https://github.com/cosmos/cosmos-sdk/pull/18969
- [x] Implement QueryAccountNumber query to query account number by address. https://github.com/cosmos/cosmos-sdk/pull/18989
- [x] Add header.Service support https://github.com/cosmos/cosmos-sdk/pull/19004
- [x] Add AA authentication logic into SigVerify AnteHandler
Auxiliary
Defines auxiliary tasks needed:
- [x] Remove
GetAllAccounts
,IterateAccounts
methods fromx/auth
AccountKeeper
https://github.com/cosmos/cosmos-sdk/pull/19363 - [x] Join SigVerification, CasConsume, IncreaseSequence decorators: https://github.com/cosmos/cosmos-sdk/pull/18817
- [x] Join SetPubKeyDecorator with SigVerificationDecorator https://github.com/cosmos/cosmos-sdk/pull/19093
- [x] Refactor auth ante to make it more readable https://github.com/cosmos/cosmos-sdk/pull/18780
- [x] Fix proto.Merge for gogoproto types https://github.com/cosmos/cosmos-sdk/pull/18654
- [x] Refactor unknown proto to use descriptorpb types instead of gogotypes https://github.com/cosmos/cosmos-sdk/pull/18541
- [x] Add hybrid MsgServer handlers https://github.com/cosmos/cosmos-sdk/pull/18071
- [x] Add hybrid QueryServer handlers https://github.com/cosmos/cosmos-sdk/pull/17921
As part of this we should also keep track for various types of accounts
- multisigs
- vesting
- multiple signers
Do you implement this module for multichain landscape ?. For example:
- Sync authorization key between each chains
- Query authorization key from other chains on cosmos ecosystem
@terryyy-eth this is an implementation detail of the account, x/accounts does not make assumptions around how an account can authenticate, if your account authentication wants to leverage the interchain it can, the implementation detail is up to you as a developer.
Out of curiosity, why would one need a multisig account, as defined in https://github.com/cosmos/cosmos-sdk/tree/aceeaf47206eccf4bcad56729bd695b9eefc18f1/x/accounts/defaults/multisig, when we have the x/group
module?
the multisig is meant to be a light weight and simple, if users would like a custom multisig they can simply add it without needing to modify the groups module. Group is heavy on a chain and complex. We are moving towards simplifying the system and groups may move into a maintenance state
completed.