cosmos-sdk/x/accounts
dependabot[bot] 3cb95a334f
build(deps): Bump github.com/prometheus/client_golang from 1.20.1 to 1.20.2 (#21395)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-08-26 09:57:09 +00:00
..
accountstd refactor(core,stf,x)!: remove InvokeTyped from router (#21224) 2024-08-23 21:38:06 +00:00
cli refactor(cli): Standardize Use field convention and update readme (#21369) 2024-08-21 08:36:34 +00:00
defaults build(deps): Bump github.com/prometheus/client_golang from 1.20.1 to 1.20.2 (#21395) 2024-08-26 09:57:09 +00:00
interfaces/account_abstraction/v1 perf!: Make slashing not write sign info every block (#19458) 2024-02-20 16:51:02 +00:00
internal refactor(core,stf,x)!: remove InvokeTyped from router (#21224) 2024-08-23 21:38:06 +00:00
proto chore(x/accounts): fix comment (#20755) 2024-06-24 07:52:16 +00:00
testing chore: fix some comments (#21085) 2024-07-26 11:00:15 +00:00
v1 build(deps): bump proto-builder and regen protos (#21215) 2024-08-08 08:45:15 +00:00
account_test.go refactor(core,stf,x)!: remove InvokeTyped from router (#21224) 2024-08-23 21:38:06 +00:00
CHANGELOG.md feat(x/accounts): On-chain multisig (#19988) 2024-05-06 11:26:49 +00:00
coin_transfer.go refactor(core,stf,x)!: remove InvokeTyped from router (#21224) 2024-08-23 21:38:06 +00:00
depinject.go test(accounts): add multisig e2e tests (#20310) 2024-05-13 12:53:15 +00:00
genesis_test.go fix (x/accounts): Fix genesis condition check (#20645) 2024-06-12 16:25:02 +00:00
genesis.go fix (x/accounts): Fix genesis condition check (#20645) 2024-06-12 16:25:02 +00:00
go.mod build(deps): Bump github.com/prometheus/client_golang from 1.20.1 to 1.20.2 (#21395) 2024-08-26 09:57:09 +00:00
go.sum build(deps): Bump github.com/prometheus/client_golang from 1.20.1 to 1.20.2 (#21395) 2024-08-26 09:57:09 +00:00
keeper_account_abstraction.go refactor(auth): decouple auth from x/accounts account abstraction types (#20875) 2024-07-08 14:15:17 +00:00
keeper_test.go feat(x/accounts): use router service from env (#20003) 2024-04-15 15:41:11 +00:00
keeper.go refactor(core,stf,x)!: remove InvokeTyped from router (#21224) 2024-08-23 21:38:06 +00:00
module.go refactor(core,stf): complete gas service + simplify deps (#21166) 2024-08-08 07:30:09 +00:00
msg_server_test.go feat(x/accounts): use router service from env (#20003) 2024-04-15 15:41:11 +00:00
msg_server.go feat(accounts): add genesis account initialization (#20642) 2024-06-12 14:19:13 +00:00
query_server_test.go feat(x/accounts): Add schema caching feature and corresponding test case (#20055) 2024-05-17 05:11:45 +00:00
query_server.go feat(x/accounts): Add schema caching feature and corresponding test case (#20055) 2024-05-17 05:11:45 +00:00
README.md feat(accounts): add genesis account initialization (#20642) 2024-06-12 14:19:13 +00:00
sonar-project.properties chore: force reload sonar cloud (#20480) 2024-05-29 11:12:09 +00:00
utils_test.go refactor(core,types,runtime,x): make HasName not mandatory (#20984) 2024-07-19 08:58:47 +00:00

x/accounts

The x/accounts module provides module and facilities for writing smart cosmos-sdk accounts.

Genesis

Creating accounts on genesis

In order to create accounts at genesis, the x/accounts module allows developers to provide a list of genesis MsgInit messages that will be executed in the x/accounts genesis flow.

The init messages are generated offline. You can also use the following CLI command to generate the json messages: simd accounts tx init [account type] [msg] --from me --genesis. This will generate a jsonified init message wrapped in an x/accounts MsgInit.

This follows the same initialization flow and rules that would happen if the chain is running. The only concrete difference is that this is happening at the genesis block.

For example, given the following genesis.json file:

{
  "app_state": {
    "accounts": {
      "init_account_msgs": [
        {
          "sender": "account_creator_address",
          "account_type": "lockup",
          "message": {
            "@type": "cosmos.accounts.defaults.lockup.MsgInitLockupAccount",
            "owner": "some_owner",
            "end_time": "..",
            "start_time": ".."
          },
          "funds": [
            {
              "denom": "stake",
              "amount": "1000"
            }
          ]
        }
      ]
    }
  }
}

The accounts module will run the lockup account initialization message.