Skip to content

Commit bb9c8a8

Browse files
committed
use mnemonic in registrar cli
1 parent 528663d commit bb9c8a8

File tree

14 files changed

+252
-337
lines changed

14 files changed

+252
-337
lines changed

registrar-cli/cmd/account_create.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ var accountCreateCmd = &cobra.Command{
1212
Use: "create",
1313
Short: "create new account in node registrar",
1414
RunE: func(cobraCmd *cobra.Command, args []string) error {
15-
seed, err := cobraCmd.Flags().GetString("seed")
15+
mnemonic, err := cobraCmd.Flags().GetString("menmonic")
1616
if err != nil {
1717
return err
1818
}
@@ -32,10 +32,11 @@ var accountCreateCmd = &cobra.Command{
3232
return err
3333
}
3434

35-
account, err := cmd.CreaeteAccount(seed, network, relays, rmbEncKey)
35+
account, mnemonic, err := cmd.CreaeteAccount(network, relays, rmbEncKey, mnemonic)
3636
if err != nil {
3737
return err
3838
}
39+
log.Info().Str("mnemonic", mnemonic).Msg("new account is created with mnemonic")
3940

4041
log.Info().Uint64("twinID", account.TwinID).Msg("account is created successfully")
4142

@@ -45,7 +46,7 @@ var accountCreateCmd = &cobra.Command{
4546

4647
func init() {
4748
accountCmd.AddCommand(accountCreateCmd)
48-
accountCreateCmd.Flags().StringP("seed", "s", "", "account seed key")
49+
accountCreateCmd.Flags().StringP("menmonic", "m", "", "account menmonic")
4950
accountCreateCmd.Flags().StringP("network", "n", "", "network (dev, qa, test, main)")
5051
accountCreateCmd.Flags().StringArrayP("relays", "r", nil, "relays urls")
5152
accountCreateCmd.Flags().StringP("rmb-enc-key", "k", "", "rmb encryption key")

registrar-cli/cmd/account_update.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ var accountUpdateCmd = &cobra.Command{
1212
Use: "update",
1313
Short: "update account in node registrar",
1414
RunE: func(cobraCmd *cobra.Command, args []string) error {
15-
seed, err := cobraCmd.Flags().GetString("seed")
15+
seed, err := cobraCmd.Flags().GetString("menmonic")
1616
if err != nil {
1717
return err
1818
}
@@ -45,7 +45,7 @@ var accountUpdateCmd = &cobra.Command{
4545

4646
func init() {
4747
accountCmd.AddCommand(accountUpdateCmd)
48-
accountUpdateCmd.Flags().StringP("seed", "s", "", "account seed key")
48+
accountUpdateCmd.Flags().StringP("menmonic", "m", "", "account menmonic")
4949
accountUpdateCmd.Flags().StringP("network", "n", "", "network (dev, qa, test, main)")
5050
accountUpdateCmd.Flags().StringArrayP("relays", "r", nil, "relays urls")
5151
accountUpdateCmd.Flags().StringP("rmb-enc-key", "k", "", "rmb encryption key")

registrar-cli/cmd/farm_create.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ var farmCreateCmd = &cobra.Command{
1212
Use: "create",
1313
Short: "create new farm in node registrar",
1414
RunE: func(cobraCmd *cobra.Command, args []string) error {
15-
seed, err := cobraCmd.Flags().GetString("seed")
15+
mnemonic, err := cobraCmd.Flags().GetString("menmonic")
1616
if err != nil {
1717
return err
1818
}
@@ -27,12 +27,17 @@ var farmCreateCmd = &cobra.Command{
2727
return err
2828
}
2929

30+
stellarAddrss, err := cobraCmd.Flags().GetString("stellar-address")
31+
if err != nil {
32+
return err
33+
}
34+
3035
dedicated, err := cobraCmd.Flags().GetBool("dedicated")
3136
if err != nil {
3237
return err
3338
}
3439

35-
farmID, err := cmd.CreaeteFarm(seed, network, farmName, dedicated)
40+
farmID, err := cmd.CreaeteFarm(mnemonic, network, farmName, stellarAddrss, dedicated)
3641
if err != nil {
3742
return err
3843
}
@@ -45,8 +50,9 @@ var farmCreateCmd = &cobra.Command{
4550

4651
func init() {
4752
farmCmd.AddCommand(farmCreateCmd)
48-
farmCreateCmd.Flags().StringP("seed", "s", "", "account seed key")
53+
farmCreateCmd.Flags().StringP("menmonic", "m", "", "account menmonic")
4954
farmCreateCmd.Flags().StringP("network", "n", "", "network (dev, qa, test, main)")
5055
farmCreateCmd.Flags().StringP("farm-name", "f", "", "farm name")
56+
farmCreateCmd.Flags().StringP("stellar-address", "s", "", "stellar address")
5157
farmCreateCmd.Flags().BoolP("dedicated", "d", false, "is farm dedicated")
5258
}

registrar-cli/cmd/farm_update.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ var farmUpdateCmd = &cobra.Command{
1212
Use: "update",
1313
Short: "update farm in node registrar",
1414
RunE: func(cobraCmd *cobra.Command, args []string) error {
15-
seed, err := cobraCmd.Flags().GetString("seed")
15+
mnemonic, err := cobraCmd.Flags().GetString("menmonic")
1616
if err != nil {
1717
return err
1818
}
@@ -32,12 +32,17 @@ var farmUpdateCmd = &cobra.Command{
3232
return err
3333
}
3434

35+
stellarAddrss, err := cobraCmd.Flags().GetString("stellar-address")
36+
if err != nil {
37+
return err
38+
}
39+
3540
dedicated, err := cobraCmd.Flags().GetBool("dedicated")
3641
if err != nil {
3742
return err
3843
}
3944

40-
err = cmd.UpdateFarm(seed, network, farmID, farmName, dedicated)
45+
err = cmd.UpdateFarm(farmID, mnemonic, network, farmName, stellarAddrss, dedicated)
4146
if err != nil {
4247
return err
4348
}
@@ -50,9 +55,10 @@ var farmUpdateCmd = &cobra.Command{
5055

5156
func init() {
5257
farmCmd.AddCommand(farmUpdateCmd)
53-
farmUpdateCmd.Flags().StringP("seed", "s", "", "account seed key")
58+
farmUpdateCmd.Flags().StringP("menmonic", "m", "", "account menmonic")
5459
farmUpdateCmd.Flags().StringP("network", "n", "", "network (dev, qa, test, main)")
5560
farmUpdateCmd.Flags().Uint64P("farm-id", "i", 0, "farm id")
5661
farmUpdateCmd.Flags().String("farm-name", "", "new farm name")
62+
farmUpdateCmd.Flags().StringP("stellar-address", "s", "", "stellar address")
5763
farmUpdateCmd.Flags().BoolP("dedicated", "d", false, "farm is dedicated")
5864
}

registrar-cli/cmd/root.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,6 @@ import (
1111
"github.com/spf13/cobra"
1212
)
1313

14-
var urls = map[string]string{
15-
"dev": "https://registrar.dev4.grid.tf/v1",
16-
"qa": "https://registrar.qa4.grid.tf/v1",
17-
"test": "https://registrar.test4.grid.tf/v1",
18-
"main": "https://registrar.prod4.grid.tf/v1",
19-
}
20-
2114
// rootCmd represents the base command when called without any subcommands
2215
var rootCmd = &cobra.Command{
2316
Use: "registrar-cli",

registrar-cli/cmd/zos_version_update.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ var UpdateZosVersionCmd = &cobra.Command{
1212
Use: "update",
1313
Short: "update zos version in node registrar",
1414
RunE: func(cobraCmd *cobra.Command, args []string) error {
15-
seed, err := cobraCmd.Flags().GetString("seed")
15+
seed, err := cobraCmd.Flags().GetString("menmonic")
1616
if err != nil {
1717
return err
1818
}
@@ -45,7 +45,7 @@ var UpdateZosVersionCmd = &cobra.Command{
4545

4646
func init() {
4747
zosVersionCmd.AddCommand(UpdateZosVersionCmd)
48-
UpdateZosVersionCmd.Flags().StringP("seed", "s", "", "account seed key")
48+
UpdateZosVersionCmd.Flags().StringP("menmonic", "m", "", "account menmonic")
4949
UpdateZosVersionCmd.Flags().StringP("network", "n", "", "network (dev, qa, test, main)")
5050
UpdateZosVersionCmd.Flags().StringP("version", "v", "v0.0.0", "new zos version")
5151
UpdateZosVersionCmd.Flags().BoolP("safe-to-upgrade", "u", false, "safe to upgrade")

registrar-cli/internal/cmd/account.go

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
package cmd
2+
3+
import (
4+
"encoding/hex"
5+
"fmt"
6+
7+
"github.com/threefoldtech/tfgrid4-sdk-go/node-registrar/client"
8+
)
9+
10+
var urls = map[string]string{
11+
"dev": "https://registrar.dev4.grid.tf/v1",
12+
"qa": "https://registrar.qa4.grid.tf/v1",
13+
"test": "https://registrar.test4.grid.tf/v1",
14+
"main": "https://registrar.prod4.grid.tf/v1",
15+
}
16+
17+
func CreaeteAccount(network string, relays []string, rmbEncKey string, mnemonicOrSeed ...string) (account client.Account, mnemonic string, err error) {
18+
u, ok := urls[network]
19+
if !ok {
20+
return account, "", fmt.Errorf("invalid network %s", network)
21+
}
22+
23+
var cli client.RegistrarClient
24+
cli, err = client.NewRegistrarClient(u, mnemonicOrSeed...)
25+
if err != nil {
26+
return
27+
}
28+
29+
return cli.CreateAccount(relays, rmbEncKey)
30+
}
31+
32+
func GetAccount(network string, twinID uint64, pk string) (account client.Account, err error) {
33+
u, ok := urls[network]
34+
if !ok {
35+
return account, fmt.Errorf("invalid network %s", network)
36+
}
37+
38+
publicKey, err := hex.DecodeString(pk)
39+
if err != nil {
40+
return
41+
}
42+
43+
cli, err := client.NewRegistrarClient(u)
44+
if err != nil {
45+
return
46+
}
47+
48+
if twinID != 0 {
49+
return cli.GetAccount(twinID)
50+
} else if len(publicKey) != 0 {
51+
return cli.GetAccountByPK(publicKey)
52+
}
53+
54+
return account, fmt.Errorf("you need to provide either twin id or public key to load an account")
55+
}
56+
57+
func UpdateAccount(mnemonic string, network string, relays []string, rmbEncKey string) (err error) {
58+
u, ok := urls[network]
59+
if !ok {
60+
return fmt.Errorf("invalid network %s", network)
61+
}
62+
63+
if len(mnemonic) == 0 {
64+
return fmt.Errorf("can not initialize registrar client with no mnemonic")
65+
}
66+
67+
cli, err := client.NewRegistrarClient(u, mnemonic)
68+
if err != nil {
69+
return err
70+
}
71+
72+
var opts []client.UpdateAccountOpts
73+
if len(relays) > 0 {
74+
opts = append(opts, client.UpdateAccountWithRelays(relays))
75+
}
76+
77+
if len(rmbEncKey) > 0 {
78+
opts = append(opts, client.UpdateAccountWithRMBEncKey(rmbEncKey))
79+
}
80+
81+
return cli.UpdateAccount(opts...)
82+
}

registrar-cli/internal/cmd/create.go

Lines changed: 0 additions & 74 deletions
This file was deleted.

registrar-cli/internal/cmd/farm.go

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package cmd
2+
3+
import (
4+
"fmt"
5+
6+
"github.com/threefoldtech/tfgrid4-sdk-go/node-registrar/client"
7+
)
8+
9+
func CreaeteFarm(mnemonic, network, farmName, stellarAddress string, dedicated bool) (farmID uint64, err error) {
10+
u, ok := urls[network]
11+
if !ok {
12+
return farmID, fmt.Errorf("invalid network %s", network)
13+
}
14+
15+
if len(mnemonic) == 0 {
16+
return farmID, fmt.Errorf("can not initialize registrar client with no seed")
17+
}
18+
19+
cli, err := client.NewRegistrarClient(u, mnemonic)
20+
if err != nil {
21+
return
22+
}
23+
24+
return cli.CreateFarm(farmName, stellarAddress, dedicated)
25+
}
26+
27+
func GetFarm(network string, farmID uint64) (farm client.Farm, err error) {
28+
u, ok := urls[network]
29+
if !ok {
30+
return farm, fmt.Errorf("invalid network %s", network)
31+
}
32+
33+
cli, err := client.NewRegistrarClient(u)
34+
if err != nil {
35+
return
36+
}
37+
38+
return cli.GetFarm(farmID)
39+
}
40+
41+
func UpdateFarm(farmID uint64, mnemonic, network, farmName, stellarAddress string, dedicated bool) (err error) {
42+
u, ok := urls[network]
43+
if !ok {
44+
return fmt.Errorf("invalid network %s", network)
45+
}
46+
47+
if len(mnemonic) == 0 {
48+
return fmt.Errorf("can not initialize registrar client with no mnemonic")
49+
}
50+
51+
cli, err := client.NewRegistrarClient(u, mnemonic)
52+
if err != nil {
53+
return err
54+
}
55+
56+
var opts []client.UpdateFarmOpts
57+
if len(farmName) > 0 {
58+
opts = append(opts, client.UpdateFarmWithName(farmName))
59+
}
60+
61+
if dedicated {
62+
opts = append(opts, client.UpdateFarmWithDedicated())
63+
}
64+
if len(stellarAddress) != 0 {
65+
// opts = append(opts, client.Updfarm)
66+
}
67+
68+
return cli.UpdateFarm(farmID, opts...)
69+
}

0 commit comments

Comments
 (0)