Add wire expression support

This commit is contained in:
Jae Kwon 2016-03-22 15:18:03 -07:00
parent 3d2d8c7d6a
commit 5a3975d54a
2 changed files with 21 additions and 31 deletions

View File

@ -2,7 +2,6 @@ package main
import ( import (
"bufio" "bufio"
"encoding/hex"
"errors" "errors"
"fmt" "fmt"
"io" "io"
@ -12,6 +11,7 @@ import (
"github.com/codegangsta/cli" "github.com/codegangsta/cli"
. "github.com/tendermint/go-common" . "github.com/tendermint/go-common"
"github.com/tendermint/go-wire/expr"
"github.com/tendermint/tmsp/types" "github.com/tendermint/tmsp/types"
) )
@ -199,18 +199,14 @@ func cmdAppendTx(c *cli.Context) {
fmt.Println("append_tx takes 1 argument") fmt.Println("append_tx takes 1 argument")
return return
} }
txString := args[0] txExprString := c.Args()[0]
tx := []byte(txString) txBytes, err := expr.Compile(txExprString)
if len(txString) > 2 && strings.HasPrefix(txString, "0x") { if err != nil {
var err error fmt.Println(err.Error())
tx, err = hex.DecodeString(txString[2:]) return
if err != nil {
fmt.Println(err.Error())
return
}
} }
res, err := makeRequest(conn, types.RequestAppendTx(tx)) res, err := makeRequest(conn, types.RequestAppendTx(txBytes))
if err != nil { if err != nil {
fmt.Println(err.Error()) fmt.Println(err.Error())
return return
@ -225,18 +221,14 @@ func cmdCheckTx(c *cli.Context) {
fmt.Println("check_tx takes 1 argument") fmt.Println("check_tx takes 1 argument")
return return
} }
txString := args[0] txExprString := c.Args()[0]
tx := []byte(txString) txBytes, err := expr.Compile(txExprString)
if len(txString) > 2 && strings.HasPrefix(txString, "0x") { if err != nil {
var err error fmt.Println(err.Error())
tx, err = hex.DecodeString(txString[2:]) return
if err != nil {
fmt.Println(err.Error())
return
}
} }
res, err := makeRequest(conn, types.RequestCheckTx(tx)) res, err := makeRequest(conn, types.RequestCheckTx(txBytes))
if err != nil { if err != nil {
fmt.Println(err.Error()) fmt.Println(err.Error())
return return
@ -261,18 +253,14 @@ func cmdQuery(c *cli.Context) {
fmt.Println("query takes 1 argument") fmt.Println("query takes 1 argument")
return return
} }
queryString := args[0] queryExprString := args[0]
query := []byte(queryString) queryBytes, err := expr.Compile(queryExprString)
if len(queryString) > 2 && strings.HasPrefix(queryString, "0x") { if err != nil {
var err error fmt.Println(err.Error())
query, err = hex.DecodeString(queryString[2:]) return
if err != nil {
fmt.Println(err.Error())
return
}
} }
res, err := makeRequest(conn, types.RequestQuery(query)) res, err := makeRequest(conn, types.RequestQuery(queryBytes))
if err != nil { if err != nil {
fmt.Println(err.Error()) fmt.Println(err.Error())
return return

View File

@ -4,6 +4,7 @@ import (
"fmt" "fmt"
) )
// CONTRACT: a zero Result is OK.
type Result struct { type Result struct {
Code CodeType Code CodeType
Data []byte Data []byte
@ -60,6 +61,7 @@ func (res Result) SetData(data []byte) Result {
//---------------------------------------- //----------------------------------------
// NOTE: if data == nil and log == "", same as zero Result.
func NewResultOK(data []byte, log string) Result { func NewResultOK(data []byte, log string) Result {
return Result{ return Result{
Code: CodeType_OK, Code: CodeType_OK,