github.com/loomnetwork/gamechain@v0.0.0-20200406110549-36c47eb97a92/cli/cmd/list_overlord_library.go (about)

     1  package cmd
     2  
     3  import (
     4  	"fmt"
     5  	"github.com/loomnetwork/gamechain/tools/battleground_utility"
     6  	"github.com/loomnetwork/gamechain/types/zb/zb_calls"
     7  	"strings"
     8  
     9  	"github.com/loomnetwork/go-loom"
    10  	"github.com/loomnetwork/go-loom/auth"
    11  	"github.com/spf13/cobra"
    12  )
    13  
    14  var listOverlordsLibraryCmdArgs struct {
    15  	version string
    16  }
    17  
    18  var listOverlordsLibraryCmd = &cobra.Command{
    19  	Use:   "list_overlord_library",
    20  	Short: "list overlord library",
    21  	RunE: func(cmd *cobra.Command, args []string) error {
    22  		signer := auth.NewEd25519Signer(commonTxObjs.privateKey)
    23  		callerAddr := loom.Address{
    24  			ChainID: commonTxObjs.rpcClient.GetChainID(),
    25  			Local:   loom.LocalAddressFromPublicKey(signer.PublicKey()),
    26  		}
    27  
    28  		req := zb_calls.ListOverlordLibraryRequest{
    29  			Version: listOverlordsLibraryCmdArgs.version,
    30  		}
    31  		result := zb_calls.ListOverlordLibraryResponse{}
    32  
    33  		_, err := commonTxObjs.contract.StaticCall("ListOverlordLibrary", &req, callerAddr, &result)
    34  		if err != nil {
    35  			return err
    36  		}
    37  
    38  		switch strings.ToLower(rootCmdArgs.outputFormat) {
    39  		case "json":
    40  			return battleground_utility.PrintProtoMessageAsJsonToStdout(&result)
    41  		default:
    42  			for _, overlordInfo := range result.Overlords {
    43  				fmt.Printf("overlord_id: %d\n", overlordInfo.Id)
    44  				for _, skill := range overlordInfo.Skills {
    45  					fmt.Printf("skill title: %s\n", skill.Title)
    46  				}
    47  			}
    48  		}
    49  
    50  		return nil
    51  	},
    52  }
    53  
    54  func init() {
    55  	rootCmd.AddCommand(listOverlordsLibraryCmd)
    56  
    57  	listOverlordsLibraryCmd.Flags().StringVarP(&listOverlordsLibraryCmdArgs.version, "version", "v", "v1", "Version")
    58  
    59  	_ = listOverlordsLibraryCmd.MarkFlagRequired("version")
    60  }