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

package types

import (
	context "context"
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
)

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

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

func init() {
	proto.RegisterFile("rpc.proto", fileDescriptor_77a6da22d6a3feb1)
}

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

// 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)
	// 发送交易
	SendTransaction(ctx context.Context, in *Transaction, opts ...grpc.CallOption) (*Reply, 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)
	//创建钱包账户
	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)
}

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) 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) 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) 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
}

// 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)
	// 发送交易
	SendTransaction(context.Context, *Transaction) (*Reply, 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)
	//创建钱包账户
	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)
}

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

func (*UnimplementedChain33Server) GetBlocks(ctx context.Context, req *ReqBlocks) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetBlocks not implemented")
}
func (*UnimplementedChain33Server) GetLastHeader(ctx context.Context, req *ReqNil) (*Header, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetLastHeader not implemented")
}
func (*UnimplementedChain33Server) CreateRawTransaction(ctx context.Context, req *CreateTx) (*UnsignTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateRawTransaction not implemented")
}
func (*UnimplementedChain33Server) CreateRawTxGroup(ctx context.Context, req *CreateTransactionGroup) (*UnsignTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateRawTxGroup not implemented")
}
func (*UnimplementedChain33Server) QueryTransaction(ctx context.Context, req *ReqHash) (*TransactionDetail, error) {
	return nil, status.Errorf(codes.Unimplemented, "method QueryTransaction not implemented")
}
func (*UnimplementedChain33Server) SendTransaction(ctx context.Context, req *Transaction) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SendTransaction not implemented")
}
func (*UnimplementedChain33Server) GetTransactionByAddr(ctx context.Context, req *ReqAddr) (*ReplyTxInfos, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetTransactionByAddr not implemented")
}
func (*UnimplementedChain33Server) GetTransactionByHashes(ctx context.Context, req *ReqHashes) (*TransactionDetails, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetTransactionByHashes not implemented")
}
func (*UnimplementedChain33Server) GetMemPool(ctx context.Context, req *ReqGetMempool) (*ReplyTxList, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetMemPool not implemented")
}
func (*UnimplementedChain33Server) GetAccounts(ctx context.Context, req *ReqNil) (*WalletAccounts, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetAccounts not implemented")
}
func (*UnimplementedChain33Server) NewAccount(ctx context.Context, req *ReqNewAccount) (*WalletAccount, error) {
	return nil, status.Errorf(codes.Unimplemented, "method NewAccount not implemented")
}
func (*UnimplementedChain33Server) WalletTransactionList(ctx context.Context, req *ReqWalletTransactionList) (*WalletTxDetails, error) {
	return nil, status.Errorf(codes.Unimplemented, "method WalletTransactionList not implemented")
}
func (*UnimplementedChain33Server) ImportPrivkey(ctx context.Context, req *ReqWalletImportPrivkey) (*WalletAccount, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ImportPrivkey not implemented")
}
func (*UnimplementedChain33Server) SendToAddress(ctx context.Context, req *ReqWalletSendToAddress) (*ReplyHash, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SendToAddress not implemented")
}
func (*UnimplementedChain33Server) SetTxFee(ctx context.Context, req *ReqWalletSetFee) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetTxFee not implemented")
}
func (*UnimplementedChain33Server) SetLabl(ctx context.Context, req *ReqWalletSetLabel) (*WalletAccount, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetLabl not implemented")
}
func (*UnimplementedChain33Server) MergeBalance(ctx context.Context, req *ReqWalletMergeBalance) (*ReplyHashes, error) {
	return nil, status.Errorf(codes.Unimplemented, "method MergeBalance not implemented")
}
func (*UnimplementedChain33Server) SetPasswd(ctx context.Context, req *ReqWalletSetPasswd) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetPasswd not implemented")
}
func (*UnimplementedChain33Server) Lock(ctx context.Context, req *ReqNil) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Lock not implemented")
}
func (*UnimplementedChain33Server) UnLock(ctx context.Context, req *WalletUnLock) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UnLock not implemented")
}
func (*UnimplementedChain33Server) GetLastMemPool(ctx context.Context, req *ReqNil) (*ReplyTxList, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetLastMemPool not implemented")
}
func (*UnimplementedChain33Server) GetProperFee(ctx context.Context, req *ReqProperFee) (*ReplyProperFee, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetProperFee not implemented")
}
func (*UnimplementedChain33Server) GetWalletStatus(ctx context.Context, req *ReqNil) (*WalletStatus, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetWalletStatus not implemented")
}
func (*UnimplementedChain33Server) GetBlockOverview(ctx context.Context, req *ReqHash) (*BlockOverview, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetBlockOverview not implemented")
}
func (*UnimplementedChain33Server) GetAddrOverview(ctx context.Context, req *ReqAddr) (*AddrOverview, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetAddrOverview not implemented")
}
func (*UnimplementedChain33Server) GetBlockHash(ctx context.Context, req *ReqInt) (*ReplyHash, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetBlockHash not implemented")
}
func (*UnimplementedChain33Server) GenSeed(ctx context.Context, req *GenSeedLang) (*ReplySeed, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GenSeed not implemented")
}
func (*UnimplementedChain33Server) GetSeed(ctx context.Context, req *GetSeedByPw) (*ReplySeed, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetSeed not implemented")
}
func (*UnimplementedChain33Server) SaveSeed(ctx context.Context, req *SaveSeedByPw) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SaveSeed not implemented")
}
func (*UnimplementedChain33Server) GetBalance(ctx context.Context, req *ReqBalance) (*Accounts, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetBalance not implemented")
}
func (*UnimplementedChain33Server) QueryChain(ctx context.Context, req *ChainExecutor) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method QueryChain not implemented")
}
func (*UnimplementedChain33Server) ExecWallet(ctx context.Context, req *ChainExecutor) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ExecWallet not implemented")
}
func (*UnimplementedChain33Server) QueryConsensus(ctx context.Context, req *ChainExecutor) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method QueryConsensus not implemented")
}
func (*UnimplementedChain33Server) CreateTransaction(ctx context.Context, req *CreateTxIn) (*UnsignTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateTransaction not implemented")
}
func (*UnimplementedChain33Server) GetHexTxByHash(ctx context.Context, req *ReqHash) (*HexTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetHexTxByHash not implemented")
}
func (*UnimplementedChain33Server) DumpPrivkey(ctx context.Context, req *ReqString) (*ReplyString, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DumpPrivkey not implemented")
}
func (*UnimplementedChain33Server) DumpPrivkeysFile(ctx context.Context, req *ReqPrivkeysFile) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DumpPrivkeysFile not implemented")
}
func (*UnimplementedChain33Server) ImportPrivkeysFile(ctx context.Context, req *ReqPrivkeysFile) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ImportPrivkeysFile not implemented")
}
func (*UnimplementedChain33Server) Version(ctx context.Context, req *ReqNil) (*VersionInfo, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Version not implemented")
}
func (*UnimplementedChain33Server) IsSync(ctx context.Context, req *ReqNil) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method IsSync not implemented")
}
func (*UnimplementedChain33Server) GetPeerInfo(ctx context.Context, req *P2PGetPeerReq) (*PeerList, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetPeerInfo not implemented")
}
func (*UnimplementedChain33Server) NetInfo(ctx context.Context, req *P2PGetNetInfoReq) (*NodeNetInfo, error) {
	return nil, status.Errorf(codes.Unimplemented, "method NetInfo not implemented")
}
func (*UnimplementedChain33Server) IsNtpClockSync(ctx context.Context, req *ReqNil) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method IsNtpClockSync not implemented")
}
func (*UnimplementedChain33Server) GetFatalFailure(ctx context.Context, req *ReqNil) (*Int32, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetFatalFailure not implemented")
}
func (*UnimplementedChain33Server) GetLastBlockSequence(ctx context.Context, req *ReqNil) (*Int64, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetLastBlockSequence not implemented")
}
func (*UnimplementedChain33Server) GetSequenceByHash(ctx context.Context, req *ReqHash) (*Int64, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetSequenceByHash not implemented")
}
func (*UnimplementedChain33Server) GetBlockByHashes(ctx context.Context, req *ReqHashes) (*BlockDetails, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetBlockByHashes not implemented")
}
func (*UnimplementedChain33Server) GetBlockBySeq(ctx context.Context, req *Int64) (*BlockSeq, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetBlockBySeq not implemented")
}
func (*UnimplementedChain33Server) CloseQueue(ctx context.Context, req *ReqNil) (*Reply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CloseQueue not implemented")
}
func (*UnimplementedChain33Server) GetAllExecBalance(ctx context.Context, req *ReqAllExecBalance) (*AllExecBalance, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetAllExecBalance not implemented")
}
func (*UnimplementedChain33Server) SignRawTx(ctx context.Context, req *ReqSignRawTx) (*ReplySignRawTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SignRawTx not implemented")
}
func (*UnimplementedChain33Server) CreateNoBalanceTransaction(ctx context.Context, req *NoBalanceTx) (*ReplySignRawTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateNoBalanceTransaction not implemented")
}
func (*UnimplementedChain33Server) QueryRandNum(ctx context.Context, req *ReqRandHash) (*ReplyHash, error) {
	return nil, status.Errorf(codes.Unimplemented, "method QueryRandNum not implemented")
}
func (*UnimplementedChain33Server) GetFork(ctx context.Context, req *ReqKey) (*Int64, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetFork not implemented")
}
func (*UnimplementedChain33Server) CreateNoBalanceTxs(ctx context.Context, req *NoBalanceTxs) (*ReplySignRawTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateNoBalanceTxs not implemented")
}
func (*UnimplementedChain33Server) GetParaTxByTitle(ctx context.Context, req *ReqParaTxByTitle) (*ParaTxDetails, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetParaTxByTitle not implemented")
}
func (*UnimplementedChain33Server) LoadParaTxByTitle(ctx context.Context, req *ReqHeightByTitle) (*ReplyHeightByTitle, error) {
	return nil, status.Errorf(codes.Unimplemented, "method LoadParaTxByTitle not implemented")
}
func (*UnimplementedChain33Server) GetParaTxByHeight(ctx context.Context, req *ReqParaTxByHeight) (*ParaTxDetails, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetParaTxByHeight not implemented")
}
func (*UnimplementedChain33Server) GetHeaders(ctx context.Context, req *ReqBlocks) (*Headers, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetHeaders 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_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_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_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)
}

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: "SendTransaction",
			Handler:    _Chain33_SendTransaction_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: "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,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "rpc.proto",
}
