// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.1 // protoc v3.6.1 // source: trader.proto package poolrpc import ( auctioneerrpc "github.com/lightninglabs/pool/auctioneerrpc" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type AccountVersion int32 const ( // Let the version of lnd decide. If a version of lnd >= 0.15.0-beta is // detected then a Taproot account is created. For earlier versions a legacy // account is created. AccountVersion_ACCOUNT_VERSION_LND_DEPENDENT AccountVersion = 0 // A legacy SegWit v0 p2wsh account with a single script. AccountVersion_ACCOUNT_VERSION_LEGACY AccountVersion = 1 // A Taproot enabled account with MuSig2 combined internal key and the expiry // script as a single tap script leaf. AccountVersion_ACCOUNT_VERSION_TAPROOT AccountVersion = 2 ) // Enum value maps for AccountVersion. var ( AccountVersion_name = map[int32]string{ 0: "ACCOUNT_VERSION_LND_DEPENDENT", 1: "ACCOUNT_VERSION_LEGACY", 2: "ACCOUNT_VERSION_TAPROOT", } AccountVersion_value = map[string]int32{ "ACCOUNT_VERSION_LND_DEPENDENT": 0, "ACCOUNT_VERSION_LEGACY": 1, "ACCOUNT_VERSION_TAPROOT": 2, } ) func (x AccountVersion) Enum() *AccountVersion { p := new(AccountVersion) *p = x return p } func (x AccountVersion) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (AccountVersion) Descriptor() protoreflect.EnumDescriptor { return file_trader_proto_enumTypes[0].Descriptor() } func (AccountVersion) Type() protoreflect.EnumType { return &file_trader_proto_enumTypes[0] } func (x AccountVersion) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use AccountVersion.Descriptor instead. func (AccountVersion) EnumDescriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{0} } type AccountState int32 const ( // The state of an account when it is pending its confirmation on-chain. AccountState_PENDING_OPEN AccountState = 0 // The state of an account when it has undergone an update on-chain either as // part of a matched order or a trader modification and it is pending its // confirmation on-chain. AccountState_PENDING_UPDATE AccountState = 1 // The state of an account once it has confirmed on-chain. AccountState_OPEN AccountState = 2 // The state of an account once its expiration has been reached and its closing // transaction has confirmed. AccountState_EXPIRED AccountState = 3 // The state of an account when we're waiting for the closing transaction of // an account to confirm that required cooperation with the auctioneer. AccountState_PENDING_CLOSED AccountState = 4 // The state of an account once its closing transaction has confirmed. AccountState_CLOSED AccountState = 5 // The state of an account that indicates that the account was attempted to be // recovered but failed because the opening transaction wasn't found by lnd. // This could be because it was never published or it never confirmed. Then the // funds are SAFU and the account can be considered to never have been opened // in the first place. AccountState_RECOVERY_FAILED AccountState = 6 // The account has recently participated in a batch and is not yet confirmed. AccountState_PENDING_BATCH AccountState = 7 ) // Enum value maps for AccountState. var ( AccountState_name = map[int32]string{ 0: "PENDING_OPEN", 1: "PENDING_UPDATE", 2: "OPEN", 3: "EXPIRED", 4: "PENDING_CLOSED", 5: "CLOSED", 6: "RECOVERY_FAILED", 7: "PENDING_BATCH", } AccountState_value = map[string]int32{ "PENDING_OPEN": 0, "PENDING_UPDATE": 1, "OPEN": 2, "EXPIRED": 3, "PENDING_CLOSED": 4, "CLOSED": 5, "RECOVERY_FAILED": 6, "PENDING_BATCH": 7, } ) func (x AccountState) Enum() *AccountState { p := new(AccountState) *p = x return p } func (x AccountState) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (AccountState) Descriptor() protoreflect.EnumDescriptor { return file_trader_proto_enumTypes[1].Descriptor() } func (AccountState) Type() protoreflect.EnumType { return &file_trader_proto_enumTypes[1] } func (x AccountState) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use AccountState.Descriptor instead. func (AccountState) EnumDescriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{1} } type MatchState int32 const ( // The OrderMatchPrepare message from the auctioneer was received initially. MatchState_PREPARE MatchState = 0 // The OrderMatchPrepare message from the auctioneer was processed successfully // and the batch was accepted. MatchState_ACCEPTED MatchState = 1 // The order was rejected by the trader daemon, either as an answer to a // OrderMatchSignBegin or OrderMatchFinalize message from the auctioneer. MatchState_REJECTED MatchState = 2 // The OrderMatchSignBegin message from the auctioneer was processed // successfully. MatchState_SIGNED MatchState = 3 // The OrderMatchFinalize message from the auctioneer was processed // successfully. MatchState_FINALIZED MatchState = 4 ) // Enum value maps for MatchState. var ( MatchState_name = map[int32]string{ 0: "PREPARE", 1: "ACCEPTED", 2: "REJECTED", 3: "SIGNED", 4: "FINALIZED", } MatchState_value = map[string]int32{ "PREPARE": 0, "ACCEPTED": 1, "REJECTED": 2, "SIGNED": 3, "FINALIZED": 4, } ) func (x MatchState) Enum() *MatchState { p := new(MatchState) *p = x return p } func (x MatchState) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (MatchState) Descriptor() protoreflect.EnumDescriptor { return file_trader_proto_enumTypes[2].Descriptor() } func (MatchState) Type() protoreflect.EnumType { return &file_trader_proto_enumTypes[2] } func (x MatchState) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use MatchState.Descriptor instead. func (MatchState) EnumDescriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{2} } type MatchRejectReason int32 const ( // No reject occurred, this is the default value. MatchRejectReason_NONE MatchRejectReason = 0 // The client didn't come up with the same result as the server and is // rejecting the batch because of that. MatchRejectReason_SERVER_MISBEHAVIOR MatchRejectReason = 1 // The client doesn't support the current batch verification version the // server is using. MatchRejectReason_BATCH_VERSION_MISMATCH MatchRejectReason = 2 // The client rejects some of the orders, not the full batch. This reason is // set on matches for orders that were in the same batch as partial reject ones // but were not themselves rejected. MatchRejectReason_PARTIAL_REJECT_COLLATERAL MatchRejectReason = 3 // The trader's client has a preference to only match orders with peers it // doesn't already have channels with. The order that is rejected with this // reason type comes from a peer that the trader already has channels with. MatchRejectReason_PARTIAL_REJECT_DUPLICATE_PEER MatchRejectReason = 4 // The trader's client couldn't connect to the remote node of the matched // order or the channel funding could not be initialized for another // reason. This could also be the rejecting node's fault if their // connection is not stable. Using this code can have a negative impact on // the reputation score of both nodes, depending on the number of errors // recorded. MatchRejectReason_PARTIAL_REJECT_CHANNEL_FUNDING_FAILED MatchRejectReason = 5 ) // Enum value maps for MatchRejectReason. var ( MatchRejectReason_name = map[int32]string{ 0: "NONE", 1: "SERVER_MISBEHAVIOR", 2: "BATCH_VERSION_MISMATCH", 3: "PARTIAL_REJECT_COLLATERAL", 4: "PARTIAL_REJECT_DUPLICATE_PEER", 5: "PARTIAL_REJECT_CHANNEL_FUNDING_FAILED", } MatchRejectReason_value = map[string]int32{ "NONE": 0, "SERVER_MISBEHAVIOR": 1, "BATCH_VERSION_MISMATCH": 2, "PARTIAL_REJECT_COLLATERAL": 3, "PARTIAL_REJECT_DUPLICATE_PEER": 4, "PARTIAL_REJECT_CHANNEL_FUNDING_FAILED": 5, } ) func (x MatchRejectReason) Enum() *MatchRejectReason { p := new(MatchRejectReason) *p = x return p } func (x MatchRejectReason) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (MatchRejectReason) Descriptor() protoreflect.EnumDescriptor { return file_trader_proto_enumTypes[3].Descriptor() } func (MatchRejectReason) Type() protoreflect.EnumType { return &file_trader_proto_enumTypes[3] } func (x MatchRejectReason) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use MatchRejectReason.Descriptor instead. func (MatchRejectReason) EnumDescriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{3} } type InitAccountRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AccountValue uint64 `protobuf:"varint,1,opt,name=account_value,json=accountValue,proto3" json:"account_value,omitempty"` // Types that are assignable to AccountExpiry: // // *InitAccountRequest_AbsoluteHeight // *InitAccountRequest_RelativeHeight AccountExpiry isInitAccountRequest_AccountExpiry `protobuf_oneof:"account_expiry"` // Types that are assignable to Fees: // // *InitAccountRequest_ConfTarget // *InitAccountRequest_FeeRateSatPerKw Fees isInitAccountRequest_Fees `protobuf_oneof:"fees"` // An optional identification string that will be appended to the user agent // string sent to the server to give information about the usage of pool. This // initiator part is meant for user interfaces to add their name to give the // full picture of the binary used (poold, LiT) and the method used for opening // the account (pool CLI, LiT UI, other 3rd party UI). Initiator string `protobuf:"bytes,5,opt,name=initiator,proto3" json:"initiator,omitempty"` // The version of account to create. Version AccountVersion `protobuf:"varint,7,opt,name=version,proto3,enum=poolrpc.AccountVersion" json:"version,omitempty"` } func (x *InitAccountRequest) Reset() { *x = InitAccountRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InitAccountRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*InitAccountRequest) ProtoMessage() {} func (x *InitAccountRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_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 InitAccountRequest.ProtoReflect.Descriptor instead. func (*InitAccountRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{0} } func (x *InitAccountRequest) GetAccountValue() uint64 { if x != nil { return x.AccountValue } return 0 } func (m *InitAccountRequest) GetAccountExpiry() isInitAccountRequest_AccountExpiry { if m != nil { return m.AccountExpiry } return nil } func (x *InitAccountRequest) GetAbsoluteHeight() uint32 { if x, ok := x.GetAccountExpiry().(*InitAccountRequest_AbsoluteHeight); ok { return x.AbsoluteHeight } return 0 } func (x *InitAccountRequest) GetRelativeHeight() uint32 { if x, ok := x.GetAccountExpiry().(*InitAccountRequest_RelativeHeight); ok { return x.RelativeHeight } return 0 } func (m *InitAccountRequest) GetFees() isInitAccountRequest_Fees { if m != nil { return m.Fees } return nil } func (x *InitAccountRequest) GetConfTarget() uint32 { if x, ok := x.GetFees().(*InitAccountRequest_ConfTarget); ok { return x.ConfTarget } return 0 } func (x *InitAccountRequest) GetFeeRateSatPerKw() uint64 { if x, ok := x.GetFees().(*InitAccountRequest_FeeRateSatPerKw); ok { return x.FeeRateSatPerKw } return 0 } func (x *InitAccountRequest) GetInitiator() string { if x != nil { return x.Initiator } return "" } func (x *InitAccountRequest) GetVersion() AccountVersion { if x != nil { return x.Version } return AccountVersion_ACCOUNT_VERSION_LND_DEPENDENT } type isInitAccountRequest_AccountExpiry interface { isInitAccountRequest_AccountExpiry() } type InitAccountRequest_AbsoluteHeight struct { AbsoluteHeight uint32 `protobuf:"varint,2,opt,name=absolute_height,json=absoluteHeight,proto3,oneof"` } type InitAccountRequest_RelativeHeight struct { RelativeHeight uint32 `protobuf:"varint,3,opt,name=relative_height,json=relativeHeight,proto3,oneof"` } func (*InitAccountRequest_AbsoluteHeight) isInitAccountRequest_AccountExpiry() {} func (*InitAccountRequest_RelativeHeight) isInitAccountRequest_AccountExpiry() {} type isInitAccountRequest_Fees interface { isInitAccountRequest_Fees() } type InitAccountRequest_ConfTarget struct { // The target number of blocks that the transaction should be confirmed in. ConfTarget uint32 `protobuf:"varint,4,opt,name=conf_target,json=confTarget,proto3,oneof"` } type InitAccountRequest_FeeRateSatPerKw struct { // The fee rate, in satoshis per kw, to use for the initial funding // transaction. FeeRateSatPerKw uint64 `protobuf:"varint,6,opt,name=fee_rate_sat_per_kw,json=feeRateSatPerKw,proto3,oneof"` } func (*InitAccountRequest_ConfTarget) isInitAccountRequest_Fees() {} func (*InitAccountRequest_FeeRateSatPerKw) isInitAccountRequest_Fees() {} type QuoteAccountRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AccountValue uint64 `protobuf:"varint,1,opt,name=account_value,json=accountValue,proto3" json:"account_value,omitempty"` // Types that are assignable to Fees: // // *QuoteAccountRequest_ConfTarget Fees isQuoteAccountRequest_Fees `protobuf_oneof:"fees"` } func (x *QuoteAccountRequest) Reset() { *x = QuoteAccountRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QuoteAccountRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*QuoteAccountRequest) ProtoMessage() {} func (x *QuoteAccountRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_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 QuoteAccountRequest.ProtoReflect.Descriptor instead. func (*QuoteAccountRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{1} } func (x *QuoteAccountRequest) GetAccountValue() uint64 { if x != nil { return x.AccountValue } return 0 } func (m *QuoteAccountRequest) GetFees() isQuoteAccountRequest_Fees { if m != nil { return m.Fees } return nil } func (x *QuoteAccountRequest) GetConfTarget() uint32 { if x, ok := x.GetFees().(*QuoteAccountRequest_ConfTarget); ok { return x.ConfTarget } return 0 } type isQuoteAccountRequest_Fees interface { isQuoteAccountRequest_Fees() } type QuoteAccountRequest_ConfTarget struct { // The target number of blocks that the transaction should be confirmed in. ConfTarget uint32 `protobuf:"varint,2,opt,name=conf_target,json=confTarget,proto3,oneof"` } func (*QuoteAccountRequest_ConfTarget) isQuoteAccountRequest_Fees() {} type QuoteAccountResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MinerFeeRateSatPerKw uint64 `protobuf:"varint,1,opt,name=miner_fee_rate_sat_per_kw,json=minerFeeRateSatPerKw,proto3" json:"miner_fee_rate_sat_per_kw,omitempty"` MinerFeeTotal uint64 `protobuf:"varint,2,opt,name=miner_fee_total,json=minerFeeTotal,proto3" json:"miner_fee_total,omitempty"` } func (x *QuoteAccountResponse) Reset() { *x = QuoteAccountResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QuoteAccountResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*QuoteAccountResponse) ProtoMessage() {} func (x *QuoteAccountResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_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 QuoteAccountResponse.ProtoReflect.Descriptor instead. func (*QuoteAccountResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{2} } func (x *QuoteAccountResponse) GetMinerFeeRateSatPerKw() uint64 { if x != nil { return x.MinerFeeRateSatPerKw } return 0 } func (x *QuoteAccountResponse) GetMinerFeeTotal() uint64 { if x != nil { return x.MinerFeeTotal } return 0 } type ListAccountsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Only list accounts that are still active. ActiveOnly bool `protobuf:"varint,1,opt,name=active_only,json=activeOnly,proto3" json:"active_only,omitempty"` } func (x *ListAccountsRequest) Reset() { *x = ListAccountsRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListAccountsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListAccountsRequest) ProtoMessage() {} func (x *ListAccountsRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_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 ListAccountsRequest.ProtoReflect.Descriptor instead. func (*ListAccountsRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{3} } func (x *ListAccountsRequest) GetActiveOnly() bool { if x != nil { return x.ActiveOnly } return false } type ListAccountsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Accounts []*Account `protobuf:"bytes,1,rep,name=accounts,proto3" json:"accounts,omitempty"` } func (x *ListAccountsResponse) Reset() { *x = ListAccountsResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListAccountsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListAccountsResponse) ProtoMessage() {} func (x *ListAccountsResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_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 ListAccountsResponse.ProtoReflect.Descriptor instead. func (*ListAccountsResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{4} } func (x *ListAccountsResponse) GetAccounts() []*Account { if x != nil { return x.Accounts } return nil } type Output struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The value, in satoshis, of the output. ValueSat uint64 `protobuf:"varint,1,opt,name=value_sat,json=valueSat,proto3" json:"value_sat,omitempty"` // The address corresponding to the output. Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` } func (x *Output) Reset() { *x = Output{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Output) String() string { return protoimpl.X.MessageStringOf(x) } func (*Output) ProtoMessage() {} func (x *Output) ProtoReflect() protoreflect.Message { mi := &file_trader_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 Output.ProtoReflect.Descriptor instead. func (*Output) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{5} } func (x *Output) GetValueSat() uint64 { if x != nil { return x.ValueSat } return 0 } func (x *Output) GetAddress() string { if x != nil { return x.Address } return "" } type OutputWithFee struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The address corresponding to the output. Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` // Types that are assignable to Fees: // // *OutputWithFee_ConfTarget // *OutputWithFee_FeeRateSatPerKw Fees isOutputWithFee_Fees `protobuf_oneof:"fees"` } func (x *OutputWithFee) Reset() { *x = OutputWithFee{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OutputWithFee) String() string { return protoimpl.X.MessageStringOf(x) } func (*OutputWithFee) ProtoMessage() {} func (x *OutputWithFee) ProtoReflect() protoreflect.Message { mi := &file_trader_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 OutputWithFee.ProtoReflect.Descriptor instead. func (*OutputWithFee) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{6} } func (x *OutputWithFee) GetAddress() string { if x != nil { return x.Address } return "" } func (m *OutputWithFee) GetFees() isOutputWithFee_Fees { if m != nil { return m.Fees } return nil } func (x *OutputWithFee) GetConfTarget() uint32 { if x, ok := x.GetFees().(*OutputWithFee_ConfTarget); ok { return x.ConfTarget } return 0 } func (x *OutputWithFee) GetFeeRateSatPerKw() uint64 { if x, ok := x.GetFees().(*OutputWithFee_FeeRateSatPerKw); ok { return x.FeeRateSatPerKw } return 0 } type isOutputWithFee_Fees interface { isOutputWithFee_Fees() } type OutputWithFee_ConfTarget struct { // The target number of blocks that the transaction should be confirmed in. ConfTarget uint32 `protobuf:"varint,2,opt,name=conf_target,json=confTarget,proto3,oneof"` } type OutputWithFee_FeeRateSatPerKw struct { // The fee rate, in satoshis per kw, to use for the withdrawal transaction. FeeRateSatPerKw uint64 `protobuf:"varint,3,opt,name=fee_rate_sat_per_kw,json=feeRateSatPerKw,proto3,oneof"` } func (*OutputWithFee_ConfTarget) isOutputWithFee_Fees() {} func (*OutputWithFee_FeeRateSatPerKw) isOutputWithFee_Fees() {} type OutputsWithImplicitFee struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Outputs []*Output `protobuf:"bytes,1,rep,name=outputs,proto3" json:"outputs,omitempty"` } func (x *OutputsWithImplicitFee) Reset() { *x = OutputsWithImplicitFee{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OutputsWithImplicitFee) String() string { return protoimpl.X.MessageStringOf(x) } func (*OutputsWithImplicitFee) ProtoMessage() {} func (x *OutputsWithImplicitFee) ProtoReflect() protoreflect.Message { mi := &file_trader_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 OutputsWithImplicitFee.ProtoReflect.Descriptor instead. func (*OutputsWithImplicitFee) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{7} } func (x *OutputsWithImplicitFee) GetOutputs() []*Output { if x != nil { return x.Outputs } return nil } type CloseAccountRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The trader key associated with the account that will be closed. TraderKey []byte `protobuf:"bytes,1,opt,name=trader_key,json=traderKey,proto3" json:"trader_key,omitempty"` // Types that are assignable to FundsDestination: // // *CloseAccountRequest_OutputWithFee // *CloseAccountRequest_Outputs FundsDestination isCloseAccountRequest_FundsDestination `protobuf_oneof:"funds_destination"` } func (x *CloseAccountRequest) Reset() { *x = CloseAccountRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CloseAccountRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CloseAccountRequest) ProtoMessage() {} func (x *CloseAccountRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_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 CloseAccountRequest.ProtoReflect.Descriptor instead. func (*CloseAccountRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{8} } func (x *CloseAccountRequest) GetTraderKey() []byte { if x != nil { return x.TraderKey } return nil } func (m *CloseAccountRequest) GetFundsDestination() isCloseAccountRequest_FundsDestination { if m != nil { return m.FundsDestination } return nil } func (x *CloseAccountRequest) GetOutputWithFee() *OutputWithFee { if x, ok := x.GetFundsDestination().(*CloseAccountRequest_OutputWithFee); ok { return x.OutputWithFee } return nil } func (x *CloseAccountRequest) GetOutputs() *OutputsWithImplicitFee { if x, ok := x.GetFundsDestination().(*CloseAccountRequest_Outputs); ok { return x.Outputs } return nil } type isCloseAccountRequest_FundsDestination interface { isCloseAccountRequest_FundsDestination() } type CloseAccountRequest_OutputWithFee struct { // A single output/address to which the remaining funds of the account will // be sent to at the specified fee. If an address is not specified, then // the funds are sent to an address the backing lnd node controls. OutputWithFee *OutputWithFee `protobuf:"bytes,2,opt,name=output_with_fee,json=outputWithFee,proto3,oneof"` } type CloseAccountRequest_Outputs struct { // The outputs to which the remaining funds of the account will be sent to. // This should only be used when wanting to create two or more outputs, // otherwise OutputWithFee should be used instead. The fee of the account's // closing transaction is implicitly defined by the combined value of all // outputs. Outputs *OutputsWithImplicitFee `protobuf:"bytes,3,opt,name=outputs,proto3,oneof"` } func (*CloseAccountRequest_OutputWithFee) isCloseAccountRequest_FundsDestination() {} func (*CloseAccountRequest_Outputs) isCloseAccountRequest_FundsDestination() {} type CloseAccountResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The hash of the closing transaction. CloseTxid []byte `protobuf:"bytes,1,opt,name=close_txid,json=closeTxid,proto3" json:"close_txid,omitempty"` } func (x *CloseAccountResponse) Reset() { *x = CloseAccountResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CloseAccountResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CloseAccountResponse) ProtoMessage() {} func (x *CloseAccountResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_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 CloseAccountResponse.ProtoReflect.Descriptor instead. func (*CloseAccountResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{9} } func (x *CloseAccountResponse) GetCloseTxid() []byte { if x != nil { return x.CloseTxid } return nil } type WithdrawAccountRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The trader key associated with the account that funds will be withdrawed // from. TraderKey []byte `protobuf:"bytes,1,opt,name=trader_key,json=traderKey,proto3" json:"trader_key,omitempty"` // The outputs we'll withdraw funds from the account into. Outputs []*Output `protobuf:"bytes,2,rep,name=outputs,proto3" json:"outputs,omitempty"` // The fee rate, in satoshis per kw, to use for the withdrawal transaction. FeeRateSatPerKw uint64 `protobuf:"varint,3,opt,name=fee_rate_sat_per_kw,json=feeRateSatPerKw,proto3" json:"fee_rate_sat_per_kw,omitempty"` // Types that are assignable to AccountExpiry: // // *WithdrawAccountRequest_AbsoluteExpiry // *WithdrawAccountRequest_RelativeExpiry AccountExpiry isWithdrawAccountRequest_AccountExpiry `protobuf_oneof:"account_expiry"` // The new version of the account. If this is set and is a valid version // greater than the account's current version, then the account is upgraded to // that version during the withdrawal. NewVersion AccountVersion `protobuf:"varint,6,opt,name=new_version,json=newVersion,proto3,enum=poolrpc.AccountVersion" json:"new_version,omitempty"` } func (x *WithdrawAccountRequest) Reset() { *x = WithdrawAccountRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WithdrawAccountRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*WithdrawAccountRequest) ProtoMessage() {} func (x *WithdrawAccountRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_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 WithdrawAccountRequest.ProtoReflect.Descriptor instead. func (*WithdrawAccountRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{10} } func (x *WithdrawAccountRequest) GetTraderKey() []byte { if x != nil { return x.TraderKey } return nil } func (x *WithdrawAccountRequest) GetOutputs() []*Output { if x != nil { return x.Outputs } return nil } func (x *WithdrawAccountRequest) GetFeeRateSatPerKw() uint64 { if x != nil { return x.FeeRateSatPerKw } return 0 } func (m *WithdrawAccountRequest) GetAccountExpiry() isWithdrawAccountRequest_AccountExpiry { if m != nil { return m.AccountExpiry } return nil } func (x *WithdrawAccountRequest) GetAbsoluteExpiry() uint32 { if x, ok := x.GetAccountExpiry().(*WithdrawAccountRequest_AbsoluteExpiry); ok { return x.AbsoluteExpiry } return 0 } func (x *WithdrawAccountRequest) GetRelativeExpiry() uint32 { if x, ok := x.GetAccountExpiry().(*WithdrawAccountRequest_RelativeExpiry); ok { return x.RelativeExpiry } return 0 } func (x *WithdrawAccountRequest) GetNewVersion() AccountVersion { if x != nil { return x.NewVersion } return AccountVersion_ACCOUNT_VERSION_LND_DEPENDENT } type isWithdrawAccountRequest_AccountExpiry interface { isWithdrawAccountRequest_AccountExpiry() } type WithdrawAccountRequest_AbsoluteExpiry struct { // The new absolute expiration height of the account. AbsoluteExpiry uint32 `protobuf:"varint,4,opt,name=absolute_expiry,json=absoluteExpiry,proto3,oneof"` } type WithdrawAccountRequest_RelativeExpiry struct { // The new relative expiration height of the account. RelativeExpiry uint32 `protobuf:"varint,5,opt,name=relative_expiry,json=relativeExpiry,proto3,oneof"` } func (*WithdrawAccountRequest_AbsoluteExpiry) isWithdrawAccountRequest_AccountExpiry() {} func (*WithdrawAccountRequest_RelativeExpiry) isWithdrawAccountRequest_AccountExpiry() {} type WithdrawAccountResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The state of the account after processing the withdrawal. Account *Account `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` // The transaction used to withdraw funds from the account. WithdrawTxid []byte `protobuf:"bytes,2,opt,name=withdraw_txid,json=withdrawTxid,proto3" json:"withdraw_txid,omitempty"` } func (x *WithdrawAccountResponse) Reset() { *x = WithdrawAccountResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WithdrawAccountResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*WithdrawAccountResponse) ProtoMessage() {} func (x *WithdrawAccountResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_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 WithdrawAccountResponse.ProtoReflect.Descriptor instead. func (*WithdrawAccountResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{11} } func (x *WithdrawAccountResponse) GetAccount() *Account { if x != nil { return x.Account } return nil } func (x *WithdrawAccountResponse) GetWithdrawTxid() []byte { if x != nil { return x.WithdrawTxid } return nil } type DepositAccountRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The trader key associated with the account that funds will be deposited // into. TraderKey []byte `protobuf:"bytes,1,opt,name=trader_key,json=traderKey,proto3" json:"trader_key,omitempty"` // The amount in satoshis to deposit into the account. AmountSat uint64 `protobuf:"varint,2,opt,name=amount_sat,json=amountSat,proto3" json:"amount_sat,omitempty"` // The fee rate, in satoshis per kw, to use for the deposit transaction. FeeRateSatPerKw uint64 `protobuf:"varint,3,opt,name=fee_rate_sat_per_kw,json=feeRateSatPerKw,proto3" json:"fee_rate_sat_per_kw,omitempty"` // Types that are assignable to AccountExpiry: // // *DepositAccountRequest_AbsoluteExpiry // *DepositAccountRequest_RelativeExpiry AccountExpiry isDepositAccountRequest_AccountExpiry `protobuf_oneof:"account_expiry"` // The new version of the account. If this is set and is a valid version // greater than the account's current version, then the account is upgraded to // that version during the deposit. NewVersion AccountVersion `protobuf:"varint,6,opt,name=new_version,json=newVersion,proto3,enum=poolrpc.AccountVersion" json:"new_version,omitempty"` } func (x *DepositAccountRequest) Reset() { *x = DepositAccountRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DepositAccountRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DepositAccountRequest) ProtoMessage() {} func (x *DepositAccountRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_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 DepositAccountRequest.ProtoReflect.Descriptor instead. func (*DepositAccountRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{12} } func (x *DepositAccountRequest) GetTraderKey() []byte { if x != nil { return x.TraderKey } return nil } func (x *DepositAccountRequest) GetAmountSat() uint64 { if x != nil { return x.AmountSat } return 0 } func (x *DepositAccountRequest) GetFeeRateSatPerKw() uint64 { if x != nil { return x.FeeRateSatPerKw } return 0 } func (m *DepositAccountRequest) GetAccountExpiry() isDepositAccountRequest_AccountExpiry { if m != nil { return m.AccountExpiry } return nil } func (x *DepositAccountRequest) GetAbsoluteExpiry() uint32 { if x, ok := x.GetAccountExpiry().(*DepositAccountRequest_AbsoluteExpiry); ok { return x.AbsoluteExpiry } return 0 } func (x *DepositAccountRequest) GetRelativeExpiry() uint32 { if x, ok := x.GetAccountExpiry().(*DepositAccountRequest_RelativeExpiry); ok { return x.RelativeExpiry } return 0 } func (x *DepositAccountRequest) GetNewVersion() AccountVersion { if x != nil { return x.NewVersion } return AccountVersion_ACCOUNT_VERSION_LND_DEPENDENT } type isDepositAccountRequest_AccountExpiry interface { isDepositAccountRequest_AccountExpiry() } type DepositAccountRequest_AbsoluteExpiry struct { // The new absolute expiration height of the account. AbsoluteExpiry uint32 `protobuf:"varint,4,opt,name=absolute_expiry,json=absoluteExpiry,proto3,oneof"` } type DepositAccountRequest_RelativeExpiry struct { // The new relative expiration height of the account. RelativeExpiry uint32 `protobuf:"varint,5,opt,name=relative_expiry,json=relativeExpiry,proto3,oneof"` } func (*DepositAccountRequest_AbsoluteExpiry) isDepositAccountRequest_AccountExpiry() {} func (*DepositAccountRequest_RelativeExpiry) isDepositAccountRequest_AccountExpiry() {} type DepositAccountResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The state of the account after processing the deposit. Account *Account `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` // The transaction used to deposit funds into the account. DepositTxid []byte `protobuf:"bytes,2,opt,name=deposit_txid,json=depositTxid,proto3" json:"deposit_txid,omitempty"` } func (x *DepositAccountResponse) Reset() { *x = DepositAccountResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DepositAccountResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*DepositAccountResponse) ProtoMessage() {} func (x *DepositAccountResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_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 DepositAccountResponse.ProtoReflect.Descriptor instead. func (*DepositAccountResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{13} } func (x *DepositAccountResponse) GetAccount() *Account { if x != nil { return x.Account } return nil } func (x *DepositAccountResponse) GetDepositTxid() []byte { if x != nil { return x.DepositTxid } return nil } type RenewAccountRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The key associated with the account to renew. AccountKey []byte `protobuf:"bytes,1,opt,name=account_key,json=accountKey,proto3" json:"account_key,omitempty"` // Types that are assignable to AccountExpiry: // // *RenewAccountRequest_AbsoluteExpiry // *RenewAccountRequest_RelativeExpiry AccountExpiry isRenewAccountRequest_AccountExpiry `protobuf_oneof:"account_expiry"` // The fee rate, in satoshis per kw, to use for the renewal transaction. FeeRateSatPerKw uint64 `protobuf:"varint,4,opt,name=fee_rate_sat_per_kw,json=feeRateSatPerKw,proto3" json:"fee_rate_sat_per_kw,omitempty"` // The new version of the account. If this is set and is a valid version // greater than the account's current version, then the account is upgraded to // that version during the renewal. NewVersion AccountVersion `protobuf:"varint,5,opt,name=new_version,json=newVersion,proto3,enum=poolrpc.AccountVersion" json:"new_version,omitempty"` } func (x *RenewAccountRequest) Reset() { *x = RenewAccountRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RenewAccountRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*RenewAccountRequest) ProtoMessage() {} func (x *RenewAccountRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_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 RenewAccountRequest.ProtoReflect.Descriptor instead. func (*RenewAccountRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{14} } func (x *RenewAccountRequest) GetAccountKey() []byte { if x != nil { return x.AccountKey } return nil } func (m *RenewAccountRequest) GetAccountExpiry() isRenewAccountRequest_AccountExpiry { if m != nil { return m.AccountExpiry } return nil } func (x *RenewAccountRequest) GetAbsoluteExpiry() uint32 { if x, ok := x.GetAccountExpiry().(*RenewAccountRequest_AbsoluteExpiry); ok { return x.AbsoluteExpiry } return 0 } func (x *RenewAccountRequest) GetRelativeExpiry() uint32 { if x, ok := x.GetAccountExpiry().(*RenewAccountRequest_RelativeExpiry); ok { return x.RelativeExpiry } return 0 } func (x *RenewAccountRequest) GetFeeRateSatPerKw() uint64 { if x != nil { return x.FeeRateSatPerKw } return 0 } func (x *RenewAccountRequest) GetNewVersion() AccountVersion { if x != nil { return x.NewVersion } return AccountVersion_ACCOUNT_VERSION_LND_DEPENDENT } type isRenewAccountRequest_AccountExpiry interface { isRenewAccountRequest_AccountExpiry() } type RenewAccountRequest_AbsoluteExpiry struct { // The new absolute expiration height of the account. AbsoluteExpiry uint32 `protobuf:"varint,2,opt,name=absolute_expiry,json=absoluteExpiry,proto3,oneof"` } type RenewAccountRequest_RelativeExpiry struct { // The new relative expiration height of the account. RelativeExpiry uint32 `protobuf:"varint,3,opt,name=relative_expiry,json=relativeExpiry,proto3,oneof"` } func (*RenewAccountRequest_AbsoluteExpiry) isRenewAccountRequest_AccountExpiry() {} func (*RenewAccountRequest_RelativeExpiry) isRenewAccountRequest_AccountExpiry() {} type RenewAccountResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The state of the account after processing the renewal. Account *Account `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` // The transaction used to renew the expiration of the account. RenewalTxid []byte `protobuf:"bytes,2,opt,name=renewal_txid,json=renewalTxid,proto3" json:"renewal_txid,omitempty"` } func (x *RenewAccountResponse) Reset() { *x = RenewAccountResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RenewAccountResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*RenewAccountResponse) ProtoMessage() {} func (x *RenewAccountResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_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 RenewAccountResponse.ProtoReflect.Descriptor instead. func (*RenewAccountResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{15} } func (x *RenewAccountResponse) GetAccount() *Account { if x != nil { return x.Account } return nil } func (x *RenewAccountResponse) GetRenewalTxid() []byte { if x != nil { return x.RenewalTxid } return nil } type BumpAccountFeeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The trader key associated with the account that will have its fee bumped. TraderKey []byte `protobuf:"bytes,1,opt,name=trader_key,json=traderKey,proto3" json:"trader_key,omitempty"` // The new fee rate, in satoshis per kw, to use for the child of the account // transaction. FeeRateSatPerKw uint64 `protobuf:"varint,2,opt,name=fee_rate_sat_per_kw,json=feeRateSatPerKw,proto3" json:"fee_rate_sat_per_kw,omitempty"` } func (x *BumpAccountFeeRequest) Reset() { *x = BumpAccountFeeRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BumpAccountFeeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*BumpAccountFeeRequest) ProtoMessage() {} func (x *BumpAccountFeeRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_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 BumpAccountFeeRequest.ProtoReflect.Descriptor instead. func (*BumpAccountFeeRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{16} } func (x *BumpAccountFeeRequest) GetTraderKey() []byte { if x != nil { return x.TraderKey } return nil } func (x *BumpAccountFeeRequest) GetFeeRateSatPerKw() uint64 { if x != nil { return x.FeeRateSatPerKw } return 0 } type BumpAccountFeeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *BumpAccountFeeResponse) Reset() { *x = BumpAccountFeeResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BumpAccountFeeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*BumpAccountFeeResponse) ProtoMessage() {} func (x *BumpAccountFeeResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_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 BumpAccountFeeResponse.ProtoReflect.Descriptor instead. func (*BumpAccountFeeResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{17} } type Account struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The identifying component of an account. This is the key used for the trader // in the 2-of-2 multi-sig construction of an account with an auctioneer. TraderKey []byte `protobuf:"bytes,1,opt,name=trader_key,json=traderKey,proto3" json:"trader_key,omitempty"` // The current outpoint associated with the account. This will change every // time the account has been updated. Outpoint *auctioneerrpc.OutPoint `protobuf:"bytes,2,opt,name=outpoint,proto3" json:"outpoint,omitempty"` // The current total amount of satoshis in the account. Value uint64 `protobuf:"varint,3,opt,name=value,proto3" json:"value,omitempty"` // The amount of satoshis in the account that is available, meaning not // allocated to any oustanding orders. AvailableBalance uint64 `protobuf:"varint,4,opt,name=available_balance,json=availableBalance,proto3" json:"available_balance,omitempty"` // The height at which the account will expire. ExpirationHeight uint32 `protobuf:"varint,5,opt,name=expiration_height,json=expirationHeight,proto3" json:"expiration_height,omitempty"` // The current state of the account. State AccountState `protobuf:"varint,6,opt,name=state,proto3,enum=poolrpc.AccountState" json:"state,omitempty"` // The hash of the account's latest transaction. LatestTxid []byte `protobuf:"bytes,7,opt,name=latest_txid,json=latestTxid,proto3" json:"latest_txid,omitempty"` // The current version of the account. Version AccountVersion `protobuf:"varint,8,opt,name=version,proto3,enum=poolrpc.AccountVersion" json:"version,omitempty"` } func (x *Account) Reset() { *x = Account{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Account) String() string { return protoimpl.X.MessageStringOf(x) } func (*Account) ProtoMessage() {} func (x *Account) ProtoReflect() protoreflect.Message { mi := &file_trader_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 Account.ProtoReflect.Descriptor instead. func (*Account) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{18} } func (x *Account) GetTraderKey() []byte { if x != nil { return x.TraderKey } return nil } func (x *Account) GetOutpoint() *auctioneerrpc.OutPoint { if x != nil { return x.Outpoint } return nil } func (x *Account) GetValue() uint64 { if x != nil { return x.Value } return 0 } func (x *Account) GetAvailableBalance() uint64 { if x != nil { return x.AvailableBalance } return 0 } func (x *Account) GetExpirationHeight() uint32 { if x != nil { return x.ExpirationHeight } return 0 } func (x *Account) GetState() AccountState { if x != nil { return x.State } return AccountState_PENDING_OPEN } func (x *Account) GetLatestTxid() []byte { if x != nil { return x.LatestTxid } return nil } func (x *Account) GetVersion() AccountVersion { if x != nil { return x.Version } return AccountVersion_ACCOUNT_VERSION_LND_DEPENDENT } type SubmitOrderRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Details: // // *SubmitOrderRequest_Ask // *SubmitOrderRequest_Bid Details isSubmitOrderRequest_Details `protobuf_oneof:"details"` // An optional identification string that will be appended to the user agent // string sent to the server to give information about the usage of pool. This // initiator part is meant for user interfaces to add their name to give the // full picture of the binary used (poold, LiT) and the method used for // submitting the order (pool CLI, LiT UI, other 3rd party UI). Initiator string `protobuf:"bytes,3,opt,name=initiator,proto3" json:"initiator,omitempty"` } func (x *SubmitOrderRequest) Reset() { *x = SubmitOrderRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SubmitOrderRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SubmitOrderRequest) ProtoMessage() {} func (x *SubmitOrderRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_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 SubmitOrderRequest.ProtoReflect.Descriptor instead. func (*SubmitOrderRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{19} } func (m *SubmitOrderRequest) GetDetails() isSubmitOrderRequest_Details { if m != nil { return m.Details } return nil } func (x *SubmitOrderRequest) GetAsk() *Ask { if x, ok := x.GetDetails().(*SubmitOrderRequest_Ask); ok { return x.Ask } return nil } func (x *SubmitOrderRequest) GetBid() *Bid { if x, ok := x.GetDetails().(*SubmitOrderRequest_Bid); ok { return x.Bid } return nil } func (x *SubmitOrderRequest) GetInitiator() string { if x != nil { return x.Initiator } return "" } type isSubmitOrderRequest_Details interface { isSubmitOrderRequest_Details() } type SubmitOrderRequest_Ask struct { Ask *Ask `protobuf:"bytes,1,opt,name=ask,proto3,oneof"` } type SubmitOrderRequest_Bid struct { Bid *Bid `protobuf:"bytes,2,opt,name=bid,proto3,oneof"` } func (*SubmitOrderRequest_Ask) isSubmitOrderRequest_Details() {} func (*SubmitOrderRequest_Bid) isSubmitOrderRequest_Details() {} type SubmitOrderResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Details: // // *SubmitOrderResponse_InvalidOrder // *SubmitOrderResponse_AcceptedOrderNonce Details isSubmitOrderResponse_Details `protobuf_oneof:"details"` // In case a bid order was submitted for a sidecar ticket, that ticket is // updated with the new state and bid order nonce. UpdatedSidecarTicket string `protobuf:"bytes,3,opt,name=updated_sidecar_ticket,json=updatedSidecarTicket,proto3" json:"updated_sidecar_ticket,omitempty"` } func (x *SubmitOrderResponse) Reset() { *x = SubmitOrderResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SubmitOrderResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*SubmitOrderResponse) ProtoMessage() {} func (x *SubmitOrderResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_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 SubmitOrderResponse.ProtoReflect.Descriptor instead. func (*SubmitOrderResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{20} } func (m *SubmitOrderResponse) GetDetails() isSubmitOrderResponse_Details { if m != nil { return m.Details } return nil } func (x *SubmitOrderResponse) GetInvalidOrder() *auctioneerrpc.InvalidOrder { if x, ok := x.GetDetails().(*SubmitOrderResponse_InvalidOrder); ok { return x.InvalidOrder } return nil } func (x *SubmitOrderResponse) GetAcceptedOrderNonce() []byte { if x, ok := x.GetDetails().(*SubmitOrderResponse_AcceptedOrderNonce); ok { return x.AcceptedOrderNonce } return nil } func (x *SubmitOrderResponse) GetUpdatedSidecarTicket() string { if x != nil { return x.UpdatedSidecarTicket } return "" } type isSubmitOrderResponse_Details interface { isSubmitOrderResponse_Details() } type SubmitOrderResponse_InvalidOrder struct { // Order failed with the given reason. InvalidOrder *auctioneerrpc.InvalidOrder `protobuf:"bytes,1,opt,name=invalid_order,json=invalidOrder,proto3,oneof"` } type SubmitOrderResponse_AcceptedOrderNonce struct { // The order nonce of the accepted order. AcceptedOrderNonce []byte `protobuf:"bytes,2,opt,name=accepted_order_nonce,json=acceptedOrderNonce,proto3,oneof"` } func (*SubmitOrderResponse_InvalidOrder) isSubmitOrderResponse_Details() {} func (*SubmitOrderResponse_AcceptedOrderNonce) isSubmitOrderResponse_Details() {} type ListOrdersRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Can be set to true to list the orders including all events, which can be // very verbose. Verbose bool `protobuf:"varint,1,opt,name=verbose,proto3" json:"verbose,omitempty"` // Only list orders that are still active. ActiveOnly bool `protobuf:"varint,2,opt,name=active_only,json=activeOnly,proto3" json:"active_only,omitempty"` } func (x *ListOrdersRequest) Reset() { *x = ListOrdersRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListOrdersRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListOrdersRequest) ProtoMessage() {} func (x *ListOrdersRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[21] 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 ListOrdersRequest.ProtoReflect.Descriptor instead. func (*ListOrdersRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{21} } func (x *ListOrdersRequest) GetVerbose() bool { if x != nil { return x.Verbose } return false } func (x *ListOrdersRequest) GetActiveOnly() bool { if x != nil { return x.ActiveOnly } return false } type ListOrdersResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Asks []*Ask `protobuf:"bytes,1,rep,name=asks,proto3" json:"asks,omitempty"` Bids []*Bid `protobuf:"bytes,2,rep,name=bids,proto3" json:"bids,omitempty"` } func (x *ListOrdersResponse) Reset() { *x = ListOrdersResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListOrdersResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListOrdersResponse) ProtoMessage() {} func (x *ListOrdersResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[22] 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 ListOrdersResponse.ProtoReflect.Descriptor instead. func (*ListOrdersResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{22} } func (x *ListOrdersResponse) GetAsks() []*Ask { if x != nil { return x.Asks } return nil } func (x *ListOrdersResponse) GetBids() []*Bid { if x != nil { return x.Bids } return nil } type CancelOrderRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OrderNonce []byte `protobuf:"bytes,1,opt,name=order_nonce,json=orderNonce,proto3" json:"order_nonce,omitempty"` } func (x *CancelOrderRequest) Reset() { *x = CancelOrderRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CancelOrderRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CancelOrderRequest) ProtoMessage() {} func (x *CancelOrderRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[23] 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 CancelOrderRequest.ProtoReflect.Descriptor instead. func (*CancelOrderRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{23} } func (x *CancelOrderRequest) GetOrderNonce() []byte { if x != nil { return x.OrderNonce } return nil } type CancelOrderResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CancelOrderResponse) Reset() { *x = CancelOrderResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CancelOrderResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CancelOrderResponse) ProtoMessage() {} func (x *CancelOrderResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[24] 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 CancelOrderResponse.ProtoReflect.Descriptor instead. func (*CancelOrderResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{24} } type Order struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The trader's account key of the account that is used for the order. TraderKey []byte `protobuf:"bytes,1,opt,name=trader_key,json=traderKey,proto3" json:"trader_key,omitempty"` // Fixed order rate in parts per billion. RateFixed uint32 `protobuf:"varint,2,opt,name=rate_fixed,json=rateFixed,proto3" json:"rate_fixed,omitempty"` // Order amount in satoshis. Amt uint64 `protobuf:"varint,3,opt,name=amt,proto3" json:"amt,omitempty"` // Maximum fee rate the trader is willing to pay for the batch transaction, // expressed in satoshis per 1000 weight units (sat/KW). MaxBatchFeeRateSatPerKw uint64 `protobuf:"varint,4,opt,name=max_batch_fee_rate_sat_per_kw,json=maxBatchFeeRateSatPerKw,proto3" json:"max_batch_fee_rate_sat_per_kw,omitempty"` // Order nonce, acts as unique order identifier. OrderNonce []byte `protobuf:"bytes,5,opt,name=order_nonce,json=orderNonce,proto3" json:"order_nonce,omitempty"` // The state the order currently is in. State auctioneerrpc.OrderState `protobuf:"varint,6,opt,name=state,proto3,enum=poolrpc.OrderState" json:"state,omitempty"` // The number of order units the amount corresponds to. Units uint32 `protobuf:"varint,7,opt,name=units,proto3" json:"units,omitempty"` // The number of currently unfilled units of this order. This will be equal to // the total amount of units until the order has reached the state PARTIAL_FILL // or EXECUTED. UnitsUnfulfilled uint32 `protobuf:"varint,8,opt,name=units_unfulfilled,json=unitsUnfulfilled,proto3" json:"units_unfulfilled,omitempty"` // The value reserved from the account by this order to ensure the account // can pay execution and chain fees in case it gets matched. ReservedValueSat uint64 `protobuf:"varint,9,opt,name=reserved_value_sat,json=reservedValueSat,proto3" json:"reserved_value_sat,omitempty"` // The unix timestamp in nanoseconds the order was first created/submitted. CreationTimestampNs uint64 `protobuf:"varint,10,opt,name=creation_timestamp_ns,json=creationTimestampNs,proto3" json:"creation_timestamp_ns,omitempty"` // A list of events that were emitted for this order. This field is only set // when the verbose flag is set to true in the request. Events []*OrderEvent `protobuf:"bytes,11,rep,name=events,proto3" json:"events,omitempty"` // The minimum number of order units that must be matched per order pair. MinUnitsMatch uint32 `protobuf:"varint,12,opt,name=min_units_match,json=minUnitsMatch,proto3" json:"min_units_match,omitempty"` // The channel type to use for the resulting matched channels. ChannelType auctioneerrpc.OrderChannelType `protobuf:"varint,13,opt,name=channel_type,json=channelType,proto3,enum=poolrpc.OrderChannelType" json:"channel_type,omitempty"` // List of nodes that will be allowed to match with our order. Incompatible // with the `not_allowed_node_ids` field. AllowedNodeIds [][]byte `protobuf:"bytes,14,rep,name=allowed_node_ids,json=allowedNodeIds,proto3" json:"allowed_node_ids,omitempty"` // List of nodes that won't be allowed to match with our order. Incompatible // with the `allowed_node_ids` field. NotAllowedNodeIds [][]byte `protobuf:"bytes,15,rep,name=not_allowed_node_ids,json=notAllowedNodeIds,proto3" json:"not_allowed_node_ids,omitempty"` // Auction type where this order must be considered during the matching. AuctionType auctioneerrpc.AuctionType `protobuf:"varint,16,opt,name=auction_type,json=auctionType,proto3,enum=poolrpc.AuctionType" json:"auction_type,omitempty"` // Flag used to signal that this order can be shared in public market // places. IsPublic bool `protobuf:"varint,17,opt,name=is_public,json=isPublic,proto3" json:"is_public,omitempty"` } func (x *Order) Reset() { *x = Order{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Order) String() string { return protoimpl.X.MessageStringOf(x) } func (*Order) ProtoMessage() {} func (x *Order) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[25] 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 Order.ProtoReflect.Descriptor instead. func (*Order) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{25} } func (x *Order) GetTraderKey() []byte { if x != nil { return x.TraderKey } return nil } func (x *Order) GetRateFixed() uint32 { if x != nil { return x.RateFixed } return 0 } func (x *Order) GetAmt() uint64 { if x != nil { return x.Amt } return 0 } func (x *Order) GetMaxBatchFeeRateSatPerKw() uint64 { if x != nil { return x.MaxBatchFeeRateSatPerKw } return 0 } func (x *Order) GetOrderNonce() []byte { if x != nil { return x.OrderNonce } return nil } func (x *Order) GetState() auctioneerrpc.OrderState { if x != nil { return x.State } return auctioneerrpc.OrderState(0) } func (x *Order) GetUnits() uint32 { if x != nil { return x.Units } return 0 } func (x *Order) GetUnitsUnfulfilled() uint32 { if x != nil { return x.UnitsUnfulfilled } return 0 } func (x *Order) GetReservedValueSat() uint64 { if x != nil { return x.ReservedValueSat } return 0 } func (x *Order) GetCreationTimestampNs() uint64 { if x != nil { return x.CreationTimestampNs } return 0 } func (x *Order) GetEvents() []*OrderEvent { if x != nil { return x.Events } return nil } func (x *Order) GetMinUnitsMatch() uint32 { if x != nil { return x.MinUnitsMatch } return 0 } func (x *Order) GetChannelType() auctioneerrpc.OrderChannelType { if x != nil { return x.ChannelType } return auctioneerrpc.OrderChannelType(0) } func (x *Order) GetAllowedNodeIds() [][]byte { if x != nil { return x.AllowedNodeIds } return nil } func (x *Order) GetNotAllowedNodeIds() [][]byte { if x != nil { return x.NotAllowedNodeIds } return nil } func (x *Order) GetAuctionType() auctioneerrpc.AuctionType { if x != nil { return x.AuctionType } return auctioneerrpc.AuctionType(0) } func (x *Order) GetIsPublic() bool { if x != nil { return x.IsPublic } return false } type Bid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The common fields shared between both ask and bid order types. Details *Order `protobuf:"bytes,1,opt,name=details,proto3" json:"details,omitempty"` // Required number of blocks that a channel opened as a result of this bid // should be kept open. LeaseDurationBlocks uint32 `protobuf:"varint,2,opt,name=lease_duration_blocks,json=leaseDurationBlocks,proto3" json:"lease_duration_blocks,omitempty"` // The version of the order format that is used. Will be increased once new // features are added. Version uint32 `protobuf:"varint,3,opt,name=version,proto3" json:"version,omitempty"` // The minimum node tier this order should be matched with. Only asks backed by // a node this tier or higher will be eligible for matching with this bid. MinNodeTier auctioneerrpc.NodeTier `protobuf:"varint,4,opt,name=min_node_tier,json=minNodeTier,proto3,enum=poolrpc.NodeTier" json:"min_node_tier,omitempty"` // Give the incoming channel that results from this bid being matched an // initial outbound balance by adding additional funds from the taker's account // into the channel. As a simplification for the execution protocol and the // channel reserve calculations the min_chan_amt must be set to the full order // amount. For the inbound liquidity market the self_chan_balance can be at // most the same as the order amount. SelfChanBalance uint64 `protobuf:"varint,5,opt,name=self_chan_balance,json=selfChanBalance,proto3" json:"self_chan_balance,omitempty"` // If this bid order is meant to lease a channel for another node (which is // dubbed a "sidecar channel") then this ticket contains all information // required for setting up that sidecar channel. The ticket is expected to be // the base58 encoded ticket, including the prefix and the checksum. SidecarTicket string `protobuf:"bytes,6,opt,name=sidecar_ticket,json=sidecarTicket,proto3" json:"sidecar_ticket,omitempty"` // Signals if this bid is interested in an announced or unannounced channel. UnannouncedChannel bool `protobuf:"varint,7,opt,name=unannounced_channel,json=unannouncedChannel,proto3" json:"unannounced_channel,omitempty"` // Signals if this bid is interested in a zero conf channel or not. ZeroConfChannel bool `protobuf:"varint,8,opt,name=zero_conf_channel,json=zeroConfChannel,proto3" json:"zero_conf_channel,omitempty"` } func (x *Bid) Reset() { *x = Bid{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Bid) String() string { return protoimpl.X.MessageStringOf(x) } func (*Bid) ProtoMessage() {} func (x *Bid) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[26] 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 Bid.ProtoReflect.Descriptor instead. func (*Bid) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{26} } func (x *Bid) GetDetails() *Order { if x != nil { return x.Details } return nil } func (x *Bid) GetLeaseDurationBlocks() uint32 { if x != nil { return x.LeaseDurationBlocks } return 0 } func (x *Bid) GetVersion() uint32 { if x != nil { return x.Version } return 0 } func (x *Bid) GetMinNodeTier() auctioneerrpc.NodeTier { if x != nil { return x.MinNodeTier } return auctioneerrpc.NodeTier(0) } func (x *Bid) GetSelfChanBalance() uint64 { if x != nil { return x.SelfChanBalance } return 0 } func (x *Bid) GetSidecarTicket() string { if x != nil { return x.SidecarTicket } return "" } func (x *Bid) GetUnannouncedChannel() bool { if x != nil { return x.UnannouncedChannel } return false } func (x *Bid) GetZeroConfChannel() bool { if x != nil { return x.ZeroConfChannel } return false } type Ask struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The common fields shared between both ask and bid order types. Details *Order `protobuf:"bytes,1,opt,name=details,proto3" json:"details,omitempty"` // The number of blocks the liquidity provider is willing to provide the // channel funds for. LeaseDurationBlocks uint32 `protobuf:"varint,2,opt,name=lease_duration_blocks,json=leaseDurationBlocks,proto3" json:"lease_duration_blocks,omitempty"` // The version of the order format that is used. Will be increased once new // features are added. Version uint32 `protobuf:"varint,3,opt,name=version,proto3" json:"version,omitempty"` // The constraints for selling the liquidity based on channel discoverability. AnnouncementConstraints auctioneerrpc.ChannelAnnouncementConstraints `protobuf:"varint,4,opt,name=announcement_constraints,json=announcementConstraints,proto3,enum=poolrpc.ChannelAnnouncementConstraints" json:"announcement_constraints,omitempty"` // The constraints for selling the liquidity based on the number of // blocks before considering the channel confirmed. ConfirmationConstraints auctioneerrpc.ChannelConfirmationConstraints `protobuf:"varint,5,opt,name=confirmation_constraints,json=confirmationConstraints,proto3,enum=poolrpc.ChannelConfirmationConstraints" json:"confirmation_constraints,omitempty"` } func (x *Ask) Reset() { *x = Ask{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Ask) String() string { return protoimpl.X.MessageStringOf(x) } func (*Ask) ProtoMessage() {} func (x *Ask) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[27] 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 Ask.ProtoReflect.Descriptor instead. func (*Ask) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{27} } func (x *Ask) GetDetails() *Order { if x != nil { return x.Details } return nil } func (x *Ask) GetLeaseDurationBlocks() uint32 { if x != nil { return x.LeaseDurationBlocks } return 0 } func (x *Ask) GetVersion() uint32 { if x != nil { return x.Version } return 0 } func (x *Ask) GetAnnouncementConstraints() auctioneerrpc.ChannelAnnouncementConstraints { if x != nil { return x.AnnouncementConstraints } return auctioneerrpc.ChannelAnnouncementConstraints(0) } func (x *Ask) GetConfirmationConstraints() auctioneerrpc.ChannelConfirmationConstraints { if x != nil { return x.ConfirmationConstraints } return auctioneerrpc.ChannelConfirmationConstraints(0) } type QuoteOrderRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Order amount in satoshis. Amt uint64 `protobuf:"varint,1,opt,name=amt,proto3" json:"amt,omitempty"` // Fixed order rate in parts per billion. RateFixed uint32 `protobuf:"varint,2,opt,name=rate_fixed,json=rateFixed,proto3" json:"rate_fixed,omitempty"` // Required number of blocks that a channel opened as a result of this bid // should be kept open. LeaseDurationBlocks uint32 `protobuf:"varint,3,opt,name=lease_duration_blocks,json=leaseDurationBlocks,proto3" json:"lease_duration_blocks,omitempty"` // Maximum fee rate the trader is willing to pay for the batch transaction, // expressed in satoshis per 1000 weight units (sat/KW). MaxBatchFeeRateSatPerKw uint64 `protobuf:"varint,4,opt,name=max_batch_fee_rate_sat_per_kw,json=maxBatchFeeRateSatPerKw,proto3" json:"max_batch_fee_rate_sat_per_kw,omitempty"` // The minimum number of order units that must be matched per order pair. MinUnitsMatch uint32 `protobuf:"varint,5,opt,name=min_units_match,json=minUnitsMatch,proto3" json:"min_units_match,omitempty"` } func (x *QuoteOrderRequest) Reset() { *x = QuoteOrderRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QuoteOrderRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*QuoteOrderRequest) ProtoMessage() {} func (x *QuoteOrderRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[28] 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 QuoteOrderRequest.ProtoReflect.Descriptor instead. func (*QuoteOrderRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{28} } func (x *QuoteOrderRequest) GetAmt() uint64 { if x != nil { return x.Amt } return 0 } func (x *QuoteOrderRequest) GetRateFixed() uint32 { if x != nil { return x.RateFixed } return 0 } func (x *QuoteOrderRequest) GetLeaseDurationBlocks() uint32 { if x != nil { return x.LeaseDurationBlocks } return 0 } func (x *QuoteOrderRequest) GetMaxBatchFeeRateSatPerKw() uint64 { if x != nil { return x.MaxBatchFeeRateSatPerKw } return 0 } func (x *QuoteOrderRequest) GetMinUnitsMatch() uint32 { if x != nil { return x.MinUnitsMatch } return 0 } type QuoteOrderResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The total order premium in satoshis for filling the entire order. This // represents the interest amount paid to the maker by the taker excluding any // execution or chain fees. TotalPremiumSat uint64 `protobuf:"varint,1,opt,name=total_premium_sat,json=totalPremiumSat,proto3" json:"total_premium_sat,omitempty"` // The fixed order rate expressed as a fraction instead of parts per billion. RatePerBlock float64 `protobuf:"fixed64,2,opt,name=rate_per_block,json=ratePerBlock,proto3" json:"rate_per_block,omitempty"` // The fixed order rate expressed as a percentage instead of parts per billion. RatePercent float64 `protobuf:"fixed64,3,opt,name=rate_percent,json=ratePercent,proto3" json:"rate_percent,omitempty"` // The total execution fee in satoshis that needs to be paid to the auctioneer // for executing the entire order. TotalExecutionFeeSat uint64 `protobuf:"varint,4,opt,name=total_execution_fee_sat,json=totalExecutionFeeSat,proto3" json:"total_execution_fee_sat,omitempty"` // The worst case chain fees that need to be paid if fee rates spike up to the // max_batch_fee_rate_sat_per_kw value specified in the request. This value is // highly dependent on the min_units_match parameter as well since the // calculation assumes chain fees for the chain footprint of opening // amt/min_units_match channels (hence worst case calculation). WorstCaseChainFeeSat uint64 `protobuf:"varint,5,opt,name=worst_case_chain_fee_sat,json=worstCaseChainFeeSat,proto3" json:"worst_case_chain_fee_sat,omitempty"` } func (x *QuoteOrderResponse) Reset() { *x = QuoteOrderResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QuoteOrderResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*QuoteOrderResponse) ProtoMessage() {} func (x *QuoteOrderResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[29] 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 QuoteOrderResponse.ProtoReflect.Descriptor instead. func (*QuoteOrderResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{29} } func (x *QuoteOrderResponse) GetTotalPremiumSat() uint64 { if x != nil { return x.TotalPremiumSat } return 0 } func (x *QuoteOrderResponse) GetRatePerBlock() float64 { if x != nil { return x.RatePerBlock } return 0 } func (x *QuoteOrderResponse) GetRatePercent() float64 { if x != nil { return x.RatePercent } return 0 } func (x *QuoteOrderResponse) GetTotalExecutionFeeSat() uint64 { if x != nil { return x.TotalExecutionFeeSat } return 0 } func (x *QuoteOrderResponse) GetWorstCaseChainFeeSat() uint64 { if x != nil { return x.WorstCaseChainFeeSat } return 0 } type OrderEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The unix timestamp in nanoseconds the event was emitted at. This is the // primary key of the event and is unique across the database. TimestampNs int64 `protobuf:"varint,1,opt,name=timestamp_ns,json=timestampNs,proto3" json:"timestamp_ns,omitempty"` // The human readable representation of the event. EventStr string `protobuf:"bytes,2,opt,name=event_str,json=eventStr,proto3" json:"event_str,omitempty"` // Types that are assignable to Event: // // *OrderEvent_StateChange // *OrderEvent_Matched Event isOrderEvent_Event `protobuf_oneof:"event"` } func (x *OrderEvent) Reset() { *x = OrderEvent{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OrderEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*OrderEvent) ProtoMessage() {} func (x *OrderEvent) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[30] 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 OrderEvent.ProtoReflect.Descriptor instead. func (*OrderEvent) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{30} } func (x *OrderEvent) GetTimestampNs() int64 { if x != nil { return x.TimestampNs } return 0 } func (x *OrderEvent) GetEventStr() string { if x != nil { return x.EventStr } return "" } func (m *OrderEvent) GetEvent() isOrderEvent_Event { if m != nil { return m.Event } return nil } func (x *OrderEvent) GetStateChange() *UpdatedEvent { if x, ok := x.GetEvent().(*OrderEvent_StateChange); ok { return x.StateChange } return nil } func (x *OrderEvent) GetMatched() *MatchEvent { if x, ok := x.GetEvent().(*OrderEvent_Matched); ok { return x.Matched } return nil } type isOrderEvent_Event interface { isOrderEvent_Event() } type OrderEvent_StateChange struct { // The order was updated in the database. StateChange *UpdatedEvent `protobuf:"bytes,3,opt,name=state_change,json=stateChange,proto3,oneof"` } type OrderEvent_Matched struct { // The order was involved in a match making attempt. Matched *MatchEvent `protobuf:"bytes,4,opt,name=matched,proto3,oneof"` } func (*OrderEvent_StateChange) isOrderEvent_Event() {} func (*OrderEvent_Matched) isOrderEvent_Event() {} type UpdatedEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The state of the order previous to the change. This is what the state // changed from. PreviousState auctioneerrpc.OrderState `protobuf:"varint,1,opt,name=previous_state,json=previousState,proto3,enum=poolrpc.OrderState" json:"previous_state,omitempty"` // The new state of the order after the change. This is what the state changed // to. NewState auctioneerrpc.OrderState `protobuf:"varint,2,opt,name=new_state,json=newState,proto3,enum=poolrpc.OrderState" json:"new_state,omitempty"` // The units that were filled at the time of the event. UnitsFilled uint32 `protobuf:"varint,3,opt,name=units_filled,json=unitsFilled,proto3" json:"units_filled,omitempty"` } func (x *UpdatedEvent) Reset() { *x = UpdatedEvent{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdatedEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdatedEvent) ProtoMessage() {} func (x *UpdatedEvent) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[31] 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 UpdatedEvent.ProtoReflect.Descriptor instead. func (*UpdatedEvent) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{31} } func (x *UpdatedEvent) GetPreviousState() auctioneerrpc.OrderState { if x != nil { return x.PreviousState } return auctioneerrpc.OrderState(0) } func (x *UpdatedEvent) GetNewState() auctioneerrpc.OrderState { if x != nil { return x.NewState } return auctioneerrpc.OrderState(0) } func (x *UpdatedEvent) GetUnitsFilled() uint32 { if x != nil { return x.UnitsFilled } return 0 } type MatchEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The state of the match making process the order went through. MatchState MatchState `protobuf:"varint,1,opt,name=match_state,json=matchState,proto3,enum=poolrpc.MatchState" json:"match_state,omitempty"` // The number of units that would be (or were) filled with this match. UnitsFilled uint32 `protobuf:"varint,2,opt,name=units_filled,json=unitsFilled,proto3" json:"units_filled,omitempty"` // The nonce of the order we were matched to. MatchedOrder []byte `protobuf:"bytes,3,opt,name=matched_order,json=matchedOrder,proto3" json:"matched_order,omitempty"` // The reason why the trader daemon rejected the order. Is only set if // match_state is set to REJECTED. RejectReason MatchRejectReason `protobuf:"varint,4,opt,name=reject_reason,json=rejectReason,proto3,enum=poolrpc.MatchRejectReason" json:"reject_reason,omitempty"` } func (x *MatchEvent) Reset() { *x = MatchEvent{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MatchEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*MatchEvent) ProtoMessage() {} func (x *MatchEvent) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[32] 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 MatchEvent.ProtoReflect.Descriptor instead. func (*MatchEvent) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{32} } func (x *MatchEvent) GetMatchState() MatchState { if x != nil { return x.MatchState } return MatchState_PREPARE } func (x *MatchEvent) GetUnitsFilled() uint32 { if x != nil { return x.UnitsFilled } return 0 } func (x *MatchEvent) GetMatchedOrder() []byte { if x != nil { return x.MatchedOrder } return nil } func (x *MatchEvent) GetRejectReason() MatchRejectReason { if x != nil { return x.RejectReason } return MatchRejectReason_NONE } type RecoverAccountsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Recover the latest account states without interacting with the // Lightning Labs server. FullClient bool `protobuf:"varint,1,opt,name=full_client,json=fullClient,proto3" json:"full_client,omitempty"` // Number of accounts that we are trying to recover. Used during the // full_client recovery process. AccountTarget uint32 `protobuf:"varint,2,opt,name=account_target,json=accountTarget,proto3" json:"account_target,omitempty"` // Auctioneer's public key. Used during the full_client recovery process. // This field should be left empty for testnet/mainnet, its value is already // hardcoded in our codebase. AuctioneerKey string `protobuf:"bytes,3,opt,name=auctioneer_key,json=auctioneerKey,proto3" json:"auctioneer_key,omitempty"` // Initial block height. We won't try to look for any account with an expiry // height smaller than this value. Used during the full_client recovery // process. HeightHint uint32 `protobuf:"varint,4,opt,name=height_hint,json=heightHint,proto3" json:"height_hint,omitempty"` // bitcoind/btcd instance address. Used during the full_client recovery // process. BitcoinHost string `protobuf:"bytes,5,opt,name=bitcoin_host,json=bitcoinHost,proto3" json:"bitcoin_host,omitempty"` // bitcoind/btcd user name. Used during the full_client recovery // process. BitcoinUser string `protobuf:"bytes,6,opt,name=bitcoin_user,json=bitcoinUser,proto3" json:"bitcoin_user,omitempty"` // bitcoind/btcd password. Used during the full_client recovery // process. BitcoinPassword string `protobuf:"bytes,7,opt,name=bitcoin_password,json=bitcoinPassword,proto3" json:"bitcoin_password,omitempty"` // Use HTTP POST mode? bitcoind only supports this mode. Used during the // full_client recovery process. BitcoinHttppostmode bool `protobuf:"varint,8,opt,name=bitcoin_httppostmode,json=bitcoinHttppostmode,proto3" json:"bitcoin_httppostmode,omitempty"` // Use TLS to connect? bitcoind only supports non-TLS connections. Used // during the full_client recovery process. BitcoinUsetls bool `protobuf:"varint,9,opt,name=bitcoin_usetls,json=bitcoinUsetls,proto3" json:"bitcoin_usetls,omitempty"` // Path to btcd's TLS certificate, if TLS is enabled. Used during the // full_client recovery process. BitcoinTlspath string `protobuf:"bytes,10,opt,name=bitcoin_tlspath,json=bitcoinTlspath,proto3" json:"bitcoin_tlspath,omitempty"` } func (x *RecoverAccountsRequest) Reset() { *x = RecoverAccountsRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RecoverAccountsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*RecoverAccountsRequest) ProtoMessage() {} func (x *RecoverAccountsRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[33] 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 RecoverAccountsRequest.ProtoReflect.Descriptor instead. func (*RecoverAccountsRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{33} } func (x *RecoverAccountsRequest) GetFullClient() bool { if x != nil { return x.FullClient } return false } func (x *RecoverAccountsRequest) GetAccountTarget() uint32 { if x != nil { return x.AccountTarget } return 0 } func (x *RecoverAccountsRequest) GetAuctioneerKey() string { if x != nil { return x.AuctioneerKey } return "" } func (x *RecoverAccountsRequest) GetHeightHint() uint32 { if x != nil { return x.HeightHint } return 0 } func (x *RecoverAccountsRequest) GetBitcoinHost() string { if x != nil { return x.BitcoinHost } return "" } func (x *RecoverAccountsRequest) GetBitcoinUser() string { if x != nil { return x.BitcoinUser } return "" } func (x *RecoverAccountsRequest) GetBitcoinPassword() string { if x != nil { return x.BitcoinPassword } return "" } func (x *RecoverAccountsRequest) GetBitcoinHttppostmode() bool { if x != nil { return x.BitcoinHttppostmode } return false } func (x *RecoverAccountsRequest) GetBitcoinUsetls() bool { if x != nil { return x.BitcoinUsetls } return false } func (x *RecoverAccountsRequest) GetBitcoinTlspath() string { if x != nil { return x.BitcoinTlspath } return "" } type RecoverAccountsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The number of accounts that were recovered. NumRecoveredAccounts uint32 `protobuf:"varint,1,opt,name=num_recovered_accounts,json=numRecoveredAccounts,proto3" json:"num_recovered_accounts,omitempty"` } func (x *RecoverAccountsResponse) Reset() { *x = RecoverAccountsResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RecoverAccountsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*RecoverAccountsResponse) ProtoMessage() {} func (x *RecoverAccountsResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[34] 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 RecoverAccountsResponse.ProtoReflect.Descriptor instead. func (*RecoverAccountsResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{34} } func (x *RecoverAccountsResponse) GetNumRecoveredAccounts() uint32 { if x != nil { return x.NumRecoveredAccounts } return 0 } type AccountModificationFeesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *AccountModificationFeesRequest) Reset() { *x = AccountModificationFeesRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AccountModificationFeesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*AccountModificationFeesRequest) ProtoMessage() {} func (x *AccountModificationFeesRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[35] 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 AccountModificationFeesRequest.ProtoReflect.Descriptor instead. func (*AccountModificationFeesRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{35} } type AccountModificationFee struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Modification action type. Action string `protobuf:"bytes,1,opt,name=action,proto3" json:"action,omitempty"` // Transaction ID. Txid string `protobuf:"bytes,2,opt,name=txid,proto3" json:"txid,omitempty"` // Action transaction block height. BlockHeight int32 `protobuf:"varint,3,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"` // Action transaction timestamp. Timestamp int64 `protobuf:"varint,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Action transaction output amount. OutputAmount int64 `protobuf:"varint,5,opt,name=output_amount,json=outputAmount,proto3" json:"output_amount,omitempty"` // Action transaction fee. // // Types that are assignable to Fee: // // *AccountModificationFee_FeeNull // *AccountModificationFee_FeeValue Fee isAccountModificationFee_Fee `protobuf_oneof:"fee"` } func (x *AccountModificationFee) Reset() { *x = AccountModificationFee{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AccountModificationFee) String() string { return protoimpl.X.MessageStringOf(x) } func (*AccountModificationFee) ProtoMessage() {} func (x *AccountModificationFee) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[36] 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 AccountModificationFee.ProtoReflect.Descriptor instead. func (*AccountModificationFee) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{36} } func (x *AccountModificationFee) GetAction() string { if x != nil { return x.Action } return "" } func (x *AccountModificationFee) GetTxid() string { if x != nil { return x.Txid } return "" } func (x *AccountModificationFee) GetBlockHeight() int32 { if x != nil { return x.BlockHeight } return 0 } func (x *AccountModificationFee) GetTimestamp() int64 { if x != nil { return x.Timestamp } return 0 } func (x *AccountModificationFee) GetOutputAmount() int64 { if x != nil { return x.OutputAmount } return 0 } func (m *AccountModificationFee) GetFee() isAccountModificationFee_Fee { if m != nil { return m.Fee } return nil } func (x *AccountModificationFee) GetFeeNull() bool { if x, ok := x.GetFee().(*AccountModificationFee_FeeNull); ok { return x.FeeNull } return false } func (x *AccountModificationFee) GetFeeValue() int64 { if x, ok := x.GetFee().(*AccountModificationFee_FeeValue); ok { return x.FeeValue } return 0 } type isAccountModificationFee_Fee interface { isAccountModificationFee_Fee() } type AccountModificationFee_FeeNull struct { // A flag which is true if fee value has not been set, and is otherwise // false. FeeNull bool `protobuf:"varint,6,opt,name=fee_null,json=feeNull,proto3,oneof"` } type AccountModificationFee_FeeValue struct { // Action transaction fee value. FeeValue int64 `protobuf:"varint,7,opt,name=fee_value,json=feeValue,proto3,oneof"` } func (*AccountModificationFee_FeeNull) isAccountModificationFee_Fee() {} func (*AccountModificationFee_FeeValue) isAccountModificationFee_Fee() {} type ListOfAccountModificationFees struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ModificationFees []*AccountModificationFee `protobuf:"bytes,1,rep,name=modification_fees,json=modificationFees,proto3" json:"modification_fees,omitempty"` } func (x *ListOfAccountModificationFees) Reset() { *x = ListOfAccountModificationFees{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListOfAccountModificationFees) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListOfAccountModificationFees) ProtoMessage() {} func (x *ListOfAccountModificationFees) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[37] 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 ListOfAccountModificationFees.ProtoReflect.Descriptor instead. func (*ListOfAccountModificationFees) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{37} } func (x *ListOfAccountModificationFees) GetModificationFees() []*AccountModificationFee { if x != nil { return x.ModificationFees } return nil } type AccountModificationFeesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A map from account key to an ordered list of account modification fees. Accounts map[string]*ListOfAccountModificationFees `protobuf:"bytes,1,rep,name=accounts,proto3" json:"accounts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *AccountModificationFeesResponse) Reset() { *x = AccountModificationFeesResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AccountModificationFeesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*AccountModificationFeesResponse) ProtoMessage() {} func (x *AccountModificationFeesResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[38] 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 AccountModificationFeesResponse.ProtoReflect.Descriptor instead. func (*AccountModificationFeesResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{38} } func (x *AccountModificationFeesResponse) GetAccounts() map[string]*ListOfAccountModificationFees { if x != nil { return x.Accounts } return nil } type AuctionFeeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *AuctionFeeRequest) Reset() { *x = AuctionFeeRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AuctionFeeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*AuctionFeeRequest) ProtoMessage() {} func (x *AuctionFeeRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[39] 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 AuctionFeeRequest.ProtoReflect.Descriptor instead. func (*AuctionFeeRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{39} } type AuctionFeeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The execution fee charged per matched order. ExecutionFee *auctioneerrpc.ExecutionFee `protobuf:"bytes,1,opt,name=execution_fee,json=executionFee,proto3" json:"execution_fee,omitempty"` } func (x *AuctionFeeResponse) Reset() { *x = AuctionFeeResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AuctionFeeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*AuctionFeeResponse) ProtoMessage() {} func (x *AuctionFeeResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[40] 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 AuctionFeeResponse.ProtoReflect.Descriptor instead. func (*AuctionFeeResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{40} } func (x *AuctionFeeResponse) GetExecutionFee() *auctioneerrpc.ExecutionFee { if x != nil { return x.ExecutionFee } return nil } type Lease struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The outpoint of the channel created. ChannelPoint *auctioneerrpc.OutPoint `protobuf:"bytes,1,opt,name=channel_point,json=channelPoint,proto3" json:"channel_point,omitempty"` // The amount, in satoshis, of the channel created. ChannelAmtSat uint64 `protobuf:"varint,2,opt,name=channel_amt_sat,json=channelAmtSat,proto3" json:"channel_amt_sat,omitempty"` // The intended duration, in blocks, of the channel created. ChannelDurationBlocks uint32 `protobuf:"varint,3,opt,name=channel_duration_blocks,json=channelDurationBlocks,proto3" json:"channel_duration_blocks,omitempty"` // The absolute height that this channel lease expires. ChannelLeaseExpiry uint32 `protobuf:"varint,4,opt,name=channel_lease_expiry,json=channelLeaseExpiry,proto3" json:"channel_lease_expiry,omitempty"` // The premium, in satoshis, either paid or received for the offered liquidity. PremiumSat uint64 `protobuf:"varint,5,opt,name=premium_sat,json=premiumSat,proto3" json:"premium_sat,omitempty"` // The execution fee, in satoshis, charged by the auctioneer for the channel // created. ExecutionFeeSat uint64 `protobuf:"varint,6,opt,name=execution_fee_sat,json=executionFeeSat,proto3" json:"execution_fee_sat,omitempty"` // The fee, in satoshis, charged by the auctioneer for the batch execution // transaction that created this lease. ChainFeeSat uint64 `protobuf:"varint,7,opt,name=chain_fee_sat,json=chainFeeSat,proto3" json:"chain_fee_sat,omitempty"` // The actual fixed rate expressed in parts per billionth this lease was // bought/sold at. ClearingRatePrice uint64 `protobuf:"varint,8,opt,name=clearing_rate_price,json=clearingRatePrice,proto3" json:"clearing_rate_price,omitempty"` // The actual fixed rate of the bid/ask, this should always be 'better' than // the clearing_rate_price. OrderFixedRate uint64 `protobuf:"varint,9,opt,name=order_fixed_rate,json=orderFixedRate,proto3" json:"order_fixed_rate,omitempty"` // The order executed that resulted in the channel created. OrderNonce []byte `protobuf:"bytes,10,opt,name=order_nonce,json=orderNonce,proto3" json:"order_nonce,omitempty"` // The unique identifier for the order that was matched with that resulted // in the channel created. MatchedOrderNonce []byte `protobuf:"bytes,16,opt,name=matched_order_nonce,json=matchedOrderNonce,proto3" json:"matched_order_nonce,omitempty"` // Whether this channel was purchased from another trader or not. Purchased bool `protobuf:"varint,11,opt,name=purchased,proto3" json:"purchased,omitempty"` // The pubkey of the node that this channel was bought/sold from. ChannelRemoteNodeKey []byte `protobuf:"bytes,12,opt,name=channel_remote_node_key,json=channelRemoteNodeKey,proto3" json:"channel_remote_node_key,omitempty"` // The tier of the node that this channel was bought/sold from. ChannelNodeTier auctioneerrpc.NodeTier `protobuf:"varint,13,opt,name=channel_node_tier,json=channelNodeTier,proto3,enum=poolrpc.NodeTier" json:"channel_node_tier,omitempty"` // The self channel balance that was pushed to the recipient. SelfChanBalance uint64 `protobuf:"varint,14,opt,name=self_chan_balance,json=selfChanBalance,proto3" json:"self_chan_balance,omitempty"` // Whether the channel was leased as a sidecar channel (bid orders only). SidecarChannel bool `protobuf:"varint,15,opt,name=sidecar_channel,json=sidecarChannel,proto3" json:"sidecar_channel,omitempty"` } func (x *Lease) Reset() { *x = Lease{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Lease) String() string { return protoimpl.X.MessageStringOf(x) } func (*Lease) ProtoMessage() {} func (x *Lease) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[41] 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 Lease.ProtoReflect.Descriptor instead. func (*Lease) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{41} } func (x *Lease) GetChannelPoint() *auctioneerrpc.OutPoint { if x != nil { return x.ChannelPoint } return nil } func (x *Lease) GetChannelAmtSat() uint64 { if x != nil { return x.ChannelAmtSat } return 0 } func (x *Lease) GetChannelDurationBlocks() uint32 { if x != nil { return x.ChannelDurationBlocks } return 0 } func (x *Lease) GetChannelLeaseExpiry() uint32 { if x != nil { return x.ChannelLeaseExpiry } return 0 } func (x *Lease) GetPremiumSat() uint64 { if x != nil { return x.PremiumSat } return 0 } func (x *Lease) GetExecutionFeeSat() uint64 { if x != nil { return x.ExecutionFeeSat } return 0 } func (x *Lease) GetChainFeeSat() uint64 { if x != nil { return x.ChainFeeSat } return 0 } func (x *Lease) GetClearingRatePrice() uint64 { if x != nil { return x.ClearingRatePrice } return 0 } func (x *Lease) GetOrderFixedRate() uint64 { if x != nil { return x.OrderFixedRate } return 0 } func (x *Lease) GetOrderNonce() []byte { if x != nil { return x.OrderNonce } return nil } func (x *Lease) GetMatchedOrderNonce() []byte { if x != nil { return x.MatchedOrderNonce } return nil } func (x *Lease) GetPurchased() bool { if x != nil { return x.Purchased } return false } func (x *Lease) GetChannelRemoteNodeKey() []byte { if x != nil { return x.ChannelRemoteNodeKey } return nil } func (x *Lease) GetChannelNodeTier() auctioneerrpc.NodeTier { if x != nil { return x.ChannelNodeTier } return auctioneerrpc.NodeTier(0) } func (x *Lease) GetSelfChanBalance() uint64 { if x != nil { return x.SelfChanBalance } return 0 } func (x *Lease) GetSidecarChannel() bool { if x != nil { return x.SidecarChannel } return false } type LeasesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // An optional list of batches to retrieve the leases of. If empty, leases // throughout all batches are returned. BatchIds [][]byte `protobuf:"bytes,1,rep,name=batch_ids,json=batchIds,proto3" json:"batch_ids,omitempty"` // An optional list of accounts to retrieve the leases of. If empty, leases // for all accounts are returned. Accounts [][]byte `protobuf:"bytes,2,rep,name=accounts,proto3" json:"accounts,omitempty"` } func (x *LeasesRequest) Reset() { *x = LeasesRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LeasesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*LeasesRequest) ProtoMessage() {} func (x *LeasesRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[42] 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 LeasesRequest.ProtoReflect.Descriptor instead. func (*LeasesRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{42} } func (x *LeasesRequest) GetBatchIds() [][]byte { if x != nil { return x.BatchIds } return nil } func (x *LeasesRequest) GetAccounts() [][]byte { if x != nil { return x.Accounts } return nil } type LeasesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The relevant list of leases purchased or sold within the auction. Leases []*Lease `protobuf:"bytes,1,rep,name=leases,proto3" json:"leases,omitempty"` // The total amount of satoshis earned from the leases returned. TotalAmtEarnedSat uint64 `protobuf:"varint,2,opt,name=total_amt_earned_sat,json=totalAmtEarnedSat,proto3" json:"total_amt_earned_sat,omitempty"` // The total amount of satoshis paid for the leases returned. TotalAmtPaidSat uint64 `protobuf:"varint,3,opt,name=total_amt_paid_sat,json=totalAmtPaidSat,proto3" json:"total_amt_paid_sat,omitempty"` } func (x *LeasesResponse) Reset() { *x = LeasesResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LeasesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*LeasesResponse) ProtoMessage() {} func (x *LeasesResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[43] 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 LeasesResponse.ProtoReflect.Descriptor instead. func (*LeasesResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{43} } func (x *LeasesResponse) GetLeases() []*Lease { if x != nil { return x.Leases } return nil } func (x *LeasesResponse) GetTotalAmtEarnedSat() uint64 { if x != nil { return x.TotalAmtEarnedSat } return 0 } func (x *LeasesResponse) GetTotalAmtPaidSat() uint64 { if x != nil { return x.TotalAmtPaidSat } return 0 } type TokensRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *TokensRequest) Reset() { *x = TokensRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TokensRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*TokensRequest) ProtoMessage() {} func (x *TokensRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[44] 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 TokensRequest.ProtoReflect.Descriptor instead. func (*TokensRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{44} } type TokensResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // * // List of all tokens the daemon knows of, including old/expired tokens. Tokens []*LsatToken `protobuf:"bytes,1,rep,name=tokens,proto3" json:"tokens,omitempty"` } func (x *TokensResponse) Reset() { *x = TokensResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TokensResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*TokensResponse) ProtoMessage() {} func (x *TokensResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[45] 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 TokensResponse.ProtoReflect.Descriptor instead. func (*TokensResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{45} } func (x *TokensResponse) GetTokens() []*LsatToken { if x != nil { return x.Tokens } return nil } type LsatToken struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // * // The base macaroon that was baked by the auth server. BaseMacaroon []byte `protobuf:"bytes,1,opt,name=base_macaroon,json=baseMacaroon,proto3" json:"base_macaroon,omitempty"` // * // The payment hash of the payment that was paid to obtain the token. PaymentHash []byte `protobuf:"bytes,2,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` // * // The preimage of the payment hash, knowledge of this is proof that the // payment has been paid. If the preimage is set to all zeros, this means the // payment is still pending and the token is not yet fully valid. PaymentPreimage []byte `protobuf:"bytes,3,opt,name=payment_preimage,json=paymentPreimage,proto3" json:"payment_preimage,omitempty"` // * // The amount of millisatoshis that was paid to get the token. AmountPaidMsat int64 `protobuf:"varint,4,opt,name=amount_paid_msat,json=amountPaidMsat,proto3" json:"amount_paid_msat,omitempty"` // * // The amount of millisatoshis paid in routing fee to pay for the token. RoutingFeePaidMsat int64 `protobuf:"varint,5,opt,name=routing_fee_paid_msat,json=routingFeePaidMsat,proto3" json:"routing_fee_paid_msat,omitempty"` // * // The creation time of the token as UNIX timestamp in seconds. TimeCreated int64 `protobuf:"varint,6,opt,name=time_created,json=timeCreated,proto3" json:"time_created,omitempty"` // * // Indicates whether the token is expired or still valid. Expired bool `protobuf:"varint,7,opt,name=expired,proto3" json:"expired,omitempty"` // * // Identifying attribute of this token in the store. Currently represents the // file name of the token where it's stored on the file system. StorageName string `protobuf:"bytes,8,opt,name=storage_name,json=storageName,proto3" json:"storage_name,omitempty"` } func (x *LsatToken) Reset() { *x = LsatToken{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LsatToken) String() string { return protoimpl.X.MessageStringOf(x) } func (*LsatToken) ProtoMessage() {} func (x *LsatToken) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[46] 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 LsatToken.ProtoReflect.Descriptor instead. func (*LsatToken) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{46} } func (x *LsatToken) GetBaseMacaroon() []byte { if x != nil { return x.BaseMacaroon } return nil } func (x *LsatToken) GetPaymentHash() []byte { if x != nil { return x.PaymentHash } return nil } func (x *LsatToken) GetPaymentPreimage() []byte { if x != nil { return x.PaymentPreimage } return nil } func (x *LsatToken) GetAmountPaidMsat() int64 { if x != nil { return x.AmountPaidMsat } return 0 } func (x *LsatToken) GetRoutingFeePaidMsat() int64 { if x != nil { return x.RoutingFeePaidMsat } return 0 } func (x *LsatToken) GetTimeCreated() int64 { if x != nil { return x.TimeCreated } return 0 } func (x *LsatToken) GetExpired() bool { if x != nil { return x.Expired } return false } func (x *LsatToken) GetStorageName() string { if x != nil { return x.StorageName } return "" } type LeaseDurationRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *LeaseDurationRequest) Reset() { *x = LeaseDurationRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LeaseDurationRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*LeaseDurationRequest) ProtoMessage() {} func (x *LeaseDurationRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[47] 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 LeaseDurationRequest.ProtoReflect.Descriptor instead. func (*LeaseDurationRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{47} } type LeaseDurationResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Deprecated, use lease_duration_buckets. // // Deprecated: Do not use. LeaseDurations map[uint32]bool `protobuf:"bytes,1,rep,name=lease_durations,json=leaseDurations,proto3" json:"lease_durations,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // The set of lease durations the market is currently accepting and the state // the duration buckets currently are in. LeaseDurationBuckets map[uint32]auctioneerrpc.DurationBucketState `protobuf:"bytes,2,rep,name=lease_duration_buckets,json=leaseDurationBuckets,proto3" json:"lease_duration_buckets,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=poolrpc.DurationBucketState"` } func (x *LeaseDurationResponse) Reset() { *x = LeaseDurationResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LeaseDurationResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*LeaseDurationResponse) ProtoMessage() {} func (x *LeaseDurationResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[48] 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 LeaseDurationResponse.ProtoReflect.Descriptor instead. func (*LeaseDurationResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{48} } // Deprecated: Do not use. func (x *LeaseDurationResponse) GetLeaseDurations() map[uint32]bool { if x != nil { return x.LeaseDurations } return nil } func (x *LeaseDurationResponse) GetLeaseDurationBuckets() map[uint32]auctioneerrpc.DurationBucketState { if x != nil { return x.LeaseDurationBuckets } return nil } type NextBatchInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *NextBatchInfoRequest) Reset() { *x = NextBatchInfoRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NextBatchInfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*NextBatchInfoRequest) ProtoMessage() {} func (x *NextBatchInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[49] 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 NextBatchInfoRequest.ProtoReflect.Descriptor instead. func (*NextBatchInfoRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{49} } type NextBatchInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The confirmation target the auctioneer will use for fee estimation of the // next batch. ConfTarget uint32 `protobuf:"varint,5,opt,name=conf_target,json=confTarget,proto3" json:"conf_target,omitempty"` // The fee rate, in satoshis per kiloweight, estimated by the auctioneer to use // for the next batch. FeeRateSatPerKw uint64 `protobuf:"varint,6,opt,name=fee_rate_sat_per_kw,json=feeRateSatPerKw,proto3" json:"fee_rate_sat_per_kw,omitempty"` // The absolute unix timestamp in seconds at which the auctioneer will attempt // to clear the next batch. ClearTimestamp uint64 `protobuf:"varint,7,opt,name=clear_timestamp,json=clearTimestamp,proto3" json:"clear_timestamp,omitempty"` // The value used by the auctioneer to determine if an account expiry height // needs to be extended after participating in a batch and for how long. AutoRenewExtensionBlocks uint32 `protobuf:"varint,8,opt,name=auto_renew_extension_blocks,json=autoRenewExtensionBlocks,proto3" json:"auto_renew_extension_blocks,omitempty"` } func (x *NextBatchInfoResponse) Reset() { *x = NextBatchInfoResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NextBatchInfoResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*NextBatchInfoResponse) ProtoMessage() {} func (x *NextBatchInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[50] 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 NextBatchInfoResponse.ProtoReflect.Descriptor instead. func (*NextBatchInfoResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{50} } func (x *NextBatchInfoResponse) GetConfTarget() uint32 { if x != nil { return x.ConfTarget } return 0 } func (x *NextBatchInfoResponse) GetFeeRateSatPerKw() uint64 { if x != nil { return x.FeeRateSatPerKw } return 0 } func (x *NextBatchInfoResponse) GetClearTimestamp() uint64 { if x != nil { return x.ClearTimestamp } return 0 } func (x *NextBatchInfoResponse) GetAutoRenewExtensionBlocks() uint32 { if x != nil { return x.AutoRenewExtensionBlocks } return 0 } type NodeRatingRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The target node to obtain ratings information for. NodePubkeys [][]byte `protobuf:"bytes,1,rep,name=node_pubkeys,json=nodePubkeys,proto3" json:"node_pubkeys,omitempty"` } func (x *NodeRatingRequest) Reset() { *x = NodeRatingRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NodeRatingRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*NodeRatingRequest) ProtoMessage() {} func (x *NodeRatingRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[51] 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 NodeRatingRequest.ProtoReflect.Descriptor instead. func (*NodeRatingRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{51} } func (x *NodeRatingRequest) GetNodePubkeys() [][]byte { if x != nil { return x.NodePubkeys } return nil } type NodeRatingResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A series of node ratings for each of the queried nodes. NodeRatings []*auctioneerrpc.NodeRating `protobuf:"bytes,1,rep,name=node_ratings,json=nodeRatings,proto3" json:"node_ratings,omitempty"` } func (x *NodeRatingResponse) Reset() { *x = NodeRatingResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NodeRatingResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*NodeRatingResponse) ProtoMessage() {} func (x *NodeRatingResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[52] 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 NodeRatingResponse.ProtoReflect.Descriptor instead. func (*NodeRatingResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{52} } func (x *NodeRatingResponse) GetNodeRatings() []*auctioneerrpc.NodeRating { if x != nil { return x.NodeRatings } return nil } type GetInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *GetInfoRequest) Reset() { *x = GetInfoRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetInfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetInfoRequest) ProtoMessage() {} func (x *GetInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[53] 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 GetInfoRequest.ProtoReflect.Descriptor instead. func (*GetInfoRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{53} } type GetInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The version of the Pool daemon that is running. Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` // The total number of accounts in the local database. AccountsTotal uint32 `protobuf:"varint,2,opt,name=accounts_total,json=accountsTotal,proto3" json:"accounts_total,omitempty"` // The total number of accounts that are in an active, non-archived state, // including expired accounts. AccountsActive uint32 `protobuf:"varint,3,opt,name=accounts_active,json=accountsActive,proto3" json:"accounts_active,omitempty"` // The total number of accounts that are active but have expired. AccountsActiveExpired uint32 `protobuf:"varint,4,opt,name=accounts_active_expired,json=accountsActiveExpired,proto3" json:"accounts_active_expired,omitempty"` // The total number of accounts that are in an archived/closed state. AccountsArchived uint32 `protobuf:"varint,5,opt,name=accounts_archived,json=accountsArchived,proto3" json:"accounts_archived,omitempty"` // The total number of orders in the local database. OrdersTotal uint32 `protobuf:"varint,6,opt,name=orders_total,json=ordersTotal,proto3" json:"orders_total,omitempty"` // The total number of active/pending orders that are still waiting for // execution. OrdersActive uint32 `protobuf:"varint,7,opt,name=orders_active,json=ordersActive,proto3" json:"orders_active,omitempty"` // The total number of orders that have been archived. OrdersArchived uint32 `protobuf:"varint,8,opt,name=orders_archived,json=ordersArchived,proto3" json:"orders_archived,omitempty"` // The current block height as seen by the connected lnd node. CurrentBlockHeight uint32 `protobuf:"varint,9,opt,name=current_block_height,json=currentBlockHeight,proto3" json:"current_block_height,omitempty"` // The number of batches an account of this node was ever involved in. BatchesInvolved uint32 `protobuf:"varint,10,opt,name=batches_involved,json=batchesInvolved,proto3" json:"batches_involved,omitempty"` // Our lnd node's rating as judged by the auctioneer server. NodeRating *auctioneerrpc.NodeRating `protobuf:"bytes,11,opt,name=node_rating,json=nodeRating,proto3" json:"node_rating,omitempty"` // The number of available LSAT tokens. LsatTokens uint32 `protobuf:"varint,12,opt,name=lsat_tokens,json=lsatTokens,proto3" json:"lsat_tokens,omitempty"` // Indicates whether there is an active subscription connection to the // auctioneer. This will never be true if there is no active account. If there // are active accounts, this value represents the network connection status to // the auctioneer server. SubscribedToAuctioneer bool `protobuf:"varint,13,opt,name=subscribed_to_auctioneer,json=subscribedToAuctioneer,proto3" json:"subscribed_to_auctioneer,omitempty"` // Indicates whether the global `--newnodesonly` command line flag or // `newnodesonly=true` configuration parameter was set on the Pool trader // daemon. NewNodesOnly bool `protobuf:"varint,14,opt,name=new_nodes_only,json=newNodesOnly,proto3" json:"new_nodes_only,omitempty"` // A map of all markets identified by their lease duration and the current // set of statistics such as number of open orders and total units of open // interest. MarketInfo map[uint32]*auctioneerrpc.MarketInfo `protobuf:"bytes,15,rep,name=market_info,json=marketInfo,proto3" json:"market_info,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *GetInfoResponse) Reset() { *x = GetInfoResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetInfoResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetInfoResponse) ProtoMessage() {} func (x *GetInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[54] 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 GetInfoResponse.ProtoReflect.Descriptor instead. func (*GetInfoResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{54} } func (x *GetInfoResponse) GetVersion() string { if x != nil { return x.Version } return "" } func (x *GetInfoResponse) GetAccountsTotal() uint32 { if x != nil { return x.AccountsTotal } return 0 } func (x *GetInfoResponse) GetAccountsActive() uint32 { if x != nil { return x.AccountsActive } return 0 } func (x *GetInfoResponse) GetAccountsActiveExpired() uint32 { if x != nil { return x.AccountsActiveExpired } return 0 } func (x *GetInfoResponse) GetAccountsArchived() uint32 { if x != nil { return x.AccountsArchived } return 0 } func (x *GetInfoResponse) GetOrdersTotal() uint32 { if x != nil { return x.OrdersTotal } return 0 } func (x *GetInfoResponse) GetOrdersActive() uint32 { if x != nil { return x.OrdersActive } return 0 } func (x *GetInfoResponse) GetOrdersArchived() uint32 { if x != nil { return x.OrdersArchived } return 0 } func (x *GetInfoResponse) GetCurrentBlockHeight() uint32 { if x != nil { return x.CurrentBlockHeight } return 0 } func (x *GetInfoResponse) GetBatchesInvolved() uint32 { if x != nil { return x.BatchesInvolved } return 0 } func (x *GetInfoResponse) GetNodeRating() *auctioneerrpc.NodeRating { if x != nil { return x.NodeRating } return nil } func (x *GetInfoResponse) GetLsatTokens() uint32 { if x != nil { return x.LsatTokens } return 0 } func (x *GetInfoResponse) GetSubscribedToAuctioneer() bool { if x != nil { return x.SubscribedToAuctioneer } return false } func (x *GetInfoResponse) GetNewNodesOnly() bool { if x != nil { return x.NewNodesOnly } return false } func (x *GetInfoResponse) GetMarketInfo() map[uint32]*auctioneerrpc.MarketInfo { if x != nil { return x.MarketInfo } return nil } type StopDaemonRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *StopDaemonRequest) Reset() { *x = StopDaemonRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StopDaemonRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*StopDaemonRequest) ProtoMessage() {} func (x *StopDaemonRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[55] 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 StopDaemonRequest.ProtoReflect.Descriptor instead. func (*StopDaemonRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{55} } type StopDaemonResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *StopDaemonResponse) Reset() { *x = StopDaemonResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StopDaemonResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*StopDaemonResponse) ProtoMessage() {} func (x *StopDaemonResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[56] 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 StopDaemonResponse.ProtoReflect.Descriptor instead. func (*StopDaemonResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{56} } type OfferSidecarRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // If false, then only the trader_key, unit, self_chan_balance, and // lease_duration_blocks need to be set in the bid below. Otherwise, the // fields as they're set when submitting a bid need to be filled in. AutoNegotiate bool `protobuf:"varint,1,opt,name=auto_negotiate,json=autoNegotiate,proto3" json:"auto_negotiate,omitempty"` // The bid template that will be used to populate the initial sidecar ticket // as well as auto negotiate the remainig steps of the sidecar channel if // needed. Bid *Bid `protobuf:"bytes,2,opt,name=bid,proto3" json:"bid,omitempty"` } func (x *OfferSidecarRequest) Reset() { *x = OfferSidecarRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OfferSidecarRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*OfferSidecarRequest) ProtoMessage() {} func (x *OfferSidecarRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[57] 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 OfferSidecarRequest.ProtoReflect.Descriptor instead. func (*OfferSidecarRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{57} } func (x *OfferSidecarRequest) GetAutoNegotiate() bool { if x != nil { return x.AutoNegotiate } return false } func (x *OfferSidecarRequest) GetBid() *Bid { if x != nil { return x.Bid } return nil } type SidecarTicket struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The complete sidecar ticket in its string encoded form which is base58 // encoded, has a human readable prefix ('sidecar...') and a checksum built in. // The string encoded version will only be used on the trader side of the API. // All requests to the auctioneer expect the ticket to be in its raw, tlv // encoded byte form. Ticket string `protobuf:"bytes,1,opt,name=ticket,proto3" json:"ticket,omitempty"` } func (x *SidecarTicket) Reset() { *x = SidecarTicket{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SidecarTicket) String() string { return protoimpl.X.MessageStringOf(x) } func (*SidecarTicket) ProtoMessage() {} func (x *SidecarTicket) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[58] 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 SidecarTicket.ProtoReflect.Descriptor instead. func (*SidecarTicket) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{58} } func (x *SidecarTicket) GetTicket() string { if x != nil { return x.Ticket } return "" } type DecodedSidecarTicket struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The unique, pseudorandom identifier of the ticket. Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // The version of the ticket encoding format. Version uint32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` // The state of the ticket. State string `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` // The offered channel capacity in satoshis. OfferCapacity uint64 `protobuf:"varint,4,opt,name=offer_capacity,json=offerCapacity,proto3" json:"offer_capacity,omitempty"` // The offered push amount in satoshis. OfferPushAmount uint64 `protobuf:"varint,5,opt,name=offer_push_amount,json=offerPushAmount,proto3" json:"offer_push_amount,omitempty"` // The offered lease duration in blocks. OfferLeaseDurationBlocks uint32 `protobuf:"varint,6,opt,name=offer_lease_duration_blocks,json=offerLeaseDurationBlocks,proto3" json:"offer_lease_duration_blocks,omitempty"` // The public key the offer was signed with. OfferSignPubkey []byte `protobuf:"bytes,7,opt,name=offer_sign_pubkey,json=offerSignPubkey,proto3" json:"offer_sign_pubkey,omitempty"` // The signature over the offer's digest. OfferSignature []byte `protobuf:"bytes,8,opt,name=offer_signature,json=offerSignature,proto3" json:"offer_signature,omitempty"` // Whether the offer was created with the automatic order creation flag. OfferAuto bool `protobuf:"varint,9,opt,name=offer_auto,json=offerAuto,proto3" json:"offer_auto,omitempty"` // The recipient node's public identity key. RecipientNodePubkey []byte `protobuf:"bytes,10,opt,name=recipient_node_pubkey,json=recipientNodePubkey,proto3" json:"recipient_node_pubkey,omitempty"` // The recipient node's channel multisig public key to be used for the sidecar // channel. RecipientMultisigPubkey []byte `protobuf:"bytes,11,opt,name=recipient_multisig_pubkey,json=recipientMultisigPubkey,proto3" json:"recipient_multisig_pubkey,omitempty"` // The index used when deriving the above multisig pubkey. RecipientMultisigPubkeyIndex uint32 `protobuf:"varint,12,opt,name=recipient_multisig_pubkey_index,json=recipientMultisigPubkeyIndex,proto3" json:"recipient_multisig_pubkey_index,omitempty"` // The nonce of the bid order created for this sidecar ticket. OrderBidNonce []byte `protobuf:"bytes,13,opt,name=order_bid_nonce,json=orderBidNonce,proto3" json:"order_bid_nonce,omitempty"` // The signature over the order's digest, signed with the private key that // corresponds to the offer_sign_pubkey. OrderSignature []byte `protobuf:"bytes,14,opt,name=order_signature,json=orderSignature,proto3" json:"order_signature,omitempty"` // The pending channel ID of the sidecar channel during the execution phase. ExecutionPendingChannelId []byte `protobuf:"bytes,15,opt,name=execution_pending_channel_id,json=executionPendingChannelId,proto3" json:"execution_pending_channel_id,omitempty"` // The original, base58 encoded ticket. EncodedTicket string `protobuf:"bytes,16,opt,name=encoded_ticket,json=encodedTicket,proto3" json:"encoded_ticket,omitempty"` // If true, the channel acceptor for this ticket will expect an unannounced // channel. OfferUnannouncedChannel bool `protobuf:"varint,17,opt,name=offer_unannounced_channel,json=offerUnannouncedChannel,proto3" json:"offer_unannounced_channel,omitempty"` // If true, the channel acceptor for this ticket will expect a zero conf // channel. OfferZeroConfChannel bool `protobuf:"varint,18,opt,name=offer_zero_conf_channel,json=offerZeroConfChannel,proto3" json:"offer_zero_conf_channel,omitempty"` } func (x *DecodedSidecarTicket) Reset() { *x = DecodedSidecarTicket{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DecodedSidecarTicket) String() string { return protoimpl.X.MessageStringOf(x) } func (*DecodedSidecarTicket) ProtoMessage() {} func (x *DecodedSidecarTicket) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[59] 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 DecodedSidecarTicket.ProtoReflect.Descriptor instead. func (*DecodedSidecarTicket) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{59} } func (x *DecodedSidecarTicket) GetId() []byte { if x != nil { return x.Id } return nil } func (x *DecodedSidecarTicket) GetVersion() uint32 { if x != nil { return x.Version } return 0 } func (x *DecodedSidecarTicket) GetState() string { if x != nil { return x.State } return "" } func (x *DecodedSidecarTicket) GetOfferCapacity() uint64 { if x != nil { return x.OfferCapacity } return 0 } func (x *DecodedSidecarTicket) GetOfferPushAmount() uint64 { if x != nil { return x.OfferPushAmount } return 0 } func (x *DecodedSidecarTicket) GetOfferLeaseDurationBlocks() uint32 { if x != nil { return x.OfferLeaseDurationBlocks } return 0 } func (x *DecodedSidecarTicket) GetOfferSignPubkey() []byte { if x != nil { return x.OfferSignPubkey } return nil } func (x *DecodedSidecarTicket) GetOfferSignature() []byte { if x != nil { return x.OfferSignature } return nil } func (x *DecodedSidecarTicket) GetOfferAuto() bool { if x != nil { return x.OfferAuto } return false } func (x *DecodedSidecarTicket) GetRecipientNodePubkey() []byte { if x != nil { return x.RecipientNodePubkey } return nil } func (x *DecodedSidecarTicket) GetRecipientMultisigPubkey() []byte { if x != nil { return x.RecipientMultisigPubkey } return nil } func (x *DecodedSidecarTicket) GetRecipientMultisigPubkeyIndex() uint32 { if x != nil { return x.RecipientMultisigPubkeyIndex } return 0 } func (x *DecodedSidecarTicket) GetOrderBidNonce() []byte { if x != nil { return x.OrderBidNonce } return nil } func (x *DecodedSidecarTicket) GetOrderSignature() []byte { if x != nil { return x.OrderSignature } return nil } func (x *DecodedSidecarTicket) GetExecutionPendingChannelId() []byte { if x != nil { return x.ExecutionPendingChannelId } return nil } func (x *DecodedSidecarTicket) GetEncodedTicket() string { if x != nil { return x.EncodedTicket } return "" } func (x *DecodedSidecarTicket) GetOfferUnannouncedChannel() bool { if x != nil { return x.OfferUnannouncedChannel } return false } func (x *DecodedSidecarTicket) GetOfferZeroConfChannel() bool { if x != nil { return x.OfferZeroConfChannel } return false } type RegisterSidecarRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The sidecar ticket to register and add the node and channel funding // information to. The ticket must be in the state "offered". Ticket string `protobuf:"bytes,1,opt,name=ticket,proto3" json:"ticket,omitempty"` // If this value is True, then the daemon will attempt to finish negotiating // the details of the sidecar channel automatically in the background. The // progress of the ticket can be monitored using the SidecarState RPC. In // addition, if this flag is set, then this method will _block_ until the // sidecar negotiation either finishes or breaks down. AutoNegotiate bool `protobuf:"varint,2,opt,name=auto_negotiate,json=autoNegotiate,proto3" json:"auto_negotiate,omitempty"` } func (x *RegisterSidecarRequest) Reset() { *x = RegisterSidecarRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RegisterSidecarRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*RegisterSidecarRequest) ProtoMessage() {} func (x *RegisterSidecarRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[60] 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 RegisterSidecarRequest.ProtoReflect.Descriptor instead. func (*RegisterSidecarRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{60} } func (x *RegisterSidecarRequest) GetTicket() string { if x != nil { return x.Ticket } return "" } func (x *RegisterSidecarRequest) GetAutoNegotiate() bool { if x != nil { return x.AutoNegotiate } return false } type ExpectSidecarChannelRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The sidecar ticket to expect an incoming channel for. The ticket must be in // the state "ordered". Ticket string `protobuf:"bytes,1,opt,name=ticket,proto3" json:"ticket,omitempty"` } func (x *ExpectSidecarChannelRequest) Reset() { *x = ExpectSidecarChannelRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExpectSidecarChannelRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExpectSidecarChannelRequest) ProtoMessage() {} func (x *ExpectSidecarChannelRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[61] 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 ExpectSidecarChannelRequest.ProtoReflect.Descriptor instead. func (*ExpectSidecarChannelRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{61} } func (x *ExpectSidecarChannelRequest) GetTicket() string { if x != nil { return x.Ticket } return "" } type ExpectSidecarChannelResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ExpectSidecarChannelResponse) Reset() { *x = ExpectSidecarChannelResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExpectSidecarChannelResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExpectSidecarChannelResponse) ProtoMessage() {} func (x *ExpectSidecarChannelResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[62] 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 ExpectSidecarChannelResponse.ProtoReflect.Descriptor instead. func (*ExpectSidecarChannelResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{62} } type ListSidecarsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The optional sidecar ID to filter for. If set, the result should either be // a single ticket or no ticket in most cases. But because the ID is just 8 // bytes and is randomly generated, there could be collisions, especially since // tickets can also be crafted by a malicious party and given to any node. // That's why the offer's public key is also used as an identifying element // since that cannot easily be forged without also producing a valid signature. // So an attacker cannot overwrite a ticket a node offered by themselves // offering a ticket with the same ID and tricking the victim into registering // that. Long story sort, there could be multiple tickets with the same ID but // different offer public keys, which is why those keys should be checked as // well. SidecarId []byte `protobuf:"bytes,1,opt,name=sidecar_id,json=sidecarId,proto3" json:"sidecar_id,omitempty"` } func (x *ListSidecarsRequest) Reset() { *x = ListSidecarsRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListSidecarsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListSidecarsRequest) ProtoMessage() {} func (x *ListSidecarsRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[63] 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 ListSidecarsRequest.ProtoReflect.Descriptor instead. func (*ListSidecarsRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{63} } func (x *ListSidecarsRequest) GetSidecarId() []byte { if x != nil { return x.SidecarId } return nil } type ListSidecarsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Tickets []*DecodedSidecarTicket `protobuf:"bytes,1,rep,name=tickets,proto3" json:"tickets,omitempty"` } func (x *ListSidecarsResponse) Reset() { *x = ListSidecarsResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListSidecarsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListSidecarsResponse) ProtoMessage() {} func (x *ListSidecarsResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[64] 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 ListSidecarsResponse.ProtoReflect.Descriptor instead. func (*ListSidecarsResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{64} } func (x *ListSidecarsResponse) GetTickets() []*DecodedSidecarTicket { if x != nil { return x.Tickets } return nil } type CancelSidecarRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SidecarId []byte `protobuf:"bytes,1,opt,name=sidecar_id,json=sidecarId,proto3" json:"sidecar_id,omitempty"` } func (x *CancelSidecarRequest) Reset() { *x = CancelSidecarRequest{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CancelSidecarRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CancelSidecarRequest) ProtoMessage() {} func (x *CancelSidecarRequest) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[65] 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 CancelSidecarRequest.ProtoReflect.Descriptor instead. func (*CancelSidecarRequest) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{65} } func (x *CancelSidecarRequest) GetSidecarId() []byte { if x != nil { return x.SidecarId } return nil } type CancelSidecarResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CancelSidecarResponse) Reset() { *x = CancelSidecarResponse{} if protoimpl.UnsafeEnabled { mi := &file_trader_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CancelSidecarResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CancelSidecarResponse) ProtoMessage() {} func (x *CancelSidecarResponse) ProtoReflect() protoreflect.Message { mi := &file_trader_proto_msgTypes[66] 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 CancelSidecarResponse.ProtoReflect.Descriptor instead. func (*CancelSidecarResponse) Descriptor() ([]byte, []int) { return file_trader_proto_rawDescGZIP(), []int{66} } var File_trader_proto protoreflect.FileDescriptor var file_trader_proto_rawDesc = []byte{ 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x1a, 0x1e, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcd, 0x02, 0x0a, 0x12, 0x49, 0x6e, 0x69, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x29, 0x0a, 0x0f, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x29, 0x0a, 0x0f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x21, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x0f, 0x66, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x53, 0x61, 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x66, 0x65, 0x65, 0x73, 0x22, 0x65, 0x0a, 0x13, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x66, 0x65, 0x65, 0x73, 0x22, 0x77, 0x0a, 0x14, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x19, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x53, 0x61, 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x46, 0x65, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x36, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0x44, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0x3f, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x61, 0x74, 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, 0x22, 0x84, 0x01, 0x0a, 0x0d, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x57, 0x69, 0x74, 0x68, 0x46, 0x65, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0f, 0x66, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x53, 0x61, 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x42, 0x06, 0x0a, 0x04, 0x66, 0x65, 0x65, 0x73, 0x22, 0x43, 0x0a, 0x16, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x6d, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x46, 0x65, 0x65, 0x12, 0x29, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x22, 0xc8, 0x01, 0x0a, 0x13, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x40, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x57, 0x69, 0x74, 0x68, 0x46, 0x65, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x57, 0x69, 0x74, 0x68, 0x46, 0x65, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x6d, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x46, 0x65, 0x65, 0x48, 0x00, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x35, 0x0a, 0x14, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x78, 0x69, 0x64, 0x22, 0xb2, 0x02, 0x0a, 0x16, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x13, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x66, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x53, 0x61, 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x12, 0x29, 0x0a, 0x0f, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, 0x29, 0x0a, 0x0f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, 0x38, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x22, 0x6a, 0x0a, 0x17, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x54, 0x78, 0x69, 0x64, 0x22, 0xa5, 0x02, 0x0a, 0x15, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x61, 0x74, 0x12, 0x2c, 0x0a, 0x13, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x66, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x53, 0x61, 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x12, 0x29, 0x0a, 0x0f, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, 0x29, 0x0a, 0x0f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, 0x38, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x22, 0x67, 0x0a, 0x16, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x69, 0x64, 0x22, 0x86, 0x02, 0x0a, 0x13, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x0f, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, 0x29, 0x0a, 0x0f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, 0x2c, 0x0a, 0x13, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x66, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x53, 0x61, 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x12, 0x38, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x22, 0x65, 0x0a, 0x14, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x69, 0x64, 0x22, 0x64, 0x0a, 0x15, 0x42, 0x75, 0x6d, 0x70, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x13, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x66, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x53, 0x61, 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x22, 0x18, 0x0a, 0x16, 0x42, 0x75, 0x6d, 0x70, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc8, 0x02, 0x0a, 0x07, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x54, 0x78, 0x69, 0x64, 0x12, 0x31, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x81, 0x01, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x03, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x73, 0x6b, 0x48, 0x00, 0x52, 0x03, 0x61, 0x73, 0x6b, 0x12, 0x20, 0x0a, 0x03, 0x62, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x64, 0x48, 0x00, 0x52, 0x03, 0x62, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0xc8, 0x01, 0x0a, 0x13, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x12, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x4e, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0x58, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x73, 0x6b, 0x52, 0x04, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x20, 0x0a, 0x04, 0x62, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x04, 0x62, 0x69, 0x64, 0x73, 0x22, 0x35, 0x0a, 0x12, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcc, 0x05, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x61, 0x74, 0x65, 0x46, 0x69, 0x78, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6d, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x61, 0x6d, 0x74, 0x12, 0x3e, 0x0a, 0x1d, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x74, 0x63, 0x68, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x53, 0x61, 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x5f, 0x75, 0x6e, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x55, 0x6e, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x61, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x12, 0x2b, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x3c, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x73, 0x12, 0x2f, 0x0a, 0x14, 0x6e, 0x6f, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x22, 0xe4, 0x02, 0x0a, 0x03, 0x42, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x69, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x69, 0x65, 0x72, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x69, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x73, 0x65, 0x6c, 0x66, 0x43, 0x68, 0x61, 0x6e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x2a, 0x0a, 0x11, 0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x7a, 0x65, 0x72, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0xc5, 0x02, 0x0a, 0x03, 0x41, 0x73, 0x6b, 0x12, 0x28, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x62, 0x0a, 0x18, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x17, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x62, 0x0a, 0x18, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x17, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x22, 0xe0, 0x01, 0x0a, 0x11, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6d, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x61, 0x6d, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x61, 0x74, 0x65, 0x46, 0x69, 0x78, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x3e, 0x0a, 0x1d, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x74, 0x63, 0x68, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x53, 0x61, 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x22, 0xf8, 0x01, 0x0a, 0x12, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x53, 0x61, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x72, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x72, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x17, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x53, 0x61, 0x74, 0x12, 0x36, 0x0a, 0x18, 0x77, 0x6f, 0x72, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x77, 0x6f, 0x72, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x53, 0x61, 0x74, 0x22, 0xc2, 0x01, 0x0a, 0x0a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x12, 0x3a, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x46, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x22, 0xcb, 0x01, 0x0a, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x46, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x0d, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0c, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x9c, 0x03, 0x0a, 0x16, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x75, 0x6c, 0x6c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x48, 0x69, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x31, 0x0a, 0x14, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x70, 0x6f, 0x73, 0x74, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x48, 0x74, 0x74, 0x70, 0x70, 0x6f, 0x73, 0x74, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x74, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x74, 0x6c, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x6c, 0x73, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x54, 0x6c, 0x73, 0x70, 0x61, 0x74, 0x68, 0x22, 0x4f, 0x0a, 0x17, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0x20, 0x0a, 0x1e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xed, 0x01, 0x0a, 0x16, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x65, 0x65, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x66, 0x65, 0x65, 0x4e, 0x75, 0x6c, 0x6c, 0x12, 0x1d, 0x0a, 0x09, 0x66, 0x65, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x08, 0x66, 0x65, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x05, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x22, 0x6d, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x11, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x73, 0x22, 0xda, 0x01, 0x0a, 0x1f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x1a, 0x63, 0x0a, 0x0d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x13, 0x0a, 0x11, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x50, 0x0a, 0x12, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x52, 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x22, 0xd6, 0x05, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x61, 0x6d, 0x74, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6d, 0x74, 0x53, 0x61, 0x74, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x53, 0x61, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x53, 0x61, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x53, 0x61, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x46, 0x69, 0x78, 0x65, 0x64, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x17, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x3d, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x69, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x69, 0x65, 0x72, 0x52, 0x0f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x69, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x73, 0x65, 0x6c, 0x66, 0x43, 0x68, 0x61, 0x6e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x48, 0x0a, 0x0d, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0x96, 0x01, 0x0a, 0x0e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x14, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x6d, 0x74, 0x5f, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x74, 0x45, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x53, 0x61, 0x74, 0x12, 0x2b, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x6d, 0x74, 0x5f, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x74, 0x50, 0x61, 0x69, 0x64, 0x53, 0x61, 0x74, 0x22, 0x0f, 0x0a, 0x0d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3c, 0x0a, 0x0e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x73, 0x61, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0xbb, 0x02, 0x0a, 0x09, 0x4c, 0x73, 0x61, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x61, 0x72, 0x6f, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x63, 0x61, 0x72, 0x6f, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x64, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x31, 0x0a, 0x15, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x50, 0x61, 0x69, 0x64, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x92, 0x03, 0x0a, 0x15, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x0f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0e, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x6e, 0x0a, 0x16, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x1a, 0x41, 0x0a, 0x13, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x65, 0x0a, 0x19, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x16, 0x0a, 0x14, 0x4e, 0x65, 0x78, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xce, 0x01, 0x0a, 0x15, 0x4e, 0x65, 0x78, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2c, 0x0a, 0x13, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x66, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x53, 0x61, 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3d, 0x0a, 0x1b, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x22, 0x36, 0x0a, 0x11, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x73, 0x22, 0x4c, 0x0a, 0x12, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x10, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x84, 0x06, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x49, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x73, 0x61, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x73, 0x61, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x54, 0x6f, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x52, 0x0a, 0x0f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x13, 0x0a, 0x11, 0x53, 0x74, 0x6f, 0x70, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x70, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x0a, 0x13, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x03, 0x62, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x03, 0x62, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x0d, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x22, 0xbf, 0x06, 0x0a, 0x14, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x50, 0x75, 0x73, 0x68, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x1b, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x41, 0x75, 0x74, 0x6f, 0x12, 0x32, 0x0a, 0x15, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x13, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x3a, 0x0a, 0x19, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x17, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x45, 0x0a, 0x1f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1c, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x69, 0x64, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x69, 0x64, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x19, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x3a, 0x0a, 0x19, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x35, 0x0a, 0x17, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5a, 0x65, 0x72, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x57, 0x0a, 0x16, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x22, 0x35, 0x0a, 0x1b, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x1e, 0x0a, 0x1c, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x49, 0x64, 0x22, 0x4f, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x07, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x22, 0x35, 0x0a, 0x14, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x49, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x6c, 0x0a, 0x0e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x4e, 0x44, 0x5f, 0x44, 0x45, 0x50, 0x45, 0x4e, 0x44, 0x45, 0x4e, 0x54, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x41, 0x50, 0x52, 0x4f, 0x4f, 0x54, 0x10, 0x02, 0x2a, 0x93, 0x01, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x4f, 0x50, 0x45, 0x4e, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x45, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x59, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x41, 0x54, 0x43, 0x48, 0x10, 0x07, 0x2a, 0x50, 0x0a, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x45, 0x50, 0x41, 0x52, 0x45, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x49, 0x47, 0x4e, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x10, 0x04, 0x2a, 0xbe, 0x01, 0x0a, 0x11, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x49, 0x53, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x41, 0x54, 0x45, 0x52, 0x41, 0x4c, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x04, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x46, 0x55, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x32, 0x93, 0x12, 0x0a, 0x06, 0x54, 0x72, 0x61, 0x64, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x53, 0x74, 0x6f, 0x70, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x12, 0x1a, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x49, 0x6e, 0x69, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x0f, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x42, 0x75, 0x6d, 0x70, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x65, 0x65, 0x12, 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x75, 0x6d, 0x70, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x75, 0x6d, 0x70, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x17, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x73, 0x12, 0x27, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x12, 0x1a, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0d, 0x4e, 0x65, 0x78, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4c, 0x73, 0x61, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x12, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x4a, 0x0a, 0x0f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x12, 0x1f, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x63, 0x0a, 0x14, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x24, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x13, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x16, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x4b, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x12, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0d, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x12, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x27, 0x5a, 0x25, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x69, 0x6e, 0x67, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x6f, 0x6f, 0x6c, 0x2f, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_trader_proto_rawDescOnce sync.Once file_trader_proto_rawDescData = file_trader_proto_rawDesc ) func file_trader_proto_rawDescGZIP() []byte { file_trader_proto_rawDescOnce.Do(func() { file_trader_proto_rawDescData = protoimpl.X.CompressGZIP(file_trader_proto_rawDescData) }) return file_trader_proto_rawDescData } var file_trader_proto_enumTypes = make([]protoimpl.EnumInfo, 4) var file_trader_proto_msgTypes = make([]protoimpl.MessageInfo, 71) var file_trader_proto_goTypes = []interface{}{ (AccountVersion)(0), // 0: poolrpc.AccountVersion (AccountState)(0), // 1: poolrpc.AccountState (MatchState)(0), // 2: poolrpc.MatchState (MatchRejectReason)(0), // 3: poolrpc.MatchRejectReason (*InitAccountRequest)(nil), // 4: poolrpc.InitAccountRequest (*QuoteAccountRequest)(nil), // 5: poolrpc.QuoteAccountRequest (*QuoteAccountResponse)(nil), // 6: poolrpc.QuoteAccountResponse (*ListAccountsRequest)(nil), // 7: poolrpc.ListAccountsRequest (*ListAccountsResponse)(nil), // 8: poolrpc.ListAccountsResponse (*Output)(nil), // 9: poolrpc.Output (*OutputWithFee)(nil), // 10: poolrpc.OutputWithFee (*OutputsWithImplicitFee)(nil), // 11: poolrpc.OutputsWithImplicitFee (*CloseAccountRequest)(nil), // 12: poolrpc.CloseAccountRequest (*CloseAccountResponse)(nil), // 13: poolrpc.CloseAccountResponse (*WithdrawAccountRequest)(nil), // 14: poolrpc.WithdrawAccountRequest (*WithdrawAccountResponse)(nil), // 15: poolrpc.WithdrawAccountResponse (*DepositAccountRequest)(nil), // 16: poolrpc.DepositAccountRequest (*DepositAccountResponse)(nil), // 17: poolrpc.DepositAccountResponse (*RenewAccountRequest)(nil), // 18: poolrpc.RenewAccountRequest (*RenewAccountResponse)(nil), // 19: poolrpc.RenewAccountResponse (*BumpAccountFeeRequest)(nil), // 20: poolrpc.BumpAccountFeeRequest (*BumpAccountFeeResponse)(nil), // 21: poolrpc.BumpAccountFeeResponse (*Account)(nil), // 22: poolrpc.Account (*SubmitOrderRequest)(nil), // 23: poolrpc.SubmitOrderRequest (*SubmitOrderResponse)(nil), // 24: poolrpc.SubmitOrderResponse (*ListOrdersRequest)(nil), // 25: poolrpc.ListOrdersRequest (*ListOrdersResponse)(nil), // 26: poolrpc.ListOrdersResponse (*CancelOrderRequest)(nil), // 27: poolrpc.CancelOrderRequest (*CancelOrderResponse)(nil), // 28: poolrpc.CancelOrderResponse (*Order)(nil), // 29: poolrpc.Order (*Bid)(nil), // 30: poolrpc.Bid (*Ask)(nil), // 31: poolrpc.Ask (*QuoteOrderRequest)(nil), // 32: poolrpc.QuoteOrderRequest (*QuoteOrderResponse)(nil), // 33: poolrpc.QuoteOrderResponse (*OrderEvent)(nil), // 34: poolrpc.OrderEvent (*UpdatedEvent)(nil), // 35: poolrpc.UpdatedEvent (*MatchEvent)(nil), // 36: poolrpc.MatchEvent (*RecoverAccountsRequest)(nil), // 37: poolrpc.RecoverAccountsRequest (*RecoverAccountsResponse)(nil), // 38: poolrpc.RecoverAccountsResponse (*AccountModificationFeesRequest)(nil), // 39: poolrpc.AccountModificationFeesRequest (*AccountModificationFee)(nil), // 40: poolrpc.AccountModificationFee (*ListOfAccountModificationFees)(nil), // 41: poolrpc.ListOfAccountModificationFees (*AccountModificationFeesResponse)(nil), // 42: poolrpc.AccountModificationFeesResponse (*AuctionFeeRequest)(nil), // 43: poolrpc.AuctionFeeRequest (*AuctionFeeResponse)(nil), // 44: poolrpc.AuctionFeeResponse (*Lease)(nil), // 45: poolrpc.Lease (*LeasesRequest)(nil), // 46: poolrpc.LeasesRequest (*LeasesResponse)(nil), // 47: poolrpc.LeasesResponse (*TokensRequest)(nil), // 48: poolrpc.TokensRequest (*TokensResponse)(nil), // 49: poolrpc.TokensResponse (*LsatToken)(nil), // 50: poolrpc.LsatToken (*LeaseDurationRequest)(nil), // 51: poolrpc.LeaseDurationRequest (*LeaseDurationResponse)(nil), // 52: poolrpc.LeaseDurationResponse (*NextBatchInfoRequest)(nil), // 53: poolrpc.NextBatchInfoRequest (*NextBatchInfoResponse)(nil), // 54: poolrpc.NextBatchInfoResponse (*NodeRatingRequest)(nil), // 55: poolrpc.NodeRatingRequest (*NodeRatingResponse)(nil), // 56: poolrpc.NodeRatingResponse (*GetInfoRequest)(nil), // 57: poolrpc.GetInfoRequest (*GetInfoResponse)(nil), // 58: poolrpc.GetInfoResponse (*StopDaemonRequest)(nil), // 59: poolrpc.StopDaemonRequest (*StopDaemonResponse)(nil), // 60: poolrpc.StopDaemonResponse (*OfferSidecarRequest)(nil), // 61: poolrpc.OfferSidecarRequest (*SidecarTicket)(nil), // 62: poolrpc.SidecarTicket (*DecodedSidecarTicket)(nil), // 63: poolrpc.DecodedSidecarTicket (*RegisterSidecarRequest)(nil), // 64: poolrpc.RegisterSidecarRequest (*ExpectSidecarChannelRequest)(nil), // 65: poolrpc.ExpectSidecarChannelRequest (*ExpectSidecarChannelResponse)(nil), // 66: poolrpc.ExpectSidecarChannelResponse (*ListSidecarsRequest)(nil), // 67: poolrpc.ListSidecarsRequest (*ListSidecarsResponse)(nil), // 68: poolrpc.ListSidecarsResponse (*CancelSidecarRequest)(nil), // 69: poolrpc.CancelSidecarRequest (*CancelSidecarResponse)(nil), // 70: poolrpc.CancelSidecarResponse nil, // 71: poolrpc.AccountModificationFeesResponse.AccountsEntry nil, // 72: poolrpc.LeaseDurationResponse.LeaseDurationsEntry nil, // 73: poolrpc.LeaseDurationResponse.LeaseDurationBucketsEntry nil, // 74: poolrpc.GetInfoResponse.MarketInfoEntry (*auctioneerrpc.OutPoint)(nil), // 75: poolrpc.OutPoint (*auctioneerrpc.InvalidOrder)(nil), // 76: poolrpc.InvalidOrder (auctioneerrpc.OrderState)(0), // 77: poolrpc.OrderState (auctioneerrpc.OrderChannelType)(0), // 78: poolrpc.OrderChannelType (auctioneerrpc.AuctionType)(0), // 79: poolrpc.AuctionType (auctioneerrpc.NodeTier)(0), // 80: poolrpc.NodeTier (auctioneerrpc.ChannelAnnouncementConstraints)(0), // 81: poolrpc.ChannelAnnouncementConstraints (auctioneerrpc.ChannelConfirmationConstraints)(0), // 82: poolrpc.ChannelConfirmationConstraints (*auctioneerrpc.ExecutionFee)(nil), // 83: poolrpc.ExecutionFee (*auctioneerrpc.NodeRating)(nil), // 84: poolrpc.NodeRating (auctioneerrpc.DurationBucketState)(0), // 85: poolrpc.DurationBucketState (*auctioneerrpc.MarketInfo)(nil), // 86: poolrpc.MarketInfo (*auctioneerrpc.BatchSnapshotRequest)(nil), // 87: poolrpc.BatchSnapshotRequest (*auctioneerrpc.BatchSnapshotsRequest)(nil), // 88: poolrpc.BatchSnapshotsRequest (*auctioneerrpc.BatchSnapshotResponse)(nil), // 89: poolrpc.BatchSnapshotResponse (*auctioneerrpc.BatchSnapshotsResponse)(nil), // 90: poolrpc.BatchSnapshotsResponse } var file_trader_proto_depIdxs = []int32{ 0, // 0: poolrpc.InitAccountRequest.version:type_name -> poolrpc.AccountVersion 22, // 1: poolrpc.ListAccountsResponse.accounts:type_name -> poolrpc.Account 9, // 2: poolrpc.OutputsWithImplicitFee.outputs:type_name -> poolrpc.Output 10, // 3: poolrpc.CloseAccountRequest.output_with_fee:type_name -> poolrpc.OutputWithFee 11, // 4: poolrpc.CloseAccountRequest.outputs:type_name -> poolrpc.OutputsWithImplicitFee 9, // 5: poolrpc.WithdrawAccountRequest.outputs:type_name -> poolrpc.Output 0, // 6: poolrpc.WithdrawAccountRequest.new_version:type_name -> poolrpc.AccountVersion 22, // 7: poolrpc.WithdrawAccountResponse.account:type_name -> poolrpc.Account 0, // 8: poolrpc.DepositAccountRequest.new_version:type_name -> poolrpc.AccountVersion 22, // 9: poolrpc.DepositAccountResponse.account:type_name -> poolrpc.Account 0, // 10: poolrpc.RenewAccountRequest.new_version:type_name -> poolrpc.AccountVersion 22, // 11: poolrpc.RenewAccountResponse.account:type_name -> poolrpc.Account 75, // 12: poolrpc.Account.outpoint:type_name -> poolrpc.OutPoint 1, // 13: poolrpc.Account.state:type_name -> poolrpc.AccountState 0, // 14: poolrpc.Account.version:type_name -> poolrpc.AccountVersion 31, // 15: poolrpc.SubmitOrderRequest.ask:type_name -> poolrpc.Ask 30, // 16: poolrpc.SubmitOrderRequest.bid:type_name -> poolrpc.Bid 76, // 17: poolrpc.SubmitOrderResponse.invalid_order:type_name -> poolrpc.InvalidOrder 31, // 18: poolrpc.ListOrdersResponse.asks:type_name -> poolrpc.Ask 30, // 19: poolrpc.ListOrdersResponse.bids:type_name -> poolrpc.Bid 77, // 20: poolrpc.Order.state:type_name -> poolrpc.OrderState 34, // 21: poolrpc.Order.events:type_name -> poolrpc.OrderEvent 78, // 22: poolrpc.Order.channel_type:type_name -> poolrpc.OrderChannelType 79, // 23: poolrpc.Order.auction_type:type_name -> poolrpc.AuctionType 29, // 24: poolrpc.Bid.details:type_name -> poolrpc.Order 80, // 25: poolrpc.Bid.min_node_tier:type_name -> poolrpc.NodeTier 29, // 26: poolrpc.Ask.details:type_name -> poolrpc.Order 81, // 27: poolrpc.Ask.announcement_constraints:type_name -> poolrpc.ChannelAnnouncementConstraints 82, // 28: poolrpc.Ask.confirmation_constraints:type_name -> poolrpc.ChannelConfirmationConstraints 35, // 29: poolrpc.OrderEvent.state_change:type_name -> poolrpc.UpdatedEvent 36, // 30: poolrpc.OrderEvent.matched:type_name -> poolrpc.MatchEvent 77, // 31: poolrpc.UpdatedEvent.previous_state:type_name -> poolrpc.OrderState 77, // 32: poolrpc.UpdatedEvent.new_state:type_name -> poolrpc.OrderState 2, // 33: poolrpc.MatchEvent.match_state:type_name -> poolrpc.MatchState 3, // 34: poolrpc.MatchEvent.reject_reason:type_name -> poolrpc.MatchRejectReason 40, // 35: poolrpc.ListOfAccountModificationFees.modification_fees:type_name -> poolrpc.AccountModificationFee 71, // 36: poolrpc.AccountModificationFeesResponse.accounts:type_name -> poolrpc.AccountModificationFeesResponse.AccountsEntry 83, // 37: poolrpc.AuctionFeeResponse.execution_fee:type_name -> poolrpc.ExecutionFee 75, // 38: poolrpc.Lease.channel_point:type_name -> poolrpc.OutPoint 80, // 39: poolrpc.Lease.channel_node_tier:type_name -> poolrpc.NodeTier 45, // 40: poolrpc.LeasesResponse.leases:type_name -> poolrpc.Lease 50, // 41: poolrpc.TokensResponse.tokens:type_name -> poolrpc.LsatToken 72, // 42: poolrpc.LeaseDurationResponse.lease_durations:type_name -> poolrpc.LeaseDurationResponse.LeaseDurationsEntry 73, // 43: poolrpc.LeaseDurationResponse.lease_duration_buckets:type_name -> poolrpc.LeaseDurationResponse.LeaseDurationBucketsEntry 84, // 44: poolrpc.NodeRatingResponse.node_ratings:type_name -> poolrpc.NodeRating 84, // 45: poolrpc.GetInfoResponse.node_rating:type_name -> poolrpc.NodeRating 74, // 46: poolrpc.GetInfoResponse.market_info:type_name -> poolrpc.GetInfoResponse.MarketInfoEntry 30, // 47: poolrpc.OfferSidecarRequest.bid:type_name -> poolrpc.Bid 63, // 48: poolrpc.ListSidecarsResponse.tickets:type_name -> poolrpc.DecodedSidecarTicket 41, // 49: poolrpc.AccountModificationFeesResponse.AccountsEntry.value:type_name -> poolrpc.ListOfAccountModificationFees 85, // 50: poolrpc.LeaseDurationResponse.LeaseDurationBucketsEntry.value:type_name -> poolrpc.DurationBucketState 86, // 51: poolrpc.GetInfoResponse.MarketInfoEntry.value:type_name -> poolrpc.MarketInfo 57, // 52: poolrpc.Trader.GetInfo:input_type -> poolrpc.GetInfoRequest 59, // 53: poolrpc.Trader.StopDaemon:input_type -> poolrpc.StopDaemonRequest 5, // 54: poolrpc.Trader.QuoteAccount:input_type -> poolrpc.QuoteAccountRequest 4, // 55: poolrpc.Trader.InitAccount:input_type -> poolrpc.InitAccountRequest 7, // 56: poolrpc.Trader.ListAccounts:input_type -> poolrpc.ListAccountsRequest 12, // 57: poolrpc.Trader.CloseAccount:input_type -> poolrpc.CloseAccountRequest 14, // 58: poolrpc.Trader.WithdrawAccount:input_type -> poolrpc.WithdrawAccountRequest 16, // 59: poolrpc.Trader.DepositAccount:input_type -> poolrpc.DepositAccountRequest 18, // 60: poolrpc.Trader.RenewAccount:input_type -> poolrpc.RenewAccountRequest 20, // 61: poolrpc.Trader.BumpAccountFee:input_type -> poolrpc.BumpAccountFeeRequest 37, // 62: poolrpc.Trader.RecoverAccounts:input_type -> poolrpc.RecoverAccountsRequest 39, // 63: poolrpc.Trader.AccountModificationFees:input_type -> poolrpc.AccountModificationFeesRequest 23, // 64: poolrpc.Trader.SubmitOrder:input_type -> poolrpc.SubmitOrderRequest 25, // 65: poolrpc.Trader.ListOrders:input_type -> poolrpc.ListOrdersRequest 27, // 66: poolrpc.Trader.CancelOrder:input_type -> poolrpc.CancelOrderRequest 32, // 67: poolrpc.Trader.QuoteOrder:input_type -> poolrpc.QuoteOrderRequest 43, // 68: poolrpc.Trader.AuctionFee:input_type -> poolrpc.AuctionFeeRequest 51, // 69: poolrpc.Trader.LeaseDurations:input_type -> poolrpc.LeaseDurationRequest 53, // 70: poolrpc.Trader.NextBatchInfo:input_type -> poolrpc.NextBatchInfoRequest 87, // 71: poolrpc.Trader.BatchSnapshot:input_type -> poolrpc.BatchSnapshotRequest 48, // 72: poolrpc.Trader.GetLsatTokens:input_type -> poolrpc.TokensRequest 46, // 73: poolrpc.Trader.Leases:input_type -> poolrpc.LeasesRequest 55, // 74: poolrpc.Trader.NodeRatings:input_type -> poolrpc.NodeRatingRequest 88, // 75: poolrpc.Trader.BatchSnapshots:input_type -> poolrpc.BatchSnapshotsRequest 61, // 76: poolrpc.Trader.OfferSidecar:input_type -> poolrpc.OfferSidecarRequest 64, // 77: poolrpc.Trader.RegisterSidecar:input_type -> poolrpc.RegisterSidecarRequest 65, // 78: poolrpc.Trader.ExpectSidecarChannel:input_type -> poolrpc.ExpectSidecarChannelRequest 62, // 79: poolrpc.Trader.DecodeSidecarTicket:input_type -> poolrpc.SidecarTicket 67, // 80: poolrpc.Trader.ListSidecars:input_type -> poolrpc.ListSidecarsRequest 69, // 81: poolrpc.Trader.CancelSidecar:input_type -> poolrpc.CancelSidecarRequest 58, // 82: poolrpc.Trader.GetInfo:output_type -> poolrpc.GetInfoResponse 60, // 83: poolrpc.Trader.StopDaemon:output_type -> poolrpc.StopDaemonResponse 6, // 84: poolrpc.Trader.QuoteAccount:output_type -> poolrpc.QuoteAccountResponse 22, // 85: poolrpc.Trader.InitAccount:output_type -> poolrpc.Account 8, // 86: poolrpc.Trader.ListAccounts:output_type -> poolrpc.ListAccountsResponse 13, // 87: poolrpc.Trader.CloseAccount:output_type -> poolrpc.CloseAccountResponse 15, // 88: poolrpc.Trader.WithdrawAccount:output_type -> poolrpc.WithdrawAccountResponse 17, // 89: poolrpc.Trader.DepositAccount:output_type -> poolrpc.DepositAccountResponse 19, // 90: poolrpc.Trader.RenewAccount:output_type -> poolrpc.RenewAccountResponse 21, // 91: poolrpc.Trader.BumpAccountFee:output_type -> poolrpc.BumpAccountFeeResponse 38, // 92: poolrpc.Trader.RecoverAccounts:output_type -> poolrpc.RecoverAccountsResponse 42, // 93: poolrpc.Trader.AccountModificationFees:output_type -> poolrpc.AccountModificationFeesResponse 24, // 94: poolrpc.Trader.SubmitOrder:output_type -> poolrpc.SubmitOrderResponse 26, // 95: poolrpc.Trader.ListOrders:output_type -> poolrpc.ListOrdersResponse 28, // 96: poolrpc.Trader.CancelOrder:output_type -> poolrpc.CancelOrderResponse 33, // 97: poolrpc.Trader.QuoteOrder:output_type -> poolrpc.QuoteOrderResponse 44, // 98: poolrpc.Trader.AuctionFee:output_type -> poolrpc.AuctionFeeResponse 52, // 99: poolrpc.Trader.LeaseDurations:output_type -> poolrpc.LeaseDurationResponse 54, // 100: poolrpc.Trader.NextBatchInfo:output_type -> poolrpc.NextBatchInfoResponse 89, // 101: poolrpc.Trader.BatchSnapshot:output_type -> poolrpc.BatchSnapshotResponse 49, // 102: poolrpc.Trader.GetLsatTokens:output_type -> poolrpc.TokensResponse 47, // 103: poolrpc.Trader.Leases:output_type -> poolrpc.LeasesResponse 56, // 104: poolrpc.Trader.NodeRatings:output_type -> poolrpc.NodeRatingResponse 90, // 105: poolrpc.Trader.BatchSnapshots:output_type -> poolrpc.BatchSnapshotsResponse 62, // 106: poolrpc.Trader.OfferSidecar:output_type -> poolrpc.SidecarTicket 62, // 107: poolrpc.Trader.RegisterSidecar:output_type -> poolrpc.SidecarTicket 66, // 108: poolrpc.Trader.ExpectSidecarChannel:output_type -> poolrpc.ExpectSidecarChannelResponse 63, // 109: poolrpc.Trader.DecodeSidecarTicket:output_type -> poolrpc.DecodedSidecarTicket 68, // 110: poolrpc.Trader.ListSidecars:output_type -> poolrpc.ListSidecarsResponse 70, // 111: poolrpc.Trader.CancelSidecar:output_type -> poolrpc.CancelSidecarResponse 82, // [82:112] is the sub-list for method output_type 52, // [52:82] is the sub-list for method input_type 52, // [52:52] is the sub-list for extension type_name 52, // [52:52] is the sub-list for extension extendee 0, // [0:52] is the sub-list for field type_name } func init() { file_trader_proto_init() } func file_trader_proto_init() { if File_trader_proto != nil { return } if !protoimpl.UnsafeEnabled { file_trader_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InitAccountRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QuoteAccountRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QuoteAccountResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListAccountsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListAccountsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Output); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OutputWithFee); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OutputsWithImplicitFee); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CloseAccountRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CloseAccountResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WithdrawAccountRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WithdrawAccountResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DepositAccountRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DepositAccountResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RenewAccountRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RenewAccountResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BumpAccountFeeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BumpAccountFeeResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Account); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubmitOrderRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubmitOrderResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListOrdersRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListOrdersResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CancelOrderRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CancelOrderResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Order); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bid); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Ask); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QuoteOrderRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QuoteOrderResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrderEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdatedEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MatchEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RecoverAccountsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RecoverAccountsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountModificationFeesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountModificationFee); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListOfAccountModificationFees); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountModificationFeesResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AuctionFeeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AuctionFeeResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Lease); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LeasesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LeasesResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TokensRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TokensResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LsatToken); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LeaseDurationRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LeaseDurationResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NextBatchInfoRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NextBatchInfoResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeRatingRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeRatingResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetInfoRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetInfoResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StopDaemonRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StopDaemonResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OfferSidecarRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SidecarTicket); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DecodedSidecarTicket); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RegisterSidecarRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExpectSidecarChannelRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExpectSidecarChannelResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListSidecarsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListSidecarsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CancelSidecarRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trader_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CancelSidecarResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_trader_proto_msgTypes[0].OneofWrappers = []interface{}{ (*InitAccountRequest_AbsoluteHeight)(nil), (*InitAccountRequest_RelativeHeight)(nil), (*InitAccountRequest_ConfTarget)(nil), (*InitAccountRequest_FeeRateSatPerKw)(nil), } file_trader_proto_msgTypes[1].OneofWrappers = []interface{}{ (*QuoteAccountRequest_ConfTarget)(nil), } file_trader_proto_msgTypes[6].OneofWrappers = []interface{}{ (*OutputWithFee_ConfTarget)(nil), (*OutputWithFee_FeeRateSatPerKw)(nil), } file_trader_proto_msgTypes[8].OneofWrappers = []interface{}{ (*CloseAccountRequest_OutputWithFee)(nil), (*CloseAccountRequest_Outputs)(nil), } file_trader_proto_msgTypes[10].OneofWrappers = []interface{}{ (*WithdrawAccountRequest_AbsoluteExpiry)(nil), (*WithdrawAccountRequest_RelativeExpiry)(nil), } file_trader_proto_msgTypes[12].OneofWrappers = []interface{}{ (*DepositAccountRequest_AbsoluteExpiry)(nil), (*DepositAccountRequest_RelativeExpiry)(nil), } file_trader_proto_msgTypes[14].OneofWrappers = []interface{}{ (*RenewAccountRequest_AbsoluteExpiry)(nil), (*RenewAccountRequest_RelativeExpiry)(nil), } file_trader_proto_msgTypes[19].OneofWrappers = []interface{}{ (*SubmitOrderRequest_Ask)(nil), (*SubmitOrderRequest_Bid)(nil), } file_trader_proto_msgTypes[20].OneofWrappers = []interface{}{ (*SubmitOrderResponse_InvalidOrder)(nil), (*SubmitOrderResponse_AcceptedOrderNonce)(nil), } file_trader_proto_msgTypes[30].OneofWrappers = []interface{}{ (*OrderEvent_StateChange)(nil), (*OrderEvent_Matched)(nil), } file_trader_proto_msgTypes[36].OneofWrappers = []interface{}{ (*AccountModificationFee_FeeNull)(nil), (*AccountModificationFee_FeeValue)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_trader_proto_rawDesc, NumEnums: 4, NumMessages: 71, NumExtensions: 0, NumServices: 1, }, GoTypes: file_trader_proto_goTypes, DependencyIndexes: file_trader_proto_depIdxs, EnumInfos: file_trader_proto_enumTypes, MessageInfos: file_trader_proto_msgTypes, }.Build() File_trader_proto = out.File file_trader_proto_rawDesc = nil file_trader_proto_goTypes = nil file_trader_proto_depIdxs = nil }