// Code generated by protoc-gen-go. DO NOT EDIT.
// source: service.proto

package walletrpc

import (
	context "context"
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	math "math"
)

// 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.ProtoPackageIsVersion3 // please upgrade the proto package

// A BlockID message contains identifiers to select a block: a height or a
// hash. Specification by hash is not implemented, but may be in the future.
type BlockID struct {
	Height               uint64   `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	Hash                 []byte   `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *BlockID) Reset()         { *m = BlockID{} }
func (m *BlockID) String() string { return proto.CompactTextString(m) }
func (*BlockID) ProtoMessage()    {}
func (*BlockID) Descriptor() ([]byte, []int) {
	return fileDescriptor_a0b84a42fa06f626, []int{0}
}

func (m *BlockID) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BlockID.Unmarshal(m, b)
}
func (m *BlockID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BlockID.Marshal(b, m, deterministic)
}
func (m *BlockID) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BlockID.Merge(m, src)
}
func (m *BlockID) XXX_Size() int {
	return xxx_messageInfo_BlockID.Size(m)
}
func (m *BlockID) XXX_DiscardUnknown() {
	xxx_messageInfo_BlockID.DiscardUnknown(m)
}

var xxx_messageInfo_BlockID proto.InternalMessageInfo

func (m *BlockID) GetHeight() uint64 {
	if m != nil {
		return m.Height
	}
	return 0
}

func (m *BlockID) GetHash() []byte {
	if m != nil {
		return m.Hash
	}
	return nil
}

// BlockRange specifies a series of blocks from start to end inclusive.
// Both BlockIDs must be heights; specification by hash is not yet supported.
type BlockRange struct {
	Start                *BlockID `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"`
	End                  *BlockID `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *BlockRange) Reset()         { *m = BlockRange{} }
func (m *BlockRange) String() string { return proto.CompactTextString(m) }
func (*BlockRange) ProtoMessage()    {}
func (*BlockRange) Descriptor() ([]byte, []int) {
	return fileDescriptor_a0b84a42fa06f626, []int{1}
}

func (m *BlockRange) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BlockRange.Unmarshal(m, b)
}
func (m *BlockRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BlockRange.Marshal(b, m, deterministic)
}
func (m *BlockRange) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BlockRange.Merge(m, src)
}
func (m *BlockRange) XXX_Size() int {
	return xxx_messageInfo_BlockRange.Size(m)
}
func (m *BlockRange) XXX_DiscardUnknown() {
	xxx_messageInfo_BlockRange.DiscardUnknown(m)
}

var xxx_messageInfo_BlockRange proto.InternalMessageInfo

func (m *BlockRange) GetStart() *BlockID {
	if m != nil {
		return m.Start
	}
	return nil
}

func (m *BlockRange) GetEnd() *BlockID {
	if m != nil {
		return m.End
	}
	return nil
}

// A TxFilter contains the information needed to identify a particular
// transaction: either a block and an index, or a direct transaction hash.
// Currently, only specification by hash is supported.
type TxFilter struct {
	Block                *BlockID `protobuf:"bytes,1,opt,name=block,proto3" json:"block,omitempty"`
	Index                uint64   `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"`
	Hash                 []byte   `protobuf:"bytes,3,opt,name=hash,proto3" json:"hash,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TxFilter) Reset()         { *m = TxFilter{} }
func (m *TxFilter) String() string { return proto.CompactTextString(m) }
func (*TxFilter) ProtoMessage()    {}
func (*TxFilter) Descriptor() ([]byte, []int) {
	return fileDescriptor_a0b84a42fa06f626, []int{2}
}

func (m *TxFilter) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TxFilter.Unmarshal(m, b)
}
func (m *TxFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TxFilter.Marshal(b, m, deterministic)
}
func (m *TxFilter) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TxFilter.Merge(m, src)
}
func (m *TxFilter) XXX_Size() int {
	return xxx_messageInfo_TxFilter.Size(m)
}
func (m *TxFilter) XXX_DiscardUnknown() {
	xxx_messageInfo_TxFilter.DiscardUnknown(m)
}

var xxx_messageInfo_TxFilter proto.InternalMessageInfo

func (m *TxFilter) GetBlock() *BlockID {
	if m != nil {
		return m.Block
	}
	return nil
}

func (m *TxFilter) GetIndex() uint64 {
	if m != nil {
		return m.Index
	}
	return 0
}

func (m *TxFilter) GetHash() []byte {
	if m != nil {
		return m.Hash
	}
	return nil
}

// RawTransaction contains the complete transaction data. It also optionally includes
// the block height in which the transaction was included
type RawTransaction struct {
	Data                 []byte   `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
	Height               uint64   `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *RawTransaction) Reset()         { *m = RawTransaction{} }
func (m *RawTransaction) String() string { return proto.CompactTextString(m) }
func (*RawTransaction) ProtoMessage()    {}
func (*RawTransaction) Descriptor() ([]byte, []int) {
	return fileDescriptor_a0b84a42fa06f626, []int{3}
}

func (m *RawTransaction) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RawTransaction.Unmarshal(m, b)
}
func (m *RawTransaction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RawTransaction.Marshal(b, m, deterministic)
}
func (m *RawTransaction) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RawTransaction.Merge(m, src)
}
func (m *RawTransaction) XXX_Size() int {
	return xxx_messageInfo_RawTransaction.Size(m)
}
func (m *RawTransaction) XXX_DiscardUnknown() {
	xxx_messageInfo_RawTransaction.DiscardUnknown(m)
}

var xxx_messageInfo_RawTransaction proto.InternalMessageInfo

func (m *RawTransaction) GetData() []byte {
	if m != nil {
		return m.Data
	}
	return nil
}

func (m *RawTransaction) GetHeight() uint64 {
	if m != nil {
		return m.Height
	}
	return 0
}

// A SendResponse encodes an error code and a string. It is currently used
// only by SendTransaction(). If error code is zero, the operation was
// successful; if non-zero, it and the message specify the failure.
type SendResponse struct {
	ErrorCode            int32    `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"`
	ErrorMessage         string   `protobuf:"bytes,2,opt,name=errorMessage,proto3" json:"errorMessage,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SendResponse) Reset()         { *m = SendResponse{} }
func (m *SendResponse) String() string { return proto.CompactTextString(m) }
func (*SendResponse) ProtoMessage()    {}
func (*SendResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_a0b84a42fa06f626, []int{4}
}

func (m *SendResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SendResponse.Unmarshal(m, b)
}
func (m *SendResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SendResponse.Marshal(b, m, deterministic)
}
func (m *SendResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SendResponse.Merge(m, src)
}
func (m *SendResponse) XXX_Size() int {
	return xxx_messageInfo_SendResponse.Size(m)
}
func (m *SendResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_SendResponse.DiscardUnknown(m)
}

var xxx_messageInfo_SendResponse proto.InternalMessageInfo

func (m *SendResponse) GetErrorCode() int32 {
	if m != nil {
		return m.ErrorCode
	}
	return 0
}

func (m *SendResponse) GetErrorMessage() string {
	if m != nil {
		return m.ErrorMessage
	}
	return ""
}

// Chainspec is a placeholder to allow specification of a particular chain fork.
type ChainSpec struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ChainSpec) Reset()         { *m = ChainSpec{} }
func (m *ChainSpec) String() string { return proto.CompactTextString(m) }
func (*ChainSpec) ProtoMessage()    {}
func (*ChainSpec) Descriptor() ([]byte, []int) {
	return fileDescriptor_a0b84a42fa06f626, []int{5}
}

func (m *ChainSpec) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ChainSpec.Unmarshal(m, b)
}
func (m *ChainSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ChainSpec.Marshal(b, m, deterministic)
}
func (m *ChainSpec) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ChainSpec.Merge(m, src)
}
func (m *ChainSpec) XXX_Size() int {
	return xxx_messageInfo_ChainSpec.Size(m)
}
func (m *ChainSpec) XXX_DiscardUnknown() {
	xxx_messageInfo_ChainSpec.DiscardUnknown(m)
}

var xxx_messageInfo_ChainSpec proto.InternalMessageInfo

// Empty is for gRPCs that take no arguments, currently only GetLightdInfo.
type Empty struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Empty) Reset()         { *m = Empty{} }
func (m *Empty) String() string { return proto.CompactTextString(m) }
func (*Empty) ProtoMessage()    {}
func (*Empty) Descriptor() ([]byte, []int) {
	return fileDescriptor_a0b84a42fa06f626, []int{6}
}

func (m *Empty) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Empty.Unmarshal(m, b)
}
func (m *Empty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Empty.Marshal(b, m, deterministic)
}
func (m *Empty) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Empty.Merge(m, src)
}
func (m *Empty) XXX_Size() int {
	return xxx_messageInfo_Empty.Size(m)
}
func (m *Empty) XXX_DiscardUnknown() {
	xxx_messageInfo_Empty.DiscardUnknown(m)
}

var xxx_messageInfo_Empty proto.InternalMessageInfo

// The LightdInfo returns various information about this lightwalletd instance
// and the state of the blockchain.
type LightdInfo struct {
	Version                 string   `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
	Vendor                  string   `protobuf:"bytes,2,opt,name=vendor,proto3" json:"vendor,omitempty"`
	TaddrSupport            bool     `protobuf:"varint,3,opt,name=taddrSupport,proto3" json:"taddrSupport,omitempty"`
	ChainName               string   `protobuf:"bytes,4,opt,name=chainName,proto3" json:"chainName,omitempty"`
	SaplingActivationHeight uint64   `protobuf:"varint,5,opt,name=saplingActivationHeight,proto3" json:"saplingActivationHeight,omitempty"`
	ConsensusBranchId       string   `protobuf:"bytes,6,opt,name=consensusBranchId,proto3" json:"consensusBranchId,omitempty"`
	BlockHeight             uint64   `protobuf:"varint,7,opt,name=blockHeight,proto3" json:"blockHeight,omitempty"`
	XXX_NoUnkeyedLiteral    struct{} `json:"-"`
	XXX_unrecognized        []byte   `json:"-"`
	XXX_sizecache           int32    `json:"-"`
}

func (m *LightdInfo) Reset()         { *m = LightdInfo{} }
func (m *LightdInfo) String() string { return proto.CompactTextString(m) }
func (*LightdInfo) ProtoMessage()    {}
func (*LightdInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_a0b84a42fa06f626, []int{7}
}

func (m *LightdInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_LightdInfo.Unmarshal(m, b)
}
func (m *LightdInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_LightdInfo.Marshal(b, m, deterministic)
}
func (m *LightdInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LightdInfo.Merge(m, src)
}
func (m *LightdInfo) XXX_Size() int {
	return xxx_messageInfo_LightdInfo.Size(m)
}
func (m *LightdInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_LightdInfo.DiscardUnknown(m)
}

var xxx_messageInfo_LightdInfo proto.InternalMessageInfo

func (m *LightdInfo) GetVersion() string {
	if m != nil {
		return m.Version
	}
	return ""
}

func (m *LightdInfo) GetVendor() string {
	if m != nil {
		return m.Vendor
	}
	return ""
}

func (m *LightdInfo) GetTaddrSupport() bool {
	if m != nil {
		return m.TaddrSupport
	}
	return false
}

func (m *LightdInfo) GetChainName() string {
	if m != nil {
		return m.ChainName
	}
	return ""
}

func (m *LightdInfo) GetSaplingActivationHeight() uint64 {
	if m != nil {
		return m.SaplingActivationHeight
	}
	return 0
}

func (m *LightdInfo) GetConsensusBranchId() string {
	if m != nil {
		return m.ConsensusBranchId
	}
	return ""
}

func (m *LightdInfo) GetBlockHeight() uint64 {
	if m != nil {
		return m.BlockHeight
	}
	return 0
}

// TransparentAddressBlockFilter restricts the results to the given address
// or block range.
type TransparentAddressBlockFilter struct {
	Address              string      `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Range                *BlockRange `protobuf:"bytes,2,opt,name=range,proto3" json:"range,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (m *TransparentAddressBlockFilter) Reset()         { *m = TransparentAddressBlockFilter{} }
func (m *TransparentAddressBlockFilter) String() string { return proto.CompactTextString(m) }
func (*TransparentAddressBlockFilter) ProtoMessage()    {}
func (*TransparentAddressBlockFilter) Descriptor() ([]byte, []int) {
	return fileDescriptor_a0b84a42fa06f626, []int{8}
}

func (m *TransparentAddressBlockFilter) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TransparentAddressBlockFilter.Unmarshal(m, b)
}
func (m *TransparentAddressBlockFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TransparentAddressBlockFilter.Marshal(b, m, deterministic)
}
func (m *TransparentAddressBlockFilter) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TransparentAddressBlockFilter.Merge(m, src)
}
func (m *TransparentAddressBlockFilter) XXX_Size() int {
	return xxx_messageInfo_TransparentAddressBlockFilter.Size(m)
}
func (m *TransparentAddressBlockFilter) XXX_DiscardUnknown() {
	xxx_messageInfo_TransparentAddressBlockFilter.DiscardUnknown(m)
}

var xxx_messageInfo_TransparentAddressBlockFilter proto.InternalMessageInfo

func (m *TransparentAddressBlockFilter) GetAddress() string {
	if m != nil {
		return m.Address
	}
	return ""
}

func (m *TransparentAddressBlockFilter) GetRange() *BlockRange {
	if m != nil {
		return m.Range
	}
	return nil
}

func init() {
	proto.RegisterType((*BlockID)(nil), "cash.z.wallet.sdk.rpc.BlockID")
	proto.RegisterType((*BlockRange)(nil), "cash.z.wallet.sdk.rpc.BlockRange")
	proto.RegisterType((*TxFilter)(nil), "cash.z.wallet.sdk.rpc.TxFilter")
	proto.RegisterType((*RawTransaction)(nil), "cash.z.wallet.sdk.rpc.RawTransaction")
	proto.RegisterType((*SendResponse)(nil), "cash.z.wallet.sdk.rpc.SendResponse")
	proto.RegisterType((*ChainSpec)(nil), "cash.z.wallet.sdk.rpc.ChainSpec")
	proto.RegisterType((*Empty)(nil), "cash.z.wallet.sdk.rpc.Empty")
	proto.RegisterType((*LightdInfo)(nil), "cash.z.wallet.sdk.rpc.LightdInfo")
	proto.RegisterType((*TransparentAddressBlockFilter)(nil), "cash.z.wallet.sdk.rpc.TransparentAddressBlockFilter")
}

func init() { proto.RegisterFile("service.proto", fileDescriptor_a0b84a42fa06f626) }

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

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4

// CompactTxStreamerClient is the client API for CompactTxStreamer service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type CompactTxStreamerClient interface {
	// Compact Blocks
	GetLatestBlock(ctx context.Context, in *ChainSpec, opts ...grpc.CallOption) (*BlockID, error)
	GetBlock(ctx context.Context, in *BlockID, opts ...grpc.CallOption) (*CompactBlock, error)
	GetBlockRange(ctx context.Context, in *BlockRange, opts ...grpc.CallOption) (CompactTxStreamer_GetBlockRangeClient, error)
	// Transactions
	GetTransaction(ctx context.Context, in *TxFilter, opts ...grpc.CallOption) (*RawTransaction, error)
	SendTransaction(ctx context.Context, in *RawTransaction, opts ...grpc.CallOption) (*SendResponse, error)
	// t-Address support
	GetAddressTxids(ctx context.Context, in *TransparentAddressBlockFilter, opts ...grpc.CallOption) (CompactTxStreamer_GetAddressTxidsClient, error)
	// Misc
	GetLightdInfo(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*LightdInfo, error)
}

type compactTxStreamerClient struct {
	cc *grpc.ClientConn
}

func NewCompactTxStreamerClient(cc *grpc.ClientConn) CompactTxStreamerClient {
	return &compactTxStreamerClient{cc}
}

func (c *compactTxStreamerClient) GetLatestBlock(ctx context.Context, in *ChainSpec, opts ...grpc.CallOption) (*BlockID, error) {
	out := new(BlockID)
	err := c.cc.Invoke(ctx, "/cash.z.wallet.sdk.rpc.CompactTxStreamer/GetLatestBlock", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *compactTxStreamerClient) GetBlock(ctx context.Context, in *BlockID, opts ...grpc.CallOption) (*CompactBlock, error) {
	out := new(CompactBlock)
	err := c.cc.Invoke(ctx, "/cash.z.wallet.sdk.rpc.CompactTxStreamer/GetBlock", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *compactTxStreamerClient) GetBlockRange(ctx context.Context, in *BlockRange, opts ...grpc.CallOption) (CompactTxStreamer_GetBlockRangeClient, error) {
	stream, err := c.cc.NewStream(ctx, &_CompactTxStreamer_serviceDesc.Streams[0], "/cash.z.wallet.sdk.rpc.CompactTxStreamer/GetBlockRange", opts...)
	if err != nil {
		return nil, err
	}
	x := &compactTxStreamerGetBlockRangeClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type CompactTxStreamer_GetBlockRangeClient interface {
	Recv() (*CompactBlock, error)
	grpc.ClientStream
}

type compactTxStreamerGetBlockRangeClient struct {
	grpc.ClientStream
}

func (x *compactTxStreamerGetBlockRangeClient) Recv() (*CompactBlock, error) {
	m := new(CompactBlock)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *compactTxStreamerClient) GetTransaction(ctx context.Context, in *TxFilter, opts ...grpc.CallOption) (*RawTransaction, error) {
	out := new(RawTransaction)
	err := c.cc.Invoke(ctx, "/cash.z.wallet.sdk.rpc.CompactTxStreamer/GetTransaction", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *compactTxStreamerClient) SendTransaction(ctx context.Context, in *RawTransaction, opts ...grpc.CallOption) (*SendResponse, error) {
	out := new(SendResponse)
	err := c.cc.Invoke(ctx, "/cash.z.wallet.sdk.rpc.CompactTxStreamer/SendTransaction", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *compactTxStreamerClient) GetAddressTxids(ctx context.Context, in *TransparentAddressBlockFilter, opts ...grpc.CallOption) (CompactTxStreamer_GetAddressTxidsClient, error) {
	stream, err := c.cc.NewStream(ctx, &_CompactTxStreamer_serviceDesc.Streams[1], "/cash.z.wallet.sdk.rpc.CompactTxStreamer/GetAddressTxids", opts...)
	if err != nil {
		return nil, err
	}
	x := &compactTxStreamerGetAddressTxidsClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type CompactTxStreamer_GetAddressTxidsClient interface {
	Recv() (*RawTransaction, error)
	grpc.ClientStream
}

type compactTxStreamerGetAddressTxidsClient struct {
	grpc.ClientStream
}

func (x *compactTxStreamerGetAddressTxidsClient) Recv() (*RawTransaction, error) {
	m := new(RawTransaction)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *compactTxStreamerClient) GetLightdInfo(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*LightdInfo, error) {
	out := new(LightdInfo)
	err := c.cc.Invoke(ctx, "/cash.z.wallet.sdk.rpc.CompactTxStreamer/GetLightdInfo", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// CompactTxStreamerServer is the server API for CompactTxStreamer service.
type CompactTxStreamerServer interface {
	// Compact Blocks
	GetLatestBlock(context.Context, *ChainSpec) (*BlockID, error)
	GetBlock(context.Context, *BlockID) (*CompactBlock, error)
	GetBlockRange(*BlockRange, CompactTxStreamer_GetBlockRangeServer) error
	// Transactions
	GetTransaction(context.Context, *TxFilter) (*RawTransaction, error)
	SendTransaction(context.Context, *RawTransaction) (*SendResponse, error)
	// t-Address support
	GetAddressTxids(*TransparentAddressBlockFilter, CompactTxStreamer_GetAddressTxidsServer) error
	// Misc
	GetLightdInfo(context.Context, *Empty) (*LightdInfo, error)
}

// UnimplementedCompactTxStreamerServer can be embedded to have forward compatible implementations.
type UnimplementedCompactTxStreamerServer struct {
}

func (*UnimplementedCompactTxStreamerServer) GetLatestBlock(ctx context.Context, req *ChainSpec) (*BlockID, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetLatestBlock not implemented")
}
func (*UnimplementedCompactTxStreamerServer) GetBlock(ctx context.Context, req *BlockID) (*CompactBlock, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetBlock not implemented")
}
func (*UnimplementedCompactTxStreamerServer) GetBlockRange(req *BlockRange, srv CompactTxStreamer_GetBlockRangeServer) error {
	return status.Errorf(codes.Unimplemented, "method GetBlockRange not implemented")
}
func (*UnimplementedCompactTxStreamerServer) GetTransaction(ctx context.Context, req *TxFilter) (*RawTransaction, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetTransaction not implemented")
}
func (*UnimplementedCompactTxStreamerServer) SendTransaction(ctx context.Context, req *RawTransaction) (*SendResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SendTransaction not implemented")
}
func (*UnimplementedCompactTxStreamerServer) GetAddressTxids(req *TransparentAddressBlockFilter, srv CompactTxStreamer_GetAddressTxidsServer) error {
	return status.Errorf(codes.Unimplemented, "method GetAddressTxids not implemented")
}
func (*UnimplementedCompactTxStreamerServer) GetLightdInfo(ctx context.Context, req *Empty) (*LightdInfo, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetLightdInfo not implemented")
}

func RegisterCompactTxStreamerServer(s *grpc.Server, srv CompactTxStreamerServer) {
	s.RegisterService(&_CompactTxStreamer_serviceDesc, srv)
}

func _CompactTxStreamer_GetLatestBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ChainSpec)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CompactTxStreamerServer).GetLatestBlock(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/cash.z.wallet.sdk.rpc.CompactTxStreamer/GetLatestBlock",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CompactTxStreamerServer).GetLatestBlock(ctx, req.(*ChainSpec))
	}
	return interceptor(ctx, in, info, handler)
}

func _CompactTxStreamer_GetBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BlockID)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CompactTxStreamerServer).GetBlock(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/cash.z.wallet.sdk.rpc.CompactTxStreamer/GetBlock",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CompactTxStreamerServer).GetBlock(ctx, req.(*BlockID))
	}
	return interceptor(ctx, in, info, handler)
}

func _CompactTxStreamer_GetBlockRange_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(BlockRange)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(CompactTxStreamerServer).GetBlockRange(m, &compactTxStreamerGetBlockRangeServer{stream})
}

type CompactTxStreamer_GetBlockRangeServer interface {
	Send(*CompactBlock) error
	grpc.ServerStream
}

type compactTxStreamerGetBlockRangeServer struct {
	grpc.ServerStream
}

func (x *compactTxStreamerGetBlockRangeServer) Send(m *CompactBlock) error {
	return x.ServerStream.SendMsg(m)
}

func _CompactTxStreamer_GetTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(TxFilter)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CompactTxStreamerServer).GetTransaction(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/cash.z.wallet.sdk.rpc.CompactTxStreamer/GetTransaction",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CompactTxStreamerServer).GetTransaction(ctx, req.(*TxFilter))
	}
	return interceptor(ctx, in, info, handler)
}

func _CompactTxStreamer_SendTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RawTransaction)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CompactTxStreamerServer).SendTransaction(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/cash.z.wallet.sdk.rpc.CompactTxStreamer/SendTransaction",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CompactTxStreamerServer).SendTransaction(ctx, req.(*RawTransaction))
	}
	return interceptor(ctx, in, info, handler)
}

func _CompactTxStreamer_GetAddressTxids_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(TransparentAddressBlockFilter)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(CompactTxStreamerServer).GetAddressTxids(m, &compactTxStreamerGetAddressTxidsServer{stream})
}

type CompactTxStreamer_GetAddressTxidsServer interface {
	Send(*RawTransaction) error
	grpc.ServerStream
}

type compactTxStreamerGetAddressTxidsServer struct {
	grpc.ServerStream
}

func (x *compactTxStreamerGetAddressTxidsServer) Send(m *RawTransaction) error {
	return x.ServerStream.SendMsg(m)
}

func _CompactTxStreamer_GetLightdInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CompactTxStreamerServer).GetLightdInfo(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/cash.z.wallet.sdk.rpc.CompactTxStreamer/GetLightdInfo",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CompactTxStreamerServer).GetLightdInfo(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

var _CompactTxStreamer_serviceDesc = grpc.ServiceDesc{
	ServiceName: "cash.z.wallet.sdk.rpc.CompactTxStreamer",
	HandlerType: (*CompactTxStreamerServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetLatestBlock",
			Handler:    _CompactTxStreamer_GetLatestBlock_Handler,
		},
		{
			MethodName: "GetBlock",
			Handler:    _CompactTxStreamer_GetBlock_Handler,
		},
		{
			MethodName: "GetTransaction",
			Handler:    _CompactTxStreamer_GetTransaction_Handler,
		},
		{
			MethodName: "SendTransaction",
			Handler:    _CompactTxStreamer_SendTransaction_Handler,
		},
		{
			MethodName: "GetLightdInfo",
			Handler:    _CompactTxStreamer_GetLightdInfo_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "GetBlockRange",
			Handler:       _CompactTxStreamer_GetBlockRange_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "GetAddressTxids",
			Handler:       _CompactTxStreamer_GetAddressTxids_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "service.proto",
}
