// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.26.0
// 	protoc        v3.9.1
// source: rpc.proto

package types

import (
	context "context"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type ServerTime struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CurrentTimestamp int64 `protobuf:"varint,1,opt,name=currentTimestamp,proto3" json:"currentTimestamp,omitempty"`
}

func (x *ServerTime) Reset() {
	*x = ServerTime{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ServerTime) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ServerTime) ProtoMessage() {}

func (x *ServerTime) ProtoReflect() protoreflect.Message {
	mi := &file_rpc_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ServerTime.ProtoReflect.Descriptor instead.
func (*ServerTime) Descriptor() ([]byte, []int) {
	return file_rpc_proto_rawDescGZIP(), []int{0}
}

func (x *ServerTime) GetCurrentTimestamp() int64 {
	if x != nil {
		return x.CurrentTimestamp
	}
	return 0
}

// 数字签名加密算法类型
type Crypto struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name   string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	TypeID int32  `protobuf:"varint,2,opt,name=typeID,proto3" json:"typeID,omitempty"`
}

func (x *Crypto) Reset() {
	*x = Crypto{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Crypto) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Crypto) ProtoMessage() {}

func (x *Crypto) ProtoReflect() protoreflect.Message {
	mi := &file_rpc_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Crypto.ProtoReflect.Descriptor instead.
func (*Crypto) Descriptor() ([]byte, []int) {
	return file_rpc_proto_rawDescGZIP(), []int{1}
}

func (x *Crypto) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Crypto) GetTypeID() int32 {
	if x != nil {
		return x.TypeID
	}
	return 0
}

type CryptoList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Cryptos []*Crypto `protobuf:"bytes,1,rep,name=cryptos,proto3" json:"cryptos,omitempty"`
}

func (x *CryptoList) Reset() {
	*x = CryptoList{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CryptoList) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CryptoList) ProtoMessage() {}

func (x *CryptoList) ProtoReflect() protoreflect.Message {
	mi := &file_rpc_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CryptoList.ProtoReflect.Descriptor instead.
func (*CryptoList) Descriptor() ([]byte, []int) {
	return file_rpc_proto_rawDescGZIP(), []int{2}
}

func (x *CryptoList) GetCryptos() []*Crypto {
	if x != nil {
		return x.Cryptos
	}
	return nil
}

type AddressDriver struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name   string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	TypeID int32  `protobuf:"varint,2,opt,name=typeID,proto3" json:"typeID,omitempty"`
}

func (x *AddressDriver) Reset() {
	*x = AddressDriver{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AddressDriver) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddressDriver) ProtoMessage() {}

func (x *AddressDriver) ProtoReflect() protoreflect.Message {
	mi := &file_rpc_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AddressDriver.ProtoReflect.Descriptor instead.
func (*AddressDriver) Descriptor() ([]byte, []int) {
	return file_rpc_proto_rawDescGZIP(), []int{3}
}

func (x *AddressDriver) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *AddressDriver) GetTypeID() int32 {
	if x != nil {
		return x.TypeID
	}
	return 0
}

type AddressDrivers struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Drivers []*AddressDriver `protobuf:"bytes,1,rep,name=drivers,proto3" json:"drivers,omitempty"`
}

func (x *AddressDrivers) Reset() {
	*x = AddressDrivers{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AddressDrivers) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddressDrivers) ProtoMessage() {}

func (x *AddressDrivers) ProtoReflect() protoreflect.Message {
	mi := &file_rpc_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AddressDrivers.ProtoReflect.Descriptor instead.
func (*AddressDrivers) Descriptor() ([]byte, []int) {
	return file_rpc_proto_rawDescGZIP(), []int{4}
}

func (x *AddressDrivers) GetDrivers() []*AddressDriver {
	if x != nil {
		return x.Drivers
	}
	return nil
}

// 延时交易
type DelayTx struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Tx           *Transaction `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"`
	EndDelayTime int64        `protobuf:"varint,2,opt,name=endDelayTime,proto3" json:"endDelayTime,omitempty"`
}

func (x *DelayTx) Reset() {
	*x = DelayTx{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DelayTx) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DelayTx) ProtoMessage() {}

func (x *DelayTx) ProtoReflect() protoreflect.Message {
	mi := &file_rpc_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DelayTx.ProtoReflect.Descriptor instead.
func (*DelayTx) Descriptor() ([]byte, []int) {
	return file_rpc_proto_rawDescGZIP(), []int{5}
}

func (x *DelayTx) GetTx() *Transaction {
	if x != nil {
		return x.Tx
	}
	return nil
}

func (x *DelayTx) GetEndDelayTime() int64 {
	if x != nil {
		return x.EndDelayTime
	}
	return 0
}

// 获取钱包找回地址请求
type ReqGetWalletRecoverAddr struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CtrPubKey         string   `protobuf:"bytes,1,opt,name=ctrPubKey,proto3" json:"ctrPubKey,omitempty"`
	RecoverPubKeys    []string `protobuf:"bytes,2,rep,name=recoverPubKeys,proto3" json:"recoverPubKeys,omitempty"`
	RelativeDelayTime int64    `protobuf:"varint,3,opt,name=relativeDelayTime,proto3" json:"relativeDelayTime,omitempty"`
}

func (x *ReqGetWalletRecoverAddr) Reset() {
	*x = ReqGetWalletRecoverAddr{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ReqGetWalletRecoverAddr) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqGetWalletRecoverAddr) ProtoMessage() {}

func (x *ReqGetWalletRecoverAddr) ProtoReflect() protoreflect.Message {
	mi := &file_rpc_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqGetWalletRecoverAddr.ProtoReflect.Descriptor instead.
func (*ReqGetWalletRecoverAddr) Descriptor() ([]byte, []int) {
	return file_rpc_proto_rawDescGZIP(), []int{6}
}

func (x *ReqGetWalletRecoverAddr) GetCtrPubKey() string {
	if x != nil {
		return x.CtrPubKey
	}
	return ""
}

func (x *ReqGetWalletRecoverAddr) GetRecoverPubKeys() []string {
	if x != nil {
		return x.RecoverPubKeys
	}
	return nil
}

func (x *ReqGetWalletRecoverAddr) GetRelativeDelayTime() int64 {
	if x != nil {
		return x.RelativeDelayTime
	}
	return 0
}

// 获取钱包找回签名请求
type ReqSignWalletRecoverTx struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	WalletRecoverParam *ReqGetWalletRecoverAddr `protobuf:"bytes,1,opt,name=walletRecoverParam,proto3" json:"walletRecoverParam,omitempty"`
	SignAddr           string                   `protobuf:"bytes,2,opt,name=signAddr,proto3" json:"signAddr,omitempty"`
	PrivKey            string                   `protobuf:"bytes,3,opt,name=privKey,proto3" json:"privKey,omitempty"`
	RawTx              string                   `protobuf:"bytes,4,opt,name=rawTx,proto3" json:"rawTx,omitempty"`
}

func (x *ReqSignWalletRecoverTx) Reset() {
	*x = ReqSignWalletRecoverTx{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ReqSignWalletRecoverTx) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqSignWalletRecoverTx) ProtoMessage() {}

func (x *ReqSignWalletRecoverTx) ProtoReflect() protoreflect.Message {
	mi := &file_rpc_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqSignWalletRecoverTx.ProtoReflect.Descriptor instead.
func (*ReqSignWalletRecoverTx) Descriptor() ([]byte, []int) {
	return file_rpc_proto_rawDescGZIP(), []int{7}
}

func (x *ReqSignWalletRecoverTx) GetWalletRecoverParam() *ReqGetWalletRecoverAddr {
	if x != nil {
		return x.WalletRecoverParam
	}
	return nil
}

func (x *ReqSignWalletRecoverTx) GetSignAddr() string {
	if x != nil {
		return x.SignAddr
	}
	return ""
}

func (x *ReqSignWalletRecoverTx) GetPrivKey() string {
	if x != nil {
		return x.PrivKey
	}
	return ""
}

func (x *ReqSignWalletRecoverTx) GetRawTx() string {
	if x != nil {
		return x.RawTx
	}
	return ""
}

type ChainConfigInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Title            string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
	CoinExec         string `protobuf:"bytes,2,opt,name=coinExec,proto3" json:"coinExec,omitempty"`
	CoinSymbol       string `protobuf:"bytes,3,opt,name=coinSymbol,proto3" json:"coinSymbol,omitempty"`
	CoinPrecision    int64  `protobuf:"varint,4,opt,name=coinPrecision,proto3" json:"coinPrecision,omitempty"`
	TokenPrecision   int64  `protobuf:"varint,5,opt,name=tokenPrecision,proto3" json:"tokenPrecision,omitempty"`
	ChainID          int32  `protobuf:"varint,6,opt,name=chainID,proto3" json:"chainID,omitempty"`
	MaxTxFee         int64  `protobuf:"varint,7,opt,name=maxTxFee,proto3" json:"maxTxFee,omitempty"`
	MinTxFeeRate     int64  `protobuf:"varint,8,opt,name=minTxFeeRate,proto3" json:"minTxFeeRate,omitempty"`
	MaxTxFeeRate     int64  `protobuf:"varint,9,opt,name=maxTxFeeRate,proto3" json:"maxTxFeeRate,omitempty"`
	IsPara           bool   `protobuf:"varint,10,opt,name=isPara,proto3" json:"isPara,omitempty"`
	DefaultAddressID int32  `protobuf:"varint,11,opt,name=defaultAddressID,proto3" json:"defaultAddressID,omitempty"`
}

func (x *ChainConfigInfo) Reset() {
	*x = ChainConfigInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ChainConfigInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ChainConfigInfo) ProtoMessage() {}

func (x *ChainConfigInfo) ProtoReflect() protoreflect.Message {
	mi := &file_rpc_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ChainConfigInfo.ProtoReflect.Descriptor instead.
func (*ChainConfigInfo) Descriptor() ([]byte, []int) {
	return file_rpc_proto_rawDescGZIP(), []int{8}
}

func (x *ChainConfigInfo) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *ChainConfigInfo) GetCoinExec() string {
	if x != nil {
		return x.CoinExec
	}
	return ""
}

func (x *ChainConfigInfo) GetCoinSymbol() string {
	if x != nil {
		return x.CoinSymbol
	}
	return ""
}

func (x *ChainConfigInfo) GetCoinPrecision() int64 {
	if x != nil {
		return x.CoinPrecision
	}
	return 0
}

func (x *ChainConfigInfo) GetTokenPrecision() int64 {
	if x != nil {
		return x.TokenPrecision
	}
	return 0
}

func (x *ChainConfigInfo) GetChainID() int32 {
	if x != nil {
		return x.ChainID
	}
	return 0
}

func (x *ChainConfigInfo) GetMaxTxFee() int64 {
	if x != nil {
		return x.MaxTxFee
	}
	return 0
}

func (x *ChainConfigInfo) GetMinTxFeeRate() int64 {
	if x != nil {
		return x.MinTxFeeRate
	}
	return 0
}

func (x *ChainConfigInfo) GetMaxTxFeeRate() int64 {
	if x != nil {
		return x.MaxTxFeeRate
	}
	return 0
}

func (x *ChainConfigInfo) GetIsPara() bool {
	if x != nil {
		return x.IsPara
	}
	return false
}

func (x *ChainConfigInfo) GetDefaultAddressID() int32 {
	if x != nil {
		return x.DefaultAddressID
	}
	return 0
}

// 批量发送交易返回结构
type Replies struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ReplyList []*Reply `protobuf:"bytes,1,rep,name=replyList,proto3" json:"replyList,omitempty"`
}

func (x *Replies) Reset() {
	*x = Replies{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Replies) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Replies) ProtoMessage() {}

func (x *Replies) ProtoReflect() protoreflect.Message {
	mi := &file_rpc_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Replies.ProtoReflect.Descriptor instead.
func (*Replies) Descriptor() ([]byte, []int) {
	return file_rpc_proto_rawDescGZIP(), []int{9}
}

func (x *Replies) GetReplyList() []*Reply {
	if x != nil {
		return x.ReplyList
	}
	return nil
}

var File_rpc_proto protoreflect.FileDescriptor

var file_rpc_proto_rawDesc = []byte{
	0x0a, 0x09, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x1a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x1a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x1a, 0x10, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0c, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x1a, 0x09, 0x70, 0x32, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0d,
	0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0e, 0x65,
	0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x70,
	0x75, 0x73, 0x68, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0d, 0x73, 0x6e, 0x6f, 0x77, 0x6d, 0x61, 0x6e, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x22, 0x38, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d,
	0x65, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, 0x75, 0x72,
	0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x34, 0x0a,
	0x06, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74,
	0x79, 0x70, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x79, 0x70,
	0x65, 0x49, 0x44, 0x22, 0x35, 0x0a, 0x0a, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4c, 0x69, 0x73,
	0x74, 0x12, 0x27, 0x0a, 0x07, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74,
	0x6f, 0x52, 0x07, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x73, 0x22, 0x3b, 0x0a, 0x0d, 0x61, 0x64,
	0x64, 0x72, 0x65, 0x73, 0x73, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
	0x16, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x06, 0x74, 0x79, 0x70, 0x65, 0x49, 0x44, 0x22, 0x40, 0x0a, 0x0e, 0x61, 0x64, 0x64, 0x72, 0x65,
	0x73, 0x73, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x64, 0x72, 0x69,
	0x76, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72,
	0x52, 0x07, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x73, 0x22, 0x51, 0x0a, 0x07, 0x64, 0x65, 0x6c,
	0x61, 0x79, 0x54, 0x78, 0x12, 0x22, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x74, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x6e, 0x64, 0x44,
	0x65, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c,
	0x65, 0x6e, 0x64, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x8d, 0x01, 0x0a,
	0x17, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x63,
	0x6f, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x74, 0x72, 0x50,
	0x75, 0x62, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x74, 0x72,
	0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65,
	0x72, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e,
	0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x2c,
	0x0a, 0x11, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x54,
	0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x72, 0x65, 0x6c, 0x61, 0x74,
	0x69, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb4, 0x01, 0x0a,
	0x16, 0x52, 0x65, 0x71, 0x53, 0x69, 0x67, 0x6e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65,
	0x63, 0x6f, 0x76, 0x65, 0x72, 0x54, 0x78, 0x12, 0x4e, 0x0a, 0x12, 0x77, 0x61, 0x6c, 0x6c, 0x65,
	0x74, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x47,
	0x65, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x41,
	0x64, 0x64, 0x72, 0x52, 0x12, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x76,
	0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x41,
	0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x41,
	0x64, 0x64, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x76, 0x4b, 0x65, 0x79, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x69, 0x76, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a,
	0x05, 0x72, 0x61, 0x77, 0x54, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x61,
	0x77, 0x54, 0x78, 0x22, 0xf3, 0x02, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1a, 0x0a,
	0x08, 0x63, 0x6f, 0x69, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x63, 0x6f, 0x69, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x69,
	0x6e, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63,
	0x6f, 0x69, 0x6e, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x69,
	0x6e, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x0d, 0x63, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12,
	0x26, 0x0a, 0x0e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f,
	0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72,
	0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e,
	0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49,
	0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x54, 0x78, 0x46, 0x65, 0x65, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x54, 0x78, 0x46, 0x65, 0x65, 0x12, 0x22, 0x0a,
	0x0c, 0x6d, 0x69, 0x6e, 0x54, 0x78, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x54, 0x78, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74,
	0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x54, 0x78, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74,
	0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x54, 0x78, 0x46, 0x65,
	0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x50, 0x61, 0x72, 0x61, 0x18,
	0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x50, 0x61, 0x72, 0x61, 0x12, 0x2a, 0x0a,
	0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49,
	0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
	0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x44, 0x22, 0x35, 0x0a, 0x07, 0x52, 0x65, 0x70,
	0x6c, 0x69, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73,
	0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74,
	0x32, 0xf7, 0x23, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x33, 0x33, 0x12, 0x2d, 0x0a, 0x09,
	0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x52, 0x65, 0x71, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x1a, 0x0c, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x0d, 0x47,
	0x65, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x0d, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x4e, 0x69, 0x6c, 0x1a, 0x0d, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x14,
	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x61, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x54, 0x78, 0x1a, 0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x55, 0x6e,
	0x73, 0x69, 0x67, 0x6e, 0x54, 0x78, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x52, 0x61, 0x77, 0x54, 0x78, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1d, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73,
	0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x0f, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x55, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x78, 0x22, 0x00, 0x12, 0x3e,
	0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0x0e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x48, 0x61,
	0x73, 0x68, 0x1a, 0x18, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73,
	0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x00, 0x12, 0x39,
	0x0a, 0x13, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x54, 0x72,
	0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x0f, 0x53, 0x65, 0x6e,
	0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x1a, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00,
	0x12, 0x39, 0x0a, 0x10, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x12, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x54, 0x72, 0x61,
	0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x0e, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x14, 0x47,
	0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x41,
	0x64, 0x64, 0x72, 0x12, 0x0e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x41,
	0x64, 0x64, 0x72, 0x1a, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c,
	0x79, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x16, 0x47, 0x65,
	0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x48, 0x61,
	0x73, 0x68, 0x65, 0x73, 0x12, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71,
	0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x1a, 0x19, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x54,
	0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
	0x73, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x50, 0x6f, 0x6f,
	0x6c, 0x12, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74,
	0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x1a, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x52, 0x65, 0x70, 0x6c, 0x79, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x35, 0x0a,
	0x0b, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x0d, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x4e, 0x69, 0x6c, 0x1a, 0x15, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x73, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x12, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x47, 0x65,
	0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x00,
	0x12, 0x3a, 0x0a, 0x0a, 0x4e, 0x65, 0x77, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x4e, 0x65, 0x77, 0x41, 0x63, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x57, 0x61, 0x6c,
	0x6c, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x15,
	0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65,
	0x71, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x57,
	0x61, 0x6c, 0x6c, 0x65, 0x74, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x00,
	0x12, 0x46, 0x0a, 0x0d, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x69, 0x76, 0x6b, 0x65,
	0x79, 0x12, 0x1d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x57, 0x61, 0x6c,
	0x6c, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x69, 0x76, 0x6b, 0x65, 0x79,
	0x1a, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64,
	0x54, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x52, 0x65, 0x71, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x54,
	0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x61, 0x73, 0x68, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x08,
	0x53, 0x65, 0x74, 0x54, 0x78, 0x46, 0x65, 0x65, 0x12, 0x16, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x52, 0x65, 0x71, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x74, 0x46, 0x65, 0x65,
	0x1a, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00,
	0x12, 0x3b, 0x0a, 0x07, 0x53, 0x65, 0x74, 0x4c, 0x61, 0x62, 0x6c, 0x12, 0x18, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x74,
	0x4c, 0x61, 0x62, 0x65, 0x6c, 0x1a, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x57, 0x61,
	0x6c, 0x6c, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x42, 0x0a,
	0x0c, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d,
	0x65, 0x72, 0x67, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x1a, 0x12, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x22,
	0x00, 0x12, 0x36, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x64, 0x12, 0x19,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74,
	0x53, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x64, 0x1a, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x25, 0x0a, 0x04, 0x4c, 0x6f, 0x63,
	0x6b, 0x12, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x4e, 0x69, 0x6c,
	0x1a, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00,
	0x12, 0x2d, 0x0a, 0x06, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x13, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x1a,
	0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12,
	0x35, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x50, 0x6f, 0x6f,
	0x6c, 0x12, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x4e, 0x69, 0x6c,
	0x1a, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x54, 0x78,
	0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f,
	0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x12, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52,
	0x65, 0x71, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x1a, 0x15, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x46,
	0x65, 0x65, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65,
	0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x52, 0x65, 0x71, 0x4e, 0x69, 0x6c, 0x1a, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x57,
	0x61, 0x6c, 0x6c, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x3a, 0x0a,
	0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65,
	0x77, 0x12, 0x0e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x48, 0x61, 0x73,
	0x68, 0x1a, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4f,
	0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x0f, 0x47, 0x65, 0x74,
	0x41, 0x64, 0x64, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x12, 0x0e, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x41, 0x64, 0x64, 0x72, 0x1a, 0x13, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65,
	0x77, 0x22, 0x00, 0x12, 0x31, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48,
	0x61, 0x73, 0x68, 0x12, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x49,
	0x6e, 0x74, 0x1a, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79,
	0x48, 0x61, 0x73, 0x68, 0x22, 0x00, 0x12, 0x31, 0x0a, 0x07, 0x47, 0x65, 0x6e, 0x53, 0x65, 0x65,
	0x64, 0x12, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x6e, 0x53, 0x65, 0x65,
	0x64, 0x4c, 0x61, 0x6e, 0x67, 0x1a, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65,
	0x70, 0x6c, 0x79, 0x53, 0x65, 0x65, 0x64, 0x22, 0x00, 0x12, 0x31, 0x0a, 0x07, 0x47, 0x65, 0x74,
	0x53, 0x65, 0x65, 0x64, 0x12, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74,
	0x53, 0x65, 0x65, 0x64, 0x42, 0x79, 0x50, 0x77, 0x1a, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x65, 0x65, 0x64, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x08,
	0x53, 0x61, 0x76, 0x65, 0x53, 0x65, 0x65, 0x64, 0x12, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x53, 0x61, 0x76, 0x65, 0x53, 0x65, 0x65, 0x64, 0x42, 0x79, 0x50, 0x77, 0x1a, 0x0c, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x32, 0x0a,
	0x0a, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x11, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x1a, 0x0f,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22,
	0x00, 0x12, 0x32, 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12,
	0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x78, 0x65,
	0x63, 0x75, 0x74, 0x6f, 0x72, 0x1a, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65,
	0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x0a, 0x45, 0x78, 0x65, 0x63, 0x57, 0x61, 0x6c,
	0x6c, 0x65, 0x74, 0x12, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x69,
	0x6e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x1a, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0e, 0x51, 0x75, 0x65,
	0x72, 0x79, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x12, 0x14, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f,
	0x72, 0x1a, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22,
	0x00, 0x12, 0x39, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73,
	0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x78, 0x49, 0x6e, 0x1a, 0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x55, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x78, 0x22, 0x00, 0x12, 0x30, 0x0a, 0x0e,
	0x47, 0x65, 0x74, 0x48, 0x65, 0x78, 0x54, 0x78, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, 0x0e,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x0c,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x65, 0x78, 0x54, 0x78, 0x22, 0x00, 0x12, 0x35,
	0x0a, 0x0b, 0x44, 0x75, 0x6d, 0x70, 0x50, 0x72, 0x69, 0x76, 0x6b, 0x65, 0x79, 0x12, 0x10, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a,
	0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x72,
	0x69, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x10, 0x44, 0x75, 0x6d, 0x70, 0x50, 0x72, 0x69,
	0x76, 0x6b, 0x65, 0x79, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x16, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x52, 0x65, 0x71, 0x50, 0x72, 0x69, 0x76, 0x6b, 0x65, 0x79, 0x73, 0x46, 0x69, 0x6c,
	0x65, 0x1a, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22,
	0x00, 0x12, 0x3c, 0x0a, 0x12, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x69, 0x76, 0x6b,
	0x65, 0x79, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x16, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x52, 0x65, 0x71, 0x50, 0x72, 0x69, 0x76, 0x6b, 0x65, 0x79, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x1a,
	0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12,
	0x2e, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x4e, 0x69, 0x6c, 0x1a, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12,
	0x27, 0x0a, 0x06, 0x49, 0x73, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x52, 0x65, 0x71, 0x4e, 0x69, 0x6c, 0x1a, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x50,
	0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x50, 0x32, 0x50, 0x47, 0x65, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00,
	0x12, 0x38, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x50, 0x32, 0x50, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x49, 0x6e, 0x66,
	0x6f, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x6f, 0x64,
	0x65, 0x4e, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x0e, 0x49, 0x73,
	0x4e, 0x74, 0x70, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x0d, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x4e, 0x69, 0x6c, 0x1a, 0x0c, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x30, 0x0a, 0x0f, 0x47,
	0x65, 0x74, 0x46, 0x61, 0x74, 0x61, 0x6c, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x0d,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x4e, 0x69, 0x6c, 0x1a, 0x0c, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x22, 0x00, 0x12, 0x35, 0x0a,
	0x14, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x65, 0x71,
	0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65,
	0x71, 0x4e, 0x69, 0x6c, 0x1a, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74,
	0x36, 0x34, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65,
	0x6e, 0x63, 0x65, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, 0x0e, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x52, 0x65, 0x71, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x10, 0x47, 0x65, 0x74,
	0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x10, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x1a,
	0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74,
	0x61, 0x69, 0x6c, 0x73, 0x22, 0x00, 0x12, 0x30, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f,
	0x63, 0x6b, 0x42, 0x79, 0x53, 0x65, 0x71, 0x12, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x49, 0x6e, 0x74, 0x36, 0x34, 0x1a, 0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c,
	0x6f, 0x63, 0x6b, 0x53, 0x65, 0x71, 0x22, 0x00, 0x12, 0x2b, 0x0a, 0x0a, 0x43, 0x6c, 0x6f, 0x73,
	0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52,
	0x65, 0x71, 0x4e, 0x69, 0x6c, 0x1a, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65,
	0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x45,
	0x78, 0x65, 0x63, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x65, 0x63, 0x42, 0x61, 0x6c,
	0x61, 0x6e, 0x63, 0x65, 0x1a, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x41, 0x6c, 0x6c,
	0x45, 0x78, 0x65, 0x63, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a,
	0x09, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x61, 0x77, 0x54, 0x78, 0x12, 0x13, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x61, 0x77, 0x54, 0x78, 0x1a,
	0x15, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x69, 0x67,
	0x6e, 0x52, 0x61, 0x77, 0x54, 0x78, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x4e, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73,
	0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e,
	0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x78, 0x1a, 0x15, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x61, 0x77, 0x54,
	0x78, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x61, 0x6e, 0x64,
	0x4e, 0x75, 0x6d, 0x12, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x52,
	0x61, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x61, 0x73, 0x68, 0x22, 0x00, 0x12, 0x28, 0x0a, 0x07, 0x47,
	0x65, 0x74, 0x46, 0x6f, 0x72, 0x6b, 0x12, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52,
	0x65, 0x71, 0x4b, 0x65, 0x79, 0x1a, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e,
	0x74, 0x36, 0x34, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e,
	0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x78, 0x73, 0x12, 0x13, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x4e, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x78, 0x73,
	0x1a, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x69,
	0x67, 0x6e, 0x52, 0x61, 0x77, 0x54, 0x78, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x10, 0x47, 0x65, 0x74,
	0x50, 0x61, 0x72, 0x61, 0x54, 0x78, 0x42, 0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x17, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x50, 0x61, 0x72, 0x61, 0x54, 0x78, 0x42,
	0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x1a, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50,
	0x61, 0x72, 0x61, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x00, 0x12, 0x49,
	0x0a, 0x11, 0x4c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x72, 0x61, 0x54, 0x78, 0x42, 0x79, 0x54, 0x69,
	0x74, 0x6c, 0x65, 0x12, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x48,
	0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x1a, 0x19, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74,
	0x42, 0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x11, 0x47, 0x65, 0x74,
	0x50, 0x61, 0x72, 0x61, 0x54, 0x78, 0x42, 0x79, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x50, 0x61, 0x72, 0x61, 0x54, 0x78,
	0x42, 0x79, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x1a, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x50, 0x61, 0x72, 0x61, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x00,
	0x12, 0x30, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x10,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73,
	0x1a, 0x0e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73,
	0x22, 0x00, 0x12, 0x33, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54,
	0x69, 0x6d, 0x65, 0x12, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x4e,
	0x69, 0x6c, 0x1a, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
	0x72, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x72,
	0x79, 0x70, 0x74, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x52, 0x65, 0x71, 0x4e, 0x69, 0x6c, 0x1a, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x11,
	0x47, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72,
	0x73, 0x12, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x4e, 0x69, 0x6c,
	0x1a, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
	0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x73, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x14, 0x53, 0x65, 0x6e,
	0x64, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x12, 0x0e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x54,
	0x78, 0x1a, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22,
	0x00, 0x12, 0x4f, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65,
	0x63, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65,
	0x74, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x1a, 0x12, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,
	0x22, 0x00, 0x12, 0x4d, 0x0a, 0x13, 0x53, 0x69, 0x67, 0x6e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74,
	0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x54, 0x78, 0x12, 0x1d, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x52, 0x65, 0x71, 0x53, 0x69, 0x67, 0x6e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52,
	0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x54, 0x78, 0x1a, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x61, 0x77, 0x54, 0x78, 0x22,
	0x00, 0x12, 0x37, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65,
	0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52,
	0x65, 0x71, 0x4e, 0x69, 0x6c, 0x1a, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x73, 0x6e,
	0x6f, 0x77, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0e, 0x47, 0x65,
	0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0d, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x4e, 0x69, 0x6c, 0x1a, 0x16, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49,
	0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74,
	0x45, 0x78, 0x65, 0x63, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x12, 0x10, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x12, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,
	0x22, 0x00, 0x12, 0x34, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x79, 0x6d,
	0x62, 0x6f, 0x6c, 0x12, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x4e,
	0x69, 0x6c, 0x1a, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79,
	0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x09, 0x52, 0x65, 0x57, 0x72,
	0x69, 0x74, 0x65, 0x54, 0x78, 0x12, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65,
	0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x61, 0x77, 0x54, 0x78, 0x1a, 0x0f, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x55, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x78, 0x22, 0x00, 0x12, 0x3e, 0x0a,
	0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63,
	0x65, 0x73, 0x12, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x42, 0x6c,
	0x6f, 0x63, 0x6b, 0x73, 0x1a, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x6f,
	0x63, 0x6b, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x00, 0x12, 0x48, 0x0a,
	0x10, 0x41, 0x64, 0x64, 0x50, 0x75, 0x73, 0x68, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62,
	0x65, 0x12, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x53, 0x75,
	0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62,
	0x65, 0x50, 0x75, 0x73, 0x68, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x50,
	0x75, 0x73, 0x68, 0x65, 0x73, 0x12, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65,
	0x71, 0x4e, 0x69, 0x6c, 0x1a, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x75, 0x73,
	0x68, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x73, 0x22, 0x00, 0x12, 0x35, 0x0a,
	0x11, 0x47, 0x65, 0x74, 0x50, 0x75, 0x73, 0x68, 0x53, 0x65, 0x71, 0x4c, 0x61, 0x73, 0x74, 0x4e,
	0x75, 0x6d, 0x12, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x53, 0x74,
	0x72, 0x69, 0x6e, 0x67, 0x1a, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74,
	0x36, 0x34, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x08, 0x53, 0x75, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74,
	0x12, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x53, 0x75, 0x62, 0x73,
	0x63, 0x72, 0x69, 0x62, 0x65, 0x1a, 0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x75,
	0x73, 0x68, 0x44, 0x61, 0x74, 0x61, 0x22, 0x00, 0x30, 0x01, 0x12, 0x2e, 0x0a, 0x0a, 0x55, 0x6e,
	0x53, 0x75, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x52, 0x65, 0x71, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x0c, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x42, 0x1f, 0x5a, 0x1d, 0x67, 0x69,
	0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x33, 0x33, 0x63, 0x6e, 0x2f, 0x63, 0x68,
	0x61, 0x69, 0x6e, 0x33, 0x33, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x33,
}

var (
	file_rpc_proto_rawDescOnce sync.Once
	file_rpc_proto_rawDescData = file_rpc_proto_rawDesc
)

func file_rpc_proto_rawDescGZIP() []byte {
	file_rpc_proto_rawDescOnce.Do(func() {
		file_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_rpc_proto_rawDescData)
	})
	return file_rpc_proto_rawDescData
}

var file_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
var file_rpc_proto_goTypes = []interface{}{
	(*ServerTime)(nil),               // 0: types.serverTime
	(*Crypto)(nil),                   // 1: types.crypto
	(*CryptoList)(nil),               // 2: types.cryptoList
	(*AddressDriver)(nil),            // 3: types.addressDriver
	(*AddressDrivers)(nil),           // 4: types.addressDrivers
	(*DelayTx)(nil),                  // 5: types.delayTx
	(*ReqGetWalletRecoverAddr)(nil),  // 6: types.ReqGetWalletRecoverAddr
	(*ReqSignWalletRecoverTx)(nil),   // 7: types.ReqSignWalletRecoverTx
	(*ChainConfigInfo)(nil),          // 8: types.ChainConfigInfo
	(*Replies)(nil),                  // 9: types.Replies
	(*Transaction)(nil),              // 10: types.Transaction
	(*Reply)(nil),                    // 11: types.Reply
	(*ReqBlocks)(nil),                // 12: types.ReqBlocks
	(*ReqNil)(nil),                   // 13: types.ReqNil
	(*CreateTx)(nil),                 // 14: types.CreateTx
	(*CreateTransactionGroup)(nil),   // 15: types.CreateTransactionGroup
	(*ReqHash)(nil),                  // 16: types.ReqHash
	(*Transactions)(nil),             // 17: types.Transactions
	(*ReqAddr)(nil),                  // 18: types.ReqAddr
	(*ReqHashes)(nil),                // 19: types.ReqHashes
	(*ReqGetMempool)(nil),            // 20: types.ReqGetMempool
	(*ReqGetAccount)(nil),            // 21: types.ReqGetAccount
	(*ReqNewAccount)(nil),            // 22: types.ReqNewAccount
	(*ReqWalletTransactionList)(nil), // 23: types.ReqWalletTransactionList
	(*ReqWalletImportPrivkey)(nil),   // 24: types.ReqWalletImportPrivkey
	(*ReqWalletSendToAddress)(nil),   // 25: types.ReqWalletSendToAddress
	(*ReqWalletSetFee)(nil),          // 26: types.ReqWalletSetFee
	(*ReqWalletSetLabel)(nil),        // 27: types.ReqWalletSetLabel
	(*ReqWalletMergeBalance)(nil),    // 28: types.ReqWalletMergeBalance
	(*ReqWalletSetPasswd)(nil),       // 29: types.ReqWalletSetPasswd
	(*WalletUnLock)(nil),             // 30: types.WalletUnLock
	(*ReqProperFee)(nil),             // 31: types.ReqProperFee
	(*ReqInt)(nil),                   // 32: types.ReqInt
	(*GenSeedLang)(nil),              // 33: types.GenSeedLang
	(*GetSeedByPw)(nil),              // 34: types.GetSeedByPw
	(*SaveSeedByPw)(nil),             // 35: types.SaveSeedByPw
	(*ReqBalance)(nil),               // 36: types.ReqBalance
	(*ChainExecutor)(nil),            // 37: types.ChainExecutor
	(*CreateTxIn)(nil),               // 38: types.CreateTxIn
	(*ReqString)(nil),                // 39: types.ReqString
	(*ReqPrivkeysFile)(nil),          // 40: types.ReqPrivkeysFile
	(*P2PGetPeerReq)(nil),            // 41: types.P2PGetPeerReq
	(*P2PGetNetInfoReq)(nil),         // 42: types.P2PGetNetInfoReq
	(*Int64)(nil),                    // 43: types.Int64
	(*ReqAllExecBalance)(nil),        // 44: types.ReqAllExecBalance
	(*ReqSignRawTx)(nil),             // 45: types.ReqSignRawTx
	(*NoBalanceTx)(nil),              // 46: types.NoBalanceTx
	(*ReqRandHash)(nil),              // 47: types.ReqRandHash
	(*ReqKey)(nil),                   // 48: types.ReqKey
	(*NoBalanceTxs)(nil),             // 49: types.NoBalanceTxs
	(*ReqParaTxByTitle)(nil),         // 50: types.ReqParaTxByTitle
	(*ReqHeightByTitle)(nil),         // 51: types.ReqHeightByTitle
	(*ReqParaTxByHeight)(nil),        // 52: types.ReqParaTxByHeight
	(*ReWriteRawTx)(nil),             // 53: types.ReWriteRawTx
	(*PushSubscribeReq)(nil),         // 54: types.PushSubscribeReq
	(*ReqSubscribe)(nil),             // 55: types.ReqSubscribe
	(*Header)(nil),                   // 56: types.Header
	(*UnsignTx)(nil),                 // 57: types.UnsignTx
	(*TransactionDetail)(nil),        // 58: types.TransactionDetail
	(*ReplyTxInfos)(nil),             // 59: types.ReplyTxInfos
	(*TransactionDetails)(nil),       // 60: types.TransactionDetails
	(*ReplyTxList)(nil),              // 61: types.ReplyTxList
	(*WalletAccounts)(nil),           // 62: types.WalletAccounts
	(*WalletAccount)(nil),            // 63: types.WalletAccount
	(*WalletTxDetails)(nil),          // 64: types.WalletTxDetails
	(*ReplyHash)(nil),                // 65: types.ReplyHash
	(*ReplyHashes)(nil),              // 66: types.ReplyHashes
	(*ReplyProperFee)(nil),           // 67: types.ReplyProperFee
	(*WalletStatus)(nil),             // 68: types.WalletStatus
	(*BlockOverview)(nil),            // 69: types.BlockOverview
	(*AddrOverview)(nil),             // 70: types.AddrOverview
	(*ReplySeed)(nil),                // 71: types.ReplySeed
	(*Accounts)(nil),                 // 72: types.Accounts
	(*HexTx)(nil),                    // 73: types.HexTx
	(*ReplyString)(nil),              // 74: types.ReplyString
	(*VersionInfo)(nil),              // 75: types.VersionInfo
	(*PeerList)(nil),                 // 76: types.PeerList
	(*NodeNetInfo)(nil),              // 77: types.NodeNetInfo
	(*Int32)(nil),                    // 78: types.Int32
	(*BlockDetails)(nil),             // 79: types.BlockDetails
	(*BlockSeq)(nil),                 // 80: types.BlockSeq
	(*AllExecBalance)(nil),           // 81: types.AllExecBalance
	(*ReplySignRawTx)(nil),           // 82: types.ReplySignRawTx
	(*ParaTxDetails)(nil),            // 83: types.ParaTxDetails
	(*ReplyHeightByTitle)(nil),       // 84: types.ReplyHeightByTitle
	(*Headers)(nil),                  // 85: types.Headers
	(*SnowChoice)(nil),               // 86: types.snowChoice
	(*BlockSequences)(nil),           // 87: types.BlockSequences
	(*ReplySubscribePush)(nil),       // 88: types.ReplySubscribePush
	(*PushSubscribes)(nil),           // 89: types.PushSubscribes
	(*PushData)(nil),                 // 90: types.PushData
}
var file_rpc_proto_depIdxs = []int32{
	1,  // 0: types.cryptoList.cryptos:type_name -> types.crypto
	3,  // 1: types.addressDrivers.drivers:type_name -> types.addressDriver
	10, // 2: types.delayTx.tx:type_name -> types.Transaction
	6,  // 3: types.ReqSignWalletRecoverTx.walletRecoverParam:type_name -> types.ReqGetWalletRecoverAddr
	11, // 4: types.Replies.replyList:type_name -> types.Reply
	12, // 5: types.chain33.GetBlocks:input_type -> types.ReqBlocks
	13, // 6: types.chain33.GetLastHeader:input_type -> types.ReqNil
	14, // 7: types.chain33.CreateRawTransaction:input_type -> types.CreateTx
	15, // 8: types.chain33.CreateRawTxGroup:input_type -> types.CreateTransactionGroup
	16, // 9: types.chain33.QueryTransaction:input_type -> types.ReqHash
	10, // 10: types.chain33.SendTransactionSync:input_type -> types.Transaction
	10, // 11: types.chain33.SendTransaction:input_type -> types.Transaction
	17, // 12: types.chain33.SendTransactions:input_type -> types.Transactions
	18, // 13: types.chain33.GetTransactionByAddr:input_type -> types.ReqAddr
	19, // 14: types.chain33.GetTransactionByHashes:input_type -> types.ReqHashes
	20, // 15: types.chain33.GetMemPool:input_type -> types.ReqGetMempool
	13, // 16: types.chain33.GetAccounts:input_type -> types.ReqNil
	21, // 17: types.chain33.GetAccount:input_type -> types.ReqGetAccount
	22, // 18: types.chain33.NewAccount:input_type -> types.ReqNewAccount
	23, // 19: types.chain33.WalletTransactionList:input_type -> types.ReqWalletTransactionList
	24, // 20: types.chain33.ImportPrivkey:input_type -> types.ReqWalletImportPrivkey
	25, // 21: types.chain33.SendToAddress:input_type -> types.ReqWalletSendToAddress
	26, // 22: types.chain33.SetTxFee:input_type -> types.ReqWalletSetFee
	27, // 23: types.chain33.SetLabl:input_type -> types.ReqWalletSetLabel
	28, // 24: types.chain33.MergeBalance:input_type -> types.ReqWalletMergeBalance
	29, // 25: types.chain33.SetPasswd:input_type -> types.ReqWalletSetPasswd
	13, // 26: types.chain33.Lock:input_type -> types.ReqNil
	30, // 27: types.chain33.UnLock:input_type -> types.WalletUnLock
	13, // 28: types.chain33.GetLastMemPool:input_type -> types.ReqNil
	31, // 29: types.chain33.GetProperFee:input_type -> types.ReqProperFee
	13, // 30: types.chain33.GetWalletStatus:input_type -> types.ReqNil
	16, // 31: types.chain33.GetBlockOverview:input_type -> types.ReqHash
	18, // 32: types.chain33.GetAddrOverview:input_type -> types.ReqAddr
	32, // 33: types.chain33.GetBlockHash:input_type -> types.ReqInt
	33, // 34: types.chain33.GenSeed:input_type -> types.GenSeedLang
	34, // 35: types.chain33.GetSeed:input_type -> types.GetSeedByPw
	35, // 36: types.chain33.SaveSeed:input_type -> types.SaveSeedByPw
	36, // 37: types.chain33.GetBalance:input_type -> types.ReqBalance
	37, // 38: types.chain33.QueryChain:input_type -> types.ChainExecutor
	37, // 39: types.chain33.ExecWallet:input_type -> types.ChainExecutor
	37, // 40: types.chain33.QueryConsensus:input_type -> types.ChainExecutor
	38, // 41: types.chain33.CreateTransaction:input_type -> types.CreateTxIn
	16, // 42: types.chain33.GetHexTxByHash:input_type -> types.ReqHash
	39, // 43: types.chain33.DumpPrivkey:input_type -> types.ReqString
	40, // 44: types.chain33.DumpPrivkeysFile:input_type -> types.ReqPrivkeysFile
	40, // 45: types.chain33.ImportPrivkeysFile:input_type -> types.ReqPrivkeysFile
	13, // 46: types.chain33.Version:input_type -> types.ReqNil
	13, // 47: types.chain33.IsSync:input_type -> types.ReqNil
	41, // 48: types.chain33.GetPeerInfo:input_type -> types.P2PGetPeerReq
	42, // 49: types.chain33.NetInfo:input_type -> types.P2PGetNetInfoReq
	13, // 50: types.chain33.IsNtpClockSync:input_type -> types.ReqNil
	13, // 51: types.chain33.GetFatalFailure:input_type -> types.ReqNil
	13, // 52: types.chain33.GetLastBlockSequence:input_type -> types.ReqNil
	16, // 53: types.chain33.GetSequenceByHash:input_type -> types.ReqHash
	19, // 54: types.chain33.GetBlockByHashes:input_type -> types.ReqHashes
	43, // 55: types.chain33.GetBlockBySeq:input_type -> types.Int64
	13, // 56: types.chain33.CloseQueue:input_type -> types.ReqNil
	44, // 57: types.chain33.GetAllExecBalance:input_type -> types.ReqAllExecBalance
	45, // 58: types.chain33.SignRawTx:input_type -> types.ReqSignRawTx
	46, // 59: types.chain33.CreateNoBalanceTransaction:input_type -> types.NoBalanceTx
	47, // 60: types.chain33.QueryRandNum:input_type -> types.ReqRandHash
	48, // 61: types.chain33.GetFork:input_type -> types.ReqKey
	49, // 62: types.chain33.CreateNoBalanceTxs:input_type -> types.NoBalanceTxs
	50, // 63: types.chain33.GetParaTxByTitle:input_type -> types.ReqParaTxByTitle
	51, // 64: types.chain33.LoadParaTxByTitle:input_type -> types.ReqHeightByTitle
	52, // 65: types.chain33.GetParaTxByHeight:input_type -> types.ReqParaTxByHeight
	12, // 66: types.chain33.GetHeaders:input_type -> types.ReqBlocks
	13, // 67: types.chain33.GetServerTime:input_type -> types.ReqNil
	13, // 68: types.chain33.GetCryptoList:input_type -> types.ReqNil
	13, // 69: types.chain33.GetAddressDrivers:input_type -> types.ReqNil
	5,  // 70: types.chain33.SendDelayTransaction:input_type -> types.delayTx
	6,  // 71: types.chain33.GetWalletRecoverAddress:input_type -> types.ReqGetWalletRecoverAddr
	7,  // 72: types.chain33.SignWalletRecoverTx:input_type -> types.ReqSignWalletRecoverTx
	13, // 73: types.chain33.GetFinalizedBlock:input_type -> types.ReqNil
	13, // 74: types.chain33.GetChainConfig:input_type -> types.ReqNil
	39, // 75: types.chain33.ConvertExectoAddr:input_type -> types.ReqString
	13, // 76: types.chain33.GetCoinSymbol:input_type -> types.ReqNil
	53, // 77: types.chain33.ReWriteTx:input_type -> types.ReWriteRawTx
	12, // 78: types.chain33.GetBlockSequences:input_type -> types.ReqBlocks
	54, // 79: types.chain33.AddPushSubscribe:input_type -> types.PushSubscribeReq
	13, // 80: types.chain33.ListPushes:input_type -> types.ReqNil
	39, // 81: types.chain33.GetPushSeqLastNum:input_type -> types.ReqString
	55, // 82: types.chain33.SubEvent:input_type -> types.ReqSubscribe
	39, // 83: types.chain33.UnSubEvent:input_type -> types.ReqString
	11, // 84: types.chain33.GetBlocks:output_type -> types.Reply
	56, // 85: types.chain33.GetLastHeader:output_type -> types.Header
	57, // 86: types.chain33.CreateRawTransaction:output_type -> types.UnsignTx
	57, // 87: types.chain33.CreateRawTxGroup:output_type -> types.UnsignTx
	58, // 88: types.chain33.QueryTransaction:output_type -> types.TransactionDetail
	11, // 89: types.chain33.SendTransactionSync:output_type -> types.Reply
	11, // 90: types.chain33.SendTransaction:output_type -> types.Reply
	9,  // 91: types.chain33.SendTransactions:output_type -> types.Replies
	59, // 92: types.chain33.GetTransactionByAddr:output_type -> types.ReplyTxInfos
	60, // 93: types.chain33.GetTransactionByHashes:output_type -> types.TransactionDetails
	61, // 94: types.chain33.GetMemPool:output_type -> types.ReplyTxList
	62, // 95: types.chain33.GetAccounts:output_type -> types.WalletAccounts
	63, // 96: types.chain33.GetAccount:output_type -> types.WalletAccount
	63, // 97: types.chain33.NewAccount:output_type -> types.WalletAccount
	64, // 98: types.chain33.WalletTransactionList:output_type -> types.WalletTxDetails
	63, // 99: types.chain33.ImportPrivkey:output_type -> types.WalletAccount
	65, // 100: types.chain33.SendToAddress:output_type -> types.ReplyHash
	11, // 101: types.chain33.SetTxFee:output_type -> types.Reply
	63, // 102: types.chain33.SetLabl:output_type -> types.WalletAccount
	66, // 103: types.chain33.MergeBalance:output_type -> types.ReplyHashes
	11, // 104: types.chain33.SetPasswd:output_type -> types.Reply
	11, // 105: types.chain33.Lock:output_type -> types.Reply
	11, // 106: types.chain33.UnLock:output_type -> types.Reply
	61, // 107: types.chain33.GetLastMemPool:output_type -> types.ReplyTxList
	67, // 108: types.chain33.GetProperFee:output_type -> types.ReplyProperFee
	68, // 109: types.chain33.GetWalletStatus:output_type -> types.WalletStatus
	69, // 110: types.chain33.GetBlockOverview:output_type -> types.BlockOverview
	70, // 111: types.chain33.GetAddrOverview:output_type -> types.AddrOverview
	65, // 112: types.chain33.GetBlockHash:output_type -> types.ReplyHash
	71, // 113: types.chain33.GenSeed:output_type -> types.ReplySeed
	71, // 114: types.chain33.GetSeed:output_type -> types.ReplySeed
	11, // 115: types.chain33.SaveSeed:output_type -> types.Reply
	72, // 116: types.chain33.GetBalance:output_type -> types.Accounts
	11, // 117: types.chain33.QueryChain:output_type -> types.Reply
	11, // 118: types.chain33.ExecWallet:output_type -> types.Reply
	11, // 119: types.chain33.QueryConsensus:output_type -> types.Reply
	57, // 120: types.chain33.CreateTransaction:output_type -> types.UnsignTx
	73, // 121: types.chain33.GetHexTxByHash:output_type -> types.HexTx
	74, // 122: types.chain33.DumpPrivkey:output_type -> types.ReplyString
	11, // 123: types.chain33.DumpPrivkeysFile:output_type -> types.Reply
	11, // 124: types.chain33.ImportPrivkeysFile:output_type -> types.Reply
	75, // 125: types.chain33.Version:output_type -> types.VersionInfo
	11, // 126: types.chain33.IsSync:output_type -> types.Reply
	76, // 127: types.chain33.GetPeerInfo:output_type -> types.PeerList
	77, // 128: types.chain33.NetInfo:output_type -> types.NodeNetInfo
	11, // 129: types.chain33.IsNtpClockSync:output_type -> types.Reply
	78, // 130: types.chain33.GetFatalFailure:output_type -> types.Int32
	43, // 131: types.chain33.GetLastBlockSequence:output_type -> types.Int64
	43, // 132: types.chain33.GetSequenceByHash:output_type -> types.Int64
	79, // 133: types.chain33.GetBlockByHashes:output_type -> types.BlockDetails
	80, // 134: types.chain33.GetBlockBySeq:output_type -> types.BlockSeq
	11, // 135: types.chain33.CloseQueue:output_type -> types.Reply
	81, // 136: types.chain33.GetAllExecBalance:output_type -> types.AllExecBalance
	82, // 137: types.chain33.SignRawTx:output_type -> types.ReplySignRawTx
	82, // 138: types.chain33.CreateNoBalanceTransaction:output_type -> types.ReplySignRawTx
	65, // 139: types.chain33.QueryRandNum:output_type -> types.ReplyHash
	43, // 140: types.chain33.GetFork:output_type -> types.Int64
	82, // 141: types.chain33.CreateNoBalanceTxs:output_type -> types.ReplySignRawTx
	83, // 142: types.chain33.GetParaTxByTitle:output_type -> types.ParaTxDetails
	84, // 143: types.chain33.LoadParaTxByTitle:output_type -> types.ReplyHeightByTitle
	83, // 144: types.chain33.GetParaTxByHeight:output_type -> types.ParaTxDetails
	85, // 145: types.chain33.GetHeaders:output_type -> types.Headers
	0,  // 146: types.chain33.GetServerTime:output_type -> types.serverTime
	2,  // 147: types.chain33.GetCryptoList:output_type -> types.cryptoList
	4,  // 148: types.chain33.GetAddressDrivers:output_type -> types.addressDrivers
	11, // 149: types.chain33.SendDelayTransaction:output_type -> types.Reply
	74, // 150: types.chain33.GetWalletRecoverAddress:output_type -> types.ReplyString
	82, // 151: types.chain33.SignWalletRecoverTx:output_type -> types.ReplySignRawTx
	86, // 152: types.chain33.GetFinalizedBlock:output_type -> types.snowChoice
	8,  // 153: types.chain33.GetChainConfig:output_type -> types.ChainConfigInfo
	74, // 154: types.chain33.ConvertExectoAddr:output_type -> types.ReplyString
	74, // 155: types.chain33.GetCoinSymbol:output_type -> types.ReplyString
	57, // 156: types.chain33.ReWriteTx:output_type -> types.UnsignTx
	87, // 157: types.chain33.GetBlockSequences:output_type -> types.BlockSequences
	88, // 158: types.chain33.AddPushSubscribe:output_type -> types.ReplySubscribePush
	89, // 159: types.chain33.ListPushes:output_type -> types.PushSubscribes
	43, // 160: types.chain33.GetPushSeqLastNum:output_type -> types.Int64
	90, // 161: types.chain33.SubEvent:output_type -> types.PushData
	11, // 162: types.chain33.UnSubEvent:output_type -> types.Reply
	84, // [84:163] is the sub-list for method output_type
	5,  // [5:84] is the sub-list for method input_type
	5,  // [5:5] is the sub-list for extension type_name
	5,  // [5:5] is the sub-list for extension extendee
	0,  // [0:5] is the sub-list for field type_name
}

func init() { file_rpc_proto_init() }
func file_rpc_proto_init() {
	if File_rpc_proto != nil {
		return
	}
	file_common_proto_init()
	file_transaction_proto_init()
	file_blockchain_proto_init()
	file_wallet_proto_init()
	file_p2p_proto_init()
	file_account_proto_init()
	file_executor_proto_init()
	file_push_tx_receipt_proto_init()
	file_snowman_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ServerTime); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Crypto); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CryptoList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddressDriver); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddressDrivers); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DelayTx); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReqGetWalletRecoverAddr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReqSignWalletRecoverTx); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ChainConfigInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Replies); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_rpc_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   10,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_rpc_proto_goTypes,
		DependencyIndexes: file_rpc_proto_depIdxs,
		MessageInfos:      file_rpc_proto_msgTypes,
	}.Build()
	File_rpc_proto = out.File
	file_rpc_proto_rawDesc = nil
	file_rpc_proto_goTypes = nil
	file_rpc_proto_depIdxs = nil
}

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

// 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.SupportPackageIsVersion6

// Chain33Client is the client API for Chain33 service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type Chain33Client interface {
	// chain33 对外提供服务的接口
	//区块链接口
	GetBlocks(ctx context.Context, in *ReqBlocks, opts ...grpc.CallOption) (*Reply, error)
	//获取最新的区块头
	GetLastHeader(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*Header, error)
	//交易接口
	CreateRawTransaction(ctx context.Context, in *CreateTx, opts ...grpc.CallOption) (*UnsignTx, error)
	CreateRawTxGroup(ctx context.Context, in *CreateTransactionGroup, opts ...grpc.CallOption) (*UnsignTx, error)
	// 根据哈希查询交易
	QueryTransaction(ctx context.Context, in *ReqHash, opts ...grpc.CallOption) (*TransactionDetail, error)
	// 发送交易&&根据哈希查询交易
	SendTransactionSync(ctx context.Context, in *Transaction, opts ...grpc.CallOption) (*Reply, error)
	// 发送交易
	SendTransaction(ctx context.Context, in *Transaction, opts ...grpc.CallOption) (*Reply, error)
	// 批量发送交易
	SendTransactions(ctx context.Context, in *Transactions, opts ...grpc.CallOption) (*Replies, error)
	//通过地址获取交易信息
	GetTransactionByAddr(ctx context.Context, in *ReqAddr, opts ...grpc.CallOption) (*ReplyTxInfos, error)
	//通过哈希数组获取对应的交易
	GetTransactionByHashes(ctx context.Context, in *ReqHashes, opts ...grpc.CallOption) (*TransactionDetails, error)
	//缓存接口
	GetMemPool(ctx context.Context, in *ReqGetMempool, opts ...grpc.CallOption) (*ReplyTxList, error)
	//钱包接口
	//获取钱包账户信息
	GetAccounts(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*WalletAccounts, error)
	//根据账户lable信息获取账户地址
	GetAccount(ctx context.Context, in *ReqGetAccount, opts ...grpc.CallOption) (*WalletAccount, error)
	//创建钱包账户
	NewAccount(ctx context.Context, in *ReqNewAccount, opts ...grpc.CallOption) (*WalletAccount, error)
	//获取钱包的交易列表
	WalletTransactionList(ctx context.Context, in *ReqWalletTransactionList, opts ...grpc.CallOption) (*WalletTxDetails, error)
	//导入钱包私钥
	ImportPrivkey(ctx context.Context, in *ReqWalletImportPrivkey, opts ...grpc.CallOption) (*WalletAccount, error)
	// 发送交易
	SendToAddress(ctx context.Context, in *ReqWalletSendToAddress, opts ...grpc.CallOption) (*ReplyHash, error)
	//设置交易手续费
	SetTxFee(ctx context.Context, in *ReqWalletSetFee, opts ...grpc.CallOption) (*Reply, error)
	//设置标签
	SetLabl(ctx context.Context, in *ReqWalletSetLabel, opts ...grpc.CallOption) (*WalletAccount, error)
	//合并钱包余额
	MergeBalance(ctx context.Context, in *ReqWalletMergeBalance, opts ...grpc.CallOption) (*ReplyHashes, error)
	//设置钱包密码
	SetPasswd(ctx context.Context, in *ReqWalletSetPasswd, opts ...grpc.CallOption) (*Reply, error)
	//给钱包上锁
	Lock(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*Reply, error)
	//给钱包解锁
	UnLock(ctx context.Context, in *WalletUnLock, opts ...grpc.CallOption) (*Reply, error)
	//获取最新的Mempool
	GetLastMemPool(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*ReplyTxList, error)
	//获取最新的ProperFee
	GetProperFee(ctx context.Context, in *ReqProperFee, opts ...grpc.CallOption) (*ReplyProperFee, error)
	// 获取钱包状态
	GetWalletStatus(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*WalletStatus, error)
	//区块浏览器接口
	///
	GetBlockOverview(ctx context.Context, in *ReqHash, opts ...grpc.CallOption) (*BlockOverview, error)
	GetAddrOverview(ctx context.Context, in *ReqAddr, opts ...grpc.CallOption) (*AddrOverview, error)
	GetBlockHash(ctx context.Context, in *ReqInt, opts ...grpc.CallOption) (*ReplyHash, error)
	// seed
	// 创建seed
	GenSeed(ctx context.Context, in *GenSeedLang, opts ...grpc.CallOption) (*ReplySeed, error)
	//获取seed
	GetSeed(ctx context.Context, in *GetSeedByPw, opts ...grpc.CallOption) (*ReplySeed, error)
	//保存seed
	SaveSeed(ctx context.Context, in *SaveSeedByPw, opts ...grpc.CallOption) (*Reply, error)
	// Balance Query
	//获取余额
	GetBalance(ctx context.Context, in *ReqBalance, opts ...grpc.CallOption) (*Accounts, error)
	QueryChain(ctx context.Context, in *ChainExecutor, opts ...grpc.CallOption) (*Reply, error)
	ExecWallet(ctx context.Context, in *ChainExecutor, opts ...grpc.CallOption) (*Reply, error)
	QueryConsensus(ctx context.Context, in *ChainExecutor, opts ...grpc.CallOption) (*Reply, error)
	CreateTransaction(ctx context.Context, in *CreateTxIn, opts ...grpc.CallOption) (*UnsignTx, error)
	//获取交易的十六进制编码
	GetHexTxByHash(ctx context.Context, in *ReqHash, opts ...grpc.CallOption) (*HexTx, error)
	// 导出私钥
	DumpPrivkey(ctx context.Context, in *ReqString, opts ...grpc.CallOption) (*ReplyString, error)
	// 导出全部私钥到文件
	DumpPrivkeysFile(ctx context.Context, in *ReqPrivkeysFile, opts ...grpc.CallOption) (*Reply, error)
	// 从文件中批量导入私钥
	ImportPrivkeysFile(ctx context.Context, in *ReqPrivkeysFile, opts ...grpc.CallOption) (*Reply, error)
	//获取程序版本
	Version(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*VersionInfo, error)
	//是否同步
	IsSync(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*Reply, error)
	//获取当前节点连接的其他节点信息
	GetPeerInfo(ctx context.Context, in *P2PGetPeerReq, opts ...grpc.CallOption) (*PeerList, error)
	//获取当前节点的网络信息
	NetInfo(ctx context.Context, in *P2PGetNetInfoReq, opts ...grpc.CallOption) (*NodeNetInfo, error)
	// ntpclock是否同步
	IsNtpClockSync(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*Reply, error)
	//获取系统致命故障信息
	GetFatalFailure(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*Int32, error)
	GetLastBlockSequence(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*Int64, error)
	// get add block's sequence by hash
	GetSequenceByHash(ctx context.Context, in *ReqHash, opts ...grpc.CallOption) (*Int64, error)
	//通过block hash 获取对应的blocks信息
	GetBlockByHashes(ctx context.Context, in *ReqHashes, opts ...grpc.CallOption) (*BlockDetails, error)
	//通过block seq 获取对应的blocks hash 信息
	GetBlockBySeq(ctx context.Context, in *Int64, opts ...grpc.CallOption) (*BlockSeq, error)
	//关闭chain33
	CloseQueue(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*Reply, error)
	//获取地址所以合约下的余额
	GetAllExecBalance(ctx context.Context, in *ReqAllExecBalance, opts ...grpc.CallOption) (*AllExecBalance, error)
	//签名交易
	SignRawTx(ctx context.Context, in *ReqSignRawTx, opts ...grpc.CallOption) (*ReplySignRawTx, error)
	CreateNoBalanceTransaction(ctx context.Context, in *NoBalanceTx, opts ...grpc.CallOption) (*ReplySignRawTx, error)
	// 获取随机HASH
	QueryRandNum(ctx context.Context, in *ReqRandHash, opts ...grpc.CallOption) (*ReplyHash, error)
	// 获取是否达到fork高度
	GetFork(ctx context.Context, in *ReqKey, opts ...grpc.CallOption) (*Int64, error)
	CreateNoBalanceTxs(ctx context.Context, in *NoBalanceTxs, opts ...grpc.CallOption) (*ReplySignRawTx, error)
	//通过seq以及title获取对应平行连的交易
	GetParaTxByTitle(ctx context.Context, in *ReqParaTxByTitle, opts ...grpc.CallOption) (*ParaTxDetails, error)
	//获取拥有此title交易的区块高度
	LoadParaTxByTitle(ctx context.Context, in *ReqHeightByTitle, opts ...grpc.CallOption) (*ReplyHeightByTitle, error)
	//通过区块高度列表+title获取平行链交易
	GetParaTxByHeight(ctx context.Context, in *ReqParaTxByHeight, opts ...grpc.CallOption) (*ParaTxDetails, error)
	//获取区块头信息
	GetHeaders(ctx context.Context, in *ReqBlocks, opts ...grpc.CallOption) (*Headers, error)
	// get server time
	GetServerTime(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*ServerTime, error)
	// 获取加密算法列表，用于签名等
	GetCryptoList(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*CryptoList, error)
	// 获取地址格式插件列表
	GetAddressDrivers(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*AddressDrivers, error)
	// 发送延时交易
	SendDelayTransaction(ctx context.Context, in *DelayTx, opts ...grpc.CallOption) (*Reply, error)
	// 获取钱包找回地址
	GetWalletRecoverAddress(ctx context.Context, in *ReqGetWalletRecoverAddr, opts ...grpc.CallOption) (*ReplyString, error)
	// 钱包找回交易签名
	SignWalletRecoverTx(ctx context.Context, in *ReqSignWalletRecoverTx, opts ...grpc.CallOption) (*ReplySignRawTx, error)
	// 获取最终化区块
	GetFinalizedBlock(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*SnowChoice, error)
	// 获取节点配置信息
	GetChainConfig(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*ChainConfigInfo, error)
	//根据执行期名称创建对应的地址
	ConvertExectoAddr(ctx context.Context, in *ReqString, opts ...grpc.CallOption) (*ReplyString, error)
	// get coin symbol
	GetCoinSymbol(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*ReplyString, error)
	// ReWriteRawTx
	ReWriteTx(ctx context.Context, in *ReWriteRawTx, opts ...grpc.CallOption) (*UnsignTx, error)
	// GetBlockSequences
	GetBlockSequences(ctx context.Context, in *ReqBlocks, opts ...grpc.CallOption) (*BlockSequences, error)
	//兼容jrpc订阅接口
	AddPushSubscribe(ctx context.Context, in *PushSubscribeReq, opts ...grpc.CallOption) (*ReplySubscribePush, error)
	ListPushes(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*PushSubscribes, error)
	GetPushSeqLastNum(ctx context.Context, in *ReqString, opts ...grpc.CallOption) (*Int64, error)
	//发送订阅的数据到客户端
	SubEvent(ctx context.Context, in *ReqSubscribe, opts ...grpc.CallOption) (Chain33_SubEventClient, error)
	//取消订阅
	UnSubEvent(ctx context.Context, in *ReqString, opts ...grpc.CallOption) (*Reply, error)
}

type chain33Client struct {
	cc grpc.ClientConnInterface
}

func NewChain33Client(cc grpc.ClientConnInterface) Chain33Client {
	return &chain33Client{cc}
}

func (c *chain33Client) GetBlocks(ctx context.Context, in *ReqBlocks, opts ...grpc.CallOption) (*Reply, error) {
	out := new(Reply)
	err := c.cc.Invoke(ctx, "/types.chain33/GetBlocks", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetLastHeader(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*Header, error) {
	out := new(Header)
	err := c.cc.Invoke(ctx, "/types.chain33/GetLastHeader", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) CreateRawTransaction(ctx context.Context, in *CreateTx, opts ...grpc.CallOption) (*UnsignTx, error) {
	out := new(UnsignTx)
	err := c.cc.Invoke(ctx, "/types.chain33/CreateRawTransaction", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) CreateRawTxGroup(ctx context.Context, in *CreateTransactionGroup, opts ...grpc.CallOption) (*UnsignTx, error) {
	out := new(UnsignTx)
	err := c.cc.Invoke(ctx, "/types.chain33/CreateRawTxGroup", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) QueryTransaction(ctx context.Context, in *ReqHash, opts ...grpc.CallOption) (*TransactionDetail, error) {
	out := new(TransactionDetail)
	err := c.cc.Invoke(ctx, "/types.chain33/QueryTransaction", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) SendTransactionSync(ctx context.Context, in *Transaction, opts ...grpc.CallOption) (*Reply, error) {
	out := new(Reply)
	err := c.cc.Invoke(ctx, "/types.chain33/SendTransactionSync", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) SendTransaction(ctx context.Context, in *Transaction, opts ...grpc.CallOption) (*Reply, error) {
	out := new(Reply)
	err := c.cc.Invoke(ctx, "/types.chain33/SendTransaction", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) SendTransactions(ctx context.Context, in *Transactions, opts ...grpc.CallOption) (*Replies, error) {
	out := new(Replies)
	err := c.cc.Invoke(ctx, "/types.chain33/SendTransactions", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetTransactionByAddr(ctx context.Context, in *ReqAddr, opts ...grpc.CallOption) (*ReplyTxInfos, error) {
	out := new(ReplyTxInfos)
	err := c.cc.Invoke(ctx, "/types.chain33/GetTransactionByAddr", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetTransactionByHashes(ctx context.Context, in *ReqHashes, opts ...grpc.CallOption) (*TransactionDetails, error) {
	out := new(TransactionDetails)
	err := c.cc.Invoke(ctx, "/types.chain33/GetTransactionByHashes", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetMemPool(ctx context.Context, in *ReqGetMempool, opts ...grpc.CallOption) (*ReplyTxList, error) {
	out := new(ReplyTxList)
	err := c.cc.Invoke(ctx, "/types.chain33/GetMemPool", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetAccounts(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*WalletAccounts, error) {
	out := new(WalletAccounts)
	err := c.cc.Invoke(ctx, "/types.chain33/GetAccounts", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetAccount(ctx context.Context, in *ReqGetAccount, opts ...grpc.CallOption) (*WalletAccount, error) {
	out := new(WalletAccount)
	err := c.cc.Invoke(ctx, "/types.chain33/GetAccount", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) NewAccount(ctx context.Context, in *ReqNewAccount, opts ...grpc.CallOption) (*WalletAccount, error) {
	out := new(WalletAccount)
	err := c.cc.Invoke(ctx, "/types.chain33/NewAccount", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) WalletTransactionList(ctx context.Context, in *ReqWalletTransactionList, opts ...grpc.CallOption) (*WalletTxDetails, error) {
	out := new(WalletTxDetails)
	err := c.cc.Invoke(ctx, "/types.chain33/WalletTransactionList", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) ImportPrivkey(ctx context.Context, in *ReqWalletImportPrivkey, opts ...grpc.CallOption) (*WalletAccount, error) {
	out := new(WalletAccount)
	err := c.cc.Invoke(ctx, "/types.chain33/ImportPrivkey", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) SendToAddress(ctx context.Context, in *ReqWalletSendToAddress, opts ...grpc.CallOption) (*ReplyHash, error) {
	out := new(ReplyHash)
	err := c.cc.Invoke(ctx, "/types.chain33/SendToAddress", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) SetTxFee(ctx context.Context, in *ReqWalletSetFee, opts ...grpc.CallOption) (*Reply, error) {
	out := new(Reply)
	err := c.cc.Invoke(ctx, "/types.chain33/SetTxFee", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) SetLabl(ctx context.Context, in *ReqWalletSetLabel, opts ...grpc.CallOption) (*WalletAccount, error) {
	out := new(WalletAccount)
	err := c.cc.Invoke(ctx, "/types.chain33/SetLabl", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) MergeBalance(ctx context.Context, in *ReqWalletMergeBalance, opts ...grpc.CallOption) (*ReplyHashes, error) {
	out := new(ReplyHashes)
	err := c.cc.Invoke(ctx, "/types.chain33/MergeBalance", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) SetPasswd(ctx context.Context, in *ReqWalletSetPasswd, opts ...grpc.CallOption) (*Reply, error) {
	out := new(Reply)
	err := c.cc.Invoke(ctx, "/types.chain33/SetPasswd", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) Lock(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*Reply, error) {
	out := new(Reply)
	err := c.cc.Invoke(ctx, "/types.chain33/Lock", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) UnLock(ctx context.Context, in *WalletUnLock, opts ...grpc.CallOption) (*Reply, error) {
	out := new(Reply)
	err := c.cc.Invoke(ctx, "/types.chain33/UnLock", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetLastMemPool(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*ReplyTxList, error) {
	out := new(ReplyTxList)
	err := c.cc.Invoke(ctx, "/types.chain33/GetLastMemPool", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetProperFee(ctx context.Context, in *ReqProperFee, opts ...grpc.CallOption) (*ReplyProperFee, error) {
	out := new(ReplyProperFee)
	err := c.cc.Invoke(ctx, "/types.chain33/GetProperFee", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetWalletStatus(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*WalletStatus, error) {
	out := new(WalletStatus)
	err := c.cc.Invoke(ctx, "/types.chain33/GetWalletStatus", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetBlockOverview(ctx context.Context, in *ReqHash, opts ...grpc.CallOption) (*BlockOverview, error) {
	out := new(BlockOverview)
	err := c.cc.Invoke(ctx, "/types.chain33/GetBlockOverview", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetAddrOverview(ctx context.Context, in *ReqAddr, opts ...grpc.CallOption) (*AddrOverview, error) {
	out := new(AddrOverview)
	err := c.cc.Invoke(ctx, "/types.chain33/GetAddrOverview", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetBlockHash(ctx context.Context, in *ReqInt, opts ...grpc.CallOption) (*ReplyHash, error) {
	out := new(ReplyHash)
	err := c.cc.Invoke(ctx, "/types.chain33/GetBlockHash", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GenSeed(ctx context.Context, in *GenSeedLang, opts ...grpc.CallOption) (*ReplySeed, error) {
	out := new(ReplySeed)
	err := c.cc.Invoke(ctx, "/types.chain33/GenSeed", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetSeed(ctx context.Context, in *GetSeedByPw, opts ...grpc.CallOption) (*ReplySeed, error) {
	out := new(ReplySeed)
	err := c.cc.Invoke(ctx, "/types.chain33/GetSeed", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) SaveSeed(ctx context.Context, in *SaveSeedByPw, opts ...grpc.CallOption) (*Reply, error) {
	out := new(Reply)
	err := c.cc.Invoke(ctx, "/types.chain33/SaveSeed", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetBalance(ctx context.Context, in *ReqBalance, opts ...grpc.CallOption) (*Accounts, error) {
	out := new(Accounts)
	err := c.cc.Invoke(ctx, "/types.chain33/GetBalance", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) QueryChain(ctx context.Context, in *ChainExecutor, opts ...grpc.CallOption) (*Reply, error) {
	out := new(Reply)
	err := c.cc.Invoke(ctx, "/types.chain33/QueryChain", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) ExecWallet(ctx context.Context, in *ChainExecutor, opts ...grpc.CallOption) (*Reply, error) {
	out := new(Reply)
	err := c.cc.Invoke(ctx, "/types.chain33/ExecWallet", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) QueryConsensus(ctx context.Context, in *ChainExecutor, opts ...grpc.CallOption) (*Reply, error) {
	out := new(Reply)
	err := c.cc.Invoke(ctx, "/types.chain33/QueryConsensus", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) CreateTransaction(ctx context.Context, in *CreateTxIn, opts ...grpc.CallOption) (*UnsignTx, error) {
	out := new(UnsignTx)
	err := c.cc.Invoke(ctx, "/types.chain33/CreateTransaction", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetHexTxByHash(ctx context.Context, in *ReqHash, opts ...grpc.CallOption) (*HexTx, error) {
	out := new(HexTx)
	err := c.cc.Invoke(ctx, "/types.chain33/GetHexTxByHash", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) DumpPrivkey(ctx context.Context, in *ReqString, opts ...grpc.CallOption) (*ReplyString, error) {
	out := new(ReplyString)
	err := c.cc.Invoke(ctx, "/types.chain33/DumpPrivkey", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) DumpPrivkeysFile(ctx context.Context, in *ReqPrivkeysFile, opts ...grpc.CallOption) (*Reply, error) {
	out := new(Reply)
	err := c.cc.Invoke(ctx, "/types.chain33/DumpPrivkeysFile", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) ImportPrivkeysFile(ctx context.Context, in *ReqPrivkeysFile, opts ...grpc.CallOption) (*Reply, error) {
	out := new(Reply)
	err := c.cc.Invoke(ctx, "/types.chain33/ImportPrivkeysFile", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) Version(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*VersionInfo, error) {
	out := new(VersionInfo)
	err := c.cc.Invoke(ctx, "/types.chain33/Version", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) IsSync(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*Reply, error) {
	out := new(Reply)
	err := c.cc.Invoke(ctx, "/types.chain33/IsSync", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetPeerInfo(ctx context.Context, in *P2PGetPeerReq, opts ...grpc.CallOption) (*PeerList, error) {
	out := new(PeerList)
	err := c.cc.Invoke(ctx, "/types.chain33/GetPeerInfo", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) NetInfo(ctx context.Context, in *P2PGetNetInfoReq, opts ...grpc.CallOption) (*NodeNetInfo, error) {
	out := new(NodeNetInfo)
	err := c.cc.Invoke(ctx, "/types.chain33/NetInfo", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) IsNtpClockSync(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*Reply, error) {
	out := new(Reply)
	err := c.cc.Invoke(ctx, "/types.chain33/IsNtpClockSync", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetFatalFailure(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*Int32, error) {
	out := new(Int32)
	err := c.cc.Invoke(ctx, "/types.chain33/GetFatalFailure", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetLastBlockSequence(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*Int64, error) {
	out := new(Int64)
	err := c.cc.Invoke(ctx, "/types.chain33/GetLastBlockSequence", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetSequenceByHash(ctx context.Context, in *ReqHash, opts ...grpc.CallOption) (*Int64, error) {
	out := new(Int64)
	err := c.cc.Invoke(ctx, "/types.chain33/GetSequenceByHash", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetBlockByHashes(ctx context.Context, in *ReqHashes, opts ...grpc.CallOption) (*BlockDetails, error) {
	out := new(BlockDetails)
	err := c.cc.Invoke(ctx, "/types.chain33/GetBlockByHashes", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetBlockBySeq(ctx context.Context, in *Int64, opts ...grpc.CallOption) (*BlockSeq, error) {
	out := new(BlockSeq)
	err := c.cc.Invoke(ctx, "/types.chain33/GetBlockBySeq", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) CloseQueue(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*Reply, error) {
	out := new(Reply)
	err := c.cc.Invoke(ctx, "/types.chain33/CloseQueue", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetAllExecBalance(ctx context.Context, in *ReqAllExecBalance, opts ...grpc.CallOption) (*AllExecBalance, error) {
	out := new(AllExecBalance)
	err := c.cc.Invoke(ctx, "/types.chain33/GetAllExecBalance", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) SignRawTx(ctx context.Context, in *ReqSignRawTx, opts ...grpc.CallOption) (*ReplySignRawTx, error) {
	out := new(ReplySignRawTx)
	err := c.cc.Invoke(ctx, "/types.chain33/SignRawTx", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) CreateNoBalanceTransaction(ctx context.Context, in *NoBalanceTx, opts ...grpc.CallOption) (*ReplySignRawTx, error) {
	out := new(ReplySignRawTx)
	err := c.cc.Invoke(ctx, "/types.chain33/CreateNoBalanceTransaction", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) QueryRandNum(ctx context.Context, in *ReqRandHash, opts ...grpc.CallOption) (*ReplyHash, error) {
	out := new(ReplyHash)
	err := c.cc.Invoke(ctx, "/types.chain33/QueryRandNum", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetFork(ctx context.Context, in *ReqKey, opts ...grpc.CallOption) (*Int64, error) {
	out := new(Int64)
	err := c.cc.Invoke(ctx, "/types.chain33/GetFork", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) CreateNoBalanceTxs(ctx context.Context, in *NoBalanceTxs, opts ...grpc.CallOption) (*ReplySignRawTx, error) {
	out := new(ReplySignRawTx)
	err := c.cc.Invoke(ctx, "/types.chain33/CreateNoBalanceTxs", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetParaTxByTitle(ctx context.Context, in *ReqParaTxByTitle, opts ...grpc.CallOption) (*ParaTxDetails, error) {
	out := new(ParaTxDetails)
	err := c.cc.Invoke(ctx, "/types.chain33/GetParaTxByTitle", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) LoadParaTxByTitle(ctx context.Context, in *ReqHeightByTitle, opts ...grpc.CallOption) (*ReplyHeightByTitle, error) {
	out := new(ReplyHeightByTitle)
	err := c.cc.Invoke(ctx, "/types.chain33/LoadParaTxByTitle", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetParaTxByHeight(ctx context.Context, in *ReqParaTxByHeight, opts ...grpc.CallOption) (*ParaTxDetails, error) {
	out := new(ParaTxDetails)
	err := c.cc.Invoke(ctx, "/types.chain33/GetParaTxByHeight", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetHeaders(ctx context.Context, in *ReqBlocks, opts ...grpc.CallOption) (*Headers, error) {
	out := new(Headers)
	err := c.cc.Invoke(ctx, "/types.chain33/GetHeaders", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetServerTime(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*ServerTime, error) {
	out := new(ServerTime)
	err := c.cc.Invoke(ctx, "/types.chain33/GetServerTime", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetCryptoList(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*CryptoList, error) {
	out := new(CryptoList)
	err := c.cc.Invoke(ctx, "/types.chain33/GetCryptoList", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetAddressDrivers(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*AddressDrivers, error) {
	out := new(AddressDrivers)
	err := c.cc.Invoke(ctx, "/types.chain33/GetAddressDrivers", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) SendDelayTransaction(ctx context.Context, in *DelayTx, opts ...grpc.CallOption) (*Reply, error) {
	out := new(Reply)
	err := c.cc.Invoke(ctx, "/types.chain33/SendDelayTransaction", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetWalletRecoverAddress(ctx context.Context, in *ReqGetWalletRecoverAddr, opts ...grpc.CallOption) (*ReplyString, error) {
	out := new(ReplyString)
	err := c.cc.Invoke(ctx, "/types.chain33/GetWalletRecoverAddress", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) SignWalletRecoverTx(ctx context.Context, in *ReqSignWalletRecoverTx, opts ...grpc.CallOption) (*ReplySignRawTx, error) {
	out := new(ReplySignRawTx)
	err := c.cc.Invoke(ctx, "/types.chain33/SignWalletRecoverTx", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetFinalizedBlock(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*SnowChoice, error) {
	out := new(SnowChoice)
	err := c.cc.Invoke(ctx, "/types.chain33/GetFinalizedBlock", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetChainConfig(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*ChainConfigInfo, error) {
	out := new(ChainConfigInfo)
	err := c.cc.Invoke(ctx, "/types.chain33/GetChainConfig", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) ConvertExectoAddr(ctx context.Context, in *ReqString, opts ...grpc.CallOption) (*ReplyString, error) {
	out := new(ReplyString)
	err := c.cc.Invoke(ctx, "/types.chain33/ConvertExectoAddr", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetCoinSymbol(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*ReplyString, error) {
	out := new(ReplyString)
	err := c.cc.Invoke(ctx, "/types.chain33/GetCoinSymbol", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) ReWriteTx(ctx context.Context, in *ReWriteRawTx, opts ...grpc.CallOption) (*UnsignTx, error) {
	out := new(UnsignTx)
	err := c.cc.Invoke(ctx, "/types.chain33/ReWriteTx", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetBlockSequences(ctx context.Context, in *ReqBlocks, opts ...grpc.CallOption) (*BlockSequences, error) {
	out := new(BlockSequences)
	err := c.cc.Invoke(ctx, "/types.chain33/GetBlockSequences", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) AddPushSubscribe(ctx context.Context, in *PushSubscribeReq, opts ...grpc.CallOption) (*ReplySubscribePush, error) {
	out := new(ReplySubscribePush)
	err := c.cc.Invoke(ctx, "/types.chain33/AddPushSubscribe", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) ListPushes(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*PushSubscribes, error) {
	out := new(PushSubscribes)
	err := c.cc.Invoke(ctx, "/types.chain33/ListPushes", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) GetPushSeqLastNum(ctx context.Context, in *ReqString, opts ...grpc.CallOption) (*Int64, error) {
	out := new(Int64)
	err := c.cc.Invoke(ctx, "/types.chain33/GetPushSeqLastNum", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chain33Client) SubEvent(ctx context.Context, in *ReqSubscribe, opts ...grpc.CallOption) (Chain33_SubEventClient, error) {
	stream, err := c.cc.NewStream(ctx, &_Chain33_serviceDesc.Streams[0], "/types.chain33/SubEvent", opts...)
	if err != nil {
		return nil, err
	}
	x := &chain33SubEventClient{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 Chain33_SubEventClient interface {
	Recv() (*PushData, error)
	grpc.ClientStream
}

type chain33SubEventClient struct {
	grpc.ClientStream
}

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

func (c *chain33Client) UnSubEvent(ctx context.Context, in *ReqString, opts ...grpc.CallOption) (*Reply, error) {
	out := new(Reply)
	err := c.cc.Invoke(ctx, "/types.chain33/UnSubEvent", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Chain33Server is the server API for Chain33 service.
type Chain33Server interface {
	// chain33 对外提供服务的接口
	//区块链接口
	GetBlocks(context.Context, *ReqBlocks) (*Reply, error)
	//获取最新的区块头
	GetLastHeader(context.Context, *ReqNil) (*Header, error)
	//交易接口
	CreateRawTransaction(context.Context, *CreateTx) (*UnsignTx, error)
	CreateRawTxGroup(context.Context, *CreateTransactionGroup) (*UnsignTx, error)
	// 根据哈希查询交易
	QueryTransaction(context.Context, *ReqHash) (*TransactionDetail, error)
	// 发送交易&&根据哈希查询交易
	SendTransactionSync(context.Context, *Transaction) (*Reply, error)
	// 发送交易
	SendTransaction(context.Context, *Transaction) (*Reply, error)
	// 批量发送交易
	SendTransactions(context.Context, *Transactions) (*Replies, error)
	//通过地址获取交易信息
	GetTransactionByAddr(context.Context, *ReqAddr) (*ReplyTxInfos, error)
	//通过哈希数组获取对应的交易
	GetTransactionByHashes(context.Context, *ReqHashes) (*TransactionDetails, error)
	//缓存接口
	GetMemPool(context.Context, *ReqGetMempool) (*ReplyTxList, error)
	//钱包接口
	//获取钱包账户信息
	GetAccounts(context.Context, *ReqNil) (*WalletAccounts, error)
	//根据账户lable信息获取账户地址
	GetAccount(context.Context, *ReqGetAccount) (*WalletAccount, error)
	//创建钱包账户
	NewAccount(context.Context, *ReqNewAccount) (*WalletAccount, error)
	//获取钱包的交易列表
	WalletTransactionList(context.Context, *ReqWalletTransactionList) (*WalletTxDetails, error)
	//导入钱包私钥
	ImportPrivkey(context.Context, *ReqWalletImportPrivkey) (*WalletAccount, error)
	// 发送交易
	SendToAddress(context.Context, *ReqWalletSendToAddress) (*ReplyHash, error)
	//设置交易手续费
	SetTxFee(context.Context, *ReqWalletSetFee) (*Reply, error)
	//设置标签
	SetLabl(context.Context, *ReqWalletSetLabel) (*WalletAccount, error)
	//合并钱包余额
	MergeBalance(context.Context, *ReqWalletMergeBalance) (*ReplyHashes, error)
	//设置钱包密码
	SetPasswd(context.Context, *ReqWalletSetPasswd) (*Reply, error)
	//给钱包上锁
	Lock(context.Context, *ReqNil) (*Reply, error)
	//给钱包解锁
	UnLock(context.Context, *WalletUnLock) (*Reply, error)
	//获取最新的Mempool
	GetLastMemPool(context.Context, *ReqNil) (*ReplyTxList, error)
	//获取最新的ProperFee
	GetProperFee(context.Context, *ReqProperFee) (*ReplyProperFee, error)
	// 获取钱包状态
	GetWalletStatus(context.Context, *ReqNil) (*WalletStatus, error)
	//区块浏览器接口
	///
	GetBlockOverview(context.Context, *ReqHash) (*BlockOverview, error)
	GetAddrOverview(context.Context, *ReqAddr) (*AddrOverview, error)
	GetBlockHash(context.Context, *ReqInt) (*ReplyHash, error)
	// seed
	// 创建seed
	GenSeed(context.Context, *GenSeedLang) (*ReplySeed, error)
	//获取seed
	GetSeed(context.Context, *GetSeedByPw) (*ReplySeed, error)
	//保存seed
	SaveSeed(context.Context, *SaveSeedByPw) (*Reply, error)
	// Balance Query
	//获取余额
	GetBalance(context.Context, *ReqBalance) (*Accounts, error)
	QueryChain(context.Context, *ChainExecutor) (*Reply, error)
	ExecWallet(context.Context, *ChainExecutor) (*Reply, error)
	QueryConsensus(context.Context, *ChainExecutor) (*Reply, error)
	CreateTransaction(context.Context, *CreateTxIn) (*UnsignTx, error)
	//获取交易的十六进制编码
	GetHexTxByHash(context.Context, *ReqHash) (*HexTx, error)
	// 导出私钥
	DumpPrivkey(context.Context, *ReqString) (*ReplyString, error)
	// 导出全部私钥到文件
	DumpPrivkeysFile(context.Context, *ReqPrivkeysFile) (*Reply, error)
	// 从文件中批量导入私钥
	ImportPrivkeysFile(context.Context, *ReqPrivkeysFile) (*Reply, error)
	//获取程序版本
	Version(context.Context, *ReqNil) (*VersionInfo, error)
	//是否同步
	IsSync(context.Context, *ReqNil) (*Reply, error)
	//获取当前节点连接的其他节点信息
	GetPeerInfo(context.Context, *P2PGetPeerReq) (*PeerList, error)
	//获取当前节点的网络信息
	NetInfo(context.Context, *P2PGetNetInfoReq) (*NodeNetInfo, error)
	// ntpclock是否同步
	IsNtpClockSync(context.Context, *ReqNil) (*Reply, error)
	//获取系统致命故障信息
	GetFatalFailure(context.Context, *ReqNil) (*Int32, error)
	GetLastBlockSequence(context.Context, *ReqNil) (*Int64, error)
	// get add block's sequence by hash
	GetSequenceByHash(context.Context, *ReqHash) (*Int64, error)
	//通过block hash 获取对应的blocks信息
	GetBlockByHashes(context.Context, *ReqHashes) (*BlockDetails, error)
	//通过block seq 获取对应的blocks hash 信息
	GetBlockBySeq(context.Context, *Int64) (*BlockSeq, error)
	//关闭chain33
	CloseQueue(context.Context, *ReqNil) (*Reply, error)
	//获取地址所以合约下的余额
	GetAllExecBalance(context.Context, *ReqAllExecBalance) (*AllExecBalance, error)
	//签名交易
	SignRawTx(context.Context, *ReqSignRawTx) (*ReplySignRawTx, error)
	CreateNoBalanceTransaction(context.Context, *NoBalanceTx) (*ReplySignRawTx, error)
	// 获取随机HASH
	QueryRandNum(context.Context, *ReqRandHash) (*ReplyHash, error)
	// 获取是否达到fork高度
	GetFork(context.Context, *ReqKey) (*Int64, error)
	CreateNoBalanceTxs(context.Context, *NoBalanceTxs) (*ReplySignRawTx, error)
	//通过seq以及title获取对应平行连的交易
	GetParaTxByTitle(context.Context, *ReqParaTxByTitle) (*ParaTxDetails, error)
	//获取拥有此title交易的区块高度
	LoadParaTxByTitle(context.Context, *ReqHeightByTitle) (*ReplyHeightByTitle, error)
	//通过区块高度列表+title获取平行链交易
	GetParaTxByHeight(context.Context, *ReqParaTxByHeight) (*ParaTxDetails, error)
	//获取区块头信息
	GetHeaders(context.Context, *ReqBlocks) (*Headers, error)
	// get server time
	GetServerTime(context.Context, *ReqNil) (*ServerTime, error)
	// 获取加密算法列表，用于签名等
	GetCryptoList(context.Context, *ReqNil) (*CryptoList, error)
	// 获取地址格式插件列表
	GetAddressDrivers(context.Context, *ReqNil) (*AddressDrivers, error)
	// 发送延时交易
	SendDelayTransaction(context.Context, *DelayTx) (*Reply, error)
	// 获取钱包找回地址
	GetWalletRecoverAddress(context.Context, *ReqGetWalletRecoverAddr) (*ReplyString, error)
	// 钱包找回交易签名
	SignWalletRecoverTx(context.Context, *ReqSignWalletRecoverTx) (*ReplySignRawTx, error)
	// 获取最终化区块
	GetFinalizedBlock(context.Context, *ReqNil) (*SnowChoice, error)
	// 获取节点配置信息
	GetChainConfig(context.Context, *ReqNil) (*ChainConfigInfo, error)
	//根据执行期名称创建对应的地址
	ConvertExectoAddr(context.Context, *ReqString) (*ReplyString, error)
	// get coin symbol
	GetCoinSymbol(context.Context, *ReqNil) (*ReplyString, error)
	// ReWriteRawTx
	ReWriteTx(context.Context, *ReWriteRawTx) (*UnsignTx, error)
	// GetBlockSequences
	GetBlockSequences(context.Context, *ReqBlocks) (*BlockSequences, error)
	//兼容jrpc订阅接口
	AddPushSubscribe(context.Context, *PushSubscribeReq) (*ReplySubscribePush, error)
	ListPushes(context.Context, *ReqNil) (*PushSubscribes, error)
	GetPushSeqLastNum(context.Context, *ReqString) (*Int64, error)
	//发送订阅的数据到客户端
	SubEvent(*ReqSubscribe, Chain33_SubEventServer) error
	//取消订阅
	UnSubEvent(context.Context, *ReqString) (*Reply, error)
}

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

func (*UnimplementedChain33Server) GetBlocks(context.Context, *ReqBlocks) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetBlocks not implemented")
}
func (*UnimplementedChain33Server) GetLastHeader(context.Context, *ReqNil) (*Header, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetLastHeader not implemented")
}
func (*UnimplementedChain33Server) CreateRawTransaction(context.Context, *CreateTx) (*UnsignTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateRawTransaction not implemented")
}
func (*UnimplementedChain33Server) CreateRawTxGroup(context.Context, *CreateTransactionGroup) (*UnsignTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateRawTxGroup not implemented")
}
func (*UnimplementedChain33Server) QueryTransaction(context.Context, *ReqHash) (*TransactionDetail, error) {
	return nil, status.Errorf(codes.Unimplemented, "method QueryTransaction not implemented")
}
func (*UnimplementedChain33Server) SendTransactionSync(context.Context, *Transaction) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SendTransactionSync not implemented")
}
func (*UnimplementedChain33Server) SendTransaction(context.Context, *Transaction) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SendTransaction not implemented")
}
func (*UnimplementedChain33Server) SendTransactions(context.Context, *Transactions) (*Replies, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SendTransactions not implemented")
}
func (*UnimplementedChain33Server) GetTransactionByAddr(context.Context, *ReqAddr) (*ReplyTxInfos, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetTransactionByAddr not implemented")
}
func (*UnimplementedChain33Server) GetTransactionByHashes(context.Context, *ReqHashes) (*TransactionDetails, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetTransactionByHashes not implemented")
}
func (*UnimplementedChain33Server) GetMemPool(context.Context, *ReqGetMempool) (*ReplyTxList, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetMemPool not implemented")
}
func (*UnimplementedChain33Server) GetAccounts(context.Context, *ReqNil) (*WalletAccounts, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetAccounts not implemented")
}
func (*UnimplementedChain33Server) GetAccount(context.Context, *ReqGetAccount) (*WalletAccount, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetAccount not implemented")
}
func (*UnimplementedChain33Server) NewAccount(context.Context, *ReqNewAccount) (*WalletAccount, error) {
	return nil, status.Errorf(codes.Unimplemented, "method NewAccount not implemented")
}
func (*UnimplementedChain33Server) WalletTransactionList(context.Context, *ReqWalletTransactionList) (*WalletTxDetails, error) {
	return nil, status.Errorf(codes.Unimplemented, "method WalletTransactionList not implemented")
}
func (*UnimplementedChain33Server) ImportPrivkey(context.Context, *ReqWalletImportPrivkey) (*WalletAccount, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ImportPrivkey not implemented")
}
func (*UnimplementedChain33Server) SendToAddress(context.Context, *ReqWalletSendToAddress) (*ReplyHash, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SendToAddress not implemented")
}
func (*UnimplementedChain33Server) SetTxFee(context.Context, *ReqWalletSetFee) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetTxFee not implemented")
}
func (*UnimplementedChain33Server) SetLabl(context.Context, *ReqWalletSetLabel) (*WalletAccount, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetLabl not implemented")
}
func (*UnimplementedChain33Server) MergeBalance(context.Context, *ReqWalletMergeBalance) (*ReplyHashes, error) {
	return nil, status.Errorf(codes.Unimplemented, "method MergeBalance not implemented")
}
func (*UnimplementedChain33Server) SetPasswd(context.Context, *ReqWalletSetPasswd) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetPasswd not implemented")
}
func (*UnimplementedChain33Server) Lock(context.Context, *ReqNil) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Lock not implemented")
}
func (*UnimplementedChain33Server) UnLock(context.Context, *WalletUnLock) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UnLock not implemented")
}
func (*UnimplementedChain33Server) GetLastMemPool(context.Context, *ReqNil) (*ReplyTxList, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetLastMemPool not implemented")
}
func (*UnimplementedChain33Server) GetProperFee(context.Context, *ReqProperFee) (*ReplyProperFee, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetProperFee not implemented")
}
func (*UnimplementedChain33Server) GetWalletStatus(context.Context, *ReqNil) (*WalletStatus, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetWalletStatus not implemented")
}
func (*UnimplementedChain33Server) GetBlockOverview(context.Context, *ReqHash) (*BlockOverview, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetBlockOverview not implemented")
}
func (*UnimplementedChain33Server) GetAddrOverview(context.Context, *ReqAddr) (*AddrOverview, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetAddrOverview not implemented")
}
func (*UnimplementedChain33Server) GetBlockHash(context.Context, *ReqInt) (*ReplyHash, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetBlockHash not implemented")
}
func (*UnimplementedChain33Server) GenSeed(context.Context, *GenSeedLang) (*ReplySeed, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GenSeed not implemented")
}
func (*UnimplementedChain33Server) GetSeed(context.Context, *GetSeedByPw) (*ReplySeed, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetSeed not implemented")
}
func (*UnimplementedChain33Server) SaveSeed(context.Context, *SaveSeedByPw) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SaveSeed not implemented")
}
func (*UnimplementedChain33Server) GetBalance(context.Context, *ReqBalance) (*Accounts, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetBalance not implemented")
}
func (*UnimplementedChain33Server) QueryChain(context.Context, *ChainExecutor) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method QueryChain not implemented")
}
func (*UnimplementedChain33Server) ExecWallet(context.Context, *ChainExecutor) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ExecWallet not implemented")
}
func (*UnimplementedChain33Server) QueryConsensus(context.Context, *ChainExecutor) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method QueryConsensus not implemented")
}
func (*UnimplementedChain33Server) CreateTransaction(context.Context, *CreateTxIn) (*UnsignTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateTransaction not implemented")
}
func (*UnimplementedChain33Server) GetHexTxByHash(context.Context, *ReqHash) (*HexTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetHexTxByHash not implemented")
}
func (*UnimplementedChain33Server) DumpPrivkey(context.Context, *ReqString) (*ReplyString, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DumpPrivkey not implemented")
}
func (*UnimplementedChain33Server) DumpPrivkeysFile(context.Context, *ReqPrivkeysFile) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DumpPrivkeysFile not implemented")
}
func (*UnimplementedChain33Server) ImportPrivkeysFile(context.Context, *ReqPrivkeysFile) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ImportPrivkeysFile not implemented")
}
func (*UnimplementedChain33Server) Version(context.Context, *ReqNil) (*VersionInfo, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Version not implemented")
}
func (*UnimplementedChain33Server) IsSync(context.Context, *ReqNil) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method IsSync not implemented")
}
func (*UnimplementedChain33Server) GetPeerInfo(context.Context, *P2PGetPeerReq) (*PeerList, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetPeerInfo not implemented")
}
func (*UnimplementedChain33Server) NetInfo(context.Context, *P2PGetNetInfoReq) (*NodeNetInfo, error) {
	return nil, status.Errorf(codes.Unimplemented, "method NetInfo not implemented")
}
func (*UnimplementedChain33Server) IsNtpClockSync(context.Context, *ReqNil) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method IsNtpClockSync not implemented")
}
func (*UnimplementedChain33Server) GetFatalFailure(context.Context, *ReqNil) (*Int32, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetFatalFailure not implemented")
}
func (*UnimplementedChain33Server) GetLastBlockSequence(context.Context, *ReqNil) (*Int64, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetLastBlockSequence not implemented")
}
func (*UnimplementedChain33Server) GetSequenceByHash(context.Context, *ReqHash) (*Int64, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetSequenceByHash not implemented")
}
func (*UnimplementedChain33Server) GetBlockByHashes(context.Context, *ReqHashes) (*BlockDetails, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetBlockByHashes not implemented")
}
func (*UnimplementedChain33Server) GetBlockBySeq(context.Context, *Int64) (*BlockSeq, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetBlockBySeq not implemented")
}
func (*UnimplementedChain33Server) CloseQueue(context.Context, *ReqNil) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CloseQueue not implemented")
}
func (*UnimplementedChain33Server) GetAllExecBalance(context.Context, *ReqAllExecBalance) (*AllExecBalance, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetAllExecBalance not implemented")
}
func (*UnimplementedChain33Server) SignRawTx(context.Context, *ReqSignRawTx) (*ReplySignRawTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SignRawTx not implemented")
}
func (*UnimplementedChain33Server) CreateNoBalanceTransaction(context.Context, *NoBalanceTx) (*ReplySignRawTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateNoBalanceTransaction not implemented")
}
func (*UnimplementedChain33Server) QueryRandNum(context.Context, *ReqRandHash) (*ReplyHash, error) {
	return nil, status.Errorf(codes.Unimplemented, "method QueryRandNum not implemented")
}
func (*UnimplementedChain33Server) GetFork(context.Context, *ReqKey) (*Int64, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetFork not implemented")
}
func (*UnimplementedChain33Server) CreateNoBalanceTxs(context.Context, *NoBalanceTxs) (*ReplySignRawTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateNoBalanceTxs not implemented")
}
func (*UnimplementedChain33Server) GetParaTxByTitle(context.Context, *ReqParaTxByTitle) (*ParaTxDetails, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetParaTxByTitle not implemented")
}
func (*UnimplementedChain33Server) LoadParaTxByTitle(context.Context, *ReqHeightByTitle) (*ReplyHeightByTitle, error) {
	return nil, status.Errorf(codes.Unimplemented, "method LoadParaTxByTitle not implemented")
}
func (*UnimplementedChain33Server) GetParaTxByHeight(context.Context, *ReqParaTxByHeight) (*ParaTxDetails, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetParaTxByHeight not implemented")
}
func (*UnimplementedChain33Server) GetHeaders(context.Context, *ReqBlocks) (*Headers, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetHeaders not implemented")
}
func (*UnimplementedChain33Server) GetServerTime(context.Context, *ReqNil) (*ServerTime, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetServerTime not implemented")
}
func (*UnimplementedChain33Server) GetCryptoList(context.Context, *ReqNil) (*CryptoList, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetCryptoList not implemented")
}
func (*UnimplementedChain33Server) GetAddressDrivers(context.Context, *ReqNil) (*AddressDrivers, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetAddressDrivers not implemented")
}
func (*UnimplementedChain33Server) SendDelayTransaction(context.Context, *DelayTx) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SendDelayTransaction not implemented")
}
func (*UnimplementedChain33Server) GetWalletRecoverAddress(context.Context, *ReqGetWalletRecoverAddr) (*ReplyString, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetWalletRecoverAddress not implemented")
}
func (*UnimplementedChain33Server) SignWalletRecoverTx(context.Context, *ReqSignWalletRecoverTx) (*ReplySignRawTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SignWalletRecoverTx not implemented")
}
func (*UnimplementedChain33Server) GetFinalizedBlock(context.Context, *ReqNil) (*SnowChoice, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetFinalizedBlock not implemented")
}
func (*UnimplementedChain33Server) GetChainConfig(context.Context, *ReqNil) (*ChainConfigInfo, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetChainConfig not implemented")
}
func (*UnimplementedChain33Server) ConvertExectoAddr(context.Context, *ReqString) (*ReplyString, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ConvertExectoAddr not implemented")
}
func (*UnimplementedChain33Server) GetCoinSymbol(context.Context, *ReqNil) (*ReplyString, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetCoinSymbol not implemented")
}
func (*UnimplementedChain33Server) ReWriteTx(context.Context, *ReWriteRawTx) (*UnsignTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ReWriteTx not implemented")
}
func (*UnimplementedChain33Server) GetBlockSequences(context.Context, *ReqBlocks) (*BlockSequences, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetBlockSequences not implemented")
}
func (*UnimplementedChain33Server) AddPushSubscribe(context.Context, *PushSubscribeReq) (*ReplySubscribePush, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AddPushSubscribe not implemented")
}
func (*UnimplementedChain33Server) ListPushes(context.Context, *ReqNil) (*PushSubscribes, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListPushes not implemented")
}
func (*UnimplementedChain33Server) GetPushSeqLastNum(context.Context, *ReqString) (*Int64, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetPushSeqLastNum not implemented")
}
func (*UnimplementedChain33Server) SubEvent(*ReqSubscribe, Chain33_SubEventServer) error {
	return status.Errorf(codes.Unimplemented, "method SubEvent not implemented")
}
func (*UnimplementedChain33Server) UnSubEvent(context.Context, *ReqString) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UnSubEvent not implemented")
}

func RegisterChain33Server(s *grpc.Server, srv Chain33Server) {
	s.RegisterService(&_Chain33_serviceDesc, srv)
}

func _Chain33_GetBlocks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqBlocks)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetBlocks(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetBlocks",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetBlocks(ctx, req.(*ReqBlocks))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetLastHeader_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqNil)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetLastHeader(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetLastHeader",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetLastHeader(ctx, req.(*ReqNil))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_CreateRawTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateTx)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).CreateRawTransaction(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/CreateRawTransaction",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).CreateRawTransaction(ctx, req.(*CreateTx))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_CreateRawTxGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateTransactionGroup)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).CreateRawTxGroup(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/CreateRawTxGroup",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).CreateRawTxGroup(ctx, req.(*CreateTransactionGroup))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_QueryTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqHash)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).QueryTransaction(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/QueryTransaction",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).QueryTransaction(ctx, req.(*ReqHash))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_SendTransactionSync_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Transaction)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).SendTransactionSync(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/SendTransactionSync",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).SendTransactionSync(ctx, req.(*Transaction))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_SendTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Transaction)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).SendTransaction(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/SendTransaction",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).SendTransaction(ctx, req.(*Transaction))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_SendTransactions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Transactions)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).SendTransactions(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/SendTransactions",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).SendTransactions(ctx, req.(*Transactions))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetTransactionByAddr_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqAddr)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetTransactionByAddr(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetTransactionByAddr",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetTransactionByAddr(ctx, req.(*ReqAddr))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetTransactionByHashes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqHashes)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetTransactionByHashes(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetTransactionByHashes",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetTransactionByHashes(ctx, req.(*ReqHashes))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetMemPool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqGetMempool)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetMemPool(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetMemPool",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetMemPool(ctx, req.(*ReqGetMempool))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetAccounts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqNil)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetAccounts(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetAccounts",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetAccounts(ctx, req.(*ReqNil))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqGetAccount)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetAccount(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetAccount",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetAccount(ctx, req.(*ReqGetAccount))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_NewAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqNewAccount)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).NewAccount(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/NewAccount",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).NewAccount(ctx, req.(*ReqNewAccount))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_WalletTransactionList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqWalletTransactionList)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).WalletTransactionList(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/WalletTransactionList",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).WalletTransactionList(ctx, req.(*ReqWalletTransactionList))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_ImportPrivkey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqWalletImportPrivkey)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).ImportPrivkey(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/ImportPrivkey",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).ImportPrivkey(ctx, req.(*ReqWalletImportPrivkey))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_SendToAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqWalletSendToAddress)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).SendToAddress(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/SendToAddress",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).SendToAddress(ctx, req.(*ReqWalletSendToAddress))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_SetTxFee_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqWalletSetFee)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).SetTxFee(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/SetTxFee",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).SetTxFee(ctx, req.(*ReqWalletSetFee))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_SetLabl_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqWalletSetLabel)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).SetLabl(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/SetLabl",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).SetLabl(ctx, req.(*ReqWalletSetLabel))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_MergeBalance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqWalletMergeBalance)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).MergeBalance(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/MergeBalance",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).MergeBalance(ctx, req.(*ReqWalletMergeBalance))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_SetPasswd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqWalletSetPasswd)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).SetPasswd(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/SetPasswd",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).SetPasswd(ctx, req.(*ReqWalletSetPasswd))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_Lock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqNil)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).Lock(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/Lock",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).Lock(ctx, req.(*ReqNil))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_UnLock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(WalletUnLock)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).UnLock(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/UnLock",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).UnLock(ctx, req.(*WalletUnLock))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetLastMemPool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqNil)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetLastMemPool(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetLastMemPool",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetLastMemPool(ctx, req.(*ReqNil))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetProperFee_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqProperFee)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetProperFee(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetProperFee",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetProperFee(ctx, req.(*ReqProperFee))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetWalletStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqNil)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetWalletStatus(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetWalletStatus",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetWalletStatus(ctx, req.(*ReqNil))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetBlockOverview_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqHash)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetBlockOverview(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetBlockOverview",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetBlockOverview(ctx, req.(*ReqHash))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetAddrOverview_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqAddr)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetAddrOverview(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetAddrOverview",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetAddrOverview(ctx, req.(*ReqAddr))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetBlockHash_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqInt)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetBlockHash(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetBlockHash",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetBlockHash(ctx, req.(*ReqInt))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GenSeed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GenSeedLang)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GenSeed(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GenSeed",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GenSeed(ctx, req.(*GenSeedLang))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetSeed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetSeedByPw)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetSeed(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetSeed",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetSeed(ctx, req.(*GetSeedByPw))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_SaveSeed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SaveSeedByPw)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).SaveSeed(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/SaveSeed",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).SaveSeed(ctx, req.(*SaveSeedByPw))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetBalance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqBalance)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetBalance(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetBalance",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetBalance(ctx, req.(*ReqBalance))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_QueryChain_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ChainExecutor)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).QueryChain(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/QueryChain",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).QueryChain(ctx, req.(*ChainExecutor))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_ExecWallet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ChainExecutor)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).ExecWallet(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/ExecWallet",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).ExecWallet(ctx, req.(*ChainExecutor))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_QueryConsensus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ChainExecutor)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).QueryConsensus(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/QueryConsensus",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).QueryConsensus(ctx, req.(*ChainExecutor))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_CreateTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateTxIn)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).CreateTransaction(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/CreateTransaction",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).CreateTransaction(ctx, req.(*CreateTxIn))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetHexTxByHash_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqHash)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetHexTxByHash(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetHexTxByHash",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetHexTxByHash(ctx, req.(*ReqHash))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_DumpPrivkey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqString)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).DumpPrivkey(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/DumpPrivkey",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).DumpPrivkey(ctx, req.(*ReqString))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_DumpPrivkeysFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqPrivkeysFile)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).DumpPrivkeysFile(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/DumpPrivkeysFile",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).DumpPrivkeysFile(ctx, req.(*ReqPrivkeysFile))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_ImportPrivkeysFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqPrivkeysFile)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).ImportPrivkeysFile(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/ImportPrivkeysFile",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).ImportPrivkeysFile(ctx, req.(*ReqPrivkeysFile))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_Version_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqNil)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).Version(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/Version",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).Version(ctx, req.(*ReqNil))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_IsSync_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqNil)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).IsSync(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/IsSync",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).IsSync(ctx, req.(*ReqNil))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetPeerInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(P2PGetPeerReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetPeerInfo(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetPeerInfo",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetPeerInfo(ctx, req.(*P2PGetPeerReq))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_NetInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(P2PGetNetInfoReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).NetInfo(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/NetInfo",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).NetInfo(ctx, req.(*P2PGetNetInfoReq))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_IsNtpClockSync_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqNil)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).IsNtpClockSync(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/IsNtpClockSync",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).IsNtpClockSync(ctx, req.(*ReqNil))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetFatalFailure_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqNil)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetFatalFailure(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetFatalFailure",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetFatalFailure(ctx, req.(*ReqNil))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetLastBlockSequence_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqNil)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetLastBlockSequence(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetLastBlockSequence",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetLastBlockSequence(ctx, req.(*ReqNil))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetSequenceByHash_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqHash)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetSequenceByHash(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetSequenceByHash",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetSequenceByHash(ctx, req.(*ReqHash))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetBlockByHashes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqHashes)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetBlockByHashes(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetBlockByHashes",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetBlockByHashes(ctx, req.(*ReqHashes))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetBlockBySeq_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Int64)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetBlockBySeq(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetBlockBySeq",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetBlockBySeq(ctx, req.(*Int64))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_CloseQueue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqNil)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).CloseQueue(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/CloseQueue",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).CloseQueue(ctx, req.(*ReqNil))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetAllExecBalance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqAllExecBalance)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetAllExecBalance(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetAllExecBalance",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetAllExecBalance(ctx, req.(*ReqAllExecBalance))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_SignRawTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqSignRawTx)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).SignRawTx(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/SignRawTx",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).SignRawTx(ctx, req.(*ReqSignRawTx))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_CreateNoBalanceTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(NoBalanceTx)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).CreateNoBalanceTransaction(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/CreateNoBalanceTransaction",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).CreateNoBalanceTransaction(ctx, req.(*NoBalanceTx))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_QueryRandNum_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqRandHash)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).QueryRandNum(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/QueryRandNum",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).QueryRandNum(ctx, req.(*ReqRandHash))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetFork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqKey)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetFork(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetFork",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetFork(ctx, req.(*ReqKey))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_CreateNoBalanceTxs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(NoBalanceTxs)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).CreateNoBalanceTxs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/CreateNoBalanceTxs",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).CreateNoBalanceTxs(ctx, req.(*NoBalanceTxs))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetParaTxByTitle_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqParaTxByTitle)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetParaTxByTitle(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetParaTxByTitle",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetParaTxByTitle(ctx, req.(*ReqParaTxByTitle))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_LoadParaTxByTitle_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqHeightByTitle)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).LoadParaTxByTitle(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/LoadParaTxByTitle",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).LoadParaTxByTitle(ctx, req.(*ReqHeightByTitle))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetParaTxByHeight_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqParaTxByHeight)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetParaTxByHeight(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetParaTxByHeight",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetParaTxByHeight(ctx, req.(*ReqParaTxByHeight))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetHeaders_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqBlocks)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetHeaders(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetHeaders",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetHeaders(ctx, req.(*ReqBlocks))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetServerTime_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqNil)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetServerTime(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetServerTime",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetServerTime(ctx, req.(*ReqNil))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetCryptoList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqNil)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetCryptoList(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetCryptoList",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetCryptoList(ctx, req.(*ReqNil))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetAddressDrivers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqNil)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetAddressDrivers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetAddressDrivers",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetAddressDrivers(ctx, req.(*ReqNil))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_SendDelayTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DelayTx)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).SendDelayTransaction(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/SendDelayTransaction",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).SendDelayTransaction(ctx, req.(*DelayTx))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetWalletRecoverAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqGetWalletRecoverAddr)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetWalletRecoverAddress(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetWalletRecoverAddress",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetWalletRecoverAddress(ctx, req.(*ReqGetWalletRecoverAddr))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_SignWalletRecoverTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqSignWalletRecoverTx)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).SignWalletRecoverTx(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/SignWalletRecoverTx",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).SignWalletRecoverTx(ctx, req.(*ReqSignWalletRecoverTx))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetFinalizedBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqNil)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetFinalizedBlock(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetFinalizedBlock",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetFinalizedBlock(ctx, req.(*ReqNil))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetChainConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqNil)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetChainConfig(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetChainConfig",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetChainConfig(ctx, req.(*ReqNil))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_ConvertExectoAddr_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqString)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).ConvertExectoAddr(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/ConvertExectoAddr",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).ConvertExectoAddr(ctx, req.(*ReqString))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetCoinSymbol_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqNil)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetCoinSymbol(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetCoinSymbol",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetCoinSymbol(ctx, req.(*ReqNil))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_ReWriteTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReWriteRawTx)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).ReWriteTx(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/ReWriteTx",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).ReWriteTx(ctx, req.(*ReWriteRawTx))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetBlockSequences_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqBlocks)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetBlockSequences(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetBlockSequences",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetBlockSequences(ctx, req.(*ReqBlocks))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_AddPushSubscribe_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PushSubscribeReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).AddPushSubscribe(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/AddPushSubscribe",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).AddPushSubscribe(ctx, req.(*PushSubscribeReq))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_ListPushes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqNil)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).ListPushes(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/ListPushes",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).ListPushes(ctx, req.(*ReqNil))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_GetPushSeqLastNum_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqString)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).GetPushSeqLastNum(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/GetPushSeqLastNum",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).GetPushSeqLastNum(ctx, req.(*ReqString))
	}
	return interceptor(ctx, in, info, handler)
}

func _Chain33_SubEvent_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(ReqSubscribe)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(Chain33Server).SubEvent(m, &chain33SubEventServer{stream})
}

type Chain33_SubEventServer interface {
	Send(*PushData) error
	grpc.ServerStream
}

type chain33SubEventServer struct {
	grpc.ServerStream
}

func (x *chain33SubEventServer) Send(m *PushData) error {
	return x.ServerStream.SendMsg(m)
}

func _Chain33_UnSubEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqString)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(Chain33Server).UnSubEvent(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.chain33/UnSubEvent",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(Chain33Server).UnSubEvent(ctx, req.(*ReqString))
	}
	return interceptor(ctx, in, info, handler)
}

var _Chain33_serviceDesc = grpc.ServiceDesc{
	ServiceName: "types.chain33",
	HandlerType: (*Chain33Server)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetBlocks",
			Handler:    _Chain33_GetBlocks_Handler,
		},
		{
			MethodName: "GetLastHeader",
			Handler:    _Chain33_GetLastHeader_Handler,
		},
		{
			MethodName: "CreateRawTransaction",
			Handler:    _Chain33_CreateRawTransaction_Handler,
		},
		{
			MethodName: "CreateRawTxGroup",
			Handler:    _Chain33_CreateRawTxGroup_Handler,
		},
		{
			MethodName: "QueryTransaction",
			Handler:    _Chain33_QueryTransaction_Handler,
		},
		{
			MethodName: "SendTransactionSync",
			Handler:    _Chain33_SendTransactionSync_Handler,
		},
		{
			MethodName: "SendTransaction",
			Handler:    _Chain33_SendTransaction_Handler,
		},
		{
			MethodName: "SendTransactions",
			Handler:    _Chain33_SendTransactions_Handler,
		},
		{
			MethodName: "GetTransactionByAddr",
			Handler:    _Chain33_GetTransactionByAddr_Handler,
		},
		{
			MethodName: "GetTransactionByHashes",
			Handler:    _Chain33_GetTransactionByHashes_Handler,
		},
		{
			MethodName: "GetMemPool",
			Handler:    _Chain33_GetMemPool_Handler,
		},
		{
			MethodName: "GetAccounts",
			Handler:    _Chain33_GetAccounts_Handler,
		},
		{
			MethodName: "GetAccount",
			Handler:    _Chain33_GetAccount_Handler,
		},
		{
			MethodName: "NewAccount",
			Handler:    _Chain33_NewAccount_Handler,
		},
		{
			MethodName: "WalletTransactionList",
			Handler:    _Chain33_WalletTransactionList_Handler,
		},
		{
			MethodName: "ImportPrivkey",
			Handler:    _Chain33_ImportPrivkey_Handler,
		},
		{
			MethodName: "SendToAddress",
			Handler:    _Chain33_SendToAddress_Handler,
		},
		{
			MethodName: "SetTxFee",
			Handler:    _Chain33_SetTxFee_Handler,
		},
		{
			MethodName: "SetLabl",
			Handler:    _Chain33_SetLabl_Handler,
		},
		{
			MethodName: "MergeBalance",
			Handler:    _Chain33_MergeBalance_Handler,
		},
		{
			MethodName: "SetPasswd",
			Handler:    _Chain33_SetPasswd_Handler,
		},
		{
			MethodName: "Lock",
			Handler:    _Chain33_Lock_Handler,
		},
		{
			MethodName: "UnLock",
			Handler:    _Chain33_UnLock_Handler,
		},
		{
			MethodName: "GetLastMemPool",
			Handler:    _Chain33_GetLastMemPool_Handler,
		},
		{
			MethodName: "GetProperFee",
			Handler:    _Chain33_GetProperFee_Handler,
		},
		{
			MethodName: "GetWalletStatus",
			Handler:    _Chain33_GetWalletStatus_Handler,
		},
		{
			MethodName: "GetBlockOverview",
			Handler:    _Chain33_GetBlockOverview_Handler,
		},
		{
			MethodName: "GetAddrOverview",
			Handler:    _Chain33_GetAddrOverview_Handler,
		},
		{
			MethodName: "GetBlockHash",
			Handler:    _Chain33_GetBlockHash_Handler,
		},
		{
			MethodName: "GenSeed",
			Handler:    _Chain33_GenSeed_Handler,
		},
		{
			MethodName: "GetSeed",
			Handler:    _Chain33_GetSeed_Handler,
		},
		{
			MethodName: "SaveSeed",
			Handler:    _Chain33_SaveSeed_Handler,
		},
		{
			MethodName: "GetBalance",
			Handler:    _Chain33_GetBalance_Handler,
		},
		{
			MethodName: "QueryChain",
			Handler:    _Chain33_QueryChain_Handler,
		},
		{
			MethodName: "ExecWallet",
			Handler:    _Chain33_ExecWallet_Handler,
		},
		{
			MethodName: "QueryConsensus",
			Handler:    _Chain33_QueryConsensus_Handler,
		},
		{
			MethodName: "CreateTransaction",
			Handler:    _Chain33_CreateTransaction_Handler,
		},
		{
			MethodName: "GetHexTxByHash",
			Handler:    _Chain33_GetHexTxByHash_Handler,
		},
		{
			MethodName: "DumpPrivkey",
			Handler:    _Chain33_DumpPrivkey_Handler,
		},
		{
			MethodName: "DumpPrivkeysFile",
			Handler:    _Chain33_DumpPrivkeysFile_Handler,
		},
		{
			MethodName: "ImportPrivkeysFile",
			Handler:    _Chain33_ImportPrivkeysFile_Handler,
		},
		{
			MethodName: "Version",
			Handler:    _Chain33_Version_Handler,
		},
		{
			MethodName: "IsSync",
			Handler:    _Chain33_IsSync_Handler,
		},
		{
			MethodName: "GetPeerInfo",
			Handler:    _Chain33_GetPeerInfo_Handler,
		},
		{
			MethodName: "NetInfo",
			Handler:    _Chain33_NetInfo_Handler,
		},
		{
			MethodName: "IsNtpClockSync",
			Handler:    _Chain33_IsNtpClockSync_Handler,
		},
		{
			MethodName: "GetFatalFailure",
			Handler:    _Chain33_GetFatalFailure_Handler,
		},
		{
			MethodName: "GetLastBlockSequence",
			Handler:    _Chain33_GetLastBlockSequence_Handler,
		},
		{
			MethodName: "GetSequenceByHash",
			Handler:    _Chain33_GetSequenceByHash_Handler,
		},
		{
			MethodName: "GetBlockByHashes",
			Handler:    _Chain33_GetBlockByHashes_Handler,
		},
		{
			MethodName: "GetBlockBySeq",
			Handler:    _Chain33_GetBlockBySeq_Handler,
		},
		{
			MethodName: "CloseQueue",
			Handler:    _Chain33_CloseQueue_Handler,
		},
		{
			MethodName: "GetAllExecBalance",
			Handler:    _Chain33_GetAllExecBalance_Handler,
		},
		{
			MethodName: "SignRawTx",
			Handler:    _Chain33_SignRawTx_Handler,
		},
		{
			MethodName: "CreateNoBalanceTransaction",
			Handler:    _Chain33_CreateNoBalanceTransaction_Handler,
		},
		{
			MethodName: "QueryRandNum",
			Handler:    _Chain33_QueryRandNum_Handler,
		},
		{
			MethodName: "GetFork",
			Handler:    _Chain33_GetFork_Handler,
		},
		{
			MethodName: "CreateNoBalanceTxs",
			Handler:    _Chain33_CreateNoBalanceTxs_Handler,
		},
		{
			MethodName: "GetParaTxByTitle",
			Handler:    _Chain33_GetParaTxByTitle_Handler,
		},
		{
			MethodName: "LoadParaTxByTitle",
			Handler:    _Chain33_LoadParaTxByTitle_Handler,
		},
		{
			MethodName: "GetParaTxByHeight",
			Handler:    _Chain33_GetParaTxByHeight_Handler,
		},
		{
			MethodName: "GetHeaders",
			Handler:    _Chain33_GetHeaders_Handler,
		},
		{
			MethodName: "GetServerTime",
			Handler:    _Chain33_GetServerTime_Handler,
		},
		{
			MethodName: "GetCryptoList",
			Handler:    _Chain33_GetCryptoList_Handler,
		},
		{
			MethodName: "GetAddressDrivers",
			Handler:    _Chain33_GetAddressDrivers_Handler,
		},
		{
			MethodName: "SendDelayTransaction",
			Handler:    _Chain33_SendDelayTransaction_Handler,
		},
		{
			MethodName: "GetWalletRecoverAddress",
			Handler:    _Chain33_GetWalletRecoverAddress_Handler,
		},
		{
			MethodName: "SignWalletRecoverTx",
			Handler:    _Chain33_SignWalletRecoverTx_Handler,
		},
		{
			MethodName: "GetFinalizedBlock",
			Handler:    _Chain33_GetFinalizedBlock_Handler,
		},
		{
			MethodName: "GetChainConfig",
			Handler:    _Chain33_GetChainConfig_Handler,
		},
		{
			MethodName: "ConvertExectoAddr",
			Handler:    _Chain33_ConvertExectoAddr_Handler,
		},
		{
			MethodName: "GetCoinSymbol",
			Handler:    _Chain33_GetCoinSymbol_Handler,
		},
		{
			MethodName: "ReWriteTx",
			Handler:    _Chain33_ReWriteTx_Handler,
		},
		{
			MethodName: "GetBlockSequences",
			Handler:    _Chain33_GetBlockSequences_Handler,
		},
		{
			MethodName: "AddPushSubscribe",
			Handler:    _Chain33_AddPushSubscribe_Handler,
		},
		{
			MethodName: "ListPushes",
			Handler:    _Chain33_ListPushes_Handler,
		},
		{
			MethodName: "GetPushSeqLastNum",
			Handler:    _Chain33_GetPushSeqLastNum_Handler,
		},
		{
			MethodName: "UnSubEvent",
			Handler:    _Chain33_UnSubEvent_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "SubEvent",
			Handler:       _Chain33_SubEvent_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "rpc.proto",
}
