feat: add --grpc client option (#14051)
* feat: add --grpc client option * updates * default to TLS credentials * add min version because of gosec lint Co-authored-by: Marko <marbar3778@yahoo.com>
This commit is contained in:
parent
6188f6e798
commit
7d0a8dc714
@ -1,6 +1,7 @@
|
||||
package client
|
||||
|
||||
import (
|
||||
"crypto/tls"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
@ -8,6 +9,9 @@ import (
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/pflag"
|
||||
"github.com/tendermint/tendermint/libs/cli"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/credentials"
|
||||
"google.golang.org/grpc/credentials/insecure"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/client/flags"
|
||||
"github.com/cosmos/cosmos-sdk/crypto/keyring"
|
||||
@ -147,6 +151,28 @@ func ReadPersistentCommandFlags(clientCtx Context, flagSet *pflag.FlagSet) (Cont
|
||||
}
|
||||
}
|
||||
|
||||
if clientCtx.GRPCClient == nil || flagSet.Changed(flags.FlagGRPC) {
|
||||
grpcURI, _ := flagSet.GetString(flags.FlagGRPC)
|
||||
if grpcURI != "" {
|
||||
var dialOpts []grpc.DialOption
|
||||
|
||||
useInsecure, _ := flagSet.GetBool(flags.FlagGRPCInsecure)
|
||||
if useInsecure {
|
||||
dialOpts = append(dialOpts, grpc.WithTransportCredentials(insecure.NewCredentials()))
|
||||
} else {
|
||||
dialOpts = append(dialOpts, grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{
|
||||
MinVersion: tls.VersionTLS12,
|
||||
})))
|
||||
}
|
||||
|
||||
grpcClient, err := grpc.Dial(grpcURI, dialOpts...)
|
||||
if err != nil {
|
||||
return Context{}, err
|
||||
}
|
||||
clientCtx = clientCtx.WithGRPCClient(grpcClient)
|
||||
}
|
||||
}
|
||||
|
||||
return clientCtx, nil
|
||||
}
|
||||
|
||||
|
||||
@ -45,6 +45,8 @@ const (
|
||||
FlagUseLedger = "ledger"
|
||||
FlagChainID = "chain-id"
|
||||
FlagNode = "node"
|
||||
FlagGRPC = "grpc"
|
||||
FlagGRPCInsecure = "grpc-insecure"
|
||||
FlagHeight = "height"
|
||||
FlagGasAdjustment = "gas-adjustment"
|
||||
FlagFrom = "from"
|
||||
@ -92,6 +94,8 @@ var LineBreak = &cobra.Command{Run: func(*cobra.Command, []string) {}}
|
||||
// AddQueryFlagsToCmd adds common flags to a module query command.
|
||||
func AddQueryFlagsToCmd(cmd *cobra.Command) {
|
||||
cmd.Flags().String(FlagNode, "tcp://localhost:26657", "<host>:<port> to Tendermint RPC interface for this chain")
|
||||
cmd.Flags().String(FlagGRPC, "", "the gRPC endpoint to use for this chain")
|
||||
cmd.Flags().Bool(FlagGRPCInsecure, false, "allow gRPC over insecure channels, if not TLS the server must use TLS")
|
||||
cmd.Flags().Int64(FlagHeight, 0, "Use a specific height to query state at (this can error if the node is pruning state)")
|
||||
cmd.Flags().StringP(FlagOutput, "o", "text", "Output format (text|json)")
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user