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

package types

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

	types "github.com/33cn/chain33/types"
	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

type AddressResult struct {
	Addr                 string   `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
	Amount               int64    `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"`
	HashValues           [][]byte `protobuf:"bytes,3,rep,name=hashValues,proto3" json:"hashValues,omitempty"`
	ShowSecret           string   `protobuf:"bytes,4,opt,name=showSecret,proto3" json:"showSecret,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_AddressResult proto.InternalMessageInfo

func (m *AddressResult) GetAddr() string {
	if m != nil {
		return m.Addr
	}
	return ""
}

func (m *AddressResult) GetAmount() int64 {
	if m != nil {
		return m.Amount
	}
	return 0
}

func (m *AddressResult) GetHashValues() [][]byte {
	if m != nil {
		return m.HashValues
	}
	return nil
}

func (m *AddressResult) GetShowSecret() string {
	if m != nil {
		return m.ShowSecret
	}
	return ""
}

// order
type BlackwhiteRound struct {
	// txhash
	GameID string `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
	// create -> play(timeout) -> show -> done
	Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"`
	// 游戏押金可大于
	PlayAmount int64 `protobuf:"varint,3,opt,name=playAmount,proto3" json:"playAmount,omitempty"`
	// 游戏人数
	PlayerCount int32 `protobuf:"varint,4,opt,name=playerCount,proto3" json:"playerCount,omitempty"`
	// 当前游戏人数
	CurPlayerCount int32 `protobuf:"varint,5,opt,name=curPlayerCount,proto3" json:"curPlayerCount,omitempty"`
	// 游戏需要比对次数
	Loop int32 `protobuf:"varint,6,opt,name=loop,proto3" json:"loop,omitempty"`
	// 当前出示密钥人数
	CurShowCount int32 `protobuf:"varint,7,opt,name=curShowCount,proto3" json:"curShowCount,omitempty"`
	// 创建游戏时间
	CreateTime int64 `protobuf:"varint,8,opt,name=createTime,proto3" json:"createTime,omitempty"`
	// 出示密钥开始时间
	ShowTime int64 `protobuf:"varint,9,opt,name=showTime,proto3" json:"showTime,omitempty"`
	// 超时时间
	Timeout int64 `protobuf:"varint,10,opt,name=timeout,proto3" json:"timeout,omitempty"`
	// 创建游戏地址
	CreateAddr string `protobuf:"bytes,11,opt,name=createAddr,proto3" json:"createAddr,omitempty"`
	// 游戏名称
	GameName string `protobuf:"bytes,12,opt,name=gameName,proto3" json:"gameName,omitempty"`
	// 游戏加密结果
	AddrResult []*AddressResult `protobuf:"bytes,13,rep,name=addrResult,proto3" json:"addrResult,omitempty"`
	// 游戏赢家
	Winner []string `protobuf:"bytes,14,rep,name=winner,proto3" json:"winner,omitempty"`
	// block高度以及索引值
	Index                int64    `protobuf:"varint,15,opt,name=index,proto3" json:"index,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_BlackwhiteRound proto.InternalMessageInfo

func (m *BlackwhiteRound) GetGameID() string {
	if m != nil {
		return m.GameID
	}
	return ""
}

func (m *BlackwhiteRound) GetStatus() int32 {
	if m != nil {
		return m.Status
	}
	return 0
}

func (m *BlackwhiteRound) GetPlayAmount() int64 {
	if m != nil {
		return m.PlayAmount
	}
	return 0
}

func (m *BlackwhiteRound) GetPlayerCount() int32 {
	if m != nil {
		return m.PlayerCount
	}
	return 0
}

func (m *BlackwhiteRound) GetCurPlayerCount() int32 {
	if m != nil {
		return m.CurPlayerCount
	}
	return 0
}

func (m *BlackwhiteRound) GetLoop() int32 {
	if m != nil {
		return m.Loop
	}
	return 0
}

func (m *BlackwhiteRound) GetCurShowCount() int32 {
	if m != nil {
		return m.CurShowCount
	}
	return 0
}

func (m *BlackwhiteRound) GetCreateTime() int64 {
	if m != nil {
		return m.CreateTime
	}
	return 0
}

func (m *BlackwhiteRound) GetShowTime() int64 {
	if m != nil {
		return m.ShowTime
	}
	return 0
}

func (m *BlackwhiteRound) GetTimeout() int64 {
	if m != nil {
		return m.Timeout
	}
	return 0
}

func (m *BlackwhiteRound) GetCreateAddr() string {
	if m != nil {
		return m.CreateAddr
	}
	return ""
}

func (m *BlackwhiteRound) GetGameName() string {
	if m != nil {
		return m.GameName
	}
	return ""
}

func (m *BlackwhiteRound) GetAddrResult() []*AddressResult {
	if m != nil {
		return m.AddrResult
	}
	return nil
}

func (m *BlackwhiteRound) GetWinner() []string {
	if m != nil {
		return m.Winner
	}
	return nil
}

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

// actions
type BlackwhiteAction struct {
	// Types that are valid to be assigned to Value:
	//	*BlackwhiteAction_Create
	//	*BlackwhiteAction_Play
	//	*BlackwhiteAction_Show
	//	*BlackwhiteAction_TimeoutDone
	Value                isBlackwhiteAction_Value `protobuf_oneof:"value"`
	Ty                   int32                    `protobuf:"varint,6,opt,name=ty,proto3" json:"ty,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
	XXX_unrecognized     []byte                   `json:"-"`
	XXX_sizecache        int32                    `json:"-"`
}

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

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

var xxx_messageInfo_BlackwhiteAction proto.InternalMessageInfo

type isBlackwhiteAction_Value interface {
	isBlackwhiteAction_Value()
}

type BlackwhiteAction_Create struct {
	Create *BlackwhiteCreate `protobuf:"bytes,1,opt,name=create,proto3,oneof"`
}

type BlackwhiteAction_Play struct {
	Play *BlackwhitePlay `protobuf:"bytes,2,opt,name=play,proto3,oneof"`
}

type BlackwhiteAction_Show struct {
	Show *BlackwhiteShow `protobuf:"bytes,3,opt,name=show,proto3,oneof"`
}

type BlackwhiteAction_TimeoutDone struct {
	TimeoutDone *BlackwhiteTimeoutDone `protobuf:"bytes,4,opt,name=timeoutDone,proto3,oneof"`
}

func (*BlackwhiteAction_Create) isBlackwhiteAction_Value() {}

func (*BlackwhiteAction_Play) isBlackwhiteAction_Value() {}

func (*BlackwhiteAction_Show) isBlackwhiteAction_Value() {}

func (*BlackwhiteAction_TimeoutDone) isBlackwhiteAction_Value() {}

func (m *BlackwhiteAction) GetValue() isBlackwhiteAction_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (m *BlackwhiteAction) GetCreate() *BlackwhiteCreate {
	if x, ok := m.GetValue().(*BlackwhiteAction_Create); ok {
		return x.Create
	}
	return nil
}

func (m *BlackwhiteAction) GetPlay() *BlackwhitePlay {
	if x, ok := m.GetValue().(*BlackwhiteAction_Play); ok {
		return x.Play
	}
	return nil
}

func (m *BlackwhiteAction) GetShow() *BlackwhiteShow {
	if x, ok := m.GetValue().(*BlackwhiteAction_Show); ok {
		return x.Show
	}
	return nil
}

func (m *BlackwhiteAction) GetTimeoutDone() *BlackwhiteTimeoutDone {
	if x, ok := m.GetValue().(*BlackwhiteAction_TimeoutDone); ok {
		return x.TimeoutDone
	}
	return nil
}

func (m *BlackwhiteAction) GetTy() int32 {
	if m != nil {
		return m.Ty
	}
	return 0
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*BlackwhiteAction) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*BlackwhiteAction_Create)(nil),
		(*BlackwhiteAction_Play)(nil),
		(*BlackwhiteAction_Show)(nil),
		(*BlackwhiteAction_TimeoutDone)(nil),
	}
}

type BlackwhiteCreate struct {
	PlayAmount           int64    `protobuf:"varint,1,opt,name=playAmount,proto3" json:"playAmount,omitempty"`
	PlayerCount          int32    `protobuf:"varint,2,opt,name=playerCount,proto3" json:"playerCount,omitempty"`
	Timeout              int64    `protobuf:"varint,3,opt,name=timeout,proto3" json:"timeout,omitempty"`
	GameName             string   `protobuf:"bytes,4,opt,name=gameName,proto3" json:"gameName,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_BlackwhiteCreate proto.InternalMessageInfo

func (m *BlackwhiteCreate) GetPlayAmount() int64 {
	if m != nil {
		return m.PlayAmount
	}
	return 0
}

func (m *BlackwhiteCreate) GetPlayerCount() int32 {
	if m != nil {
		return m.PlayerCount
	}
	return 0
}

func (m *BlackwhiteCreate) GetTimeout() int64 {
	if m != nil {
		return m.Timeout
	}
	return 0
}

func (m *BlackwhiteCreate) GetGameName() string {
	if m != nil {
		return m.GameName
	}
	return ""
}

type BlackwhitePlay struct {
	GameID               string   `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
	Amount               int64    `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"`
	HashValues           [][]byte `protobuf:"bytes,3,rep,name=hashValues,proto3" json:"hashValues,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_BlackwhitePlay proto.InternalMessageInfo

func (m *BlackwhitePlay) GetGameID() string {
	if m != nil {
		return m.GameID
	}
	return ""
}

func (m *BlackwhitePlay) GetAmount() int64 {
	if m != nil {
		return m.Amount
	}
	return 0
}

func (m *BlackwhitePlay) GetHashValues() [][]byte {
	if m != nil {
		return m.HashValues
	}
	return nil
}

type BlackwhiteShow struct {
	GameID               string   `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
	Secret               string   `protobuf:"bytes,2,opt,name=secret,proto3" json:"secret,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_BlackwhiteShow proto.InternalMessageInfo

func (m *BlackwhiteShow) GetGameID() string {
	if m != nil {
		return m.GameID
	}
	return ""
}

func (m *BlackwhiteShow) GetSecret() string {
	if m != nil {
		return m.Secret
	}
	return ""
}

type BlackwhiteTimeoutDone struct {
	GameID               string   `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_BlackwhiteTimeoutDone proto.InternalMessageInfo

func (m *BlackwhiteTimeoutDone) GetGameID() string {
	if m != nil {
		return m.GameID
	}
	return ""
}

// logs
type ReceiptBlackwhite struct {
	Round                *BlackwhiteRound `protobuf:"bytes,1,opt,name=round,proto3" json:"round,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

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

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

var xxx_messageInfo_ReceiptBlackwhite proto.InternalMessageInfo

func (m *ReceiptBlackwhite) GetRound() *BlackwhiteRound {
	if m != nil {
		return m.Round
	}
	return nil
}

type ReceiptBlackwhiteStatus struct {
	GameID string `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
	Status int32  `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"`
	//记录上一次状态
	PrevStatus           int32    `protobuf:"varint,3,opt,name=prevStatus,proto3" json:"prevStatus,omitempty"`
	Addr                 string   `protobuf:"bytes,4,opt,name=addr,proto3" json:"addr,omitempty"`
	Index                int64    `protobuf:"varint,5,opt,name=index,proto3" json:"index,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ReceiptBlackwhiteStatus proto.InternalMessageInfo

func (m *ReceiptBlackwhiteStatus) GetGameID() string {
	if m != nil {
		return m.GameID
	}
	return ""
}

func (m *ReceiptBlackwhiteStatus) GetStatus() int32 {
	if m != nil {
		return m.Status
	}
	return 0
}

func (m *ReceiptBlackwhiteStatus) GetPrevStatus() int32 {
	if m != nil {
		return m.PrevStatus
	}
	return 0
}

func (m *ReceiptBlackwhiteStatus) GetAddr() string {
	if m != nil {
		return m.Addr
	}
	return ""
}

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

type ReqBlackwhiteRoundInfo struct {
	GameID               string   `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ReqBlackwhiteRoundInfo) Reset()         { *m = ReqBlackwhiteRoundInfo{} }
func (m *ReqBlackwhiteRoundInfo) String() string { return proto.CompactTextString(m) }
func (*ReqBlackwhiteRoundInfo) ProtoMessage()    {}
func (*ReqBlackwhiteRoundInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_2484d55734a116de, []int{9}
}

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

var xxx_messageInfo_ReqBlackwhiteRoundInfo proto.InternalMessageInfo

func (m *ReqBlackwhiteRoundInfo) GetGameID() string {
	if m != nil {
		return m.GameID
	}
	return ""
}

type ReplyBlackwhiteRoundInfo struct {
	Round                *BlackwhiteRoundResult `protobuf:"bytes,1,opt,name=round,proto3" json:"round,omitempty"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (m *ReplyBlackwhiteRoundInfo) Reset()         { *m = ReplyBlackwhiteRoundInfo{} }
func (m *ReplyBlackwhiteRoundInfo) String() string { return proto.CompactTextString(m) }
func (*ReplyBlackwhiteRoundInfo) ProtoMessage()    {}
func (*ReplyBlackwhiteRoundInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_2484d55734a116de, []int{10}
}

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

var xxx_messageInfo_ReplyBlackwhiteRoundInfo proto.InternalMessageInfo

func (m *ReplyBlackwhiteRoundInfo) GetRound() *BlackwhiteRoundResult {
	if m != nil {
		return m.Round
	}
	return nil
}

type ReqBlackwhiteRoundList struct {
	//优先根据status查询,status不可为空
	Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"`
	//二级搜索，如果要查询一个地址下的所有game信息，可以根据status，分多次查询，这样规避存储数据时的臃余情况
	Address              string   `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
	Count                int32    `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"`
	Direction            int32    `protobuf:"varint,4,opt,name=direction,proto3" json:"direction,omitempty"`
	Index                int64    `protobuf:"varint,5,opt,name=index,proto3" json:"index,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ReqBlackwhiteRoundList) Reset()         { *m = ReqBlackwhiteRoundList{} }
func (m *ReqBlackwhiteRoundList) String() string { return proto.CompactTextString(m) }
func (*ReqBlackwhiteRoundList) ProtoMessage()    {}
func (*ReqBlackwhiteRoundList) Descriptor() ([]byte, []int) {
	return fileDescriptor_2484d55734a116de, []int{11}
}

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

var xxx_messageInfo_ReqBlackwhiteRoundList proto.InternalMessageInfo

func (m *ReqBlackwhiteRoundList) GetStatus() int32 {
	if m != nil {
		return m.Status
	}
	return 0
}

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

func (m *ReqBlackwhiteRoundList) GetCount() int32 {
	if m != nil {
		return m.Count
	}
	return 0
}

func (m *ReqBlackwhiteRoundList) GetDirection() int32 {
	if m != nil {
		return m.Direction
	}
	return 0
}

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

type ReplyBlackwhiteRoundList struct {
	Round                []*BlackwhiteRoundResult `protobuf:"bytes,1,rep,name=round,proto3" json:"round,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
	XXX_unrecognized     []byte                   `json:"-"`
	XXX_sizecache        int32                    `json:"-"`
}

func (m *ReplyBlackwhiteRoundList) Reset()         { *m = ReplyBlackwhiteRoundList{} }
func (m *ReplyBlackwhiteRoundList) String() string { return proto.CompactTextString(m) }
func (*ReplyBlackwhiteRoundList) ProtoMessage()    {}
func (*ReplyBlackwhiteRoundList) Descriptor() ([]byte, []int) {
	return fileDescriptor_2484d55734a116de, []int{12}
}

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

var xxx_messageInfo_ReplyBlackwhiteRoundList proto.InternalMessageInfo

func (m *ReplyBlackwhiteRoundList) GetRound() []*BlackwhiteRoundResult {
	if m != nil {
		return m.Round
	}
	return nil
}

type ReqLoopResult struct {
	GameID               string   `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
	LoopSeq              int32    `protobuf:"varint,2,opt,name=loopSeq,proto3" json:"loopSeq,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ReqLoopResult) Reset()         { *m = ReqLoopResult{} }
func (m *ReqLoopResult) String() string { return proto.CompactTextString(m) }
func (*ReqLoopResult) ProtoMessage()    {}
func (*ReqLoopResult) Descriptor() ([]byte, []int) {
	return fileDescriptor_2484d55734a116de, []int{13}
}

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

var xxx_messageInfo_ReqLoopResult proto.InternalMessageInfo

func (m *ReqLoopResult) GetGameID() string {
	if m != nil {
		return m.GameID
	}
	return ""
}

func (m *ReqLoopResult) GetLoopSeq() int32 {
	if m != nil {
		return m.LoopSeq
	}
	return 0
}

type PerLoopResult struct {
	Winers               []string `protobuf:"bytes,1,rep,name=winers,proto3" json:"winers,omitempty"`
	Losers               []string `protobuf:"bytes,2,rep,name=losers,proto3" json:"losers,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PerLoopResult) Reset()         { *m = PerLoopResult{} }
func (m *PerLoopResult) String() string { return proto.CompactTextString(m) }
func (*PerLoopResult) ProtoMessage()    {}
func (*PerLoopResult) Descriptor() ([]byte, []int) {
	return fileDescriptor_2484d55734a116de, []int{14}
}

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

var xxx_messageInfo_PerLoopResult proto.InternalMessageInfo

func (m *PerLoopResult) GetWiners() []string {
	if m != nil {
		return m.Winers
	}
	return nil
}

func (m *PerLoopResult) GetLosers() []string {
	if m != nil {
		return m.Losers
	}
	return nil
}

type ReplyLoopResults struct {
	GameID               string           `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
	Results              []*PerLoopResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *ReplyLoopResults) Reset()         { *m = ReplyLoopResults{} }
func (m *ReplyLoopResults) String() string { return proto.CompactTextString(m) }
func (*ReplyLoopResults) ProtoMessage()    {}
func (*ReplyLoopResults) Descriptor() ([]byte, []int) {
	return fileDescriptor_2484d55734a116de, []int{15}
}

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

var xxx_messageInfo_ReplyLoopResults proto.InternalMessageInfo

func (m *ReplyLoopResults) GetGameID() string {
	if m != nil {
		return m.GameID
	}
	return ""
}

func (m *ReplyLoopResults) GetResults() []*PerLoopResult {
	if m != nil {
		return m.Results
	}
	return nil
}

type BlackwhiteRoundResult struct {
	// txhash
	GameID string `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
	// create -> play(timeout) -> show -> done
	Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"`
	// 游戏押金可大于
	PlayAmount int64 `protobuf:"varint,3,opt,name=playAmount,proto3" json:"playAmount,omitempty"`
	// 游戏人数
	PlayerCount int32 `protobuf:"varint,4,opt,name=playerCount,proto3" json:"playerCount,omitempty"`
	// 当前游戏人数
	CurPlayerCount int32 `protobuf:"varint,5,opt,name=curPlayerCount,proto3" json:"curPlayerCount,omitempty"`
	// 游戏需要比对次数
	Loop int32 `protobuf:"varint,6,opt,name=loop,proto3" json:"loop,omitempty"`
	// 当前出示密钥人数
	CurShowCount int32 `protobuf:"varint,7,opt,name=curShowCount,proto3" json:"curShowCount,omitempty"`
	// 创建游戏时间
	CreateTime int64 `protobuf:"varint,8,opt,name=createTime,proto3" json:"createTime,omitempty"`
	// 出示密钥开始时间
	ShowTime int64 `protobuf:"varint,9,opt,name=showTime,proto3" json:"showTime,omitempty"`
	// 超时时间
	Timeout int64 `protobuf:"varint,10,opt,name=timeout,proto3" json:"timeout,omitempty"`
	// 创建游戏地址
	CreateAddr string `protobuf:"bytes,11,opt,name=createAddr,proto3" json:"createAddr,omitempty"`
	// 游戏名称
	GameName string `protobuf:"bytes,12,opt,name=gameName,proto3" json:"gameName,omitempty"`
	// 游戏加密结果
	AddrResult []*AddressResult `protobuf:"bytes,13,rep,name=addrResult,proto3" json:"addrResult,omitempty"`
	// 游戏赢家
	Winner []string `protobuf:"bytes,14,rep,name=winner,proto3" json:"winner,omitempty"`
	// block高度以及索引值
	Index                int64    `protobuf:"varint,15,opt,name=index,proto3" json:"index,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *BlackwhiteRoundResult) Reset()         { *m = BlackwhiteRoundResult{} }
func (m *BlackwhiteRoundResult) String() string { return proto.CompactTextString(m) }
func (*BlackwhiteRoundResult) ProtoMessage()    {}
func (*BlackwhiteRoundResult) Descriptor() ([]byte, []int) {
	return fileDescriptor_2484d55734a116de, []int{16}
}

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

var xxx_messageInfo_BlackwhiteRoundResult proto.InternalMessageInfo

func (m *BlackwhiteRoundResult) GetGameID() string {
	if m != nil {
		return m.GameID
	}
	return ""
}

func (m *BlackwhiteRoundResult) GetStatus() int32 {
	if m != nil {
		return m.Status
	}
	return 0
}

func (m *BlackwhiteRoundResult) GetPlayAmount() int64 {
	if m != nil {
		return m.PlayAmount
	}
	return 0
}

func (m *BlackwhiteRoundResult) GetPlayerCount() int32 {
	if m != nil {
		return m.PlayerCount
	}
	return 0
}

func (m *BlackwhiteRoundResult) GetCurPlayerCount() int32 {
	if m != nil {
		return m.CurPlayerCount
	}
	return 0
}

func (m *BlackwhiteRoundResult) GetLoop() int32 {
	if m != nil {
		return m.Loop
	}
	return 0
}

func (m *BlackwhiteRoundResult) GetCurShowCount() int32 {
	if m != nil {
		return m.CurShowCount
	}
	return 0
}

func (m *BlackwhiteRoundResult) GetCreateTime() int64 {
	if m != nil {
		return m.CreateTime
	}
	return 0
}

func (m *BlackwhiteRoundResult) GetShowTime() int64 {
	if m != nil {
		return m.ShowTime
	}
	return 0
}

func (m *BlackwhiteRoundResult) GetTimeout() int64 {
	if m != nil {
		return m.Timeout
	}
	return 0
}

func (m *BlackwhiteRoundResult) GetCreateAddr() string {
	if m != nil {
		return m.CreateAddr
	}
	return ""
}

func (m *BlackwhiteRoundResult) GetGameName() string {
	if m != nil {
		return m.GameName
	}
	return ""
}

func (m *BlackwhiteRoundResult) GetAddrResult() []*AddressResult {
	if m != nil {
		return m.AddrResult
	}
	return nil
}

func (m *BlackwhiteRoundResult) GetWinner() []string {
	if m != nil {
		return m.Winner
	}
	return nil
}

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

type BlackwhiteCreateTxReq struct {
	PlayAmount           int64    `protobuf:"varint,1,opt,name=PlayAmount,proto3" json:"PlayAmount,omitempty"`
	PlayerCount          int32    `protobuf:"varint,2,opt,name=PlayerCount,proto3" json:"PlayerCount,omitempty"`
	Timeout              int64    `protobuf:"varint,3,opt,name=Timeout,proto3" json:"Timeout,omitempty"`
	GameName             string   `protobuf:"bytes,4,opt,name=GameName,proto3" json:"GameName,omitempty"`
	Fee                  int64    `protobuf:"varint,5,opt,name=Fee,proto3" json:"Fee,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *BlackwhiteCreateTxReq) Reset()         { *m = BlackwhiteCreateTxReq{} }
func (m *BlackwhiteCreateTxReq) String() string { return proto.CompactTextString(m) }
func (*BlackwhiteCreateTxReq) ProtoMessage()    {}
func (*BlackwhiteCreateTxReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_2484d55734a116de, []int{17}
}

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

var xxx_messageInfo_BlackwhiteCreateTxReq proto.InternalMessageInfo

func (m *BlackwhiteCreateTxReq) GetPlayAmount() int64 {
	if m != nil {
		return m.PlayAmount
	}
	return 0
}

func (m *BlackwhiteCreateTxReq) GetPlayerCount() int32 {
	if m != nil {
		return m.PlayerCount
	}
	return 0
}

func (m *BlackwhiteCreateTxReq) GetTimeout() int64 {
	if m != nil {
		return m.Timeout
	}
	return 0
}

func (m *BlackwhiteCreateTxReq) GetGameName() string {
	if m != nil {
		return m.GameName
	}
	return ""
}

func (m *BlackwhiteCreateTxReq) GetFee() int64 {
	if m != nil {
		return m.Fee
	}
	return 0
}

type BlackwhitePlayTxReq struct {
	GameID               string   `protobuf:"bytes,1,opt,name=GameID,proto3" json:"GameID,omitempty"`
	Amount               int64    `protobuf:"varint,2,opt,name=Amount,proto3" json:"Amount,omitempty"`
	HashValues           [][]byte `protobuf:"bytes,3,rep,name=HashValues,proto3" json:"HashValues,omitempty"`
	Fee                  int64    `protobuf:"varint,4,opt,name=Fee,proto3" json:"Fee,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *BlackwhitePlayTxReq) Reset()         { *m = BlackwhitePlayTxReq{} }
func (m *BlackwhitePlayTxReq) String() string { return proto.CompactTextString(m) }
func (*BlackwhitePlayTxReq) ProtoMessage()    {}
func (*BlackwhitePlayTxReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_2484d55734a116de, []int{18}
}

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

var xxx_messageInfo_BlackwhitePlayTxReq proto.InternalMessageInfo

func (m *BlackwhitePlayTxReq) GetGameID() string {
	if m != nil {
		return m.GameID
	}
	return ""
}

func (m *BlackwhitePlayTxReq) GetAmount() int64 {
	if m != nil {
		return m.Amount
	}
	return 0
}

func (m *BlackwhitePlayTxReq) GetHashValues() [][]byte {
	if m != nil {
		return m.HashValues
	}
	return nil
}

func (m *BlackwhitePlayTxReq) GetFee() int64 {
	if m != nil {
		return m.Fee
	}
	return 0
}

type BlackwhiteShowTxReq struct {
	GameID               string   `protobuf:"bytes,1,opt,name=GameID,proto3" json:"GameID,omitempty"`
	Secret               string   `protobuf:"bytes,2,opt,name=Secret,proto3" json:"Secret,omitempty"`
	Fee                  int64    `protobuf:"varint,3,opt,name=Fee,proto3" json:"Fee,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *BlackwhiteShowTxReq) Reset()         { *m = BlackwhiteShowTxReq{} }
func (m *BlackwhiteShowTxReq) String() string { return proto.CompactTextString(m) }
func (*BlackwhiteShowTxReq) ProtoMessage()    {}
func (*BlackwhiteShowTxReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_2484d55734a116de, []int{19}
}

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

var xxx_messageInfo_BlackwhiteShowTxReq proto.InternalMessageInfo

func (m *BlackwhiteShowTxReq) GetGameID() string {
	if m != nil {
		return m.GameID
	}
	return ""
}

func (m *BlackwhiteShowTxReq) GetSecret() string {
	if m != nil {
		return m.Secret
	}
	return ""
}

func (m *BlackwhiteShowTxReq) GetFee() int64 {
	if m != nil {
		return m.Fee
	}
	return 0
}

type BlackwhiteTimeoutDoneTxReq struct {
	GameID               string   `protobuf:"bytes,1,opt,name=GameID,proto3" json:"GameID,omitempty"`
	Fee                  int64    `protobuf:"varint,2,opt,name=Fee,proto3" json:"Fee,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *BlackwhiteTimeoutDoneTxReq) Reset()         { *m = BlackwhiteTimeoutDoneTxReq{} }
func (m *BlackwhiteTimeoutDoneTxReq) String() string { return proto.CompactTextString(m) }
func (*BlackwhiteTimeoutDoneTxReq) ProtoMessage()    {}
func (*BlackwhiteTimeoutDoneTxReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_2484d55734a116de, []int{20}
}

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

var xxx_messageInfo_BlackwhiteTimeoutDoneTxReq proto.InternalMessageInfo

func (m *BlackwhiteTimeoutDoneTxReq) GetGameID() string {
	if m != nil {
		return m.GameID
	}
	return ""
}

func (m *BlackwhiteTimeoutDoneTxReq) GetFee() int64 {
	if m != nil {
		return m.Fee
	}
	return 0
}

func init() {
	proto.RegisterType((*AddressResult)(nil), "types.AddressResult")
	proto.RegisterType((*BlackwhiteRound)(nil), "types.BlackwhiteRound")
	proto.RegisterType((*BlackwhiteAction)(nil), "types.BlackwhiteAction")
	proto.RegisterType((*BlackwhiteCreate)(nil), "types.BlackwhiteCreate")
	proto.RegisterType((*BlackwhitePlay)(nil), "types.BlackwhitePlay")
	proto.RegisterType((*BlackwhiteShow)(nil), "types.BlackwhiteShow")
	proto.RegisterType((*BlackwhiteTimeoutDone)(nil), "types.BlackwhiteTimeoutDone")
	proto.RegisterType((*ReceiptBlackwhite)(nil), "types.ReceiptBlackwhite")
	proto.RegisterType((*ReceiptBlackwhiteStatus)(nil), "types.ReceiptBlackwhiteStatus")
	proto.RegisterType((*ReqBlackwhiteRoundInfo)(nil), "types.ReqBlackwhiteRoundInfo")
	proto.RegisterType((*ReplyBlackwhiteRoundInfo)(nil), "types.ReplyBlackwhiteRoundInfo")
	proto.RegisterType((*ReqBlackwhiteRoundList)(nil), "types.ReqBlackwhiteRoundList")
	proto.RegisterType((*ReplyBlackwhiteRoundList)(nil), "types.ReplyBlackwhiteRoundList")
	proto.RegisterType((*ReqLoopResult)(nil), "types.ReqLoopResult")
	proto.RegisterType((*PerLoopResult)(nil), "types.perLoopResult")
	proto.RegisterType((*ReplyLoopResults)(nil), "types.ReplyLoopResults")
	proto.RegisterType((*BlackwhiteRoundResult)(nil), "types.BlackwhiteRoundResult")
	proto.RegisterType((*BlackwhiteCreateTxReq)(nil), "types.BlackwhiteCreateTxReq")
	proto.RegisterType((*BlackwhitePlayTxReq)(nil), "types.BlackwhitePlayTxReq")
	proto.RegisterType((*BlackwhiteShowTxReq)(nil), "types.BlackwhiteShowTxReq")
	proto.RegisterType((*BlackwhiteTimeoutDoneTxReq)(nil), "types.BlackwhiteTimeoutDoneTxReq")
}

func init() {
	proto.RegisterFile("blackwhite.proto", fileDescriptor_2484d55734a116de)
}

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

// BlackwhiteClient is the client API for Blackwhite service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type BlackwhiteClient interface {
	// blackwhite 对外提供服务的接口
	//区块链接口
	Create(ctx context.Context, in *BlackwhiteCreate, opts ...grpc.CallOption) (*types.UnsignTx, error)
	//获取最新的区块头
	Show(ctx context.Context, in *BlackwhiteShow, opts ...grpc.CallOption) (*types.UnsignTx, error)
	//交易接口
	Play(ctx context.Context, in *BlackwhitePlay, opts ...grpc.CallOption) (*types.UnsignTx, error)
	TimeoutDone(ctx context.Context, in *BlackwhiteTimeoutDone, opts ...grpc.CallOption) (*types.UnsignTx, error)
}

type blackwhiteClient struct {
	cc grpc.ClientConnInterface
}

func NewBlackwhiteClient(cc grpc.ClientConnInterface) BlackwhiteClient {
	return &blackwhiteClient{cc}
}

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

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

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

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

// BlackwhiteServer is the server API for Blackwhite service.
type BlackwhiteServer interface {
	// blackwhite 对外提供服务的接口
	//区块链接口
	Create(context.Context, *BlackwhiteCreate) (*types.UnsignTx, error)
	//获取最新的区块头
	Show(context.Context, *BlackwhiteShow) (*types.UnsignTx, error)
	//交易接口
	Play(context.Context, *BlackwhitePlay) (*types.UnsignTx, error)
	TimeoutDone(context.Context, *BlackwhiteTimeoutDone) (*types.UnsignTx, error)
}

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

func (*UnimplementedBlackwhiteServer) Create(ctx context.Context, req *BlackwhiteCreate) (*types.UnsignTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Create not implemented")
}
func (*UnimplementedBlackwhiteServer) Show(ctx context.Context, req *BlackwhiteShow) (*types.UnsignTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Show not implemented")
}
func (*UnimplementedBlackwhiteServer) Play(ctx context.Context, req *BlackwhitePlay) (*types.UnsignTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Play not implemented")
}
func (*UnimplementedBlackwhiteServer) TimeoutDone(ctx context.Context, req *BlackwhiteTimeoutDone) (*types.UnsignTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method TimeoutDone not implemented")
}

func RegisterBlackwhiteServer(s *grpc.Server, srv BlackwhiteServer) {
	s.RegisterService(&_Blackwhite_serviceDesc, srv)
}

func _Blackwhite_Create_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BlackwhiteCreate)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(BlackwhiteServer).Create(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.blackwhite/Create",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(BlackwhiteServer).Create(ctx, req.(*BlackwhiteCreate))
	}
	return interceptor(ctx, in, info, handler)
}

func _Blackwhite_Show_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BlackwhiteShow)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(BlackwhiteServer).Show(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.blackwhite/Show",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(BlackwhiteServer).Show(ctx, req.(*BlackwhiteShow))
	}
	return interceptor(ctx, in, info, handler)
}

func _Blackwhite_Play_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BlackwhitePlay)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(BlackwhiteServer).Play(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.blackwhite/Play",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(BlackwhiteServer).Play(ctx, req.(*BlackwhitePlay))
	}
	return interceptor(ctx, in, info, handler)
}

func _Blackwhite_TimeoutDone_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BlackwhiteTimeoutDone)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(BlackwhiteServer).TimeoutDone(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.blackwhite/TimeoutDone",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(BlackwhiteServer).TimeoutDone(ctx, req.(*BlackwhiteTimeoutDone))
	}
	return interceptor(ctx, in, info, handler)
}

var _Blackwhite_serviceDesc = grpc.ServiceDesc{
	ServiceName: "types.blackwhite",
	HandlerType: (*BlackwhiteServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Create",
			Handler:    _Blackwhite_Create_Handler,
		},
		{
			MethodName: "Show",
			Handler:    _Blackwhite_Show_Handler,
		},
		{
			MethodName: "Play",
			Handler:    _Blackwhite_Play_Handler,
		},
		{
			MethodName: "TimeoutDone",
			Handler:    _Blackwhite_TimeoutDone_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "blackwhite.proto",
}
