diff --git a/cmd/laconicd/cmd/add_genesis_lockup_account.go b/cmd/laconicd/cmd/add_genesis_lockup_account.go index dacc26a0..88bf4344 100644 --- a/cmd/laconicd/cmd/add_genesis_lockup_account.go +++ b/cmd/laconicd/cmd/add_genesis_lockup_account.go @@ -3,6 +3,7 @@ package cmd import ( "encoding/json" "fmt" + "os" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" @@ -25,9 +26,9 @@ const ( // AddGenesisLockupAccountCmd returns add-genesis-lockup-account cobra Command. func AddGenesisLockupAccountCmd() *cobra.Command { cmd := &cobra.Command{ - Use: "add-genesis-lockup-account [,...]", + Use: "add-genesis-lockup-account [,...]", Short: "Add genesis lockup account with give name", - Args: cobra.ExactArgs(2), + Args: cobra.ExactArgs(3), RunE: func(cmd *cobra.Command, args []string) error { clientCtx := client.GetClientContextFromCmd(cmd) serverCtx := server.GetServerContextFromCmd(cmd) @@ -36,9 +37,20 @@ func AddGenesisLockupAccountCmd() *cobra.Command { config.SetRoot(clientCtx.HomeDir) moduleName := args[0] + distributionFilePath := args[1] + + var distribution map[string]interface{} + distributionBytes, err := os.ReadFile(distributionFilePath) + if err != nil { + return fmt.Errorf("failed to read %s file: %w", distributionFilePath, err) + } + if err = json.Unmarshal(distributionBytes, &distribution); err != nil { + return fmt.Errorf("distribution is invalid json: %v", err) + } + appendflag, _ := cmd.Flags().GetBool(flagAppendMode) - return AddGenesisAccount(clientCtx.Codec, moduleName, appendflag, config.GenesisFile(), args[1]) + return AddGenesisLockupAccount(clientCtx.Codec, moduleName, string(distributionBytes), appendflag, config.GenesisFile(), args[2]) }, } @@ -47,9 +59,10 @@ func AddGenesisLockupAccountCmd() *cobra.Command { return cmd } -func AddGenesisAccount( +func AddGenesisLockupAccount( cdc codec.Codec, moduleName string, + distribution string, appendAcct bool, genesisFileURL, amountStr string, ) error { @@ -66,7 +79,7 @@ func AddGenesisAccount( genAccount := &types.LockupAccount{ BaseAccount: moduleAccount.BaseAccount, Name: moduleAccount.Name, - Distribution: "", + Distribution: distribution, } if err := genAccount.Validate(); err != nil {