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

package types

import (
	context "context"
	reflect "reflect"
	sync "sync"

	types "github.com/33cn/chain33/types"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
)

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

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

	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"`
}

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

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

func (*AddressResult) ProtoMessage() {}

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

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

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

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

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

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

// order
type BlackwhiteRound struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// 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"`
}

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

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

func (*BlackwhiteRound) ProtoMessage() {}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// actions
type BlackwhiteAction struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable 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"`
}

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

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

func (*BlackwhiteAction) ProtoMessage() {}

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

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

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

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

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

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

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

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

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

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

	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"`
}

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

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

func (*BlackwhiteCreate) ProtoMessage() {}

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

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

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

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

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

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

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

	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"`
}

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

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

func (*BlackwhitePlay) ProtoMessage() {}

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

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

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

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

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

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

	GameID string `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
	Secret string `protobuf:"bytes,2,opt,name=secret,proto3" json:"secret,omitempty"`
}

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

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

func (*BlackwhiteShow) ProtoMessage() {}

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

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

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

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

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

	GameID string `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
}

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

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

func (*BlackwhiteTimeoutDone) ProtoMessage() {}

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

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

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

// logs
type ReceiptBlackwhite struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Round *BlackwhiteRound `protobuf:"bytes,1,opt,name=round,proto3" json:"round,omitempty"`
}

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

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

func (*ReceiptBlackwhite) ProtoMessage() {}

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

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

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

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

	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"`
}

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

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

func (*ReceiptBlackwhiteStatus) ProtoMessage() {}

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

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

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

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

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

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

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

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

	GameID string `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
}

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

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

func (*ReqBlackwhiteRoundInfo) ProtoMessage() {}

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

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

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

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

	Round *BlackwhiteRoundResult `protobuf:"bytes,1,opt,name=round,proto3" json:"round,omitempty"`
}

func (x *ReplyBlackwhiteRoundInfo) Reset() {
	*x = ReplyBlackwhiteRoundInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_blackwhite_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReplyBlackwhiteRoundInfo) ProtoMessage() {}

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

// Deprecated: Use ReplyBlackwhiteRoundInfo.ProtoReflect.Descriptor instead.
func (*ReplyBlackwhiteRoundInfo) Descriptor() ([]byte, []int) {
	return file_blackwhite_proto_rawDescGZIP(), []int{10}
}

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

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

	//优先根据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"`
}

func (x *ReqBlackwhiteRoundList) Reset() {
	*x = ReqBlackwhiteRoundList{}
	if protoimpl.UnsafeEnabled {
		mi := &file_blackwhite_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReqBlackwhiteRoundList) ProtoMessage() {}

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

// Deprecated: Use ReqBlackwhiteRoundList.ProtoReflect.Descriptor instead.
func (*ReqBlackwhiteRoundList) Descriptor() ([]byte, []int) {
	return file_blackwhite_proto_rawDescGZIP(), []int{11}
}

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

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

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

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

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

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

	Round []*BlackwhiteRoundResult `protobuf:"bytes,1,rep,name=round,proto3" json:"round,omitempty"`
}

func (x *ReplyBlackwhiteRoundList) Reset() {
	*x = ReplyBlackwhiteRoundList{}
	if protoimpl.UnsafeEnabled {
		mi := &file_blackwhite_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReplyBlackwhiteRoundList) ProtoMessage() {}

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

// Deprecated: Use ReplyBlackwhiteRoundList.ProtoReflect.Descriptor instead.
func (*ReplyBlackwhiteRoundList) Descriptor() ([]byte, []int) {
	return file_blackwhite_proto_rawDescGZIP(), []int{12}
}

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

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

	GameID  string `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
	LoopSeq int32  `protobuf:"varint,2,opt,name=loopSeq,proto3" json:"loopSeq,omitempty"`
}

func (x *ReqLoopResult) Reset() {
	*x = ReqLoopResult{}
	if protoimpl.UnsafeEnabled {
		mi := &file_blackwhite_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReqLoopResult) ProtoMessage() {}

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

// Deprecated: Use ReqLoopResult.ProtoReflect.Descriptor instead.
func (*ReqLoopResult) Descriptor() ([]byte, []int) {
	return file_blackwhite_proto_rawDescGZIP(), []int{13}
}

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

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

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

	Winers []string `protobuf:"bytes,1,rep,name=winers,proto3" json:"winers,omitempty"`
	Losers []string `protobuf:"bytes,2,rep,name=losers,proto3" json:"losers,omitempty"`
}

func (x *PerLoopResult) Reset() {
	*x = PerLoopResult{}
	if protoimpl.UnsafeEnabled {
		mi := &file_blackwhite_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PerLoopResult) ProtoMessage() {}

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

// Deprecated: Use PerLoopResult.ProtoReflect.Descriptor instead.
func (*PerLoopResult) Descriptor() ([]byte, []int) {
	return file_blackwhite_proto_rawDescGZIP(), []int{14}
}

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

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

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

	GameID  string           `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
	Results []*PerLoopResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"`
}

func (x *ReplyLoopResults) Reset() {
	*x = ReplyLoopResults{}
	if protoimpl.UnsafeEnabled {
		mi := &file_blackwhite_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReplyLoopResults) ProtoMessage() {}

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

// Deprecated: Use ReplyLoopResults.ProtoReflect.Descriptor instead.
func (*ReplyLoopResults) Descriptor() ([]byte, []int) {
	return file_blackwhite_proto_rawDescGZIP(), []int{15}
}

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

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

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

	// 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"`
}

func (x *BlackwhiteRoundResult) Reset() {
	*x = BlackwhiteRoundResult{}
	if protoimpl.UnsafeEnabled {
		mi := &file_blackwhite_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*BlackwhiteRoundResult) ProtoMessage() {}

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

// Deprecated: Use BlackwhiteRoundResult.ProtoReflect.Descriptor instead.
func (*BlackwhiteRoundResult) Descriptor() ([]byte, []int) {
	return file_blackwhite_proto_rawDescGZIP(), []int{16}
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	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"`
}

func (x *BlackwhiteCreateTxReq) Reset() {
	*x = BlackwhiteCreateTxReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_blackwhite_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*BlackwhiteCreateTxReq) ProtoMessage() {}

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

// Deprecated: Use BlackwhiteCreateTxReq.ProtoReflect.Descriptor instead.
func (*BlackwhiteCreateTxReq) Descriptor() ([]byte, []int) {
	return file_blackwhite_proto_rawDescGZIP(), []int{17}
}

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

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

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

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

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

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

	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"`
}

func (x *BlackwhitePlayTxReq) Reset() {
	*x = BlackwhitePlayTxReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_blackwhite_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*BlackwhitePlayTxReq) ProtoMessage() {}

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

// Deprecated: Use BlackwhitePlayTxReq.ProtoReflect.Descriptor instead.
func (*BlackwhitePlayTxReq) Descriptor() ([]byte, []int) {
	return file_blackwhite_proto_rawDescGZIP(), []int{18}
}

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

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

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

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

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

	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"`
}

func (x *BlackwhiteShowTxReq) Reset() {
	*x = BlackwhiteShowTxReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_blackwhite_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*BlackwhiteShowTxReq) ProtoMessage() {}

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

// Deprecated: Use BlackwhiteShowTxReq.ProtoReflect.Descriptor instead.
func (*BlackwhiteShowTxReq) Descriptor() ([]byte, []int) {
	return file_blackwhite_proto_rawDescGZIP(), []int{19}
}

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

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

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

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

	GameID string `protobuf:"bytes,1,opt,name=GameID,proto3" json:"GameID,omitempty"`
	Fee    int64  `protobuf:"varint,2,opt,name=Fee,proto3" json:"Fee,omitempty"`
}

func (x *BlackwhiteTimeoutDoneTxReq) Reset() {
	*x = BlackwhiteTimeoutDoneTxReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_blackwhite_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*BlackwhiteTimeoutDoneTxReq) ProtoMessage() {}

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

// Deprecated: Use BlackwhiteTimeoutDoneTxReq.ProtoReflect.Descriptor instead.
func (*BlackwhiteTimeoutDoneTxReq) Descriptor() ([]byte, []int) {
	return file_blackwhite_proto_rawDescGZIP(), []int{20}
}

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

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

var File_blackwhite_proto protoreflect.FileDescriptor

var file_blackwhite_proto_rawDesc = []byte{
	0x0a, 0x10, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x12, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x1a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73,
	0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7b, 0x0a, 0x0d,
	0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a,
	0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64,
	0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x61, 0x73,
	0x68, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0a, 0x68,
	0x61, 0x73, 0x68, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x68, 0x6f,
	0x77, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73,
	0x68, 0x6f, 0x77, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0xd9, 0x03, 0x0a, 0x0f, 0x42, 0x6c,
	0x61, 0x63, 0x6b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x16, 0x0a,
	0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67,
	0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a,
	0x0a, 0x70, 0x6c, 0x61, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a,
	0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
	0x26, 0x0a, 0x0e, 0x63, 0x75, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x75, 0x72, 0x50, 0x6c, 0x61, 0x79,
	0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x6f, 0x70, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x6f, 0x6f, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x63,
	0x75, 0x72, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
	0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12,
	0x1a, 0x0a, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74,
	0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69,
	0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41,
	0x64, 0x64, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d,
	0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d,
	0x65, 0x12, 0x34, 0x0a, 0x0a, 0x61, 0x64, 0x64, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18,
	0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x41, 0x64,
	0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0a, 0x61, 0x64, 0x64,
	0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65,
	0x72, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x12,
	0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
	0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xfa, 0x01, 0x0a, 0x10, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x77,
	0x68, 0x69, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x06, 0x63, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x43, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x06, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x2b, 0x0a,
	0x04, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x50, 0x6c,
	0x61, 0x79, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x2b, 0x0a, 0x04, 0x73, 0x68,
	0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x48,
	0x00, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x40, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x6f,
	0x75, 0x74, 0x44, 0x6f, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x54,
	0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x44, 0x6f, 0x6e, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x69,
	0x6d, 0x65, 0x6f, 0x75, 0x74, 0x44, 0x6f, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x79, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x74, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x10, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x77, 0x68, 0x69, 0x74,
	0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x41,
	0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x70, 0x6c, 0x61,
	0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d,
	0x65, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65,
	0x6f, 0x75, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22,
	0x60, 0x0a, 0x0e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x50, 0x6c, 0x61,
	0x79, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f,
	0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e,
	0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x68, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18,
	0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x68, 0x56, 0x61, 0x6c, 0x75, 0x65,
	0x73, 0x22, 0x40, 0x0a, 0x0e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x53,
	0x68, 0x6f, 0x77, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73,
	0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63,
	0x72, 0x65, 0x74, 0x22, 0x2f, 0x0a, 0x15, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x77, 0x68, 0x69, 0x74,
	0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x44, 0x6f, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06,
	0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61,
	0x6d, 0x65, 0x49, 0x44, 0x22, 0x41, 0x0a, 0x11, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x42,
	0x6c, 0x61, 0x63, 0x6b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x72, 0x6f, 0x75,
	0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x6e, 0x64,
	0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x93, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x63, 0x65,
	0x69, 0x70, 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x76, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x76, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x30, 0x0a,
	0x16, 0x52, 0x65, 0x71, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x52, 0x6f,
	0x75, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49,
	0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x22,
	0x4e, 0x0a, 0x18, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x77, 0x68, 0x69,
	0x74, 0x65, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x05, 0x72,
	0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x52, 0x6f, 0x75,
	0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x22,
	0x94, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x77, 0x68, 0x69, 0x74,
	0x65, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x4e, 0x0a, 0x18, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42,
	0x6c, 0x61, 0x63, 0x6b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x4c, 0x69,
	0x73, 0x74, 0x12, 0x32, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x77,
	0x68, 0x69, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52,
	0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x41, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x4c, 0x6f, 0x6f,
	0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49,
	0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12,
	0x18, 0x0a, 0x07, 0x6c, 0x6f, 0x6f, 0x70, 0x53, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x07, 0x6c, 0x6f, 0x6f, 0x70, 0x53, 0x65, 0x71, 0x22, 0x3f, 0x0a, 0x0d, 0x70, 0x65, 0x72,
	0x4c, 0x6f, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x69,
	0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x65,
	0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x73, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03,
	0x28, 0x09, 0x52, 0x06, 0x6c, 0x6f, 0x73, 0x65, 0x72, 0x73, 0x22, 0x5a, 0x0a, 0x10, 0x52, 0x65,
	0x70, 0x6c, 0x79, 0x4c, 0x6f, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x16,
	0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x70, 0x65, 0x72, 0x4c, 0x6f, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72,
	0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0xdf, 0x03, 0x0a, 0x15, 0x42, 0x6c, 0x61, 0x63, 0x6b,
	0x77, 0x68, 0x69, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
	0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
	0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x75, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x75, 0x72, 0x50,
	0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f,
	0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x6f, 0x6f, 0x70, 0x12, 0x22,
	0x0a, 0x0c, 0x63, 0x75, 0x72, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69,
	0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18,
	0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x6d, 0x65,
	0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65,
	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x61, 0x64, 0x64, 0x72, 0x52, 0x65, 0x73, 0x75,
	0x6c, 0x74, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0a,
	0x61, 0x64, 0x64, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x69,
	0x6e, 0x6e, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x6e,
	0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xa1, 0x01, 0x0a, 0x15, 0x42, 0x6c, 0x61,
	0x63, 0x6b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x78, 0x52,
	0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x41, 0x6d, 0x6f, 0x75,
	0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1a,
	0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x46, 0x65,
	0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x46, 0x65, 0x65, 0x22, 0x77, 0x0a, 0x13,
	0x42, 0x6c, 0x61, 0x63, 0x6b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x54, 0x78,
	0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x41,
	0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x41, 0x6d, 0x6f,
	0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x61, 0x73, 0x68, 0x56, 0x61, 0x6c, 0x75, 0x65,
	0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x61, 0x73, 0x68, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x46, 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x03, 0x46, 0x65, 0x65, 0x22, 0x57, 0x0a, 0x13, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x77, 0x68,
	0x69, 0x74, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x78, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06,
	0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x47, 0x61,
	0x6d, 0x65, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03,
	0x46, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x46, 0x65, 0x65, 0x22, 0x46,
	0x0a, 0x1a, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65,
	0x6f, 0x75, 0x74, 0x44, 0x6f, 0x6e, 0x65, 0x54, 0x78, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06,
	0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x47, 0x61,
	0x6d, 0x65, 0x49, 0x44, 0x12, 0x10, 0x0a, 0x03, 0x46, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x03, 0x46, 0x65, 0x65, 0x32, 0xe6, 0x01, 0x0a, 0x0a, 0x62, 0x6c, 0x61, 0x63, 0x6b,
	0x77, 0x68, 0x69, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12,
	0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x77, 0x68, 0x69,
	0x74, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x1a, 0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x55, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x78, 0x22, 0x00, 0x12, 0x30, 0x0a, 0x04, 0x53,
	0x68, 0x6f, 0x77, 0x12, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x61, 0x63,
	0x6b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x1a, 0x0f, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x55, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x78, 0x22, 0x00, 0x12, 0x30, 0x0a,
	0x04, 0x50, 0x6c, 0x61, 0x79, 0x12, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c,
	0x61, 0x63, 0x6b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x1a, 0x0f, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x55, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x78, 0x22, 0x00, 0x12,
	0x3e, 0x0a, 0x0b, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x44, 0x6f, 0x6e, 0x65, 0x12, 0x1c,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x77, 0x68, 0x69, 0x74,
	0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x44, 0x6f, 0x6e, 0x65, 0x1a, 0x0f, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x55, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x78, 0x22, 0x00, 0x42,
	0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x33,
}

var (
	file_blackwhite_proto_rawDescOnce sync.Once
	file_blackwhite_proto_rawDescData = file_blackwhite_proto_rawDesc
)

func file_blackwhite_proto_rawDescGZIP() []byte {
	file_blackwhite_proto_rawDescOnce.Do(func() {
		file_blackwhite_proto_rawDescData = protoimpl.X.CompressGZIP(file_blackwhite_proto_rawDescData)
	})
	return file_blackwhite_proto_rawDescData
}

var file_blackwhite_proto_msgTypes = make([]protoimpl.MessageInfo, 21)
var file_blackwhite_proto_goTypes = []interface{}{
	(*AddressResult)(nil),              // 0: types.AddressResult
	(*BlackwhiteRound)(nil),            // 1: types.BlackwhiteRound
	(*BlackwhiteAction)(nil),           // 2: types.BlackwhiteAction
	(*BlackwhiteCreate)(nil),           // 3: types.BlackwhiteCreate
	(*BlackwhitePlay)(nil),             // 4: types.BlackwhitePlay
	(*BlackwhiteShow)(nil),             // 5: types.BlackwhiteShow
	(*BlackwhiteTimeoutDone)(nil),      // 6: types.BlackwhiteTimeoutDone
	(*ReceiptBlackwhite)(nil),          // 7: types.ReceiptBlackwhite
	(*ReceiptBlackwhiteStatus)(nil),    // 8: types.ReceiptBlackwhiteStatus
	(*ReqBlackwhiteRoundInfo)(nil),     // 9: types.ReqBlackwhiteRoundInfo
	(*ReplyBlackwhiteRoundInfo)(nil),   // 10: types.ReplyBlackwhiteRoundInfo
	(*ReqBlackwhiteRoundList)(nil),     // 11: types.ReqBlackwhiteRoundList
	(*ReplyBlackwhiteRoundList)(nil),   // 12: types.ReplyBlackwhiteRoundList
	(*ReqLoopResult)(nil),              // 13: types.ReqLoopResult
	(*PerLoopResult)(nil),              // 14: types.perLoopResult
	(*ReplyLoopResults)(nil),           // 15: types.ReplyLoopResults
	(*BlackwhiteRoundResult)(nil),      // 16: types.BlackwhiteRoundResult
	(*BlackwhiteCreateTxReq)(nil),      // 17: types.BlackwhiteCreateTxReq
	(*BlackwhitePlayTxReq)(nil),        // 18: types.BlackwhitePlayTxReq
	(*BlackwhiteShowTxReq)(nil),        // 19: types.BlackwhiteShowTxReq
	(*BlackwhiteTimeoutDoneTxReq)(nil), // 20: types.BlackwhiteTimeoutDoneTxReq
	(*types.UnsignTx)(nil),             // 21: types.UnsignTx
}
var file_blackwhite_proto_depIdxs = []int32{
	0,  // 0: types.BlackwhiteRound.addrResult:type_name -> types.AddressResult
	3,  // 1: types.BlackwhiteAction.create:type_name -> types.BlackwhiteCreate
	4,  // 2: types.BlackwhiteAction.play:type_name -> types.BlackwhitePlay
	5,  // 3: types.BlackwhiteAction.show:type_name -> types.BlackwhiteShow
	6,  // 4: types.BlackwhiteAction.timeoutDone:type_name -> types.BlackwhiteTimeoutDone
	1,  // 5: types.ReceiptBlackwhite.round:type_name -> types.BlackwhiteRound
	16, // 6: types.ReplyBlackwhiteRoundInfo.round:type_name -> types.BlackwhiteRoundResult
	16, // 7: types.ReplyBlackwhiteRoundList.round:type_name -> types.BlackwhiteRoundResult
	14, // 8: types.ReplyLoopResults.results:type_name -> types.perLoopResult
	0,  // 9: types.BlackwhiteRoundResult.addrResult:type_name -> types.AddressResult
	3,  // 10: types.blackwhite.Create:input_type -> types.BlackwhiteCreate
	5,  // 11: types.blackwhite.Show:input_type -> types.BlackwhiteShow
	4,  // 12: types.blackwhite.Play:input_type -> types.BlackwhitePlay
	6,  // 13: types.blackwhite.TimeoutDone:input_type -> types.BlackwhiteTimeoutDone
	21, // 14: types.blackwhite.Create:output_type -> types.UnsignTx
	21, // 15: types.blackwhite.Show:output_type -> types.UnsignTx
	21, // 16: types.blackwhite.Play:output_type -> types.UnsignTx
	21, // 17: types.blackwhite.TimeoutDone:output_type -> types.UnsignTx
	14, // [14:18] is the sub-list for method output_type
	10, // [10:14] is the sub-list for method input_type
	10, // [10:10] is the sub-list for extension type_name
	10, // [10:10] is the sub-list for extension extendee
	0,  // [0:10] is the sub-list for field type_name
}

func init() { file_blackwhite_proto_init() }
func file_blackwhite_proto_init() {
	if File_blackwhite_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_blackwhite_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddressResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_blackwhite_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BlackwhiteRound); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_blackwhite_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BlackwhiteAction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_blackwhite_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BlackwhiteCreate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_blackwhite_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BlackwhitePlay); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_blackwhite_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BlackwhiteShow); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_blackwhite_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BlackwhiteTimeoutDone); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_blackwhite_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptBlackwhite); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_blackwhite_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptBlackwhiteStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_blackwhite_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReqBlackwhiteRoundInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_blackwhite_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReplyBlackwhiteRoundInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_blackwhite_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReqBlackwhiteRoundList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_blackwhite_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReplyBlackwhiteRoundList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_blackwhite_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReqLoopResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_blackwhite_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PerLoopResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_blackwhite_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReplyLoopResults); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_blackwhite_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BlackwhiteRoundResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_blackwhite_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BlackwhiteCreateTxReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_blackwhite_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BlackwhitePlayTxReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_blackwhite_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BlackwhiteShowTxReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_blackwhite_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BlackwhiteTimeoutDoneTxReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_blackwhite_proto_msgTypes[2].OneofWrappers = []interface{}{
		(*BlackwhiteAction_Create)(nil),
		(*BlackwhiteAction_Play)(nil),
		(*BlackwhiteAction_Show)(nil),
		(*BlackwhiteAction_TimeoutDone)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_blackwhite_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   21,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_blackwhite_proto_goTypes,
		DependencyIndexes: file_blackwhite_proto_depIdxs,
		MessageInfos:      file_blackwhite_proto_msgTypes,
	}.Build()
	File_blackwhite_proto = out.File
	file_blackwhite_proto_rawDesc = nil
	file_blackwhite_proto_goTypes = nil
	file_blackwhite_proto_depIdxs = nil
}

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

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

// 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(context.Context, *BlackwhiteCreate) (*types.UnsignTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Create not implemented")
}
func (*UnimplementedBlackwhiteServer) Show(context.Context, *BlackwhiteShow) (*types.UnsignTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Show not implemented")
}
func (*UnimplementedBlackwhiteServer) Play(context.Context, *BlackwhitePlay) (*types.UnsignTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Play not implemented")
}
func (*UnimplementedBlackwhiteServer) TimeoutDone(context.Context, *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",
}
