// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.23.0 // protoc v3.6.1 // source: walletrpc/walletkit.proto package walletrpc import ( context "context" proto "github.com/golang/protobuf/proto" lnrpc "github.com/lightningnetwork/lnd/lnrpc" signrpc "github.com/lightningnetwork/lnd/lnrpc/signrpc" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // This is a compile-time assertion that a sufficiently up-to-date version // of the legacy proto package is being used. const _ = proto.ProtoPackageIsVersion4 type AddressType int32 const ( AddressType_UNKNOWN AddressType = 0 AddressType_WITNESS_PUBKEY_HASH AddressType = 1 AddressType_NESTED_WITNESS_PUBKEY_HASH AddressType = 2 AddressType_HYBRID_NESTED_WITNESS_PUBKEY_HASH AddressType = 3 ) // Enum value maps for AddressType. var ( AddressType_name = map[int32]string{ 0: "UNKNOWN", 1: "WITNESS_PUBKEY_HASH", 2: "NESTED_WITNESS_PUBKEY_HASH", 3: "HYBRID_NESTED_WITNESS_PUBKEY_HASH", } AddressType_value = map[string]int32{ "UNKNOWN": 0, "WITNESS_PUBKEY_HASH": 1, "NESTED_WITNESS_PUBKEY_HASH": 2, "HYBRID_NESTED_WITNESS_PUBKEY_HASH": 3, } ) func (x AddressType) Enum() *AddressType { p := new(AddressType) *p = x return p } func (x AddressType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (AddressType) Descriptor() protoreflect.EnumDescriptor { return file_walletrpc_walletkit_proto_enumTypes[0].Descriptor() } func (AddressType) Type() protoreflect.EnumType { return &file_walletrpc_walletkit_proto_enumTypes[0] } func (x AddressType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use AddressType.Descriptor instead. func (AddressType) EnumDescriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{0} } type WitnessType int32 const ( WitnessType_UNKNOWN_WITNESS WitnessType = 0 // //A witness that allows us to spend the output of a commitment transaction //after a relative lock-time lockout. WitnessType_COMMITMENT_TIME_LOCK WitnessType = 1 // //A witness that allows us to spend a settled no-delay output immediately on a //counterparty's commitment transaction. WitnessType_COMMITMENT_NO_DELAY WitnessType = 2 // //A witness that allows us to sweep the settled output of a malicious //counterparty's who broadcasts a revoked commitment transaction. WitnessType_COMMITMENT_REVOKE WitnessType = 3 // //A witness that allows us to sweep an HTLC which we offered to the remote //party in the case that they broadcast a revoked commitment state. WitnessType_HTLC_OFFERED_REVOKE WitnessType = 4 // //A witness that allows us to sweep an HTLC output sent to us in the case that //the remote party broadcasts a revoked commitment state. WitnessType_HTLC_ACCEPTED_REVOKE WitnessType = 5 // //A witness that allows us to sweep an HTLC output that we extended to a //party, but was never fulfilled. This HTLC output isn't directly on the //commitment transaction, but is the result of a confirmed second-level HTLC //transaction. As a result, we can only spend this after a CSV delay. WitnessType_HTLC_OFFERED_TIMEOUT_SECOND_LEVEL WitnessType = 6 // //A witness that allows us to sweep an HTLC output that was offered to us, and //for which we have a payment preimage. This HTLC output isn't directly on our //commitment transaction, but is the result of confirmed second-level HTLC //transaction. As a result, we can only spend this after a CSV delay. WitnessType_HTLC_ACCEPTED_SUCCESS_SECOND_LEVEL WitnessType = 7 // //A witness that allows us to sweep an HTLC that we offered to the remote //party which lies in the commitment transaction of the remote party. We can //spend this output after the absolute CLTV timeout of the HTLC as passed. WitnessType_HTLC_OFFERED_REMOTE_TIMEOUT WitnessType = 8 // //A witness that allows us to sweep an HTLC that was offered to us by the //remote party. We use this witness in the case that the remote party goes to //chain, and we know the pre-image to the HTLC. We can sweep this without any //additional timeout. WitnessType_HTLC_ACCEPTED_REMOTE_SUCCESS WitnessType = 9 // //A witness that allows us to sweep an HTLC from the remote party's commitment //transaction in the case that the broadcast a revoked commitment, but then //also immediately attempt to go to the second level to claim the HTLC. WitnessType_HTLC_SECOND_LEVEL_REVOKE WitnessType = 10 // //A witness type that allows us to spend a regular p2wkh output that's sent to //an output which is under complete control of the backing wallet. WitnessType_WITNESS_KEY_HASH WitnessType = 11 // //A witness type that allows us to sweep an output that sends to a nested P2SH //script that pays to a key solely under our control. WitnessType_NESTED_WITNESS_KEY_HASH WitnessType = 12 // //A witness type that allows us to spend our anchor on the commitment //transaction. WitnessType_COMMITMENT_ANCHOR WitnessType = 13 ) // Enum value maps for WitnessType. var ( WitnessType_name = map[int32]string{ 0: "UNKNOWN_WITNESS", 1: "COMMITMENT_TIME_LOCK", 2: "COMMITMENT_NO_DELAY", 3: "COMMITMENT_REVOKE", 4: "HTLC_OFFERED_REVOKE", 5: "HTLC_ACCEPTED_REVOKE", 6: "HTLC_OFFERED_TIMEOUT_SECOND_LEVEL", 7: "HTLC_ACCEPTED_SUCCESS_SECOND_LEVEL", 8: "HTLC_OFFERED_REMOTE_TIMEOUT", 9: "HTLC_ACCEPTED_REMOTE_SUCCESS", 10: "HTLC_SECOND_LEVEL_REVOKE", 11: "WITNESS_KEY_HASH", 12: "NESTED_WITNESS_KEY_HASH", 13: "COMMITMENT_ANCHOR", } WitnessType_value = map[string]int32{ "UNKNOWN_WITNESS": 0, "COMMITMENT_TIME_LOCK": 1, "COMMITMENT_NO_DELAY": 2, "COMMITMENT_REVOKE": 3, "HTLC_OFFERED_REVOKE": 4, "HTLC_ACCEPTED_REVOKE": 5, "HTLC_OFFERED_TIMEOUT_SECOND_LEVEL": 6, "HTLC_ACCEPTED_SUCCESS_SECOND_LEVEL": 7, "HTLC_OFFERED_REMOTE_TIMEOUT": 8, "HTLC_ACCEPTED_REMOTE_SUCCESS": 9, "HTLC_SECOND_LEVEL_REVOKE": 10, "WITNESS_KEY_HASH": 11, "NESTED_WITNESS_KEY_HASH": 12, "COMMITMENT_ANCHOR": 13, } ) func (x WitnessType) Enum() *WitnessType { p := new(WitnessType) *p = x return p } func (x WitnessType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (WitnessType) Descriptor() protoreflect.EnumDescriptor { return file_walletrpc_walletkit_proto_enumTypes[1].Descriptor() } func (WitnessType) Type() protoreflect.EnumType { return &file_walletrpc_walletkit_proto_enumTypes[1] } func (x WitnessType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use WitnessType.Descriptor instead. func (WitnessType) EnumDescriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{1} } type ListUnspentRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The minimum number of confirmations to be included. MinConfs int32 `protobuf:"varint,1,opt,name=min_confs,json=minConfs,proto3" json:"min_confs,omitempty"` // The maximum number of confirmations to be included. MaxConfs int32 `protobuf:"varint,2,opt,name=max_confs,json=maxConfs,proto3" json:"max_confs,omitempty"` // An optional filter to only include outputs belonging to an account. Account string `protobuf:"bytes,3,opt,name=account,proto3" json:"account,omitempty"` } func (x *ListUnspentRequest) Reset() { *x = ListUnspentRequest{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListUnspentRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListUnspentRequest) ProtoMessage() {} func (x *ListUnspentRequest) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListUnspentRequest.ProtoReflect.Descriptor instead. func (*ListUnspentRequest) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{0} } func (x *ListUnspentRequest) GetMinConfs() int32 { if x != nil { return x.MinConfs } return 0 } func (x *ListUnspentRequest) GetMaxConfs() int32 { if x != nil { return x.MaxConfs } return 0 } func (x *ListUnspentRequest) GetAccount() string { if x != nil { return x.Account } return "" } type ListUnspentResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A list of utxos satisfying the specified number of confirmations. Utxos []*lnrpc.Utxo `protobuf:"bytes,1,rep,name=utxos,proto3" json:"utxos,omitempty"` } func (x *ListUnspentResponse) Reset() { *x = ListUnspentResponse{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListUnspentResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListUnspentResponse) ProtoMessage() {} func (x *ListUnspentResponse) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListUnspentResponse.ProtoReflect.Descriptor instead. func (*ListUnspentResponse) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{1} } func (x *ListUnspentResponse) GetUtxos() []*lnrpc.Utxo { if x != nil { return x.Utxos } return nil } type LeaseOutputRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //An ID of 32 random bytes that must be unique for each distinct application //using this RPC which will be used to bound the output lease to. Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // The identifying outpoint of the output being leased. Outpoint *lnrpc.OutPoint `protobuf:"bytes,2,opt,name=outpoint,proto3" json:"outpoint,omitempty"` // The time in seconds before the lock expires. If set to zero, the default // lock duration is used. ExpirationSeconds uint64 `protobuf:"varint,3,opt,name=expiration_seconds,json=expirationSeconds,proto3" json:"expiration_seconds,omitempty"` } func (x *LeaseOutputRequest) Reset() { *x = LeaseOutputRequest{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LeaseOutputRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*LeaseOutputRequest) ProtoMessage() {} func (x *LeaseOutputRequest) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LeaseOutputRequest.ProtoReflect.Descriptor instead. func (*LeaseOutputRequest) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{2} } func (x *LeaseOutputRequest) GetId() []byte { if x != nil { return x.Id } return nil } func (x *LeaseOutputRequest) GetOutpoint() *lnrpc.OutPoint { if x != nil { return x.Outpoint } return nil } func (x *LeaseOutputRequest) GetExpirationSeconds() uint64 { if x != nil { return x.ExpirationSeconds } return 0 } type LeaseOutputResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //The absolute expiration of the output lease represented as a unix timestamp. Expiration uint64 `protobuf:"varint,1,opt,name=expiration,proto3" json:"expiration,omitempty"` } func (x *LeaseOutputResponse) Reset() { *x = LeaseOutputResponse{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LeaseOutputResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*LeaseOutputResponse) ProtoMessage() {} func (x *LeaseOutputResponse) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LeaseOutputResponse.ProtoReflect.Descriptor instead. func (*LeaseOutputResponse) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{3} } func (x *LeaseOutputResponse) GetExpiration() uint64 { if x != nil { return x.Expiration } return 0 } type ReleaseOutputRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The unique ID that was used to lock the output. Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // The identifying outpoint of the output being released. Outpoint *lnrpc.OutPoint `protobuf:"bytes,2,opt,name=outpoint,proto3" json:"outpoint,omitempty"` } func (x *ReleaseOutputRequest) Reset() { *x = ReleaseOutputRequest{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReleaseOutputRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReleaseOutputRequest) ProtoMessage() {} func (x *ReleaseOutputRequest) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ReleaseOutputRequest.ProtoReflect.Descriptor instead. func (*ReleaseOutputRequest) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{4} } func (x *ReleaseOutputRequest) GetId() []byte { if x != nil { return x.Id } return nil } func (x *ReleaseOutputRequest) GetOutpoint() *lnrpc.OutPoint { if x != nil { return x.Outpoint } return nil } type ReleaseOutputResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReleaseOutputResponse) Reset() { *x = ReleaseOutputResponse{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReleaseOutputResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReleaseOutputResponse) ProtoMessage() {} func (x *ReleaseOutputResponse) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ReleaseOutputResponse.ProtoReflect.Descriptor instead. func (*ReleaseOutputResponse) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{5} } type KeyReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //Is the key finger print of the root pubkey that this request is targeting. //This allows the WalletKit to possibly serve out keys for multiple HD chains //via public derivation. KeyFingerPrint int32 `protobuf:"varint,1,opt,name=key_finger_print,json=keyFingerPrint,proto3" json:"key_finger_print,omitempty"` // //The target key family to derive a key from. In other contexts, this is //known as the "account". KeyFamily int32 `protobuf:"varint,2,opt,name=key_family,json=keyFamily,proto3" json:"key_family,omitempty"` } func (x *KeyReq) Reset() { *x = KeyReq{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *KeyReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*KeyReq) ProtoMessage() {} func (x *KeyReq) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use KeyReq.ProtoReflect.Descriptor instead. func (*KeyReq) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{6} } func (x *KeyReq) GetKeyFingerPrint() int32 { if x != nil { return x.KeyFingerPrint } return 0 } func (x *KeyReq) GetKeyFamily() int32 { if x != nil { return x.KeyFamily } return 0 } type AddrRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //The name of the account to retrieve the next address of. If empty, the //default wallet account is used. Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` } func (x *AddrRequest) Reset() { *x = AddrRequest{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AddrRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*AddrRequest) ProtoMessage() {} func (x *AddrRequest) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AddrRequest.ProtoReflect.Descriptor instead. func (*AddrRequest) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{7} } func (x *AddrRequest) GetAccount() string { if x != nil { return x.Account } return "" } type AddrResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //The address encoded using a bech32 format. Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"` } func (x *AddrResponse) Reset() { *x = AddrResponse{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AddrResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*AddrResponse) ProtoMessage() {} func (x *AddrResponse) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AddrResponse.ProtoReflect.Descriptor instead. func (*AddrResponse) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{8} } func (x *AddrResponse) GetAddr() string { if x != nil { return x.Addr } return "" } type Account struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The name used to identify the account. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // //The type of addresses the account supports. //AddressType | External Branch | Internal Branch //--------------------------------------------------------------------- //WITNESS_PUBKEY_HASH | P2WPKH | P2WPKH //NESTED_WITNESS_PUBKEY_HASH | NP2WPKH | NP2WPKH //HYBRID_NESTED_WITNESS_PUBKEY_HASH | NP2WPKH | P2WPKH AddressType AddressType `protobuf:"varint,2,opt,name=address_type,json=addressType,proto3,enum=walletrpc.AddressType" json:"address_type,omitempty"` // //The public key backing the account that all keys are derived from //represented as an extended key. This will always be empty for the default //imported account in which single public keys are imported into. ExtendedPublicKey string `protobuf:"bytes,3,opt,name=extended_public_key,json=extendedPublicKey,proto3" json:"extended_public_key,omitempty"` // //The fingerprint of the root key from which the account public key was //derived from. This will always be zero for the default imported account in //which single public keys are imported into. The bytes are in big-endian //order. MasterKeyFingerprint []byte `protobuf:"bytes,4,opt,name=master_key_fingerprint,json=masterKeyFingerprint,proto3" json:"master_key_fingerprint,omitempty"` // //The derivation path corresponding to the account public key. This will //always be empty for the default imported account in which single public keys //are imported into. DerivationPath string `protobuf:"bytes,5,opt,name=derivation_path,json=derivationPath,proto3" json:"derivation_path,omitempty"` // //The number of keys derived from the external branch of the account public //key. This will always be zero for the default imported account in which //single public keys are imported into. ExternalKeyCount uint32 `protobuf:"varint,6,opt,name=external_key_count,json=externalKeyCount,proto3" json:"external_key_count,omitempty"` // //The number of keys derived from the internal branch of the account public //key. This will always be zero for the default imported account in which //single public keys are imported into. InternalKeyCount uint32 `protobuf:"varint,7,opt,name=internal_key_count,json=internalKeyCount,proto3" json:"internal_key_count,omitempty"` // Whether the wallet stores private keys for the account. WatchOnly bool `protobuf:"varint,8,opt,name=watch_only,json=watchOnly,proto3" json:"watch_only,omitempty"` } func (x *Account) Reset() { *x = Account{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Account) String() string { return protoimpl.X.MessageStringOf(x) } func (*Account) ProtoMessage() {} func (x *Account) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Account.ProtoReflect.Descriptor instead. func (*Account) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{9} } func (x *Account) GetName() string { if x != nil { return x.Name } return "" } func (x *Account) GetAddressType() AddressType { if x != nil { return x.AddressType } return AddressType_UNKNOWN } func (x *Account) GetExtendedPublicKey() string { if x != nil { return x.ExtendedPublicKey } return "" } func (x *Account) GetMasterKeyFingerprint() []byte { if x != nil { return x.MasterKeyFingerprint } return nil } func (x *Account) GetDerivationPath() string { if x != nil { return x.DerivationPath } return "" } func (x *Account) GetExternalKeyCount() uint32 { if x != nil { return x.ExternalKeyCount } return 0 } func (x *Account) GetInternalKeyCount() uint32 { if x != nil { return x.InternalKeyCount } return 0 } func (x *Account) GetWatchOnly() bool { if x != nil { return x.WatchOnly } return false } type ListAccountsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // An optional filter to only return accounts matching this name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // An optional filter to only return accounts matching this address type. AddressType AddressType `protobuf:"varint,2,opt,name=address_type,json=addressType,proto3,enum=walletrpc.AddressType" json:"address_type,omitempty"` } func (x *ListAccountsRequest) Reset() { *x = ListAccountsRequest{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListAccountsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListAccountsRequest) ProtoMessage() {} func (x *ListAccountsRequest) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListAccountsRequest.ProtoReflect.Descriptor instead. func (*ListAccountsRequest) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{10} } func (x *ListAccountsRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *ListAccountsRequest) GetAddressType() AddressType { if x != nil { return x.AddressType } return AddressType_UNKNOWN } type ListAccountsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Accounts []*Account `protobuf:"bytes,1,rep,name=accounts,proto3" json:"accounts,omitempty"` } func (x *ListAccountsResponse) Reset() { *x = ListAccountsResponse{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListAccountsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListAccountsResponse) ProtoMessage() {} func (x *ListAccountsResponse) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListAccountsResponse.ProtoReflect.Descriptor instead. func (*ListAccountsResponse) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{11} } func (x *ListAccountsResponse) GetAccounts() []*Account { if x != nil { return x.Accounts } return nil } type ImportAccountRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A name to identify the account with. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // //A public key that corresponds to a wallet account represented as an extended //key. It must conform to a derivation path of the form //m/purpose'/coin_type'/account'. ExtendedPublicKey string `protobuf:"bytes,2,opt,name=extended_public_key,json=extendedPublicKey,proto3" json:"extended_public_key,omitempty"` // //The fingerprint of the root key (also known as the key with derivation path //m/) from which the account public key was derived from. This may be required //by some hardware wallets for proper identification and signing. The bytes //must be in big-endian order. MasterKeyFingerprint []byte `protobuf:"bytes,3,opt,name=master_key_fingerprint,json=masterKeyFingerprint,proto3" json:"master_key_fingerprint,omitempty"` // //An address type is only required when the extended account public key has a //legacy version (xpub, tpub, etc.), such that the wallet cannot detect what //address scheme it belongs to. AddressType AddressType `protobuf:"varint,4,opt,name=address_type,json=addressType,proto3,enum=walletrpc.AddressType" json:"address_type,omitempty"` // //Whether a dry run should be attempted when importing the account. This //serves as a way to confirm whether the account is being imported correctly //by returning the first N addresses for the external and internal branches of //the account. If these addresses match as expected, then it should be safe to //import the account as is. DryRun bool `protobuf:"varint,5,opt,name=dry_run,json=dryRun,proto3" json:"dry_run,omitempty"` } func (x *ImportAccountRequest) Reset() { *x = ImportAccountRequest{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ImportAccountRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ImportAccountRequest) ProtoMessage() {} func (x *ImportAccountRequest) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ImportAccountRequest.ProtoReflect.Descriptor instead. func (*ImportAccountRequest) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{12} } func (x *ImportAccountRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *ImportAccountRequest) GetExtendedPublicKey() string { if x != nil { return x.ExtendedPublicKey } return "" } func (x *ImportAccountRequest) GetMasterKeyFingerprint() []byte { if x != nil { return x.MasterKeyFingerprint } return nil } func (x *ImportAccountRequest) GetAddressType() AddressType { if x != nil { return x.AddressType } return AddressType_UNKNOWN } func (x *ImportAccountRequest) GetDryRun() bool { if x != nil { return x.DryRun } return false } type ImportAccountResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The details of the imported account. Account *Account `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` // //The first N addresses that belong to the external branch of the account. //The external branch is typically used for external non-change addresses. //These are only returned if a dry run was specified within the request. DryRunExternalAddrs []string `protobuf:"bytes,2,rep,name=dry_run_external_addrs,json=dryRunExternalAddrs,proto3" json:"dry_run_external_addrs,omitempty"` // //The first N addresses that belong to the internal branch of the account. //The internal branch is typically used for change addresses. These are only //returned if a dry run was specified within the request. DryRunInternalAddrs []string `protobuf:"bytes,3,rep,name=dry_run_internal_addrs,json=dryRunInternalAddrs,proto3" json:"dry_run_internal_addrs,omitempty"` } func (x *ImportAccountResponse) Reset() { *x = ImportAccountResponse{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ImportAccountResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ImportAccountResponse) ProtoMessage() {} func (x *ImportAccountResponse) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ImportAccountResponse.ProtoReflect.Descriptor instead. func (*ImportAccountResponse) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{13} } func (x *ImportAccountResponse) GetAccount() *Account { if x != nil { return x.Account } return nil } func (x *ImportAccountResponse) GetDryRunExternalAddrs() []string { if x != nil { return x.DryRunExternalAddrs } return nil } func (x *ImportAccountResponse) GetDryRunInternalAddrs() []string { if x != nil { return x.DryRunInternalAddrs } return nil } type ImportPublicKeyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A compressed public key represented as raw bytes. PublicKey []byte `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` // The type of address that will be generated from the public key. AddressType AddressType `protobuf:"varint,2,opt,name=address_type,json=addressType,proto3,enum=walletrpc.AddressType" json:"address_type,omitempty"` } func (x *ImportPublicKeyRequest) Reset() { *x = ImportPublicKeyRequest{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ImportPublicKeyRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ImportPublicKeyRequest) ProtoMessage() {} func (x *ImportPublicKeyRequest) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ImportPublicKeyRequest.ProtoReflect.Descriptor instead. func (*ImportPublicKeyRequest) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{14} } func (x *ImportPublicKeyRequest) GetPublicKey() []byte { if x != nil { return x.PublicKey } return nil } func (x *ImportPublicKeyRequest) GetAddressType() AddressType { if x != nil { return x.AddressType } return AddressType_UNKNOWN } type ImportPublicKeyResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ImportPublicKeyResponse) Reset() { *x = ImportPublicKeyResponse{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ImportPublicKeyResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ImportPublicKeyResponse) ProtoMessage() {} func (x *ImportPublicKeyResponse) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ImportPublicKeyResponse.ProtoReflect.Descriptor instead. func (*ImportPublicKeyResponse) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{15} } type Transaction struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //The raw serialized transaction. TxHex []byte `protobuf:"bytes,1,opt,name=tx_hex,json=txHex,proto3" json:"tx_hex,omitempty"` // //An optional label to save with the transaction. Limited to 500 characters. Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"` } func (x *Transaction) Reset() { *x = Transaction{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Transaction) String() string { return protoimpl.X.MessageStringOf(x) } func (*Transaction) ProtoMessage() {} func (x *Transaction) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Transaction.ProtoReflect.Descriptor instead. func (*Transaction) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{16} } func (x *Transaction) GetTxHex() []byte { if x != nil { return x.TxHex } return nil } func (x *Transaction) GetLabel() string { if x != nil { return x.Label } return "" } type PublishResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //If blank, then no error occurred and the transaction was successfully //published. If not the empty string, then a string representation of the //broadcast error. // //TODO(roasbeef): map to a proper enum type PublishError string `protobuf:"bytes,1,opt,name=publish_error,json=publishError,proto3" json:"publish_error,omitempty"` } func (x *PublishResponse) Reset() { *x = PublishResponse{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PublishResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*PublishResponse) ProtoMessage() {} func (x *PublishResponse) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PublishResponse.ProtoReflect.Descriptor instead. func (*PublishResponse) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{17} } func (x *PublishResponse) GetPublishError() string { if x != nil { return x.PublishError } return "" } type SendOutputsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //The number of satoshis per kilo weight that should be used when crafting //this transaction. SatPerKw int64 `protobuf:"varint,1,opt,name=sat_per_kw,json=satPerKw,proto3" json:"sat_per_kw,omitempty"` // //A slice of the outputs that should be created in the transaction produced. Outputs []*signrpc.TxOut `protobuf:"bytes,2,rep,name=outputs,proto3" json:"outputs,omitempty"` // An optional label for the transaction, limited to 500 characters. Label string `protobuf:"bytes,3,opt,name=label,proto3" json:"label,omitempty"` // The minimum number of confirmations each one of your outputs used for // the transaction must satisfy. MinConfs int32 `protobuf:"varint,4,opt,name=min_confs,json=minConfs,proto3" json:"min_confs,omitempty"` // Whether unconfirmed outputs should be used as inputs for the transaction. SpendUnconfirmed bool `protobuf:"varint,5,opt,name=spend_unconfirmed,json=spendUnconfirmed,proto3" json:"spend_unconfirmed,omitempty"` } func (x *SendOutputsRequest) Reset() { *x = SendOutputsRequest{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SendOutputsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SendOutputsRequest) ProtoMessage() {} func (x *SendOutputsRequest) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_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 SendOutputsRequest.ProtoReflect.Descriptor instead. func (*SendOutputsRequest) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{18} } func (x *SendOutputsRequest) GetSatPerKw() int64 { if x != nil { return x.SatPerKw } return 0 } func (x *SendOutputsRequest) GetOutputs() []*signrpc.TxOut { if x != nil { return x.Outputs } return nil } func (x *SendOutputsRequest) GetLabel() string { if x != nil { return x.Label } return "" } func (x *SendOutputsRequest) GetMinConfs() int32 { if x != nil { return x.MinConfs } return 0 } func (x *SendOutputsRequest) GetSpendUnconfirmed() bool { if x != nil { return x.SpendUnconfirmed } return false } type SendOutputsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //The serialized transaction sent out on the network. RawTx []byte `protobuf:"bytes,1,opt,name=raw_tx,json=rawTx,proto3" json:"raw_tx,omitempty"` } func (x *SendOutputsResponse) Reset() { *x = SendOutputsResponse{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SendOutputsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*SendOutputsResponse) ProtoMessage() {} func (x *SendOutputsResponse) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_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 SendOutputsResponse.ProtoReflect.Descriptor instead. func (*SendOutputsResponse) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{19} } func (x *SendOutputsResponse) GetRawTx() []byte { if x != nil { return x.RawTx } return nil } type EstimateFeeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //The number of confirmations to shoot for when estimating the fee. ConfTarget int32 `protobuf:"varint,1,opt,name=conf_target,json=confTarget,proto3" json:"conf_target,omitempty"` } func (x *EstimateFeeRequest) Reset() { *x = EstimateFeeRequest{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EstimateFeeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*EstimateFeeRequest) ProtoMessage() {} func (x *EstimateFeeRequest) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use EstimateFeeRequest.ProtoReflect.Descriptor instead. func (*EstimateFeeRequest) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{20} } func (x *EstimateFeeRequest) GetConfTarget() int32 { if x != nil { return x.ConfTarget } return 0 } type EstimateFeeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //The amount of satoshis per kw that should be used in order to reach the //confirmation target in the request. SatPerKw int64 `protobuf:"varint,1,opt,name=sat_per_kw,json=satPerKw,proto3" json:"sat_per_kw,omitempty"` } func (x *EstimateFeeResponse) Reset() { *x = EstimateFeeResponse{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EstimateFeeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*EstimateFeeResponse) ProtoMessage() {} func (x *EstimateFeeResponse) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use EstimateFeeResponse.ProtoReflect.Descriptor instead. func (*EstimateFeeResponse) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{21} } func (x *EstimateFeeResponse) GetSatPerKw() int64 { if x != nil { return x.SatPerKw } return 0 } type PendingSweep struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The outpoint of the output we're attempting to sweep. Outpoint *lnrpc.OutPoint `protobuf:"bytes,1,opt,name=outpoint,proto3" json:"outpoint,omitempty"` // The witness type of the output we're attempting to sweep. WitnessType WitnessType `protobuf:"varint,2,opt,name=witness_type,json=witnessType,proto3,enum=walletrpc.WitnessType" json:"witness_type,omitempty"` // The value of the output we're attempting to sweep. AmountSat uint32 `protobuf:"varint,3,opt,name=amount_sat,json=amountSat,proto3" json:"amount_sat,omitempty"` // //Deprecated, use sat_per_vbyte. //The fee rate we'll use to sweep the output, expressed in sat/vbyte. The fee //rate is only determined once a sweeping transaction for the output is //created, so it's possible for this to be 0 before this. // // Deprecated: Do not use. SatPerByte uint32 `protobuf:"varint,4,opt,name=sat_per_byte,json=satPerByte,proto3" json:"sat_per_byte,omitempty"` // The number of broadcast attempts we've made to sweep the output. BroadcastAttempts uint32 `protobuf:"varint,5,opt,name=broadcast_attempts,json=broadcastAttempts,proto3" json:"broadcast_attempts,omitempty"` // //The next height of the chain at which we'll attempt to broadcast the //sweep transaction of the output. NextBroadcastHeight uint32 `protobuf:"varint,6,opt,name=next_broadcast_height,json=nextBroadcastHeight,proto3" json:"next_broadcast_height,omitempty"` // The requested confirmation target for this output. RequestedConfTarget uint32 `protobuf:"varint,8,opt,name=requested_conf_target,json=requestedConfTarget,proto3" json:"requested_conf_target,omitempty"` // Deprecated, use requested_sat_per_vbyte. // The requested fee rate, expressed in sat/vbyte, for this output. // // Deprecated: Do not use. RequestedSatPerByte uint32 `protobuf:"varint,9,opt,name=requested_sat_per_byte,json=requestedSatPerByte,proto3" json:"requested_sat_per_byte,omitempty"` // //The fee rate we'll use to sweep the output, expressed in sat/vbyte. The fee //rate is only determined once a sweeping transaction for the output is //created, so it's possible for this to be 0 before this. SatPerVbyte uint64 `protobuf:"varint,10,opt,name=sat_per_vbyte,json=satPerVbyte,proto3" json:"sat_per_vbyte,omitempty"` // The requested fee rate, expressed in sat/vbyte, for this output. RequestedSatPerVbyte uint64 `protobuf:"varint,11,opt,name=requested_sat_per_vbyte,json=requestedSatPerVbyte,proto3" json:"requested_sat_per_vbyte,omitempty"` // //Whether this input must be force-swept. This means that it is swept even //if it has a negative yield. Force bool `protobuf:"varint,7,opt,name=force,proto3" json:"force,omitempty"` } func (x *PendingSweep) Reset() { *x = PendingSweep{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PendingSweep) String() string { return protoimpl.X.MessageStringOf(x) } func (*PendingSweep) ProtoMessage() {} func (x *PendingSweep) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PendingSweep.ProtoReflect.Descriptor instead. func (*PendingSweep) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{22} } func (x *PendingSweep) GetOutpoint() *lnrpc.OutPoint { if x != nil { return x.Outpoint } return nil } func (x *PendingSweep) GetWitnessType() WitnessType { if x != nil { return x.WitnessType } return WitnessType_UNKNOWN_WITNESS } func (x *PendingSweep) GetAmountSat() uint32 { if x != nil { return x.AmountSat } return 0 } // Deprecated: Do not use. func (x *PendingSweep) GetSatPerByte() uint32 { if x != nil { return x.SatPerByte } return 0 } func (x *PendingSweep) GetBroadcastAttempts() uint32 { if x != nil { return x.BroadcastAttempts } return 0 } func (x *PendingSweep) GetNextBroadcastHeight() uint32 { if x != nil { return x.NextBroadcastHeight } return 0 } func (x *PendingSweep) GetRequestedConfTarget() uint32 { if x != nil { return x.RequestedConfTarget } return 0 } // Deprecated: Do not use. func (x *PendingSweep) GetRequestedSatPerByte() uint32 { if x != nil { return x.RequestedSatPerByte } return 0 } func (x *PendingSweep) GetSatPerVbyte() uint64 { if x != nil { return x.SatPerVbyte } return 0 } func (x *PendingSweep) GetRequestedSatPerVbyte() uint64 { if x != nil { return x.RequestedSatPerVbyte } return 0 } func (x *PendingSweep) GetForce() bool { if x != nil { return x.Force } return false } type PendingSweepsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *PendingSweepsRequest) Reset() { *x = PendingSweepsRequest{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PendingSweepsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*PendingSweepsRequest) ProtoMessage() {} func (x *PendingSweepsRequest) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PendingSweepsRequest.ProtoReflect.Descriptor instead. func (*PendingSweepsRequest) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{23} } type PendingSweepsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //The set of outputs currently being swept by lnd's central batching engine. PendingSweeps []*PendingSweep `protobuf:"bytes,1,rep,name=pending_sweeps,json=pendingSweeps,proto3" json:"pending_sweeps,omitempty"` } func (x *PendingSweepsResponse) Reset() { *x = PendingSweepsResponse{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PendingSweepsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*PendingSweepsResponse) ProtoMessage() {} func (x *PendingSweepsResponse) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PendingSweepsResponse.ProtoReflect.Descriptor instead. func (*PendingSweepsResponse) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{24} } func (x *PendingSweepsResponse) GetPendingSweeps() []*PendingSweep { if x != nil { return x.PendingSweeps } return nil } type BumpFeeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The input we're attempting to bump the fee of. Outpoint *lnrpc.OutPoint `protobuf:"bytes,1,opt,name=outpoint,proto3" json:"outpoint,omitempty"` // The target number of blocks that the input should be spent within. TargetConf uint32 `protobuf:"varint,2,opt,name=target_conf,json=targetConf,proto3" json:"target_conf,omitempty"` // //Deprecated, use sat_per_vbyte. //The fee rate, expressed in sat/vbyte, that should be used to spend the input //with. // // Deprecated: Do not use. SatPerByte uint32 `protobuf:"varint,3,opt,name=sat_per_byte,json=satPerByte,proto3" json:"sat_per_byte,omitempty"` // //Whether this input must be force-swept. This means that it is swept even //if it has a negative yield. Force bool `protobuf:"varint,4,opt,name=force,proto3" json:"force,omitempty"` // //The fee rate, expressed in sat/vbyte, that should be used to spend the input //with. SatPerVbyte uint64 `protobuf:"varint,5,opt,name=sat_per_vbyte,json=satPerVbyte,proto3" json:"sat_per_vbyte,omitempty"` } func (x *BumpFeeRequest) Reset() { *x = BumpFeeRequest{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BumpFeeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*BumpFeeRequest) ProtoMessage() {} func (x *BumpFeeRequest) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BumpFeeRequest.ProtoReflect.Descriptor instead. func (*BumpFeeRequest) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{25} } func (x *BumpFeeRequest) GetOutpoint() *lnrpc.OutPoint { if x != nil { return x.Outpoint } return nil } func (x *BumpFeeRequest) GetTargetConf() uint32 { if x != nil { return x.TargetConf } return 0 } // Deprecated: Do not use. func (x *BumpFeeRequest) GetSatPerByte() uint32 { if x != nil { return x.SatPerByte } return 0 } func (x *BumpFeeRequest) GetForce() bool { if x != nil { return x.Force } return false } func (x *BumpFeeRequest) GetSatPerVbyte() uint64 { if x != nil { return x.SatPerVbyte } return 0 } type BumpFeeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *BumpFeeResponse) Reset() { *x = BumpFeeResponse{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BumpFeeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*BumpFeeResponse) ProtoMessage() {} func (x *BumpFeeResponse) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BumpFeeResponse.ProtoReflect.Descriptor instead. func (*BumpFeeResponse) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{26} } type ListSweepsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //Retrieve the full sweep transaction details. If false, only the sweep txids //will be returned. Note that some sweeps that LND publishes will have been //replaced-by-fee, so will not be included in this output. Verbose bool `protobuf:"varint,1,opt,name=verbose,proto3" json:"verbose,omitempty"` } func (x *ListSweepsRequest) Reset() { *x = ListSweepsRequest{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListSweepsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListSweepsRequest) ProtoMessage() {} func (x *ListSweepsRequest) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListSweepsRequest.ProtoReflect.Descriptor instead. func (*ListSweepsRequest) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{27} } func (x *ListSweepsRequest) GetVerbose() bool { if x != nil { return x.Verbose } return false } type ListSweepsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Sweeps: // *ListSweepsResponse_TransactionDetails // *ListSweepsResponse_TransactionIds Sweeps isListSweepsResponse_Sweeps `protobuf_oneof:"sweeps"` } func (x *ListSweepsResponse) Reset() { *x = ListSweepsResponse{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListSweepsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListSweepsResponse) ProtoMessage() {} func (x *ListSweepsResponse) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListSweepsResponse.ProtoReflect.Descriptor instead. func (*ListSweepsResponse) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{28} } func (m *ListSweepsResponse) GetSweeps() isListSweepsResponse_Sweeps { if m != nil { return m.Sweeps } return nil } func (x *ListSweepsResponse) GetTransactionDetails() *lnrpc.TransactionDetails { if x, ok := x.GetSweeps().(*ListSweepsResponse_TransactionDetails); ok { return x.TransactionDetails } return nil } func (x *ListSweepsResponse) GetTransactionIds() *ListSweepsResponse_TransactionIDs { if x, ok := x.GetSweeps().(*ListSweepsResponse_TransactionIds); ok { return x.TransactionIds } return nil } type isListSweepsResponse_Sweeps interface { isListSweepsResponse_Sweeps() } type ListSweepsResponse_TransactionDetails struct { TransactionDetails *lnrpc.TransactionDetails `protobuf:"bytes,1,opt,name=transaction_details,json=transactionDetails,proto3,oneof"` } type ListSweepsResponse_TransactionIds struct { TransactionIds *ListSweepsResponse_TransactionIDs `protobuf:"bytes,2,opt,name=transaction_ids,json=transactionIds,proto3,oneof"` } func (*ListSweepsResponse_TransactionDetails) isListSweepsResponse_Sweeps() {} func (*ListSweepsResponse_TransactionIds) isListSweepsResponse_Sweeps() {} type LabelTransactionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The txid of the transaction to label. Txid []byte `protobuf:"bytes,1,opt,name=txid,proto3" json:"txid,omitempty"` // The label to add to the transaction, limited to 500 characters. Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"` // Whether to overwrite the existing label, if it is present. Overwrite bool `protobuf:"varint,3,opt,name=overwrite,proto3" json:"overwrite,omitempty"` } func (x *LabelTransactionRequest) Reset() { *x = LabelTransactionRequest{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LabelTransactionRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*LabelTransactionRequest) ProtoMessage() {} func (x *LabelTransactionRequest) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LabelTransactionRequest.ProtoReflect.Descriptor instead. func (*LabelTransactionRequest) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{29} } func (x *LabelTransactionRequest) GetTxid() []byte { if x != nil { return x.Txid } return nil } func (x *LabelTransactionRequest) GetLabel() string { if x != nil { return x.Label } return "" } func (x *LabelTransactionRequest) GetOverwrite() bool { if x != nil { return x.Overwrite } return false } type LabelTransactionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *LabelTransactionResponse) Reset() { *x = LabelTransactionResponse{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LabelTransactionResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*LabelTransactionResponse) ProtoMessage() {} func (x *LabelTransactionResponse) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LabelTransactionResponse.ProtoReflect.Descriptor instead. func (*LabelTransactionResponse) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{30} } type FundPsbtRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Template: // *FundPsbtRequest_Psbt // *FundPsbtRequest_Raw Template isFundPsbtRequest_Template `protobuf_oneof:"template"` // Types that are assignable to Fees: // *FundPsbtRequest_TargetConf // *FundPsbtRequest_SatPerVbyte Fees isFundPsbtRequest_Fees `protobuf_oneof:"fees"` // //The name of the account to fund the PSBT with. If empty, the default wallet //account is used. Account string `protobuf:"bytes,5,opt,name=account,proto3" json:"account,omitempty"` // The minimum number of confirmations each one of your outputs used for // the transaction must satisfy. MinConfs int32 `protobuf:"varint,6,opt,name=min_confs,json=minConfs,proto3" json:"min_confs,omitempty"` // Whether unconfirmed outputs should be used as inputs for the transaction. SpendUnconfirmed bool `protobuf:"varint,7,opt,name=spend_unconfirmed,json=spendUnconfirmed,proto3" json:"spend_unconfirmed,omitempty"` } func (x *FundPsbtRequest) Reset() { *x = FundPsbtRequest{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FundPsbtRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FundPsbtRequest) ProtoMessage() {} func (x *FundPsbtRequest) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FundPsbtRequest.ProtoReflect.Descriptor instead. func (*FundPsbtRequest) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{31} } func (m *FundPsbtRequest) GetTemplate() isFundPsbtRequest_Template { if m != nil { return m.Template } return nil } func (x *FundPsbtRequest) GetPsbt() []byte { if x, ok := x.GetTemplate().(*FundPsbtRequest_Psbt); ok { return x.Psbt } return nil } func (x *FundPsbtRequest) GetRaw() *TxTemplate { if x, ok := x.GetTemplate().(*FundPsbtRequest_Raw); ok { return x.Raw } return nil } func (m *FundPsbtRequest) GetFees() isFundPsbtRequest_Fees { if m != nil { return m.Fees } return nil } func (x *FundPsbtRequest) GetTargetConf() uint32 { if x, ok := x.GetFees().(*FundPsbtRequest_TargetConf); ok { return x.TargetConf } return 0 } func (x *FundPsbtRequest) GetSatPerVbyte() uint64 { if x, ok := x.GetFees().(*FundPsbtRequest_SatPerVbyte); ok { return x.SatPerVbyte } return 0 } func (x *FundPsbtRequest) GetAccount() string { if x != nil { return x.Account } return "" } func (x *FundPsbtRequest) GetMinConfs() int32 { if x != nil { return x.MinConfs } return 0 } func (x *FundPsbtRequest) GetSpendUnconfirmed() bool { if x != nil { return x.SpendUnconfirmed } return false } type isFundPsbtRequest_Template interface { isFundPsbtRequest_Template() } type FundPsbtRequest_Psbt struct { // //Use an existing PSBT packet as the template for the funded PSBT. // //The packet must contain at least one non-dust output. If one or more //inputs are specified, no coin selection is performed. In that case every //input must be an UTXO known to the wallet that has not been locked //before. The sum of all inputs must be sufficiently greater than the sum //of all outputs to pay a miner fee with the specified fee rate. A change //output is added to the PSBT if necessary. Psbt []byte `protobuf:"bytes,1,opt,name=psbt,proto3,oneof"` } type FundPsbtRequest_Raw struct { // //Use the outputs and optional inputs from this raw template. Raw *TxTemplate `protobuf:"bytes,2,opt,name=raw,proto3,oneof"` } func (*FundPsbtRequest_Psbt) isFundPsbtRequest_Template() {} func (*FundPsbtRequest_Raw) isFundPsbtRequest_Template() {} type isFundPsbtRequest_Fees interface { isFundPsbtRequest_Fees() } type FundPsbtRequest_TargetConf struct { // //The target number of blocks that the transaction should be confirmed in. TargetConf uint32 `protobuf:"varint,3,opt,name=target_conf,json=targetConf,proto3,oneof"` } type FundPsbtRequest_SatPerVbyte struct { // //The fee rate, expressed in sat/vbyte, that should be used to spend the //input with. SatPerVbyte uint64 `protobuf:"varint,4,opt,name=sat_per_vbyte,json=satPerVbyte,proto3,oneof"` } func (*FundPsbtRequest_TargetConf) isFundPsbtRequest_Fees() {} func (*FundPsbtRequest_SatPerVbyte) isFundPsbtRequest_Fees() {} type FundPsbtResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //The funded but not yet signed PSBT packet. FundedPsbt []byte `protobuf:"bytes,1,opt,name=funded_psbt,json=fundedPsbt,proto3" json:"funded_psbt,omitempty"` // //The index of the added change output or -1 if no change was left over. ChangeOutputIndex int32 `protobuf:"varint,2,opt,name=change_output_index,json=changeOutputIndex,proto3" json:"change_output_index,omitempty"` // //The list of lock leases that were acquired for the inputs in the funded PSBT //packet. LockedUtxos []*UtxoLease `protobuf:"bytes,3,rep,name=locked_utxos,json=lockedUtxos,proto3" json:"locked_utxos,omitempty"` } func (x *FundPsbtResponse) Reset() { *x = FundPsbtResponse{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FundPsbtResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FundPsbtResponse) ProtoMessage() {} func (x *FundPsbtResponse) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FundPsbtResponse.ProtoReflect.Descriptor instead. func (*FundPsbtResponse) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{32} } func (x *FundPsbtResponse) GetFundedPsbt() []byte { if x != nil { return x.FundedPsbt } return nil } func (x *FundPsbtResponse) GetChangeOutputIndex() int32 { if x != nil { return x.ChangeOutputIndex } return 0 } func (x *FundPsbtResponse) GetLockedUtxos() []*UtxoLease { if x != nil { return x.LockedUtxos } return nil } type TxTemplate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //An optional list of inputs to use. Every input must be an UTXO known to the //wallet that has not been locked before. The sum of all inputs must be //sufficiently greater than the sum of all outputs to pay a miner fee with the //fee rate specified in the parent message. // //If no inputs are specified, coin selection will be performed instead and //inputs of sufficient value will be added to the resulting PSBT. Inputs []*lnrpc.OutPoint `protobuf:"bytes,1,rep,name=inputs,proto3" json:"inputs,omitempty"` // //A map of all addresses and the amounts to send to in the funded PSBT. Outputs map[string]uint64 `protobuf:"bytes,2,rep,name=outputs,proto3" json:"outputs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *TxTemplate) Reset() { *x = TxTemplate{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TxTemplate) String() string { return protoimpl.X.MessageStringOf(x) } func (*TxTemplate) ProtoMessage() {} func (x *TxTemplate) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TxTemplate.ProtoReflect.Descriptor instead. func (*TxTemplate) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{33} } func (x *TxTemplate) GetInputs() []*lnrpc.OutPoint { if x != nil { return x.Inputs } return nil } func (x *TxTemplate) GetOutputs() map[string]uint64 { if x != nil { return x.Outputs } return nil } type UtxoLease struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //A 32 byte random ID that identifies the lease. Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // The identifying outpoint of the output being leased. Outpoint *lnrpc.OutPoint `protobuf:"bytes,2,opt,name=outpoint,proto3" json:"outpoint,omitempty"` // //The absolute expiration of the output lease represented as a unix timestamp. Expiration uint64 `protobuf:"varint,3,opt,name=expiration,proto3" json:"expiration,omitempty"` } func (x *UtxoLease) Reset() { *x = UtxoLease{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UtxoLease) String() string { return protoimpl.X.MessageStringOf(x) } func (*UtxoLease) ProtoMessage() {} func (x *UtxoLease) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UtxoLease.ProtoReflect.Descriptor instead. func (*UtxoLease) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{34} } func (x *UtxoLease) GetId() []byte { if x != nil { return x.Id } return nil } func (x *UtxoLease) GetOutpoint() *lnrpc.OutPoint { if x != nil { return x.Outpoint } return nil } func (x *UtxoLease) GetExpiration() uint64 { if x != nil { return x.Expiration } return 0 } type FinalizePsbtRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //A PSBT that should be signed and finalized. The PSBT must contain all //required inputs, outputs, UTXO data and partial signatures of all other //signers. FundedPsbt []byte `protobuf:"bytes,1,opt,name=funded_psbt,json=fundedPsbt,proto3" json:"funded_psbt,omitempty"` // //The name of the account to finalize the PSBT with. If empty, the default //wallet account is used. Account string `protobuf:"bytes,5,opt,name=account,proto3" json:"account,omitempty"` } func (x *FinalizePsbtRequest) Reset() { *x = FinalizePsbtRequest{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FinalizePsbtRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FinalizePsbtRequest) ProtoMessage() {} func (x *FinalizePsbtRequest) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FinalizePsbtRequest.ProtoReflect.Descriptor instead. func (*FinalizePsbtRequest) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{35} } func (x *FinalizePsbtRequest) GetFundedPsbt() []byte { if x != nil { return x.FundedPsbt } return nil } func (x *FinalizePsbtRequest) GetAccount() string { if x != nil { return x.Account } return "" } type FinalizePsbtResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The fully signed and finalized transaction in PSBT format. SignedPsbt []byte `protobuf:"bytes,1,opt,name=signed_psbt,json=signedPsbt,proto3" json:"signed_psbt,omitempty"` // The fully signed and finalized transaction in the raw wire format. RawFinalTx []byte `protobuf:"bytes,2,opt,name=raw_final_tx,json=rawFinalTx,proto3" json:"raw_final_tx,omitempty"` } func (x *FinalizePsbtResponse) Reset() { *x = FinalizePsbtResponse{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FinalizePsbtResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FinalizePsbtResponse) ProtoMessage() {} func (x *FinalizePsbtResponse) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FinalizePsbtResponse.ProtoReflect.Descriptor instead. func (*FinalizePsbtResponse) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{36} } func (x *FinalizePsbtResponse) GetSignedPsbt() []byte { if x != nil { return x.SignedPsbt } return nil } func (x *FinalizePsbtResponse) GetRawFinalTx() []byte { if x != nil { return x.RawFinalTx } return nil } type ListLeasesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ListLeasesRequest) Reset() { *x = ListLeasesRequest{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListLeasesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListLeasesRequest) ProtoMessage() {} func (x *ListLeasesRequest) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListLeasesRequest.ProtoReflect.Descriptor instead. func (*ListLeasesRequest) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{37} } type ListLeasesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The list of currently leased utxos. LockedUtxos []*UtxoLease `protobuf:"bytes,1,rep,name=locked_utxos,json=lockedUtxos,proto3" json:"locked_utxos,omitempty"` } func (x *ListLeasesResponse) Reset() { *x = ListLeasesResponse{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListLeasesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListLeasesResponse) ProtoMessage() {} func (x *ListLeasesResponse) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListLeasesResponse.ProtoReflect.Descriptor instead. func (*ListLeasesResponse) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{38} } func (x *ListLeasesResponse) GetLockedUtxos() []*UtxoLease { if x != nil { return x.LockedUtxos } return nil } type ListSweepsResponse_TransactionIDs struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //Reversed, hex-encoded string representing the transaction ids of the //sweeps that our node has broadcast. Note that these transactions may //not have confirmed yet, we record sweeps on broadcast, not confirmation. TransactionIds []string `protobuf:"bytes,1,rep,name=transaction_ids,json=transactionIds,proto3" json:"transaction_ids,omitempty"` } func (x *ListSweepsResponse_TransactionIDs) Reset() { *x = ListSweepsResponse_TransactionIDs{} if protoimpl.UnsafeEnabled { mi := &file_walletrpc_walletkit_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListSweepsResponse_TransactionIDs) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListSweepsResponse_TransactionIDs) ProtoMessage() {} func (x *ListSweepsResponse_TransactionIDs) ProtoReflect() protoreflect.Message { mi := &file_walletrpc_walletkit_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListSweepsResponse_TransactionIDs.ProtoReflect.Descriptor instead. func (*ListSweepsResponse_TransactionIDs) Descriptor() ([]byte, []int) { return file_walletrpc_walletkit_proto_rawDescGZIP(), []int{28, 0} } func (x *ListSweepsResponse_TransactionIDs) GetTransactionIds() []string { if x != nil { return x.TransactionIds } return nil } var File_walletrpc_walletkit_proto protoreflect.FileDescriptor var file_walletrpc_walletkit_proto_rawDesc = []byte{ 0x0a, 0x19, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x6b, 0x69, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x1a, 0x09, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x73, 0x69, 0x67, 0x6e, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x68, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x66, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x38, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x74, 0x78, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x74, 0x78, 0x6f, 0x52, 0x05, 0x75, 0x74, 0x78, 0x6f, 0x73, 0x22, 0x80, 0x01, 0x0a, 0x12, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x35, 0x0a, 0x13, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x53, 0x0a, 0x14, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x17, 0x0a, 0x15, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x0a, 0x06, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x10, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6b, 0x65, 0x79, 0x46, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6b, 0x65, 0x79, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x27, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x22, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x22, 0xe2, 0x02, 0x0a, 0x07, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x34, 0x0a, 0x16, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x77, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0x64, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x46, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0xe4, 0x01, 0x0a, 0x14, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x34, 0x0a, 0x16, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x22, 0xaf, 0x01, 0x0a, 0x15, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x16, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x73, 0x12, 0x33, 0x0a, 0x16, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x73, 0x22, 0x72, 0x0a, 0x16, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x39, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x19, 0x0a, 0x17, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x78, 0x5f, 0x68, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x74, 0x78, 0x48, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x36, 0x0a, 0x0f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xbc, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x0a, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x61, 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x12, 0x28, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x4f, 0x75, 0x74, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x75, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x55, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x22, 0x2c, 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x72, 0x61, 0x77, 0x5f, 0x74, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x72, 0x61, 0x77, 0x54, 0x78, 0x22, 0x35, 0x0a, 0x12, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 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, 0x05, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x33, 0x0a, 0x13, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x46, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x0a, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x61, 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x22, 0xfc, 0x03, 0x0a, 0x0c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x77, 0x65, 0x65, 0x70, 0x12, 0x2b, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x61, 0x74, 0x12, 0x24, 0x0a, 0x0c, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x73, 0x61, 0x74, 0x50, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6e, 0x65, 0x78, 0x74, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x37, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, 0x18, 0x01, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x53, 0x61, 0x74, 0x50, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x76, 0x62, 0x79, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x61, 0x74, 0x50, 0x65, 0x72, 0x56, 0x62, 0x79, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x17, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x76, 0x62, 0x79, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x53, 0x61, 0x74, 0x50, 0x65, 0x72, 0x56, 0x62, 0x79, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x77, 0x65, 0x65, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x57, 0x0a, 0x15, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x77, 0x65, 0x65, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0e, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x77, 0x65, 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x77, 0x65, 0x65, 0x70, 0x52, 0x0d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x77, 0x65, 0x65, 0x70, 0x73, 0x22, 0xbe, 0x01, 0x0a, 0x0e, 0x42, 0x75, 0x6d, 0x70, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x12, 0x24, 0x0a, 0x0c, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x73, 0x61, 0x74, 0x50, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x76, 0x62, 0x79, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x61, 0x74, 0x50, 0x65, 0x72, 0x56, 0x62, 0x79, 0x74, 0x65, 0x22, 0x11, 0x0a, 0x0f, 0x42, 0x75, 0x6d, 0x70, 0x46, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x77, 0x65, 0x65, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x22, 0x80, 0x02, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x77, 0x65, 0x65, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x57, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x77, 0x65, 0x65, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x1a, 0x39, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x77, 0x65, 0x65, 0x70, 0x73, 0x22, 0x61, 0x0a, 0x17, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x22, 0x1a, 0x0a, 0x18, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x93, 0x02, 0x0a, 0x0f, 0x46, 0x75, 0x6e, 0x64, 0x50, 0x73, 0x62, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x04, 0x70, 0x73, 0x62, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x04, 0x70, 0x73, 0x62, 0x74, 0x12, 0x29, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x12, 0x21, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x76, 0x62, 0x79, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x61, 0x74, 0x50, 0x65, 0x72, 0x56, 0x62, 0x79, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x75, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x55, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x66, 0x65, 0x65, 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x10, 0x46, 0x75, 0x6e, 0x64, 0x50, 0x73, 0x62, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x73, 0x62, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x50, 0x73, 0x62, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x37, 0x0a, 0x0c, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x74, 0x78, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x74, 0x78, 0x6f, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x22, 0xaf, 0x01, 0x0a, 0x0a, 0x54, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x3c, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x68, 0x0a, 0x09, 0x55, 0x74, 0x78, 0x6f, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x13, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x50, 0x73, 0x62, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x73, 0x62, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x50, 0x73, 0x62, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x59, 0x0a, 0x14, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x50, 0x73, 0x62, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x73, 0x62, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x50, 0x73, 0x62, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x72, 0x61, 0x77, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x72, 0x61, 0x77, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x78, 0x22, 0x13, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4d, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x74, 0x78, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x74, 0x78, 0x6f, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x2a, 0x7a, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x57, 0x49, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x55, 0x42, 0x4b, 0x45, 0x59, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x4e, 0x45, 0x53, 0x54, 0x45, 0x44, 0x5f, 0x57, 0x49, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x55, 0x42, 0x4b, 0x45, 0x59, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x48, 0x59, 0x42, 0x52, 0x49, 0x44, 0x5f, 0x4e, 0x45, 0x53, 0x54, 0x45, 0x44, 0x5f, 0x57, 0x49, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x55, 0x42, 0x4b, 0x45, 0x59, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, 0x03, 0x2a, 0x99, 0x03, 0x0a, 0x0b, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x57, 0x49, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x4f, 0x5f, 0x44, 0x45, 0x4c, 0x41, 0x59, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x56, 0x4f, 0x4b, 0x45, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x48, 0x54, 0x4c, 0x43, 0x5f, 0x4f, 0x46, 0x46, 0x45, 0x52, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x56, 0x4f, 0x4b, 0x45, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x48, 0x54, 0x4c, 0x43, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x56, 0x4f, 0x4b, 0x45, 0x10, 0x05, 0x12, 0x25, 0x0a, 0x21, 0x48, 0x54, 0x4c, 0x43, 0x5f, 0x4f, 0x46, 0x46, 0x45, 0x52, 0x45, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0x06, 0x12, 0x26, 0x0a, 0x22, 0x48, 0x54, 0x4c, 0x43, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0x07, 0x12, 0x1f, 0x0a, 0x1b, 0x48, 0x54, 0x4c, 0x43, 0x5f, 0x4f, 0x46, 0x46, 0x45, 0x52, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x08, 0x12, 0x20, 0x0a, 0x1c, 0x48, 0x54, 0x4c, 0x43, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x09, 0x12, 0x1c, 0x0a, 0x18, 0x48, 0x54, 0x4c, 0x43, 0x5f, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x56, 0x4f, 0x4b, 0x45, 0x10, 0x0a, 0x12, 0x14, 0x0a, 0x10, 0x57, 0x49, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, 0x0b, 0x12, 0x1b, 0x0a, 0x17, 0x4e, 0x45, 0x53, 0x54, 0x45, 0x44, 0x5f, 0x57, 0x49, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, 0x0c, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x4e, 0x43, 0x48, 0x4f, 0x52, 0x10, 0x0d, 0x32, 0xb2, 0x0b, 0x0a, 0x09, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4b, 0x69, 0x74, 0x12, 0x4c, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0b, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1d, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1f, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x12, 0x1c, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x0d, 0x44, 0x65, 0x72, 0x69, 0x76, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x11, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x4b, 0x65, 0x79, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x38, 0x0a, 0x09, 0x44, 0x65, 0x72, 0x69, 0x76, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x13, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x4b, 0x65, 0x79, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x16, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x4b, 0x65, 0x79, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x3b, 0x0a, 0x08, 0x4e, 0x65, 0x78, 0x74, 0x41, 0x64, 0x64, 0x72, 0x12, 0x16, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x1e, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x21, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x12, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x1a, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x1d, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0b, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x46, 0x65, 0x65, 0x12, 0x1d, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x46, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x77, 0x65, 0x65, 0x70, 0x73, 0x12, 0x1f, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x77, 0x65, 0x65, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x77, 0x65, 0x65, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x07, 0x42, 0x75, 0x6d, 0x70, 0x46, 0x65, 0x65, 0x12, 0x19, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x75, 0x6d, 0x70, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x75, 0x6d, 0x70, 0x46, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x77, 0x65, 0x65, 0x70, 0x73, 0x12, 0x1c, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x77, 0x65, 0x65, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x77, 0x65, 0x65, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x10, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x46, 0x75, 0x6e, 0x64, 0x50, 0x73, 0x62, 0x74, 0x12, 0x1a, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x50, 0x73, 0x62, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x50, 0x73, 0x62, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x50, 0x73, 0x62, 0x74, 0x12, 0x1e, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x50, 0x73, 0x62, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x50, 0x73, 0x62, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x69, 0x6e, 0x67, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x6c, 0x6e, 0x64, 0x2f, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_walletrpc_walletkit_proto_rawDescOnce sync.Once file_walletrpc_walletkit_proto_rawDescData = file_walletrpc_walletkit_proto_rawDesc ) func file_walletrpc_walletkit_proto_rawDescGZIP() []byte { file_walletrpc_walletkit_proto_rawDescOnce.Do(func() { file_walletrpc_walletkit_proto_rawDescData = protoimpl.X.CompressGZIP(file_walletrpc_walletkit_proto_rawDescData) }) return file_walletrpc_walletkit_proto_rawDescData } var file_walletrpc_walletkit_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_walletrpc_walletkit_proto_msgTypes = make([]protoimpl.MessageInfo, 41) var file_walletrpc_walletkit_proto_goTypes = []interface{}{ (AddressType)(0), // 0: walletrpc.AddressType (WitnessType)(0), // 1: walletrpc.WitnessType (*ListUnspentRequest)(nil), // 2: walletrpc.ListUnspentRequest (*ListUnspentResponse)(nil), // 3: walletrpc.ListUnspentResponse (*LeaseOutputRequest)(nil), // 4: walletrpc.LeaseOutputRequest (*LeaseOutputResponse)(nil), // 5: walletrpc.LeaseOutputResponse (*ReleaseOutputRequest)(nil), // 6: walletrpc.ReleaseOutputRequest (*ReleaseOutputResponse)(nil), // 7: walletrpc.ReleaseOutputResponse (*KeyReq)(nil), // 8: walletrpc.KeyReq (*AddrRequest)(nil), // 9: walletrpc.AddrRequest (*AddrResponse)(nil), // 10: walletrpc.AddrResponse (*Account)(nil), // 11: walletrpc.Account (*ListAccountsRequest)(nil), // 12: walletrpc.ListAccountsRequest (*ListAccountsResponse)(nil), // 13: walletrpc.ListAccountsResponse (*ImportAccountRequest)(nil), // 14: walletrpc.ImportAccountRequest (*ImportAccountResponse)(nil), // 15: walletrpc.ImportAccountResponse (*ImportPublicKeyRequest)(nil), // 16: walletrpc.ImportPublicKeyRequest (*ImportPublicKeyResponse)(nil), // 17: walletrpc.ImportPublicKeyResponse (*Transaction)(nil), // 18: walletrpc.Transaction (*PublishResponse)(nil), // 19: walletrpc.PublishResponse (*SendOutputsRequest)(nil), // 20: walletrpc.SendOutputsRequest (*SendOutputsResponse)(nil), // 21: walletrpc.SendOutputsResponse (*EstimateFeeRequest)(nil), // 22: walletrpc.EstimateFeeRequest (*EstimateFeeResponse)(nil), // 23: walletrpc.EstimateFeeResponse (*PendingSweep)(nil), // 24: walletrpc.PendingSweep (*PendingSweepsRequest)(nil), // 25: walletrpc.PendingSweepsRequest (*PendingSweepsResponse)(nil), // 26: walletrpc.PendingSweepsResponse (*BumpFeeRequest)(nil), // 27: walletrpc.BumpFeeRequest (*BumpFeeResponse)(nil), // 28: walletrpc.BumpFeeResponse (*ListSweepsRequest)(nil), // 29: walletrpc.ListSweepsRequest (*ListSweepsResponse)(nil), // 30: walletrpc.ListSweepsResponse (*LabelTransactionRequest)(nil), // 31: walletrpc.LabelTransactionRequest (*LabelTransactionResponse)(nil), // 32: walletrpc.LabelTransactionResponse (*FundPsbtRequest)(nil), // 33: walletrpc.FundPsbtRequest (*FundPsbtResponse)(nil), // 34: walletrpc.FundPsbtResponse (*TxTemplate)(nil), // 35: walletrpc.TxTemplate (*UtxoLease)(nil), // 36: walletrpc.UtxoLease (*FinalizePsbtRequest)(nil), // 37: walletrpc.FinalizePsbtRequest (*FinalizePsbtResponse)(nil), // 38: walletrpc.FinalizePsbtResponse (*ListLeasesRequest)(nil), // 39: walletrpc.ListLeasesRequest (*ListLeasesResponse)(nil), // 40: walletrpc.ListLeasesResponse (*ListSweepsResponse_TransactionIDs)(nil), // 41: walletrpc.ListSweepsResponse.TransactionIDs nil, // 42: walletrpc.TxTemplate.OutputsEntry (*lnrpc.Utxo)(nil), // 43: lnrpc.Utxo (*lnrpc.OutPoint)(nil), // 44: lnrpc.OutPoint (*signrpc.TxOut)(nil), // 45: signrpc.TxOut (*lnrpc.TransactionDetails)(nil), // 46: lnrpc.TransactionDetails (*signrpc.KeyLocator)(nil), // 47: signrpc.KeyLocator (*signrpc.KeyDescriptor)(nil), // 48: signrpc.KeyDescriptor } var file_walletrpc_walletkit_proto_depIdxs = []int32{ 43, // 0: walletrpc.ListUnspentResponse.utxos:type_name -> lnrpc.Utxo 44, // 1: walletrpc.LeaseOutputRequest.outpoint:type_name -> lnrpc.OutPoint 44, // 2: walletrpc.ReleaseOutputRequest.outpoint:type_name -> lnrpc.OutPoint 0, // 3: walletrpc.Account.address_type:type_name -> walletrpc.AddressType 0, // 4: walletrpc.ListAccountsRequest.address_type:type_name -> walletrpc.AddressType 11, // 5: walletrpc.ListAccountsResponse.accounts:type_name -> walletrpc.Account 0, // 6: walletrpc.ImportAccountRequest.address_type:type_name -> walletrpc.AddressType 11, // 7: walletrpc.ImportAccountResponse.account:type_name -> walletrpc.Account 0, // 8: walletrpc.ImportPublicKeyRequest.address_type:type_name -> walletrpc.AddressType 45, // 9: walletrpc.SendOutputsRequest.outputs:type_name -> signrpc.TxOut 44, // 10: walletrpc.PendingSweep.outpoint:type_name -> lnrpc.OutPoint 1, // 11: walletrpc.PendingSweep.witness_type:type_name -> walletrpc.WitnessType 24, // 12: walletrpc.PendingSweepsResponse.pending_sweeps:type_name -> walletrpc.PendingSweep 44, // 13: walletrpc.BumpFeeRequest.outpoint:type_name -> lnrpc.OutPoint 46, // 14: walletrpc.ListSweepsResponse.transaction_details:type_name -> lnrpc.TransactionDetails 41, // 15: walletrpc.ListSweepsResponse.transaction_ids:type_name -> walletrpc.ListSweepsResponse.TransactionIDs 35, // 16: walletrpc.FundPsbtRequest.raw:type_name -> walletrpc.TxTemplate 36, // 17: walletrpc.FundPsbtResponse.locked_utxos:type_name -> walletrpc.UtxoLease 44, // 18: walletrpc.TxTemplate.inputs:type_name -> lnrpc.OutPoint 42, // 19: walletrpc.TxTemplate.outputs:type_name -> walletrpc.TxTemplate.OutputsEntry 44, // 20: walletrpc.UtxoLease.outpoint:type_name -> lnrpc.OutPoint 36, // 21: walletrpc.ListLeasesResponse.locked_utxos:type_name -> walletrpc.UtxoLease 2, // 22: walletrpc.WalletKit.ListUnspent:input_type -> walletrpc.ListUnspentRequest 4, // 23: walletrpc.WalletKit.LeaseOutput:input_type -> walletrpc.LeaseOutputRequest 6, // 24: walletrpc.WalletKit.ReleaseOutput:input_type -> walletrpc.ReleaseOutputRequest 39, // 25: walletrpc.WalletKit.ListLeases:input_type -> walletrpc.ListLeasesRequest 8, // 26: walletrpc.WalletKit.DeriveNextKey:input_type -> walletrpc.KeyReq 47, // 27: walletrpc.WalletKit.DeriveKey:input_type -> signrpc.KeyLocator 9, // 28: walletrpc.WalletKit.NextAddr:input_type -> walletrpc.AddrRequest 12, // 29: walletrpc.WalletKit.ListAccounts:input_type -> walletrpc.ListAccountsRequest 14, // 30: walletrpc.WalletKit.ImportAccount:input_type -> walletrpc.ImportAccountRequest 16, // 31: walletrpc.WalletKit.ImportPublicKey:input_type -> walletrpc.ImportPublicKeyRequest 18, // 32: walletrpc.WalletKit.PublishTransaction:input_type -> walletrpc.Transaction 20, // 33: walletrpc.WalletKit.SendOutputs:input_type -> walletrpc.SendOutputsRequest 22, // 34: walletrpc.WalletKit.EstimateFee:input_type -> walletrpc.EstimateFeeRequest 25, // 35: walletrpc.WalletKit.PendingSweeps:input_type -> walletrpc.PendingSweepsRequest 27, // 36: walletrpc.WalletKit.BumpFee:input_type -> walletrpc.BumpFeeRequest 29, // 37: walletrpc.WalletKit.ListSweeps:input_type -> walletrpc.ListSweepsRequest 31, // 38: walletrpc.WalletKit.LabelTransaction:input_type -> walletrpc.LabelTransactionRequest 33, // 39: walletrpc.WalletKit.FundPsbt:input_type -> walletrpc.FundPsbtRequest 37, // 40: walletrpc.WalletKit.FinalizePsbt:input_type -> walletrpc.FinalizePsbtRequest 3, // 41: walletrpc.WalletKit.ListUnspent:output_type -> walletrpc.ListUnspentResponse 5, // 42: walletrpc.WalletKit.LeaseOutput:output_type -> walletrpc.LeaseOutputResponse 7, // 43: walletrpc.WalletKit.ReleaseOutput:output_type -> walletrpc.ReleaseOutputResponse 40, // 44: walletrpc.WalletKit.ListLeases:output_type -> walletrpc.ListLeasesResponse 48, // 45: walletrpc.WalletKit.DeriveNextKey:output_type -> signrpc.KeyDescriptor 48, // 46: walletrpc.WalletKit.DeriveKey:output_type -> signrpc.KeyDescriptor 10, // 47: walletrpc.WalletKit.NextAddr:output_type -> walletrpc.AddrResponse 13, // 48: walletrpc.WalletKit.ListAccounts:output_type -> walletrpc.ListAccountsResponse 15, // 49: walletrpc.WalletKit.ImportAccount:output_type -> walletrpc.ImportAccountResponse 17, // 50: walletrpc.WalletKit.ImportPublicKey:output_type -> walletrpc.ImportPublicKeyResponse 19, // 51: walletrpc.WalletKit.PublishTransaction:output_type -> walletrpc.PublishResponse 21, // 52: walletrpc.WalletKit.SendOutputs:output_type -> walletrpc.SendOutputsResponse 23, // 53: walletrpc.WalletKit.EstimateFee:output_type -> walletrpc.EstimateFeeResponse 26, // 54: walletrpc.WalletKit.PendingSweeps:output_type -> walletrpc.PendingSweepsResponse 28, // 55: walletrpc.WalletKit.BumpFee:output_type -> walletrpc.BumpFeeResponse 30, // 56: walletrpc.WalletKit.ListSweeps:output_type -> walletrpc.ListSweepsResponse 32, // 57: walletrpc.WalletKit.LabelTransaction:output_type -> walletrpc.LabelTransactionResponse 34, // 58: walletrpc.WalletKit.FundPsbt:output_type -> walletrpc.FundPsbtResponse 38, // 59: walletrpc.WalletKit.FinalizePsbt:output_type -> walletrpc.FinalizePsbtResponse 41, // [41:60] is the sub-list for method output_type 22, // [22:41] is the sub-list for method input_type 22, // [22:22] is the sub-list for extension type_name 22, // [22:22] is the sub-list for extension extendee 0, // [0:22] is the sub-list for field type_name } func init() { file_walletrpc_walletkit_proto_init() } func file_walletrpc_walletkit_proto_init() { if File_walletrpc_walletkit_proto != nil { return } if !protoimpl.UnsafeEnabled { file_walletrpc_walletkit_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListUnspentRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListUnspentResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LeaseOutputRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LeaseOutputResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReleaseOutputRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReleaseOutputResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*KeyReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddrRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddrResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Account); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListAccountsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListAccountsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ImportAccountRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ImportAccountResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ImportPublicKeyRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ImportPublicKeyResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Transaction); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PublishResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendOutputsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendOutputsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EstimateFeeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EstimateFeeResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PendingSweep); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PendingSweepsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PendingSweepsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BumpFeeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BumpFeeResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListSweepsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListSweepsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LabelTransactionRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LabelTransactionResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FundPsbtRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FundPsbtResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TxTemplate); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UtxoLease); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FinalizePsbtRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FinalizePsbtResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListLeasesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListLeasesResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_walletrpc_walletkit_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListSweepsResponse_TransactionIDs); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_walletrpc_walletkit_proto_msgTypes[28].OneofWrappers = []interface{}{ (*ListSweepsResponse_TransactionDetails)(nil), (*ListSweepsResponse_TransactionIds)(nil), } file_walletrpc_walletkit_proto_msgTypes[31].OneofWrappers = []interface{}{ (*FundPsbtRequest_Psbt)(nil), (*FundPsbtRequest_Raw)(nil), (*FundPsbtRequest_TargetConf)(nil), (*FundPsbtRequest_SatPerVbyte)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_walletrpc_walletkit_proto_rawDesc, NumEnums: 2, NumMessages: 41, NumExtensions: 0, NumServices: 1, }, GoTypes: file_walletrpc_walletkit_proto_goTypes, DependencyIndexes: file_walletrpc_walletkit_proto_depIdxs, EnumInfos: file_walletrpc_walletkit_proto_enumTypes, MessageInfos: file_walletrpc_walletkit_proto_msgTypes, }.Build() File_walletrpc_walletkit_proto = out.File file_walletrpc_walletkit_proto_rawDesc = nil file_walletrpc_walletkit_proto_goTypes = nil file_walletrpc_walletkit_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context var _ grpc.ClientConnInterface // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. const _ = grpc.SupportPackageIsVersion6 // WalletKitClient is the client API for WalletKit service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type WalletKitClient interface { // //ListUnspent returns a list of all utxos spendable by the wallet with a //number of confirmations between the specified minimum and maximum. ListUnspent(ctx context.Context, in *ListUnspentRequest, opts ...grpc.CallOption) (*ListUnspentResponse, error) // //LeaseOutput locks an output to the given ID, preventing it from being //available for any future coin selection attempts. The absolute time of the //lock's expiration is returned. The expiration of the lock can be extended by //successive invocations of this RPC. Outputs can be unlocked before their //expiration through `ReleaseOutput`. LeaseOutput(ctx context.Context, in *LeaseOutputRequest, opts ...grpc.CallOption) (*LeaseOutputResponse, error) // //ReleaseOutput unlocks an output, allowing it to be available for coin //selection if it remains unspent. The ID should match the one used to //originally lock the output. ReleaseOutput(ctx context.Context, in *ReleaseOutputRequest, opts ...grpc.CallOption) (*ReleaseOutputResponse, error) // //ListLeases lists all currently locked utxos. ListLeases(ctx context.Context, in *ListLeasesRequest, opts ...grpc.CallOption) (*ListLeasesResponse, error) // //DeriveNextKey attempts to derive the *next* key within the key family //(account in BIP43) specified. This method should return the next external //child within this branch. DeriveNextKey(ctx context.Context, in *KeyReq, opts ...grpc.CallOption) (*signrpc.KeyDescriptor, error) // //DeriveKey attempts to derive an arbitrary key specified by the passed //KeyLocator. DeriveKey(ctx context.Context, in *signrpc.KeyLocator, opts ...grpc.CallOption) (*signrpc.KeyDescriptor, error) // //NextAddr returns the next unused address within the wallet. NextAddr(ctx context.Context, in *AddrRequest, opts ...grpc.CallOption) (*AddrResponse, error) // //ListAccounts retrieves all accounts belonging to the wallet by default. A //name and key scope filter can be provided to filter through all of the //wallet accounts and return only those matching. ListAccounts(ctx context.Context, in *ListAccountsRequest, opts ...grpc.CallOption) (*ListAccountsResponse, error) // //ImportAccount imports an account backed by an account extended public key. //The master key fingerprint denotes the fingerprint of the root key //corresponding to the account public key (also known as the key with //derivation path m/). This may be required by some hardware wallets for //proper identification and signing. // //The address type can usually be inferred from the key's version, but may be //required for certain keys to map them into the proper scope. // //For BIP-0044 keys, an address type must be specified as we intend to not //support importing BIP-0044 keys into the wallet using the legacy //pay-to-pubkey-hash (P2PKH) scheme. A nested witness address type will force //the standard BIP-0049 derivation scheme, while a witness address type will //force the standard BIP-0084 derivation scheme. // //For BIP-0049 keys, an address type must also be specified to make a //distinction between the standard BIP-0049 address schema (nested witness //pubkeys everywhere) and our own BIP-0049Plus address schema (nested pubkeys //externally, witness pubkeys internally). // //NOTE: Events (deposits/spends) for keys derived from an account will only be //detected by lnd if they happen after the import. Rescans to detect past //events will be supported later on. ImportAccount(ctx context.Context, in *ImportAccountRequest, opts ...grpc.CallOption) (*ImportAccountResponse, error) // //ImportPublicKey imports a public key as watch-only into the wallet. // //NOTE: Events (deposits/spends) for a key will only be detected by lnd if //they happen after the import. Rescans to detect past events will be //supported later on. ImportPublicKey(ctx context.Context, in *ImportPublicKeyRequest, opts ...grpc.CallOption) (*ImportPublicKeyResponse, error) // //PublishTransaction attempts to publish the passed transaction to the //network. Once this returns without an error, the wallet will continually //attempt to re-broadcast the transaction on start up, until it enters the //chain. PublishTransaction(ctx context.Context, in *Transaction, opts ...grpc.CallOption) (*PublishResponse, error) // //SendOutputs is similar to the existing sendmany call in Bitcoind, and //allows the caller to create a transaction that sends to several outputs at //once. This is ideal when wanting to batch create a set of transactions. SendOutputs(ctx context.Context, in *SendOutputsRequest, opts ...grpc.CallOption) (*SendOutputsResponse, error) // //EstimateFee attempts to query the internal fee estimator of the wallet to //determine the fee (in sat/kw) to attach to a transaction in order to //achieve the confirmation target. EstimateFee(ctx context.Context, in *EstimateFeeRequest, opts ...grpc.CallOption) (*EstimateFeeResponse, error) // //PendingSweeps returns lists of on-chain outputs that lnd is currently //attempting to sweep within its central batching engine. Outputs with similar //fee rates are batched together in order to sweep them within a single //transaction. // //NOTE: Some of the fields within PendingSweepsRequest are not guaranteed to //remain supported. This is an advanced API that depends on the internals of //the UtxoSweeper, so things may change. PendingSweeps(ctx context.Context, in *PendingSweepsRequest, opts ...grpc.CallOption) (*PendingSweepsResponse, error) // //BumpFee bumps the fee of an arbitrary input within a transaction. This RPC //takes a different approach than bitcoind's bumpfee command. lnd has a //central batching engine in which inputs with similar fee rates are batched //together to save on transaction fees. Due to this, we cannot rely on //bumping the fee on a specific transaction, since transactions can change at //any point with the addition of new inputs. The list of inputs that //currently exist within lnd's central batching engine can be retrieved //through the PendingSweeps RPC. // //When bumping the fee of an input that currently exists within lnd's central //batching engine, a higher fee transaction will be created that replaces the //lower fee transaction through the Replace-By-Fee (RBF) policy. If it // //This RPC also serves useful when wanting to perform a Child-Pays-For-Parent //(CPFP), where the child transaction pays for its parent's fee. This can be //done by specifying an outpoint within the low fee transaction that is under //the control of the wallet. // //The fee preference can be expressed either as a specific fee rate or a delta //of blocks in which the output should be swept on-chain within. If a fee //preference is not explicitly specified, then an error is returned. // //Note that this RPC currently doesn't perform any validation checks on the //fee preference being provided. For now, the responsibility of ensuring that //the new fee preference is sufficient is delegated to the user. BumpFee(ctx context.Context, in *BumpFeeRequest, opts ...grpc.CallOption) (*BumpFeeResponse, error) // //ListSweeps returns a list of the sweep transactions our node has produced. //Note that these sweeps may not be confirmed yet, as we record sweeps on //broadcast, not confirmation. ListSweeps(ctx context.Context, in *ListSweepsRequest, opts ...grpc.CallOption) (*ListSweepsResponse, error) // //LabelTransaction adds a label to a transaction. If the transaction already //has a label the call will fail unless the overwrite bool is set. This will //overwrite the exiting transaction label. Labels must not be empty, and //cannot exceed 500 characters. LabelTransaction(ctx context.Context, in *LabelTransactionRequest, opts ...grpc.CallOption) (*LabelTransactionResponse, error) // //FundPsbt creates a fully populated PSBT that contains enough inputs to fund //the outputs specified in the template. There are two ways of specifying a //template: Either by passing in a PSBT with at least one output declared or //by passing in a raw TxTemplate message. // //If there are no inputs specified in the template, coin selection is //performed automatically. If the template does contain any inputs, it is //assumed that full coin selection happened externally and no additional //inputs are added. If the specified inputs aren't enough to fund the outputs //with the given fee rate, an error is returned. // //After either selecting or verifying the inputs, all input UTXOs are locked //with an internal app ID. // //NOTE: If this method returns without an error, it is the caller's //responsibility to either spend the locked UTXOs (by finalizing and then //publishing the transaction) or to unlock/release the locked UTXOs in case of //an error on the caller's side. FundPsbt(ctx context.Context, in *FundPsbtRequest, opts ...grpc.CallOption) (*FundPsbtResponse, error) // //FinalizePsbt expects a partial transaction with all inputs and outputs fully //declared and tries to sign all inputs that belong to the wallet. Lnd must be //the last signer of the transaction. That means, if there are any unsigned //non-witness inputs or inputs without UTXO information attached or inputs //without witness data that do not belong to lnd's wallet, this method will //fail. If no error is returned, the PSBT is ready to be extracted and the //final TX within to be broadcast. // //NOTE: This method does NOT publish the transaction once finalized. It is the //caller's responsibility to either publish the transaction on success or //unlock/release any locked UTXOs in case of an error in this method. FinalizePsbt(ctx context.Context, in *FinalizePsbtRequest, opts ...grpc.CallOption) (*FinalizePsbtResponse, error) } type walletKitClient struct { cc grpc.ClientConnInterface } func NewWalletKitClient(cc grpc.ClientConnInterface) WalletKitClient { return &walletKitClient{cc} } func (c *walletKitClient) ListUnspent(ctx context.Context, in *ListUnspentRequest, opts ...grpc.CallOption) (*ListUnspentResponse, error) { out := new(ListUnspentResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/ListUnspent", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) LeaseOutput(ctx context.Context, in *LeaseOutputRequest, opts ...grpc.CallOption) (*LeaseOutputResponse, error) { out := new(LeaseOutputResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/LeaseOutput", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) ReleaseOutput(ctx context.Context, in *ReleaseOutputRequest, opts ...grpc.CallOption) (*ReleaseOutputResponse, error) { out := new(ReleaseOutputResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/ReleaseOutput", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) ListLeases(ctx context.Context, in *ListLeasesRequest, opts ...grpc.CallOption) (*ListLeasesResponse, error) { out := new(ListLeasesResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/ListLeases", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) DeriveNextKey(ctx context.Context, in *KeyReq, opts ...grpc.CallOption) (*signrpc.KeyDescriptor, error) { out := new(signrpc.KeyDescriptor) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/DeriveNextKey", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) DeriveKey(ctx context.Context, in *signrpc.KeyLocator, opts ...grpc.CallOption) (*signrpc.KeyDescriptor, error) { out := new(signrpc.KeyDescriptor) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/DeriveKey", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) NextAddr(ctx context.Context, in *AddrRequest, opts ...grpc.CallOption) (*AddrResponse, error) { out := new(AddrResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/NextAddr", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) ListAccounts(ctx context.Context, in *ListAccountsRequest, opts ...grpc.CallOption) (*ListAccountsResponse, error) { out := new(ListAccountsResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/ListAccounts", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) ImportAccount(ctx context.Context, in *ImportAccountRequest, opts ...grpc.CallOption) (*ImportAccountResponse, error) { out := new(ImportAccountResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/ImportAccount", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) ImportPublicKey(ctx context.Context, in *ImportPublicKeyRequest, opts ...grpc.CallOption) (*ImportPublicKeyResponse, error) { out := new(ImportPublicKeyResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/ImportPublicKey", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) PublishTransaction(ctx context.Context, in *Transaction, opts ...grpc.CallOption) (*PublishResponse, error) { out := new(PublishResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/PublishTransaction", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) SendOutputs(ctx context.Context, in *SendOutputsRequest, opts ...grpc.CallOption) (*SendOutputsResponse, error) { out := new(SendOutputsResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/SendOutputs", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) EstimateFee(ctx context.Context, in *EstimateFeeRequest, opts ...grpc.CallOption) (*EstimateFeeResponse, error) { out := new(EstimateFeeResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/EstimateFee", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) PendingSweeps(ctx context.Context, in *PendingSweepsRequest, opts ...grpc.CallOption) (*PendingSweepsResponse, error) { out := new(PendingSweepsResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/PendingSweeps", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) BumpFee(ctx context.Context, in *BumpFeeRequest, opts ...grpc.CallOption) (*BumpFeeResponse, error) { out := new(BumpFeeResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/BumpFee", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) ListSweeps(ctx context.Context, in *ListSweepsRequest, opts ...grpc.CallOption) (*ListSweepsResponse, error) { out := new(ListSweepsResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/ListSweeps", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) LabelTransaction(ctx context.Context, in *LabelTransactionRequest, opts ...grpc.CallOption) (*LabelTransactionResponse, error) { out := new(LabelTransactionResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/LabelTransaction", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) FundPsbt(ctx context.Context, in *FundPsbtRequest, opts ...grpc.CallOption) (*FundPsbtResponse, error) { out := new(FundPsbtResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/FundPsbt", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) FinalizePsbt(ctx context.Context, in *FinalizePsbtRequest, opts ...grpc.CallOption) (*FinalizePsbtResponse, error) { out := new(FinalizePsbtResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/FinalizePsbt", in, out, opts...) if err != nil { return nil, err } return out, nil } // WalletKitServer is the server API for WalletKit service. type WalletKitServer interface { // //ListUnspent returns a list of all utxos spendable by the wallet with a //number of confirmations between the specified minimum and maximum. ListUnspent(context.Context, *ListUnspentRequest) (*ListUnspentResponse, error) // //LeaseOutput locks an output to the given ID, preventing it from being //available for any future coin selection attempts. The absolute time of the //lock's expiration is returned. The expiration of the lock can be extended by //successive invocations of this RPC. Outputs can be unlocked before their //expiration through `ReleaseOutput`. LeaseOutput(context.Context, *LeaseOutputRequest) (*LeaseOutputResponse, error) // //ReleaseOutput unlocks an output, allowing it to be available for coin //selection if it remains unspent. The ID should match the one used to //originally lock the output. ReleaseOutput(context.Context, *ReleaseOutputRequest) (*ReleaseOutputResponse, error) // //ListLeases lists all currently locked utxos. ListLeases(context.Context, *ListLeasesRequest) (*ListLeasesResponse, error) // //DeriveNextKey attempts to derive the *next* key within the key family //(account in BIP43) specified. This method should return the next external //child within this branch. DeriveNextKey(context.Context, *KeyReq) (*signrpc.KeyDescriptor, error) // //DeriveKey attempts to derive an arbitrary key specified by the passed //KeyLocator. DeriveKey(context.Context, *signrpc.KeyLocator) (*signrpc.KeyDescriptor, error) // //NextAddr returns the next unused address within the wallet. NextAddr(context.Context, *AddrRequest) (*AddrResponse, error) // //ListAccounts retrieves all accounts belonging to the wallet by default. A //name and key scope filter can be provided to filter through all of the //wallet accounts and return only those matching. ListAccounts(context.Context, *ListAccountsRequest) (*ListAccountsResponse, error) // //ImportAccount imports an account backed by an account extended public key. //The master key fingerprint denotes the fingerprint of the root key //corresponding to the account public key (also known as the key with //derivation path m/). This may be required by some hardware wallets for //proper identification and signing. // //The address type can usually be inferred from the key's version, but may be //required for certain keys to map them into the proper scope. // //For BIP-0044 keys, an address type must be specified as we intend to not //support importing BIP-0044 keys into the wallet using the legacy //pay-to-pubkey-hash (P2PKH) scheme. A nested witness address type will force //the standard BIP-0049 derivation scheme, while a witness address type will //force the standard BIP-0084 derivation scheme. // //For BIP-0049 keys, an address type must also be specified to make a //distinction between the standard BIP-0049 address schema (nested witness //pubkeys everywhere) and our own BIP-0049Plus address schema (nested pubkeys //externally, witness pubkeys internally). // //NOTE: Events (deposits/spends) for keys derived from an account will only be //detected by lnd if they happen after the import. Rescans to detect past //events will be supported later on. ImportAccount(context.Context, *ImportAccountRequest) (*ImportAccountResponse, error) // //ImportPublicKey imports a public key as watch-only into the wallet. // //NOTE: Events (deposits/spends) for a key will only be detected by lnd if //they happen after the import. Rescans to detect past events will be //supported later on. ImportPublicKey(context.Context, *ImportPublicKeyRequest) (*ImportPublicKeyResponse, error) // //PublishTransaction attempts to publish the passed transaction to the //network. Once this returns without an error, the wallet will continually //attempt to re-broadcast the transaction on start up, until it enters the //chain. PublishTransaction(context.Context, *Transaction) (*PublishResponse, error) // //SendOutputs is similar to the existing sendmany call in Bitcoind, and //allows the caller to create a transaction that sends to several outputs at //once. This is ideal when wanting to batch create a set of transactions. SendOutputs(context.Context, *SendOutputsRequest) (*SendOutputsResponse, error) // //EstimateFee attempts to query the internal fee estimator of the wallet to //determine the fee (in sat/kw) to attach to a transaction in order to //achieve the confirmation target. EstimateFee(context.Context, *EstimateFeeRequest) (*EstimateFeeResponse, error) // //PendingSweeps returns lists of on-chain outputs that lnd is currently //attempting to sweep within its central batching engine. Outputs with similar //fee rates are batched together in order to sweep them within a single //transaction. // //NOTE: Some of the fields within PendingSweepsRequest are not guaranteed to //remain supported. This is an advanced API that depends on the internals of //the UtxoSweeper, so things may change. PendingSweeps(context.Context, *PendingSweepsRequest) (*PendingSweepsResponse, error) // //BumpFee bumps the fee of an arbitrary input within a transaction. This RPC //takes a different approach than bitcoind's bumpfee command. lnd has a //central batching engine in which inputs with similar fee rates are batched //together to save on transaction fees. Due to this, we cannot rely on //bumping the fee on a specific transaction, since transactions can change at //any point with the addition of new inputs. The list of inputs that //currently exist within lnd's central batching engine can be retrieved //through the PendingSweeps RPC. // //When bumping the fee of an input that currently exists within lnd's central //batching engine, a higher fee transaction will be created that replaces the //lower fee transaction through the Replace-By-Fee (RBF) policy. If it // //This RPC also serves useful when wanting to perform a Child-Pays-For-Parent //(CPFP), where the child transaction pays for its parent's fee. This can be //done by specifying an outpoint within the low fee transaction that is under //the control of the wallet. // //The fee preference can be expressed either as a specific fee rate or a delta //of blocks in which the output should be swept on-chain within. If a fee //preference is not explicitly specified, then an error is returned. // //Note that this RPC currently doesn't perform any validation checks on the //fee preference being provided. For now, the responsibility of ensuring that //the new fee preference is sufficient is delegated to the user. BumpFee(context.Context, *BumpFeeRequest) (*BumpFeeResponse, error) // //ListSweeps returns a list of the sweep transactions our node has produced. //Note that these sweeps may not be confirmed yet, as we record sweeps on //broadcast, not confirmation. ListSweeps(context.Context, *ListSweepsRequest) (*ListSweepsResponse, error) // //LabelTransaction adds a label to a transaction. If the transaction already //has a label the call will fail unless the overwrite bool is set. This will //overwrite the exiting transaction label. Labels must not be empty, and //cannot exceed 500 characters. LabelTransaction(context.Context, *LabelTransactionRequest) (*LabelTransactionResponse, error) // //FundPsbt creates a fully populated PSBT that contains enough inputs to fund //the outputs specified in the template. There are two ways of specifying a //template: Either by passing in a PSBT with at least one output declared or //by passing in a raw TxTemplate message. // //If there are no inputs specified in the template, coin selection is //performed automatically. If the template does contain any inputs, it is //assumed that full coin selection happened externally and no additional //inputs are added. If the specified inputs aren't enough to fund the outputs //with the given fee rate, an error is returned. // //After either selecting or verifying the inputs, all input UTXOs are locked //with an internal app ID. // //NOTE: If this method returns without an error, it is the caller's //responsibility to either spend the locked UTXOs (by finalizing and then //publishing the transaction) or to unlock/release the locked UTXOs in case of //an error on the caller's side. FundPsbt(context.Context, *FundPsbtRequest) (*FundPsbtResponse, error) // //FinalizePsbt expects a partial transaction with all inputs and outputs fully //declared and tries to sign all inputs that belong to the wallet. Lnd must be //the last signer of the transaction. That means, if there are any unsigned //non-witness inputs or inputs without UTXO information attached or inputs //without witness data that do not belong to lnd's wallet, this method will //fail. If no error is returned, the PSBT is ready to be extracted and the //final TX within to be broadcast. // //NOTE: This method does NOT publish the transaction once finalized. It is the //caller's responsibility to either publish the transaction on success or //unlock/release any locked UTXOs in case of an error in this method. FinalizePsbt(context.Context, *FinalizePsbtRequest) (*FinalizePsbtResponse, error) } // UnimplementedWalletKitServer can be embedded to have forward compatible implementations. type UnimplementedWalletKitServer struct { } func (*UnimplementedWalletKitServer) ListUnspent(context.Context, *ListUnspentRequest) (*ListUnspentResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListUnspent not implemented") } func (*UnimplementedWalletKitServer) LeaseOutput(context.Context, *LeaseOutputRequest) (*LeaseOutputResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method LeaseOutput not implemented") } func (*UnimplementedWalletKitServer) ReleaseOutput(context.Context, *ReleaseOutputRequest) (*ReleaseOutputResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ReleaseOutput not implemented") } func (*UnimplementedWalletKitServer) ListLeases(context.Context, *ListLeasesRequest) (*ListLeasesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListLeases not implemented") } func (*UnimplementedWalletKitServer) DeriveNextKey(context.Context, *KeyReq) (*signrpc.KeyDescriptor, error) { return nil, status.Errorf(codes.Unimplemented, "method DeriveNextKey not implemented") } func (*UnimplementedWalletKitServer) DeriveKey(context.Context, *signrpc.KeyLocator) (*signrpc.KeyDescriptor, error) { return nil, status.Errorf(codes.Unimplemented, "method DeriveKey not implemented") } func (*UnimplementedWalletKitServer) NextAddr(context.Context, *AddrRequest) (*AddrResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method NextAddr not implemented") } func (*UnimplementedWalletKitServer) ListAccounts(context.Context, *ListAccountsRequest) (*ListAccountsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListAccounts not implemented") } func (*UnimplementedWalletKitServer) ImportAccount(context.Context, *ImportAccountRequest) (*ImportAccountResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ImportAccount not implemented") } func (*UnimplementedWalletKitServer) ImportPublicKey(context.Context, *ImportPublicKeyRequest) (*ImportPublicKeyResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ImportPublicKey not implemented") } func (*UnimplementedWalletKitServer) PublishTransaction(context.Context, *Transaction) (*PublishResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method PublishTransaction not implemented") } func (*UnimplementedWalletKitServer) SendOutputs(context.Context, *SendOutputsRequest) (*SendOutputsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SendOutputs not implemented") } func (*UnimplementedWalletKitServer) EstimateFee(context.Context, *EstimateFeeRequest) (*EstimateFeeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method EstimateFee not implemented") } func (*UnimplementedWalletKitServer) PendingSweeps(context.Context, *PendingSweepsRequest) (*PendingSweepsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method PendingSweeps not implemented") } func (*UnimplementedWalletKitServer) BumpFee(context.Context, *BumpFeeRequest) (*BumpFeeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method BumpFee not implemented") } func (*UnimplementedWalletKitServer) ListSweeps(context.Context, *ListSweepsRequest) (*ListSweepsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListSweeps not implemented") } func (*UnimplementedWalletKitServer) LabelTransaction(context.Context, *LabelTransactionRequest) (*LabelTransactionResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method LabelTransaction not implemented") } func (*UnimplementedWalletKitServer) FundPsbt(context.Context, *FundPsbtRequest) (*FundPsbtResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method FundPsbt not implemented") } func (*UnimplementedWalletKitServer) FinalizePsbt(context.Context, *FinalizePsbtRequest) (*FinalizePsbtResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method FinalizePsbt not implemented") } func RegisterWalletKitServer(s *grpc.Server, srv WalletKitServer) { s.RegisterService(&_WalletKit_serviceDesc, srv) } func _WalletKit_ListUnspent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListUnspentRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).ListUnspent(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/ListUnspent", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).ListUnspent(ctx, req.(*ListUnspentRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_LeaseOutput_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(LeaseOutputRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).LeaseOutput(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/LeaseOutput", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).LeaseOutput(ctx, req.(*LeaseOutputRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_ReleaseOutput_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ReleaseOutputRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).ReleaseOutput(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/ReleaseOutput", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).ReleaseOutput(ctx, req.(*ReleaseOutputRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_ListLeases_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListLeasesRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).ListLeases(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/ListLeases", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).ListLeases(ctx, req.(*ListLeasesRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_DeriveNextKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(KeyReq) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).DeriveNextKey(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/DeriveNextKey", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).DeriveNextKey(ctx, req.(*KeyReq)) } return interceptor(ctx, in, info, handler) } func _WalletKit_DeriveKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(signrpc.KeyLocator) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).DeriveKey(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/DeriveKey", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).DeriveKey(ctx, req.(*signrpc.KeyLocator)) } return interceptor(ctx, in, info, handler) } func _WalletKit_NextAddr_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(AddrRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).NextAddr(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/NextAddr", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).NextAddr(ctx, req.(*AddrRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_ListAccounts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListAccountsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).ListAccounts(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/ListAccounts", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).ListAccounts(ctx, req.(*ListAccountsRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_ImportAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ImportAccountRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).ImportAccount(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/ImportAccount", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).ImportAccount(ctx, req.(*ImportAccountRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_ImportPublicKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ImportPublicKeyRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).ImportPublicKey(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/ImportPublicKey", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).ImportPublicKey(ctx, req.(*ImportPublicKeyRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_PublishTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(Transaction) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).PublishTransaction(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/PublishTransaction", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).PublishTransaction(ctx, req.(*Transaction)) } return interceptor(ctx, in, info, handler) } func _WalletKit_SendOutputs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SendOutputsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).SendOutputs(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/SendOutputs", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).SendOutputs(ctx, req.(*SendOutputsRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_EstimateFee_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(EstimateFeeRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).EstimateFee(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/EstimateFee", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).EstimateFee(ctx, req.(*EstimateFeeRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_PendingSweeps_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(PendingSweepsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).PendingSweeps(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/PendingSweeps", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).PendingSweeps(ctx, req.(*PendingSweepsRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_BumpFee_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(BumpFeeRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).BumpFee(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/BumpFee", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).BumpFee(ctx, req.(*BumpFeeRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_ListSweeps_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListSweepsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).ListSweeps(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/ListSweeps", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).ListSweeps(ctx, req.(*ListSweepsRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_LabelTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(LabelTransactionRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).LabelTransaction(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/LabelTransaction", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).LabelTransaction(ctx, req.(*LabelTransactionRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_FundPsbt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(FundPsbtRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).FundPsbt(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/FundPsbt", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).FundPsbt(ctx, req.(*FundPsbtRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_FinalizePsbt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(FinalizePsbtRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).FinalizePsbt(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/FinalizePsbt", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).FinalizePsbt(ctx, req.(*FinalizePsbtRequest)) } return interceptor(ctx, in, info, handler) } var _WalletKit_serviceDesc = grpc.ServiceDesc{ ServiceName: "walletrpc.WalletKit", HandlerType: (*WalletKitServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "ListUnspent", Handler: _WalletKit_ListUnspent_Handler, }, { MethodName: "LeaseOutput", Handler: _WalletKit_LeaseOutput_Handler, }, { MethodName: "ReleaseOutput", Handler: _WalletKit_ReleaseOutput_Handler, }, { MethodName: "ListLeases", Handler: _WalletKit_ListLeases_Handler, }, { MethodName: "DeriveNextKey", Handler: _WalletKit_DeriveNextKey_Handler, }, { MethodName: "DeriveKey", Handler: _WalletKit_DeriveKey_Handler, }, { MethodName: "NextAddr", Handler: _WalletKit_NextAddr_Handler, }, { MethodName: "ListAccounts", Handler: _WalletKit_ListAccounts_Handler, }, { MethodName: "ImportAccount", Handler: _WalletKit_ImportAccount_Handler, }, { MethodName: "ImportPublicKey", Handler: _WalletKit_ImportPublicKey_Handler, }, { MethodName: "PublishTransaction", Handler: _WalletKit_PublishTransaction_Handler, }, { MethodName: "SendOutputs", Handler: _WalletKit_SendOutputs_Handler, }, { MethodName: "EstimateFee", Handler: _WalletKit_EstimateFee_Handler, }, { MethodName: "PendingSweeps", Handler: _WalletKit_PendingSweeps_Handler, }, { MethodName: "BumpFee", Handler: _WalletKit_BumpFee_Handler, }, { MethodName: "ListSweeps", Handler: _WalletKit_ListSweeps_Handler, }, { MethodName: "LabelTransaction", Handler: _WalletKit_LabelTransaction_Handler, }, { MethodName: "FundPsbt", Handler: _WalletKit_FundPsbt_Handler, }, { MethodName: "FinalizePsbt", Handler: _WalletKit_FinalizePsbt_Handler, }, }, Streams: []grpc.StreamDesc{}, Metadata: "walletrpc/walletkit.proto", }