IRISHUB-238: fix test_cli failure, move certifier creation from lcd/root.go to NewCLIContext

This commit is contained in:
HaoyangLiu 2018-08-31 11:29:55 +08:00
parent 9de7650b99
commit 6d2fb8edef
3 changed files with 27 additions and 19 deletions

View File

@ -9,8 +9,12 @@ import (
"github.com/spf13/viper"
"github.com/tendermint/tendermint/libs/cli"
tendermintLite "github.com/tendermint/tendermint/lite"
tmlite "github.com/tendermint/tendermint/lite"
tendermintLiteProxy "github.com/tendermint/tendermint/lite/proxy"
rpcclient "github.com/tendermint/tendermint/rpc/client"
"fmt"
)
const ctxAccStoreName = "acc"
@ -46,6 +50,22 @@ func NewCLIContext() CLIContext {
rpc = rpcclient.NewHTTP(nodeURI, "/websocket")
}
trustNode := viper.GetBool(client.FlagTrustNode)
var certifier tendermintLite.Certifier
if !trustNode {
chainID := viper.GetString(client.FlagChainID)
home := viper.GetString(cli.HomeFlag)
if chainID != "" && home != "" && nodeURI != "" {
var err error
certifier, err = tendermintLiteProxy.GetCertifier(chainID, home, nodeURI)
if err != nil {
panic(err)
}
} else {
panic(fmt.Errorf("can't create certifier for distrust mode, values from these options may be empty: --chain-id, --home or --node"))
}
}
return CLIContext{
Client: rpc,
NodeURI: nodeURI,
@ -54,11 +74,12 @@ func NewCLIContext() CLIContext {
Height: viper.GetInt64(client.FlagHeight),
Gas: viper.GetInt64(client.FlagGas),
GasAdjustment: viper.GetFloat64(client.FlagGasAdjustment),
TrustNode: viper.GetBool(client.FlagTrustNode),
TrustNode: trustNode,
UseLedger: viper.GetBool(client.FlagUseLedger),
Async: viper.GetBool(client.FlagAsync),
JSON: viper.GetBool(client.FlagJson),
PrintResponse: viper.GetBool(client.FlagPrintResponse),
Certifier: certifier,
}
}

View File

@ -58,6 +58,7 @@ func PostCommands(cmds ...*cobra.Command) []*cobra.Command {
c.Flags().Bool(FlagAsync, false, "broadcast transactions asynchronously")
c.Flags().Bool(FlagJson, false, "return output in json format")
c.Flags().Bool(FlagPrintResponse, true, "return tx response (only works with async = false)")
c.Flags().Bool(FlagTrustNode, true, "Don't verify proofs for query responses")
}
return cmds
}

View File

@ -4,11 +4,11 @@ import (
"net/http"
"os"
client "github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/context"
keys "github.com/cosmos/cosmos-sdk/client/keys"
rpc "github.com/cosmos/cosmos-sdk/client/rpc"
tx "github.com/cosmos/cosmos-sdk/client/tx"
"github.com/cosmos/cosmos-sdk/client/keys"
"github.com/cosmos/cosmos-sdk/client/rpc"
"github.com/cosmos/cosmos-sdk/client/tx"
"github.com/cosmos/cosmos-sdk/wire"
auth "github.com/cosmos/cosmos-sdk/x/auth/client/rest"
bank "github.com/cosmos/cosmos-sdk/x/bank/client/rest"
@ -19,11 +19,8 @@ import (
"github.com/gorilla/mux"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"github.com/tendermint/tendermint/libs/cli"
cmn "github.com/tendermint/tendermint/libs/common"
"github.com/tendermint/tendermint/libs/log"
tendermintLite "github.com/tendermint/tendermint/lite"
tendermintLiteProxy "github.com/tendermint/tendermint/lite/proxy"
tmserver "github.com/tendermint/tendermint/rpc/lib/server"
)
@ -84,17 +81,6 @@ func createHandler(cdc *wire.Codec) http.Handler {
cliCtx := context.NewCLIContext().WithCodec(cdc).WithLogger(os.Stdout)
chainID := viper.GetString(client.FlagChainID)
home := viper.GetString(cli.HomeFlag)
nodeURI := viper.GetString(client.FlagNode)
var certifier tendermintLite.Certifier
if chainID != "" && home != "" && nodeURI != "" {
certifier, err = tendermintLiteProxy.GetCertifier(chainID, home, nodeURI)
if err != nil {
panic(err)
}
cliCtx = cliCtx.WithCertifier(certifier)
}
// TODO: make more functional? aka r = keys.RegisterRoutes(r)
r.HandleFunc("/version", CLIVersionRequestHandler).Methods("GET")
r.HandleFunc("/node_version", NodeVersionRequestHandler(cliCtx)).Methods("GET")