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

     1  package cmd
     2  
     3  import (
     4  	"github.com/loomnetwork/gamechain/tools/battleground_utility"
     5  	"github.com/loomnetwork/gamechain/types/zb/zb_calls"
     6  	"github.com/loomnetwork/go-loom"
     7  	"os"
     8  
     9  	"github.com/loomnetwork/go-loom/auth"
    10  	"github.com/spf13/cobra"
    11  )
    12  
    13  var getAIDecksCmdArgs struct {
    14  	version string
    15  }
    16  
    17  var getAIDecksCmd = &cobra.Command{
    18  	Use:   "get_ai_decks",
    19  	Short: "get AI decks",
    20  	RunE: func(cmd *cobra.Command, args []string) error {
    21  		signer := auth.NewEd25519Signer(commonTxObjs.privateKey)
    22  		callerAddr := loom.Address{
    23  			ChainID: commonTxObjs.rpcClient.GetChainID(),
    24  			Local:   loom.LocalAddressFromPublicKey(signer.PublicKey()),
    25  		}
    26  
    27  		req := &zb_calls.GetAIDecksRequest{
    28  			Version: getAIDecksCmdArgs.version,
    29  		}
    30  		var result zb_calls.GetAIDecksResponse
    31  		_, err := commonTxObjs.contract.StaticCall("GetAIDecks", req, callerAddr, &result)
    32  		if err != nil {
    33  			return err
    34  		}
    35  
    36  		err = battleground_utility.PrintProtoMessageAsJson(os.Stdout, &result)
    37  		if err != nil {
    38  			return err
    39  		}
    40  
    41  		return nil
    42  	},
    43  }
    44  
    45  func init() {
    46  	rootCmd.AddCommand(getAIDecksCmd)
    47  
    48  	getAIDecksCmd.Flags().StringVarP(&getAIDecksCmdArgs.version, "version", "v", "v1", "version")
    49  
    50  	_ = getAIDecksCmd.MarkFlagRequired("version")
    51  }