35 lines
970 B
Go
35 lines
970 B
Go
package txs
|
|
|
|
import (
|
|
"github.com/pkg/errors"
|
|
wire "github.com/tendermint/go-wire"
|
|
"github.com/tendermint/light-client/proofs"
|
|
ctypes "github.com/tendermint/tendermint/rpc/core/types"
|
|
|
|
"github.com/tendermint/basecoin"
|
|
)
|
|
|
|
// BaseTxPresenter this decodes all basecoin tx
|
|
type BaseTxPresenter struct {
|
|
proofs.RawPresenter // this handles MakeKey as hex bytes
|
|
}
|
|
|
|
// ParseData - unmarshal raw bytes to a basecoin tx
|
|
func (BaseTxPresenter) ParseData(raw []byte) (interface{}, error) {
|
|
var tx basecoin.Tx
|
|
err := wire.ReadBinaryBytes(raw, &tx)
|
|
return tx, err
|
|
}
|
|
|
|
// ValidateResult returns an appropriate error if the server rejected the
|
|
// tx in CheckTx or DeliverTx
|
|
func ValidateResult(res *ctypes.ResultBroadcastTxCommit) error {
|
|
if res.CheckTx.IsErr() {
|
|
return errors.Errorf("CheckTx: (%d): %s", res.CheckTx.Code, res.CheckTx.Log)
|
|
}
|
|
if res.DeliverTx.IsErr() {
|
|
return errors.Errorf("DeliverTx: (%d): %s", res.DeliverTx.Code, res.DeliverTx.Log)
|
|
}
|
|
return nil
|
|
}
|