tendermint/types/result.go

171 lines
4.3 KiB
Go
Raw Normal View History

package types
2018-05-23 21:13:43 -07:00
import cmn "github.com/tendermint/tmlibs/common"
// nondeterministic
type ResultException struct {
Error string `json:"error,omitempty"`
}
type ResultEcho struct {
Message string `json:"message,omitempty"`
}
type ResultFlush struct {
}
type ResultInfo struct {
Data string `json:"data,omitempty"`
Version string `json:"version,omitempty"`
LastBlockHeight int64 `json:"last_block_height,omitempty"`
LastBlockAppHash []byte `json:"last_block_app_hash,omitempty"`
}
func FromResultInfo(res ResultInfo) ResponseInfo {
return ResponseInfo(res)
}
type ResultSetOption struct {
Code uint32 `json:"code,omitempty"`
// bytes data = 2;
Log string `json:"log,omitempty"`
Info string `json:"info,omitempty"`
}
func FromResultSetOption(res ResultSetOption) ResponseSetOption {
return ResponseSetOption(res)
}
type ResultInitChain struct {
Validators []Validator `json:"validators"`
}
func FromResultInitChain(res ResultInitChain) ResponseInitChain {
2018-05-23 21:13:43 -07:00
vals := valsToPointers(res.Validators)
return ResponseInitChain{
Validators: vals,
}
}
type ResultQuery struct {
Code uint32 `json:"code,omitempty"`
// bytes data = 2; // use "value" instead.
Log string `json:"log,omitempty"`
Info string `json:"info,omitempty"`
Index int64 `json:"index,omitempty"`
Key []byte `json:"key,omitempty"`
Value []byte `json:"value,omitempty"`
Proof []byte `json:"proof,omitempty"`
Height int64 `json:"height,omitempty"`
}
func FromResultQuery(res ResultQuery) ResponseQuery {
return ResponseQuery(res)
}
type ResultBeginBlock struct {
2018-05-23 21:13:43 -07:00
Tags []cmn.KVPair `json:"tags,omitempty"`
}
func FromResultBeginBlock(res ResultBeginBlock) ResponseBeginBlock {
2018-05-23 21:13:43 -07:00
tags := tagsToPointers(res.Tags)
return ResponseBeginBlock{
Tags: tags,
}
}
type ResultCheckTx struct {
2018-05-23 21:13:43 -07:00
Code uint32 `json:"code,omitempty"`
Data []byte `json:"data,omitempty"`
Log string `json:"log,omitempty"`
Info string `json:"info,omitempty"`
GasWanted int64 `json:"gas_wanted,omitempty"`
GasUsed int64 `json:"gas_used,omitempty"`
Tags []cmn.KVPair `json:"tags,omitempty"`
Fee cmn.KI64Pair `json:"fee"`
}
func FromResultCheckTx(res ResultCheckTx) ResponseCheckTx {
2018-05-23 21:13:43 -07:00
tags := tagsToPointers(res.Tags)
return ResponseCheckTx{
Code: res.Code,
Data: res.Data,
Log: res.Log,
Info: res.Info,
GasWanted: res.GasWanted,
GasUsed: res.GasUsed,
Tags: tags,
Fee: &res.Fee,
}
}
type ResultDeliverTx struct {
2018-05-23 21:13:43 -07:00
Code uint32 `json:"code,omitempty"`
Data []byte `json:"data,omitempty"`
Log string `json:"log,omitempty"`
Info string `json:"info,omitempty"`
GasWanted int64 `json:"gas_wanted,omitempty"`
GasUsed int64 `json:"gas_used,omitempty"`
Tags []cmn.KVPair `json:"tags,omitempty"`
Fee cmn.KI64Pair `json:"fee"`
}
func FromResultDeliverTx(res ResultDeliverTx) ResponseDeliverTx {
2018-05-23 21:13:43 -07:00
tags := tagsToPointers(res.Tags)
return ResponseDeliverTx{
Code: res.Code,
Data: res.Data,
Log: res.Log,
Info: res.Info,
GasWanted: res.GasWanted,
GasUsed: res.GasUsed,
Tags: tags,
Fee: &res.Fee,
}
}
type ResultEndBlock struct {
ValidatorUpdates []Validator `json:"validator_updates"`
ConsensusParamUpdates *ConsensusParams `json:"consensus_param_updates,omitempty"`
2018-05-23 21:13:43 -07:00
Tags []cmn.KVPair `json:"tags,omitempty"`
}
func FromResultEndBlock(res ResultEndBlock) ResponseEndBlock {
2018-05-23 21:13:43 -07:00
tags := tagsToPointers(res.Tags)
vals := valsToPointers(res.ValidatorUpdates)
return ResponseEndBlock{
ValidatorUpdates: vals,
ConsensusParamUpdates: res.ConsensusParamUpdates,
Tags: tags,
}
}
type ResultCommit struct {
// reserve 1
Data []byte `json:"data,omitempty"`
}
func FromResultCommit(res ResultCommit) ResponseCommit {
return ResponseCommit(res)
}
2018-05-23 21:13:43 -07:00
//-------------------------------------------------------
func tagsToPointers(tags []cmn.KVPair) []*cmn.KVPair {
tagPtrs := make([]*cmn.KVPair, len(tags))
for i := 0; i < len(tags); i++ {
t := tags[i]
tagPtrs[i] = &t
}
return tagPtrs
}
func valsToPointers(vals []Validator) []*Validator {
valPtrs := make([]*Validator, len(vals))
for i := 0; i < len(vals); i++ {
v := vals[i]
valPtrs[i] = &v
}
return valPtrs
}