cosmos-sdk icon indicating copy to clipboard operation
cosmos-sdk copied to clipboard

Epic: x/accounts

Open testinginprod opened this issue 1 year ago • 5 comments

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 from x/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

testinginprod avatar Sep 18 '23 12:09 testinginprod

As part of this we should also keep track for various types of accounts

  • multisigs
  • vesting
  • multiple signers

tac0turtle avatar Sep 18 '23 13:09 tac0turtle

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

imduchuyyy avatar Dec 15 '23 03:12 imduchuyyy

@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.

testinginprod avatar Dec 19 '23 09:12 testinginprod

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?

fmorency avatar Jun 25 '24 15:06 fmorency

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

tac0turtle avatar Jun 25 '24 15:06 tac0turtle

completed.

tac0turtle avatar Jul 19 '24 12:07 tac0turtle