github.com/loomnetwork/gamechain@v0.0.0-20200406110549-36c47eb97a92/cli/cmd/get_contract_state.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 getContractStateCmdArgs struct {
    15  }
    16  
    17  var getContractStateCmd = &cobra.Command{
    18  	Use:   "get_contract_state",
    19  	Short: "get contract state",
    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  		var resp zb_calls.GetContractStateResponse
    28  		_, err := commonTxObjs.contract.StaticCall("GetContractState", &zb_calls.EmptyRequest{}, callerAddr, &resp)
    29  		if err != nil {
    30  			return err
    31  		}
    32  
    33  		switch strings.ToLower(rootCmdArgs.outputFormat) {
    34  		case "json":
    35  			err := battleground_utility.PrintProtoMessageAsJsonToStdout(resp.State)
    36  			if err != nil {
    37  				return err
    38  			}
    39  		default:
    40  			fmt.Printf("%+v\n", resp.State)
    41  		}
    42  
    43  		return nil
    44  	},
    45  }
    46  
    47  func init() {
    48  	rootCmd.AddCommand(getContractStateCmd)
    49  }