forked from TrueCloudLab/neoneo-go
cli: warn about bad VM state during invokefunction
This commit is contained in:
parent
097ef2a731
commit
659fb89beb
1 changed files with 12 additions and 0 deletions
|
@ -55,6 +55,10 @@ var (
|
||||||
Name: "out",
|
Name: "out",
|
||||||
Usage: "file to put JSON transaction to",
|
Usage: "file to put JSON transaction to",
|
||||||
}
|
}
|
||||||
|
forceFlag = cli.StringFlag{
|
||||||
|
Name: "force",
|
||||||
|
Usage: "force-push the transaction in case of bad VM state after test script invocation",
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -110,6 +114,7 @@ func NewCommands() []cli.Command {
|
||||||
addressFlag,
|
addressFlag,
|
||||||
gasFlag,
|
gasFlag,
|
||||||
outFlag,
|
outFlag,
|
||||||
|
forceFlag,
|
||||||
}
|
}
|
||||||
invokeFunctionFlags = append(invokeFunctionFlags, options.RPC...)
|
invokeFunctionFlags = append(invokeFunctionFlags, options.RPC...)
|
||||||
return []cli.Command{{
|
return []cli.Command{{
|
||||||
|
@ -487,6 +492,13 @@ func invokeInternal(ctx *cli.Context, signAndPush bool) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return cli.NewExitError(err, 1)
|
return cli.NewExitError(err, 1)
|
||||||
}
|
}
|
||||||
|
if signAndPush && resp.State != "HALT" {
|
||||||
|
errText := fmt.Sprintf("Warning: %s VM state returned from the RPC node: %s\n", resp.State, resp.FaultException)
|
||||||
|
if ctx.String("force") == "" {
|
||||||
|
return cli.NewExitError(errText+". Use --force flag to send the transaction anyway.", 1)
|
||||||
|
}
|
||||||
|
fmt.Fprintln(ctx.App.Writer, errText+". Sending transaction...")
|
||||||
|
}
|
||||||
if out := ctx.String("out"); out != "" {
|
if out := ctx.String("out"); out != "" {
|
||||||
script, err := hex.DecodeString(resp.Script)
|
script, err := hex.DecodeString(resp.Script)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
Loading…
Reference in a new issue