mirror of
https://github.com/fluencelabs/tendermint
synced 2025-04-24 22:32:15 +00:00
* Remove omitempty from *pb.go - remove omitempty from *pb.go files - added command to makefile for everytime `make protoc_all` is run - open question: - Do we want to further remove omitempty from other places - https://github.com/tendermint/tendermint/blob/master/rpc/lib/types/types.go#L151 - and other places ref #3882 Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> * bring back omitempty to *pb.go * Update types/tx.go * custom marshlers * undo benchmark `omitepmty` * golangci lint fix * cleanup comments * changelog_pending entry
120 lines
2.9 KiB
Go
120 lines
2.9 KiB
Go
package types
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
|
|
"github.com/gogo/protobuf/jsonpb"
|
|
)
|
|
|
|
const (
|
|
CodeTypeOK uint32 = 0
|
|
)
|
|
|
|
// IsOK returns true if Code is OK.
|
|
func (r ResponseCheckTx) IsOK() bool {
|
|
return r.Code == CodeTypeOK
|
|
}
|
|
|
|
// IsErr returns true if Code is something other than OK.
|
|
func (r ResponseCheckTx) IsErr() bool {
|
|
return r.Code != CodeTypeOK
|
|
}
|
|
|
|
// IsOK returns true if Code is OK.
|
|
func (r ResponseDeliverTx) IsOK() bool {
|
|
return r.Code == CodeTypeOK
|
|
}
|
|
|
|
// IsErr returns true if Code is something other than OK.
|
|
func (r ResponseDeliverTx) IsErr() bool {
|
|
return r.Code != CodeTypeOK
|
|
}
|
|
|
|
// IsOK returns true if Code is OK.
|
|
func (r ResponseQuery) IsOK() bool {
|
|
return r.Code == CodeTypeOK
|
|
}
|
|
|
|
// IsErr returns true if Code is something other than OK.
|
|
func (r ResponseQuery) IsErr() bool {
|
|
return r.Code != CodeTypeOK
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
// override JSON marshalling so we emit defaults (ie. disable omitempty)
|
|
|
|
var (
|
|
jsonpbMarshaller = jsonpb.Marshaler{
|
|
EnumsAsInts: true,
|
|
EmitDefaults: true,
|
|
}
|
|
jsonpbUnmarshaller = jsonpb.Unmarshaler{}
|
|
)
|
|
|
|
func (r *ResponseSetOption) MarshalJSON() ([]byte, error) {
|
|
s, err := jsonpbMarshaller.MarshalToString(r)
|
|
return []byte(s), err
|
|
}
|
|
|
|
func (r *ResponseSetOption) UnmarshalJSON(b []byte) error {
|
|
reader := bytes.NewBuffer(b)
|
|
return jsonpbUnmarshaller.Unmarshal(reader, r)
|
|
}
|
|
|
|
func (r *ResponseCheckTx) MarshalJSON() ([]byte, error) {
|
|
s, err := jsonpbMarshaller.MarshalToString(r)
|
|
return []byte(s), err
|
|
}
|
|
|
|
func (r *ResponseCheckTx) UnmarshalJSON(b []byte) error {
|
|
reader := bytes.NewBuffer(b)
|
|
return jsonpbUnmarshaller.Unmarshal(reader, r)
|
|
}
|
|
|
|
func (r *ResponseDeliverTx) MarshalJSON() ([]byte, error) {
|
|
s, err := jsonpbMarshaller.MarshalToString(r)
|
|
return []byte(s), err
|
|
}
|
|
|
|
func (r *ResponseDeliverTx) UnmarshalJSON(b []byte) error {
|
|
reader := bytes.NewBuffer(b)
|
|
return jsonpbUnmarshaller.Unmarshal(reader, r)
|
|
}
|
|
|
|
func (r *ResponseQuery) MarshalJSON() ([]byte, error) {
|
|
s, err := jsonpbMarshaller.MarshalToString(r)
|
|
return []byte(s), err
|
|
}
|
|
|
|
func (r *ResponseQuery) UnmarshalJSON(b []byte) error {
|
|
reader := bytes.NewBuffer(b)
|
|
return jsonpbUnmarshaller.Unmarshal(reader, r)
|
|
}
|
|
|
|
func (r *ResponseCommit) MarshalJSON() ([]byte, error) {
|
|
s, err := jsonpbMarshaller.MarshalToString(r)
|
|
return []byte(s), err
|
|
}
|
|
|
|
func (r *ResponseCommit) UnmarshalJSON(b []byte) error {
|
|
reader := bytes.NewBuffer(b)
|
|
return jsonpbUnmarshaller.Unmarshal(reader, r)
|
|
}
|
|
|
|
// Some compile time assertions to ensure we don't
|
|
// have accidental runtime surprises later on.
|
|
|
|
// jsonEncodingRoundTripper ensures that asserted
|
|
// interfaces implement both MarshalJSON and UnmarshalJSON
|
|
type jsonRoundTripper interface {
|
|
json.Marshaler
|
|
json.Unmarshaler
|
|
}
|
|
|
|
var _ jsonRoundTripper = (*ResponseCommit)(nil)
|
|
var _ jsonRoundTripper = (*ResponseQuery)(nil)
|
|
var _ jsonRoundTripper = (*ResponseDeliverTx)(nil)
|
|
var _ jsonRoundTripper = (*ResponseCheckTx)(nil)
|
|
var _ jsonRoundTripper = (*ResponseSetOption)(nil)
|