// 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"
)

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

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

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

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

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

// 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 *ReqNil, 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)
	//获取当前节点连接的其他节点信息
	GetPeerInfo(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*PeerList, 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)
	//获取程序版本
	Version(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*VersionInfo, error)
	//是否同步
	IsSync(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*Reply, error)
	// ntpclock是否同步
	IsNtpClockSync(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*Reply, error)
	//获取当前节点的网络信息
	NetInfo(ctx context.Context, in *ReqNil, opts ...grpc.CallOption) (*NodeNetInfo, 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)
}

type chain33Client struct {
	cc *grpc.ClientConn
}

func NewChain33Client(cc *grpc.ClientConn) 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 *ReqNil, 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) GetPeerInfo(ctx context.Context, in *ReqNil, 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) 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) 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) 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) NetInfo(ctx context.Context, in *ReqNil, 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) 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
}

// 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, *ReqNil) (*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)
	//获取当前节点连接的其他节点信息
	GetPeerInfo(context.Context, *ReqNil) (*PeerList, 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)
	//获取程序版本
	Version(context.Context, *ReqNil) (*VersionInfo, error)
	//是否同步
	IsSync(context.Context, *ReqNil) (*Reply, error)
	// ntpclock是否同步
	IsNtpClockSync(context.Context, *ReqNil) (*Reply, error)
	//获取当前节点的网络信息
	NetInfo(context.Context, *ReqNil) (*NodeNetInfo, 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)
}

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(ReqNil)
	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.(*ReqNil))
	}
	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_GetPeerInfo_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).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.(*ReqNil))
	}
	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_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_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_NetInfo_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).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.(*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)
}

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: "GetPeerInfo",
			Handler:    _Chain33_GetPeerInfo_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: "Version",
			Handler:    _Chain33_Version_Handler,
		},
		{
			MethodName: "IsSync",
			Handler:    _Chain33_IsSync_Handler,
		},
		{
			MethodName: "IsNtpClockSync",
			Handler:    _Chain33_IsNtpClockSync_Handler,
		},
		{
			MethodName: "NetInfo",
			Handler:    _Chain33_NetInfo_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,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "rpc.proto",
}
