DeliverTxSync/CheckTxSync/CommitSync now return error as well

This commit is contained in:
Anton Kaliaev
2017-11-22 17:34:00 -06:00
parent 01252e8cc8
commit f01f2bbf3a
8 changed files with 66 additions and 36 deletions
+3 -3
View File
@@ -27,10 +27,10 @@ type Client interface {
EchoSync(msg string) (*types.ResponseEcho, error)
InfoSync(types.RequestInfo) (*types.ResponseInfo, error)
SetOptionSync(key string, value string) (log string, err error)
DeliverTxSync(tx []byte) *types.ResponseDeliverTx
CheckTxSync(tx []byte) *types.ResponseCheckTx
DeliverTxSync(tx []byte) (*types.ResponseDeliverTx, error)
CheckTxSync(tx []byte) (*types.ResponseCheckTx, error)
QuerySync(types.RequestQuery) (*types.ResponseQuery, error)
CommitSync() *types.ResponseCommit
CommitSync() (*types.ResponseCommit, error)
InitChainAsync(types.RequestInitChain) *ReqRes
BeginBlockAsync(types.RequestBeginBlock) *ReqRes
+10 -9
View File
@@ -6,6 +6,7 @@ import (
"sync"
"time"
"github.com/pkg/errors"
context "golang.org/x/net/context"
grpc "google.golang.org/grpc"
@@ -267,20 +268,20 @@ func (cli *grpcClient) SetOptionSync(key string, value string) (log string, err
return reqres.Response.GetSetOption().Log, nil
}
func (cli *grpcClient) DeliverTxSync(tx []byte) *types.ResponseDeliverTx {
func (cli *grpcClient) DeliverTxSync(tx []byte) (*types.ResponseDeliverTx, error) {
reqres := cli.DeliverTxAsync(tx)
if err := cli.Error(); err != nil {
return &types.ResponseDeliverTx{Code: types.CodeType_InternalError, Log: err.Error()}
return nil, errors.Wrap(err, types.HumanCode(types.CodeType_InternalError))
}
return reqres.Response.GetDeliverTx()
return reqres.Response.GetDeliverTx(), nil
}
func (cli *grpcClient) CheckTxSync(tx []byte) *types.ResponseCheckTx {
func (cli *grpcClient) CheckTxSync(tx []byte) (*types.ResponseCheckTx, error) {
reqres := cli.CheckTxAsync(tx)
if err := cli.Error(); err != nil {
return &types.ResponseCheckTx{Code: types.CodeType_InternalError, Log: err.Error()}
return nil, errors.Wrap(err, types.HumanCode(types.CodeType_InternalError))
}
return reqres.Response.GetCheckTx()
return reqres.Response.GetCheckTx(), nil
}
func (cli *grpcClient) QuerySync(req types.RequestQuery) (*types.ResponseQuery, error) {
@@ -288,12 +289,12 @@ func (cli *grpcClient) QuerySync(req types.RequestQuery) (*types.ResponseQuery,
return reqres.Response.GetQuery(), cli.Error()
}
func (cli *grpcClient) CommitSync() *types.ResponseCommit {
func (cli *grpcClient) CommitSync() (*types.ResponseCommit, error) {
reqres := cli.CommitAsync()
if err := cli.Error(); err != nil {
return &types.ResponseCommit{Code: types.CodeType_InternalError, Log: err.Error()}
return nil, errors.Wrap(err, types.HumanCode(types.CodeType_InternalError))
}
return reqres.Response.GetCommit()
return reqres.Response.GetCommit(), nil
}
func (cli *grpcClient) InitChainSync(params types.RequestInitChain) error {
+6 -6
View File
@@ -166,18 +166,18 @@ func (app *localClient) SetOptionSync(key string, value string) (log string, err
return log, nil
}
func (app *localClient) DeliverTxSync(tx []byte) *types.ResponseDeliverTx {
func (app *localClient) DeliverTxSync(tx []byte) (*types.ResponseDeliverTx, error) {
app.mtx.Lock()
res := app.Application.DeliverTx(tx)
app.mtx.Unlock()
return &res
return &res, nil
}
func (app *localClient) CheckTxSync(tx []byte) *types.ResponseCheckTx {
func (app *localClient) CheckTxSync(tx []byte) (*types.ResponseCheckTx, error) {
app.mtx.Lock()
res := app.Application.CheckTx(tx)
app.mtx.Unlock()
return &res
return &res, nil
}
func (app *localClient) QuerySync(req types.RequestQuery) (*types.ResponseQuery, error) {
@@ -187,11 +187,11 @@ func (app *localClient) QuerySync(req types.RequestQuery) (*types.ResponseQuery,
return &res, nil
}
func (app *localClient) CommitSync() *types.ResponseCommit {
func (app *localClient) CommitSync() (*types.ResponseCommit, error) {
app.mtx.Lock()
res := app.Application.Commit()
app.mtx.Unlock()
return &res
return &res, nil
}
func (app *localClient) InitChainSync(params types.RequestInitChain) error {
+10 -10
View File
@@ -3,13 +3,13 @@ package abcicli
import (
"bufio"
"container/list"
"errors"
"fmt"
"net"
"reflect"
"sync"
"time"
"github.com/pkg/errors"
"github.com/tendermint/abci/types"
cmn "github.com/tendermint/tmlibs/common"
)
@@ -303,22 +303,22 @@ func (cli *socketClient) SetOptionSync(key string, value string) (log string, er
return reqres.Response.GetSetOption().Log, nil
}
func (cli *socketClient) DeliverTxSync(tx []byte) *types.ResponseDeliverTx {
func (cli *socketClient) DeliverTxSync(tx []byte) (*types.ResponseDeliverTx, error) {
reqres := cli.queueRequest(types.ToRequestDeliverTx(tx))
cli.FlushSync()
if err := cli.Error(); err != nil {
return &types.ResponseDeliverTx{Code: types.CodeType_InternalError, Log: err.Error()}
return nil, errors.Wrap(err, types.HumanCode(types.CodeType_InternalError))
}
return reqres.Response.GetDeliverTx()
return reqres.Response.GetDeliverTx(), nil
}
func (cli *socketClient) CheckTxSync(tx []byte) *types.ResponseCheckTx {
func (cli *socketClient) CheckTxSync(tx []byte) (*types.ResponseCheckTx, error) {
reqres := cli.queueRequest(types.ToRequestCheckTx(tx))
cli.FlushSync()
if err := cli.Error(); err != nil {
return &types.ResponseCheckTx{Code: types.CodeType_InternalError, Log: err.Error()}
return nil, errors.Wrap(err, types.HumanCode(types.CodeType_InternalError))
}
return reqres.Response.GetCheckTx()
return reqres.Response.GetCheckTx(), nil
}
func (cli *socketClient) QuerySync(req types.RequestQuery) (*types.ResponseQuery, error) {
@@ -327,13 +327,13 @@ func (cli *socketClient) QuerySync(req types.RequestQuery) (*types.ResponseQuery
return reqres.Response.GetQuery(), cli.Error()
}
func (cli *socketClient) CommitSync() *types.ResponseCommit {
func (cli *socketClient) CommitSync() (*types.ResponseCommit, error) {
reqres := cli.queueRequest(types.ToRequestCommit())
cli.FlushSync()
if err := cli.Error(); err != nil {
return &types.ResponseCommit{Code: types.CodeType_InternalError, Log: err.Error()}
return nil, errors.Wrap(err, types.HumanCode(types.CodeType_InternalError))
}
return reqres.Response.GetCommit()
return reqres.Response.GetCommit(), nil
}
func (cli *socketClient) InitChainSync(params types.RequestInitChain) error {