// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.23.0 // protoc v3.6.1 // source: client.proto package looprpc import ( context "context" proto "github.com/golang/protobuf/proto" 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 SwapType int32 const ( // LOOP_OUT indicates an loop out swap (off-chain to on-chain) SwapType_LOOP_OUT SwapType = 0 // LOOP_IN indicates a loop in swap (on-chain to off-chain) SwapType_LOOP_IN SwapType = 1 ) // Enum value maps for SwapType. var ( SwapType_name = map[int32]string{ 0: "LOOP_OUT", 1: "LOOP_IN", } SwapType_value = map[string]int32{ "LOOP_OUT": 0, "LOOP_IN": 1, } ) func (x SwapType) Enum() *SwapType { p := new(SwapType) *p = x return p } func (x SwapType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (SwapType) Descriptor() protoreflect.EnumDescriptor { return file_client_proto_enumTypes[0].Descriptor() } func (SwapType) Type() protoreflect.EnumType { return &file_client_proto_enumTypes[0] } func (x SwapType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use SwapType.Descriptor instead. func (SwapType) EnumDescriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{0} } type SwapState int32 const ( // //INITIATED is the initial state of a swap. At that point, the initiation //call to the server has been made and the payment process has been started //for the swap and prepayment invoices. SwapState_INITIATED SwapState = 0 // //PREIMAGE_REVEALED is reached when the sweep tx publication is first //attempted. From that point on, we should consider the preimage to no //longer be secret and we need to do all we can to get the sweep confirmed. //This state will mostly coalesce with StateHtlcConfirmed, except in the //case where we wait for fees to come down before we sweep. SwapState_PREIMAGE_REVEALED SwapState = 1 // //HTLC_PUBLISHED is reached when the htlc tx has been published in a loop in //swap. SwapState_HTLC_PUBLISHED SwapState = 2 // //SUCCESS is the final swap state that is reached when the sweep tx has //the required confirmation depth. SwapState_SUCCESS SwapState = 3 // //FAILED is the final swap state for a failed swap with or without loss of //the swap amount. SwapState_FAILED SwapState = 4 // //INVOICE_SETTLED is reached when the swap invoice in a loop in swap has been //paid, but we are still waiting for the htlc spend to confirm. SwapState_INVOICE_SETTLED SwapState = 5 ) // Enum value maps for SwapState. var ( SwapState_name = map[int32]string{ 0: "INITIATED", 1: "PREIMAGE_REVEALED", 2: "HTLC_PUBLISHED", 3: "SUCCESS", 4: "FAILED", 5: "INVOICE_SETTLED", } SwapState_value = map[string]int32{ "INITIATED": 0, "PREIMAGE_REVEALED": 1, "HTLC_PUBLISHED": 2, "SUCCESS": 3, "FAILED": 4, "INVOICE_SETTLED": 5, } ) func (x SwapState) Enum() *SwapState { p := new(SwapState) *p = x return p } func (x SwapState) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (SwapState) Descriptor() protoreflect.EnumDescriptor { return file_client_proto_enumTypes[1].Descriptor() } func (SwapState) Type() protoreflect.EnumType { return &file_client_proto_enumTypes[1] } func (x SwapState) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use SwapState.Descriptor instead. func (SwapState) EnumDescriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{1} } type FailureReason int32 const ( // //FAILURE_REASON_NONE is set when the swap did not fail, it is either in //progress or succeeded. FailureReason_FAILURE_REASON_NONE FailureReason = 0 // //FAILURE_REASON_OFFCHAIN indicates that a loop out failed because it wasn't //possible to find a route for one or both off chain payments that met the fee //and timelock limits required. FailureReason_FAILURE_REASON_OFFCHAIN FailureReason = 1 // //FAILURE_REASON_TIMEOUT indicates that the swap failed because on chain htlc //did not confirm before its expiry, or it confirmed too late for us to reveal //our preimage and claim. FailureReason_FAILURE_REASON_TIMEOUT FailureReason = 2 // //FAILURE_REASON_SWEEP_TIMEOUT indicates that a loop out permanently failed //because the on chain htlc wasn't swept before the server revoked the //htlc. FailureReason_FAILURE_REASON_SWEEP_TIMEOUT FailureReason = 3 // //FAILURE_REASON_INSUFFICIENT_VALUE indicates that a loop out has failed //because the on chain htlc had a lower value than requested. FailureReason_FAILURE_REASON_INSUFFICIENT_VALUE FailureReason = 4 // //FAILURE_REASON_TEMPORARY indicates that a swap cannot continue due to an //internal error. Manual intervention such as a restart is required. FailureReason_FAILURE_REASON_TEMPORARY FailureReason = 5 // //FAILURE_REASON_INCORRECT_AMOUNT indicates that a loop in permanently failed //because the amount extended by an external loop in htlc is insufficient. FailureReason_FAILURE_REASON_INCORRECT_AMOUNT FailureReason = 6 ) // Enum value maps for FailureReason. var ( FailureReason_name = map[int32]string{ 0: "FAILURE_REASON_NONE", 1: "FAILURE_REASON_OFFCHAIN", 2: "FAILURE_REASON_TIMEOUT", 3: "FAILURE_REASON_SWEEP_TIMEOUT", 4: "FAILURE_REASON_INSUFFICIENT_VALUE", 5: "FAILURE_REASON_TEMPORARY", 6: "FAILURE_REASON_INCORRECT_AMOUNT", } FailureReason_value = map[string]int32{ "FAILURE_REASON_NONE": 0, "FAILURE_REASON_OFFCHAIN": 1, "FAILURE_REASON_TIMEOUT": 2, "FAILURE_REASON_SWEEP_TIMEOUT": 3, "FAILURE_REASON_INSUFFICIENT_VALUE": 4, "FAILURE_REASON_TEMPORARY": 5, "FAILURE_REASON_INCORRECT_AMOUNT": 6, } ) func (x FailureReason) Enum() *FailureReason { p := new(FailureReason) *p = x return p } func (x FailureReason) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (FailureReason) Descriptor() protoreflect.EnumDescriptor { return file_client_proto_enumTypes[2].Descriptor() } func (FailureReason) Type() protoreflect.EnumType { return &file_client_proto_enumTypes[2] } func (x FailureReason) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use FailureReason.Descriptor instead. func (FailureReason) EnumDescriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{2} } type LiquidityRuleType int32 const ( LiquidityRuleType_UNKNOWN LiquidityRuleType = 0 LiquidityRuleType_THRESHOLD LiquidityRuleType = 1 ) // Enum value maps for LiquidityRuleType. var ( LiquidityRuleType_name = map[int32]string{ 0: "UNKNOWN", 1: "THRESHOLD", } LiquidityRuleType_value = map[string]int32{ "UNKNOWN": 0, "THRESHOLD": 1, } ) func (x LiquidityRuleType) Enum() *LiquidityRuleType { p := new(LiquidityRuleType) *p = x return p } func (x LiquidityRuleType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (LiquidityRuleType) Descriptor() protoreflect.EnumDescriptor { return file_client_proto_enumTypes[3].Descriptor() } func (LiquidityRuleType) Type() protoreflect.EnumType { return &file_client_proto_enumTypes[3] } func (x LiquidityRuleType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use LiquidityRuleType.Descriptor instead. func (LiquidityRuleType) EnumDescriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{3} } type AutoReason int32 const ( AutoReason_AUTO_REASON_UNKNOWN AutoReason = 0 // //Budget not started indicates that we do not recommend any swaps because //the start time for our budget has not arrived yet. AutoReason_AUTO_REASON_BUDGET_NOT_STARTED AutoReason = 1 // //Sweep fees indicates that the estimated fees to sweep swaps are too high //right now. AutoReason_AUTO_REASON_SWEEP_FEES AutoReason = 2 // //Budget elapsed indicates that the autoloop budget for the period has been //elapsed. AutoReason_AUTO_REASON_BUDGET_ELAPSED AutoReason = 3 // //In flight indicates that the limit on in-flight automatically dispatched //swaps has already been reached. AutoReason_AUTO_REASON_IN_FLIGHT AutoReason = 4 // //Swap fee indicates that the server fee for a specific swap is too high. AutoReason_AUTO_REASON_SWAP_FEE AutoReason = 5 // //Miner fee indicates that the miner fee for a specific swap is to high. AutoReason_AUTO_REASON_MINER_FEE AutoReason = 6 // //Prepay indicates that the prepay fee for a specific swap is too high. AutoReason_AUTO_REASON_PREPAY AutoReason = 7 // //Failure backoff indicates that a swap has recently failed for this target, //and the backoff period has not yet passed. AutoReason_AUTO_REASON_FAILURE_BACKOFF AutoReason = 8 // //Loop out indicates that a loop out swap is currently utilizing the channel, //so it is not eligible. AutoReason_AUTO_REASON_LOOP_OUT AutoReason = 9 // //Loop In indicates that a loop in swap is currently in flight for the peer, //so it is not eligible. AutoReason_AUTO_REASON_LOOP_IN AutoReason = 10 // //Liquidity ok indicates that a target meets the liquidity balance expressed //in its rule, so no swap is needed. AutoReason_AUTO_REASON_LIQUIDITY_OK AutoReason = 11 // //Budget insufficient indicates that we cannot perform a swap because we do //not have enough pending budget available. This differs from budget elapsed, //because we still have some budget available, but we have allocated it to //other swaps. AutoReason_AUTO_REASON_BUDGET_INSUFFICIENT AutoReason = 12 // //Fee insufficient indicates that the fee estimate for a swap is higher than //the portion of total swap amount that we allow fees to consume. AutoReason_AUTO_REASON_FEE_INSUFFICIENT AutoReason = 13 ) // Enum value maps for AutoReason. var ( AutoReason_name = map[int32]string{ 0: "AUTO_REASON_UNKNOWN", 1: "AUTO_REASON_BUDGET_NOT_STARTED", 2: "AUTO_REASON_SWEEP_FEES", 3: "AUTO_REASON_BUDGET_ELAPSED", 4: "AUTO_REASON_IN_FLIGHT", 5: "AUTO_REASON_SWAP_FEE", 6: "AUTO_REASON_MINER_FEE", 7: "AUTO_REASON_PREPAY", 8: "AUTO_REASON_FAILURE_BACKOFF", 9: "AUTO_REASON_LOOP_OUT", 10: "AUTO_REASON_LOOP_IN", 11: "AUTO_REASON_LIQUIDITY_OK", 12: "AUTO_REASON_BUDGET_INSUFFICIENT", 13: "AUTO_REASON_FEE_INSUFFICIENT", } AutoReason_value = map[string]int32{ "AUTO_REASON_UNKNOWN": 0, "AUTO_REASON_BUDGET_NOT_STARTED": 1, "AUTO_REASON_SWEEP_FEES": 2, "AUTO_REASON_BUDGET_ELAPSED": 3, "AUTO_REASON_IN_FLIGHT": 4, "AUTO_REASON_SWAP_FEE": 5, "AUTO_REASON_MINER_FEE": 6, "AUTO_REASON_PREPAY": 7, "AUTO_REASON_FAILURE_BACKOFF": 8, "AUTO_REASON_LOOP_OUT": 9, "AUTO_REASON_LOOP_IN": 10, "AUTO_REASON_LIQUIDITY_OK": 11, "AUTO_REASON_BUDGET_INSUFFICIENT": 12, "AUTO_REASON_FEE_INSUFFICIENT": 13, } ) func (x AutoReason) Enum() *AutoReason { p := new(AutoReason) *p = x return p } func (x AutoReason) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (AutoReason) Descriptor() protoreflect.EnumDescriptor { return file_client_proto_enumTypes[4].Descriptor() } func (AutoReason) Type() protoreflect.EnumType { return &file_client_proto_enumTypes[4] } func (x AutoReason) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use AutoReason.Descriptor instead. func (AutoReason) EnumDescriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{4} } type LoopOutRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //Requested swap amount in sat. This does not include the swap and miner fee. Amt int64 `protobuf:"varint,1,opt,name=amt,proto3" json:"amt,omitempty"` // //Base58 encoded destination address for the swap. Dest string `protobuf:"bytes,2,opt,name=dest,proto3" json:"dest,omitempty"` // //Maximum off-chain fee in sat that may be paid for swap payment to the //server. This limit is applied during path finding. Typically this value is //taken from the response of the GetQuote call. MaxSwapRoutingFee int64 `protobuf:"varint,3,opt,name=max_swap_routing_fee,json=maxSwapRoutingFee,proto3" json:"max_swap_routing_fee,omitempty"` // //Maximum off-chain fee in sat that may be paid for the prepay to the server. //This limit is applied during path finding. Typically this value is taken //from the response of the GetQuote call. MaxPrepayRoutingFee int64 `protobuf:"varint,4,opt,name=max_prepay_routing_fee,json=maxPrepayRoutingFee,proto3" json:"max_prepay_routing_fee,omitempty"` // //Maximum we are willing to pay the server for the swap. This value is not //disclosed in the swap initiation call, but if the server asks for a //higher fee, we abort the swap. Typically this value is taken from the //response of the GetQuote call. It includes the prepay amount. MaxSwapFee int64 `protobuf:"varint,5,opt,name=max_swap_fee,json=maxSwapFee,proto3" json:"max_swap_fee,omitempty"` // //Maximum amount of the swap fee that may be charged as a prepayment. MaxPrepayAmt int64 `protobuf:"varint,6,opt,name=max_prepay_amt,json=maxPrepayAmt,proto3" json:"max_prepay_amt,omitempty"` // //Maximum in on-chain fees that we are willing to spend. If we want to //sweep the on-chain htlc and the fee estimate turns out higher than this //value, we cancel the swap. If the fee estimate is lower, we publish the //sweep tx. // //If the sweep tx is not confirmed, we are forced to ratchet up fees until it //is swept. Possibly even exceeding max_miner_fee if we get close to the htlc //timeout. Because the initial publication revealed the preimage, we have no //other choice. The server may already have pulled the off-chain htlc. Only //when the fee becomes higher than the swap amount, we can only wait for fees //to come down and hope - if we are past the timeout - that the server is not //publishing the revocation. // //max_miner_fee is typically taken from the response of the GetQuote call. MaxMinerFee int64 `protobuf:"varint,7,opt,name=max_miner_fee,json=maxMinerFee,proto3" json:"max_miner_fee,omitempty"` // //Deprecated, use outgoing_chan_set. The channel to loop out, the channel //to loop out is selected based on the lowest routing fee for the swap //payment to the server. // // Deprecated: Do not use. LoopOutChannel uint64 `protobuf:"varint,8,opt,name=loop_out_channel,json=loopOutChannel,proto3" json:"loop_out_channel,omitempty"` // //A restriction on the channel set that may be used to loop out. The actual //channel(s) that will be used are selected based on the lowest routing fee //for the swap payment to the server. OutgoingChanSet []uint64 `protobuf:"varint,11,rep,packed,name=outgoing_chan_set,json=outgoingChanSet,proto3" json:"outgoing_chan_set,omitempty"` // //The number of blocks from the on-chain HTLC's confirmation height that it //should be swept within. SweepConfTarget int32 `protobuf:"varint,9,opt,name=sweep_conf_target,json=sweepConfTarget,proto3" json:"sweep_conf_target,omitempty"` // //The number of confirmations that we require for the on chain htlc that will //be published by the server before we reveal the preimage. HtlcConfirmations int32 `protobuf:"varint,13,opt,name=htlc_confirmations,json=htlcConfirmations,proto3" json:"htlc_confirmations,omitempty"` // //The latest time (in unix seconds) we allow the server to wait before //publishing the HTLC on chain. Setting this to a larger value will give the //server the opportunity to batch multiple swaps together, and wait for //low-fee periods before publishing the HTLC, potentially resulting in a //lower total swap fee. SwapPublicationDeadline uint64 `protobuf:"varint,10,opt,name=swap_publication_deadline,json=swapPublicationDeadline,proto3" json:"swap_publication_deadline,omitempty"` // //An optional label for this swap. This field is limited to 500 characters //and may not start with the prefix [reserved], which is used to tag labels //produced by the daemon. Label string `protobuf:"bytes,12,opt,name=label,proto3" json:"label,omitempty"` // //An optional identification string that will be appended to the user agent //string sent to the server to give information about the usage of loop. This //initiator part is meant for user interfaces to add their name to give the //full picture of the binary used (loopd, LiT) and the method used for //triggering the swap (loop CLI, autolooper, LiT UI, other 3rd party UI). Initiator string `protobuf:"bytes,14,opt,name=initiator,proto3" json:"initiator,omitempty"` } func (x *LoopOutRequest) Reset() { *x = LoopOutRequest{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LoopOutRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*LoopOutRequest) ProtoMessage() {} func (x *LoopOutRequest) ProtoReflect() protoreflect.Message { mi := &file_client_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 LoopOutRequest.ProtoReflect.Descriptor instead. func (*LoopOutRequest) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{0} } func (x *LoopOutRequest) GetAmt() int64 { if x != nil { return x.Amt } return 0 } func (x *LoopOutRequest) GetDest() string { if x != nil { return x.Dest } return "" } func (x *LoopOutRequest) GetMaxSwapRoutingFee() int64 { if x != nil { return x.MaxSwapRoutingFee } return 0 } func (x *LoopOutRequest) GetMaxPrepayRoutingFee() int64 { if x != nil { return x.MaxPrepayRoutingFee } return 0 } func (x *LoopOutRequest) GetMaxSwapFee() int64 { if x != nil { return x.MaxSwapFee } return 0 } func (x *LoopOutRequest) GetMaxPrepayAmt() int64 { if x != nil { return x.MaxPrepayAmt } return 0 } func (x *LoopOutRequest) GetMaxMinerFee() int64 { if x != nil { return x.MaxMinerFee } return 0 } // Deprecated: Do not use. func (x *LoopOutRequest) GetLoopOutChannel() uint64 { if x != nil { return x.LoopOutChannel } return 0 } func (x *LoopOutRequest) GetOutgoingChanSet() []uint64 { if x != nil { return x.OutgoingChanSet } return nil } func (x *LoopOutRequest) GetSweepConfTarget() int32 { if x != nil { return x.SweepConfTarget } return 0 } func (x *LoopOutRequest) GetHtlcConfirmations() int32 { if x != nil { return x.HtlcConfirmations } return 0 } func (x *LoopOutRequest) GetSwapPublicationDeadline() uint64 { if x != nil { return x.SwapPublicationDeadline } return 0 } func (x *LoopOutRequest) GetLabel() string { if x != nil { return x.Label } return "" } func (x *LoopOutRequest) GetInitiator() string { if x != nil { return x.Initiator } return "" } type LoopInRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //Requested swap amount in sat. This does not include the swap and miner //fee. Amt int64 `protobuf:"varint,1,opt,name=amt,proto3" json:"amt,omitempty"` // //Maximum we are willing to pay the server for the swap. This value is not //disclosed in the swap initiation call, but if the server asks for a //higher fee, we abort the swap. Typically this value is taken from the //response of the GetQuote call. MaxSwapFee int64 `protobuf:"varint,2,opt,name=max_swap_fee,json=maxSwapFee,proto3" json:"max_swap_fee,omitempty"` // //Maximum in on-chain fees that we are willing to spend. If we want to //publish the on-chain htlc and the fee estimate turns out higher than this //value, we cancel the swap. // //max_miner_fee is typically taken from the response of the GetQuote call. MaxMinerFee int64 `protobuf:"varint,3,opt,name=max_miner_fee,json=maxMinerFee,proto3" json:"max_miner_fee,omitempty"` // //The last hop to use for the loop in swap. If empty, the last hop is selected //based on the lowest routing fee for the swap payment from the server. LastHop []byte `protobuf:"bytes,4,opt,name=last_hop,json=lastHop,proto3" json:"last_hop,omitempty"` // //If external_htlc is true, we expect the htlc to be published by an external //actor. ExternalHtlc bool `protobuf:"varint,5,opt,name=external_htlc,json=externalHtlc,proto3" json:"external_htlc,omitempty"` // //The number of blocks that the on chain htlc should confirm within. HtlcConfTarget int32 `protobuf:"varint,6,opt,name=htlc_conf_target,json=htlcConfTarget,proto3" json:"htlc_conf_target,omitempty"` // //An optional label for this swap. This field is limited to 500 characters //and may not be one of the reserved values in loop/labels Reserved list. Label string `protobuf:"bytes,7,opt,name=label,proto3" json:"label,omitempty"` // //An optional identification string that will be appended to the user agent //string sent to the server to give information about the usage of loop. This //initiator part is meant for user interfaces to add their name to give the //full picture of the binary used (loopd, LiT) and the method used for //triggering the swap (loop CLI, autolooper, LiT UI, other 3rd party UI). Initiator string `protobuf:"bytes,8,opt,name=initiator,proto3" json:"initiator,omitempty"` } func (x *LoopInRequest) Reset() { *x = LoopInRequest{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LoopInRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*LoopInRequest) ProtoMessage() {} func (x *LoopInRequest) ProtoReflect() protoreflect.Message { mi := &file_client_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 LoopInRequest.ProtoReflect.Descriptor instead. func (*LoopInRequest) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{1} } func (x *LoopInRequest) GetAmt() int64 { if x != nil { return x.Amt } return 0 } func (x *LoopInRequest) GetMaxSwapFee() int64 { if x != nil { return x.MaxSwapFee } return 0 } func (x *LoopInRequest) GetMaxMinerFee() int64 { if x != nil { return x.MaxMinerFee } return 0 } func (x *LoopInRequest) GetLastHop() []byte { if x != nil { return x.LastHop } return nil } func (x *LoopInRequest) GetExternalHtlc() bool { if x != nil { return x.ExternalHtlc } return false } func (x *LoopInRequest) GetHtlcConfTarget() int32 { if x != nil { return x.HtlcConfTarget } return 0 } func (x *LoopInRequest) GetLabel() string { if x != nil { return x.Label } return "" } func (x *LoopInRequest) GetInitiator() string { if x != nil { return x.Initiator } return "" } type SwapResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //Swap identifier to track status in the update stream that is returned from //the Start() call. Currently this is the hash that locks the htlcs. //DEPRECATED: To make the API more consistent, this field is deprecated in //favor of id_bytes and will be removed in a future release. // // Deprecated: Do not use. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // //Swap identifier to track status in the update stream that is returned from //the Start() call. Currently this is the hash that locks the htlcs. IdBytes []byte `protobuf:"bytes,3,opt,name=id_bytes,json=idBytes,proto3" json:"id_bytes,omitempty"` // //DEPRECATED. This field stores the address of the onchain htlc, but //depending on the request, the semantics are different. //- For internal loop-in htlc_address contains the address of the //native segwit (P2WSH) htlc. //- For external loop-in htlc_address contains the address of the //nested segwit (NP2WSH) htlc. //- For loop-out htlc_address always contains the native segwit (P2WSH) //htlc address. // // Deprecated: Do not use. HtlcAddress string `protobuf:"bytes,2,opt,name=htlc_address,json=htlcAddress,proto3" json:"htlc_address,omitempty"` // //The nested segwit address of the on-chain htlc. //This field remains empty for loop-out. HtlcAddressNp2Wsh string `protobuf:"bytes,4,opt,name=htlc_address_np2wsh,json=htlcAddressNp2wsh,proto3" json:"htlc_address_np2wsh,omitempty"` // //The native segwit address of the on-chain htlc. //Used for both loop-in and loop-out. HtlcAddressP2Wsh string `protobuf:"bytes,5,opt,name=htlc_address_p2wsh,json=htlcAddressP2wsh,proto3" json:"htlc_address_p2wsh,omitempty"` // A human-readable message received from the loop server. ServerMessage string `protobuf:"bytes,6,opt,name=server_message,json=serverMessage,proto3" json:"server_message,omitempty"` } func (x *SwapResponse) Reset() { *x = SwapResponse{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SwapResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*SwapResponse) ProtoMessage() {} func (x *SwapResponse) ProtoReflect() protoreflect.Message { mi := &file_client_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 SwapResponse.ProtoReflect.Descriptor instead. func (*SwapResponse) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{2} } // Deprecated: Do not use. func (x *SwapResponse) GetId() string { if x != nil { return x.Id } return "" } func (x *SwapResponse) GetIdBytes() []byte { if x != nil { return x.IdBytes } return nil } // Deprecated: Do not use. func (x *SwapResponse) GetHtlcAddress() string { if x != nil { return x.HtlcAddress } return "" } func (x *SwapResponse) GetHtlcAddressNp2Wsh() string { if x != nil { return x.HtlcAddressNp2Wsh } return "" } func (x *SwapResponse) GetHtlcAddressP2Wsh() string { if x != nil { return x.HtlcAddressP2Wsh } return "" } func (x *SwapResponse) GetServerMessage() string { if x != nil { return x.ServerMessage } return "" } type MonitorRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *MonitorRequest) Reset() { *x = MonitorRequest{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MonitorRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*MonitorRequest) ProtoMessage() {} func (x *MonitorRequest) ProtoReflect() protoreflect.Message { mi := &file_client_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 MonitorRequest.ProtoReflect.Descriptor instead. func (*MonitorRequest) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{3} } type SwapStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //Requested swap amount in sat. This does not include the swap and miner //fee. Amt int64 `protobuf:"varint,1,opt,name=amt,proto3" json:"amt,omitempty"` // //Swap identifier to track status in the update stream that is returned from //the Start() call. Currently this is the hash that locks the htlcs. //DEPRECATED: To make the API more consistent, this field is deprecated in //favor of id_bytes and will be removed in a future release. // // Deprecated: Do not use. Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` // //Swap identifier to track status in the update stream that is returned from //the Start() call. Currently this is the hash that locks the htlcs. IdBytes []byte `protobuf:"bytes,11,opt,name=id_bytes,json=idBytes,proto3" json:"id_bytes,omitempty"` // //The type of the swap. Type SwapType `protobuf:"varint,3,opt,name=type,proto3,enum=looprpc.SwapType" json:"type,omitempty"` // //State the swap is currently in, see State enum. State SwapState `protobuf:"varint,4,opt,name=state,proto3,enum=looprpc.SwapState" json:"state,omitempty"` // //A failure reason for the swap, only set if the swap has failed. FailureReason FailureReason `protobuf:"varint,14,opt,name=failure_reason,json=failureReason,proto3,enum=looprpc.FailureReason" json:"failure_reason,omitempty"` // //Initiation time of the swap. InitiationTime int64 `protobuf:"varint,5,opt,name=initiation_time,json=initiationTime,proto3" json:"initiation_time,omitempty"` // //Initiation time of the swap. LastUpdateTime int64 `protobuf:"varint,6,opt,name=last_update_time,json=lastUpdateTime,proto3" json:"last_update_time,omitempty"` // //DEPRECATED: This field stores the address of the onchain htlc. //- For internal loop-in htlc_address contains the address of the //native segwit (P2WSH) htlc. //- For external loop-in htlc_address contains the nested segwit (NP2WSH) //address. //- For loop-out htlc_address always contains the native segwit (P2WSH) //htlc address. // // Deprecated: Do not use. HtlcAddress string `protobuf:"bytes,7,opt,name=htlc_address,json=htlcAddress,proto3" json:"htlc_address,omitempty"` // HTLC address (native segwit), used in loop-in and loop-out swaps. HtlcAddressP2Wsh string `protobuf:"bytes,12,opt,name=htlc_address_p2wsh,json=htlcAddressP2wsh,proto3" json:"htlc_address_p2wsh,omitempty"` // HTLC address (nested segwit), used in loop-in swaps only. HtlcAddressNp2Wsh string `protobuf:"bytes,13,opt,name=htlc_address_np2wsh,json=htlcAddressNp2wsh,proto3" json:"htlc_address_np2wsh,omitempty"` // Swap server cost CostServer int64 `protobuf:"varint,8,opt,name=cost_server,json=costServer,proto3" json:"cost_server,omitempty"` // On-chain transaction cost CostOnchain int64 `protobuf:"varint,9,opt,name=cost_onchain,json=costOnchain,proto3" json:"cost_onchain,omitempty"` // Off-chain routing fees CostOffchain int64 `protobuf:"varint,10,opt,name=cost_offchain,json=costOffchain,proto3" json:"cost_offchain,omitempty"` // An optional label given to the swap on creation. Label string `protobuf:"bytes,15,opt,name=label,proto3" json:"label,omitempty"` } func (x *SwapStatus) Reset() { *x = SwapStatus{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SwapStatus) String() string { return protoimpl.X.MessageStringOf(x) } func (*SwapStatus) ProtoMessage() {} func (x *SwapStatus) ProtoReflect() protoreflect.Message { mi := &file_client_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 SwapStatus.ProtoReflect.Descriptor instead. func (*SwapStatus) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{4} } func (x *SwapStatus) GetAmt() int64 { if x != nil { return x.Amt } return 0 } // Deprecated: Do not use. func (x *SwapStatus) GetId() string { if x != nil { return x.Id } return "" } func (x *SwapStatus) GetIdBytes() []byte { if x != nil { return x.IdBytes } return nil } func (x *SwapStatus) GetType() SwapType { if x != nil { return x.Type } return SwapType_LOOP_OUT } func (x *SwapStatus) GetState() SwapState { if x != nil { return x.State } return SwapState_INITIATED } func (x *SwapStatus) GetFailureReason() FailureReason { if x != nil { return x.FailureReason } return FailureReason_FAILURE_REASON_NONE } func (x *SwapStatus) GetInitiationTime() int64 { if x != nil { return x.InitiationTime } return 0 } func (x *SwapStatus) GetLastUpdateTime() int64 { if x != nil { return x.LastUpdateTime } return 0 } // Deprecated: Do not use. func (x *SwapStatus) GetHtlcAddress() string { if x != nil { return x.HtlcAddress } return "" } func (x *SwapStatus) GetHtlcAddressP2Wsh() string { if x != nil { return x.HtlcAddressP2Wsh } return "" } func (x *SwapStatus) GetHtlcAddressNp2Wsh() string { if x != nil { return x.HtlcAddressNp2Wsh } return "" } func (x *SwapStatus) GetCostServer() int64 { if x != nil { return x.CostServer } return 0 } func (x *SwapStatus) GetCostOnchain() int64 { if x != nil { return x.CostOnchain } return 0 } func (x *SwapStatus) GetCostOffchain() int64 { if x != nil { return x.CostOffchain } return 0 } func (x *SwapStatus) GetLabel() string { if x != nil { return x.Label } return "" } type ListSwapsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ListSwapsRequest) Reset() { *x = ListSwapsRequest{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListSwapsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListSwapsRequest) ProtoMessage() {} func (x *ListSwapsRequest) ProtoReflect() protoreflect.Message { mi := &file_client_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 ListSwapsRequest.ProtoReflect.Descriptor instead. func (*ListSwapsRequest) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{5} } type ListSwapsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //The list of all currently known swaps and their status. Swaps []*SwapStatus `protobuf:"bytes,1,rep,name=swaps,proto3" json:"swaps,omitempty"` } func (x *ListSwapsResponse) Reset() { *x = ListSwapsResponse{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListSwapsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListSwapsResponse) ProtoMessage() {} func (x *ListSwapsResponse) ProtoReflect() protoreflect.Message { mi := &file_client_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 ListSwapsResponse.ProtoReflect.Descriptor instead. func (*ListSwapsResponse) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{6} } func (x *ListSwapsResponse) GetSwaps() []*SwapStatus { if x != nil { return x.Swaps } return nil } type SwapInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //The swap identifier which currently is the hash that locks the HTLCs. When //using REST, this field must be encoded as URL safe base64. Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } func (x *SwapInfoRequest) Reset() { *x = SwapInfoRequest{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SwapInfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SwapInfoRequest) ProtoMessage() {} func (x *SwapInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_client_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 SwapInfoRequest.ProtoReflect.Descriptor instead. func (*SwapInfoRequest) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{7} } func (x *SwapInfoRequest) GetId() []byte { if x != nil { return x.Id } return nil } type TermsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *TermsRequest) Reset() { *x = TermsRequest{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TermsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*TermsRequest) ProtoMessage() {} func (x *TermsRequest) ProtoReflect() protoreflect.Message { mi := &file_client_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 TermsRequest.ProtoReflect.Descriptor instead. func (*TermsRequest) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{8} } type InTermsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //Minimum swap amount (sat) MinSwapAmount int64 `protobuf:"varint,5,opt,name=min_swap_amount,json=minSwapAmount,proto3" json:"min_swap_amount,omitempty"` // //Maximum swap amount (sat) MaxSwapAmount int64 `protobuf:"varint,6,opt,name=max_swap_amount,json=maxSwapAmount,proto3" json:"max_swap_amount,omitempty"` } func (x *InTermsResponse) Reset() { *x = InTermsResponse{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InTermsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*InTermsResponse) ProtoMessage() {} func (x *InTermsResponse) ProtoReflect() protoreflect.Message { mi := &file_client_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 InTermsResponse.ProtoReflect.Descriptor instead. func (*InTermsResponse) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{9} } func (x *InTermsResponse) GetMinSwapAmount() int64 { if x != nil { return x.MinSwapAmount } return 0 } func (x *InTermsResponse) GetMaxSwapAmount() int64 { if x != nil { return x.MaxSwapAmount } return 0 } type OutTermsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //Minimum swap amount (sat) MinSwapAmount int64 `protobuf:"varint,5,opt,name=min_swap_amount,json=minSwapAmount,proto3" json:"min_swap_amount,omitempty"` // //Maximum swap amount (sat) MaxSwapAmount int64 `protobuf:"varint,6,opt,name=max_swap_amount,json=maxSwapAmount,proto3" json:"max_swap_amount,omitempty"` // The minimally accepted cltv delta of the on-chain htlc. MinCltvDelta int32 `protobuf:"varint,8,opt,name=min_cltv_delta,json=minCltvDelta,proto3" json:"min_cltv_delta,omitempty"` // The maximally accepted cltv delta of the on-chain htlc. MaxCltvDelta int32 `protobuf:"varint,9,opt,name=max_cltv_delta,json=maxCltvDelta,proto3" json:"max_cltv_delta,omitempty"` } func (x *OutTermsResponse) Reset() { *x = OutTermsResponse{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OutTermsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*OutTermsResponse) ProtoMessage() {} func (x *OutTermsResponse) ProtoReflect() protoreflect.Message { mi := &file_client_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 OutTermsResponse.ProtoReflect.Descriptor instead. func (*OutTermsResponse) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{10} } func (x *OutTermsResponse) GetMinSwapAmount() int64 { if x != nil { return x.MinSwapAmount } return 0 } func (x *OutTermsResponse) GetMaxSwapAmount() int64 { if x != nil { return x.MaxSwapAmount } return 0 } func (x *OutTermsResponse) GetMinCltvDelta() int32 { if x != nil { return x.MinCltvDelta } return 0 } func (x *OutTermsResponse) GetMaxCltvDelta() int32 { if x != nil { return x.MaxCltvDelta } return 0 } type QuoteRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //The amount to swap in satoshis. Amt int64 `protobuf:"varint,1,opt,name=amt,proto3" json:"amt,omitempty"` // //The confirmation target that should be used either for the sweep of the //on-chain HTLC broadcast by the swap server in the case of a Loop Out, or for //the confirmation of the on-chain HTLC broadcast by the swap client in the //case of a Loop In. ConfTarget int32 `protobuf:"varint,2,opt,name=conf_target,json=confTarget,proto3" json:"conf_target,omitempty"` // //If external_htlc is true, we expect the htlc to be published by an external //actor. ExternalHtlc bool `protobuf:"varint,3,opt,name=external_htlc,json=externalHtlc,proto3" json:"external_htlc,omitempty"` // //The latest time (in unix seconds) we allow the server to wait before //publishing the HTLC on chain. Setting this to a larger value will give the //server the opportunity to batch multiple swaps together, and wait for //low-fee periods before publishing the HTLC, potentially resulting in a //lower total swap fee. This only has an effect on loop out quotes. SwapPublicationDeadline uint64 `protobuf:"varint,4,opt,name=swap_publication_deadline,json=swapPublicationDeadline,proto3" json:"swap_publication_deadline,omitempty"` } func (x *QuoteRequest) Reset() { *x = QuoteRequest{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QuoteRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*QuoteRequest) ProtoMessage() {} func (x *QuoteRequest) ProtoReflect() protoreflect.Message { mi := &file_client_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 QuoteRequest.ProtoReflect.Descriptor instead. func (*QuoteRequest) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{11} } func (x *QuoteRequest) GetAmt() int64 { if x != nil { return x.Amt } return 0 } func (x *QuoteRequest) GetConfTarget() int32 { if x != nil { return x.ConfTarget } return 0 } func (x *QuoteRequest) GetExternalHtlc() bool { if x != nil { return x.ExternalHtlc } return false } func (x *QuoteRequest) GetSwapPublicationDeadline() uint64 { if x != nil { return x.SwapPublicationDeadline } return 0 } type InQuoteResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //The fee that the swap server is charging for the swap. SwapFeeSat int64 `protobuf:"varint,1,opt,name=swap_fee_sat,json=swapFeeSat,proto3" json:"swap_fee_sat,omitempty"` // //An estimate of the on-chain fee that needs to be paid to publish the HTLC //If a miner fee of 0 is returned, it means the external_htlc flag was set for //a loop in and the fee estimation was skipped. If a miner fee of -1 is //returned, it means lnd's wallet tried to estimate the fee but was unable to //create a sample estimation transaction because not enough funds are //available. An information message should be shown to the user in this case. HtlcPublishFeeSat int64 `protobuf:"varint,3,opt,name=htlc_publish_fee_sat,json=htlcPublishFeeSat,proto3" json:"htlc_publish_fee_sat,omitempty"` // //On-chain cltv expiry delta CltvDelta int32 `protobuf:"varint,5,opt,name=cltv_delta,json=cltvDelta,proto3" json:"cltv_delta,omitempty"` // //The confirmation target to be used to publish the on-chain HTLC. ConfTarget int32 `protobuf:"varint,6,opt,name=conf_target,json=confTarget,proto3" json:"conf_target,omitempty"` } func (x *InQuoteResponse) Reset() { *x = InQuoteResponse{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InQuoteResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*InQuoteResponse) ProtoMessage() {} func (x *InQuoteResponse) ProtoReflect() protoreflect.Message { mi := &file_client_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 InQuoteResponse.ProtoReflect.Descriptor instead. func (*InQuoteResponse) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{12} } func (x *InQuoteResponse) GetSwapFeeSat() int64 { if x != nil { return x.SwapFeeSat } return 0 } func (x *InQuoteResponse) GetHtlcPublishFeeSat() int64 { if x != nil { return x.HtlcPublishFeeSat } return 0 } func (x *InQuoteResponse) GetCltvDelta() int32 { if x != nil { return x.CltvDelta } return 0 } func (x *InQuoteResponse) GetConfTarget() int32 { if x != nil { return x.ConfTarget } return 0 } type OutQuoteResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //The fee that the swap server is charging for the swap. SwapFeeSat int64 `protobuf:"varint,1,opt,name=swap_fee_sat,json=swapFeeSat,proto3" json:"swap_fee_sat,omitempty"` // //The part of the swap fee that is requested as a prepayment. PrepayAmtSat int64 `protobuf:"varint,2,opt,name=prepay_amt_sat,json=prepayAmtSat,proto3" json:"prepay_amt_sat,omitempty"` // //An estimate of the on-chain fee that needs to be paid to sweep the HTLC for //a loop out. HtlcSweepFeeSat int64 `protobuf:"varint,3,opt,name=htlc_sweep_fee_sat,json=htlcSweepFeeSat,proto3" json:"htlc_sweep_fee_sat,omitempty"` // //The node pubkey where the swap payment needs to be paid //to. This can be used to test connectivity before initiating the swap. SwapPaymentDest []byte `protobuf:"bytes,4,opt,name=swap_payment_dest,json=swapPaymentDest,proto3" json:"swap_payment_dest,omitempty"` // //On-chain cltv expiry delta CltvDelta int32 `protobuf:"varint,5,opt,name=cltv_delta,json=cltvDelta,proto3" json:"cltv_delta,omitempty"` // //The confirmation target to be used for the sweep of the on-chain HTLC. ConfTarget int32 `protobuf:"varint,6,opt,name=conf_target,json=confTarget,proto3" json:"conf_target,omitempty"` } func (x *OutQuoteResponse) Reset() { *x = OutQuoteResponse{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OutQuoteResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*OutQuoteResponse) ProtoMessage() {} func (x *OutQuoteResponse) ProtoReflect() protoreflect.Message { mi := &file_client_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 OutQuoteResponse.ProtoReflect.Descriptor instead. func (*OutQuoteResponse) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{13} } func (x *OutQuoteResponse) GetSwapFeeSat() int64 { if x != nil { return x.SwapFeeSat } return 0 } func (x *OutQuoteResponse) GetPrepayAmtSat() int64 { if x != nil { return x.PrepayAmtSat } return 0 } func (x *OutQuoteResponse) GetHtlcSweepFeeSat() int64 { if x != nil { return x.HtlcSweepFeeSat } return 0 } func (x *OutQuoteResponse) GetSwapPaymentDest() []byte { if x != nil { return x.SwapPaymentDest } return nil } func (x *OutQuoteResponse) GetCltvDelta() int32 { if x != nil { return x.CltvDelta } return 0 } func (x *OutQuoteResponse) GetConfTarget() int32 { if x != nil { return x.ConfTarget } return 0 } type TokensRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *TokensRequest) Reset() { *x = TokensRequest{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TokensRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*TokensRequest) ProtoMessage() {} func (x *TokensRequest) ProtoReflect() protoreflect.Message { mi := &file_client_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 TokensRequest.ProtoReflect.Descriptor instead. func (*TokensRequest) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{14} } type TokensResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //List of all tokens the daemon knows of, including old/expired tokens. Tokens []*LsatToken `protobuf:"bytes,1,rep,name=tokens,proto3" json:"tokens,omitempty"` } func (x *TokensResponse) Reset() { *x = TokensResponse{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TokensResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*TokensResponse) ProtoMessage() {} func (x *TokensResponse) ProtoReflect() protoreflect.Message { mi := &file_client_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 TokensResponse.ProtoReflect.Descriptor instead. func (*TokensResponse) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{15} } func (x *TokensResponse) GetTokens() []*LsatToken { if x != nil { return x.Tokens } return nil } type LsatToken struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //The base macaroon that was baked by the auth server. BaseMacaroon []byte `protobuf:"bytes,1,opt,name=base_macaroon,json=baseMacaroon,proto3" json:"base_macaroon,omitempty"` // //The payment hash of the payment that was paid to obtain the token. PaymentHash []byte `protobuf:"bytes,2,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` // //The preimage of the payment hash, knowledge of this is proof that the //payment has been paid. If the preimage is set to all zeros, this means the //payment is still pending and the token is not yet fully valid. PaymentPreimage []byte `protobuf:"bytes,3,opt,name=payment_preimage,json=paymentPreimage,proto3" json:"payment_preimage,omitempty"` // //The amount of millisatoshis that was paid to get the token. AmountPaidMsat int64 `protobuf:"varint,4,opt,name=amount_paid_msat,json=amountPaidMsat,proto3" json:"amount_paid_msat,omitempty"` // //The amount of millisatoshis paid in routing fee to pay for the token. RoutingFeePaidMsat int64 `protobuf:"varint,5,opt,name=routing_fee_paid_msat,json=routingFeePaidMsat,proto3" json:"routing_fee_paid_msat,omitempty"` // //The creation time of the token as UNIX timestamp in seconds. TimeCreated int64 `protobuf:"varint,6,opt,name=time_created,json=timeCreated,proto3" json:"time_created,omitempty"` // //Indicates whether the token is expired or still valid. Expired bool `protobuf:"varint,7,opt,name=expired,proto3" json:"expired,omitempty"` // //Identifying attribute of this token in the store. Currently represents the //file name of the token where it's stored on the file system. StorageName string `protobuf:"bytes,8,opt,name=storage_name,json=storageName,proto3" json:"storage_name,omitempty"` } func (x *LsatToken) Reset() { *x = LsatToken{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LsatToken) String() string { return protoimpl.X.MessageStringOf(x) } func (*LsatToken) ProtoMessage() {} func (x *LsatToken) ProtoReflect() protoreflect.Message { mi := &file_client_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 LsatToken.ProtoReflect.Descriptor instead. func (*LsatToken) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{16} } func (x *LsatToken) GetBaseMacaroon() []byte { if x != nil { return x.BaseMacaroon } return nil } func (x *LsatToken) GetPaymentHash() []byte { if x != nil { return x.PaymentHash } return nil } func (x *LsatToken) GetPaymentPreimage() []byte { if x != nil { return x.PaymentPreimage } return nil } func (x *LsatToken) GetAmountPaidMsat() int64 { if x != nil { return x.AmountPaidMsat } return 0 } func (x *LsatToken) GetRoutingFeePaidMsat() int64 { if x != nil { return x.RoutingFeePaidMsat } return 0 } func (x *LsatToken) GetTimeCreated() int64 { if x != nil { return x.TimeCreated } return 0 } func (x *LsatToken) GetExpired() bool { if x != nil { return x.Expired } return false } func (x *LsatToken) GetStorageName() string { if x != nil { return x.StorageName } return "" } type GetLiquidityParamsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *GetLiquidityParamsRequest) Reset() { *x = GetLiquidityParamsRequest{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetLiquidityParamsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetLiquidityParamsRequest) ProtoMessage() {} func (x *GetLiquidityParamsRequest) ProtoReflect() protoreflect.Message { mi := &file_client_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 GetLiquidityParamsRequest.ProtoReflect.Descriptor instead. func (*GetLiquidityParamsRequest) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{17} } type LiquidityParameters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //A set of liquidity rules that describe the desired liquidity balance. Rules []*LiquidityRule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"` // //The parts per million of swap amount that is allowed to be allocated to swap //fees. This value is applied across swap categories and may not be set in //conjunction with sweep fee rate, swap fee ppm, routing fee ppm, prepay //routing, max prepay and max miner fee. FeePpm uint64 `protobuf:"varint,16,opt,name=fee_ppm,json=feePpm,proto3" json:"fee_ppm,omitempty"` // //The limit we place on our estimated sweep cost for a swap in sat/vByte. If //the estimated fee for our sweep transaction within the specified //confirmation target is above this value, we will not suggest any swaps. SweepFeeRateSatPerVbyte uint64 `protobuf:"varint,2,opt,name=sweep_fee_rate_sat_per_vbyte,json=sweepFeeRateSatPerVbyte,proto3" json:"sweep_fee_rate_sat_per_vbyte,omitempty"` // //The maximum fee paid to the server for facilitating the swap, expressed //as parts per million of the swap volume. MaxSwapFeePpm uint64 `protobuf:"varint,3,opt,name=max_swap_fee_ppm,json=maxSwapFeePpm,proto3" json:"max_swap_fee_ppm,omitempty"` // //The maximum fee paid to route the swap invoice off chain, expressed as //parts per million of the volume being routed. MaxRoutingFeePpm uint64 `protobuf:"varint,4,opt,name=max_routing_fee_ppm,json=maxRoutingFeePpm,proto3" json:"max_routing_fee_ppm,omitempty"` // //The maximum fee paid to route the prepay invoice off chain, expressed as //parts per million of the volume being routed. MaxPrepayRoutingFeePpm uint64 `protobuf:"varint,5,opt,name=max_prepay_routing_fee_ppm,json=maxPrepayRoutingFeePpm,proto3" json:"max_prepay_routing_fee_ppm,omitempty"` // //The maximum no-show penalty in satoshis paid for a swap. MaxPrepaySat uint64 `protobuf:"varint,6,opt,name=max_prepay_sat,json=maxPrepaySat,proto3" json:"max_prepay_sat,omitempty"` // //The maximum miner fee we will pay to sweep the swap on chain. Note that we //will not suggest a swap if the estimate is above the sweep limit set by //these parameters, and we use the current fee estimate to sweep on chain so //this value is only a cap placed on the amount we spend on fees in the case //where the swap needs to be claimed on chain, but fees have suddenly spiked. MaxMinerFeeSat uint64 `protobuf:"varint,7,opt,name=max_miner_fee_sat,json=maxMinerFeeSat,proto3" json:"max_miner_fee_sat,omitempty"` // //The number of blocks from the on-chain HTLC's confirmation height that it //should be swept within. SweepConfTarget int32 `protobuf:"varint,8,opt,name=sweep_conf_target,json=sweepConfTarget,proto3" json:"sweep_conf_target,omitempty"` // //The amount of time we require pass since a channel was part of a failed //swap due to off chain payment failure until it will be considered for swap //suggestions again, expressed in seconds. FailureBackoffSec uint64 `protobuf:"varint,9,opt,name=failure_backoff_sec,json=failureBackoffSec,proto3" json:"failure_backoff_sec,omitempty"` // //Set to true to enable automatic dispatch of swaps. All swaps will be limited //to the fee categories set by these parameters, and total expenditure will //be limited to the autoloop budget. Autoloop bool `protobuf:"varint,10,opt,name=autoloop,proto3" json:"autoloop,omitempty"` // //The total budget for automatically dispatched swaps since the budget start //time, expressed in satoshis. AutoloopBudgetSat uint64 `protobuf:"varint,11,opt,name=autoloop_budget_sat,json=autoloopBudgetSat,proto3" json:"autoloop_budget_sat,omitempty"` // //The start time for autoloop budget, expressed as a unix timestamp in //seconds. If this value is 0, the budget will be applied for all //automatically dispatched swaps. Swaps that were completed before this date //will not be included in budget calculations. AutoloopBudgetStartSec uint64 `protobuf:"varint,12,opt,name=autoloop_budget_start_sec,json=autoloopBudgetStartSec,proto3" json:"autoloop_budget_start_sec,omitempty"` // //The maximum number of automatically dispatched swaps that we allow to be in //flight at any point in time. AutoMaxInFlight uint64 `protobuf:"varint,13,opt,name=auto_max_in_flight,json=autoMaxInFlight,proto3" json:"auto_max_in_flight,omitempty"` // //The minimum amount, expressed in satoshis, that the autoloop client will //dispatch a swap for. This value is subject to the server-side limits //specified by the LoopOutTerms endpoint. MinSwapAmount uint64 `protobuf:"varint,14,opt,name=min_swap_amount,json=minSwapAmount,proto3" json:"min_swap_amount,omitempty"` // //The maximum amount, expressed in satoshis, that the autoloop client will //dispatch a swap for. This value is subject to the server-side limits //specified by the LoopOutTerms endpoint. MaxSwapAmount uint64 `protobuf:"varint,15,opt,name=max_swap_amount,json=maxSwapAmount,proto3" json:"max_swap_amount,omitempty"` } func (x *LiquidityParameters) Reset() { *x = LiquidityParameters{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LiquidityParameters) String() string { return protoimpl.X.MessageStringOf(x) } func (*LiquidityParameters) ProtoMessage() {} func (x *LiquidityParameters) ProtoReflect() protoreflect.Message { mi := &file_client_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 LiquidityParameters.ProtoReflect.Descriptor instead. func (*LiquidityParameters) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{18} } func (x *LiquidityParameters) GetRules() []*LiquidityRule { if x != nil { return x.Rules } return nil } func (x *LiquidityParameters) GetFeePpm() uint64 { if x != nil { return x.FeePpm } return 0 } func (x *LiquidityParameters) GetSweepFeeRateSatPerVbyte() uint64 { if x != nil { return x.SweepFeeRateSatPerVbyte } return 0 } func (x *LiquidityParameters) GetMaxSwapFeePpm() uint64 { if x != nil { return x.MaxSwapFeePpm } return 0 } func (x *LiquidityParameters) GetMaxRoutingFeePpm() uint64 { if x != nil { return x.MaxRoutingFeePpm } return 0 } func (x *LiquidityParameters) GetMaxPrepayRoutingFeePpm() uint64 { if x != nil { return x.MaxPrepayRoutingFeePpm } return 0 } func (x *LiquidityParameters) GetMaxPrepaySat() uint64 { if x != nil { return x.MaxPrepaySat } return 0 } func (x *LiquidityParameters) GetMaxMinerFeeSat() uint64 { if x != nil { return x.MaxMinerFeeSat } return 0 } func (x *LiquidityParameters) GetSweepConfTarget() int32 { if x != nil { return x.SweepConfTarget } return 0 } func (x *LiquidityParameters) GetFailureBackoffSec() uint64 { if x != nil { return x.FailureBackoffSec } return 0 } func (x *LiquidityParameters) GetAutoloop() bool { if x != nil { return x.Autoloop } return false } func (x *LiquidityParameters) GetAutoloopBudgetSat() uint64 { if x != nil { return x.AutoloopBudgetSat } return 0 } func (x *LiquidityParameters) GetAutoloopBudgetStartSec() uint64 { if x != nil { return x.AutoloopBudgetStartSec } return 0 } func (x *LiquidityParameters) GetAutoMaxInFlight() uint64 { if x != nil { return x.AutoMaxInFlight } return 0 } func (x *LiquidityParameters) GetMinSwapAmount() uint64 { if x != nil { return x.MinSwapAmount } return 0 } func (x *LiquidityParameters) GetMaxSwapAmount() uint64 { if x != nil { return x.MaxSwapAmount } return 0 } type LiquidityRule struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //The short channel ID of the channel that this rule should be applied to. //This field may not be set when the pubkey field is set. ChannelId uint64 `protobuf:"varint,1,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` // //The public key of the peer that this rule should be applied to. This field //may not be set when the channel id field is set. Pubkey []byte `protobuf:"bytes,5,opt,name=pubkey,proto3" json:"pubkey,omitempty"` // //Type indicates the type of rule that this message rule represents. Setting //this value will determine which fields are used in the message. The comments //on each field in this message will be prefixed with the LiquidityRuleType //they belong to. Type LiquidityRuleType `protobuf:"varint,2,opt,name=type,proto3,enum=looprpc.LiquidityRuleType" json:"type,omitempty"` // //THRESHOLD: The percentage of total capacity that incoming capacity should //not drop beneath. IncomingThreshold uint32 `protobuf:"varint,3,opt,name=incoming_threshold,json=incomingThreshold,proto3" json:"incoming_threshold,omitempty"` // //THRESHOLD: The percentage of total capacity that outgoing capacity should //not drop beneath. OutgoingThreshold uint32 `protobuf:"varint,4,opt,name=outgoing_threshold,json=outgoingThreshold,proto3" json:"outgoing_threshold,omitempty"` } func (x *LiquidityRule) Reset() { *x = LiquidityRule{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LiquidityRule) String() string { return protoimpl.X.MessageStringOf(x) } func (*LiquidityRule) ProtoMessage() {} func (x *LiquidityRule) ProtoReflect() protoreflect.Message { mi := &file_client_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 LiquidityRule.ProtoReflect.Descriptor instead. func (*LiquidityRule) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{19} } func (x *LiquidityRule) GetChannelId() uint64 { if x != nil { return x.ChannelId } return 0 } func (x *LiquidityRule) GetPubkey() []byte { if x != nil { return x.Pubkey } return nil } func (x *LiquidityRule) GetType() LiquidityRuleType { if x != nil { return x.Type } return LiquidityRuleType_UNKNOWN } func (x *LiquidityRule) GetIncomingThreshold() uint32 { if x != nil { return x.IncomingThreshold } return 0 } func (x *LiquidityRule) GetOutgoingThreshold() uint32 { if x != nil { return x.OutgoingThreshold } return 0 } type SetLiquidityParamsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //Parameters is the desired new set of parameters for the liquidity management //subsystem. Note that the current set of parameters will be completely //overwritten by the parameters provided (if they are valid), so the full set //of parameters should be provided for each call. Parameters *LiquidityParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"` } func (x *SetLiquidityParamsRequest) Reset() { *x = SetLiquidityParamsRequest{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SetLiquidityParamsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SetLiquidityParamsRequest) ProtoMessage() {} func (x *SetLiquidityParamsRequest) ProtoReflect() protoreflect.Message { mi := &file_client_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 SetLiquidityParamsRequest.ProtoReflect.Descriptor instead. func (*SetLiquidityParamsRequest) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{20} } func (x *SetLiquidityParamsRequest) GetParameters() *LiquidityParameters { if x != nil { return x.Parameters } return nil } type SetLiquidityParamsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *SetLiquidityParamsResponse) Reset() { *x = SetLiquidityParamsResponse{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SetLiquidityParamsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*SetLiquidityParamsResponse) ProtoMessage() {} func (x *SetLiquidityParamsResponse) ProtoReflect() protoreflect.Message { mi := &file_client_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 SetLiquidityParamsResponse.ProtoReflect.Descriptor instead. func (*SetLiquidityParamsResponse) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{21} } type SuggestSwapsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *SuggestSwapsRequest) Reset() { *x = SuggestSwapsRequest{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SuggestSwapsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SuggestSwapsRequest) ProtoMessage() {} func (x *SuggestSwapsRequest) ProtoReflect() protoreflect.Message { mi := &file_client_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 SuggestSwapsRequest.ProtoReflect.Descriptor instead. func (*SuggestSwapsRequest) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{22} } type Disqualified struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //The short channel ID of the channel that was excluded from our suggestions. ChannelId uint64 `protobuf:"varint,1,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` // //The public key of the peer that was excluded from our suggestions. Pubkey []byte `protobuf:"bytes,3,opt,name=pubkey,proto3" json:"pubkey,omitempty"` // //The reason that we excluded the channel from the our suggestions. Reason AutoReason `protobuf:"varint,2,opt,name=reason,proto3,enum=looprpc.AutoReason" json:"reason,omitempty"` } func (x *Disqualified) Reset() { *x = Disqualified{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Disqualified) String() string { return protoimpl.X.MessageStringOf(x) } func (*Disqualified) ProtoMessage() {} func (x *Disqualified) ProtoReflect() protoreflect.Message { mi := &file_client_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 Disqualified.ProtoReflect.Descriptor instead. func (*Disqualified) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{23} } func (x *Disqualified) GetChannelId() uint64 { if x != nil { return x.ChannelId } return 0 } func (x *Disqualified) GetPubkey() []byte { if x != nil { return x.Pubkey } return nil } func (x *Disqualified) GetReason() AutoReason { if x != nil { return x.Reason } return AutoReason_AUTO_REASON_UNKNOWN } type SuggestSwapsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // //The set of recommended loop outs. LoopOut []*LoopOutRequest `protobuf:"bytes,1,rep,name=loop_out,json=loopOut,proto3" json:"loop_out,omitempty"` // //Disqualified contains the set of channels that swaps are not recommended //for. Disqualified []*Disqualified `protobuf:"bytes,2,rep,name=disqualified,proto3" json:"disqualified,omitempty"` } func (x *SuggestSwapsResponse) Reset() { *x = SuggestSwapsResponse{} if protoimpl.UnsafeEnabled { mi := &file_client_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SuggestSwapsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*SuggestSwapsResponse) ProtoMessage() {} func (x *SuggestSwapsResponse) ProtoReflect() protoreflect.Message { mi := &file_client_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 SuggestSwapsResponse.ProtoReflect.Descriptor instead. func (*SuggestSwapsResponse) Descriptor() ([]byte, []int) { return file_client_proto_rawDescGZIP(), []int{24} } func (x *SuggestSwapsResponse) GetLoopOut() []*LoopOutRequest { if x != nil { return x.LoopOut } return nil } func (x *SuggestSwapsResponse) GetDisqualified() []*Disqualified { if x != nil { return x.Disqualified } return nil } var File_client_proto protoreflect.FileDescriptor var file_client_proto_rawDesc = []byte{ 0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x22, 0xad, 0x04, 0x0a, 0x0e, 0x4c, 0x6f, 0x6f, 0x70, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6d, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x6d, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x53, 0x77, 0x61, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x61, 0x79, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x50, 0x72, 0x65, 0x70, 0x61, 0x79, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x53, 0x77, 0x61, 0x70, 0x46, 0x65, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x61, 0x79, 0x5f, 0x61, 0x6d, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x50, 0x72, 0x65, 0x70, 0x61, 0x79, 0x41, 0x6d, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x65, 0x72, 0x46, 0x65, 0x65, 0x12, 0x2c, 0x0a, 0x10, 0x6c, 0x6f, 0x6f, 0x70, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0e, 0x6c, 0x6f, 0x6f, 0x70, 0x4f, 0x75, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0f, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x53, 0x65, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x77, 0x65, 0x65, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x73, 0x77, 0x65, 0x65, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x68, 0x74, 0x6c, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x73, 0x77, 0x61, 0x70, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x85, 0x02, 0x0a, 0x0d, 0x4c, 0x6f, 0x6f, 0x70, 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6d, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x6d, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x53, 0x77, 0x61, 0x70, 0x46, 0x65, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x65, 0x72, 0x46, 0x65, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x6f, 0x70, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x48, 0x74, 0x6c, 0x63, 0x12, 0x28, 0x0a, 0x10, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x68, 0x74, 0x6c, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xe9, 0x01, 0x0a, 0x0c, 0x53, 0x77, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x69, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0c, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x68, 0x74, 0x6c, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6e, 0x70, 0x32, 0x77, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x68, 0x74, 0x6c, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4e, 0x70, 0x32, 0x77, 0x73, 0x68, 0x12, 0x2c, 0x0a, 0x12, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x77, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x68, 0x74, 0x6c, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, 0x77, 0x73, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x10, 0x0a, 0x0e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb4, 0x04, 0x0a, 0x0a, 0x53, 0x77, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6d, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x6d, 0x74, 0x12, 0x12, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x69, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3d, 0x0a, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0c, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x68, 0x74, 0x6c, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x77, 0x73, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x68, 0x74, 0x6c, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, 0x77, 0x73, 0x68, 0x12, 0x2e, 0x0a, 0x13, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6e, 0x70, 0x32, 0x77, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x68, 0x74, 0x6c, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4e, 0x70, 0x32, 0x77, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x6f, 0x6e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x73, 0x74, 0x4f, 0x6e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x73, 0x74, 0x4f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x12, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x77, 0x61, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3e, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x77, 0x61, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x73, 0x77, 0x61, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x73, 0x77, 0x61, 0x70, 0x73, 0x22, 0x21, 0x0a, 0x0f, 0x53, 0x77, 0x61, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x22, 0x0e, 0x0a, 0x0c, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x7f, 0x0a, 0x0f, 0x49, 0x6e, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x53, 0x77, 0x61, 0x70, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x53, 0x77, 0x61, 0x70, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x22, 0xcc, 0x01, 0x0a, 0x10, 0x4f, 0x75, 0x74, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x53, 0x77, 0x61, 0x70, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x53, 0x77, 0x61, 0x70, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6c, 0x74, 0x76, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x43, 0x6c, 0x74, 0x76, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6c, 0x74, 0x76, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x43, 0x6c, 0x74, 0x76, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x22, 0xa2, 0x01, 0x0a, 0x0c, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6d, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x6d, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x48, 0x74, 0x6c, 0x63, 0x12, 0x3a, 0x0a, 0x19, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x73, 0x77, 0x61, 0x70, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x0f, 0x49, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x77, 0x61, 0x70, 0x46, 0x65, 0x65, 0x53, 0x61, 0x74, 0x12, 0x2f, 0x0a, 0x14, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x68, 0x74, 0x6c, 0x63, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x46, 0x65, 0x65, 0x53, 0x61, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x74, 0x76, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6c, 0x74, 0x76, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0xf3, 0x01, 0x0a, 0x10, 0x4f, 0x75, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x77, 0x61, 0x70, 0x46, 0x65, 0x65, 0x53, 0x61, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x70, 0x61, 0x79, 0x5f, 0x61, 0x6d, 0x74, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x70, 0x61, 0x79, 0x41, 0x6d, 0x74, 0x53, 0x61, 0x74, 0x12, 0x2b, 0x0a, 0x12, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x73, 0x77, 0x65, 0x65, 0x70, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x68, 0x74, 0x6c, 0x63, 0x53, 0x77, 0x65, 0x65, 0x70, 0x46, 0x65, 0x65, 0x53, 0x61, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x73, 0x77, 0x61, 0x70, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x74, 0x76, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6c, 0x74, 0x76, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x0f, 0x0a, 0x0d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3c, 0x0a, 0x0e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x73, 0x61, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0xbb, 0x02, 0x0a, 0x09, 0x4c, 0x73, 0x61, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x61, 0x72, 0x6f, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x63, 0x61, 0x72, 0x6f, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x64, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x31, 0x0a, 0x15, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x50, 0x61, 0x69, 0x64, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xe0, 0x05, 0x0a, 0x13, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x70, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x66, 0x65, 0x65, 0x50, 0x70, 0x6d, 0x12, 0x3d, 0x0a, 0x1c, 0x73, 0x77, 0x65, 0x65, 0x70, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x76, 0x62, 0x79, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x73, 0x77, 0x65, 0x65, 0x70, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x53, 0x61, 0x74, 0x50, 0x65, 0x72, 0x56, 0x62, 0x79, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x70, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x53, 0x77, 0x61, 0x70, 0x46, 0x65, 0x65, 0x50, 0x70, 0x6d, 0x12, 0x2d, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x70, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x50, 0x70, 0x6d, 0x12, 0x3a, 0x0a, 0x1a, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x61, 0x79, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x70, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x50, 0x72, 0x65, 0x70, 0x61, 0x79, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x50, 0x70, 0x6d, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x61, 0x79, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x50, 0x72, 0x65, 0x70, 0x61, 0x79, 0x53, 0x61, 0x74, 0x12, 0x29, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x65, 0x72, 0x46, 0x65, 0x65, 0x53, 0x61, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x77, 0x65, 0x65, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x73, 0x77, 0x65, 0x65, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x53, 0x65, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x6f, 0x6c, 0x6f, 0x6f, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x75, 0x74, 0x6f, 0x6c, 0x6f, 0x6f, 0x70, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x6c, 0x6f, 0x6f, 0x70, 0x5f, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x61, 0x75, 0x74, 0x6f, 0x6c, 0x6f, 0x6f, 0x70, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x53, 0x61, 0x74, 0x12, 0x39, 0x0a, 0x19, 0x61, 0x75, 0x74, 0x6f, 0x6c, 0x6f, 0x6f, 0x70, 0x5f, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x61, 0x75, 0x74, 0x6f, 0x6c, 0x6f, 0x6f, 0x70, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x63, 0x12, 0x2b, 0x0a, 0x12, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x6e, 0x5f, 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x4d, 0x61, 0x78, 0x49, 0x6e, 0x46, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x53, 0x77, 0x61, 0x70, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x53, 0x77, 0x61, 0x70, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xd4, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0x59, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x1c, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x53, 0x77, 0x61, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x72, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x85, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x53, 0x77, 0x61, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x6c, 0x6f, 0x6f, 0x70, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x6f, 0x70, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x6c, 0x6f, 0x6f, 0x70, 0x4f, 0x75, 0x74, 0x12, 0x39, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x69, 0x73, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x64, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2a, 0x25, 0x0a, 0x08, 0x53, 0x77, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x4f, 0x4f, 0x50, 0x5f, 0x4f, 0x55, 0x54, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x4c, 0x4f, 0x4f, 0x50, 0x5f, 0x49, 0x4e, 0x10, 0x01, 0x2a, 0x73, 0x0a, 0x09, 0x53, 0x77, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x52, 0x45, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x45, 0x56, 0x45, 0x41, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x48, 0x54, 0x4c, 0x43, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x4e, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x54, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x2a, 0xed, 0x01, 0x0a, 0x0d, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x46, 0x46, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x57, 0x45, 0x45, 0x50, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x53, 0x55, 0x46, 0x46, 0x49, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x45, 0x4d, 0x50, 0x4f, 0x52, 0x41, 0x52, 0x59, 0x10, 0x05, 0x12, 0x23, 0x0a, 0x1f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x52, 0x52, 0x45, 0x43, 0x54, 0x5f, 0x41, 0x4d, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x06, 0x2a, 0x2f, 0x0a, 0x11, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x01, 0x2a, 0xa6, 0x03, 0x0a, 0x0a, 0x41, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x42, 0x55, 0x44, 0x47, 0x45, 0x54, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x57, 0x45, 0x45, 0x50, 0x5f, 0x46, 0x45, 0x45, 0x53, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x42, 0x55, 0x44, 0x47, 0x45, 0x54, 0x5f, 0x45, 0x4c, 0x41, 0x50, 0x53, 0x45, 0x44, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x5f, 0x46, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x57, 0x41, 0x50, 0x5f, 0x46, 0x45, 0x45, 0x10, 0x05, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4d, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x46, 0x45, 0x45, 0x10, 0x06, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x45, 0x50, 0x41, 0x59, 0x10, 0x07, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x4f, 0x46, 0x46, 0x10, 0x08, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x5f, 0x4f, 0x55, 0x54, 0x10, 0x09, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x5f, 0x49, 0x4e, 0x10, 0x0a, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x49, 0x51, 0x55, 0x49, 0x44, 0x49, 0x54, 0x59, 0x5f, 0x4f, 0x4b, 0x10, 0x0b, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x42, 0x55, 0x44, 0x47, 0x45, 0x54, 0x5f, 0x49, 0x4e, 0x53, 0x55, 0x46, 0x46, 0x49, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x10, 0x0c, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x46, 0x45, 0x45, 0x5f, 0x49, 0x4e, 0x53, 0x55, 0x46, 0x46, 0x49, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x10, 0x0d, 0x32, 0x8a, 0x07, 0x0a, 0x0a, 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x07, 0x4c, 0x6f, 0x6f, 0x70, 0x4f, 0x75, 0x74, 0x12, 0x17, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x6f, 0x70, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x4c, 0x6f, 0x6f, 0x70, 0x49, 0x6e, 0x12, 0x16, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x6f, 0x70, 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x07, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x17, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x30, 0x01, 0x12, 0x42, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x77, 0x61, 0x70, 0x73, 0x12, 0x19, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x77, 0x61, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x77, 0x61, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x53, 0x77, 0x61, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x40, 0x0a, 0x0c, 0x4c, 0x6f, 0x6f, 0x70, 0x4f, 0x75, 0x74, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x12, 0x15, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x4c, 0x6f, 0x6f, 0x70, 0x4f, 0x75, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x15, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x6f, 0x70, 0x49, 0x6e, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x12, 0x15, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x6f, 0x70, 0x49, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x15, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4c, 0x73, 0x61, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x16, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5d, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x53, 0x77, 0x61, 0x70, 0x73, 0x12, 0x1c, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x53, 0x77, 0x61, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x53, 0x77, 0x61, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x27, 0x5a, 0x25, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x69, 0x6e, 0x67, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x6c, 0x6f, 0x6f, 0x70, 0x2f, 0x6c, 0x6f, 0x6f, 0x70, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_client_proto_rawDescOnce sync.Once file_client_proto_rawDescData = file_client_proto_rawDesc ) func file_client_proto_rawDescGZIP() []byte { file_client_proto_rawDescOnce.Do(func() { file_client_proto_rawDescData = protoimpl.X.CompressGZIP(file_client_proto_rawDescData) }) return file_client_proto_rawDescData } var file_client_proto_enumTypes = make([]protoimpl.EnumInfo, 5) var file_client_proto_msgTypes = make([]protoimpl.MessageInfo, 25) var file_client_proto_goTypes = []interface{}{ (SwapType)(0), // 0: looprpc.SwapType (SwapState)(0), // 1: looprpc.SwapState (FailureReason)(0), // 2: looprpc.FailureReason (LiquidityRuleType)(0), // 3: looprpc.LiquidityRuleType (AutoReason)(0), // 4: looprpc.AutoReason (*LoopOutRequest)(nil), // 5: looprpc.LoopOutRequest (*LoopInRequest)(nil), // 6: looprpc.LoopInRequest (*SwapResponse)(nil), // 7: looprpc.SwapResponse (*MonitorRequest)(nil), // 8: looprpc.MonitorRequest (*SwapStatus)(nil), // 9: looprpc.SwapStatus (*ListSwapsRequest)(nil), // 10: looprpc.ListSwapsRequest (*ListSwapsResponse)(nil), // 11: looprpc.ListSwapsResponse (*SwapInfoRequest)(nil), // 12: looprpc.SwapInfoRequest (*TermsRequest)(nil), // 13: looprpc.TermsRequest (*InTermsResponse)(nil), // 14: looprpc.InTermsResponse (*OutTermsResponse)(nil), // 15: looprpc.OutTermsResponse (*QuoteRequest)(nil), // 16: looprpc.QuoteRequest (*InQuoteResponse)(nil), // 17: looprpc.InQuoteResponse (*OutQuoteResponse)(nil), // 18: looprpc.OutQuoteResponse (*TokensRequest)(nil), // 19: looprpc.TokensRequest (*TokensResponse)(nil), // 20: looprpc.TokensResponse (*LsatToken)(nil), // 21: looprpc.LsatToken (*GetLiquidityParamsRequest)(nil), // 22: looprpc.GetLiquidityParamsRequest (*LiquidityParameters)(nil), // 23: looprpc.LiquidityParameters (*LiquidityRule)(nil), // 24: looprpc.LiquidityRule (*SetLiquidityParamsRequest)(nil), // 25: looprpc.SetLiquidityParamsRequest (*SetLiquidityParamsResponse)(nil), // 26: looprpc.SetLiquidityParamsResponse (*SuggestSwapsRequest)(nil), // 27: looprpc.SuggestSwapsRequest (*Disqualified)(nil), // 28: looprpc.Disqualified (*SuggestSwapsResponse)(nil), // 29: looprpc.SuggestSwapsResponse } var file_client_proto_depIdxs = []int32{ 0, // 0: looprpc.SwapStatus.type:type_name -> looprpc.SwapType 1, // 1: looprpc.SwapStatus.state:type_name -> looprpc.SwapState 2, // 2: looprpc.SwapStatus.failure_reason:type_name -> looprpc.FailureReason 9, // 3: looprpc.ListSwapsResponse.swaps:type_name -> looprpc.SwapStatus 21, // 4: looprpc.TokensResponse.tokens:type_name -> looprpc.LsatToken 24, // 5: looprpc.LiquidityParameters.rules:type_name -> looprpc.LiquidityRule 3, // 6: looprpc.LiquidityRule.type:type_name -> looprpc.LiquidityRuleType 23, // 7: looprpc.SetLiquidityParamsRequest.parameters:type_name -> looprpc.LiquidityParameters 4, // 8: looprpc.Disqualified.reason:type_name -> looprpc.AutoReason 5, // 9: looprpc.SuggestSwapsResponse.loop_out:type_name -> looprpc.LoopOutRequest 28, // 10: looprpc.SuggestSwapsResponse.disqualified:type_name -> looprpc.Disqualified 5, // 11: looprpc.SwapClient.LoopOut:input_type -> looprpc.LoopOutRequest 6, // 12: looprpc.SwapClient.LoopIn:input_type -> looprpc.LoopInRequest 8, // 13: looprpc.SwapClient.Monitor:input_type -> looprpc.MonitorRequest 10, // 14: looprpc.SwapClient.ListSwaps:input_type -> looprpc.ListSwapsRequest 12, // 15: looprpc.SwapClient.SwapInfo:input_type -> looprpc.SwapInfoRequest 13, // 16: looprpc.SwapClient.LoopOutTerms:input_type -> looprpc.TermsRequest 16, // 17: looprpc.SwapClient.LoopOutQuote:input_type -> looprpc.QuoteRequest 13, // 18: looprpc.SwapClient.GetLoopInTerms:input_type -> looprpc.TermsRequest 16, // 19: looprpc.SwapClient.GetLoopInQuote:input_type -> looprpc.QuoteRequest 19, // 20: looprpc.SwapClient.GetLsatTokens:input_type -> looprpc.TokensRequest 22, // 21: looprpc.SwapClient.GetLiquidityParams:input_type -> looprpc.GetLiquidityParamsRequest 25, // 22: looprpc.SwapClient.SetLiquidityParams:input_type -> looprpc.SetLiquidityParamsRequest 27, // 23: looprpc.SwapClient.SuggestSwaps:input_type -> looprpc.SuggestSwapsRequest 7, // 24: looprpc.SwapClient.LoopOut:output_type -> looprpc.SwapResponse 7, // 25: looprpc.SwapClient.LoopIn:output_type -> looprpc.SwapResponse 9, // 26: looprpc.SwapClient.Monitor:output_type -> looprpc.SwapStatus 11, // 27: looprpc.SwapClient.ListSwaps:output_type -> looprpc.ListSwapsResponse 9, // 28: looprpc.SwapClient.SwapInfo:output_type -> looprpc.SwapStatus 15, // 29: looprpc.SwapClient.LoopOutTerms:output_type -> looprpc.OutTermsResponse 18, // 30: looprpc.SwapClient.LoopOutQuote:output_type -> looprpc.OutQuoteResponse 14, // 31: looprpc.SwapClient.GetLoopInTerms:output_type -> looprpc.InTermsResponse 17, // 32: looprpc.SwapClient.GetLoopInQuote:output_type -> looprpc.InQuoteResponse 20, // 33: looprpc.SwapClient.GetLsatTokens:output_type -> looprpc.TokensResponse 23, // 34: looprpc.SwapClient.GetLiquidityParams:output_type -> looprpc.LiquidityParameters 26, // 35: looprpc.SwapClient.SetLiquidityParams:output_type -> looprpc.SetLiquidityParamsResponse 29, // 36: looprpc.SwapClient.SuggestSwaps:output_type -> looprpc.SuggestSwapsResponse 24, // [24:37] is the sub-list for method output_type 11, // [11:24] is the sub-list for method input_type 11, // [11:11] is the sub-list for extension type_name 11, // [11:11] is the sub-list for extension extendee 0, // [0:11] is the sub-list for field type_name } func init() { file_client_proto_init() } func file_client_proto_init() { if File_client_proto != nil { return } if !protoimpl.UnsafeEnabled { file_client_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoopOutRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoopInRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SwapResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MonitorRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SwapStatus); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListSwapsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListSwapsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SwapInfoRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TermsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InTermsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OutTermsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QuoteRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InQuoteResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OutQuoteResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TokensRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TokensResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LsatToken); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetLiquidityParamsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LiquidityParameters); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LiquidityRule); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetLiquidityParamsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetLiquidityParamsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SuggestSwapsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Disqualified); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_client_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SuggestSwapsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_client_proto_rawDesc, NumEnums: 5, NumMessages: 25, NumExtensions: 0, NumServices: 1, }, GoTypes: file_client_proto_goTypes, DependencyIndexes: file_client_proto_depIdxs, EnumInfos: file_client_proto_enumTypes, MessageInfos: file_client_proto_msgTypes, }.Build() File_client_proto = out.File file_client_proto_rawDesc = nil file_client_proto_goTypes = nil file_client_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 // SwapClientClient is the client API for SwapClient service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type SwapClientClient interface { // loop: `out` //LoopOut initiates an loop out swap with the given parameters. The call //returns after the swap has been set up with the swap server. From that //point onwards, progress can be tracked via the SwapStatus stream that is //returned from Monitor(). LoopOut(ctx context.Context, in *LoopOutRequest, opts ...grpc.CallOption) (*SwapResponse, error) // loop: `in` //LoopIn initiates a loop in swap with the given parameters. The call //returns after the swap has been set up with the swap server. From that //point onwards, progress can be tracked via the SwapStatus stream //that is returned from Monitor(). LoopIn(ctx context.Context, in *LoopInRequest, opts ...grpc.CallOption) (*SwapResponse, error) // loop: `monitor` //Monitor will return a stream of swap updates for currently active swaps. Monitor(ctx context.Context, in *MonitorRequest, opts ...grpc.CallOption) (SwapClient_MonitorClient, error) // loop: `listswaps` //ListSwaps returns a list of all currently known swaps and their current //status. ListSwaps(ctx context.Context, in *ListSwapsRequest, opts ...grpc.CallOption) (*ListSwapsResponse, error) // loop: `swapinfo` //SwapInfo returns all known details about a single swap. SwapInfo(ctx context.Context, in *SwapInfoRequest, opts ...grpc.CallOption) (*SwapStatus, error) // loop: `terms` //LoopOutTerms returns the terms that the server enforces for a loop out swap. LoopOutTerms(ctx context.Context, in *TermsRequest, opts ...grpc.CallOption) (*OutTermsResponse, error) // loop: `quote` //LoopOutQuote returns a quote for a loop out swap with the provided //parameters. LoopOutQuote(ctx context.Context, in *QuoteRequest, opts ...grpc.CallOption) (*OutQuoteResponse, error) // loop: `terms` //GetTerms returns the terms that the server enforces for swaps. GetLoopInTerms(ctx context.Context, in *TermsRequest, opts ...grpc.CallOption) (*InTermsResponse, error) // loop: `quote` //GetQuote returns a quote for a swap with the provided parameters. GetLoopInQuote(ctx context.Context, in *QuoteRequest, opts ...grpc.CallOption) (*InQuoteResponse, error) // loop: `listauth` //GetLsatTokens returns all LSAT tokens the daemon ever paid for. GetLsatTokens(ctx context.Context, in *TokensRequest, opts ...grpc.CallOption) (*TokensResponse, error) // loop: `getparams` //GetLiquidityParams gets the parameters that the daemon's liquidity manager //is currently configured with. This may be nil if nothing is configured. //[EXPERIMENTAL]: endpoint is subject to change. GetLiquidityParams(ctx context.Context, in *GetLiquidityParamsRequest, opts ...grpc.CallOption) (*LiquidityParameters, error) // loop: `setparams` //SetLiquidityParams sets a new set of parameters for the daemon's liquidity //manager. Note that the full set of parameters must be provided, because //this call fully overwrites our existing parameters. //[EXPERIMENTAL]: endpoint is subject to change. SetLiquidityParams(ctx context.Context, in *SetLiquidityParamsRequest, opts ...grpc.CallOption) (*SetLiquidityParamsResponse, error) // loop: `suggestswaps` //SuggestSwaps returns a list of recommended swaps based on the current //state of your node's channels and it's liquidity manager parameters. //Note that only loop out suggestions are currently supported. //[EXPERIMENTAL]: endpoint is subject to change. SuggestSwaps(ctx context.Context, in *SuggestSwapsRequest, opts ...grpc.CallOption) (*SuggestSwapsResponse, error) } type swapClientClient struct { cc grpc.ClientConnInterface } func NewSwapClientClient(cc grpc.ClientConnInterface) SwapClientClient { return &swapClientClient{cc} } func (c *swapClientClient) LoopOut(ctx context.Context, in *LoopOutRequest, opts ...grpc.CallOption) (*SwapResponse, error) { out := new(SwapResponse) err := c.cc.Invoke(ctx, "/looprpc.SwapClient/LoopOut", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *swapClientClient) LoopIn(ctx context.Context, in *LoopInRequest, opts ...grpc.CallOption) (*SwapResponse, error) { out := new(SwapResponse) err := c.cc.Invoke(ctx, "/looprpc.SwapClient/LoopIn", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *swapClientClient) Monitor(ctx context.Context, in *MonitorRequest, opts ...grpc.CallOption) (SwapClient_MonitorClient, error) { stream, err := c.cc.NewStream(ctx, &_SwapClient_serviceDesc.Streams[0], "/looprpc.SwapClient/Monitor", opts...) if err != nil { return nil, err } x := &swapClientMonitorClient{stream} if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } if err := x.ClientStream.CloseSend(); err != nil { return nil, err } return x, nil } type SwapClient_MonitorClient interface { Recv() (*SwapStatus, error) grpc.ClientStream } type swapClientMonitorClient struct { grpc.ClientStream } func (x *swapClientMonitorClient) Recv() (*SwapStatus, error) { m := new(SwapStatus) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } func (c *swapClientClient) ListSwaps(ctx context.Context, in *ListSwapsRequest, opts ...grpc.CallOption) (*ListSwapsResponse, error) { out := new(ListSwapsResponse) err := c.cc.Invoke(ctx, "/looprpc.SwapClient/ListSwaps", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *swapClientClient) SwapInfo(ctx context.Context, in *SwapInfoRequest, opts ...grpc.CallOption) (*SwapStatus, error) { out := new(SwapStatus) err := c.cc.Invoke(ctx, "/looprpc.SwapClient/SwapInfo", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *swapClientClient) LoopOutTerms(ctx context.Context, in *TermsRequest, opts ...grpc.CallOption) (*OutTermsResponse, error) { out := new(OutTermsResponse) err := c.cc.Invoke(ctx, "/looprpc.SwapClient/LoopOutTerms", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *swapClientClient) LoopOutQuote(ctx context.Context, in *QuoteRequest, opts ...grpc.CallOption) (*OutQuoteResponse, error) { out := new(OutQuoteResponse) err := c.cc.Invoke(ctx, "/looprpc.SwapClient/LoopOutQuote", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *swapClientClient) GetLoopInTerms(ctx context.Context, in *TermsRequest, opts ...grpc.CallOption) (*InTermsResponse, error) { out := new(InTermsResponse) err := c.cc.Invoke(ctx, "/looprpc.SwapClient/GetLoopInTerms", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *swapClientClient) GetLoopInQuote(ctx context.Context, in *QuoteRequest, opts ...grpc.CallOption) (*InQuoteResponse, error) { out := new(InQuoteResponse) err := c.cc.Invoke(ctx, "/looprpc.SwapClient/GetLoopInQuote", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *swapClientClient) GetLsatTokens(ctx context.Context, in *TokensRequest, opts ...grpc.CallOption) (*TokensResponse, error) { out := new(TokensResponse) err := c.cc.Invoke(ctx, "/looprpc.SwapClient/GetLsatTokens", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *swapClientClient) GetLiquidityParams(ctx context.Context, in *GetLiquidityParamsRequest, opts ...grpc.CallOption) (*LiquidityParameters, error) { out := new(LiquidityParameters) err := c.cc.Invoke(ctx, "/looprpc.SwapClient/GetLiquidityParams", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *swapClientClient) SetLiquidityParams(ctx context.Context, in *SetLiquidityParamsRequest, opts ...grpc.CallOption) (*SetLiquidityParamsResponse, error) { out := new(SetLiquidityParamsResponse) err := c.cc.Invoke(ctx, "/looprpc.SwapClient/SetLiquidityParams", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *swapClientClient) SuggestSwaps(ctx context.Context, in *SuggestSwapsRequest, opts ...grpc.CallOption) (*SuggestSwapsResponse, error) { out := new(SuggestSwapsResponse) err := c.cc.Invoke(ctx, "/looprpc.SwapClient/SuggestSwaps", in, out, opts...) if err != nil { return nil, err } return out, nil } // SwapClientServer is the server API for SwapClient service. type SwapClientServer interface { // loop: `out` //LoopOut initiates an loop out swap with the given parameters. The call //returns after the swap has been set up with the swap server. From that //point onwards, progress can be tracked via the SwapStatus stream that is //returned from Monitor(). LoopOut(context.Context, *LoopOutRequest) (*SwapResponse, error) // loop: `in` //LoopIn initiates a loop in swap with the given parameters. The call //returns after the swap has been set up with the swap server. From that //point onwards, progress can be tracked via the SwapStatus stream //that is returned from Monitor(). LoopIn(context.Context, *LoopInRequest) (*SwapResponse, error) // loop: `monitor` //Monitor will return a stream of swap updates for currently active swaps. Monitor(*MonitorRequest, SwapClient_MonitorServer) error // loop: `listswaps` //ListSwaps returns a list of all currently known swaps and their current //status. ListSwaps(context.Context, *ListSwapsRequest) (*ListSwapsResponse, error) // loop: `swapinfo` //SwapInfo returns all known details about a single swap. SwapInfo(context.Context, *SwapInfoRequest) (*SwapStatus, error) // loop: `terms` //LoopOutTerms returns the terms that the server enforces for a loop out swap. LoopOutTerms(context.Context, *TermsRequest) (*OutTermsResponse, error) // loop: `quote` //LoopOutQuote returns a quote for a loop out swap with the provided //parameters. LoopOutQuote(context.Context, *QuoteRequest) (*OutQuoteResponse, error) // loop: `terms` //GetTerms returns the terms that the server enforces for swaps. GetLoopInTerms(context.Context, *TermsRequest) (*InTermsResponse, error) // loop: `quote` //GetQuote returns a quote for a swap with the provided parameters. GetLoopInQuote(context.Context, *QuoteRequest) (*InQuoteResponse, error) // loop: `listauth` //GetLsatTokens returns all LSAT tokens the daemon ever paid for. GetLsatTokens(context.Context, *TokensRequest) (*TokensResponse, error) // loop: `getparams` //GetLiquidityParams gets the parameters that the daemon's liquidity manager //is currently configured with. This may be nil if nothing is configured. //[EXPERIMENTAL]: endpoint is subject to change. GetLiquidityParams(context.Context, *GetLiquidityParamsRequest) (*LiquidityParameters, error) // loop: `setparams` //SetLiquidityParams sets a new set of parameters for the daemon's liquidity //manager. Note that the full set of parameters must be provided, because //this call fully overwrites our existing parameters. //[EXPERIMENTAL]: endpoint is subject to change. SetLiquidityParams(context.Context, *SetLiquidityParamsRequest) (*SetLiquidityParamsResponse, error) // loop: `suggestswaps` //SuggestSwaps returns a list of recommended swaps based on the current //state of your node's channels and it's liquidity manager parameters. //Note that only loop out suggestions are currently supported. //[EXPERIMENTAL]: endpoint is subject to change. SuggestSwaps(context.Context, *SuggestSwapsRequest) (*SuggestSwapsResponse, error) } // UnimplementedSwapClientServer can be embedded to have forward compatible implementations. type UnimplementedSwapClientServer struct { } func (*UnimplementedSwapClientServer) LoopOut(context.Context, *LoopOutRequest) (*SwapResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method LoopOut not implemented") } func (*UnimplementedSwapClientServer) LoopIn(context.Context, *LoopInRequest) (*SwapResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method LoopIn not implemented") } func (*UnimplementedSwapClientServer) Monitor(*MonitorRequest, SwapClient_MonitorServer) error { return status.Errorf(codes.Unimplemented, "method Monitor not implemented") } func (*UnimplementedSwapClientServer) ListSwaps(context.Context, *ListSwapsRequest) (*ListSwapsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListSwaps not implemented") } func (*UnimplementedSwapClientServer) SwapInfo(context.Context, *SwapInfoRequest) (*SwapStatus, error) { return nil, status.Errorf(codes.Unimplemented, "method SwapInfo not implemented") } func (*UnimplementedSwapClientServer) LoopOutTerms(context.Context, *TermsRequest) (*OutTermsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method LoopOutTerms not implemented") } func (*UnimplementedSwapClientServer) LoopOutQuote(context.Context, *QuoteRequest) (*OutQuoteResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method LoopOutQuote not implemented") } func (*UnimplementedSwapClientServer) GetLoopInTerms(context.Context, *TermsRequest) (*InTermsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetLoopInTerms not implemented") } func (*UnimplementedSwapClientServer) GetLoopInQuote(context.Context, *QuoteRequest) (*InQuoteResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetLoopInQuote not implemented") } func (*UnimplementedSwapClientServer) GetLsatTokens(context.Context, *TokensRequest) (*TokensResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetLsatTokens not implemented") } func (*UnimplementedSwapClientServer) GetLiquidityParams(context.Context, *GetLiquidityParamsRequest) (*LiquidityParameters, error) { return nil, status.Errorf(codes.Unimplemented, "method GetLiquidityParams not implemented") } func (*UnimplementedSwapClientServer) SetLiquidityParams(context.Context, *SetLiquidityParamsRequest) (*SetLiquidityParamsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SetLiquidityParams not implemented") } func (*UnimplementedSwapClientServer) SuggestSwaps(context.Context, *SuggestSwapsRequest) (*SuggestSwapsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SuggestSwaps not implemented") } func RegisterSwapClientServer(s *grpc.Server, srv SwapClientServer) { s.RegisterService(&_SwapClient_serviceDesc, srv) } func _SwapClient_LoopOut_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(LoopOutRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(SwapClientServer).LoopOut(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/looprpc.SwapClient/LoopOut", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SwapClientServer).LoopOut(ctx, req.(*LoopOutRequest)) } return interceptor(ctx, in, info, handler) } func _SwapClient_LoopIn_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(LoopInRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(SwapClientServer).LoopIn(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/looprpc.SwapClient/LoopIn", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SwapClientServer).LoopIn(ctx, req.(*LoopInRequest)) } return interceptor(ctx, in, info, handler) } func _SwapClient_Monitor_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(MonitorRequest) if err := stream.RecvMsg(m); err != nil { return err } return srv.(SwapClientServer).Monitor(m, &swapClientMonitorServer{stream}) } type SwapClient_MonitorServer interface { Send(*SwapStatus) error grpc.ServerStream } type swapClientMonitorServer struct { grpc.ServerStream } func (x *swapClientMonitorServer) Send(m *SwapStatus) error { return x.ServerStream.SendMsg(m) } func _SwapClient_ListSwaps_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListSwapsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(SwapClientServer).ListSwaps(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/looprpc.SwapClient/ListSwaps", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SwapClientServer).ListSwaps(ctx, req.(*ListSwapsRequest)) } return interceptor(ctx, in, info, handler) } func _SwapClient_SwapInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SwapInfoRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(SwapClientServer).SwapInfo(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/looprpc.SwapClient/SwapInfo", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SwapClientServer).SwapInfo(ctx, req.(*SwapInfoRequest)) } return interceptor(ctx, in, info, handler) } func _SwapClient_LoopOutTerms_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(TermsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(SwapClientServer).LoopOutTerms(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/looprpc.SwapClient/LoopOutTerms", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SwapClientServer).LoopOutTerms(ctx, req.(*TermsRequest)) } return interceptor(ctx, in, info, handler) } func _SwapClient_LoopOutQuote_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(QuoteRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(SwapClientServer).LoopOutQuote(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/looprpc.SwapClient/LoopOutQuote", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SwapClientServer).LoopOutQuote(ctx, req.(*QuoteRequest)) } return interceptor(ctx, in, info, handler) } func _SwapClient_GetLoopInTerms_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(TermsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(SwapClientServer).GetLoopInTerms(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/looprpc.SwapClient/GetLoopInTerms", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SwapClientServer).GetLoopInTerms(ctx, req.(*TermsRequest)) } return interceptor(ctx, in, info, handler) } func _SwapClient_GetLoopInQuote_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(QuoteRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(SwapClientServer).GetLoopInQuote(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/looprpc.SwapClient/GetLoopInQuote", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SwapClientServer).GetLoopInQuote(ctx, req.(*QuoteRequest)) } return interceptor(ctx, in, info, handler) } func _SwapClient_GetLsatTokens_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(TokensRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(SwapClientServer).GetLsatTokens(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/looprpc.SwapClient/GetLsatTokens", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SwapClientServer).GetLsatTokens(ctx, req.(*TokensRequest)) } return interceptor(ctx, in, info, handler) } func _SwapClient_GetLiquidityParams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetLiquidityParamsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(SwapClientServer).GetLiquidityParams(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/looprpc.SwapClient/GetLiquidityParams", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SwapClientServer).GetLiquidityParams(ctx, req.(*GetLiquidityParamsRequest)) } return interceptor(ctx, in, info, handler) } func _SwapClient_SetLiquidityParams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SetLiquidityParamsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(SwapClientServer).SetLiquidityParams(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/looprpc.SwapClient/SetLiquidityParams", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SwapClientServer).SetLiquidityParams(ctx, req.(*SetLiquidityParamsRequest)) } return interceptor(ctx, in, info, handler) } func _SwapClient_SuggestSwaps_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SuggestSwapsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(SwapClientServer).SuggestSwaps(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/looprpc.SwapClient/SuggestSwaps", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SwapClientServer).SuggestSwaps(ctx, req.(*SuggestSwapsRequest)) } return interceptor(ctx, in, info, handler) } var _SwapClient_serviceDesc = grpc.ServiceDesc{ ServiceName: "looprpc.SwapClient", HandlerType: (*SwapClientServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "LoopOut", Handler: _SwapClient_LoopOut_Handler, }, { MethodName: "LoopIn", Handler: _SwapClient_LoopIn_Handler, }, { MethodName: "ListSwaps", Handler: _SwapClient_ListSwaps_Handler, }, { MethodName: "SwapInfo", Handler: _SwapClient_SwapInfo_Handler, }, { MethodName: "LoopOutTerms", Handler: _SwapClient_LoopOutTerms_Handler, }, { MethodName: "LoopOutQuote", Handler: _SwapClient_LoopOutQuote_Handler, }, { MethodName: "GetLoopInTerms", Handler: _SwapClient_GetLoopInTerms_Handler, }, { MethodName: "GetLoopInQuote", Handler: _SwapClient_GetLoopInQuote_Handler, }, { MethodName: "GetLsatTokens", Handler: _SwapClient_GetLsatTokens_Handler, }, { MethodName: "GetLiquidityParams", Handler: _SwapClient_GetLiquidityParams_Handler, }, { MethodName: "SetLiquidityParams", Handler: _SwapClient_SetLiquidityParams_Handler, }, { MethodName: "SuggestSwaps", Handler: _SwapClient_SuggestSwaps_Handler, }, }, Streams: []grpc.StreamDesc{ { StreamName: "Monitor", Handler: _SwapClient_Monitor_Handler, ServerStreams: true, }, }, Metadata: "client.proto", }