Skip to content

Commit b8269f2

Browse files
author
renlulu
authored
Merge pull request #28 from charlieysc/feature/generateAccounts
feat: enhanced generate accounts, issue #21
2 parents 0099047 + 97481e0 commit b8269f2

File tree

1 file changed

+19
-16
lines changed

1 file changed

+19
-16
lines changed

cmd/account/generate.go

+19-16
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,21 @@ package account
1818

1919
import (
2020
"bufio"
21+
"encoding/json"
2122
"fmt"
22-
"github.com/Zilliqa/gozilliqa-sdk/util"
23-
"github.com/spf13/cobra"
2423
"os"
2524
"zli/core"
25+
26+
"github.com/Zilliqa/gozilliqa-sdk/util"
27+
"github.com/spf13/cobra"
2628
)
2729

2830
var number int64
31+
var file string
2932

3033
func init() {
3134
generateCmd.Flags().Int64VarP(&number, "number", "n", 2, "the number of generated keys")
35+
generateCmd.Flags().StringVarP(&file, "file", "f", "generatedAccounts.json", "name of the intended output file")
3236
AccountCmd.AddCommand(generateCmd)
3337
}
3438

@@ -37,33 +41,32 @@ var generateCmd = &cobra.Command{
3741
Short: "Randomly generate some private keys",
3842
Long: "Randomly generate some private keys",
3943
Run: func(cmd *cobra.Command, args []string) {
40-
if number%2 != 0 {
41-
panic("number should be even")
42-
}
4344
fmt.Println("start to generate ", number, " accounts")
44-
f, err := os.Create("./testAccounts.txt")
45+
file, err := os.Create(file)
4546
if err != nil {
4647
panic(err)
4748
}
48-
defer f.Close()
49+
defer file.Close()
4950

5051
keys, err := core.GeneratePrivateKeys(number)
5152
if err != nil {
5253
panic(err)
5354
}
5455

55-
i := 0
56-
w := bufio.NewWriter(f)
57-
58-
for i+1 < len(keys) {
59-
k1 := keys[i]
60-
k2 := keys[i+1]
61-
line := fmt.Sprintf("%s %s", util.EncodeHex(k1[:]), util.EncodeHex(k2[:]))
62-
_, err := fmt.Fprintln(w, line)
56+
accounts := []core.Account{}
57+
for _, key := range keys {
58+
account, err := core.NewAccount(util.EncodeHex(key[:]))
6359
if err != nil {
6460
panic(err.Error())
6561
}
66-
i += 2
62+
accounts = append(accounts, *account)
63+
}
64+
65+
w := bufio.NewWriter(file)
66+
encoder := json.NewEncoder(w)
67+
encoder.SetIndent("", " ")
68+
if err := encoder.Encode(&accounts); err != nil {
69+
panic(err.Error())
6770
}
6871

6972
err = w.Flush()

0 commit comments

Comments
 (0)