// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: ibc/lightclients/solomachine/v2/solomachine.proto

package v7

import (
	fmt "fmt"
	types "git.cw.tr/mukan-network/mukan-sdk/codec/types"
	_ "github.com/cosmos/gogoproto/gogoproto"
	proto "github.com/cosmos/gogoproto/proto"
	types1 "git.cw.tr/mukan-network/mukan-ibc/modules/core/03-connection/types"
	types2 "git.cw.tr/mukan-network/mukan-ibc/modules/core/04-channel/types"
	io "io"
	math "math"
	math_bits "math/bits"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package

// DataType defines the type of solo machine proof being created. This is done
// to preserve uniqueness of different data sign byte encodings.
type DataType int32

const (
	// Default State
	UNSPECIFIED DataType = 0
	// Data type for client state verification
	CLIENT DataType = 1
	// Data type for consensus state verification
	CONSENSUS DataType = 2
	// Data type for connection state verification
	CONNECTION DataType = 3
	// Data type for channel state verification
	CHANNEL DataType = 4
	// Data type for packet commitment verification
	PACKETCOMMITMENT DataType = 5
	// Data type for packet acknowledgement verification
	PACKETACKNOWLEDGEMENT DataType = 6
	// Data type for packet receipt absence verification
	PACKETRECEIPTABSENCE DataType = 7
	// Data type for next sequence recv verification
	NEXTSEQUENCERECV DataType = 8
	// Data type for header verification
	HEADER DataType = 9
)

var DataType_name = map[int32]string{
	0: "DATA_TYPE_UNINITIALIZED_UNSPECIFIED",
	1: "DATA_TYPE_CLIENT_STATE",
	2: "DATA_TYPE_CONSENSUS_STATE",
	3: "DATA_TYPE_CONNECTION_STATE",
	4: "DATA_TYPE_CHANNEL_STATE",
	5: "DATA_TYPE_PACKET_COMMITMENT",
	6: "DATA_TYPE_PACKET_ACKNOWLEDGEMENT",
	7: "DATA_TYPE_PACKET_RECEIPT_ABSENCE",
	8: "DATA_TYPE_NEXT_SEQUENCE_RECV",
	9: "DATA_TYPE_HEADER",
}

var DataType_value = map[string]int32{
	"DATA_TYPE_UNINITIALIZED_UNSPECIFIED": 0,
	"DATA_TYPE_CLIENT_STATE":              1,
	"DATA_TYPE_CONSENSUS_STATE":           2,
	"DATA_TYPE_CONNECTION_STATE":          3,
	"DATA_TYPE_CHANNEL_STATE":             4,
	"DATA_TYPE_PACKET_COMMITMENT":         5,
	"DATA_TYPE_PACKET_ACKNOWLEDGEMENT":    6,
	"DATA_TYPE_PACKET_RECEIPT_ABSENCE":    7,
	"DATA_TYPE_NEXT_SEQUENCE_RECV":        8,
	"DATA_TYPE_HEADER":                    9,
}

func (x DataType) String() string {
	return proto.EnumName(DataType_name, int32(x))
}

func (DataType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_141333b361aae010, []int{0}
}

// ClientState defines a solo machine client that tracks the current consensus
// state and if the client is frozen.
type ClientState struct {
	// latest sequence of the client state
	Sequence uint64 `protobuf:"varint,1,opt,name=sequence,proto3" json:"sequence,omitempty"`
	// frozen sequence of the solo machine
	IsFrozen       bool            `protobuf:"varint,2,opt,name=is_frozen,json=isFrozen,proto3" json:"is_frozen,omitempty"`
	ConsensusState *ConsensusState `protobuf:"bytes,3,opt,name=consensus_state,json=consensusState,proto3" json:"consensus_state,omitempty"`
	// when set to true, will allow governance to update a solo machine client.
	// The client will be unfrozen if it is frozen.
	AllowUpdateAfterProposal bool `protobuf:"varint,4,opt,name=allow_update_after_proposal,json=allowUpdateAfterProposal,proto3" json:"allow_update_after_proposal,omitempty"`
}

func (m *ClientState) Reset()         { *m = ClientState{} }
func (m *ClientState) String() string { return proto.CompactTextString(m) }
func (*ClientState) ProtoMessage()    {}
func (*ClientState) Descriptor() ([]byte, []int) {
	return fileDescriptor_141333b361aae010, []int{0}
}
func (m *ClientState) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *ClientState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_ClientState.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *ClientState) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ClientState.Merge(m, src)
}
func (m *ClientState) XXX_Size() int {
	return m.Size()
}
func (m *ClientState) XXX_DiscardUnknown() {
	xxx_messageInfo_ClientState.DiscardUnknown(m)
}

var xxx_messageInfo_ClientState proto.InternalMessageInfo

// ConsensusState defines a solo machine consensus state. The sequence of a
// consensus state is contained in the "height" key used in storing the
// consensus state.
type ConsensusState struct {
	// public key of the solo machine
	PublicKey *types.Any `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
	// diversifier allows the same public key to be reused across different solo
	// machine clients (potentially on different chains) without being considered
	// misbehaviour.
	Diversifier string `protobuf:"bytes,2,opt,name=diversifier,proto3" json:"diversifier,omitempty"`
	Timestamp   uint64 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
}

func (m *ConsensusState) Reset()         { *m = ConsensusState{} }
func (m *ConsensusState) String() string { return proto.CompactTextString(m) }
func (*ConsensusState) ProtoMessage()    {}
func (*ConsensusState) Descriptor() ([]byte, []int) {
	return fileDescriptor_141333b361aae010, []int{1}
}
func (m *ConsensusState) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *ConsensusState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_ConsensusState.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *ConsensusState) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ConsensusState.Merge(m, src)
}
func (m *ConsensusState) XXX_Size() int {
	return m.Size()
}
func (m *ConsensusState) XXX_DiscardUnknown() {
	xxx_messageInfo_ConsensusState.DiscardUnknown(m)
}

var xxx_messageInfo_ConsensusState proto.InternalMessageInfo

// Header defines a solo machine consensus header
type Header struct {
	// sequence to update solo machine public key at
	Sequence       uint64     `protobuf:"varint,1,opt,name=sequence,proto3" json:"sequence,omitempty"`
	Timestamp      uint64     `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Signature      []byte     `protobuf:"bytes,3,opt,name=signature,proto3" json:"signature,omitempty"`
	NewPublicKey   *types.Any `protobuf:"bytes,4,opt,name=new_public_key,json=newPublicKey,proto3" json:"new_public_key,omitempty"`
	NewDiversifier string     `protobuf:"bytes,5,opt,name=new_diversifier,json=newDiversifier,proto3" json:"new_diversifier,omitempty"`
}

func (m *Header) Reset()         { *m = Header{} }
func (m *Header) String() string { return proto.CompactTextString(m) }
func (*Header) ProtoMessage()    {}
func (*Header) Descriptor() ([]byte, []int) {
	return fileDescriptor_141333b361aae010, []int{2}
}
func (m *Header) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *Header) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_Header.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *Header) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Header.Merge(m, src)
}
func (m *Header) XXX_Size() int {
	return m.Size()
}
func (m *Header) XXX_DiscardUnknown() {
	xxx_messageInfo_Header.DiscardUnknown(m)
}

var xxx_messageInfo_Header proto.InternalMessageInfo

// Misbehaviour defines misbehaviour for a solo machine which consists
// of a sequence and two signatures over different messages at that sequence.
type Misbehaviour struct {
	ClientId     string            `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
	Sequence     uint64            `protobuf:"varint,2,opt,name=sequence,proto3" json:"sequence,omitempty"`
	SignatureOne *SignatureAndData `protobuf:"bytes,3,opt,name=signature_one,json=signatureOne,proto3" json:"signature_one,omitempty"`
	SignatureTwo *SignatureAndData `protobuf:"bytes,4,opt,name=signature_two,json=signatureTwo,proto3" json:"signature_two,omitempty"`
}

func (m *Misbehaviour) Reset()         { *m = Misbehaviour{} }
func (m *Misbehaviour) String() string { return proto.CompactTextString(m) }
func (*Misbehaviour) ProtoMessage()    {}
func (*Misbehaviour) Descriptor() ([]byte, []int) {
	return fileDescriptor_141333b361aae010, []int{3}
}
func (m *Misbehaviour) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *Misbehaviour) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_Misbehaviour.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *Misbehaviour) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Misbehaviour.Merge(m, src)
}
func (m *Misbehaviour) XXX_Size() int {
	return m.Size()
}
func (m *Misbehaviour) XXX_DiscardUnknown() {
	xxx_messageInfo_Misbehaviour.DiscardUnknown(m)
}

var xxx_messageInfo_Misbehaviour proto.InternalMessageInfo

// SignatureAndData contains a signature and the data signed over to create that
// signature.
type SignatureAndData struct {
	Signature []byte   `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"`
	DataType  DataType `protobuf:"varint,2,opt,name=data_type,json=dataType,proto3,enum=ibc.lightclients.solomachine.v2.DataType" json:"data_type,omitempty"`
	Data      []byte   `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
	Timestamp uint64   `protobuf:"varint,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
}

func (m *SignatureAndData) Reset()         { *m = SignatureAndData{} }
func (m *SignatureAndData) String() string { return proto.CompactTextString(m) }
func (*SignatureAndData) ProtoMessage()    {}
func (*SignatureAndData) Descriptor() ([]byte, []int) {
	return fileDescriptor_141333b361aae010, []int{4}
}
func (m *SignatureAndData) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *SignatureAndData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_SignatureAndData.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *SignatureAndData) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SignatureAndData.Merge(m, src)
}
func (m *SignatureAndData) XXX_Size() int {
	return m.Size()
}
func (m *SignatureAndData) XXX_DiscardUnknown() {
	xxx_messageInfo_SignatureAndData.DiscardUnknown(m)
}

var xxx_messageInfo_SignatureAndData proto.InternalMessageInfo

// TimestampedSignatureData contains the signature data and the timestamp of the
// signature.
type TimestampedSignatureData struct {
	SignatureData []byte `protobuf:"bytes,1,opt,name=signature_data,json=signatureData,proto3" json:"signature_data,omitempty"`
	Timestamp     uint64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
}

func (m *TimestampedSignatureData) Reset()         { *m = TimestampedSignatureData{} }
func (m *TimestampedSignatureData) String() string { return proto.CompactTextString(m) }
func (*TimestampedSignatureData) ProtoMessage()    {}
func (*TimestampedSignatureData) Descriptor() ([]byte, []int) {
	return fileDescriptor_141333b361aae010, []int{5}
}
func (m *TimestampedSignatureData) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *TimestampedSignatureData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_TimestampedSignatureData.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *TimestampedSignatureData) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TimestampedSignatureData.Merge(m, src)
}
func (m *TimestampedSignatureData) XXX_Size() int {
	return m.Size()
}
func (m *TimestampedSignatureData) XXX_DiscardUnknown() {
	xxx_messageInfo_TimestampedSignatureData.DiscardUnknown(m)
}

var xxx_messageInfo_TimestampedSignatureData proto.InternalMessageInfo

// SignBytes defines the signed bytes used for signature verification.
type SignBytes struct {
	Sequence    uint64 `protobuf:"varint,1,opt,name=sequence,proto3" json:"sequence,omitempty"`
	Timestamp   uint64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Diversifier string `protobuf:"bytes,3,opt,name=diversifier,proto3" json:"diversifier,omitempty"`
	// type of the data used
	DataType DataType `protobuf:"varint,4,opt,name=data_type,json=dataType,proto3,enum=ibc.lightclients.solomachine.v2.DataType" json:"data_type,omitempty"`
	// marshaled data
	Data []byte `protobuf:"bytes,5,opt,name=data,proto3" json:"data,omitempty"`
}

func (m *SignBytes) Reset()         { *m = SignBytes{} }
func (m *SignBytes) String() string { return proto.CompactTextString(m) }
func (*SignBytes) ProtoMessage()    {}
func (*SignBytes) Descriptor() ([]byte, []int) {
	return fileDescriptor_141333b361aae010, []int{6}
}
func (m *SignBytes) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *SignBytes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_SignBytes.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *SignBytes) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SignBytes.Merge(m, src)
}
func (m *SignBytes) XXX_Size() int {
	return m.Size()
}
func (m *SignBytes) XXX_DiscardUnknown() {
	xxx_messageInfo_SignBytes.DiscardUnknown(m)
}

var xxx_messageInfo_SignBytes proto.InternalMessageInfo

// HeaderData returns the SignBytes data for update verification.
type HeaderData struct {
	// header public key
	NewPubKey *types.Any `protobuf:"bytes,1,opt,name=new_pub_key,json=newPubKey,proto3" json:"new_pub_key,omitempty"`
	// header diversifier
	NewDiversifier string `protobuf:"bytes,2,opt,name=new_diversifier,json=newDiversifier,proto3" json:"new_diversifier,omitempty"`
}

func (m *HeaderData) Reset()         { *m = HeaderData{} }
func (m *HeaderData) String() string { return proto.CompactTextString(m) }
func (*HeaderData) ProtoMessage()    {}
func (*HeaderData) Descriptor() ([]byte, []int) {
	return fileDescriptor_141333b361aae010, []int{7}
}
func (m *HeaderData) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *HeaderData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_HeaderData.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *HeaderData) XXX_Merge(src proto.Message) {
	xxx_messageInfo_HeaderData.Merge(m, src)
}
func (m *HeaderData) XXX_Size() int {
	return m.Size()
}
func (m *HeaderData) XXX_DiscardUnknown() {
	xxx_messageInfo_HeaderData.DiscardUnknown(m)
}

var xxx_messageInfo_HeaderData proto.InternalMessageInfo

// ClientStateData returns the SignBytes data for client state verification.
type ClientStateData struct {
	Path        []byte     `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	ClientState *types.Any `protobuf:"bytes,2,opt,name=client_state,json=clientState,proto3" json:"client_state,omitempty"`
}

func (m *ClientStateData) Reset()         { *m = ClientStateData{} }
func (m *ClientStateData) String() string { return proto.CompactTextString(m) }
func (*ClientStateData) ProtoMessage()    {}
func (*ClientStateData) Descriptor() ([]byte, []int) {
	return fileDescriptor_141333b361aae010, []int{8}
}
func (m *ClientStateData) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *ClientStateData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_ClientStateData.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *ClientStateData) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ClientStateData.Merge(m, src)
}
func (m *ClientStateData) XXX_Size() int {
	return m.Size()
}
func (m *ClientStateData) XXX_DiscardUnknown() {
	xxx_messageInfo_ClientStateData.DiscardUnknown(m)
}

var xxx_messageInfo_ClientStateData proto.InternalMessageInfo

// ConsensusStateData returns the SignBytes data for consensus state
// verification.
type ConsensusStateData struct {
	Path           []byte     `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	ConsensusState *types.Any `protobuf:"bytes,2,opt,name=consensus_state,json=consensusState,proto3" json:"consensus_state,omitempty"`
}

func (m *ConsensusStateData) Reset()         { *m = ConsensusStateData{} }
func (m *ConsensusStateData) String() string { return proto.CompactTextString(m) }
func (*ConsensusStateData) ProtoMessage()    {}
func (*ConsensusStateData) Descriptor() ([]byte, []int) {
	return fileDescriptor_141333b361aae010, []int{9}
}
func (m *ConsensusStateData) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *ConsensusStateData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_ConsensusStateData.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *ConsensusStateData) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ConsensusStateData.Merge(m, src)
}
func (m *ConsensusStateData) XXX_Size() int {
	return m.Size()
}
func (m *ConsensusStateData) XXX_DiscardUnknown() {
	xxx_messageInfo_ConsensusStateData.DiscardUnknown(m)
}

var xxx_messageInfo_ConsensusStateData proto.InternalMessageInfo

// ConnectionStateData returns the SignBytes data for connection state
// verification.
type ConnectionStateData struct {
	Path       []byte                `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	Connection *types1.ConnectionEnd `protobuf:"bytes,2,opt,name=connection,proto3" json:"connection,omitempty"`
}

func (m *ConnectionStateData) Reset()         { *m = ConnectionStateData{} }
func (m *ConnectionStateData) String() string { return proto.CompactTextString(m) }
func (*ConnectionStateData) ProtoMessage()    {}
func (*ConnectionStateData) Descriptor() ([]byte, []int) {
	return fileDescriptor_141333b361aae010, []int{10}
}
func (m *ConnectionStateData) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *ConnectionStateData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_ConnectionStateData.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *ConnectionStateData) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ConnectionStateData.Merge(m, src)
}
func (m *ConnectionStateData) XXX_Size() int {
	return m.Size()
}
func (m *ConnectionStateData) XXX_DiscardUnknown() {
	xxx_messageInfo_ConnectionStateData.DiscardUnknown(m)
}

var xxx_messageInfo_ConnectionStateData proto.InternalMessageInfo

// ChannelStateData returns the SignBytes data for channel state
// verification.
type ChannelStateData struct {
	Path    []byte          `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	Channel *types2.Channel `protobuf:"bytes,2,opt,name=channel,proto3" json:"channel,omitempty"`
}

func (m *ChannelStateData) Reset()         { *m = ChannelStateData{} }
func (m *ChannelStateData) String() string { return proto.CompactTextString(m) }
func (*ChannelStateData) ProtoMessage()    {}
func (*ChannelStateData) Descriptor() ([]byte, []int) {
	return fileDescriptor_141333b361aae010, []int{11}
}
func (m *ChannelStateData) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *ChannelStateData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_ChannelStateData.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *ChannelStateData) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ChannelStateData.Merge(m, src)
}
func (m *ChannelStateData) XXX_Size() int {
	return m.Size()
}
func (m *ChannelStateData) XXX_DiscardUnknown() {
	xxx_messageInfo_ChannelStateData.DiscardUnknown(m)
}

var xxx_messageInfo_ChannelStateData proto.InternalMessageInfo

// PacketCommitmentData returns the SignBytes data for packet commitment
// verification.
type PacketCommitmentData struct {
	Path       []byte `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	Commitment []byte `protobuf:"bytes,2,opt,name=commitment,proto3" json:"commitment,omitempty"`
}

func (m *PacketCommitmentData) Reset()         { *m = PacketCommitmentData{} }
func (m *PacketCommitmentData) String() string { return proto.CompactTextString(m) }
func (*PacketCommitmentData) ProtoMessage()    {}
func (*PacketCommitmentData) Descriptor() ([]byte, []int) {
	return fileDescriptor_141333b361aae010, []int{12}
}
func (m *PacketCommitmentData) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *PacketCommitmentData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_PacketCommitmentData.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *PacketCommitmentData) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PacketCommitmentData.Merge(m, src)
}
func (m *PacketCommitmentData) XXX_Size() int {
	return m.Size()
}
func (m *PacketCommitmentData) XXX_DiscardUnknown() {
	xxx_messageInfo_PacketCommitmentData.DiscardUnknown(m)
}

var xxx_messageInfo_PacketCommitmentData proto.InternalMessageInfo

func (m *PacketCommitmentData) GetPath() []byte {
	if m != nil {
		return m.Path
	}
	return nil
}

func (m *PacketCommitmentData) GetCommitment() []byte {
	if m != nil {
		return m.Commitment
	}
	return nil
}

// PacketAcknowledgementData returns the SignBytes data for acknowledgement
// verification.
type PacketAcknowledgementData struct {
	Path            []byte `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	Acknowledgement []byte `protobuf:"bytes,2,opt,name=acknowledgement,proto3" json:"acknowledgement,omitempty"`
}

func (m *PacketAcknowledgementData) Reset()         { *m = PacketAcknowledgementData{} }
func (m *PacketAcknowledgementData) String() string { return proto.CompactTextString(m) }
func (*PacketAcknowledgementData) ProtoMessage()    {}
func (*PacketAcknowledgementData) Descriptor() ([]byte, []int) {
	return fileDescriptor_141333b361aae010, []int{13}
}
func (m *PacketAcknowledgementData) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *PacketAcknowledgementData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_PacketAcknowledgementData.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *PacketAcknowledgementData) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PacketAcknowledgementData.Merge(m, src)
}
func (m *PacketAcknowledgementData) XXX_Size() int {
	return m.Size()
}
func (m *PacketAcknowledgementData) XXX_DiscardUnknown() {
	xxx_messageInfo_PacketAcknowledgementData.DiscardUnknown(m)
}

var xxx_messageInfo_PacketAcknowledgementData proto.InternalMessageInfo

func (m *PacketAcknowledgementData) GetPath() []byte {
	if m != nil {
		return m.Path
	}
	return nil
}

func (m *PacketAcknowledgementData) GetAcknowledgement() []byte {
	if m != nil {
		return m.Acknowledgement
	}
	return nil
}

// PacketReceiptAbsenceData returns the SignBytes data for
// packet receipt absence verification.
type PacketReceiptAbsenceData struct {
	Path []byte `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
}

func (m *PacketReceiptAbsenceData) Reset()         { *m = PacketReceiptAbsenceData{} }
func (m *PacketReceiptAbsenceData) String() string { return proto.CompactTextString(m) }
func (*PacketReceiptAbsenceData) ProtoMessage()    {}
func (*PacketReceiptAbsenceData) Descriptor() ([]byte, []int) {
	return fileDescriptor_141333b361aae010, []int{14}
}
func (m *PacketReceiptAbsenceData) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *PacketReceiptAbsenceData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_PacketReceiptAbsenceData.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *PacketReceiptAbsenceData) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PacketReceiptAbsenceData.Merge(m, src)
}
func (m *PacketReceiptAbsenceData) XXX_Size() int {
	return m.Size()
}
func (m *PacketReceiptAbsenceData) XXX_DiscardUnknown() {
	xxx_messageInfo_PacketReceiptAbsenceData.DiscardUnknown(m)
}

var xxx_messageInfo_PacketReceiptAbsenceData proto.InternalMessageInfo

func (m *PacketReceiptAbsenceData) GetPath() []byte {
	if m != nil {
		return m.Path
	}
	return nil
}

// NextSequenceRecvData returns the SignBytes data for verification of the next
// sequence to be received.
type NextSequenceRecvData struct {
	Path        []byte `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	NextSeqRecv uint64 `protobuf:"varint,2,opt,name=next_seq_recv,json=nextSeqRecv,proto3" json:"next_seq_recv,omitempty"`
}

func (m *NextSequenceRecvData) Reset()         { *m = NextSequenceRecvData{} }
func (m *NextSequenceRecvData) String() string { return proto.CompactTextString(m) }
func (*NextSequenceRecvData) ProtoMessage()    {}
func (*NextSequenceRecvData) Descriptor() ([]byte, []int) {
	return fileDescriptor_141333b361aae010, []int{15}
}
func (m *NextSequenceRecvData) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NextSequenceRecvData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NextSequenceRecvData.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *NextSequenceRecvData) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NextSequenceRecvData.Merge(m, src)
}
func (m *NextSequenceRecvData) XXX_Size() int {
	return m.Size()
}
func (m *NextSequenceRecvData) XXX_DiscardUnknown() {
	xxx_messageInfo_NextSequenceRecvData.DiscardUnknown(m)
}

var xxx_messageInfo_NextSequenceRecvData proto.InternalMessageInfo

func (m *NextSequenceRecvData) GetPath() []byte {
	if m != nil {
		return m.Path
	}
	return nil
}

func (m *NextSequenceRecvData) GetNextSeqRecv() uint64 {
	if m != nil {
		return m.NextSeqRecv
	}
	return 0
}

func init() {
	proto.RegisterEnum("ibc.lightclients.solomachine.v2.DataType", DataType_name, DataType_value)
	proto.RegisterType((*ClientState)(nil), "ibc.lightclients.solomachine.v2.ClientState")
	proto.RegisterType((*ConsensusState)(nil), "ibc.lightclients.solomachine.v2.ConsensusState")
	proto.RegisterType((*Header)(nil), "ibc.lightclients.solomachine.v2.Header")
	proto.RegisterType((*Misbehaviour)(nil), "ibc.lightclients.solomachine.v2.Misbehaviour")
	proto.RegisterType((*SignatureAndData)(nil), "ibc.lightclients.solomachine.v2.SignatureAndData")
	proto.RegisterType((*TimestampedSignatureData)(nil), "ibc.lightclients.solomachine.v2.TimestampedSignatureData")
	proto.RegisterType((*SignBytes)(nil), "ibc.lightclients.solomachine.v2.SignBytes")
	proto.RegisterType((*HeaderData)(nil), "ibc.lightclients.solomachine.v2.HeaderData")
	proto.RegisterType((*ClientStateData)(nil), "ibc.lightclients.solomachine.v2.ClientStateData")
	proto.RegisterType((*ConsensusStateData)(nil), "ibc.lightclients.solomachine.v2.ConsensusStateData")
	proto.RegisterType((*ConnectionStateData)(nil), "ibc.lightclients.solomachine.v2.ConnectionStateData")
	proto.RegisterType((*ChannelStateData)(nil), "ibc.lightclients.solomachine.v2.ChannelStateData")
	proto.RegisterType((*PacketCommitmentData)(nil), "ibc.lightclients.solomachine.v2.PacketCommitmentData")
	proto.RegisterType((*PacketAcknowledgementData)(nil), "ibc.lightclients.solomachine.v2.PacketAcknowledgementData")
	proto.RegisterType((*PacketReceiptAbsenceData)(nil), "ibc.lightclients.solomachine.v2.PacketReceiptAbsenceData")
	proto.RegisterType((*NextSequenceRecvData)(nil), "ibc.lightclients.solomachine.v2.NextSequenceRecvData")
}

func init() {
	proto.RegisterFile("ibc/lightclients/solomachine/v2/solomachine.proto", fileDescriptor_141333b361aae010)
}

var fileDescriptor_141333b361aae010 = []byte{
	// 1239 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xc1, 0x6e, 0xdb, 0x46,
	0x13, 0x36, 0x15, 0xc5, 0x91, 0x46, 0x8e, 0x2d, 0xf0, 0xf7, 0xdf, 0xca, 0x4c, 0xa0, 0xb0, 0x2e,
	0xd2, 0xb8, 0x45, 0x43, 0xc6, 0x4e, 0x9b, 0x14, 0x01, 0xd2, 0x82, 0xa1, 0x98, 0x46, 0x8d, 0x4d,
	0xab, 0x14, 0x9d, 0x26, 0xe9, 0x81, 0xa0, 0xc8, 0xb5, 0x4c, 0x44, 0xe2, 0x2a, 0xe4, 0x4a, 0x8e,
	0xfa, 0x04, 0x81, 0xda, 0x43, 0x5f, 0x40, 0x40, 0x81, 0xbe, 0x40, 0x1f, 0xa3, 0x45, 0x2f, 0x39,
	0xf6, 0x58, 0x24, 0xe8, 0x63, 0x14, 0x28, 0xb8, 0xbb, 0x12, 0x29, 0x39, 0x96, 0x0f, 0xb9, 0xed,
	0xce, 0x7c, 0xf3, 0x7d, 0x33, 0xb3, 0x9c, 0x5d, 0xc2, 0x76, 0xd0, 0xf2, 0xd4, 0x4e, 0xd0, 0x3e,
	0x22, 0x5e, 0x27, 0x40, 0x21, 0x89, 0xd5, 0x18, 0x77, 0x70, 0xd7, 0xf5, 0x8e, 0x82, 0x10, 0xa9,
	0x83, 0x9d, 0xec, 0x56, 0xe9, 0x45, 0x98, 0x60, 0xf1, 0x4a, 0xd0, 0xf2, 0x94, 0x6c, 0x88, 0x92,
	0xc5, 0x0c, 0x76, 0xa4, 0x6b, 0x09, 0xa7, 0x87, 0x23, 0xa4, 0x7a, 0x38, 0x0c, 0x91, 0x47, 0x02,
	0x1c, 0xaa, 0x83, 0xed, 0xcc, 0x8e, 0x31, 0x49, 0x1f, 0xa4, 0xc0, 0x23, 0x37, 0x0c, 0x51, 0x87,
	0xa2, 0xd8, 0x92, 0x43, 0xd6, 0xdb, 0xb8, 0x8d, 0xe9, 0x52, 0x4d, 0x56, 0xdc, 0xba, 0xd1, 0xc6,
	0xb8, 0xdd, 0x41, 0x2a, 0xdd, 0xb5, 0xfa, 0x87, 0xaa, 0x1b, 0x0e, 0x99, 0x6b, 0xf3, 0x1f, 0x01,
	0x4a, 0x3a, 0xcd, 0xab, 0x49, 0x5c, 0x82, 0x44, 0x09, 0x0a, 0x31, 0x7a, 0xde, 0x47, 0xa1, 0x87,
	0x2a, 0x82, 0x2c, 0x6c, 0xe5, 0xad, 0xe9, 0x5e, 0xbc, 0x04, 0xc5, 0x20, 0x76, 0x0e, 0x23, 0xfc,
	0x03, 0x0a, 0x2b, 0x39, 0x59, 0xd8, 0x2a, 0x58, 0x85, 0x20, 0xbe, 0x4f, 0xf7, 0xe2, 0x63, 0x58,
	0xf3, 0x70, 0x18, 0xa3, 0x30, 0xee, 0xc7, 0x4e, 0x9c, 0x70, 0x55, 0xce, 0xc9, 0xc2, 0x56, 0x69,
	0x47, 0x55, 0xce, 0x68, 0x80, 0xa2, 0x4f, 0xe2, 0x68, 0x0a, 0xd6, 0xaa, 0x37, 0xb3, 0x17, 0xef,
	0xc2, 0x25, 0xb7, 0xd3, 0xc1, 0xc7, 0x4e, 0xbf, 0xe7, 0xbb, 0x04, 0x39, 0xee, 0x21, 0x41, 0x91,
	0xd3, 0x8b, 0x70, 0x0f, 0xc7, 0x6e, 0xa7, 0x92, 0xa7, 0x89, 0x54, 0x28, 0xe4, 0x80, 0x22, 0xb4,
	0x04, 0xd0, 0xe0, 0xfe, 0x3b, 0xf9, 0x97, 0xbf, 0x5c, 0x59, 0xda, 0xfc, 0x51, 0x80, 0xd5, 0x59,
	0x1d, 0xf1, 0x26, 0x40, 0xaf, 0xdf, 0xea, 0x04, 0x9e, 0xf3, 0x0c, 0x0d, 0x69, 0xb1, 0xa5, 0x9d,
	0x75, 0x85, 0xb5, 0x4a, 0x99, 0xb4, 0x4a, 0xd1, 0xc2, 0xa1, 0x55, 0x64, 0xb8, 0x87, 0x68, 0x28,
	0xca, 0x50, 0xf2, 0x83, 0x01, 0x8a, 0xe2, 0xe0, 0x30, 0x40, 0x11, 0xed, 0x42, 0xd1, 0xca, 0x9a,
	0xc4, 0xcb, 0x50, 0x24, 0x41, 0x17, 0xc5, 0xc4, 0xed, 0xf6, 0x68, 0x0b, 0xf2, 0x56, 0x6a, 0xe0,
	0xd9, 0xfc, 0x29, 0xc0, 0xf2, 0x03, 0xe4, 0xfa, 0x28, 0x5a, 0xd8, 0xf0, 0x19, 0xaa, 0xdc, 0x1c,
	0x55, 0xe2, 0x8d, 0x83, 0x76, 0xe8, 0x92, 0x7e, 0xc4, 0x7a, 0xbd, 0x62, 0xa5, 0x06, 0xf1, 0x0e,
	0xac, 0x86, 0xe8, 0xd8, 0xc9, 0x54, 0x98, 0x5f, 0x50, 0xe1, 0x4a, 0x88, 0x8e, 0x1b, 0xd3, 0x22,
	0xaf, 0xc1, 0x5a, 0x12, 0x9b, 0x2d, 0xf4, 0x3c, 0x2d, 0x34, 0xa1, 0xac, 0xa5, 0x56, 0x5e, 0xcd,
	0xbf, 0x02, 0xac, 0xec, 0x05, 0x71, 0x0b, 0x1d, 0xb9, 0x83, 0x00, 0xf7, 0xa3, 0xe4, 0x43, 0x61,
	0x47, 0xed, 0x04, 0x3e, 0x2d, 0xaa, 0x68, 0x15, 0x98, 0xa1, 0xee, 0xcf, 0x14, 0x9c, 0x9b, 0x2b,
	0xf8, 0x11, 0x5c, 0x9c, 0x56, 0xe0, 0xe0, 0x70, 0xf2, 0x09, 0x6d, 0x9f, 0xf9, 0x09, 0x35, 0x27,
	0x51, 0x5a, 0xe8, 0xd7, 0x5c, 0xe2, 0x5a, 0x2b, 0x53, 0x9e, 0xfd, 0x70, 0x8e, 0x97, 0x1c, 0x63,
	0xde, 0x8b, 0x77, 0xe2, 0xb5, 0x8f, 0x31, 0xaf, 0xff, 0x37, 0x01, 0xca, 0xf3, 0xc0, 0xd9, 0xd3,
	0x11, 0xe6, 0x4f, 0xe7, 0x3e, 0x14, 0x7d, 0x97, 0xb8, 0x0e, 0x19, 0xf6, 0x58, 0x17, 0x56, 0x77,
	0x3e, 0x3e, 0x33, 0x99, 0x84, 0xd7, 0x1e, 0xf6, 0x90, 0x55, 0xf0, 0xf9, 0x4a, 0x14, 0x21, 0x9f,
	0xac, 0xf9, 0xf1, 0xd3, 0xf5, 0xec, 0x57, 0x93, 0x7f, 0xfb, 0x07, 0x88, 0xa0, 0x62, 0x4f, 0x4c,
	0xc8, 0x9f, 0x26, 0x4f, 0x33, 0xbf, 0x0a, 0xab, 0x69, 0xb3, 0x28, 0x3b, 0x4b, 0x3f, 0x6d, 0x61,
	0xed, 0x84, 0x4c, 0xee, 0xed, 0x32, 0x7f, 0x08, 0x50, 0x4c, 0xc8, 0xef, 0x0d, 0x09, 0x8a, 0xdf,
	0xe1, 0x53, 0x9f, 0x9b, 0xba, 0x73, 0x27, 0xa7, 0x6e, 0xa6, 0xa1, 0xf9, 0x77, 0x6f, 0xe8, 0xf9,
	0xb4, 0xa1, 0xbc, 0x96, 0xe7, 0x00, 0x6c, 0x64, 0x69, 0xf5, 0x9f, 0x41, 0x89, 0x8f, 0xd7, 0xd9,
	0xb7, 0x07, 0x9b, 0xad, 0x53, 0x06, 0x2b, 0xb7, 0x60, 0xb0, 0x7c, 0x58, 0xcb, 0xdc, 0xcd, 0x54,
	0x57, 0x84, 0x7c, 0xcf, 0x25, 0x47, 0xfc, 0x48, 0xe8, 0x5a, 0xbc, 0x0d, 0x2b, 0x7c, 0xdc, 0xd8,
	0xbd, 0x9b, 0x5b, 0x90, 0x4c, 0xc9, 0x4b, 0x09, 0xb9, 0x4a, 0x17, 0xc4, 0xd9, 0x9b, 0xf1, 0x54,
	0xa1, 0xbb, 0x27, 0xef, 0xf8, 0x45, 0x5a, 0x73, 0x17, 0x39, 0x97, 0x1b, 0xc0, 0xff, 0xf4, 0xe9,
	0xcb, 0xb6, 0x58, 0xcf, 0x00, 0x48, 0x1f, 0x41, 0x2e, 0x75, 0x95, 0x9e, 0x6a, 0xf2, 0x0a, 0x2a,
	0x99, 0x07, 0x72, 0xb0, 0xad, 0xa4, 0xa4, 0x46, 0xe8, 0x5b, 0x99, 0xc0, 0x69, 0x33, 0xcb, 0x3a,
	0x7b, 0x2b, 0x17, 0x8b, 0xde, 0x82, 0x0b, 0xfc, 0x4d, 0xe5, 0x8a, 0x97, 0x33, 0x8a, 0xfc, 0xb1,
	0x4d, 0xe4, 0xd8, 0xd2, 0x9a, 0x80, 0xb9, 0xca, 0x37, 0xb0, 0xde, 0x70, 0xbd, 0x67, 0x88, 0xe8,
	0xb8, 0xdb, 0x0d, 0x48, 0x17, 0x85, 0xe4, 0x54, 0xa5, 0x6a, 0x52, 0xde, 0x04, 0x45, 0xc5, 0x56,
	0xac, 0x8c, 0x65, 0xf3, 0x09, 0x6c, 0x30, 0x2e, 0xcd, 0x7b, 0x16, 0xe2, 0xe3, 0x0e, 0xf2, 0xdb,
	0x68, 0x21, 0xe1, 0x16, 0xac, 0xb9, 0xb3, 0x50, 0xce, 0x3a, 0x6f, 0xde, 0x54, 0xa0, 0xc2, 0xa8,
	0x2d, 0xe4, 0xa1, 0xa0, 0x47, 0xb4, 0x56, 0x9c, 0x8c, 0xe1, 0x69, 0xcc, 0x9b, 0x26, 0xac, 0x9b,
	0xe8, 0x05, 0x69, 0xf2, 0x71, 0xb5, 0x90, 0x37, 0x38, 0x35, 0x8b, 0x4d, 0xb8, 0x18, 0xa2, 0x17,
	0xc4, 0x89, 0xd1, 0x73, 0x27, 0x42, 0xde, 0x80, 0x8f, 0x73, 0x29, 0x64, 0x04, 0x49, 0xec, 0x27,
	0x3f, 0xe5, 0xa1, 0x30, 0x99, 0x3e, 0xf1, 0x0b, 0xf8, 0xb0, 0xa6, 0xd9, 0x9a, 0x63, 0x3f, 0x69,
	0x18, 0xce, 0x81, 0x59, 0x37, 0xeb, 0x76, 0x5d, 0xdb, 0xad, 0x3f, 0x35, 0x6a, 0xce, 0x81, 0xd9,
	0x6c, 0x18, 0x7a, 0xfd, 0x7e, 0xdd, 0xa8, 0x95, 0x97, 0xa4, 0xb5, 0xd1, 0x58, 0x2e, 0x65, 0x4c,
	0xe2, 0x47, 0xf0, 0x5e, 0x1a, 0xa9, 0xef, 0xd6, 0x0d, 0xd3, 0x76, 0x9a, 0xb6, 0x66, 0x1b, 0x65,
	0x41, 0x82, 0xd1, 0x58, 0x5e, 0x66, 0x36, 0xf1, 0x53, 0xd8, 0xc8, 0xe0, 0xf6, 0xcd, 0xa6, 0x61,
	0x36, 0x0f, 0x9a, 0x1c, 0x9a, 0x93, 0x2e, 0x8e, 0xc6, 0x72, 0x71, 0x6a, 0x16, 0x15, 0x90, 0x66,
	0xd0, 0xa6, 0xa1, 0xdb, 0xf5, 0x7d, 0x93, 0xc3, 0xcf, 0x49, 0xab, 0xa3, 0xb1, 0x0c, 0xa9, 0x5d,
	0xdc, 0x82, 0xf7, 0x33, 0xf8, 0x07, 0x9a, 0x69, 0x1a, 0xbb, 0x1c, 0x9c, 0x97, 0x4a, 0xa3, 0xb1,
	0x7c, 0x81, 0x1b, 0xc5, 0xcf, 0xe1, 0x52, 0x8a, 0x6c, 0x68, 0xfa, 0x43, 0xc3, 0x76, 0xf4, 0xfd,
	0xbd, 0xbd, 0xba, 0xbd, 0x67, 0x98, 0x76, 0xf9, 0xbc, 0xb4, 0x3e, 0x1a, 0xcb, 0x65, 0xe6, 0x48,
	0xed, 0xe2, 0x57, 0x20, 0x9f, 0x08, 0xd3, 0xf4, 0x87, 0xe6, 0xfe, 0x77, 0xbb, 0x46, 0xed, 0x6b,
	0x83, 0xc6, 0x2e, 0x4b, 0x1b, 0xa3, 0xb1, 0xfc, 0x7f, 0xe6, 0x9d, 0x73, 0x8a, 0x5f, 0xbe, 0x85,
	0xc0, 0x32, 0x74, 0xa3, 0xde, 0xb0, 0x1d, 0xed, 0x5e, 0xd3, 0x30, 0x75, 0xa3, 0x7c, 0x41, 0xaa,
	0x8c, 0xc6, 0xf2, 0x3a, 0xf3, 0x72, 0x27, 0xf7, 0x89, 0xb7, 0xe0, 0x72, 0x1a, 0x6f, 0x1a, 0x8f,
	0x6d, 0xa7, 0x69, 0x7c, 0x7b, 0x90, 0xb8, 0x12, 0x9a, 0x47, 0xe5, 0x02, 0x4b, 0x3c, 0xf1, 0x4c,
	0x1c, 0x89, 0x5d, 0x94, 0xa1, 0x9c, 0xc6, 0x3d, 0x30, 0xb4, 0x9a, 0x61, 0x95, 0x8b, 0xec, 0x64,
	0xd8, 0x4e, 0xca, 0xbf, 0xfc, 0xb5, 0xba, 0x74, 0xef, 0xfb, 0xdf, 0x5f, 0x57, 0x85, 0x57, 0xaf,
	0xab, 0xc2, 0xdf, 0xaf, 0xab, 0xc2, 0xcf, 0x6f, 0xaa, 0x4b, 0xaf, 0xde, 0x54, 0x97, 0xfe, 0x7a,
	0x53, 0x5d, 0x7a, 0xaa, 0xb5, 0x03, 0x72, 0xd4, 0x6f, 0x29, 0x1e, 0xee, 0xaa, 0x1e, 0x8e, 0xbb,
	0x38, 0x56, 0x83, 0x96, 0x77, 0xbd, 0x8d, 0xd5, 0xc1, 0xf6, 0x0d, 0xb5, 0x8b, 0xfd, 0x7e, 0x07,
	0xc5, 0xec, 0xa7, 0xf8, 0xc6, 0xce, 0x75, 0x76, 0xb9, 0xa9, 0xdd, 0xa0, 0x1d, 0xb9, 0xc9, 0xe8,
	0xc7, 0xea, 0xe0, 0x76, 0x6b, 0x99, 0x5e, 0x4a, 0x37, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xe7,
	0x7a, 0x6d, 0x61, 0xbc, 0x0b, 0x00, 0x00,
}

func (m *ClientState) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *ClientState) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *ClientState) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.AllowUpdateAfterProposal {
		i--
		if m.AllowUpdateAfterProposal {
			dAtA[i] = 1
		} else {
			dAtA[i] = 0
		}
		i--
		dAtA[i] = 0x20
	}
	if m.ConsensusState != nil {
		{
			size, err := m.ConsensusState.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintSolomachine(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x1a
	}
	if m.IsFrozen {
		i--
		if m.IsFrozen {
			dAtA[i] = 1
		} else {
			dAtA[i] = 0
		}
		i--
		dAtA[i] = 0x10
	}
	if m.Sequence != 0 {
		i = encodeVarintSolomachine(dAtA, i, uint64(m.Sequence))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *ConsensusState) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *ConsensusState) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *ConsensusState) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Timestamp != 0 {
		i = encodeVarintSolomachine(dAtA, i, uint64(m.Timestamp))
		i--
		dAtA[i] = 0x18
	}
	if len(m.Diversifier) > 0 {
		i -= len(m.Diversifier)
		copy(dAtA[i:], m.Diversifier)
		i = encodeVarintSolomachine(dAtA, i, uint64(len(m.Diversifier)))
		i--
		dAtA[i] = 0x12
	}
	if m.PublicKey != nil {
		{
			size, err := m.PublicKey.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintSolomachine(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *Header) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *Header) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Header) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.NewDiversifier) > 0 {
		i -= len(m.NewDiversifier)
		copy(dAtA[i:], m.NewDiversifier)
		i = encodeVarintSolomachine(dAtA, i, uint64(len(m.NewDiversifier)))
		i--
		dAtA[i] = 0x2a
	}
	if m.NewPublicKey != nil {
		{
			size, err := m.NewPublicKey.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintSolomachine(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x22
	}
	if len(m.Signature) > 0 {
		i -= len(m.Signature)
		copy(dAtA[i:], m.Signature)
		i = encodeVarintSolomachine(dAtA, i, uint64(len(m.Signature)))
		i--
		dAtA[i] = 0x1a
	}
	if m.Timestamp != 0 {
		i = encodeVarintSolomachine(dAtA, i, uint64(m.Timestamp))
		i--
		dAtA[i] = 0x10
	}
	if m.Sequence != 0 {
		i = encodeVarintSolomachine(dAtA, i, uint64(m.Sequence))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *Misbehaviour) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *Misbehaviour) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Misbehaviour) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.SignatureTwo != nil {
		{
			size, err := m.SignatureTwo.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintSolomachine(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x22
	}
	if m.SignatureOne != nil {
		{
			size, err := m.SignatureOne.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintSolomachine(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x1a
	}
	if m.Sequence != 0 {
		i = encodeVarintSolomachine(dAtA, i, uint64(m.Sequence))
		i--
		dAtA[i] = 0x10
	}
	if len(m.ClientId) > 0 {
		i -= len(m.ClientId)
		copy(dAtA[i:], m.ClientId)
		i = encodeVarintSolomachine(dAtA, i, uint64(len(m.ClientId)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *SignatureAndData) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *SignatureAndData) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *SignatureAndData) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Timestamp != 0 {
		i = encodeVarintSolomachine(dAtA, i, uint64(m.Timestamp))
		i--
		dAtA[i] = 0x20
	}
	if len(m.Data) > 0 {
		i -= len(m.Data)
		copy(dAtA[i:], m.Data)
		i = encodeVarintSolomachine(dAtA, i, uint64(len(m.Data)))
		i--
		dAtA[i] = 0x1a
	}
	if m.DataType != 0 {
		i = encodeVarintSolomachine(dAtA, i, uint64(m.DataType))
		i--
		dAtA[i] = 0x10
	}
	if len(m.Signature) > 0 {
		i -= len(m.Signature)
		copy(dAtA[i:], m.Signature)
		i = encodeVarintSolomachine(dAtA, i, uint64(len(m.Signature)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *TimestampedSignatureData) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *TimestampedSignatureData) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *TimestampedSignatureData) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Timestamp != 0 {
		i = encodeVarintSolomachine(dAtA, i, uint64(m.Timestamp))
		i--
		dAtA[i] = 0x10
	}
	if len(m.SignatureData) > 0 {
		i -= len(m.SignatureData)
		copy(dAtA[i:], m.SignatureData)
		i = encodeVarintSolomachine(dAtA, i, uint64(len(m.SignatureData)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *SignBytes) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *SignBytes) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *SignBytes) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.Data) > 0 {
		i -= len(m.Data)
		copy(dAtA[i:], m.Data)
		i = encodeVarintSolomachine(dAtA, i, uint64(len(m.Data)))
		i--
		dAtA[i] = 0x2a
	}
	if m.DataType != 0 {
		i = encodeVarintSolomachine(dAtA, i, uint64(m.DataType))
		i--
		dAtA[i] = 0x20
	}
	if len(m.Diversifier) > 0 {
		i -= len(m.Diversifier)
		copy(dAtA[i:], m.Diversifier)
		i = encodeVarintSolomachine(dAtA, i, uint64(len(m.Diversifier)))
		i--
		dAtA[i] = 0x1a
	}
	if m.Timestamp != 0 {
		i = encodeVarintSolomachine(dAtA, i, uint64(m.Timestamp))
		i--
		dAtA[i] = 0x10
	}
	if m.Sequence != 0 {
		i = encodeVarintSolomachine(dAtA, i, uint64(m.Sequence))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *HeaderData) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *HeaderData) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *HeaderData) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.NewDiversifier) > 0 {
		i -= len(m.NewDiversifier)
		copy(dAtA[i:], m.NewDiversifier)
		i = encodeVarintSolomachine(dAtA, i, uint64(len(m.NewDiversifier)))
		i--
		dAtA[i] = 0x12
	}
	if m.NewPubKey != nil {
		{
			size, err := m.NewPubKey.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintSolomachine(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *ClientStateData) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *ClientStateData) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *ClientStateData) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.ClientState != nil {
		{
			size, err := m.ClientState.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintSolomachine(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x12
	}
	if len(m.Path) > 0 {
		i -= len(m.Path)
		copy(dAtA[i:], m.Path)
		i = encodeVarintSolomachine(dAtA, i, uint64(len(m.Path)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *ConsensusStateData) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *ConsensusStateData) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *ConsensusStateData) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.ConsensusState != nil {
		{
			size, err := m.ConsensusState.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintSolomachine(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x12
	}
	if len(m.Path) > 0 {
		i -= len(m.Path)
		copy(dAtA[i:], m.Path)
		i = encodeVarintSolomachine(dAtA, i, uint64(len(m.Path)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *ConnectionStateData) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *ConnectionStateData) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *ConnectionStateData) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Connection != nil {
		{
			size, err := m.Connection.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintSolomachine(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x12
	}
	if len(m.Path) > 0 {
		i -= len(m.Path)
		copy(dAtA[i:], m.Path)
		i = encodeVarintSolomachine(dAtA, i, uint64(len(m.Path)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *ChannelStateData) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *ChannelStateData) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *ChannelStateData) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Channel != nil {
		{
			size, err := m.Channel.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintSolomachine(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x12
	}
	if len(m.Path) > 0 {
		i -= len(m.Path)
		copy(dAtA[i:], m.Path)
		i = encodeVarintSolomachine(dAtA, i, uint64(len(m.Path)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *PacketCommitmentData) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *PacketCommitmentData) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *PacketCommitmentData) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.Commitment) > 0 {
		i -= len(m.Commitment)
		copy(dAtA[i:], m.Commitment)
		i = encodeVarintSolomachine(dAtA, i, uint64(len(m.Commitment)))
		i--
		dAtA[i] = 0x12
	}
	if len(m.Path) > 0 {
		i -= len(m.Path)
		copy(dAtA[i:], m.Path)
		i = encodeVarintSolomachine(dAtA, i, uint64(len(m.Path)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *PacketAcknowledgementData) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *PacketAcknowledgementData) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *PacketAcknowledgementData) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.Acknowledgement) > 0 {
		i -= len(m.Acknowledgement)
		copy(dAtA[i:], m.Acknowledgement)
		i = encodeVarintSolomachine(dAtA, i, uint64(len(m.Acknowledgement)))
		i--
		dAtA[i] = 0x12
	}
	if len(m.Path) > 0 {
		i -= len(m.Path)
		copy(dAtA[i:], m.Path)
		i = encodeVarintSolomachine(dAtA, i, uint64(len(m.Path)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *PacketReceiptAbsenceData) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *PacketReceiptAbsenceData) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *PacketReceiptAbsenceData) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.Path) > 0 {
		i -= len(m.Path)
		copy(dAtA[i:], m.Path)
		i = encodeVarintSolomachine(dAtA, i, uint64(len(m.Path)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *NextSequenceRecvData) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *NextSequenceRecvData) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NextSequenceRecvData) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.NextSeqRecv != 0 {
		i = encodeVarintSolomachine(dAtA, i, uint64(m.NextSeqRecv))
		i--
		dAtA[i] = 0x10
	}
	if len(m.Path) > 0 {
		i -= len(m.Path)
		copy(dAtA[i:], m.Path)
		i = encodeVarintSolomachine(dAtA, i, uint64(len(m.Path)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func encodeVarintSolomachine(dAtA []byte, offset int, v uint64) int {
	offset -= sovSolomachine(v)
	base := offset
	for v >= 1<<7 {
		dAtA[offset] = uint8(v&0x7f | 0x80)
		v >>= 7
		offset++
	}
	dAtA[offset] = uint8(v)
	return base
}
func (m *ClientState) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Sequence != 0 {
		n += 1 + sovSolomachine(uint64(m.Sequence))
	}
	if m.IsFrozen {
		n += 2
	}
	if m.ConsensusState != nil {
		l = m.ConsensusState.Size()
		n += 1 + l + sovSolomachine(uint64(l))
	}
	if m.AllowUpdateAfterProposal {
		n += 2
	}
	return n
}

func (m *ConsensusState) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.PublicKey != nil {
		l = m.PublicKey.Size()
		n += 1 + l + sovSolomachine(uint64(l))
	}
	l = len(m.Diversifier)
	if l > 0 {
		n += 1 + l + sovSolomachine(uint64(l))
	}
	if m.Timestamp != 0 {
		n += 1 + sovSolomachine(uint64(m.Timestamp))
	}
	return n
}

func (m *Header) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Sequence != 0 {
		n += 1 + sovSolomachine(uint64(m.Sequence))
	}
	if m.Timestamp != 0 {
		n += 1 + sovSolomachine(uint64(m.Timestamp))
	}
	l = len(m.Signature)
	if l > 0 {
		n += 1 + l + sovSolomachine(uint64(l))
	}
	if m.NewPublicKey != nil {
		l = m.NewPublicKey.Size()
		n += 1 + l + sovSolomachine(uint64(l))
	}
	l = len(m.NewDiversifier)
	if l > 0 {
		n += 1 + l + sovSolomachine(uint64(l))
	}
	return n
}

func (m *Misbehaviour) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.ClientId)
	if l > 0 {
		n += 1 + l + sovSolomachine(uint64(l))
	}
	if m.Sequence != 0 {
		n += 1 + sovSolomachine(uint64(m.Sequence))
	}
	if m.SignatureOne != nil {
		l = m.SignatureOne.Size()
		n += 1 + l + sovSolomachine(uint64(l))
	}
	if m.SignatureTwo != nil {
		l = m.SignatureTwo.Size()
		n += 1 + l + sovSolomachine(uint64(l))
	}
	return n
}

func (m *SignatureAndData) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.Signature)
	if l > 0 {
		n += 1 + l + sovSolomachine(uint64(l))
	}
	if m.DataType != 0 {
		n += 1 + sovSolomachine(uint64(m.DataType))
	}
	l = len(m.Data)
	if l > 0 {
		n += 1 + l + sovSolomachine(uint64(l))
	}
	if m.Timestamp != 0 {
		n += 1 + sovSolomachine(uint64(m.Timestamp))
	}
	return n
}

func (m *TimestampedSignatureData) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.SignatureData)
	if l > 0 {
		n += 1 + l + sovSolomachine(uint64(l))
	}
	if m.Timestamp != 0 {
		n += 1 + sovSolomachine(uint64(m.Timestamp))
	}
	return n
}

func (m *SignBytes) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Sequence != 0 {
		n += 1 + sovSolomachine(uint64(m.Sequence))
	}
	if m.Timestamp != 0 {
		n += 1 + sovSolomachine(uint64(m.Timestamp))
	}
	l = len(m.Diversifier)
	if l > 0 {
		n += 1 + l + sovSolomachine(uint64(l))
	}
	if m.DataType != 0 {
		n += 1 + sovSolomachine(uint64(m.DataType))
	}
	l = len(m.Data)
	if l > 0 {
		n += 1 + l + sovSolomachine(uint64(l))
	}
	return n
}

func (m *HeaderData) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.NewPubKey != nil {
		l = m.NewPubKey.Size()
		n += 1 + l + sovSolomachine(uint64(l))
	}
	l = len(m.NewDiversifier)
	if l > 0 {
		n += 1 + l + sovSolomachine(uint64(l))
	}
	return n
}

func (m *ClientStateData) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.Path)
	if l > 0 {
		n += 1 + l + sovSolomachine(uint64(l))
	}
	if m.ClientState != nil {
		l = m.ClientState.Size()
		n += 1 + l + sovSolomachine(uint64(l))
	}
	return n
}

func (m *ConsensusStateData) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.Path)
	if l > 0 {
		n += 1 + l + sovSolomachine(uint64(l))
	}
	if m.ConsensusState != nil {
		l = m.ConsensusState.Size()
		n += 1 + l + sovSolomachine(uint64(l))
	}
	return n
}

func (m *ConnectionStateData) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.Path)
	if l > 0 {
		n += 1 + l + sovSolomachine(uint64(l))
	}
	if m.Connection != nil {
		l = m.Connection.Size()
		n += 1 + l + sovSolomachine(uint64(l))
	}
	return n
}

func (m *ChannelStateData) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.Path)
	if l > 0 {
		n += 1 + l + sovSolomachine(uint64(l))
	}
	if m.Channel != nil {
		l = m.Channel.Size()
		n += 1 + l + sovSolomachine(uint64(l))
	}
	return n
}

func (m *PacketCommitmentData) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.Path)
	if l > 0 {
		n += 1 + l + sovSolomachine(uint64(l))
	}
	l = len(m.Commitment)
	if l > 0 {
		n += 1 + l + sovSolomachine(uint64(l))
	}
	return n
}

func (m *PacketAcknowledgementData) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.Path)
	if l > 0 {
		n += 1 + l + sovSolomachine(uint64(l))
	}
	l = len(m.Acknowledgement)
	if l > 0 {
		n += 1 + l + sovSolomachine(uint64(l))
	}
	return n
}

func (m *PacketReceiptAbsenceData) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.Path)
	if l > 0 {
		n += 1 + l + sovSolomachine(uint64(l))
	}
	return n
}

func (m *NextSequenceRecvData) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.Path)
	if l > 0 {
		n += 1 + l + sovSolomachine(uint64(l))
	}
	if m.NextSeqRecv != 0 {
		n += 1 + sovSolomachine(uint64(m.NextSeqRecv))
	}
	return n
}

func sovSolomachine(x uint64) (n int) {
	return (math_bits.Len64(x|1) + 6) / 7
}
func sozSolomachine(x uint64) (n int) {
	return sovSolomachine(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (m *ClientState) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowSolomachine
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: ClientState: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: ClientState: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Sequence", wireType)
			}
			m.Sequence = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Sequence |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field IsFrozen", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.IsFrozen = bool(v != 0)
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field ConsensusState", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.ConsensusState == nil {
				m.ConsensusState = &ConsensusState{}
			}
			if err := m.ConsensusState.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field AllowUpdateAfterProposal", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.AllowUpdateAfterProposal = bool(v != 0)
		default:
			iNdEx = preIndex
			skippy, err := skipSolomachine(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthSolomachine
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *ConsensusState) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowSolomachine
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: ConsensusState: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: ConsensusState: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field PublicKey", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.PublicKey == nil {
				m.PublicKey = &types.Any{}
			}
			if err := m.PublicKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Diversifier", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Diversifier = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType)
			}
			m.Timestamp = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Timestamp |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipSolomachine(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthSolomachine
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *Header) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowSolomachine
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Header: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Header: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Sequence", wireType)
			}
			m.Sequence = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Sequence |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType)
			}
			m.Timestamp = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Timestamp |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Signature", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Signature = append(m.Signature[:0], dAtA[iNdEx:postIndex]...)
			if m.Signature == nil {
				m.Signature = []byte{}
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field NewPublicKey", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.NewPublicKey == nil {
				m.NewPublicKey = &types.Any{}
			}
			if err := m.NewPublicKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 5:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field NewDiversifier", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.NewDiversifier = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipSolomachine(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthSolomachine
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *Misbehaviour) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowSolomachine
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Misbehaviour: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Misbehaviour: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field ClientId", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.ClientId = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Sequence", wireType)
			}
			m.Sequence = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Sequence |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field SignatureOne", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.SignatureOne == nil {
				m.SignatureOne = &SignatureAndData{}
			}
			if err := m.SignatureOne.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field SignatureTwo", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.SignatureTwo == nil {
				m.SignatureTwo = &SignatureAndData{}
			}
			if err := m.SignatureTwo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipSolomachine(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthSolomachine
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *SignatureAndData) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowSolomachine
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: SignatureAndData: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: SignatureAndData: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Signature", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Signature = append(m.Signature[:0], dAtA[iNdEx:postIndex]...)
			if m.Signature == nil {
				m.Signature = []byte{}
			}
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field DataType", wireType)
			}
			m.DataType = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.DataType |= DataType(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
			if m.Data == nil {
				m.Data = []byte{}
			}
			iNdEx = postIndex
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType)
			}
			m.Timestamp = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Timestamp |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipSolomachine(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthSolomachine
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *TimestampedSignatureData) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowSolomachine
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: TimestampedSignatureData: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: TimestampedSignatureData: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field SignatureData", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.SignatureData = append(m.SignatureData[:0], dAtA[iNdEx:postIndex]...)
			if m.SignatureData == nil {
				m.SignatureData = []byte{}
			}
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType)
			}
			m.Timestamp = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Timestamp |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipSolomachine(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthSolomachine
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *SignBytes) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowSolomachine
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: SignBytes: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: SignBytes: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Sequence", wireType)
			}
			m.Sequence = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Sequence |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType)
			}
			m.Timestamp = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Timestamp |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Diversifier", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Diversifier = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field DataType", wireType)
			}
			m.DataType = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.DataType |= DataType(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 5:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
			if m.Data == nil {
				m.Data = []byte{}
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipSolomachine(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthSolomachine
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *HeaderData) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowSolomachine
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: HeaderData: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: HeaderData: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field NewPubKey", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.NewPubKey == nil {
				m.NewPubKey = &types.Any{}
			}
			if err := m.NewPubKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field NewDiversifier", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.NewDiversifier = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipSolomachine(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthSolomachine
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *ClientStateData) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowSolomachine
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: ClientStateData: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: ClientStateData: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Path = append(m.Path[:0], dAtA[iNdEx:postIndex]...)
			if m.Path == nil {
				m.Path = []byte{}
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field ClientState", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.ClientState == nil {
				m.ClientState = &types.Any{}
			}
			if err := m.ClientState.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipSolomachine(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthSolomachine
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *ConsensusStateData) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowSolomachine
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: ConsensusStateData: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: ConsensusStateData: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Path = append(m.Path[:0], dAtA[iNdEx:postIndex]...)
			if m.Path == nil {
				m.Path = []byte{}
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field ConsensusState", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.ConsensusState == nil {
				m.ConsensusState = &types.Any{}
			}
			if err := m.ConsensusState.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipSolomachine(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthSolomachine
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *ConnectionStateData) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowSolomachine
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: ConnectionStateData: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: ConnectionStateData: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Path = append(m.Path[:0], dAtA[iNdEx:postIndex]...)
			if m.Path == nil {
				m.Path = []byte{}
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Connection", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Connection == nil {
				m.Connection = &types1.ConnectionEnd{}
			}
			if err := m.Connection.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipSolomachine(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthSolomachine
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *ChannelStateData) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowSolomachine
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: ChannelStateData: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: ChannelStateData: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Path = append(m.Path[:0], dAtA[iNdEx:postIndex]...)
			if m.Path == nil {
				m.Path = []byte{}
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Channel", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Channel == nil {
				m.Channel = &types2.Channel{}
			}
			if err := m.Channel.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipSolomachine(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthSolomachine
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *PacketCommitmentData) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowSolomachine
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: PacketCommitmentData: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: PacketCommitmentData: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Path = append(m.Path[:0], dAtA[iNdEx:postIndex]...)
			if m.Path == nil {
				m.Path = []byte{}
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Commitment", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Commitment = append(m.Commitment[:0], dAtA[iNdEx:postIndex]...)
			if m.Commitment == nil {
				m.Commitment = []byte{}
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipSolomachine(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthSolomachine
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *PacketAcknowledgementData) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowSolomachine
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: PacketAcknowledgementData: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: PacketAcknowledgementData: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Path = append(m.Path[:0], dAtA[iNdEx:postIndex]...)
			if m.Path == nil {
				m.Path = []byte{}
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Acknowledgement", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Acknowledgement = append(m.Acknowledgement[:0], dAtA[iNdEx:postIndex]...)
			if m.Acknowledgement == nil {
				m.Acknowledgement = []byte{}
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipSolomachine(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthSolomachine
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *PacketReceiptAbsenceData) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowSolomachine
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: PacketReceiptAbsenceData: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: PacketReceiptAbsenceData: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Path = append(m.Path[:0], dAtA[iNdEx:postIndex]...)
			if m.Path == nil {
				m.Path = []byte{}
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipSolomachine(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthSolomachine
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NextSequenceRecvData) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowSolomachine
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NextSequenceRecvData: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NextSequenceRecvData: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthSolomachine
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthSolomachine
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Path = append(m.Path[:0], dAtA[iNdEx:postIndex]...)
			if m.Path == nil {
				m.Path = []byte{}
			}
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field NextSeqRecv", wireType)
			}
			m.NextSeqRecv = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.NextSeqRecv |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipSolomachine(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthSolomachine
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func skipSolomachine(dAtA []byte) (n int, err error) {
	l := len(dAtA)
	iNdEx := 0
	depth := 0
	for iNdEx < l {
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return 0, ErrIntOverflowSolomachine
			}
			if iNdEx >= l {
				return 0, io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		wireType := int(wire & 0x7)
		switch wireType {
		case 0:
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return 0, ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				iNdEx++
				if dAtA[iNdEx-1] < 0x80 {
					break
				}
			}
		case 1:
			iNdEx += 8
		case 2:
			var length int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return 0, ErrIntOverflowSolomachine
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				length |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if length < 0 {
				return 0, ErrInvalidLengthSolomachine
			}
			iNdEx += length
		case 3:
			depth++
		case 4:
			if depth == 0 {
				return 0, ErrUnexpectedEndOfGroupSolomachine
			}
			depth--
		case 5:
			iNdEx += 4
		default:
			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
		}
		if iNdEx < 0 {
			return 0, ErrInvalidLengthSolomachine
		}
		if depth == 0 {
			return iNdEx, nil
		}
	}
	return 0, io.ErrUnexpectedEOF
}

var (
	ErrInvalidLengthSolomachine        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowSolomachine          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupSolomachine = fmt.Errorf("proto: unexpected end of group")
)
