Skip to content

Commit d7a0ccc

Browse files
authored
Merge pull request #679 from oasisprotocol/peternose/bugfix/default-wallet-name
cmd/wallet/create: Fix creation of a default wallet name
2 parents 28cfc20 + c286940 commit d7a0ccc

1 file changed

Lines changed: 20 additions & 4 deletions

File tree

cmd/wallet/create.go

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,16 @@ var createCmd = &cobra.Command{
2020
Args: cobra.MaximumNArgs(1),
2121
Run: func(_ *cobra.Command, args []string) {
2222
cfg := config.Global()
23-
name := "account-1"
24-
if len(args) > 0 {
23+
24+
var name string
25+
switch len(args) {
26+
case 0:
27+
name = generateAccountName(cfg)
28+
default:
2529
name = args[0]
30+
checkAccountExists(cfg, name)
2631
}
2732

28-
checkAccountExists(cfg, name)
29-
3033
af, err := wallet.Load(accKind)
3134
cobra.CheckErr(err)
3235

@@ -50,6 +53,19 @@ var createCmd = &cobra.Command{
5053
},
5154
}
5255

56+
func generateAccountName(cfg *config.Config) string {
57+
for i := 1; ; i++ {
58+
name := fmt.Sprintf("account_%d", i)
59+
if _, ok := cfg.Wallet.All[name]; ok {
60+
continue
61+
}
62+
if _, ok := cfg.AddressBook.All[name]; ok {
63+
continue
64+
}
65+
return name
66+
}
67+
}
68+
5369
func checkAccountExists(cfg *config.Config, name string) {
5470
if _, exists := cfg.Wallet.All[name]; exists {
5571
cobra.CheckErr(fmt.Errorf("account '%s' already exists in the wallet", name))

0 commit comments

Comments
 (0)