Address PR comments
This commit is contained in:
+38
-25
@@ -14,6 +14,7 @@ import (
|
||||
"github.com/cosmos/cosmos-sdk/client/core"
|
||||
)
|
||||
|
||||
// NewCoreContextFromViper - return a new context with parameters from the command line
|
||||
func NewCoreContextFromViper() core.CoreContext {
|
||||
nodeURI := viper.GetString(client.FlagNode)
|
||||
var rpc rpcclient.Client
|
||||
@@ -21,19 +22,11 @@ func NewCoreContextFromViper() core.CoreContext {
|
||||
rpc = rpcclient.NewHTTP(nodeURI, "/websocket")
|
||||
}
|
||||
chainID := viper.GetString(client.FlagChainID)
|
||||
// if chain ID is not specified manually, read chain ID from genesis file if present
|
||||
// if chain ID is not specified manually, read default chain ID
|
||||
if chainID == "" {
|
||||
cfg, err := tcmd.ParseConfig()
|
||||
if err == nil {
|
||||
genesisFile := cfg.GenesisFile()
|
||||
bz, err := ioutil.ReadFile(genesisFile)
|
||||
if err == nil {
|
||||
var doc tmtypes.GenesisDoc
|
||||
err = json.Unmarshal(bz, &doc)
|
||||
if err == nil {
|
||||
chainID = doc.ChainID
|
||||
}
|
||||
}
|
||||
def, err := defaultChainID()
|
||||
if err != nil {
|
||||
chainID = def
|
||||
}
|
||||
}
|
||||
return core.CoreContext{
|
||||
@@ -49,19 +42,39 @@ func NewCoreContextFromViper() core.CoreContext {
|
||||
}
|
||||
}
|
||||
|
||||
// Automatically set sequence number
|
||||
func AutoSequence(ctx core.CoreContext) (core.CoreContext, error) {
|
||||
if !viper.IsSet(client.FlagSequence) {
|
||||
from, err := ctx.GetFromAddress()
|
||||
if err != nil {
|
||||
return ctx, err
|
||||
}
|
||||
seq, err := ctx.NextSequence(from)
|
||||
if err != nil {
|
||||
return ctx, err
|
||||
}
|
||||
fmt.Printf("Defaulting to next sequence number: %d\n", seq)
|
||||
ctx = ctx.WithSequence(seq)
|
||||
// read chain ID from genesis file, if present
|
||||
func defaultChainID() (string, error) {
|
||||
cfg, err := tcmd.ParseConfig()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
genesisFile := cfg.GenesisFile()
|
||||
bz, err := ioutil.ReadFile(genesisFile)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
var doc tmtypes.GenesisDoc
|
||||
err = json.Unmarshal(bz, &doc)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return doc.ChainID, nil
|
||||
}
|
||||
|
||||
// EnsureSequence - automatically set sequence number if none provided
|
||||
func EnsureSequence(ctx core.CoreContext) (core.CoreContext, error) {
|
||||
if viper.IsSet(client.FlagSequence) {
|
||||
return ctx, nil
|
||||
}
|
||||
from, err := ctx.GetFromAddress()
|
||||
if err != nil {
|
||||
return ctx, err
|
||||
}
|
||||
seq, err := ctx.NextSequence(from)
|
||||
if err != nil {
|
||||
return ctx, err
|
||||
}
|
||||
fmt.Printf("Defaulting to next sequence number: %d\n", seq)
|
||||
ctx = ctx.WithSequence(seq)
|
||||
return ctx, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user