diff --git a/gen/bitcoin/bitcoind/v1alpha/bitcoin.pb.go b/gen/bitcoin/bitcoind/v1alpha/bitcoin.pb.go index 4cc69aa..d916f04 100644 --- a/gen/bitcoin/bitcoind/v1alpha/bitcoin.pb.go +++ b/gen/bitcoin/bitcoind/v1alpha/bitcoin.pb.go @@ -175,7 +175,7 @@ func (x EstimateSmartFeeRequest_EstimateMode) Number() protoreflect.EnumNumber { // Deprecated: Use EstimateSmartFeeRequest_EstimateMode.Descriptor instead. func (EstimateSmartFeeRequest_EstimateMode) EnumDescriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{18, 0} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{20, 0} } type GetBlockRequest_Verbosity int32 @@ -236,7 +236,7 @@ func (x GetBlockRequest_Verbosity) Number() protoreflect.EnumNumber { // Deprecated: Use GetBlockRequest_Verbosity.Descriptor instead. func (GetBlockRequest_Verbosity) EnumDescriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{27, 0} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{29, 0} } type GetBlockchainInfoRequest struct { @@ -1572,6 +1572,137 @@ func (x *SendResponse) GetTx() *RawTransaction { return nil } +type SendToAddressRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The bitcoin address to send to. + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + // The amount in BTC to send. eg 0.1 + Amount float64 `protobuf:"fixed64,2,opt,name=amount,proto3" json:"amount,omitempty"` + // A comment used to store what the transaction is for. Not part of the transaction, just kept in your wallet. + Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"` + // A comment to store the name of the person or organization to which you're sending the transaction. Not part of the transaction, just kept in your wallet. + CommentTo string `protobuf:"bytes,4,opt,name=comment_to,json=commentTo,proto3" json:"comment_to,omitempty"` + // Only needs to be set if dealing with multiple wallets at the same time. + Wallet string `protobuf:"bytes,5,opt,name=wallet,proto3" json:"wallet,omitempty"` +} + +func (x *SendToAddressRequest) Reset() { + *x = SendToAddressRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendToAddressRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendToAddressRequest) ProtoMessage() {} + +func (x *SendToAddressRequest) ProtoReflect() protoreflect.Message { + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_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 SendToAddressRequest.ProtoReflect.Descriptor instead. +func (*SendToAddressRequest) Descriptor() ([]byte, []int) { + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{18} +} + +func (x *SendToAddressRequest) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *SendToAddressRequest) GetAmount() float64 { + if x != nil { + return x.Amount + } + return 0 +} + +func (x *SendToAddressRequest) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *SendToAddressRequest) GetCommentTo() string { + if x != nil { + return x.CommentTo + } + return "" +} + +func (x *SendToAddressRequest) GetWallet() string { + if x != nil { + return x.Wallet + } + return "" +} + +type SendToAddressResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Txid string `protobuf:"bytes,1,opt,name=txid,proto3" json:"txid,omitempty"` +} + +func (x *SendToAddressResponse) Reset() { + *x = SendToAddressResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendToAddressResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendToAddressResponse) ProtoMessage() {} + +func (x *SendToAddressResponse) ProtoReflect() protoreflect.Message { + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_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 SendToAddressResponse.ProtoReflect.Descriptor instead. +func (*SendToAddressResponse) Descriptor() ([]byte, []int) { + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{19} +} + +func (x *SendToAddressResponse) GetTxid() string { + if x != nil { + return x.Txid + } + return "" +} + type EstimateSmartFeeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1584,7 +1715,7 @@ type EstimateSmartFeeRequest struct { func (x *EstimateSmartFeeRequest) Reset() { *x = EstimateSmartFeeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[18] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1597,7 +1728,7 @@ func (x *EstimateSmartFeeRequest) String() string { func (*EstimateSmartFeeRequest) ProtoMessage() {} func (x *EstimateSmartFeeRequest) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[18] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1610,7 +1741,7 @@ func (x *EstimateSmartFeeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EstimateSmartFeeRequest.ProtoReflect.Descriptor instead. func (*EstimateSmartFeeRequest) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{18} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{20} } func (x *EstimateSmartFeeRequest) GetConfTarget() int64 { @@ -1643,7 +1774,7 @@ type EstimateSmartFeeResponse struct { func (x *EstimateSmartFeeResponse) Reset() { *x = EstimateSmartFeeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[19] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1656,7 +1787,7 @@ func (x *EstimateSmartFeeResponse) String() string { func (*EstimateSmartFeeResponse) ProtoMessage() {} func (x *EstimateSmartFeeResponse) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[19] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1669,7 +1800,7 @@ func (x *EstimateSmartFeeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use EstimateSmartFeeResponse.ProtoReflect.Descriptor instead. func (*EstimateSmartFeeResponse) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{19} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{21} } func (x *EstimateSmartFeeResponse) GetFeeRate() float64 { @@ -1704,7 +1835,7 @@ type DecodeRawTransactionRequest struct { func (x *DecodeRawTransactionRequest) Reset() { *x = DecodeRawTransactionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[20] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1717,7 +1848,7 @@ func (x *DecodeRawTransactionRequest) String() string { func (*DecodeRawTransactionRequest) ProtoMessage() {} func (x *DecodeRawTransactionRequest) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[20] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1730,7 +1861,7 @@ func (x *DecodeRawTransactionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DecodeRawTransactionRequest.ProtoReflect.Descriptor instead. func (*DecodeRawTransactionRequest) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{20} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{22} } func (x *DecodeRawTransactionRequest) GetTx() *RawTransaction { @@ -1754,7 +1885,7 @@ type RawTransaction struct { func (x *RawTransaction) Reset() { *x = RawTransaction{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[21] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1767,7 +1898,7 @@ func (x *RawTransaction) String() string { func (*RawTransaction) ProtoMessage() {} func (x *RawTransaction) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[21] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1780,7 +1911,7 @@ func (x *RawTransaction) ProtoReflect() protoreflect.Message { // Deprecated: Use RawTransaction.ProtoReflect.Descriptor instead. func (*RawTransaction) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{21} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{23} } func (x *RawTransaction) GetData() []byte { @@ -1820,7 +1951,7 @@ type DecodeRawTransactionResponse struct { func (x *DecodeRawTransactionResponse) Reset() { *x = DecodeRawTransactionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[22] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1833,7 +1964,7 @@ func (x *DecodeRawTransactionResponse) String() string { func (*DecodeRawTransactionResponse) ProtoMessage() {} func (x *DecodeRawTransactionResponse) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[22] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1846,7 +1977,7 @@ func (x *DecodeRawTransactionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DecodeRawTransactionResponse.ProtoReflect.Descriptor instead. func (*DecodeRawTransactionResponse) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{22} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{24} } func (x *DecodeRawTransactionResponse) GetTxid() string { @@ -1926,7 +2057,7 @@ type ImportDescriptorsRequest struct { func (x *ImportDescriptorsRequest) Reset() { *x = ImportDescriptorsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[23] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1939,7 +2070,7 @@ func (x *ImportDescriptorsRequest) String() string { func (*ImportDescriptorsRequest) ProtoMessage() {} func (x *ImportDescriptorsRequest) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[23] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1952,7 +2083,7 @@ func (x *ImportDescriptorsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportDescriptorsRequest.ProtoReflect.Descriptor instead. func (*ImportDescriptorsRequest) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{23} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{25} } func (x *ImportDescriptorsRequest) GetWallet() string { @@ -1980,7 +2111,7 @@ type ImportDescriptorsResponse struct { func (x *ImportDescriptorsResponse) Reset() { *x = ImportDescriptorsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[24] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1993,7 +2124,7 @@ func (x *ImportDescriptorsResponse) String() string { func (*ImportDescriptorsResponse) ProtoMessage() {} func (x *ImportDescriptorsResponse) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[24] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2006,7 +2137,7 @@ func (x *ImportDescriptorsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportDescriptorsResponse.ProtoReflect.Descriptor instead. func (*ImportDescriptorsResponse) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{24} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{26} } func (x *ImportDescriptorsResponse) GetResponses() []*ImportDescriptorsResponse_Response { @@ -2027,7 +2158,7 @@ type GetDescriptorInfoRequest struct { func (x *GetDescriptorInfoRequest) Reset() { *x = GetDescriptorInfoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[25] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2040,7 +2171,7 @@ func (x *GetDescriptorInfoRequest) String() string { func (*GetDescriptorInfoRequest) ProtoMessage() {} func (x *GetDescriptorInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[25] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2053,7 +2184,7 @@ func (x *GetDescriptorInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetDescriptorInfoRequest.ProtoReflect.Descriptor instead. func (*GetDescriptorInfoRequest) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{25} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{27} } func (x *GetDescriptorInfoRequest) GetDescriptor_() string { @@ -2080,7 +2211,7 @@ type GetDescriptorInfoResponse struct { func (x *GetDescriptorInfoResponse) Reset() { *x = GetDescriptorInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[26] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2093,7 +2224,7 @@ func (x *GetDescriptorInfoResponse) String() string { func (*GetDescriptorInfoResponse) ProtoMessage() {} func (x *GetDescriptorInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[26] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2106,7 +2237,7 @@ func (x *GetDescriptorInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetDescriptorInfoResponse.ProtoReflect.Descriptor instead. func (*GetDescriptorInfoResponse) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{26} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{28} } func (x *GetDescriptorInfoResponse) GetDescriptor_() string { @@ -2156,7 +2287,7 @@ type GetBlockRequest struct { func (x *GetBlockRequest) Reset() { *x = GetBlockRequest{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[27] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2169,7 +2300,7 @@ func (x *GetBlockRequest) String() string { func (*GetBlockRequest) ProtoMessage() {} func (x *GetBlockRequest) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[27] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2182,7 +2313,7 @@ func (x *GetBlockRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBlockRequest.ProtoReflect.Descriptor instead. func (*GetBlockRequest) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{27} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{29} } func (x *GetBlockRequest) GetHash() string { @@ -2229,7 +2360,7 @@ type GetBlockResponse struct { func (x *GetBlockResponse) Reset() { *x = GetBlockResponse{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[28] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2242,7 +2373,7 @@ func (x *GetBlockResponse) String() string { func (*GetBlockResponse) ProtoMessage() {} func (x *GetBlockResponse) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[28] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2255,7 +2386,7 @@ func (x *GetBlockResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBlockResponse.ProtoReflect.Descriptor instead. func (*GetBlockResponse) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{28} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{30} } func (x *GetBlockResponse) GetHex() string { @@ -2390,7 +2521,7 @@ type BumpFeeRequest struct { func (x *BumpFeeRequest) Reset() { *x = BumpFeeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[29] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2403,7 +2534,7 @@ func (x *BumpFeeRequest) String() string { func (*BumpFeeRequest) ProtoMessage() {} func (x *BumpFeeRequest) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[29] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2416,7 +2547,7 @@ func (x *BumpFeeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BumpFeeRequest.ProtoReflect.Descriptor instead. func (*BumpFeeRequest) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{29} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{31} } func (x *BumpFeeRequest) GetWallet() string { @@ -2447,7 +2578,7 @@ type BumpFeeResponse struct { func (x *BumpFeeResponse) Reset() { *x = BumpFeeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[30] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2460,7 +2591,7 @@ func (x *BumpFeeResponse) String() string { func (*BumpFeeResponse) ProtoMessage() {} func (x *BumpFeeResponse) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[30] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2473,7 +2604,7 @@ func (x *BumpFeeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BumpFeeResponse.ProtoReflect.Descriptor instead. func (*BumpFeeResponse) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{30} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{32} } func (x *BumpFeeResponse) GetTxid() string { @@ -2517,7 +2648,7 @@ type ListSinceBlockRequest struct { func (x *ListSinceBlockRequest) Reset() { *x = ListSinceBlockRequest{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[31] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2530,7 +2661,7 @@ func (x *ListSinceBlockRequest) String() string { func (*ListSinceBlockRequest) ProtoMessage() {} func (x *ListSinceBlockRequest) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[31] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2543,7 +2674,7 @@ func (x *ListSinceBlockRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListSinceBlockRequest.ProtoReflect.Descriptor instead. func (*ListSinceBlockRequest) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{31} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{33} } func (x *ListSinceBlockRequest) GetWallet() string { @@ -2571,7 +2702,7 @@ type ListSinceBlockResponse struct { func (x *ListSinceBlockResponse) Reset() { *x = ListSinceBlockResponse{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[32] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2584,7 +2715,7 @@ func (x *ListSinceBlockResponse) String() string { func (*ListSinceBlockResponse) ProtoMessage() {} func (x *ListSinceBlockResponse) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[32] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2597,7 +2728,7 @@ func (x *ListSinceBlockResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListSinceBlockResponse.ProtoReflect.Descriptor instead. func (*ListSinceBlockResponse) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{32} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{34} } func (x *ListSinceBlockResponse) GetTransactions() []*GetTransactionResponse { @@ -2618,7 +2749,7 @@ type GetRawMempoolRequest struct { func (x *GetRawMempoolRequest) Reset() { *x = GetRawMempoolRequest{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[33] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2631,7 +2762,7 @@ func (x *GetRawMempoolRequest) String() string { func (*GetRawMempoolRequest) ProtoMessage() {} func (x *GetRawMempoolRequest) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[33] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2644,7 +2775,7 @@ func (x *GetRawMempoolRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRawMempoolRequest.ProtoReflect.Descriptor instead. func (*GetRawMempoolRequest) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{33} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{35} } func (x *GetRawMempoolRequest) GetVerbose() bool { @@ -2679,7 +2810,7 @@ type MempoolEntry struct { func (x *MempoolEntry) Reset() { *x = MempoolEntry{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[34] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2692,7 +2823,7 @@ func (x *MempoolEntry) String() string { func (*MempoolEntry) ProtoMessage() {} func (x *MempoolEntry) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[34] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2705,7 +2836,7 @@ func (x *MempoolEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use MempoolEntry.ProtoReflect.Descriptor instead. func (*MempoolEntry) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{34} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{36} } func (x *MempoolEntry) GetVirtualSize() uint32 { @@ -2813,7 +2944,7 @@ type GetRawMempoolResponse struct { func (x *GetRawMempoolResponse) Reset() { *x = GetRawMempoolResponse{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[35] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2826,7 +2957,7 @@ func (x *GetRawMempoolResponse) String() string { func (*GetRawMempoolResponse) ProtoMessage() {} func (x *GetRawMempoolResponse) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[35] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2839,7 +2970,7 @@ func (x *GetRawMempoolResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRawMempoolResponse.ProtoReflect.Descriptor instead. func (*GetRawMempoolResponse) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{35} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{37} } func (x *GetRawMempoolResponse) GetTxids() []string { @@ -2867,7 +2998,7 @@ type GetBlockHashRequest struct { func (x *GetBlockHashRequest) Reset() { *x = GetBlockHashRequest{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[36] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2880,7 +3011,7 @@ func (x *GetBlockHashRequest) String() string { func (*GetBlockHashRequest) ProtoMessage() {} func (x *GetBlockHashRequest) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[36] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2893,7 +3024,7 @@ func (x *GetBlockHashRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBlockHashRequest.ProtoReflect.Descriptor instead. func (*GetBlockHashRequest) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{36} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{38} } func (x *GetBlockHashRequest) GetHeight() uint32 { @@ -2914,7 +3045,7 @@ type GetBlockHashResponse struct { func (x *GetBlockHashResponse) Reset() { *x = GetBlockHashResponse{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[37] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2927,7 +3058,7 @@ func (x *GetBlockHashResponse) String() string { func (*GetBlockHashResponse) ProtoMessage() {} func (x *GetBlockHashResponse) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[37] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2940,7 +3071,7 @@ func (x *GetBlockHashResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBlockHashResponse.ProtoReflect.Descriptor instead. func (*GetBlockHashResponse) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{37} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{39} } func (x *GetBlockHashResponse) GetHash() string { @@ -2964,7 +3095,7 @@ type ListTransactionsRequest struct { func (x *ListTransactionsRequest) Reset() { *x = ListTransactionsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[38] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2977,7 +3108,7 @@ func (x *ListTransactionsRequest) String() string { func (*ListTransactionsRequest) ProtoMessage() {} func (x *ListTransactionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[38] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2990,7 +3121,7 @@ func (x *ListTransactionsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListTransactionsRequest.ProtoReflect.Descriptor instead. func (*ListTransactionsRequest) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{38} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{40} } func (x *ListTransactionsRequest) GetWallet() string { @@ -3025,7 +3156,7 @@ type ListTransactionsResponse struct { func (x *ListTransactionsResponse) Reset() { *x = ListTransactionsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[39] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3038,7 +3169,7 @@ func (x *ListTransactionsResponse) String() string { func (*ListTransactionsResponse) ProtoMessage() {} func (x *ListTransactionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[39] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3051,7 +3182,7 @@ func (x *ListTransactionsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListTransactionsResponse.ProtoReflect.Descriptor instead. func (*ListTransactionsResponse) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{39} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{41} } func (x *ListTransactionsResponse) GetTransactions() []*GetTransactionResponse { @@ -3080,7 +3211,7 @@ type GetBalancesResponse_Mine struct { func (x *GetBalancesResponse_Mine) Reset() { *x = GetBalancesResponse_Mine{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[40] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3093,7 +3224,7 @@ func (x *GetBalancesResponse_Mine) String() string { func (*GetBalancesResponse_Mine) ProtoMessage() {} func (x *GetBalancesResponse_Mine) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[40] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3154,7 +3285,7 @@ type GetBalancesResponse_Watchonly struct { func (x *GetBalancesResponse_Watchonly) Reset() { *x = GetBalancesResponse_Watchonly{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[41] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3167,7 +3298,7 @@ func (x *GetBalancesResponse_Watchonly) String() string { func (*GetBalancesResponse_Watchonly) ProtoMessage() {} func (x *GetBalancesResponse_Watchonly) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[41] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3222,7 +3353,7 @@ type GetTransactionResponse_Details struct { func (x *GetTransactionResponse_Details) Reset() { *x = GetTransactionResponse_Details{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[42] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3235,7 +3366,7 @@ func (x *GetTransactionResponse_Details) String() string { func (*GetTransactionResponse_Details) ProtoMessage() {} func (x *GetTransactionResponse_Details) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[42] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3315,7 +3446,7 @@ type ImportDescriptorsRequest_Request struct { func (x *ImportDescriptorsRequest_Request) Reset() { *x = ImportDescriptorsRequest_Request{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[44] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3328,7 +3459,7 @@ func (x *ImportDescriptorsRequest_Request) String() string { func (*ImportDescriptorsRequest_Request) ProtoMessage() {} func (x *ImportDescriptorsRequest_Request) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[44] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3341,7 +3472,7 @@ func (x *ImportDescriptorsRequest_Request) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportDescriptorsRequest_Request.ProtoReflect.Descriptor instead. func (*ImportDescriptorsRequest_Request) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{23, 0} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{25, 0} } func (x *ImportDescriptorsRequest_Request) GetDescriptor_() string { @@ -3405,7 +3536,7 @@ type ImportDescriptorsResponse_Error struct { func (x *ImportDescriptorsResponse_Error) Reset() { *x = ImportDescriptorsResponse_Error{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[45] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3418,7 +3549,7 @@ func (x *ImportDescriptorsResponse_Error) String() string { func (*ImportDescriptorsResponse_Error) ProtoMessage() {} func (x *ImportDescriptorsResponse_Error) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[45] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3431,7 +3562,7 @@ func (x *ImportDescriptorsResponse_Error) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportDescriptorsResponse_Error.ProtoReflect.Descriptor instead. func (*ImportDescriptorsResponse_Error) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{24, 0} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{26, 0} } func (x *ImportDescriptorsResponse_Error) GetCode() int32 { @@ -3461,7 +3592,7 @@ type ImportDescriptorsResponse_Response struct { func (x *ImportDescriptorsResponse_Response) Reset() { *x = ImportDescriptorsResponse_Response{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[46] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3474,7 +3605,7 @@ func (x *ImportDescriptorsResponse_Response) String() string { func (*ImportDescriptorsResponse_Response) ProtoMessage() {} func (x *ImportDescriptorsResponse_Response) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[46] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3487,7 +3618,7 @@ func (x *ImportDescriptorsResponse_Response) ProtoReflect() protoreflect.Message // Deprecated: Use ImportDescriptorsResponse_Response.ProtoReflect.Descriptor instead. func (*ImportDescriptorsResponse_Response) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{24, 1} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{26, 1} } func (x *ImportDescriptorsResponse_Response) GetSuccess() bool { @@ -3526,7 +3657,7 @@ type MempoolEntry_Fees struct { func (x *MempoolEntry_Fees) Reset() { *x = MempoolEntry_Fees{} if protoimpl.UnsafeEnabled { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[47] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3539,7 +3670,7 @@ func (x *MempoolEntry_Fees) String() string { func (*MempoolEntry_Fees) ProtoMessage() {} func (x *MempoolEntry_Fees) ProtoReflect() protoreflect.Message { - mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[47] + mi := &file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3552,7 +3683,7 @@ func (x *MempoolEntry_Fees) ProtoReflect() protoreflect.Message { // Deprecated: Use MempoolEntry_Fees.ProtoReflect.Descriptor instead. func (*MempoolEntry_Fees) Descriptor() ([]byte, []int) { - return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{34, 0} + return file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP(), []int{36, 0} } func (x *MempoolEntry_Fees) GetBase() float64 { @@ -3842,410 +3973,430 @@ var file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDesc = []byte{ 0x38, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x52, 0x61, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x74, 0x78, 0x22, 0x8c, 0x02, 0x0a, 0x17, 0x45, 0x73, - 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x46, 0x65, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x63, 0x0a, 0x0d, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, - 0x74, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, - 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, - 0x65, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x65, - 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x6b, 0x0a, 0x0c, 0x45, - 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x45, - 0x53, 0x54, 0x49, 0x4d, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x53, - 0x54, 0x49, 0x4d, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x43, 0x4f, 0x4e, - 0x4f, 0x4d, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x53, 0x54, 0x49, - 0x4d, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x52, - 0x56, 0x41, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x22, 0x65, 0x0a, 0x18, 0x45, 0x73, 0x74, 0x69, - 0x6d, 0x61, 0x74, 0x65, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x46, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x66, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x22, - 0x57, 0x0a, 0x1b, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x77, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, - 0x0a, 0x02, 0x74, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x69, 0x74, - 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x52, 0x61, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x74, 0x78, 0x22, 0x36, 0x0a, 0x0e, 0x52, 0x61, 0x77, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, - 0x0a, 0x03, 0x68, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x68, 0x65, 0x78, - 0x22, 0xc0, 0x02, 0x0a, 0x1c, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x77, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x74, 0x78, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x21, 0x0a, - 0x0c, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x37, - 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, - 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, - 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x74, 0x78, 0x22, 0x99, 0x01, 0x0a, 0x14, 0x53, 0x65, + 0x6e, 0x64, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 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, 0x16, 0x0a, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1d, + 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x12, 0x16, 0x0a, + 0x06, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, + 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x22, 0x2b, 0x0a, 0x15, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x78, + 0x69, 0x64, 0x22, 0x8c, 0x02, 0x0a, 0x17, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x53, + 0x6d, 0x61, 0x72, 0x74, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, + 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, + 0x63, 0x0a, 0x0d, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, + 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x2e, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x46, + 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, + 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, + 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x6b, 0x0a, 0x0c, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, + 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x53, 0x54, 0x49, 0x4d, 0x41, 0x54, 0x45, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x53, 0x54, 0x49, 0x4d, 0x41, 0x54, 0x45, 0x5f, + 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x43, 0x4f, 0x4e, 0x4f, 0x4d, 0x49, 0x43, 0x41, 0x4c, 0x10, + 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x53, 0x54, 0x49, 0x4d, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x52, 0x56, 0x41, 0x54, 0x49, 0x56, 0x45, 0x10, + 0x02, 0x22, 0x65, 0x0a, 0x18, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x53, 0x6d, 0x61, + 0x72, 0x74, 0x46, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, + 0x08, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x07, 0x66, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x22, 0x57, 0x0a, 0x1b, 0x44, 0x65, 0x63, 0x6f, + 0x64, 0x65, 0x52, 0x61, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, + 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x52, + 0x61, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x74, + 0x78, 0x22, 0x36, 0x0a, 0x0e, 0x52, 0x61, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x68, 0x65, 0x78, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x68, 0x65, 0x78, 0x22, 0xc0, 0x02, 0x0a, 0x1c, 0x44, 0x65, + 0x63, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, + 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, + 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x76, 0x69, + 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, + 0x6f, 0x63, 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, + 0x6f, 0x63, 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, + 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, + 0x12, 0x3a, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, + 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x22, 0xf8, 0x02, 0x0a, + 0x18, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x61, 0x6c, + 0x6c, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x61, 0x6c, 0x6c, 0x65, + 0x74, 0x12, 0x56, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, + 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, + 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x1a, 0xeb, 0x01, 0x0a, 0x07, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x1f, 0x0a, + 0x0b, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1b, + 0x0a, 0x09, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0xc2, 0x02, 0x0a, 0x19, 0x49, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x73, 0x22, 0xf8, 0x02, 0x0a, 0x18, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x56, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x62, 0x69, 0x74, + 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x73, 0x1a, 0x35, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x91, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, + 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4f, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, - 0x1a, 0xeb, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x61, 0x6e, 0x67, 0x65, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x65, - 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x45, - 0x6e, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0xc2, - 0x02, 0x0a, 0x19, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x09, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x3c, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, - 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, - 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x1a, 0x35, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, - 0x91, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, - 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, - 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, - 0x67, 0x73, 0x12, 0x4f, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x39, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, - 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6d, 0x70, - 0x6f, 0x72, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x22, 0x3a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x22, - 0xbd, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, - 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, - 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x73, 0x6f, 0x6c, 0x76, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x53, 0x6f, 0x6c, - 0x76, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0e, 0x68, 0x61, 0x73, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x22, - 0x95, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x51, 0x0a, 0x09, 0x76, 0x65, 0x72, 0x62, 0x6f, - 0x73, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x62, 0x69, 0x74, - 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x52, - 0x09, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x22, 0x9a, 0x01, 0x0a, 0x09, 0x56, - 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x12, 0x19, 0x0a, 0x15, 0x56, 0x45, 0x52, 0x42, - 0x4f, 0x53, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x56, 0x45, 0x52, 0x42, 0x4f, 0x53, 0x49, 0x54, 0x59, - 0x5f, 0x52, 0x41, 0x57, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x56, - 0x45, 0x52, 0x42, 0x4f, 0x53, 0x49, 0x54, 0x59, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x49, - 0x4e, 0x46, 0x4f, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x56, 0x45, 0x52, 0x42, 0x4f, 0x53, 0x49, - 0x54, 0x59, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x54, 0x58, 0x5f, 0x49, 0x4e, 0x46, 0x4f, - 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x56, 0x45, 0x52, 0x42, 0x4f, 0x53, 0x49, 0x54, 0x59, 0x5f, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x52, 0x45, 0x56, 0x4f, 0x55, 0x54, - 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x04, 0x22, 0x8b, 0x04, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x68, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x68, 0x65, 0x78, 0x12, 0x12, - 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, - 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, - 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x6d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x2e, 0x0a, 0x04, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6e, 0x6f, 0x6e, - 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x69, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x62, 0x69, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, - 0x75, 0x6c, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, - 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, - 0x75, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x23, - 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x69, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x70, 0x70, 0x65, 0x64, 0x53, - 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x78, 0x69, 0x64, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, - 0x74, 0x78, 0x69, 0x64, 0x73, 0x22, 0x3c, 0x0a, 0x0e, 0x42, 0x75, 0x6d, 0x70, 0x46, 0x65, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x61, 0x6c, 0x6c, 0x65, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x78, 0x69, 0x64, 0x22, 0x79, 0x0a, 0x0f, 0x42, 0x75, 0x6d, 0x70, 0x46, 0x65, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, - 0x52, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x46, 0x65, 0x65, 0x12, 0x17, 0x0a, - 0x07, 0x6e, 0x65, 0x77, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, - 0x6e, 0x65, 0x77, 0x46, 0x65, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x43, - 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x61, 0x6c, 0x6c, 0x65, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, - 0x61, 0x73, 0x68, 0x22, 0x6e, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x6e, 0x63, 0x65, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, - 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x3a, 0x0a, 0x18, + 0x47, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x22, 0xbd, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1f, 0x0a, + 0x0b, 0x69, 0x73, 0x5f, 0x73, 0x6f, 0x6c, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x53, 0x6f, 0x6c, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x28, + 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, + 0x79, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x68, 0x61, 0x73, 0x50, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x95, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, + 0x12, 0x51, 0x0a, 0x09, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, - 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x22, 0x30, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x6d, - 0x70, 0x6f, 0x6f, 0x6c, 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, 0x22, 0xf7, 0x04, 0x0a, 0x0c, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, - 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, - 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x76, 0x69, - 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, - 0x65, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x64, 0x65, 0x73, - 0x63, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, - 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x61, 0x6e, - 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, - 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, - 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x53, 0x69, 0x7a, - 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x78, 0x69, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, - 0x54, 0x78, 0x69, 0x64, 0x12, 0x3f, 0x0a, 0x04, 0x66, 0x65, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, - 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4d, 0x65, - 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x46, 0x65, 0x65, 0x73, 0x52, - 0x04, 0x66, 0x65, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x73, - 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x73, 0x12, - 0x19, 0x0a, 0x08, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x18, 0x0b, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x07, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x12, 0x2d, 0x0a, 0x12, 0x62, 0x69, - 0x70, 0x31, 0x32, 0x35, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x61, 0x62, 0x6c, 0x65, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x62, 0x69, 0x70, 0x31, 0x32, 0x35, 0x52, 0x65, - 0x70, 0x6c, 0x61, 0x63, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x62, - 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x75, 0x6e, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x1a, 0x72, 0x0a, 0x04, 0x46, - 0x65, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x01, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x12, - 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x01, 0x52, 0x0a, 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x22, - 0xfd, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, - 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x78, 0x69, - 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x74, 0x78, 0x69, 0x64, 0x73, 0x12, - 0x65, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, - 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x67, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 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, 0x62, - 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0x2d, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x2a, - 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x5b, 0x0a, 0x17, 0x4c, 0x69, - 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, 0x70, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x62, 0x69, 0x74, 0x63, - 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0c, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x32, 0xbb, 0x0f, 0x0a, 0x0e, 0x42, 0x69, - 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7c, 0x0a, 0x11, - 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x32, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, - 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, - 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x0e, 0x47, 0x65, - 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x62, + 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, + 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x52, 0x09, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, + 0x69, 0x74, 0x79, 0x22, 0x9a, 0x01, 0x0a, 0x09, 0x56, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, + 0x79, 0x12, 0x19, 0x0a, 0x15, 0x56, 0x45, 0x52, 0x42, 0x4f, 0x53, 0x49, 0x54, 0x59, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, + 0x56, 0x45, 0x52, 0x42, 0x4f, 0x53, 0x49, 0x54, 0x59, 0x5f, 0x52, 0x41, 0x57, 0x5f, 0x44, 0x41, + 0x54, 0x41, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x56, 0x45, 0x52, 0x42, 0x4f, 0x53, 0x49, 0x54, + 0x59, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x02, 0x12, 0x1b, + 0x0a, 0x17, 0x56, 0x45, 0x52, 0x42, 0x4f, 0x53, 0x49, 0x54, 0x59, 0x5f, 0x42, 0x4c, 0x4f, 0x43, + 0x4b, 0x5f, 0x54, 0x58, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x56, + 0x45, 0x52, 0x42, 0x4f, 0x53, 0x49, 0x54, 0x59, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x54, + 0x58, 0x5f, 0x50, 0x52, 0x45, 0x56, 0x4f, 0x55, 0x54, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x04, + 0x22, 0x8b, 0x04, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x68, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x68, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, + 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x48, 0x65, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x5f, 0x72, + 0x6f, 0x6f, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x72, 0x6b, 0x6c, + 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, + 0x69, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x69, 0x74, 0x73, 0x12, + 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, + 0x2e, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, + 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x69, 0x70, + 0x70, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, + 0x73, 0x74, 0x72, 0x69, 0x70, 0x70, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x78, 0x69, 0x64, + 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x74, 0x78, 0x69, 0x64, 0x73, 0x22, 0x3c, + 0x0a, 0x0e, 0x42, 0x75, 0x6d, 0x70, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x22, 0x79, 0x0a, 0x0f, + 0x42, 0x75, 0x6d, 0x70, 0x46, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, + 0x78, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, + 0x66, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x61, 0x6c, 0x46, 0x65, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x65, 0x77, 0x5f, 0x66, 0x65, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x6e, 0x65, 0x77, 0x46, 0x65, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x43, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x69, 0x6e, 0x63, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x6e, 0x0a, 0x16, + 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, - 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x73, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x12, 0x2f, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, - 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, - 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x77, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, - 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0c, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x30, 0x0a, 0x14, + 0x47, 0x65, 0x74, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 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, 0x22, 0xf7, + 0x04, 0x0a, 0x0c, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x21, 0x0a, 0x0c, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, + 0x73, 0x63, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, + 0x61, 0x6e, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, + 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x25, + 0x0a, 0x0e, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x6e, + 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x69, + 0x74, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x78, 0x69, 0x64, 0x12, 0x3f, 0x0a, + 0x04, 0x66, 0x65, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x62, 0x69, + 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x2e, 0x46, 0x65, 0x65, 0x73, 0x52, 0x04, 0x66, 0x65, 0x65, 0x73, 0x12, 0x18, + 0x0a, 0x07, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x07, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x70, 0x65, 0x6e, + 0x74, 0x5f, 0x62, 0x79, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x70, 0x65, 0x6e, + 0x74, 0x42, 0x79, 0x12, 0x2d, 0x0a, 0x12, 0x62, 0x69, 0x70, 0x31, 0x32, 0x35, 0x5f, 0x72, 0x65, + 0x70, 0x6c, 0x61, 0x63, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x11, 0x62, 0x69, 0x70, 0x31, 0x32, 0x35, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, 0x6e, 0x62, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x1a, 0x72, 0x0a, 0x04, 0x46, 0x65, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, + 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x73, 0x63, + 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x64, 0x65, + 0x73, 0x63, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x22, 0xfd, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, + 0x52, 0x61, 0x77, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x78, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x05, 0x74, 0x78, 0x69, 0x64, 0x73, 0x12, 0x65, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, + 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, + 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x77, + 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, + 0x67, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 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, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x57, 0x61, 0x6c, - 0x6c, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, - 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, - 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, - 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, + 0x2e, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2d, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x2a, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, + 0x61, 0x73, 0x68, 0x22, 0x5b, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, + 0x22, 0x70, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x0c, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, + 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, + 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x32, 0xad, 0x10, 0x0a, 0x0e, 0x42, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7c, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x2e, 0x62, 0x69, 0x74, + 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, + 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, + 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x04, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x25, 0x2e, 0x62, - 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, - 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, - 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x07, 0x42, - 0x75, 0x6d, 0x70, 0x46, 0x65, 0x65, 0x12, 0x28, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, + 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x2e, 0x42, 0x75, 0x6d, 0x70, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x29, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, - 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x42, 0x75, 0x6d, 0x70, - 0x46, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x10, 0x45, - 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x46, 0x65, 0x65, 0x12, - 0x31, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, - 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x45, 0x73, 0x74, 0x69, 0x6d, - 0x61, 0x74, 0x65, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, - 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x45, 0x73, - 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x46, 0x65, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x11, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x32, 0x2e, 0x62, 0x69, - 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x33, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, - 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, - 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x31, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, - 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x62, 0x69, + 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, + 0x53, 0x69, 0x6e, 0x63, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x2f, 0x2e, 0x62, 0x69, 0x74, + 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x7c, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, - 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, - 0x47, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, - 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, 0x0a, - 0x0d, 0x47, 0x65, 0x74, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x12, 0x2e, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x6e, 0x63, 0x65, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, 0x0a, + 0x0d, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, - 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x77, - 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, + 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x77, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, - 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x77, - 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x7c, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x61, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, - 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, - 0x47, 0x65, 0x74, 0x52, 0x61, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, - 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x85, 0x01, - 0x0a, 0x14, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, - 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, + 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x77, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x70, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x2e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, + 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x57, + 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2f, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, + 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x57, + 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x6a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, + 0x12, 0x2c, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, + 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, + 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, + 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, + 0x04, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x25, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, + 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x62, + 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, + 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, + 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x07, 0x42, 0x75, 0x6d, 0x70, 0x46, 0x65, + 0x65, 0x12, 0x28, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, + 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x42, 0x75, 0x6d, + 0x70, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x62, 0x69, + 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x42, 0x75, 0x6d, 0x70, 0x46, 0x65, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x10, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, + 0x74, 0x65, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x46, 0x65, 0x65, 0x12, 0x31, 0x2e, 0x62, 0x69, 0x74, + 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x53, 0x6d, + 0x61, 0x72, 0x74, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x52, - 0x61, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x12, 0x29, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, - 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x62, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, + 0x65, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x46, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x7c, 0x0a, 0x11, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x32, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, + 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x62, 0x69, 0x74, + 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x79, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x31, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, + 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, + 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x11, 0x47, 0x65, + 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x32, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, + 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, + 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, + 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, + 0x61, 0x77, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x12, 0x2e, 0x2e, 0x62, 0x69, 0x74, 0x63, + 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x6d, 0x70, 0x6f, + 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x62, 0x69, 0x74, 0x63, + 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x6d, 0x70, 0x6f, + 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x11, 0x47, 0x65, + 0x74, 0x52, 0x61, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x32, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, + 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, + 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, + 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, + 0x65, 0x74, 0x52, 0x61, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x85, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x63, + 0x6f, 0x64, 0x65, 0x52, 0x61, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x35, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, + 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44, 0x65, 0x63, + 0x6f, 0x64, 0x65, 0x52, 0x61, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, + 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x77, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x61, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x29, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2d, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, - 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xfb, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, - 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x42, 0x0c, 0x42, 0x69, 0x74, 0x63, 0x6f, 0x69, - 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x61, 0x72, 0x65, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, - 0x2f, 0x62, 0x74, 0x63, 0x2d, 0x62, 0x75, 0x66, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x62, 0x69, 0x74, - 0x63, 0x6f, 0x69, 0x6e, 0x2f, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2f, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x3b, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0xa2, 0x02, 0x03, 0x42, 0x42, 0x58, 0xaa, 0x02, 0x18, 0x42, 0x69, - 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x42, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x56, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0xca, 0x02, 0x18, 0x42, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, - 0x5c, 0x42, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0xe2, 0x02, 0x24, 0x42, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x5c, 0x42, 0x69, 0x74, 0x63, - 0x6f, 0x69, 0x6e, 0x64, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5c, 0x47, 0x50, 0x42, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1a, 0x42, 0x69, 0x74, 0x63, 0x6f, - 0x69, 0x6e, 0x3a, 0x3a, 0x42, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x3a, 0x3a, 0x56, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, + 0x61, 0x73, 0x68, 0x12, 0x2d, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, + 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, + 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, + 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x42, 0xfb, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, + 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x42, 0x0c, 0x42, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x4b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x62, 0x61, 0x72, 0x65, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2f, 0x62, 0x74, 0x63, 0x2d, + 0x62, 0x75, 0x66, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x2f, + 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x3b, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0xa2, 0x02, 0x03, 0x42, 0x42, 0x58, 0xaa, 0x02, 0x18, 0x42, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, + 0x2e, 0x42, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0xca, 0x02, 0x18, 0x42, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x5c, 0x42, 0x69, 0x74, 0x63, + 0x6f, 0x69, 0x6e, 0x64, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0xe2, 0x02, 0x24, 0x42, + 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x5c, 0x42, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x5c, + 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x1a, 0x42, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x3a, 0x3a, 0x42, + 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -4261,7 +4412,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDescGZIP() []byte { } var file_bitcoin_bitcoind_v1alpha_bitcoin_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes = make([]protoimpl.MessageInfo, 49) +var file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes = make([]protoimpl.MessageInfo, 51) var file_bitcoin_bitcoind_v1alpha_bitcoin_proto_goTypes = []any{ (GetTransactionResponse_Replaceable)(0), // 0: bitcoin.bitcoind.v1alpha.GetTransactionResponse.Replaceable (GetTransactionResponse_Category)(0), // 1: bitcoin.bitcoind.v1alpha.GetTransactionResponse.Category @@ -4285,109 +4436,113 @@ var file_bitcoin_bitcoind_v1alpha_bitcoin_proto_goTypes = []any{ (*GetRawTransactionResponse)(nil), // 19: bitcoin.bitcoind.v1alpha.GetRawTransactionResponse (*SendRequest)(nil), // 20: bitcoin.bitcoind.v1alpha.SendRequest (*SendResponse)(nil), // 21: bitcoin.bitcoind.v1alpha.SendResponse - (*EstimateSmartFeeRequest)(nil), // 22: bitcoin.bitcoind.v1alpha.EstimateSmartFeeRequest - (*EstimateSmartFeeResponse)(nil), // 23: bitcoin.bitcoind.v1alpha.EstimateSmartFeeResponse - (*DecodeRawTransactionRequest)(nil), // 24: bitcoin.bitcoind.v1alpha.DecodeRawTransactionRequest - (*RawTransaction)(nil), // 25: bitcoin.bitcoind.v1alpha.RawTransaction - (*DecodeRawTransactionResponse)(nil), // 26: bitcoin.bitcoind.v1alpha.DecodeRawTransactionResponse - (*ImportDescriptorsRequest)(nil), // 27: bitcoin.bitcoind.v1alpha.ImportDescriptorsRequest - (*ImportDescriptorsResponse)(nil), // 28: bitcoin.bitcoind.v1alpha.ImportDescriptorsResponse - (*GetDescriptorInfoRequest)(nil), // 29: bitcoin.bitcoind.v1alpha.GetDescriptorInfoRequest - (*GetDescriptorInfoResponse)(nil), // 30: bitcoin.bitcoind.v1alpha.GetDescriptorInfoResponse - (*GetBlockRequest)(nil), // 31: bitcoin.bitcoind.v1alpha.GetBlockRequest - (*GetBlockResponse)(nil), // 32: bitcoin.bitcoind.v1alpha.GetBlockResponse - (*BumpFeeRequest)(nil), // 33: bitcoin.bitcoind.v1alpha.BumpFeeRequest - (*BumpFeeResponse)(nil), // 34: bitcoin.bitcoind.v1alpha.BumpFeeResponse - (*ListSinceBlockRequest)(nil), // 35: bitcoin.bitcoind.v1alpha.ListSinceBlockRequest - (*ListSinceBlockResponse)(nil), // 36: bitcoin.bitcoind.v1alpha.ListSinceBlockResponse - (*GetRawMempoolRequest)(nil), // 37: bitcoin.bitcoind.v1alpha.GetRawMempoolRequest - (*MempoolEntry)(nil), // 38: bitcoin.bitcoind.v1alpha.MempoolEntry - (*GetRawMempoolResponse)(nil), // 39: bitcoin.bitcoind.v1alpha.GetRawMempoolResponse - (*GetBlockHashRequest)(nil), // 40: bitcoin.bitcoind.v1alpha.GetBlockHashRequest - (*GetBlockHashResponse)(nil), // 41: bitcoin.bitcoind.v1alpha.GetBlockHashResponse - (*ListTransactionsRequest)(nil), // 42: bitcoin.bitcoind.v1alpha.ListTransactionsRequest - (*ListTransactionsResponse)(nil), // 43: bitcoin.bitcoind.v1alpha.ListTransactionsResponse - (*GetBalancesResponse_Mine)(nil), // 44: bitcoin.bitcoind.v1alpha.GetBalancesResponse.Mine - (*GetBalancesResponse_Watchonly)(nil), // 45: bitcoin.bitcoind.v1alpha.GetBalancesResponse.Watchonly - (*GetTransactionResponse_Details)(nil), // 46: bitcoin.bitcoind.v1alpha.GetTransactionResponse.Details - nil, // 47: bitcoin.bitcoind.v1alpha.SendRequest.DestinationsEntry - (*ImportDescriptorsRequest_Request)(nil), // 48: bitcoin.bitcoind.v1alpha.ImportDescriptorsRequest.Request - (*ImportDescriptorsResponse_Error)(nil), // 49: bitcoin.bitcoind.v1alpha.ImportDescriptorsResponse.Error - (*ImportDescriptorsResponse_Response)(nil), // 50: bitcoin.bitcoind.v1alpha.ImportDescriptorsResponse.Response - (*MempoolEntry_Fees)(nil), // 51: bitcoin.bitcoind.v1alpha.MempoolEntry.Fees - nil, // 52: bitcoin.bitcoind.v1alpha.GetRawMempoolResponse.TransactionsEntry - (*timestamppb.Timestamp)(nil), // 53: google.protobuf.Timestamp - (*wrapperspb.BoolValue)(nil), // 54: google.protobuf.BoolValue + (*SendToAddressRequest)(nil), // 22: bitcoin.bitcoind.v1alpha.SendToAddressRequest + (*SendToAddressResponse)(nil), // 23: bitcoin.bitcoind.v1alpha.SendToAddressResponse + (*EstimateSmartFeeRequest)(nil), // 24: bitcoin.bitcoind.v1alpha.EstimateSmartFeeRequest + (*EstimateSmartFeeResponse)(nil), // 25: bitcoin.bitcoind.v1alpha.EstimateSmartFeeResponse + (*DecodeRawTransactionRequest)(nil), // 26: bitcoin.bitcoind.v1alpha.DecodeRawTransactionRequest + (*RawTransaction)(nil), // 27: bitcoin.bitcoind.v1alpha.RawTransaction + (*DecodeRawTransactionResponse)(nil), // 28: bitcoin.bitcoind.v1alpha.DecodeRawTransactionResponse + (*ImportDescriptorsRequest)(nil), // 29: bitcoin.bitcoind.v1alpha.ImportDescriptorsRequest + (*ImportDescriptorsResponse)(nil), // 30: bitcoin.bitcoind.v1alpha.ImportDescriptorsResponse + (*GetDescriptorInfoRequest)(nil), // 31: bitcoin.bitcoind.v1alpha.GetDescriptorInfoRequest + (*GetDescriptorInfoResponse)(nil), // 32: bitcoin.bitcoind.v1alpha.GetDescriptorInfoResponse + (*GetBlockRequest)(nil), // 33: bitcoin.bitcoind.v1alpha.GetBlockRequest + (*GetBlockResponse)(nil), // 34: bitcoin.bitcoind.v1alpha.GetBlockResponse + (*BumpFeeRequest)(nil), // 35: bitcoin.bitcoind.v1alpha.BumpFeeRequest + (*BumpFeeResponse)(nil), // 36: bitcoin.bitcoind.v1alpha.BumpFeeResponse + (*ListSinceBlockRequest)(nil), // 37: bitcoin.bitcoind.v1alpha.ListSinceBlockRequest + (*ListSinceBlockResponse)(nil), // 38: bitcoin.bitcoind.v1alpha.ListSinceBlockResponse + (*GetRawMempoolRequest)(nil), // 39: bitcoin.bitcoind.v1alpha.GetRawMempoolRequest + (*MempoolEntry)(nil), // 40: bitcoin.bitcoind.v1alpha.MempoolEntry + (*GetRawMempoolResponse)(nil), // 41: bitcoin.bitcoind.v1alpha.GetRawMempoolResponse + (*GetBlockHashRequest)(nil), // 42: bitcoin.bitcoind.v1alpha.GetBlockHashRequest + (*GetBlockHashResponse)(nil), // 43: bitcoin.bitcoind.v1alpha.GetBlockHashResponse + (*ListTransactionsRequest)(nil), // 44: bitcoin.bitcoind.v1alpha.ListTransactionsRequest + (*ListTransactionsResponse)(nil), // 45: bitcoin.bitcoind.v1alpha.ListTransactionsResponse + (*GetBalancesResponse_Mine)(nil), // 46: bitcoin.bitcoind.v1alpha.GetBalancesResponse.Mine + (*GetBalancesResponse_Watchonly)(nil), // 47: bitcoin.bitcoind.v1alpha.GetBalancesResponse.Watchonly + (*GetTransactionResponse_Details)(nil), // 48: bitcoin.bitcoind.v1alpha.GetTransactionResponse.Details + nil, // 49: bitcoin.bitcoind.v1alpha.SendRequest.DestinationsEntry + (*ImportDescriptorsRequest_Request)(nil), // 50: bitcoin.bitcoind.v1alpha.ImportDescriptorsRequest.Request + (*ImportDescriptorsResponse_Error)(nil), // 51: bitcoin.bitcoind.v1alpha.ImportDescriptorsResponse.Error + (*ImportDescriptorsResponse_Response)(nil), // 52: bitcoin.bitcoind.v1alpha.ImportDescriptorsResponse.Response + (*MempoolEntry_Fees)(nil), // 53: bitcoin.bitcoind.v1alpha.MempoolEntry.Fees + nil, // 54: bitcoin.bitcoind.v1alpha.GetRawMempoolResponse.TransactionsEntry + (*timestamppb.Timestamp)(nil), // 55: google.protobuf.Timestamp + (*wrapperspb.BoolValue)(nil), // 56: google.protobuf.BoolValue } var file_bitcoin_bitcoind_v1alpha_bitcoin_proto_depIdxs = []int32{ 12, // 0: bitcoin.bitcoind.v1alpha.GetWalletInfoResponse.scanning:type_name -> bitcoin.bitcoind.v1alpha.WalletScan - 44, // 1: bitcoin.bitcoind.v1alpha.GetBalancesResponse.mine:type_name -> bitcoin.bitcoind.v1alpha.GetBalancesResponse.Mine - 45, // 2: bitcoin.bitcoind.v1alpha.GetBalancesResponse.watchonly:type_name -> bitcoin.bitcoind.v1alpha.GetBalancesResponse.Watchonly - 53, // 3: bitcoin.bitcoind.v1alpha.GetTransactionResponse.block_time:type_name -> google.protobuf.Timestamp - 53, // 4: bitcoin.bitcoind.v1alpha.GetTransactionResponse.time:type_name -> google.protobuf.Timestamp - 53, // 5: bitcoin.bitcoind.v1alpha.GetTransactionResponse.time_received:type_name -> google.protobuf.Timestamp + 46, // 1: bitcoin.bitcoind.v1alpha.GetBalancesResponse.mine:type_name -> bitcoin.bitcoind.v1alpha.GetBalancesResponse.Mine + 47, // 2: bitcoin.bitcoind.v1alpha.GetBalancesResponse.watchonly:type_name -> bitcoin.bitcoind.v1alpha.GetBalancesResponse.Watchonly + 55, // 3: bitcoin.bitcoind.v1alpha.GetTransactionResponse.block_time:type_name -> google.protobuf.Timestamp + 55, // 4: bitcoin.bitcoind.v1alpha.GetTransactionResponse.time:type_name -> google.protobuf.Timestamp + 55, // 5: bitcoin.bitcoind.v1alpha.GetTransactionResponse.time_received:type_name -> google.protobuf.Timestamp 0, // 6: bitcoin.bitcoind.v1alpha.GetTransactionResponse.bip125_replaceable:type_name -> bitcoin.bitcoind.v1alpha.GetTransactionResponse.Replaceable - 46, // 7: bitcoin.bitcoind.v1alpha.GetTransactionResponse.details:type_name -> bitcoin.bitcoind.v1alpha.GetTransactionResponse.Details + 48, // 7: bitcoin.bitcoind.v1alpha.GetTransactionResponse.details:type_name -> bitcoin.bitcoind.v1alpha.GetTransactionResponse.Details 17, // 8: bitcoin.bitcoind.v1alpha.Output.script_pub_key:type_name -> bitcoin.bitcoind.v1alpha.ScriptPubKey - 25, // 9: bitcoin.bitcoind.v1alpha.GetRawTransactionResponse.tx:type_name -> bitcoin.bitcoind.v1alpha.RawTransaction + 27, // 9: bitcoin.bitcoind.v1alpha.GetRawTransactionResponse.tx:type_name -> bitcoin.bitcoind.v1alpha.RawTransaction 16, // 10: bitcoin.bitcoind.v1alpha.GetRawTransactionResponse.inputs:type_name -> bitcoin.bitcoind.v1alpha.Input 18, // 11: bitcoin.bitcoind.v1alpha.GetRawTransactionResponse.outputs:type_name -> bitcoin.bitcoind.v1alpha.Output - 47, // 12: bitcoin.bitcoind.v1alpha.SendRequest.destinations:type_name -> bitcoin.bitcoind.v1alpha.SendRequest.DestinationsEntry - 54, // 13: bitcoin.bitcoind.v1alpha.SendRequest.add_to_wallet:type_name -> google.protobuf.BoolValue - 25, // 14: bitcoin.bitcoind.v1alpha.SendResponse.tx:type_name -> bitcoin.bitcoind.v1alpha.RawTransaction + 49, // 12: bitcoin.bitcoind.v1alpha.SendRequest.destinations:type_name -> bitcoin.bitcoind.v1alpha.SendRequest.DestinationsEntry + 56, // 13: bitcoin.bitcoind.v1alpha.SendRequest.add_to_wallet:type_name -> google.protobuf.BoolValue + 27, // 14: bitcoin.bitcoind.v1alpha.SendResponse.tx:type_name -> bitcoin.bitcoind.v1alpha.RawTransaction 2, // 15: bitcoin.bitcoind.v1alpha.EstimateSmartFeeRequest.estimate_mode:type_name -> bitcoin.bitcoind.v1alpha.EstimateSmartFeeRequest.EstimateMode - 25, // 16: bitcoin.bitcoind.v1alpha.DecodeRawTransactionRequest.tx:type_name -> bitcoin.bitcoind.v1alpha.RawTransaction + 27, // 16: bitcoin.bitcoind.v1alpha.DecodeRawTransactionRequest.tx:type_name -> bitcoin.bitcoind.v1alpha.RawTransaction 16, // 17: bitcoin.bitcoind.v1alpha.DecodeRawTransactionResponse.inputs:type_name -> bitcoin.bitcoind.v1alpha.Input 18, // 18: bitcoin.bitcoind.v1alpha.DecodeRawTransactionResponse.outputs:type_name -> bitcoin.bitcoind.v1alpha.Output - 48, // 19: bitcoin.bitcoind.v1alpha.ImportDescriptorsRequest.requests:type_name -> bitcoin.bitcoind.v1alpha.ImportDescriptorsRequest.Request - 50, // 20: bitcoin.bitcoind.v1alpha.ImportDescriptorsResponse.responses:type_name -> bitcoin.bitcoind.v1alpha.ImportDescriptorsResponse.Response + 50, // 19: bitcoin.bitcoind.v1alpha.ImportDescriptorsRequest.requests:type_name -> bitcoin.bitcoind.v1alpha.ImportDescriptorsRequest.Request + 52, // 20: bitcoin.bitcoind.v1alpha.ImportDescriptorsResponse.responses:type_name -> bitcoin.bitcoind.v1alpha.ImportDescriptorsResponse.Response 3, // 21: bitcoin.bitcoind.v1alpha.GetBlockRequest.verbosity:type_name -> bitcoin.bitcoind.v1alpha.GetBlockRequest.Verbosity - 53, // 22: bitcoin.bitcoind.v1alpha.GetBlockResponse.time:type_name -> google.protobuf.Timestamp + 55, // 22: bitcoin.bitcoind.v1alpha.GetBlockResponse.time:type_name -> google.protobuf.Timestamp 14, // 23: bitcoin.bitcoind.v1alpha.ListSinceBlockResponse.transactions:type_name -> bitcoin.bitcoind.v1alpha.GetTransactionResponse - 53, // 24: bitcoin.bitcoind.v1alpha.MempoolEntry.time:type_name -> google.protobuf.Timestamp - 51, // 25: bitcoin.bitcoind.v1alpha.MempoolEntry.fees:type_name -> bitcoin.bitcoind.v1alpha.MempoolEntry.Fees - 52, // 26: bitcoin.bitcoind.v1alpha.GetRawMempoolResponse.transactions:type_name -> bitcoin.bitcoind.v1alpha.GetRawMempoolResponse.TransactionsEntry + 55, // 24: bitcoin.bitcoind.v1alpha.MempoolEntry.time:type_name -> google.protobuf.Timestamp + 53, // 25: bitcoin.bitcoind.v1alpha.MempoolEntry.fees:type_name -> bitcoin.bitcoind.v1alpha.MempoolEntry.Fees + 54, // 26: bitcoin.bitcoind.v1alpha.GetRawMempoolResponse.transactions:type_name -> bitcoin.bitcoind.v1alpha.GetRawMempoolResponse.TransactionsEntry 14, // 27: bitcoin.bitcoind.v1alpha.ListTransactionsResponse.transactions:type_name -> bitcoin.bitcoind.v1alpha.GetTransactionResponse 1, // 28: bitcoin.bitcoind.v1alpha.GetTransactionResponse.Details.category:type_name -> bitcoin.bitcoind.v1alpha.GetTransactionResponse.Category - 53, // 29: bitcoin.bitcoind.v1alpha.ImportDescriptorsRequest.Request.timestamp:type_name -> google.protobuf.Timestamp - 49, // 30: bitcoin.bitcoind.v1alpha.ImportDescriptorsResponse.Response.error:type_name -> bitcoin.bitcoind.v1alpha.ImportDescriptorsResponse.Error - 38, // 31: bitcoin.bitcoind.v1alpha.GetRawMempoolResponse.TransactionsEntry.value:type_name -> bitcoin.bitcoind.v1alpha.MempoolEntry + 55, // 29: bitcoin.bitcoind.v1alpha.ImportDescriptorsRequest.Request.timestamp:type_name -> google.protobuf.Timestamp + 51, // 30: bitcoin.bitcoind.v1alpha.ImportDescriptorsResponse.Response.error:type_name -> bitcoin.bitcoind.v1alpha.ImportDescriptorsResponse.Error + 40, // 31: bitcoin.bitcoind.v1alpha.GetRawMempoolResponse.TransactionsEntry.value:type_name -> bitcoin.bitcoind.v1alpha.MempoolEntry 4, // 32: bitcoin.bitcoind.v1alpha.BitcoinService.GetBlockchainInfo:input_type -> bitcoin.bitcoind.v1alpha.GetBlockchainInfoRequest 13, // 33: bitcoin.bitcoind.v1alpha.BitcoinService.GetTransaction:input_type -> bitcoin.bitcoind.v1alpha.GetTransactionRequest - 35, // 34: bitcoin.bitcoind.v1alpha.BitcoinService.ListSinceBlock:input_type -> bitcoin.bitcoind.v1alpha.ListSinceBlockRequest + 37, // 34: bitcoin.bitcoind.v1alpha.BitcoinService.ListSinceBlock:input_type -> bitcoin.bitcoind.v1alpha.ListSinceBlockRequest 6, // 35: bitcoin.bitcoind.v1alpha.BitcoinService.GetNewAddress:input_type -> bitcoin.bitcoind.v1alpha.GetNewAddressRequest 8, // 36: bitcoin.bitcoind.v1alpha.BitcoinService.GetWalletInfo:input_type -> bitcoin.bitcoind.v1alpha.GetWalletInfoRequest 10, // 37: bitcoin.bitcoind.v1alpha.BitcoinService.GetBalances:input_type -> bitcoin.bitcoind.v1alpha.GetBalancesRequest 20, // 38: bitcoin.bitcoind.v1alpha.BitcoinService.Send:input_type -> bitcoin.bitcoind.v1alpha.SendRequest - 33, // 39: bitcoin.bitcoind.v1alpha.BitcoinService.BumpFee:input_type -> bitcoin.bitcoind.v1alpha.BumpFeeRequest - 22, // 40: bitcoin.bitcoind.v1alpha.BitcoinService.EstimateSmartFee:input_type -> bitcoin.bitcoind.v1alpha.EstimateSmartFeeRequest - 27, // 41: bitcoin.bitcoind.v1alpha.BitcoinService.ImportDescriptors:input_type -> bitcoin.bitcoind.v1alpha.ImportDescriptorsRequest - 42, // 42: bitcoin.bitcoind.v1alpha.BitcoinService.ListTransactions:input_type -> bitcoin.bitcoind.v1alpha.ListTransactionsRequest - 29, // 43: bitcoin.bitcoind.v1alpha.BitcoinService.GetDescriptorInfo:input_type -> bitcoin.bitcoind.v1alpha.GetDescriptorInfoRequest - 37, // 44: bitcoin.bitcoind.v1alpha.BitcoinService.GetRawMempool:input_type -> bitcoin.bitcoind.v1alpha.GetRawMempoolRequest - 15, // 45: bitcoin.bitcoind.v1alpha.BitcoinService.GetRawTransaction:input_type -> bitcoin.bitcoind.v1alpha.GetRawTransactionRequest - 24, // 46: bitcoin.bitcoind.v1alpha.BitcoinService.DecodeRawTransaction:input_type -> bitcoin.bitcoind.v1alpha.DecodeRawTransactionRequest - 31, // 47: bitcoin.bitcoind.v1alpha.BitcoinService.GetBlock:input_type -> bitcoin.bitcoind.v1alpha.GetBlockRequest - 40, // 48: bitcoin.bitcoind.v1alpha.BitcoinService.GetBlockHash:input_type -> bitcoin.bitcoind.v1alpha.GetBlockHashRequest - 5, // 49: bitcoin.bitcoind.v1alpha.BitcoinService.GetBlockchainInfo:output_type -> bitcoin.bitcoind.v1alpha.GetBlockchainInfoResponse - 14, // 50: bitcoin.bitcoind.v1alpha.BitcoinService.GetTransaction:output_type -> bitcoin.bitcoind.v1alpha.GetTransactionResponse - 36, // 51: bitcoin.bitcoind.v1alpha.BitcoinService.ListSinceBlock:output_type -> bitcoin.bitcoind.v1alpha.ListSinceBlockResponse - 7, // 52: bitcoin.bitcoind.v1alpha.BitcoinService.GetNewAddress:output_type -> bitcoin.bitcoind.v1alpha.GetNewAddressResponse - 9, // 53: bitcoin.bitcoind.v1alpha.BitcoinService.GetWalletInfo:output_type -> bitcoin.bitcoind.v1alpha.GetWalletInfoResponse - 11, // 54: bitcoin.bitcoind.v1alpha.BitcoinService.GetBalances:output_type -> bitcoin.bitcoind.v1alpha.GetBalancesResponse - 21, // 55: bitcoin.bitcoind.v1alpha.BitcoinService.Send:output_type -> bitcoin.bitcoind.v1alpha.SendResponse - 34, // 56: bitcoin.bitcoind.v1alpha.BitcoinService.BumpFee:output_type -> bitcoin.bitcoind.v1alpha.BumpFeeResponse - 23, // 57: bitcoin.bitcoind.v1alpha.BitcoinService.EstimateSmartFee:output_type -> bitcoin.bitcoind.v1alpha.EstimateSmartFeeResponse - 28, // 58: bitcoin.bitcoind.v1alpha.BitcoinService.ImportDescriptors:output_type -> bitcoin.bitcoind.v1alpha.ImportDescriptorsResponse - 43, // 59: bitcoin.bitcoind.v1alpha.BitcoinService.ListTransactions:output_type -> bitcoin.bitcoind.v1alpha.ListTransactionsResponse - 30, // 60: bitcoin.bitcoind.v1alpha.BitcoinService.GetDescriptorInfo:output_type -> bitcoin.bitcoind.v1alpha.GetDescriptorInfoResponse - 39, // 61: bitcoin.bitcoind.v1alpha.BitcoinService.GetRawMempool:output_type -> bitcoin.bitcoind.v1alpha.GetRawMempoolResponse - 19, // 62: bitcoin.bitcoind.v1alpha.BitcoinService.GetRawTransaction:output_type -> bitcoin.bitcoind.v1alpha.GetRawTransactionResponse - 26, // 63: bitcoin.bitcoind.v1alpha.BitcoinService.DecodeRawTransaction:output_type -> bitcoin.bitcoind.v1alpha.DecodeRawTransactionResponse - 32, // 64: bitcoin.bitcoind.v1alpha.BitcoinService.GetBlock:output_type -> bitcoin.bitcoind.v1alpha.GetBlockResponse - 41, // 65: bitcoin.bitcoind.v1alpha.BitcoinService.GetBlockHash:output_type -> bitcoin.bitcoind.v1alpha.GetBlockHashResponse - 49, // [49:66] is the sub-list for method output_type - 32, // [32:49] is the sub-list for method input_type + 22, // 39: bitcoin.bitcoind.v1alpha.BitcoinService.SendToAddress:input_type -> bitcoin.bitcoind.v1alpha.SendToAddressRequest + 35, // 40: bitcoin.bitcoind.v1alpha.BitcoinService.BumpFee:input_type -> bitcoin.bitcoind.v1alpha.BumpFeeRequest + 24, // 41: bitcoin.bitcoind.v1alpha.BitcoinService.EstimateSmartFee:input_type -> bitcoin.bitcoind.v1alpha.EstimateSmartFeeRequest + 29, // 42: bitcoin.bitcoind.v1alpha.BitcoinService.ImportDescriptors:input_type -> bitcoin.bitcoind.v1alpha.ImportDescriptorsRequest + 44, // 43: bitcoin.bitcoind.v1alpha.BitcoinService.ListTransactions:input_type -> bitcoin.bitcoind.v1alpha.ListTransactionsRequest + 31, // 44: bitcoin.bitcoind.v1alpha.BitcoinService.GetDescriptorInfo:input_type -> bitcoin.bitcoind.v1alpha.GetDescriptorInfoRequest + 39, // 45: bitcoin.bitcoind.v1alpha.BitcoinService.GetRawMempool:input_type -> bitcoin.bitcoind.v1alpha.GetRawMempoolRequest + 15, // 46: bitcoin.bitcoind.v1alpha.BitcoinService.GetRawTransaction:input_type -> bitcoin.bitcoind.v1alpha.GetRawTransactionRequest + 26, // 47: bitcoin.bitcoind.v1alpha.BitcoinService.DecodeRawTransaction:input_type -> bitcoin.bitcoind.v1alpha.DecodeRawTransactionRequest + 33, // 48: bitcoin.bitcoind.v1alpha.BitcoinService.GetBlock:input_type -> bitcoin.bitcoind.v1alpha.GetBlockRequest + 42, // 49: bitcoin.bitcoind.v1alpha.BitcoinService.GetBlockHash:input_type -> bitcoin.bitcoind.v1alpha.GetBlockHashRequest + 5, // 50: bitcoin.bitcoind.v1alpha.BitcoinService.GetBlockchainInfo:output_type -> bitcoin.bitcoind.v1alpha.GetBlockchainInfoResponse + 14, // 51: bitcoin.bitcoind.v1alpha.BitcoinService.GetTransaction:output_type -> bitcoin.bitcoind.v1alpha.GetTransactionResponse + 38, // 52: bitcoin.bitcoind.v1alpha.BitcoinService.ListSinceBlock:output_type -> bitcoin.bitcoind.v1alpha.ListSinceBlockResponse + 7, // 53: bitcoin.bitcoind.v1alpha.BitcoinService.GetNewAddress:output_type -> bitcoin.bitcoind.v1alpha.GetNewAddressResponse + 9, // 54: bitcoin.bitcoind.v1alpha.BitcoinService.GetWalletInfo:output_type -> bitcoin.bitcoind.v1alpha.GetWalletInfoResponse + 11, // 55: bitcoin.bitcoind.v1alpha.BitcoinService.GetBalances:output_type -> bitcoin.bitcoind.v1alpha.GetBalancesResponse + 21, // 56: bitcoin.bitcoind.v1alpha.BitcoinService.Send:output_type -> bitcoin.bitcoind.v1alpha.SendResponse + 23, // 57: bitcoin.bitcoind.v1alpha.BitcoinService.SendToAddress:output_type -> bitcoin.bitcoind.v1alpha.SendToAddressResponse + 36, // 58: bitcoin.bitcoind.v1alpha.BitcoinService.BumpFee:output_type -> bitcoin.bitcoind.v1alpha.BumpFeeResponse + 25, // 59: bitcoin.bitcoind.v1alpha.BitcoinService.EstimateSmartFee:output_type -> bitcoin.bitcoind.v1alpha.EstimateSmartFeeResponse + 30, // 60: bitcoin.bitcoind.v1alpha.BitcoinService.ImportDescriptors:output_type -> bitcoin.bitcoind.v1alpha.ImportDescriptorsResponse + 45, // 61: bitcoin.bitcoind.v1alpha.BitcoinService.ListTransactions:output_type -> bitcoin.bitcoind.v1alpha.ListTransactionsResponse + 32, // 62: bitcoin.bitcoind.v1alpha.BitcoinService.GetDescriptorInfo:output_type -> bitcoin.bitcoind.v1alpha.GetDescriptorInfoResponse + 41, // 63: bitcoin.bitcoind.v1alpha.BitcoinService.GetRawMempool:output_type -> bitcoin.bitcoind.v1alpha.GetRawMempoolResponse + 19, // 64: bitcoin.bitcoind.v1alpha.BitcoinService.GetRawTransaction:output_type -> bitcoin.bitcoind.v1alpha.GetRawTransactionResponse + 28, // 65: bitcoin.bitcoind.v1alpha.BitcoinService.DecodeRawTransaction:output_type -> bitcoin.bitcoind.v1alpha.DecodeRawTransactionResponse + 34, // 66: bitcoin.bitcoind.v1alpha.BitcoinService.GetBlock:output_type -> bitcoin.bitcoind.v1alpha.GetBlockResponse + 43, // 67: bitcoin.bitcoind.v1alpha.BitcoinService.GetBlockHash:output_type -> bitcoin.bitcoind.v1alpha.GetBlockHashResponse + 50, // [50:68] is the sub-list for method output_type + 32, // [32:50] is the sub-list for method input_type 32, // [32:32] is the sub-list for extension type_name 32, // [32:32] is the sub-list for extension extendee 0, // [0:32] is the sub-list for field type_name @@ -4616,7 +4771,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[18].Exporter = func(v any, i int) any { - switch v := v.(*EstimateSmartFeeRequest); i { + switch v := v.(*SendToAddressRequest); i { case 0: return &v.state case 1: @@ -4628,7 +4783,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[19].Exporter = func(v any, i int) any { - switch v := v.(*EstimateSmartFeeResponse); i { + switch v := v.(*SendToAddressResponse); i { case 0: return &v.state case 1: @@ -4640,7 +4795,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[20].Exporter = func(v any, i int) any { - switch v := v.(*DecodeRawTransactionRequest); i { + switch v := v.(*EstimateSmartFeeRequest); i { case 0: return &v.state case 1: @@ -4652,7 +4807,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[21].Exporter = func(v any, i int) any { - switch v := v.(*RawTransaction); i { + switch v := v.(*EstimateSmartFeeResponse); i { case 0: return &v.state case 1: @@ -4664,7 +4819,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[22].Exporter = func(v any, i int) any { - switch v := v.(*DecodeRawTransactionResponse); i { + switch v := v.(*DecodeRawTransactionRequest); i { case 0: return &v.state case 1: @@ -4676,7 +4831,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[23].Exporter = func(v any, i int) any { - switch v := v.(*ImportDescriptorsRequest); i { + switch v := v.(*RawTransaction); i { case 0: return &v.state case 1: @@ -4688,7 +4843,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[24].Exporter = func(v any, i int) any { - switch v := v.(*ImportDescriptorsResponse); i { + switch v := v.(*DecodeRawTransactionResponse); i { case 0: return &v.state case 1: @@ -4700,7 +4855,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[25].Exporter = func(v any, i int) any { - switch v := v.(*GetDescriptorInfoRequest); i { + switch v := v.(*ImportDescriptorsRequest); i { case 0: return &v.state case 1: @@ -4712,7 +4867,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[26].Exporter = func(v any, i int) any { - switch v := v.(*GetDescriptorInfoResponse); i { + switch v := v.(*ImportDescriptorsResponse); i { case 0: return &v.state case 1: @@ -4724,7 +4879,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[27].Exporter = func(v any, i int) any { - switch v := v.(*GetBlockRequest); i { + switch v := v.(*GetDescriptorInfoRequest); i { case 0: return &v.state case 1: @@ -4736,7 +4891,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[28].Exporter = func(v any, i int) any { - switch v := v.(*GetBlockResponse); i { + switch v := v.(*GetDescriptorInfoResponse); i { case 0: return &v.state case 1: @@ -4748,7 +4903,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[29].Exporter = func(v any, i int) any { - switch v := v.(*BumpFeeRequest); i { + switch v := v.(*GetBlockRequest); i { case 0: return &v.state case 1: @@ -4760,7 +4915,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[30].Exporter = func(v any, i int) any { - switch v := v.(*BumpFeeResponse); i { + switch v := v.(*GetBlockResponse); i { case 0: return &v.state case 1: @@ -4772,7 +4927,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[31].Exporter = func(v any, i int) any { - switch v := v.(*ListSinceBlockRequest); i { + switch v := v.(*BumpFeeRequest); i { case 0: return &v.state case 1: @@ -4784,7 +4939,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[32].Exporter = func(v any, i int) any { - switch v := v.(*ListSinceBlockResponse); i { + switch v := v.(*BumpFeeResponse); i { case 0: return &v.state case 1: @@ -4796,7 +4951,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[33].Exporter = func(v any, i int) any { - switch v := v.(*GetRawMempoolRequest); i { + switch v := v.(*ListSinceBlockRequest); i { case 0: return &v.state case 1: @@ -4808,7 +4963,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[34].Exporter = func(v any, i int) any { - switch v := v.(*MempoolEntry); i { + switch v := v.(*ListSinceBlockResponse); i { case 0: return &v.state case 1: @@ -4820,7 +4975,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[35].Exporter = func(v any, i int) any { - switch v := v.(*GetRawMempoolResponse); i { + switch v := v.(*GetRawMempoolRequest); i { case 0: return &v.state case 1: @@ -4832,7 +4987,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[36].Exporter = func(v any, i int) any { - switch v := v.(*GetBlockHashRequest); i { + switch v := v.(*MempoolEntry); i { case 0: return &v.state case 1: @@ -4844,7 +4999,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[37].Exporter = func(v any, i int) any { - switch v := v.(*GetBlockHashResponse); i { + switch v := v.(*GetRawMempoolResponse); i { case 0: return &v.state case 1: @@ -4856,7 +5011,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[38].Exporter = func(v any, i int) any { - switch v := v.(*ListTransactionsRequest); i { + switch v := v.(*GetBlockHashRequest); i { case 0: return &v.state case 1: @@ -4868,7 +5023,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[39].Exporter = func(v any, i int) any { - switch v := v.(*ListTransactionsResponse); i { + switch v := v.(*GetBlockHashResponse); i { case 0: return &v.state case 1: @@ -4880,7 +5035,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[40].Exporter = func(v any, i int) any { - switch v := v.(*GetBalancesResponse_Mine); i { + switch v := v.(*ListTransactionsRequest); i { case 0: return &v.state case 1: @@ -4892,7 +5047,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[41].Exporter = func(v any, i int) any { - switch v := v.(*GetBalancesResponse_Watchonly); i { + switch v := v.(*ListTransactionsResponse); i { case 0: return &v.state case 1: @@ -4904,7 +5059,19 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[42].Exporter = func(v any, i int) any { - switch v := v.(*GetTransactionResponse_Details); i { + switch v := v.(*GetBalancesResponse_Mine); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[43].Exporter = func(v any, i int) any { + switch v := v.(*GetBalancesResponse_Watchonly); i { case 0: return &v.state case 1: @@ -4916,6 +5083,18 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { } } file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[44].Exporter = func(v any, i int) any { + switch v := v.(*GetTransactionResponse_Details); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[46].Exporter = func(v any, i int) any { switch v := v.(*ImportDescriptorsRequest_Request); i { case 0: return &v.state @@ -4927,7 +5106,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { return nil } } - file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[45].Exporter = func(v any, i int) any { + file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[47].Exporter = func(v any, i int) any { switch v := v.(*ImportDescriptorsResponse_Error); i { case 0: return &v.state @@ -4939,7 +5118,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { return nil } } - file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[46].Exporter = func(v any, i int) any { + file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[48].Exporter = func(v any, i int) any { switch v := v.(*ImportDescriptorsResponse_Response); i { case 0: return &v.state @@ -4951,7 +5130,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { return nil } } - file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[47].Exporter = func(v any, i int) any { + file_bitcoin_bitcoind_v1alpha_bitcoin_proto_msgTypes[49].Exporter = func(v any, i int) any { switch v := v.(*MempoolEntry_Fees); i { case 0: return &v.state @@ -4970,7 +5149,7 @@ func file_bitcoin_bitcoind_v1alpha_bitcoin_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_bitcoin_bitcoind_v1alpha_bitcoin_proto_rawDesc, NumEnums: 4, - NumMessages: 49, + NumMessages: 51, NumExtensions: 0, NumServices: 1, }, diff --git a/gen/bitcoin/bitcoind/v1alpha/bitcoindv1alphaconnect/bitcoin.connect.go b/gen/bitcoin/bitcoind/v1alpha/bitcoindv1alphaconnect/bitcoin.connect.go index d1208db..63c9388 100644 --- a/gen/bitcoin/bitcoind/v1alpha/bitcoindv1alphaconnect/bitcoin.connect.go +++ b/gen/bitcoin/bitcoind/v1alpha/bitcoindv1alphaconnect/bitcoin.connect.go @@ -53,6 +53,9 @@ const ( BitcoinServiceGetBalancesProcedure = "/bitcoin.bitcoind.v1alpha.BitcoinService/GetBalances" // BitcoinServiceSendProcedure is the fully-qualified name of the BitcoinService's Send RPC. BitcoinServiceSendProcedure = "/bitcoin.bitcoind.v1alpha.BitcoinService/Send" + // BitcoinServiceSendToAddressProcedure is the fully-qualified name of the BitcoinService's + // SendToAddress RPC. + BitcoinServiceSendToAddressProcedure = "/bitcoin.bitcoind.v1alpha.BitcoinService/SendToAddress" // BitcoinServiceBumpFeeProcedure is the fully-qualified name of the BitcoinService's BumpFee RPC. BitcoinServiceBumpFeeProcedure = "/bitcoin.bitcoind.v1alpha.BitcoinService/BumpFee" // BitcoinServiceEstimateSmartFeeProcedure is the fully-qualified name of the BitcoinService's @@ -93,6 +96,7 @@ var ( bitcoinServiceGetWalletInfoMethodDescriptor = bitcoinServiceServiceDescriptor.Methods().ByName("GetWalletInfo") bitcoinServiceGetBalancesMethodDescriptor = bitcoinServiceServiceDescriptor.Methods().ByName("GetBalances") bitcoinServiceSendMethodDescriptor = bitcoinServiceServiceDescriptor.Methods().ByName("Send") + bitcoinServiceSendToAddressMethodDescriptor = bitcoinServiceServiceDescriptor.Methods().ByName("SendToAddress") bitcoinServiceBumpFeeMethodDescriptor = bitcoinServiceServiceDescriptor.Methods().ByName("BumpFee") bitcoinServiceEstimateSmartFeeMethodDescriptor = bitcoinServiceServiceDescriptor.Methods().ByName("EstimateSmartFee") bitcoinServiceImportDescriptorsMethodDescriptor = bitcoinServiceServiceDescriptor.Methods().ByName("ImportDescriptors") @@ -116,6 +120,7 @@ type BitcoinServiceClient interface { GetWalletInfo(context.Context, *connect.Request[v1alpha.GetWalletInfoRequest]) (*connect.Response[v1alpha.GetWalletInfoResponse], error) GetBalances(context.Context, *connect.Request[v1alpha.GetBalancesRequest]) (*connect.Response[v1alpha.GetBalancesResponse], error) Send(context.Context, *connect.Request[v1alpha.SendRequest]) (*connect.Response[v1alpha.SendResponse], error) + SendToAddress(context.Context, *connect.Request[v1alpha.SendToAddressRequest]) (*connect.Response[v1alpha.SendToAddressResponse], error) BumpFee(context.Context, *connect.Request[v1alpha.BumpFeeRequest]) (*connect.Response[v1alpha.BumpFeeResponse], error) EstimateSmartFee(context.Context, *connect.Request[v1alpha.EstimateSmartFeeRequest]) (*connect.Response[v1alpha.EstimateSmartFeeResponse], error) // Import a descriptor. If importing a watch-only descriptor, the wallet itself needs @@ -185,6 +190,12 @@ func NewBitcoinServiceClient(httpClient connect.HTTPClient, baseURL string, opts connect.WithSchema(bitcoinServiceSendMethodDescriptor), connect.WithClientOptions(opts...), ), + sendToAddress: connect.NewClient[v1alpha.SendToAddressRequest, v1alpha.SendToAddressResponse]( + httpClient, + baseURL+BitcoinServiceSendToAddressProcedure, + connect.WithSchema(bitcoinServiceSendToAddressMethodDescriptor), + connect.WithClientOptions(opts...), + ), bumpFee: connect.NewClient[v1alpha.BumpFeeRequest, v1alpha.BumpFeeResponse]( httpClient, baseURL+BitcoinServiceBumpFeeProcedure, @@ -257,6 +268,7 @@ type bitcoinServiceClient struct { getWalletInfo *connect.Client[v1alpha.GetWalletInfoRequest, v1alpha.GetWalletInfoResponse] getBalances *connect.Client[v1alpha.GetBalancesRequest, v1alpha.GetBalancesResponse] send *connect.Client[v1alpha.SendRequest, v1alpha.SendResponse] + sendToAddress *connect.Client[v1alpha.SendToAddressRequest, v1alpha.SendToAddressResponse] bumpFee *connect.Client[v1alpha.BumpFeeRequest, v1alpha.BumpFeeResponse] estimateSmartFee *connect.Client[v1alpha.EstimateSmartFeeRequest, v1alpha.EstimateSmartFeeResponse] importDescriptors *connect.Client[v1alpha.ImportDescriptorsRequest, v1alpha.ImportDescriptorsResponse] @@ -304,6 +316,11 @@ func (c *bitcoinServiceClient) Send(ctx context.Context, req *connect.Request[v1 return c.send.CallUnary(ctx, req) } +// SendToAddress calls bitcoin.bitcoind.v1alpha.BitcoinService.SendToAddress. +func (c *bitcoinServiceClient) SendToAddress(ctx context.Context, req *connect.Request[v1alpha.SendToAddressRequest]) (*connect.Response[v1alpha.SendToAddressResponse], error) { + return c.sendToAddress.CallUnary(ctx, req) +} + // BumpFee calls bitcoin.bitcoind.v1alpha.BitcoinService.BumpFee. func (c *bitcoinServiceClient) BumpFee(ctx context.Context, req *connect.Request[v1alpha.BumpFeeRequest]) (*connect.Response[v1alpha.BumpFeeResponse], error) { return c.bumpFee.CallUnary(ctx, req) @@ -366,6 +383,7 @@ type BitcoinServiceHandler interface { GetWalletInfo(context.Context, *connect.Request[v1alpha.GetWalletInfoRequest]) (*connect.Response[v1alpha.GetWalletInfoResponse], error) GetBalances(context.Context, *connect.Request[v1alpha.GetBalancesRequest]) (*connect.Response[v1alpha.GetBalancesResponse], error) Send(context.Context, *connect.Request[v1alpha.SendRequest]) (*connect.Response[v1alpha.SendResponse], error) + SendToAddress(context.Context, *connect.Request[v1alpha.SendToAddressRequest]) (*connect.Response[v1alpha.SendToAddressResponse], error) BumpFee(context.Context, *connect.Request[v1alpha.BumpFeeRequest]) (*connect.Response[v1alpha.BumpFeeResponse], error) EstimateSmartFee(context.Context, *connect.Request[v1alpha.EstimateSmartFeeRequest]) (*connect.Response[v1alpha.EstimateSmartFeeResponse], error) // Import a descriptor. If importing a watch-only descriptor, the wallet itself needs @@ -431,6 +449,12 @@ func NewBitcoinServiceHandler(svc BitcoinServiceHandler, opts ...connect.Handler connect.WithSchema(bitcoinServiceSendMethodDescriptor), connect.WithHandlerOptions(opts...), ) + bitcoinServiceSendToAddressHandler := connect.NewUnaryHandler( + BitcoinServiceSendToAddressProcedure, + svc.SendToAddress, + connect.WithSchema(bitcoinServiceSendToAddressMethodDescriptor), + connect.WithHandlerOptions(opts...), + ) bitcoinServiceBumpFeeHandler := connect.NewUnaryHandler( BitcoinServiceBumpFeeProcedure, svc.BumpFee, @@ -507,6 +531,8 @@ func NewBitcoinServiceHandler(svc BitcoinServiceHandler, opts ...connect.Handler bitcoinServiceGetBalancesHandler.ServeHTTP(w, r) case BitcoinServiceSendProcedure: bitcoinServiceSendHandler.ServeHTTP(w, r) + case BitcoinServiceSendToAddressProcedure: + bitcoinServiceSendToAddressHandler.ServeHTTP(w, r) case BitcoinServiceBumpFeeProcedure: bitcoinServiceBumpFeeHandler.ServeHTTP(w, r) case BitcoinServiceEstimateSmartFeeProcedure: @@ -564,6 +590,10 @@ func (UnimplementedBitcoinServiceHandler) Send(context.Context, *connect.Request return nil, connect.NewError(connect.CodeUnimplemented, errors.New("bitcoin.bitcoind.v1alpha.BitcoinService.Send is not implemented")) } +func (UnimplementedBitcoinServiceHandler) SendToAddress(context.Context, *connect.Request[v1alpha.SendToAddressRequest]) (*connect.Response[v1alpha.SendToAddressResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("bitcoin.bitcoind.v1alpha.BitcoinService.SendToAddress is not implemented")) +} + func (UnimplementedBitcoinServiceHandler) BumpFee(context.Context, *connect.Request[v1alpha.BumpFeeRequest]) (*connect.Response[v1alpha.BumpFeeResponse], error) { return nil, connect.NewError(connect.CodeUnimplemented, errors.New("bitcoin.bitcoind.v1alpha.BitcoinService.BumpFee is not implemented")) } diff --git a/proto/bitcoin/bitcoind/v1alpha/bitcoin.proto b/proto/bitcoin/bitcoind/v1alpha/bitcoin.proto index 94830f5..235b055 100644 --- a/proto/bitcoin/bitcoind/v1alpha/bitcoin.proto +++ b/proto/bitcoin/bitcoind/v1alpha/bitcoin.proto @@ -17,6 +17,7 @@ service BitcoinService { rpc GetWalletInfo(GetWalletInfoRequest) returns (GetWalletInfoResponse); rpc GetBalances(GetBalancesRequest) returns (GetBalancesResponse); rpc Send(SendRequest) returns (SendResponse); + rpc SendToAddress(SendToAddressRequest) returns (SendToAddressResponse); rpc BumpFee(BumpFeeRequest) returns (BumpFeeResponse); rpc EstimateSmartFee(EstimateSmartFeeRequest) returns (EstimateSmartFeeResponse); // Import a descriptor. If importing a watch-only descriptor, the wallet itself needs @@ -303,6 +304,23 @@ message SendResponse { RawTransaction tx = 3; } +message SendToAddressRequest { + // The bitcoin address to send to. + string address = 1; + // The amount in BTC to send. eg 0.1 + double amount = 2; + // A comment used to store what the transaction is for. Not part of the transaction, just kept in your wallet. + string comment = 3; + // A comment to store the name of the person or organization to which you're sending the transaction. Not part of the transaction, just kept in your wallet. + string comment_to = 4; + // Only needs to be set if dealing with multiple wallets at the same time. + string wallet = 5; +} + +message SendToAddressResponse { + string txid = 1; +} + message EstimateSmartFeeRequest { int64 conf_target = 1; diff --git a/server/server.go b/server/server.go index 72ae599..d903dfb 100644 --- a/server/server.go +++ b/server/server.go @@ -15,6 +15,7 @@ import ( "connectrpc.com/connect" "github.com/btcsuite/btcd/btcjson" "github.com/btcsuite/btcd/btcutil" + "github.com/btcsuite/btcd/chaincfg" "github.com/btcsuite/btcd/chaincfg/chainhash" "github.com/btcsuite/btcd/rpcclient" "github.com/btcsuite/btclog" @@ -275,7 +276,7 @@ func (b *Bitcoind) ListSinceBlock(ctx context.Context, c *connect.Request[pb.Lis return nil, err } - return withCancel[*btcjson.ListSinceBlockResult, pb.ListSinceBlockResponse](ctx, + return withCancel(ctx, func(ctx context.Context) (*btcjson.ListSinceBlockResult, error) { return rpc.ListSinceBlock(ctx, hash) }, @@ -329,7 +330,7 @@ func (b *Bitcoind) BumpFee(ctx context.Context, c *connect.Request[pb.BumpFeeReq Fee json.Number // new fee Errors []string // May be empty } - return withCancel[rawBumpFeeResponse, pb.BumpFeeResponse](ctx, + return withCancel(ctx, func(ctx context.Context) (rawBumpFeeResponse, error) { cmd, err := btcjson.NewCmd("bumpfee", c.Msg.Txid) if err != nil { @@ -655,7 +656,7 @@ func (b *Bitcoind) Send(ctx context.Context, c *connect.Request[pb.SendRequest]) return nil, err } - return withCancel[*btcjson.SendResult, pb.SendResponse](ctx, + return withCancel(ctx, func(ctx context.Context) (*btcjson.SendResult, error) { var outputs []btcjson.SendDestination for addr, amount := range c.Msg.Destinations { @@ -732,6 +733,47 @@ func (b *Bitcoind) Send(ctx context.Context, c *connect.Request[pb.SendRequest]) ) } +// SendToAddress implements bitcoindv1alphaconnect.BitcoinServiceHandler. +func (b *Bitcoind) SendToAddress(ctx context.Context, c *connect.Request[pb.SendToAddressRequest]) (*connect.Response[pb.SendToAddressResponse], error) { + rpc, err := b.rpcForWallet(ctx, c.Msg) + if err != nil { + return nil, err + } + + if c.Msg.Address == "" { + return nil, connect.NewError(connect.CodeInvalidArgument, errors.New("address is a required argument")) + } + + address, err := btcutil.DecodeAddress(c.Msg.Address, &chaincfg.MainNetParams) + if err != nil { + return nil, fmt.Errorf("address has invalid format: %w", err) + } + + amount, err := btcutil.NewAmount(c.Msg.Amount) + if err != nil { + return nil, fmt.Errorf("amount has invalid format: %w", err) + } + if amount <= 0 { + return nil, fmt.Errorf("amount must be greater than 0: %w", err) + } + + return withCancel(ctx, + func(ctx context.Context) (*chainhash.Hash, error) { + if c.Msg.Comment != "" || c.Msg.CommentTo != "" { + return rpc.SendToAddressComment(ctx, address, amount, c.Msg.Comment, c.Msg.CommentTo) + } + + return rpc.SendToAddress(ctx, address, amount) + }, + + func(r *chainhash.Hash) *pb.SendToAddressResponse { + return &pb.SendToAddressResponse{ + Txid: r.String(), + } + }, + ) +} + // DecodeRawTransaction implements bitcoindv1alphaconnect.BitcoinServiceHandler. func (b *Bitcoind) DecodeRawTransaction(ctx context.Context, c *connect.Request[pb.DecodeRawTransactionRequest]) (*connect.Response[pb.DecodeRawTransactionResponse], error) { if (len(c.Msg.GetTx().GetHex()) == 0) == (len(c.Msg.GetTx().GetData()) == 0) { @@ -749,7 +791,7 @@ func (b *Bitcoind) DecodeRawTransaction(ctx context.Context, c *connect.Request[ c.Msg.Tx.Data = decoded } - return withCancel[*btcjson.TxRawResult, pb.DecodeRawTransactionResponse]( + return withCancel( ctx, func(ctx context.Context) (*btcjson.TxRawResult, error) { return b.rpc.DecodeRawTransaction(ctx, c.Msg.Tx.Data) @@ -773,7 +815,7 @@ func (b *Bitcoind) DecodeRawTransaction(ctx context.Context, c *connect.Request[ // EstimateSmartFee implements bitcoindv1alphaconnect.BitcoinServiceHandler. func (b *Bitcoind) EstimateSmartFee(ctx context.Context, c *connect.Request[pb.EstimateSmartFeeRequest]) (*connect.Response[pb.EstimateSmartFeeResponse], error) { - return withCancel[*btcjson.EstimateSmartFeeResult, pb.EstimateSmartFeeResponse]( + return withCancel( ctx, func(ctx context.Context) (*btcjson.EstimateSmartFeeResult, error) { var estimateMode *btcjson.EstimateSmartFeeMode @@ -806,7 +848,7 @@ func (b *Bitcoind) GetBalances(ctx context.Context, c *connect.Request[pb.GetBal if err != nil { return nil, err } - return withCancel[*btcjson.GetBalancesResult, pb.GetBalancesResponse]( + return withCancel( ctx, rpc.GetBalances, func(r *btcjson.GetBalancesResult) *pb.GetBalancesResponse { var watchonly *pb.GetBalancesResponse_Watchonly @@ -860,7 +902,7 @@ func (b *Bitcoind) ImportDescriptors(ctx context.Context, c *connect.Request[pb. Error jsonRpcError `json:"error"` } - return withCancel[[]parsedDescriptorResponse, pb.ImportDescriptorsResponse]( + return withCancel( ctx, func(ctx context.Context) ([]parsedDescriptorResponse, error) { cmd := btcjson.ImportMultiCmd{ Requests: lo.Map(c.Msg.Requests, func(req *pb.ImportDescriptorsRequest_Request, idx int) btcjson.ImportMultiRequest { @@ -907,7 +949,7 @@ func (b *Bitcoind) ImportDescriptors(ctx context.Context, c *connect.Request[pb. // GetDescriptorInfo implements bitcoindv1alphaconnect.BitcoinServiceHandler. func (b *Bitcoind) GetDescriptorInfo(ctx context.Context, c *connect.Request[pb.GetDescriptorInfoRequest]) (*connect.Response[pb.GetDescriptorInfoResponse], error) { - return withCancel[*btcjson.GetDescriptorInfoResult, pb.GetDescriptorInfoResponse]( + return withCancel( ctx, func(ctx context.Context) (*btcjson.GetDescriptorInfoResult, error) { return b.rpc.GetDescriptorInfo(ctx, c.Msg.Descriptor_) }, @@ -928,7 +970,7 @@ func (b *Bitcoind) GetRawMempool(ctx context.Context, c *connect.Request[pb.GetR txids []*chainhash.Hash transactions map[string]btcjson.GetMempoolEntryResult } - return withCancel[maybeVerbose, pb.GetRawMempoolResponse]( + return withCancel( ctx, func(ctx context.Context) (maybeVerbose, error) { if !c.Msg.Verbose { res, err := b.rpc.GetRawMempool(ctx)