Documentation ¶
Index ¶
- func MarshalJSONIndent(cdc *Codec, obj interface{}) ([]byte, error)
- func MarshalYAML(jsonMarshaler JSONMarshaler, toPrint proto.Message) ([]byte, error)
- func MustMarshalJSONIndent(cdc *Codec, obj interface{}) []byte
- func ProtoMarshalJSON(msg proto.Message, resolver jsonpb.AnyResolver) ([]byte, error)
- func RegisterCrypto(cdc *Codec)
- func RegisterEvidences(cdc *Codec)
- type AminoMarshaler
- type BinaryCodec
- type BinaryMarshaler
- type CdcAbstraction
- type Codec
- type CodecProxy
- func (mp *CodecProxy) GetCdc() *Codec
- func (mp *CodecProxy) GetProtocMarshal() *ProtoCodec
- func (mp *CodecProxy) UnmarshalBinaryLengthPrefixed(bz []byte, ptr interface{}) error
- func (mp *CodecProxy) UnmarshalBinaryLengthPrefixedWithRegisteredUbmarshaller(bz []byte, ptr interface{}) (interface{}, error)
- type IbcCodec
- type JSONCodec
- type JSONMarshaler
- type Marshaler
- type ProtoCodec
- func (pc *ProtoCodec) InterfaceRegistry() types.InterfaceRegistry
- func (pc *ProtoCodec) Marshal(o ProtoMarshaler) ([]byte, error)
- func (pc *ProtoCodec) MarshalBinaryBare(o ProtoMarshaler) ([]byte, error)
- func (pc *ProtoCodec) MarshalBinaryLengthPrefixed(o ProtoMarshaler) ([]byte, error)
- func (pc *ProtoCodec) MarshalInterface(i proto.Message) ([]byte, error)
- func (pc *ProtoCodec) MarshalInterfaceJSON(x proto.Message) ([]byte, error)
- func (pc *ProtoCodec) MarshalJSON(o proto.Message) ([]byte, error)
- func (pc *ProtoCodec) MustMarshal(o ProtoMarshaler) []byte
- func (pc *ProtoCodec) MustMarshalBinaryBare(o ProtoMarshaler) []byte
- func (pc *ProtoCodec) MustMarshalBinaryLengthPrefixed(o ProtoMarshaler) []byte
- func (pc *ProtoCodec) MustMarshalJSON(o proto.Message) []byte
- func (pc *ProtoCodec) MustUnmarshal(bz []byte, ptr ProtoMarshaler)
- func (pc *ProtoCodec) MustUnmarshalBinaryBare(bz []byte, ptr ProtoMarshaler)
- func (pc *ProtoCodec) MustUnmarshalBinaryLengthPrefixed(bz []byte, ptr ProtoMarshaler)
- func (pc *ProtoCodec) MustUnmarshalJSON(bz []byte, ptr proto.Message)
- func (pc *ProtoCodec) Unmarshal(bz []byte, ptr ProtoMarshaler) error
- func (pc *ProtoCodec) UnmarshalBinaryBare(bz []byte, ptr ProtoMarshaler) error
- func (pc *ProtoCodec) UnmarshalBinaryLengthPrefixed(bz []byte, ptr ProtoMarshaler) error
- func (pc *ProtoCodec) UnmarshalInterface(bz []byte, ptr interface{}) error
- func (pc *ProtoCodec) UnmarshalInterfaceJSON(bz []byte, iface interface{}) error
- func (pc *ProtoCodec) UnmarshalJSON(bz []byte, ptr proto.Message) error
- func (pc *ProtoCodec) UnpackAny(any *types.Any, iface interface{}) error
- type ProtoCodecMarshaler
- type ProtoMarshaler
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MarshalJSONIndent ¶
attempt to make some pretty json
func MarshalYAML ¶ added in v1.3.0
func MarshalYAML(jsonMarshaler JSONMarshaler, toPrint proto.Message) ([]byte, error)
MarshalYAML marshals toPrint using jsonMarshaler to leverage specialized MarshalJSON methods (usually related to serialize data with protobuf or amin depending on a configuration). This involves additional roundtrip through JSON.
func MustMarshalJSONIndent ¶
MustMarshalJSONIndent executes MarshalJSONIndent except it panics upon failure.
func ProtoMarshalJSON ¶ added in v1.3.0
ProtoMarshalJSON provides an auxiliary function to return Proto3 JSON encoded bytes of a message.
func RegisterEvidences ¶
func RegisterEvidences(cdc *Codec)
RegisterEvidences registers Tendermint evidence types with the provided codec.
Types ¶
type AminoMarshaler ¶ added in v1.3.0
type AminoMarshaler interface { MarshalAmino() ([]byte, error) UnmarshalAmino([]byte) error MarshalAminoJSON() ([]byte, error) UnmarshalAminoJSON([]byte) error }
AminoMarshaler defines an interface where Amino marshalling can be overridden by custom marshalling.
type BinaryCodec ¶ added in v1.3.0
type BinaryCodec interface { // Marshal returns binary encoding of v. Marshal(o ProtoMarshaler) ([]byte, error) // MustMarshal calls Marshal and panics if error is returned. MustMarshal(o ProtoMarshaler) []byte // MarshalLengthPrefixed returns binary encoding of v with bytes length prefix. MarshalLengthPrefixed(o ProtoMarshaler) ([]byte, error) // MustMarshalLengthPrefixed calls MarshalLengthPrefixed and panics if // error is returned. MustMarshalLengthPrefixed(o ProtoMarshaler) []byte // Unmarshal parses the data encoded with Marshal method and stores the result // in the value pointed to by v. Unmarshal(bz []byte, ptr ProtoMarshaler) error // MustUnmarshal calls Unmarshal and panics if error is returned. MustUnmarshal(bz []byte, ptr ProtoMarshaler) // Unmarshal parses the data encoded with UnmarshalLengthPrefixed method and stores // the result in the value pointed to by v. UnmarshalLengthPrefixed(bz []byte, ptr ProtoMarshaler) error // MustUnmarshalLengthPrefixed calls UnmarshalLengthPrefixed and panics if error // is returned. MustUnmarshalLengthPrefixed(bz []byte, ptr ProtoMarshaler) // MarshalInterface is a helper method which will wrap `i` into `Any` for correct // binary interface (de)serialization. MarshalInterface(i proto.Message) ([]byte, error) // UnmarshalInterface is a helper method which will parse binary enoded data // into `Any` and unpack any into the `ptr`. It fails if the target interface type // is not registered in codec, or is not compatible with the serialized data UnmarshalInterface(bz []byte, ptr interface{}) error types.AnyUnpacker }
type BinaryMarshaler ¶ added in v1.3.0
type BinaryMarshaler interface { MarshalBinaryBare(o ProtoMarshaler) ([]byte, error) MustMarshalBinaryBare(o ProtoMarshaler) []byte MarshalBinaryLengthPrefixed(o ProtoMarshaler) ([]byte, error) MustMarshalBinaryLengthPrefixed(o ProtoMarshaler) []byte UnmarshalBinaryBare(bz []byte, ptr ProtoMarshaler) error MustUnmarshalBinaryBare(bz []byte, ptr ProtoMarshaler) UnmarshalBinaryLengthPrefixed(bz []byte, ptr ProtoMarshaler) error MustUnmarshalBinaryLengthPrefixed(bz []byte, ptr ProtoMarshaler) MarshalInterface(i proto.Message) ([]byte, error) UnmarshalInterface(bz []byte, ptr interface{}) error types.AnyUnpacker }
type CdcAbstraction ¶ added in v1.3.0
type Codec ¶
amino codec to marshal/unmarshal
var Cdc *Codec
Cdc generic sealed codec to be used throughout sdk
type CodecProxy ¶ added in v1.3.0
type CodecProxy struct {
// contains filtered or unexported fields
}
func NewCodecProxy ¶ added in v1.3.0
func NewCodecProxy(protoCodec *ProtoCodec, cdc *Codec) *CodecProxy
func (*CodecProxy) GetCdc ¶ added in v1.3.0
func (mp *CodecProxy) GetCdc() *Codec
func (*CodecProxy) GetProtocMarshal ¶ added in v1.3.0
func (mp *CodecProxy) GetProtocMarshal() *ProtoCodec
func (*CodecProxy) UnmarshalBinaryLengthPrefixed ¶ added in v1.3.0
func (mp *CodecProxy) UnmarshalBinaryLengthPrefixed(bz []byte, ptr interface{}) error
func (*CodecProxy) UnmarshalBinaryLengthPrefixedWithRegisteredUbmarshaller ¶ added in v1.3.0
func (mp *CodecProxy) UnmarshalBinaryLengthPrefixedWithRegisteredUbmarshaller(bz []byte, ptr interface{}) (interface{}, error)
type IbcCodec ¶ added in v1.3.0
type IbcCodec interface { BinaryCodec JSONCodec }
type JSONCodec ¶ added in v1.3.0
type JSONCodec interface { // MarshalJSON returns JSON encoding of v. MarshalJSON(o proto.Message) ([]byte, error) // MustMarshalJSON calls MarshalJSON and panics if error is returned. MustMarshalJSON(o proto.Message) []byte // MarshalInterfaceJSON is a helper method which will wrap `i` into `Any` for correct // JSON interface (de)serialization. MarshalInterfaceJSON(i proto.Message) ([]byte, error) // UnmarshalInterfaceJSON is a helper method which will parse JSON enoded data // into `Any` and unpack any into the `ptr`. It fails if the target interface type // is not registered in codec, or is not compatible with the serialized data UnmarshalInterfaceJSON(bz []byte, ptr interface{}) error // UnmarshalJSON parses the data encoded with MarshalJSON method and stores the result // in the value pointed to by v. UnmarshalJSON(bz []byte, ptr proto.Message) error // MustUnmarshalJSON calls Unmarshal and panics if error is returned. MustUnmarshalJSON(bz []byte, ptr proto.Message) }
type JSONMarshaler ¶ added in v1.3.0
type JSONMarshaler interface { MarshalJSON(o proto.Message) ([]byte, error) MustMarshalJSON(o proto.Message) []byte MarshalInterfaceJSON(i proto.Message) ([]byte, error) UnmarshalInterfaceJSON(bz []byte, ptr interface{}) error UnmarshalJSON(bz []byte, ptr proto.Message) error MustUnmarshalJSON(bz []byte, ptr proto.Message) }
type Marshaler ¶ added in v1.3.0
type Marshaler interface { BinaryMarshaler JSONMarshaler }
Marshaler defines the interface module codecs must implement in order to support backwards compatibility with Amino while allowing custom Protobuf-based serialization. Note, Amino can still be used without any dependency on Protobuf. There are two typical implementations that fulfill this contract:
1. AminoCodec: Provides full Amino serialization compatibility. 2. ProtoCodec: Provides full Protobuf serialization compatibility.
type ProtoCodec ¶ added in v1.3.0
type ProtoCodec struct {
// contains filtered or unexported fields
}
ProtoCodec defines a codec that utilizes Protobuf for both binary and JSON encoding.
func NewProtoCodec ¶ added in v1.3.0
func NewProtoCodec(interfaceRegistry types.InterfaceRegistry) *ProtoCodec
NewProtoCodec returns a reference to a new ProtoCodec
func (*ProtoCodec) InterfaceRegistry ¶ added in v1.3.0
func (pc *ProtoCodec) InterfaceRegistry() types.InterfaceRegistry
func (*ProtoCodec) Marshal ¶ added in v1.6.0
func (pc *ProtoCodec) Marshal(o ProtoMarshaler) ([]byte, error)
Marshal implements BinaryMarshaler.Marshal method. NOTE: this function must be used with a concrete type which implements proto.Message. For interface please use the codec.MarshalInterface
func (*ProtoCodec) MarshalBinaryBare ¶ added in v1.3.0
func (pc *ProtoCodec) MarshalBinaryBare(o ProtoMarshaler) ([]byte, error)
MarshalBinaryBare implements BinaryMarshaler.MarshalBinaryBare method.
func (*ProtoCodec) MarshalBinaryLengthPrefixed ¶ added in v1.3.0
func (pc *ProtoCodec) MarshalBinaryLengthPrefixed(o ProtoMarshaler) ([]byte, error)
MarshalBinaryLengthPrefixed implements BinaryMarshaler.MarshalBinaryLengthPrefixed method.
func (*ProtoCodec) MarshalInterface ¶ added in v1.3.0
func (pc *ProtoCodec) MarshalInterface(i proto.Message) ([]byte, error)
MarshalInterface is a convenience function for proto marshalling interfaces. It packs the provided value, which must be an interface, in an Any and then marshals it to bytes. NOTE: to marshal a concrete type, you should use MarshalBinaryBare instead
func (*ProtoCodec) MarshalInterfaceJSON ¶ added in v1.3.0
func (pc *ProtoCodec) MarshalInterfaceJSON(x proto.Message) ([]byte, error)
MarshalInterfaceJSON is a convenience function for proto marshalling interfaces. It packs the provided value in an Any and then marshals it to bytes. NOTE: to marshal a concrete type, you should use MarshalJSON instead
func (*ProtoCodec) MarshalJSON ¶ added in v1.3.0
func (pc *ProtoCodec) MarshalJSON(o proto.Message) ([]byte, error)
MarshalJSON implements JSONMarshaler.MarshalJSON method, it marshals to JSON using proto codec.
func (*ProtoCodec) MustMarshal ¶ added in v1.6.0
func (pc *ProtoCodec) MustMarshal(o ProtoMarshaler) []byte
MustMarshal implements BinaryMarshaler.MustMarshal method. NOTE: this function must be used with a concrete type which implements proto.Message. For interface please use the codec.MarshalInterface
func (*ProtoCodec) MustMarshalBinaryBare ¶ added in v1.3.0
func (pc *ProtoCodec) MustMarshalBinaryBare(o ProtoMarshaler) []byte
MustMarshalBinaryBare implements BinaryMarshaler.MustMarshalBinaryBare method.
func (*ProtoCodec) MustMarshalBinaryLengthPrefixed ¶ added in v1.3.0
func (pc *ProtoCodec) MustMarshalBinaryLengthPrefixed(o ProtoMarshaler) []byte
MustMarshalBinaryLengthPrefixed implements BinaryMarshaler.MustMarshalBinaryLengthPrefixed method.
func (*ProtoCodec) MustMarshalJSON ¶ added in v1.3.0
func (pc *ProtoCodec) MustMarshalJSON(o proto.Message) []byte
MustMarshalJSON implements JSONMarshaler.MustMarshalJSON method, it executes MarshalJSON except it panics upon failure.
func (*ProtoCodec) MustUnmarshal ¶ added in v1.6.0
func (pc *ProtoCodec) MustUnmarshal(bz []byte, ptr ProtoMarshaler)
MustUnmarshal implements BinaryMarshaler.MustUnmarshal method. NOTE: this function must be used with a concrete type which implements proto.Message. For interface please use the codec.UnmarshalInterface
func (*ProtoCodec) MustUnmarshalBinaryBare ¶ added in v1.3.0
func (pc *ProtoCodec) MustUnmarshalBinaryBare(bz []byte, ptr ProtoMarshaler)
MustUnmarshalBinaryBare implements BinaryMarshaler.MustUnmarshalBinaryBare method.
func (*ProtoCodec) MustUnmarshalBinaryLengthPrefixed ¶ added in v1.3.0
func (pc *ProtoCodec) MustUnmarshalBinaryLengthPrefixed(bz []byte, ptr ProtoMarshaler)
MustUnmarshalBinaryLengthPrefixed implements BinaryMarshaler.MustUnmarshalBinaryLengthPrefixed method.
func (*ProtoCodec) MustUnmarshalJSON ¶ added in v1.3.0
func (pc *ProtoCodec) MustUnmarshalJSON(bz []byte, ptr proto.Message)
MustUnmarshalJSON implements JSONMarshaler.MustUnmarshalJSON method, it executes UnmarshalJSON except it panics upon failure.
func (*ProtoCodec) Unmarshal ¶ added in v1.6.0
func (pc *ProtoCodec) Unmarshal(bz []byte, ptr ProtoMarshaler) error
Unmarshal implements BinaryMarshaler.Unmarshal method. NOTE: this function must be used with a concrete type which implements proto.Message. For interface please use the codec.UnmarshalInterface
func (*ProtoCodec) UnmarshalBinaryBare ¶ added in v1.3.0
func (pc *ProtoCodec) UnmarshalBinaryBare(bz []byte, ptr ProtoMarshaler) error
UnmarshalBinaryBare implements BinaryMarshaler.UnmarshalBinaryBare method.
func (*ProtoCodec) UnmarshalBinaryLengthPrefixed ¶ added in v1.3.0
func (pc *ProtoCodec) UnmarshalBinaryLengthPrefixed(bz []byte, ptr ProtoMarshaler) error
UnmarshalBinaryLengthPrefixed implements BinaryMarshaler.UnmarshalBinaryLengthPrefixed method.
func (*ProtoCodec) UnmarshalInterface ¶ added in v1.3.0
func (pc *ProtoCodec) UnmarshalInterface(bz []byte, ptr interface{}) error
UnmarshalInterface is a convenience function for proto unmarshaling interfaces. It unmarshals an Any from bz bytes and then unpacks it to the `ptr`, which must be a pointer to a non empty interface with registered implementations. NOTE: to unmarshal a concrete type, you should use UnmarshalBinaryBare instead
Example:
var x MyInterface err := cdc.UnmarshalInterface(bz, &x)
func (*ProtoCodec) UnmarshalInterfaceJSON ¶ added in v1.3.0
func (pc *ProtoCodec) UnmarshalInterfaceJSON(bz []byte, iface interface{}) error
UnmarshalInterfaceJSON is a convenience function for proto unmarshaling interfaces. It unmarshals an Any from bz bytes and then unpacks it to the `iface`, which must be a pointer to a non empty interface, implementing proto.Message with registered implementations. NOTE: to unmarshal a concrete type, you should use UnmarshalJSON instead
Example:
var x MyInterface // must implement proto.Message err := cdc.UnmarshalInterfaceJSON(&x, bz)
func (*ProtoCodec) UnmarshalJSON ¶ added in v1.3.0
func (pc *ProtoCodec) UnmarshalJSON(bz []byte, ptr proto.Message) error
UnmarshalJSON implements JSONMarshaler.UnmarshalJSON method, it unmarshals from JSON using proto codec.
type ProtoCodecMarshaler ¶ added in v1.3.0
type ProtoCodecMarshaler interface { Marshaler InterfaceRegistry() types.InterfaceRegistry }
ProtoCodecMarshaler defines an interface for codecs that utilize Protobuf for both binary and JSON encoding.
type ProtoMarshaler ¶ added in v1.3.0
type ProtoMarshaler interface { proto.Message // for JSON serialization Marshal() ([]byte, error) MarshalTo(data []byte) (n int, err error) MarshalToSizedBuffer(dAtA []byte) (int, error) Size() int Unmarshal(data []byte) error }
ProtoMarshaler defines an interface a type must implement as protocol buffer defined message.
Directories ¶
Path | Synopsis |
---|---|
Package types defines a custom wrapper for google.protobuf.Any which supports cached values as well as InterfaceRegistry which keeps track of types which can be used with Any for both security and introspection
|
Package types defines a custom wrapper for google.protobuf.Any which supports cached values as well as InterfaceRegistry which keeps track of types which can be used with Any for both security and introspection |