Skip to content

Commit

Permalink
fix(account): Move node-unregister from entity to account
Browse files Browse the repository at this point in the history
  • Loading branch information
matevz committed May 18, 2023
1 parent 3aecfba commit a239b94
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 46 deletions.
1 change: 1 addition & 0 deletions cmd/account/account.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ func init() {
Cmd.AddCommand(depositCmd)
Cmd.AddCommand(entityCmd)
Cmd.AddCommand(fromPublicKeyCmd)
Cmd.AddCommand(nodeUnfreezeCmd)
Cmd.AddCommand(showCmd)
Cmd.AddCommand(transferCmd)
Cmd.AddCommand(undelegateCmd)
Expand Down
46 changes: 0 additions & 46 deletions cmd/account/entity.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import (
"fmt"
"os"

"github.com/oasisprotocol/oasis-core/go/common/crypto/signature"
"github.com/spf13/cobra"

"github.com/oasisprotocol/oasis-core/go/common/entity"
Expand Down Expand Up @@ -115,47 +114,6 @@ var (
common.BroadcastOrExportTransaction(ctx, npa.ParaTime, conn, sigTx, nil, nil)
},
}

entityNodeUnfreezeCmd = &cobra.Command{
Use: "node-unfreeze <node-id>",
Short: "Unfreeze a frozen node",
Args: cobra.ExactArgs(1),
Run: func(cmd *cobra.Command, args []string) {
cfg := cliConfig.Global()
npa := common.GetNPASelection(cfg)
txCfg := common.GetTransactionConfig()
rawNodeID := args[0]

if npa.Account == nil {
cobra.CheckErr("no accounts configured in your wallet")
}

// When not in offline mode, connect to the given network endpoint.
ctx := context.Background()
var conn connection.Connection
if !txCfg.Offline {
var err error
conn, err = connection.Connect(ctx, npa.Network)
cobra.CheckErr(err)
}

// Parse node identifier.
var nodeID signature.PublicKey
err := nodeID.UnmarshalText([]byte(rawNodeID))
cobra.CheckErr(err)

// Prepare transaction.
tx := registry.NewUnfreezeNodeTx(0, nil, &registry.UnfreezeNode{
NodeID: nodeID,
})

acc := common.LoadAccount(cfg, npa.AccountName)
sigTx, err := common.SignConsensusTransaction(ctx, npa, acc, conn, tx)
cobra.CheckErr(err)

common.BroadcastOrExportTransaction(ctx, npa.ParaTime, conn, sigTx, nil, nil)
},
}
)

func init() {
Expand All @@ -165,10 +123,6 @@ func init() {
entityDeregisterCmd.Flags().AddFlagSet(common.SelectorNAFlags)
entityDeregisterCmd.Flags().AddFlagSet(common.TransactionFlags)

entityNodeUnfreezeCmd.Flags().AddFlagSet(common.SelectorNAFlags)
entityNodeUnfreezeCmd.Flags().AddFlagSet(common.TransactionFlags)

entityCmd.AddCommand(entityRegisterCmd)
entityCmd.AddCommand(entityDeregisterCmd)
entityCmd.AddCommand(entityNodeUnfreezeCmd)
}
60 changes: 60 additions & 0 deletions cmd/account/node_unfreeze.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package account

import (
"context"

"github.com/spf13/cobra"

"github.com/oasisprotocol/oasis-core/go/common/crypto/signature"
registry "github.com/oasisprotocol/oasis-core/go/registry/api"
"github.com/oasisprotocol/oasis-sdk/client-sdk/go/connection"

"github.com/oasisprotocol/cli/cmd/common"
cliConfig "github.com/oasisprotocol/cli/config"
)

var nodeUnfreezeCmd = &cobra.Command{
Use: "node-unfreeze <node-id>",
Short: "Unfreeze a frozen validator node",
Args: cobra.ExactArgs(1),
Run: func(cmd *cobra.Command, args []string) {
cfg := cliConfig.Global()
npa := common.GetNPASelection(cfg)
txCfg := common.GetTransactionConfig()
rawNodeID := args[0]

if npa.Account == nil {
cobra.CheckErr("no accounts configured in your wallet")
}

// When not in offline mode, connect to the given network endpoint.
ctx := context.Background()
var conn connection.Connection
if !txCfg.Offline {
var err error
conn, err = connection.Connect(ctx, npa.Network)
cobra.CheckErr(err)
}

// Parse node identifier.
var nodeID signature.PublicKey
err := nodeID.UnmarshalText([]byte(rawNodeID))
cobra.CheckErr(err)

// Prepare transaction.
tx := registry.NewUnfreezeNodeTx(0, nil, &registry.UnfreezeNode{
NodeID: nodeID,
})

acc := common.LoadAccount(cfg, npa.AccountName)
sigTx, err := common.SignConsensusTransaction(ctx, npa, acc, conn, tx)
cobra.CheckErr(err)

common.BroadcastOrExportTransaction(ctx, npa.ParaTime, conn, sigTx, nil, nil)
},
}

func init() {
nodeUnfreezeCmd.Flags().AddFlagSet(common.SelectorNAFlags)
nodeUnfreezeCmd.Flags().AddFlagSet(common.TransactionFlags)
}

0 comments on commit a239b94

Please sign in to comment.