2020-01-24 07:32:00 -08:00
|
|
|
package codec
|
|
|
|
|
2020-05-05 07:28:20 -07:00
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
|
|
|
|
"github.com/cosmos/cosmos-sdk/codec/types"
|
|
|
|
)
|
|
|
|
|
2020-01-24 07:32:00 -08:00
|
|
|
// AminoCodec defines a codec that utilizes Amino for both binary and JSON
|
|
|
|
// encoding.
|
|
|
|
type AminoCodec struct {
|
|
|
|
amino *Codec
|
|
|
|
}
|
|
|
|
|
|
|
|
func NewAminoCodec(amino *Codec) Marshaler {
|
|
|
|
return &AminoCodec{amino}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ac *AminoCodec) MarshalBinaryBare(o ProtoMarshaler) ([]byte, error) {
|
|
|
|
return ac.amino.MarshalBinaryBare(o)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ac *AminoCodec) MustMarshalBinaryBare(o ProtoMarshaler) []byte {
|
|
|
|
return ac.amino.MustMarshalBinaryBare(o)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ac *AminoCodec) MarshalBinaryLengthPrefixed(o ProtoMarshaler) ([]byte, error) {
|
|
|
|
return ac.amino.MarshalBinaryLengthPrefixed(o)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ac *AminoCodec) MustMarshalBinaryLengthPrefixed(o ProtoMarshaler) []byte {
|
|
|
|
return ac.amino.MustMarshalBinaryLengthPrefixed(o)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ac *AminoCodec) UnmarshalBinaryBare(bz []byte, ptr ProtoMarshaler) error {
|
|
|
|
return ac.amino.UnmarshalBinaryBare(bz, ptr)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ac *AminoCodec) MustUnmarshalBinaryBare(bz []byte, ptr ProtoMarshaler) {
|
|
|
|
ac.amino.MustUnmarshalBinaryBare(bz, ptr)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ac *AminoCodec) UnmarshalBinaryLengthPrefixed(bz []byte, ptr ProtoMarshaler) error {
|
|
|
|
return ac.amino.UnmarshalBinaryLengthPrefixed(bz, ptr)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ac *AminoCodec) MustUnmarshalBinaryLengthPrefixed(bz []byte, ptr ProtoMarshaler) {
|
|
|
|
ac.amino.MustUnmarshalBinaryLengthPrefixed(bz, ptr)
|
|
|
|
}
|
|
|
|
|
2020-04-29 19:36:34 -07:00
|
|
|
func (ac *AminoCodec) MarshalJSON(o interface{}) ([]byte, error) {
|
2020-01-24 07:32:00 -08:00
|
|
|
return ac.amino.MarshalJSON(o)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ac *AminoCodec) MustMarshalJSON(o interface{}) []byte {
|
|
|
|
return ac.amino.MustMarshalJSON(o)
|
|
|
|
}
|
|
|
|
|
2020-04-29 19:36:34 -07:00
|
|
|
func (ac *AminoCodec) UnmarshalJSON(bz []byte, ptr interface{}) error {
|
2020-01-24 07:32:00 -08:00
|
|
|
return ac.amino.UnmarshalJSON(bz, ptr)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ac *AminoCodec) MustUnmarshalJSON(bz []byte, ptr interface{}) {
|
|
|
|
ac.amino.MustUnmarshalJSON(bz, ptr)
|
|
|
|
}
|
2020-05-05 07:28:20 -07:00
|
|
|
|
|
|
|
func (*AminoCodec) UnpackAny(*types.Any, interface{}) error {
|
|
|
|
return fmt.Errorf("AminoCodec can't handle unpack protobuf Any's")
|
|
|
|
}
|