lnd.xprv/lnrpc/routerrpc/router.pb.go

4903 lines
185 KiB
Go
Raw Normal View History

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.23.0
// protoc v3.6.1
// source: routerrpc/router.proto
package routerrpc
import (
context "context"
proto "github.com/golang/protobuf/proto"
lnrpc "github.com/lightningnetwork/lnd/lnrpc"
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 FailureDetail int32
const (
FailureDetail_UNKNOWN FailureDetail = 0
FailureDetail_NO_DETAIL FailureDetail = 1
FailureDetail_ONION_DECODE FailureDetail = 2
FailureDetail_LINK_NOT_ELIGIBLE FailureDetail = 3
FailureDetail_ON_CHAIN_TIMEOUT FailureDetail = 4
FailureDetail_HTLC_EXCEEDS_MAX FailureDetail = 5
FailureDetail_INSUFFICIENT_BALANCE FailureDetail = 6
FailureDetail_INCOMPLETE_FORWARD FailureDetail = 7
FailureDetail_HTLC_ADD_FAILED FailureDetail = 8
FailureDetail_FORWARDS_DISABLED FailureDetail = 9
FailureDetail_INVOICE_CANCELED FailureDetail = 10
FailureDetail_INVOICE_UNDERPAID FailureDetail = 11
FailureDetail_INVOICE_EXPIRY_TOO_SOON FailureDetail = 12
FailureDetail_INVOICE_NOT_OPEN FailureDetail = 13
FailureDetail_MPP_INVOICE_TIMEOUT FailureDetail = 14
FailureDetail_ADDRESS_MISMATCH FailureDetail = 15
FailureDetail_SET_TOTAL_MISMATCH FailureDetail = 16
FailureDetail_SET_TOTAL_TOO_LOW FailureDetail = 17
FailureDetail_SET_OVERPAID FailureDetail = 18
FailureDetail_UNKNOWN_INVOICE FailureDetail = 19
FailureDetail_INVALID_KEYSEND FailureDetail = 20
FailureDetail_MPP_IN_PROGRESS FailureDetail = 21
FailureDetail_CIRCULAR_ROUTE FailureDetail = 22
)
// Enum value maps for FailureDetail.
var (
FailureDetail_name = map[int32]string{
0: "UNKNOWN",
1: "NO_DETAIL",
2: "ONION_DECODE",
3: "LINK_NOT_ELIGIBLE",
4: "ON_CHAIN_TIMEOUT",
5: "HTLC_EXCEEDS_MAX",
6: "INSUFFICIENT_BALANCE",
7: "INCOMPLETE_FORWARD",
8: "HTLC_ADD_FAILED",
9: "FORWARDS_DISABLED",
10: "INVOICE_CANCELED",
11: "INVOICE_UNDERPAID",
12: "INVOICE_EXPIRY_TOO_SOON",
13: "INVOICE_NOT_OPEN",
14: "MPP_INVOICE_TIMEOUT",
15: "ADDRESS_MISMATCH",
16: "SET_TOTAL_MISMATCH",
17: "SET_TOTAL_TOO_LOW",
18: "SET_OVERPAID",
19: "UNKNOWN_INVOICE",
20: "INVALID_KEYSEND",
21: "MPP_IN_PROGRESS",
22: "CIRCULAR_ROUTE",
}
FailureDetail_value = map[string]int32{
"UNKNOWN": 0,
"NO_DETAIL": 1,
"ONION_DECODE": 2,
"LINK_NOT_ELIGIBLE": 3,
"ON_CHAIN_TIMEOUT": 4,
"HTLC_EXCEEDS_MAX": 5,
"INSUFFICIENT_BALANCE": 6,
"INCOMPLETE_FORWARD": 7,
"HTLC_ADD_FAILED": 8,
"FORWARDS_DISABLED": 9,
"INVOICE_CANCELED": 10,
"INVOICE_UNDERPAID": 11,
"INVOICE_EXPIRY_TOO_SOON": 12,
"INVOICE_NOT_OPEN": 13,
"MPP_INVOICE_TIMEOUT": 14,
"ADDRESS_MISMATCH": 15,
"SET_TOTAL_MISMATCH": 16,
"SET_TOTAL_TOO_LOW": 17,
"SET_OVERPAID": 18,
"UNKNOWN_INVOICE": 19,
"INVALID_KEYSEND": 20,
"MPP_IN_PROGRESS": 21,
"CIRCULAR_ROUTE": 22,
}
)
func (x FailureDetail) Enum() *FailureDetail {
p := new(FailureDetail)
*p = x
return p
}
func (x FailureDetail) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (FailureDetail) Descriptor() protoreflect.EnumDescriptor {
return file_routerrpc_router_proto_enumTypes[0].Descriptor()
}
func (FailureDetail) Type() protoreflect.EnumType {
return &file_routerrpc_router_proto_enumTypes[0]
}
func (x FailureDetail) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use FailureDetail.Descriptor instead.
func (FailureDetail) EnumDescriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{0}
}
type PaymentState int32
const (
//
//Payment is still in flight.
PaymentState_IN_FLIGHT PaymentState = 0
//
//Payment completed successfully.
PaymentState_SUCCEEDED PaymentState = 1
//
//There are more routes to try, but the payment timeout was exceeded.
PaymentState_FAILED_TIMEOUT PaymentState = 2
//
//All possible routes were tried and failed permanently. Or were no
//routes to the destination at all.
PaymentState_FAILED_NO_ROUTE PaymentState = 3
//
//A non-recoverable error has occured.
PaymentState_FAILED_ERROR PaymentState = 4
//
//Payment details incorrect (unknown hash, invalid amt or
//invalid final cltv delta)
PaymentState_FAILED_INCORRECT_PAYMENT_DETAILS PaymentState = 5
//
//Insufficient local balance.
PaymentState_FAILED_INSUFFICIENT_BALANCE PaymentState = 6
)
// Enum value maps for PaymentState.
var (
PaymentState_name = map[int32]string{
0: "IN_FLIGHT",
1: "SUCCEEDED",
2: "FAILED_TIMEOUT",
3: "FAILED_NO_ROUTE",
4: "FAILED_ERROR",
5: "FAILED_INCORRECT_PAYMENT_DETAILS",
6: "FAILED_INSUFFICIENT_BALANCE",
}
PaymentState_value = map[string]int32{
"IN_FLIGHT": 0,
"SUCCEEDED": 1,
"FAILED_TIMEOUT": 2,
"FAILED_NO_ROUTE": 3,
"FAILED_ERROR": 4,
"FAILED_INCORRECT_PAYMENT_DETAILS": 5,
"FAILED_INSUFFICIENT_BALANCE": 6,
}
)
func (x PaymentState) Enum() *PaymentState {
p := new(PaymentState)
*p = x
return p
}
func (x PaymentState) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (PaymentState) Descriptor() protoreflect.EnumDescriptor {
return file_routerrpc_router_proto_enumTypes[1].Descriptor()
}
func (PaymentState) Type() protoreflect.EnumType {
return &file_routerrpc_router_proto_enumTypes[1]
}
func (x PaymentState) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use PaymentState.Descriptor instead.
func (PaymentState) EnumDescriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{1}
}
type ResolveHoldForwardAction int32
const (
ResolveHoldForwardAction_SETTLE ResolveHoldForwardAction = 0
ResolveHoldForwardAction_FAIL ResolveHoldForwardAction = 1
ResolveHoldForwardAction_RESUME ResolveHoldForwardAction = 2
)
// Enum value maps for ResolveHoldForwardAction.
var (
ResolveHoldForwardAction_name = map[int32]string{
0: "SETTLE",
1: "FAIL",
2: "RESUME",
}
ResolveHoldForwardAction_value = map[string]int32{
"SETTLE": 0,
"FAIL": 1,
"RESUME": 2,
}
)
func (x ResolveHoldForwardAction) Enum() *ResolveHoldForwardAction {
p := new(ResolveHoldForwardAction)
*p = x
return p
}
func (x ResolveHoldForwardAction) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ResolveHoldForwardAction) Descriptor() protoreflect.EnumDescriptor {
return file_routerrpc_router_proto_enumTypes[2].Descriptor()
}
func (ResolveHoldForwardAction) Type() protoreflect.EnumType {
return &file_routerrpc_router_proto_enumTypes[2]
}
func (x ResolveHoldForwardAction) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ResolveHoldForwardAction.Descriptor instead.
func (ResolveHoldForwardAction) EnumDescriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{2}
}
type ChanStatusAction int32
const (
ChanStatusAction_ENABLE ChanStatusAction = 0
ChanStatusAction_DISABLE ChanStatusAction = 1
ChanStatusAction_AUTO ChanStatusAction = 2
)
// Enum value maps for ChanStatusAction.
var (
ChanStatusAction_name = map[int32]string{
0: "ENABLE",
1: "DISABLE",
2: "AUTO",
}
ChanStatusAction_value = map[string]int32{
"ENABLE": 0,
"DISABLE": 1,
"AUTO": 2,
}
)
func (x ChanStatusAction) Enum() *ChanStatusAction {
p := new(ChanStatusAction)
*p = x
return p
}
func (x ChanStatusAction) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ChanStatusAction) Descriptor() protoreflect.EnumDescriptor {
return file_routerrpc_router_proto_enumTypes[3].Descriptor()
}
func (ChanStatusAction) Type() protoreflect.EnumType {
return &file_routerrpc_router_proto_enumTypes[3]
}
func (x ChanStatusAction) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ChanStatusAction.Descriptor instead.
func (ChanStatusAction) EnumDescriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{3}
}
type HtlcEvent_EventType int32
const (
HtlcEvent_UNKNOWN HtlcEvent_EventType = 0
HtlcEvent_SEND HtlcEvent_EventType = 1
HtlcEvent_RECEIVE HtlcEvent_EventType = 2
HtlcEvent_FORWARD HtlcEvent_EventType = 3
)
// Enum value maps for HtlcEvent_EventType.
var (
HtlcEvent_EventType_name = map[int32]string{
0: "UNKNOWN",
1: "SEND",
2: "RECEIVE",
3: "FORWARD",
}
HtlcEvent_EventType_value = map[string]int32{
"UNKNOWN": 0,
"SEND": 1,
"RECEIVE": 2,
"FORWARD": 3,
}
)
func (x HtlcEvent_EventType) Enum() *HtlcEvent_EventType {
p := new(HtlcEvent_EventType)
*p = x
return p
}
func (x HtlcEvent_EventType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (HtlcEvent_EventType) Descriptor() protoreflect.EnumDescriptor {
return file_routerrpc_router_proto_enumTypes[4].Descriptor()
}
func (HtlcEvent_EventType) Type() protoreflect.EnumType {
return &file_routerrpc_router_proto_enumTypes[4]
}
func (x HtlcEvent_EventType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use HtlcEvent_EventType.Descriptor instead.
func (HtlcEvent_EventType) EnumDescriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{24, 0}
}
type SendPaymentRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The identity pubkey of the payment recipient
Dest []byte `protobuf:"bytes,1,opt,name=dest,proto3" json:"dest,omitempty"`
//
//Number of satoshis to send.
//
//The fields amt and amt_msat are mutually exclusive.
Amt int64 `protobuf:"varint,2,opt,name=amt,proto3" json:"amt,omitempty"`
//
//Number of millisatoshis to send.
//
//The fields amt and amt_msat are mutually exclusive.
AmtMsat int64 `protobuf:"varint,12,opt,name=amt_msat,json=amtMsat,proto3" json:"amt_msat,omitempty"`
// The hash to use within the payment's HTLC
PaymentHash []byte `protobuf:"bytes,3,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"`
//
//The CLTV delta from the current height that should be used to set the
//timelock for the final hop.
FinalCltvDelta int32 `protobuf:"varint,4,opt,name=final_cltv_delta,json=finalCltvDelta,proto3" json:"final_cltv_delta,omitempty"`
// An optional payment addr to be included within the last hop of the route.
PaymentAddr []byte `protobuf:"bytes,20,opt,name=payment_addr,json=paymentAddr,proto3" json:"payment_addr,omitempty"`
//
//A bare-bones invoice for a payment within the Lightning Network. With the
//details of the invoice, the sender has all the data necessary to send a
//payment to the recipient. The amount in the payment request may be zero. In
//that case it is required to set the amt field as well. If no payment request
//is specified, the following fields are required: dest, amt and payment_hash.
PaymentRequest string `protobuf:"bytes,5,opt,name=payment_request,json=paymentRequest,proto3" json:"payment_request,omitempty"`
//
//An upper limit on the amount of time we should spend when attempting to
//fulfill the payment. This is expressed in seconds. If we cannot make a
//successful payment within this time frame, an error will be returned.
//This field must be non-zero.
TimeoutSeconds int32 `protobuf:"varint,6,opt,name=timeout_seconds,json=timeoutSeconds,proto3" json:"timeout_seconds,omitempty"`
//
//The maximum number of satoshis that will be paid as a fee of the payment.
//If this field is left to the default value of 0, only zero-fee routes will
//be considered. This usually means single hop routes connecting directly to
//the destination. To send the payment without a fee limit, use max int here.
//
//The fields fee_limit_sat and fee_limit_msat are mutually exclusive.
FeeLimitSat int64 `protobuf:"varint,7,opt,name=fee_limit_sat,json=feeLimitSat,proto3" json:"fee_limit_sat,omitempty"`
//
//The maximum number of millisatoshis that will be paid as a fee of the
//payment. If this field is left to the default value of 0, only zero-fee
//routes will be considered. This usually means single hop routes connecting
//directly to the destination. To send the payment without a fee limit, use
//max int here.
//
//The fields fee_limit_sat and fee_limit_msat are mutually exclusive.
FeeLimitMsat int64 `protobuf:"varint,13,opt,name=fee_limit_msat,json=feeLimitMsat,proto3" json:"fee_limit_msat,omitempty"`
//
//Deprecated, use outgoing_chan_ids. The channel id of the channel that must
//be taken to the first hop. If zero, any channel may be used (unless
//outgoing_chan_ids are set).
//
// Deprecated: Do not use.
OutgoingChanId uint64 `protobuf:"varint,8,opt,name=outgoing_chan_id,json=outgoingChanId,proto3" json:"outgoing_chan_id,omitempty"`
//
//The channel ids of the channels are allowed for the first hop. If empty,
//any channel may be used.
OutgoingChanIds []uint64 `protobuf:"varint,19,rep,packed,name=outgoing_chan_ids,json=outgoingChanIds,proto3" json:"outgoing_chan_ids,omitempty"`
//
//The pubkey of the last hop of the route. If empty, any hop may be used.
LastHopPubkey []byte `protobuf:"bytes,14,opt,name=last_hop_pubkey,json=lastHopPubkey,proto3" json:"last_hop_pubkey,omitempty"`
//
//An optional maximum total time lock for the route. This should not exceed
//lnd's `--max-cltv-expiry` setting. If zero, then the value of
//`--max-cltv-expiry` is enforced.
CltvLimit int32 `protobuf:"varint,9,opt,name=cltv_limit,json=cltvLimit,proto3" json:"cltv_limit,omitempty"`
//
//Optional route hints to reach the destination through private channels.
RouteHints []*lnrpc.RouteHint `protobuf:"bytes,10,rep,name=route_hints,json=routeHints,proto3" json:"route_hints,omitempty"`
//
//An optional field that can be used to pass an arbitrary set of TLV records
//to a peer which understands the new records. This can be used to pass
//application specific data during the payment attempt. Record types are
//required to be in the custom range >= 65536. When using REST, the values
//must be encoded as base64.
DestCustomRecords map[uint64][]byte `protobuf:"bytes,11,rep,name=dest_custom_records,json=destCustomRecords,proto3" json:"dest_custom_records,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// If set, circular payments to self are permitted.
AllowSelfPayment bool `protobuf:"varint,15,opt,name=allow_self_payment,json=allowSelfPayment,proto3" json:"allow_self_payment,omitempty"`
//
//Features assumed to be supported by the final node. All transitive feature
2020-01-18 00:12:02 +03:00
//dependencies must also be set properly. For a given feature bit pair, either
//optional or remote may be set, but not both. If this field is nil or empty,
//the router will try to load destination features from the graph as a
//fallback.
DestFeatures []lnrpc.FeatureBit `protobuf:"varint,16,rep,packed,name=dest_features,json=destFeatures,proto3,enum=lnrpc.FeatureBit" json:"dest_features,omitempty"`
//
//The maximum number of partial payments that may be use to complete the full
//amount.
MaxParts uint32 `protobuf:"varint,17,opt,name=max_parts,json=maxParts,proto3" json:"max_parts,omitempty"`
//
//If set, only the final payment update is streamed back. Intermediate updates
//that show which htlcs are still in flight are suppressed.
NoInflightUpdates bool `protobuf:"varint,18,opt,name=no_inflight_updates,json=noInflightUpdates,proto3" json:"no_inflight_updates,omitempty"`
//
//The largest payment split that should be attempted when making a payment if
//splitting is necessary. Setting this value will effectively cause lnd to
//split more aggressively, vs only when it thinks it needs to. Note that this
//value is in milli-satoshis.
MaxShardSizeMsat uint64 `protobuf:"varint,21,opt,name=max_shard_size_msat,json=maxShardSizeMsat,proto3" json:"max_shard_size_msat,omitempty"`
//
//If set, an AMP-payment will be attempted.
Amp bool `protobuf:"varint,22,opt,name=amp,proto3" json:"amp,omitempty"`
}
func (x *SendPaymentRequest) Reset() {
*x = SendPaymentRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SendPaymentRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SendPaymentRequest) ProtoMessage() {}
func (x *SendPaymentRequest) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 SendPaymentRequest.ProtoReflect.Descriptor instead.
func (*SendPaymentRequest) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{0}
}
func (x *SendPaymentRequest) GetDest() []byte {
if x != nil {
return x.Dest
}
return nil
}
func (x *SendPaymentRequest) GetAmt() int64 {
if x != nil {
return x.Amt
}
return 0
}
func (x *SendPaymentRequest) GetAmtMsat() int64 {
if x != nil {
return x.AmtMsat
}
return 0
}
func (x *SendPaymentRequest) GetPaymentHash() []byte {
if x != nil {
return x.PaymentHash
}
return nil
}
func (x *SendPaymentRequest) GetFinalCltvDelta() int32 {
if x != nil {
return x.FinalCltvDelta
}
return 0
}
func (x *SendPaymentRequest) GetPaymentAddr() []byte {
if x != nil {
return x.PaymentAddr
}
return nil
}
func (x *SendPaymentRequest) GetPaymentRequest() string {
if x != nil {
return x.PaymentRequest
}
return ""
}
func (x *SendPaymentRequest) GetTimeoutSeconds() int32 {
if x != nil {
return x.TimeoutSeconds
}
return 0
}
func (x *SendPaymentRequest) GetFeeLimitSat() int64 {
if x != nil {
return x.FeeLimitSat
}
return 0
}
func (x *SendPaymentRequest) GetFeeLimitMsat() int64 {
if x != nil {
return x.FeeLimitMsat
}
return 0
}
// Deprecated: Do not use.
func (x *SendPaymentRequest) GetOutgoingChanId() uint64 {
if x != nil {
return x.OutgoingChanId
}
return 0
}
func (x *SendPaymentRequest) GetOutgoingChanIds() []uint64 {
if x != nil {
return x.OutgoingChanIds
}
return nil
}
func (x *SendPaymentRequest) GetLastHopPubkey() []byte {
if x != nil {
return x.LastHopPubkey
}
return nil
}
func (x *SendPaymentRequest) GetCltvLimit() int32 {
if x != nil {
return x.CltvLimit
}
return 0
}
func (x *SendPaymentRequest) GetRouteHints() []*lnrpc.RouteHint {
if x != nil {
return x.RouteHints
}
return nil
}
func (x *SendPaymentRequest) GetDestCustomRecords() map[uint64][]byte {
if x != nil {
return x.DestCustomRecords
}
return nil
}
func (x *SendPaymentRequest) GetAllowSelfPayment() bool {
if x != nil {
return x.AllowSelfPayment
}
return false
}
func (x *SendPaymentRequest) GetDestFeatures() []lnrpc.FeatureBit {
if x != nil {
return x.DestFeatures
}
return nil
}
func (x *SendPaymentRequest) GetMaxParts() uint32 {
if x != nil {
return x.MaxParts
}
return 0
}
func (x *SendPaymentRequest) GetNoInflightUpdates() bool {
if x != nil {
return x.NoInflightUpdates
}
return false
}
func (x *SendPaymentRequest) GetMaxShardSizeMsat() uint64 {
if x != nil {
return x.MaxShardSizeMsat
}
return 0
}
func (x *SendPaymentRequest) GetAmp() bool {
if x != nil {
return x.Amp
}
return false
}
type TrackPaymentRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The hash of the payment to look up.
PaymentHash []byte `protobuf:"bytes,1,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"`
//
//If set, only the final payment update is streamed back. Intermediate updates
//that show which htlcs are still in flight are suppressed.
NoInflightUpdates bool `protobuf:"varint,2,opt,name=no_inflight_updates,json=noInflightUpdates,proto3" json:"no_inflight_updates,omitempty"`
}
func (x *TrackPaymentRequest) Reset() {
*x = TrackPaymentRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TrackPaymentRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TrackPaymentRequest) ProtoMessage() {}
func (x *TrackPaymentRequest) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 TrackPaymentRequest.ProtoReflect.Descriptor instead.
func (*TrackPaymentRequest) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{1}
}
func (x *TrackPaymentRequest) GetPaymentHash() []byte {
if x != nil {
return x.PaymentHash
}
return nil
}
func (x *TrackPaymentRequest) GetNoInflightUpdates() bool {
if x != nil {
return x.NoInflightUpdates
}
return false
}
type RouteFeeRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
//
//The destination once wishes to obtain a routing fee quote to.
Dest []byte `protobuf:"bytes,1,opt,name=dest,proto3" json:"dest,omitempty"`
//
//The amount one wishes to send to the target destination.
AmtSat int64 `protobuf:"varint,2,opt,name=amt_sat,json=amtSat,proto3" json:"amt_sat,omitempty"`
}
func (x *RouteFeeRequest) Reset() {
*x = RouteFeeRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RouteFeeRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RouteFeeRequest) ProtoMessage() {}
func (x *RouteFeeRequest) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 RouteFeeRequest.ProtoReflect.Descriptor instead.
func (*RouteFeeRequest) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{2}
}
func (x *RouteFeeRequest) GetDest() []byte {
if x != nil {
return x.Dest
}
return nil
}
func (x *RouteFeeRequest) GetAmtSat() int64 {
if x != nil {
return x.AmtSat
}
return 0
}
type RouteFeeResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
//
//A lower bound of the estimated fee to the target destination within the
//network, expressed in milli-satoshis.
RoutingFeeMsat int64 `protobuf:"varint,1,opt,name=routing_fee_msat,json=routingFeeMsat,proto3" json:"routing_fee_msat,omitempty"`
//
//An estimate of the worst case time delay that can occur. Note that callers
//will still need to factor in the final CLTV delta of the last hop into this
//value.
TimeLockDelay int64 `protobuf:"varint,2,opt,name=time_lock_delay,json=timeLockDelay,proto3" json:"time_lock_delay,omitempty"`
}
func (x *RouteFeeResponse) Reset() {
*x = RouteFeeResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RouteFeeResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RouteFeeResponse) ProtoMessage() {}
func (x *RouteFeeResponse) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 RouteFeeResponse.ProtoReflect.Descriptor instead.
func (*RouteFeeResponse) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{3}
}
func (x *RouteFeeResponse) GetRoutingFeeMsat() int64 {
if x != nil {
return x.RoutingFeeMsat
}
return 0
}
func (x *RouteFeeResponse) GetTimeLockDelay() int64 {
if x != nil {
return x.TimeLockDelay
}
return 0
}
type SendToRouteRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The payment hash to use for the HTLC.
PaymentHash []byte `protobuf:"bytes,1,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"`
// Route that should be used to attempt to complete the payment.
Route *lnrpc.Route `protobuf:"bytes,2,opt,name=route,proto3" json:"route,omitempty"`
}
func (x *SendToRouteRequest) Reset() {
*x = SendToRouteRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SendToRouteRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SendToRouteRequest) ProtoMessage() {}
func (x *SendToRouteRequest) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 SendToRouteRequest.ProtoReflect.Descriptor instead.
func (*SendToRouteRequest) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{4}
}
func (x *SendToRouteRequest) GetPaymentHash() []byte {
if x != nil {
return x.PaymentHash
}
return nil
}
func (x *SendToRouteRequest) GetRoute() *lnrpc.Route {
if x != nil {
return x.Route
}
return nil
}
type SendToRouteResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The preimage obtained by making the payment.
Preimage []byte `protobuf:"bytes,1,opt,name=preimage,proto3" json:"preimage,omitempty"`
// The failure message in case the payment failed.
Failure *lnrpc.Failure `protobuf:"bytes,2,opt,name=failure,proto3" json:"failure,omitempty"`
}
func (x *SendToRouteResponse) Reset() {
*x = SendToRouteResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SendToRouteResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SendToRouteResponse) ProtoMessage() {}
func (x *SendToRouteResponse) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 SendToRouteResponse.ProtoReflect.Descriptor instead.
func (*SendToRouteResponse) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{5}
}
func (x *SendToRouteResponse) GetPreimage() []byte {
if x != nil {
return x.Preimage
}
return nil
}
func (x *SendToRouteResponse) GetFailure() *lnrpc.Failure {
if x != nil {
return x.Failure
}
return nil
}
type ResetMissionControlRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *ResetMissionControlRequest) Reset() {
*x = ResetMissionControlRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ResetMissionControlRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ResetMissionControlRequest) ProtoMessage() {}
func (x *ResetMissionControlRequest) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 ResetMissionControlRequest.ProtoReflect.Descriptor instead.
func (*ResetMissionControlRequest) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{6}
}
type ResetMissionControlResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *ResetMissionControlResponse) Reset() {
*x = ResetMissionControlResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ResetMissionControlResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ResetMissionControlResponse) ProtoMessage() {}
func (x *ResetMissionControlResponse) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 ResetMissionControlResponse.ProtoReflect.Descriptor instead.
func (*ResetMissionControlResponse) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{7}
}
type QueryMissionControlRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *QueryMissionControlRequest) Reset() {
*x = QueryMissionControlRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *QueryMissionControlRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QueryMissionControlRequest) ProtoMessage() {}
func (x *QueryMissionControlRequest) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 QueryMissionControlRequest.ProtoReflect.Descriptor instead.
func (*QueryMissionControlRequest) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{8}
}
// QueryMissionControlResponse contains mission control state.
type QueryMissionControlResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Node pair-level mission control state.
Pairs []*PairHistory `protobuf:"bytes,2,rep,name=pairs,proto3" json:"pairs,omitempty"`
}
func (x *QueryMissionControlResponse) Reset() {
*x = QueryMissionControlResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *QueryMissionControlResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QueryMissionControlResponse) ProtoMessage() {}
func (x *QueryMissionControlResponse) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 QueryMissionControlResponse.ProtoReflect.Descriptor instead.
func (*QueryMissionControlResponse) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{9}
}
func (x *QueryMissionControlResponse) GetPairs() []*PairHistory {
if x != nil {
return x.Pairs
}
return nil
}
2021-03-18 11:46:46 +03:00
type XImportMissionControlRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
2021-03-18 11:46:46 +03:00
// Node pair-level mission control state to be imported.
Pairs []*PairHistory `protobuf:"bytes,1,rep,name=pairs,proto3" json:"pairs,omitempty"`
2021-03-18 11:46:46 +03:00
}
func (x *XImportMissionControlRequest) Reset() {
*x = XImportMissionControlRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
2021-03-18 11:46:46 +03:00
}
func (x *XImportMissionControlRequest) String() string {
return protoimpl.X.MessageStringOf(x)
2021-03-18 11:46:46 +03:00
}
func (*XImportMissionControlRequest) ProtoMessage() {}
func (x *XImportMissionControlRequest) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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)
2021-03-18 11:46:46 +03:00
}
// Deprecated: Use XImportMissionControlRequest.ProtoReflect.Descriptor instead.
func (*XImportMissionControlRequest) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{10}
}
2021-03-18 11:46:46 +03:00
func (x *XImportMissionControlRequest) GetPairs() []*PairHistory {
if x != nil {
return x.Pairs
2021-03-18 11:46:46 +03:00
}
return nil
}
type XImportMissionControlResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
2021-03-18 11:46:46 +03:00
}
func (x *XImportMissionControlResponse) Reset() {
*x = XImportMissionControlResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
2021-03-18 11:46:46 +03:00
}
func (x *XImportMissionControlResponse) String() string {
return protoimpl.X.MessageStringOf(x)
2021-03-18 11:46:46 +03:00
}
func (*XImportMissionControlResponse) ProtoMessage() {}
func (x *XImportMissionControlResponse) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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)
2021-03-18 11:46:46 +03:00
}
// Deprecated: Use XImportMissionControlResponse.ProtoReflect.Descriptor instead.
func (*XImportMissionControlResponse) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{11}
}
2021-03-18 11:46:46 +03:00
// PairHistory contains the mission control state for a particular node pair.
type PairHistory struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The source node pubkey of the pair.
NodeFrom []byte `protobuf:"bytes,1,opt,name=node_from,json=nodeFrom,proto3" json:"node_from,omitempty"`
// The destination node pubkey of the pair.
NodeTo []byte `protobuf:"bytes,2,opt,name=node_to,json=nodeTo,proto3" json:"node_to,omitempty"`
History *PairData `protobuf:"bytes,7,opt,name=history,proto3" json:"history,omitempty"`
}
func (x *PairHistory) Reset() {
*x = PairHistory{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PairHistory) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PairHistory) ProtoMessage() {}
func (x *PairHistory) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 PairHistory.ProtoReflect.Descriptor instead.
func (*PairHistory) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{12}
}
func (x *PairHistory) GetNodeFrom() []byte {
if x != nil {
return x.NodeFrom
}
return nil
}
func (x *PairHistory) GetNodeTo() []byte {
if x != nil {
return x.NodeTo
}
return nil
}
func (x *PairHistory) GetHistory() *PairData {
if x != nil {
return x.History
}
return nil
}
type PairData struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Time of last failure.
FailTime int64 `protobuf:"varint,1,opt,name=fail_time,json=failTime,proto3" json:"fail_time,omitempty"`
//
2019-09-26 18:04:02 +03:00
//Lowest amount that failed to forward rounded to whole sats. This may be
//set to zero if the failure is independent of amount.
FailAmtSat int64 `protobuf:"varint,2,opt,name=fail_amt_sat,json=failAmtSat,proto3" json:"fail_amt_sat,omitempty"`
//
2019-09-26 18:04:02 +03:00
//Lowest amount that failed to forward in millisats. This may be
//set to zero if the failure is independent of amount.
FailAmtMsat int64 `protobuf:"varint,4,opt,name=fail_amt_msat,json=failAmtMsat,proto3" json:"fail_amt_msat,omitempty"`
// Time of last success.
SuccessTime int64 `protobuf:"varint,5,opt,name=success_time,json=successTime,proto3" json:"success_time,omitempty"`
// Highest amount that we could successfully forward rounded to whole sats.
SuccessAmtSat int64 `protobuf:"varint,6,opt,name=success_amt_sat,json=successAmtSat,proto3" json:"success_amt_sat,omitempty"`
// Highest amount that we could successfully forward in millisats.
SuccessAmtMsat int64 `protobuf:"varint,7,opt,name=success_amt_msat,json=successAmtMsat,proto3" json:"success_amt_msat,omitempty"`
}
func (x *PairData) Reset() {
*x = PairData{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PairData) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PairData) ProtoMessage() {}
func (x *PairData) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 PairData.ProtoReflect.Descriptor instead.
func (*PairData) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{13}
}
func (x *PairData) GetFailTime() int64 {
if x != nil {
return x.FailTime
}
return 0
}
func (x *PairData) GetFailAmtSat() int64 {
if x != nil {
return x.FailAmtSat
}
return 0
}
func (x *PairData) GetFailAmtMsat() int64 {
if x != nil {
return x.FailAmtMsat
}
return 0
}
func (x *PairData) GetSuccessTime() int64 {
if x != nil {
return x.SuccessTime
}
2019-09-26 18:04:02 +03:00
return 0
}
func (x *PairData) GetSuccessAmtSat() int64 {
if x != nil {
return x.SuccessAmtSat
2019-09-26 18:04:02 +03:00
}
return 0
}
func (x *PairData) GetSuccessAmtMsat() int64 {
if x != nil {
return x.SuccessAmtMsat
2019-09-26 18:04:02 +03:00
}
return 0
}
type GetMissionControlConfigRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *GetMissionControlConfigRequest) Reset() {
*x = GetMissionControlConfigRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetMissionControlConfigRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetMissionControlConfigRequest) ProtoMessage() {}
func (x *GetMissionControlConfigRequest) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 GetMissionControlConfigRequest.ProtoReflect.Descriptor instead.
func (*GetMissionControlConfigRequest) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{14}
}
type GetMissionControlConfigResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
//
//Mission control's currently active config.
Config *MissionControlConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
}
func (x *GetMissionControlConfigResponse) Reset() {
*x = GetMissionControlConfigResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetMissionControlConfigResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetMissionControlConfigResponse) ProtoMessage() {}
func (x *GetMissionControlConfigResponse) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 GetMissionControlConfigResponse.ProtoReflect.Descriptor instead.
func (*GetMissionControlConfigResponse) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{15}
}
func (x *GetMissionControlConfigResponse) GetConfig() *MissionControlConfig {
if x != nil {
return x.Config
}
return nil
}
type SetMissionControlConfigRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
//
//The config to set for mission control. Note that all values *must* be set,
//because the full config will be applied.
Config *MissionControlConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
}
func (x *SetMissionControlConfigRequest) Reset() {
*x = SetMissionControlConfigRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SetMissionControlConfigRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SetMissionControlConfigRequest) ProtoMessage() {}
func (x *SetMissionControlConfigRequest) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 SetMissionControlConfigRequest.ProtoReflect.Descriptor instead.
func (*SetMissionControlConfigRequest) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{16}
}
func (x *SetMissionControlConfigRequest) GetConfig() *MissionControlConfig {
if x != nil {
return x.Config
}
return nil
}
type SetMissionControlConfigResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *SetMissionControlConfigResponse) Reset() {
*x = SetMissionControlConfigResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SetMissionControlConfigResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SetMissionControlConfigResponse) ProtoMessage() {}
func (x *SetMissionControlConfigResponse) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 SetMissionControlConfigResponse.ProtoReflect.Descriptor instead.
func (*SetMissionControlConfigResponse) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{17}
}
type MissionControlConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
//
//The amount of time mission control will take to restore a penalized node
//or channel back to 50% success probability, expressed in seconds. Setting
//this value to a higher value will penalize failures for longer, making
//mission control less likely to route through nodes and channels that we
//have previously recorded failures for.
HalfLifeSeconds uint64 `protobuf:"varint,1,opt,name=half_life_seconds,json=halfLifeSeconds,proto3" json:"half_life_seconds,omitempty"`
//
//The probability of success mission control should assign to hop in a route
//where it has no other information available. Higher values will make mission
//control more willing to try hops that we have no information about, lower
//values will discourage trying these hops.
HopProbability float32 `protobuf:"fixed32,2,opt,name=hop_probability,json=hopProbability,proto3" json:"hop_probability,omitempty"`
//
//The importance that mission control should place on historical results,
//expressed as a value in [0;1]. Setting this value to 1 will ignore all
//historical payments and just use the hop probability to assess the
//probability of success for each hop. A zero value ignores hop probability
//completely and relies entirely on historical results, unless none are
//available.
Weight float32 `protobuf:"fixed32,3,opt,name=weight,proto3" json:"weight,omitempty"`
//
//The maximum number of payment results that mission control will store.
MaximumPaymentResults uint32 `protobuf:"varint,4,opt,name=maximum_payment_results,json=maximumPaymentResults,proto3" json:"maximum_payment_results,omitempty"`
//
//The minimum time that must have passed since the previously recorded failure
//before we raise the failure amount.
MinimumFailureRelaxInterval uint64 `protobuf:"varint,5,opt,name=minimum_failure_relax_interval,json=minimumFailureRelaxInterval,proto3" json:"minimum_failure_relax_interval,omitempty"`
}
func (x *MissionControlConfig) Reset() {
*x = MissionControlConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MissionControlConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MissionControlConfig) ProtoMessage() {}
func (x *MissionControlConfig) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 MissionControlConfig.ProtoReflect.Descriptor instead.
func (*MissionControlConfig) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{18}
}
func (x *MissionControlConfig) GetHalfLifeSeconds() uint64 {
if x != nil {
return x.HalfLifeSeconds
}
return 0
}
func (x *MissionControlConfig) GetHopProbability() float32 {
if x != nil {
return x.HopProbability
}
return 0
}
func (x *MissionControlConfig) GetWeight() float32 {
if x != nil {
return x.Weight
}
return 0
}
func (x *MissionControlConfig) GetMaximumPaymentResults() uint32 {
if x != nil {
return x.MaximumPaymentResults
}
return 0
}
func (x *MissionControlConfig) GetMinimumFailureRelaxInterval() uint64 {
if x != nil {
return x.MinimumFailureRelaxInterval
}
return 0
}
type QueryProbabilityRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The source node pubkey of the pair.
FromNode []byte `protobuf:"bytes,1,opt,name=from_node,json=fromNode,proto3" json:"from_node,omitempty"`
// The destination node pubkey of the pair.
ToNode []byte `protobuf:"bytes,2,opt,name=to_node,json=toNode,proto3" json:"to_node,omitempty"`
// The amount for which to calculate a probability.
AmtMsat int64 `protobuf:"varint,3,opt,name=amt_msat,json=amtMsat,proto3" json:"amt_msat,omitempty"`
}
func (x *QueryProbabilityRequest) Reset() {
*x = QueryProbabilityRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *QueryProbabilityRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QueryProbabilityRequest) ProtoMessage() {}
func (x *QueryProbabilityRequest) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 QueryProbabilityRequest.ProtoReflect.Descriptor instead.
func (*QueryProbabilityRequest) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{19}
}
func (x *QueryProbabilityRequest) GetFromNode() []byte {
if x != nil {
return x.FromNode
}
return nil
}
func (x *QueryProbabilityRequest) GetToNode() []byte {
if x != nil {
return x.ToNode
}
return nil
}
func (x *QueryProbabilityRequest) GetAmtMsat() int64 {
if x != nil {
return x.AmtMsat
}
return 0
}
type QueryProbabilityResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The success probability for the requested pair.
Probability float64 `protobuf:"fixed64,1,opt,name=probability,proto3" json:"probability,omitempty"`
// The historical data for the requested pair.
History *PairData `protobuf:"bytes,2,opt,name=history,proto3" json:"history,omitempty"`
}
func (x *QueryProbabilityResponse) Reset() {
*x = QueryProbabilityResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *QueryProbabilityResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QueryProbabilityResponse) ProtoMessage() {}
func (x *QueryProbabilityResponse) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 QueryProbabilityResponse.ProtoReflect.Descriptor instead.
func (*QueryProbabilityResponse) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{20}
}
func (x *QueryProbabilityResponse) GetProbability() float64 {
if x != nil {
return x.Probability
}
return 0
}
func (x *QueryProbabilityResponse) GetHistory() *PairData {
if x != nil {
return x.History
}
return nil
}
type BuildRouteRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
//
//The amount to send expressed in msat. If set to zero, the minimum routable
//amount is used.
AmtMsat int64 `protobuf:"varint,1,opt,name=amt_msat,json=amtMsat,proto3" json:"amt_msat,omitempty"`
//
//CLTV delta from the current height that should be used for the timelock
//of the final hop
FinalCltvDelta int32 `protobuf:"varint,2,opt,name=final_cltv_delta,json=finalCltvDelta,proto3" json:"final_cltv_delta,omitempty"`
//
//The channel id of the channel that must be taken to the first hop. If zero,
//any channel may be used.
OutgoingChanId uint64 `protobuf:"varint,3,opt,name=outgoing_chan_id,json=outgoingChanId,proto3" json:"outgoing_chan_id,omitempty"`
//
//A list of hops that defines the route. This does not include the source hop
//pubkey.
HopPubkeys [][]byte `protobuf:"bytes,4,rep,name=hop_pubkeys,json=hopPubkeys,proto3" json:"hop_pubkeys,omitempty"`
// An optional payment addr to be included within the last hop of the route.
PaymentAddr []byte `protobuf:"bytes,5,opt,name=payment_addr,json=paymentAddr,proto3" json:"payment_addr,omitempty"`
}
func (x *BuildRouteRequest) Reset() {
*x = BuildRouteRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildRouteRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildRouteRequest) ProtoMessage() {}
func (x *BuildRouteRequest) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 BuildRouteRequest.ProtoReflect.Descriptor instead.
func (*BuildRouteRequest) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{21}
}
func (x *BuildRouteRequest) GetAmtMsat() int64 {
if x != nil {
return x.AmtMsat
}
return 0
}
func (x *BuildRouteRequest) GetFinalCltvDelta() int32 {
if x != nil {
return x.FinalCltvDelta
}
return 0
}
func (x *BuildRouteRequest) GetOutgoingChanId() uint64 {
if x != nil {
return x.OutgoingChanId
}
return 0
}
func (x *BuildRouteRequest) GetHopPubkeys() [][]byte {
if x != nil {
return x.HopPubkeys
}
return nil
}
func (x *BuildRouteRequest) GetPaymentAddr() []byte {
if x != nil {
return x.PaymentAddr
}
return nil
}
type BuildRouteResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
//
//Fully specified route that can be used to execute the payment.
Route *lnrpc.Route `protobuf:"bytes,1,opt,name=route,proto3" json:"route,omitempty"`
}
func (x *BuildRouteResponse) Reset() {
*x = BuildRouteResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildRouteResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildRouteResponse) ProtoMessage() {}
func (x *BuildRouteResponse) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 BuildRouteResponse.ProtoReflect.Descriptor instead.
func (*BuildRouteResponse) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{22}
}
func (x *BuildRouteResponse) GetRoute() *lnrpc.Route {
if x != nil {
return x.Route
}
return nil
}
type SubscribeHtlcEventsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *SubscribeHtlcEventsRequest) Reset() {
*x = SubscribeHtlcEventsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SubscribeHtlcEventsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SubscribeHtlcEventsRequest) ProtoMessage() {}
func (x *SubscribeHtlcEventsRequest) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 SubscribeHtlcEventsRequest.ProtoReflect.Descriptor instead.
func (*SubscribeHtlcEventsRequest) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{23}
}
//
//HtlcEvent contains the htlc event that was processed. These are served on a
//best-effort basis; events are not persisted, delivery is not guaranteed
//(in the event of a crash in the switch, forward events may be lost) and
//some events may be replayed upon restart. Events consumed from this package
//should be de-duplicated by the htlc's unique combination of incoming and
//outgoing channel id and htlc id. [EXPERIMENTAL]
type HtlcEvent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
//
//The short channel id that the incoming htlc arrived at our node on. This
//value is zero for sends.
IncomingChannelId uint64 `protobuf:"varint,1,opt,name=incoming_channel_id,json=incomingChannelId,proto3" json:"incoming_channel_id,omitempty"`
//
//The short channel id that the outgoing htlc left our node on. This value
//is zero for receives.
OutgoingChannelId uint64 `protobuf:"varint,2,opt,name=outgoing_channel_id,json=outgoingChannelId,proto3" json:"outgoing_channel_id,omitempty"`
//
//Incoming id is the index of the incoming htlc in the incoming channel.
//This value is zero for sends.
IncomingHtlcId uint64 `protobuf:"varint,3,opt,name=incoming_htlc_id,json=incomingHtlcId,proto3" json:"incoming_htlc_id,omitempty"`
//
//Outgoing id is the index of the outgoing htlc in the outgoing channel.
//This value is zero for receives.
OutgoingHtlcId uint64 `protobuf:"varint,4,opt,name=outgoing_htlc_id,json=outgoingHtlcId,proto3" json:"outgoing_htlc_id,omitempty"`
//
//The time in unix nanoseconds that the event occurred.
TimestampNs uint64 `protobuf:"varint,5,opt,name=timestamp_ns,json=timestampNs,proto3" json:"timestamp_ns,omitempty"`
//
//The event type indicates whether the htlc was part of a send, receive or
//forward.
EventType HtlcEvent_EventType `protobuf:"varint,6,opt,name=event_type,json=eventType,proto3,enum=routerrpc.HtlcEvent_EventType" json:"event_type,omitempty"`
// Types that are assignable to Event:
// *HtlcEvent_ForwardEvent
// *HtlcEvent_ForwardFailEvent
// *HtlcEvent_SettleEvent
// *HtlcEvent_LinkFailEvent
Event isHtlcEvent_Event `protobuf_oneof:"event"`
}
func (x *HtlcEvent) Reset() {
*x = HtlcEvent{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *HtlcEvent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*HtlcEvent) ProtoMessage() {}
func (x *HtlcEvent) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_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 HtlcEvent.ProtoReflect.Descriptor instead.
func (*HtlcEvent) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{24}
}
func (x *HtlcEvent) GetIncomingChannelId() uint64 {
if x != nil {
return x.IncomingChannelId
}
return 0
}
func (x *HtlcEvent) GetOutgoingChannelId() uint64 {
if x != nil {
return x.OutgoingChannelId
}
return 0
}
func (x *HtlcEvent) GetIncomingHtlcId() uint64 {
if x != nil {
return x.IncomingHtlcId
}
return 0
}
func (x *HtlcEvent) GetOutgoingHtlcId() uint64 {
if x != nil {
return x.OutgoingHtlcId
}
return 0
}
func (x *HtlcEvent) GetTimestampNs() uint64 {
if x != nil {
return x.TimestampNs
}
return 0
}
func (x *HtlcEvent) GetEventType() HtlcEvent_EventType {
if x != nil {
return x.EventType
}
return HtlcEvent_UNKNOWN
}
func (m *HtlcEvent) GetEvent() isHtlcEvent_Event {
if m != nil {
return m.Event
}
return nil
}
func (x *HtlcEvent) GetForwardEvent() *ForwardEvent {
if x, ok := x.GetEvent().(*HtlcEvent_ForwardEvent); ok {
return x.ForwardEvent
}
return nil
}
func (x *HtlcEvent) GetForwardFailEvent() *ForwardFailEvent {
if x, ok := x.GetEvent().(*HtlcEvent_ForwardFailEvent); ok {
return x.ForwardFailEvent
}
return nil
}
func (x *HtlcEvent) GetSettleEvent() *SettleEvent {
if x, ok := x.GetEvent().(*HtlcEvent_SettleEvent); ok {
return x.SettleEvent
}
return nil
}
func (x *HtlcEvent) GetLinkFailEvent() *LinkFailEvent {
if x, ok := x.GetEvent().(*HtlcEvent_LinkFailEvent); ok {
return x.LinkFailEvent
}
return nil
}
type isHtlcEvent_Event interface {
isHtlcEvent_Event()
}
type HtlcEvent_ForwardEvent struct {
ForwardEvent *ForwardEvent `protobuf:"bytes,7,opt,name=forward_event,json=forwardEvent,proto3,oneof"`
}
type HtlcEvent_ForwardFailEvent struct {
ForwardFailEvent *ForwardFailEvent `protobuf:"bytes,8,opt,name=forward_fail_event,json=forwardFailEvent,proto3,oneof"`
}
type HtlcEvent_SettleEvent struct {
SettleEvent *SettleEvent `protobuf:"bytes,9,opt,name=settle_event,json=settleEvent,proto3,oneof"`
}
type HtlcEvent_LinkFailEvent struct {
LinkFailEvent *LinkFailEvent `protobuf:"bytes,10,opt,name=link_fail_event,json=linkFailEvent,proto3,oneof"`
}
func (*HtlcEvent_ForwardEvent) isHtlcEvent_Event() {}
func (*HtlcEvent_ForwardFailEvent) isHtlcEvent_Event() {}
func (*HtlcEvent_SettleEvent) isHtlcEvent_Event() {}
func (*HtlcEvent_LinkFailEvent) isHtlcEvent_Event() {}
type HtlcInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The timelock on the incoming htlc.
IncomingTimelock uint32 `protobuf:"varint,1,opt,name=incoming_timelock,json=incomingTimelock,proto3" json:"incoming_timelock,omitempty"`
// The timelock on the outgoing htlc.
OutgoingTimelock uint32 `protobuf:"varint,2,opt,name=outgoing_timelock,json=outgoingTimelock,proto3" json:"outgoing_timelock,omitempty"`
// The amount of the incoming htlc.
IncomingAmtMsat uint64 `protobuf:"varint,3,opt,name=incoming_amt_msat,json=incomingAmtMsat,proto3" json:"incoming_amt_msat,omitempty"`
// The amount of the outgoing htlc.
OutgoingAmtMsat uint64 `protobuf:"varint,4,opt,name=outgoing_amt_msat,json=outgoingAmtMsat,proto3" json:"outgoing_amt_msat,omitempty"`
}
func (x *HtlcInfo) Reset() {
*x = HtlcInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *HtlcInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*HtlcInfo) ProtoMessage() {}
func (x *HtlcInfo) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_proto_msgTypes[25]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use HtlcInfo.ProtoReflect.Descriptor instead.
func (*HtlcInfo) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{25}
}
func (x *HtlcInfo) GetIncomingTimelock() uint32 {
if x != nil {
return x.IncomingTimelock
}
return 0
}
func (x *HtlcInfo) GetOutgoingTimelock() uint32 {
if x != nil {
return x.OutgoingTimelock
}
return 0
}
func (x *HtlcInfo) GetIncomingAmtMsat() uint64 {
if x != nil {
return x.IncomingAmtMsat
}
return 0
}
func (x *HtlcInfo) GetOutgoingAmtMsat() uint64 {
if x != nil {
return x.OutgoingAmtMsat
}
return 0
}
type ForwardEvent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Info contains details about the htlc that was forwarded.
Info *HtlcInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
}
func (x *ForwardEvent) Reset() {
*x = ForwardEvent{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ForwardEvent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ForwardEvent) ProtoMessage() {}
func (x *ForwardEvent) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_proto_msgTypes[26]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ForwardEvent.ProtoReflect.Descriptor instead.
func (*ForwardEvent) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{26}
}
func (x *ForwardEvent) GetInfo() *HtlcInfo {
if x != nil {
return x.Info
}
return nil
}
type ForwardFailEvent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *ForwardFailEvent) Reset() {
*x = ForwardFailEvent{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ForwardFailEvent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ForwardFailEvent) ProtoMessage() {}
func (x *ForwardFailEvent) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_proto_msgTypes[27]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ForwardFailEvent.ProtoReflect.Descriptor instead.
func (*ForwardFailEvent) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{27}
}
type SettleEvent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The revealed preimage.
Preimage []byte `protobuf:"bytes,1,opt,name=preimage,proto3" json:"preimage,omitempty"`
}
func (x *SettleEvent) Reset() {
*x = SettleEvent{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SettleEvent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SettleEvent) ProtoMessage() {}
func (x *SettleEvent) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_proto_msgTypes[28]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SettleEvent.ProtoReflect.Descriptor instead.
func (*SettleEvent) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{28}
}
func (x *SettleEvent) GetPreimage() []byte {
if x != nil {
return x.Preimage
}
return nil
}
type LinkFailEvent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Info contains details about the htlc that we failed.
Info *HtlcInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
// FailureCode is the BOLT error code for the failure.
WireFailure lnrpc.Failure_FailureCode `protobuf:"varint,2,opt,name=wire_failure,json=wireFailure,proto3,enum=lnrpc.Failure_FailureCode" json:"wire_failure,omitempty"`
//
//FailureDetail provides additional information about the reason for the
//failure. This detail enriches the information provided by the wire message
//and may be 'no detail' if the wire message requires no additional metadata.
FailureDetail FailureDetail `protobuf:"varint,3,opt,name=failure_detail,json=failureDetail,proto3,enum=routerrpc.FailureDetail" json:"failure_detail,omitempty"`
// A string representation of the link failure.
FailureString string `protobuf:"bytes,4,opt,name=failure_string,json=failureString,proto3" json:"failure_string,omitempty"`
}
func (x *LinkFailEvent) Reset() {
*x = LinkFailEvent{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LinkFailEvent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LinkFailEvent) ProtoMessage() {}
func (x *LinkFailEvent) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_proto_msgTypes[29]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LinkFailEvent.ProtoReflect.Descriptor instead.
func (*LinkFailEvent) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{29}
}
func (x *LinkFailEvent) GetInfo() *HtlcInfo {
if x != nil {
return x.Info
}
return nil
}
func (x *LinkFailEvent) GetWireFailure() lnrpc.Failure_FailureCode {
if x != nil {
return x.WireFailure
}
return lnrpc.Failure_RESERVED
}
func (x *LinkFailEvent) GetFailureDetail() FailureDetail {
if x != nil {
return x.FailureDetail
}
return FailureDetail_UNKNOWN
}
func (x *LinkFailEvent) GetFailureString() string {
if x != nil {
return x.FailureString
}
return ""
}
type PaymentStatus struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Current state the payment is in.
State PaymentState `protobuf:"varint,1,opt,name=state,proto3,enum=routerrpc.PaymentState" json:"state,omitempty"`
//
//The pre-image of the payment when state is SUCCEEDED.
Preimage []byte `protobuf:"bytes,2,opt,name=preimage,proto3" json:"preimage,omitempty"`
//
//The HTLCs made in attempt to settle the payment [EXPERIMENTAL].
Htlcs []*lnrpc.HTLCAttempt `protobuf:"bytes,4,rep,name=htlcs,proto3" json:"htlcs,omitempty"`
}
func (x *PaymentStatus) Reset() {
*x = PaymentStatus{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PaymentStatus) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PaymentStatus) ProtoMessage() {}
func (x *PaymentStatus) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_proto_msgTypes[30]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PaymentStatus.ProtoReflect.Descriptor instead.
func (*PaymentStatus) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{30}
}
func (x *PaymentStatus) GetState() PaymentState {
if x != nil {
return x.State
}
return PaymentState_IN_FLIGHT
}
func (x *PaymentStatus) GetPreimage() []byte {
if x != nil {
return x.Preimage
}
return nil
}
func (x *PaymentStatus) GetHtlcs() []*lnrpc.HTLCAttempt {
if x != nil {
return x.Htlcs
}
return nil
}
type CircuitKey struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
/// The id of the channel that the is part of this circuit.
ChanId uint64 `protobuf:"varint,1,opt,name=chan_id,json=chanId,proto3" json:"chan_id,omitempty"`
/// The index of the incoming htlc in the incoming channel.
HtlcId uint64 `protobuf:"varint,2,opt,name=htlc_id,json=htlcId,proto3" json:"htlc_id,omitempty"`
}
func (x *CircuitKey) Reset() {
*x = CircuitKey{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CircuitKey) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CircuitKey) ProtoMessage() {}
func (x *CircuitKey) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_proto_msgTypes[31]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CircuitKey.ProtoReflect.Descriptor instead.
func (*CircuitKey) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{31}
}
func (x *CircuitKey) GetChanId() uint64 {
if x != nil {
return x.ChanId
}
return 0
}
func (x *CircuitKey) GetHtlcId() uint64 {
if x != nil {
return x.HtlcId
}
return 0
}
type ForwardHtlcInterceptRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
//
//The key of this forwarded htlc. It defines the incoming channel id and
//the index in this channel.
IncomingCircuitKey *CircuitKey `protobuf:"bytes,1,opt,name=incoming_circuit_key,json=incomingCircuitKey,proto3" json:"incoming_circuit_key,omitempty"`
// The incoming htlc amount.
IncomingAmountMsat uint64 `protobuf:"varint,5,opt,name=incoming_amount_msat,json=incomingAmountMsat,proto3" json:"incoming_amount_msat,omitempty"`
// The incoming htlc expiry.
IncomingExpiry uint32 `protobuf:"varint,6,opt,name=incoming_expiry,json=incomingExpiry,proto3" json:"incoming_expiry,omitempty"`
//
//The htlc payment hash. This value is not guaranteed to be unique per
//request.
PaymentHash []byte `protobuf:"bytes,2,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"`
// The requested outgoing channel id for this forwarded htlc. Because of
// non-strict forwarding, this isn't necessarily the channel over which the
// packet will be forwarded eventually. A different channel to the same peer
// may be selected as well.
OutgoingRequestedChanId uint64 `protobuf:"varint,7,opt,name=outgoing_requested_chan_id,json=outgoingRequestedChanId,proto3" json:"outgoing_requested_chan_id,omitempty"`
// The outgoing htlc amount.
OutgoingAmountMsat uint64 `protobuf:"varint,3,opt,name=outgoing_amount_msat,json=outgoingAmountMsat,proto3" json:"outgoing_amount_msat,omitempty"`
// The outgoing htlc expiry.
OutgoingExpiry uint32 `protobuf:"varint,4,opt,name=outgoing_expiry,json=outgoingExpiry,proto3" json:"outgoing_expiry,omitempty"`
// Any custom records that were present in the payload.
CustomRecords map[uint64][]byte `protobuf:"bytes,8,rep,name=custom_records,json=customRecords,proto3" json:"custom_records,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// The onion blob for the next hop
OnionBlob []byte `protobuf:"bytes,9,opt,name=onion_blob,json=onionBlob,proto3" json:"onion_blob,omitempty"`
}
func (x *ForwardHtlcInterceptRequest) Reset() {
*x = ForwardHtlcInterceptRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ForwardHtlcInterceptRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ForwardHtlcInterceptRequest) ProtoMessage() {}
func (x *ForwardHtlcInterceptRequest) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_proto_msgTypes[32]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ForwardHtlcInterceptRequest.ProtoReflect.Descriptor instead.
func (*ForwardHtlcInterceptRequest) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{32}
}
func (x *ForwardHtlcInterceptRequest) GetIncomingCircuitKey() *CircuitKey {
if x != nil {
return x.IncomingCircuitKey
}
return nil
}
func (x *ForwardHtlcInterceptRequest) GetIncomingAmountMsat() uint64 {
if x != nil {
return x.IncomingAmountMsat
}
return 0
}
func (x *ForwardHtlcInterceptRequest) GetIncomingExpiry() uint32 {
if x != nil {
return x.IncomingExpiry
}
return 0
}
func (x *ForwardHtlcInterceptRequest) GetPaymentHash() []byte {
if x != nil {
return x.PaymentHash
}
return nil
}
func (x *ForwardHtlcInterceptRequest) GetOutgoingRequestedChanId() uint64 {
if x != nil {
return x.OutgoingRequestedChanId
}
return 0
}
func (x *ForwardHtlcInterceptRequest) GetOutgoingAmountMsat() uint64 {
if x != nil {
return x.OutgoingAmountMsat
}
return 0
}
func (x *ForwardHtlcInterceptRequest) GetOutgoingExpiry() uint32 {
if x != nil {
return x.OutgoingExpiry
}
return 0
}
func (x *ForwardHtlcInterceptRequest) GetCustomRecords() map[uint64][]byte {
if x != nil {
return x.CustomRecords
}
return nil
}
func (x *ForwardHtlcInterceptRequest) GetOnionBlob() []byte {
if x != nil {
return x.OnionBlob
}
return nil
}
//*
//ForwardHtlcInterceptResponse enables the caller to resolve a previously hold
//forward. The caller can choose either to:
//- `Resume`: Execute the default behavior (usually forward).
//- `Reject`: Fail the htlc backwards.
//- `Settle`: Settle this htlc with a given preimage.
type ForwardHtlcInterceptResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
//*
//The key of this forwarded htlc. It defines the incoming channel id and
//the index in this channel.
IncomingCircuitKey *CircuitKey `protobuf:"bytes,1,opt,name=incoming_circuit_key,json=incomingCircuitKey,proto3" json:"incoming_circuit_key,omitempty"`
// The resolve action for this intercepted htlc.
Action ResolveHoldForwardAction `protobuf:"varint,2,opt,name=action,proto3,enum=routerrpc.ResolveHoldForwardAction" json:"action,omitempty"`
// The preimage in case the resolve action is Settle.
Preimage []byte `protobuf:"bytes,3,opt,name=preimage,proto3" json:"preimage,omitempty"`
}
func (x *ForwardHtlcInterceptResponse) Reset() {
*x = ForwardHtlcInterceptResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ForwardHtlcInterceptResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ForwardHtlcInterceptResponse) ProtoMessage() {}
func (x *ForwardHtlcInterceptResponse) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_proto_msgTypes[33]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ForwardHtlcInterceptResponse.ProtoReflect.Descriptor instead.
func (*ForwardHtlcInterceptResponse) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{33}
}
func (x *ForwardHtlcInterceptResponse) GetIncomingCircuitKey() *CircuitKey {
if x != nil {
return x.IncomingCircuitKey
}
return nil
}
func (x *ForwardHtlcInterceptResponse) GetAction() ResolveHoldForwardAction {
if x != nil {
return x.Action
}
return ResolveHoldForwardAction_SETTLE
}
func (x *ForwardHtlcInterceptResponse) GetPreimage() []byte {
if x != nil {
return x.Preimage
}
return nil
}
type UpdateChanStatusRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ChanPoint *lnrpc.ChannelPoint `protobuf:"bytes,1,opt,name=chan_point,json=chanPoint,proto3" json:"chan_point,omitempty"`
Action ChanStatusAction `protobuf:"varint,2,opt,name=action,proto3,enum=routerrpc.ChanStatusAction" json:"action,omitempty"`
}
func (x *UpdateChanStatusRequest) Reset() {
*x = UpdateChanStatusRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpdateChanStatusRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UpdateChanStatusRequest) ProtoMessage() {}
func (x *UpdateChanStatusRequest) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_proto_msgTypes[34]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UpdateChanStatusRequest.ProtoReflect.Descriptor instead.
func (*UpdateChanStatusRequest) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{34}
}
func (x *UpdateChanStatusRequest) GetChanPoint() *lnrpc.ChannelPoint {
if x != nil {
return x.ChanPoint
}
return nil
}
func (x *UpdateChanStatusRequest) GetAction() ChanStatusAction {
if x != nil {
return x.Action
}
return ChanStatusAction_ENABLE
}
type UpdateChanStatusResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *UpdateChanStatusResponse) Reset() {
*x = UpdateChanStatusResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_routerrpc_router_proto_msgTypes[35]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpdateChanStatusResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UpdateChanStatusResponse) ProtoMessage() {}
func (x *UpdateChanStatusResponse) ProtoReflect() protoreflect.Message {
mi := &file_routerrpc_router_proto_msgTypes[35]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UpdateChanStatusResponse.ProtoReflect.Descriptor instead.
func (*UpdateChanStatusResponse) Descriptor() ([]byte, []int) {
return file_routerrpc_router_proto_rawDescGZIP(), []int{35}
}
var File_routerrpc_router_proto protoreflect.FileDescriptor
var file_routerrpc_router_proto_rawDesc = []byte{
0x0a, 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2f, 0x72, 0x6f, 0x75, 0x74,
0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72,
0x72, 0x70, 0x63, 0x1a, 0x09, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd7,
0x07, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6d, 0x74,
0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x6d, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61,
0x6d, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61,
0x6d, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e,
0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61,
0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x69, 0x6e,
0x61, 0x6c, 0x5f, 0x63, 0x6c, 0x74, 0x76, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x04, 0x20,
0x01, 0x28, 0x05, 0x52, 0x0e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x74, 0x76, 0x44, 0x65,
0x6c, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61,
0x64, 0x64, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65,
0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e,
0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
0x27, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e,
0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75,
0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f,
0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52,
0x0b, 0x66, 0x65, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x61, 0x74, 0x12, 0x24, 0x0a, 0x0e,
0x66, 0x65, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x0d,
0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4d, 0x73,
0x61, 0x74, 0x12, 0x2e, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x63,
0x68, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x18, 0x01,
0x30, 0x01, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e,
0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x63,
0x68, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0f, 0x6f,
0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x26,
0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65,
0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x6f, 0x70,
0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x74, 0x76, 0x5f, 0x6c,
0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6c, 0x74, 0x76,
0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x31, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x68,
0x69, 0x6e, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6c, 0x6e, 0x72,
0x70, 0x63, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x69, 0x6e, 0x74, 0x52, 0x0a, 0x72, 0x6f,
0x75, 0x74, 0x65, 0x48, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x64, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74,
0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18,
0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70,
0x63, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52,
0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x64, 0x65, 0x73,
0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x2c,
0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x70, 0x61, 0x79,
0x6d, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f,
0x77, 0x53, 0x65, 0x6c, 0x66, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x0d,
0x64, 0x65, 0x73, 0x74, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x10, 0x20,
0x03, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x65, 0x61, 0x74,
0x75, 0x72, 0x65, 0x42, 0x69, 0x74, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74,
0x75, 0x72, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x61, 0x72, 0x74,
0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x50, 0x61, 0x72, 0x74,
0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6e, 0x6f, 0x5f, 0x69, 0x6e, 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74,
0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11,
0x6e, 0x6f, 0x49, 0x6e, 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
0x73, 0x12, 0x2d, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x73,
0x69, 0x7a, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10,
0x6d, 0x61, 0x78, 0x53, 0x68, 0x61, 0x72, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x73, 0x61, 0x74,
0x12, 0x10, 0x0a, 0x03, 0x61, 0x6d, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61,
0x6d, 0x70, 0x1a, 0x44, 0x0a, 0x16, 0x44, 0x65, 0x73, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d,
0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x68, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x63,
0x6b, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61,
0x73, 0x68, 0x12, 0x2e, 0x0a, 0x13, 0x6e, 0x6f, 0x5f, 0x69, 0x6e, 0x66, 0x6c, 0x69, 0x67, 0x68,
0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
0x11, 0x6e, 0x6f, 0x49, 0x6e, 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74,
0x65, 0x73, 0x22, 0x3e, 0x0a, 0x0f, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x46, 0x65, 0x65, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x6d, 0x74,
0x5f, 0x73, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x6d, 0x74, 0x53,
0x61, 0x74, 0x22, 0x64, 0x0a, 0x10, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x46, 0x65, 0x65, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e,
0x67, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
0x52, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x4d, 0x73, 0x61, 0x74,
0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x65,
0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x4c,
0x6f, 0x63, 0x6b, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x22, 0x5b, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64,
0x54, 0x6f, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21,
0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73,
0x68, 0x12, 0x22, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x0c, 0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x05,
0x72, 0x6f, 0x75, 0x74, 0x65, 0x22, 0x5b, 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x52,
0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08,
0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08,
0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x07, 0x66, 0x61, 0x69, 0x6c,
0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x6e, 0x72, 0x70,
0x63, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x75,
0x72, 0x65, 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x73, 0x65, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69,
0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x73, 0x65, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
0x1c, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43,
0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x51, 0x0a,
0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e,
0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x05,
0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x72, 0x6f,
0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x48, 0x69, 0x73, 0x74,
0x6f, 0x72, 0x79, 0x52, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02,
0x22, 0x4c, 0x0a, 0x1c, 0x58, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69,
0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x12, 0x2c, 0x0a, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x16, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x69, 0x72,
0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x22, 0x1f,
0x0a, 0x1d, 0x58, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
0x8a, 0x01, 0x0a, 0x0b, 0x50, 0x61, 0x69, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12,
0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0c, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x17, 0x0a, 0x07,
0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6e,
0x6f, 0x64, 0x65, 0x54, 0x6f, 0x12, 0x2d, 0x0a, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79,
0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72,
0x70, 0x63, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x68, 0x69, 0x73,
0x74, 0x6f, 0x72, 0x79, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05,
0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x22, 0xe8, 0x01, 0x0a,
0x08, 0x50, 0x61, 0x69, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x61, 0x69,
0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x61,
0x69, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x61,
0x6d, 0x74, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x61,
0x69, 0x6c, 0x41, 0x6d, 0x74, 0x53, 0x61, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c,
0x5f, 0x61, 0x6d, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52,
0x0b, 0x66, 0x61, 0x69, 0x6c, 0x41, 0x6d, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x21, 0x0a, 0x0c,
0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01,
0x28, 0x03, 0x52, 0x0b, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12,
0x26, 0x0a, 0x0f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x6d, 0x74, 0x5f, 0x73,
0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73,
0x73, 0x41, 0x6d, 0x74, 0x53, 0x61, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x75, 0x63, 0x63, 0x65,
0x73, 0x73, 0x5f, 0x61, 0x6d, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28,
0x03, 0x52, 0x0e, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x41, 0x6d, 0x74, 0x4d, 0x73, 0x61,
0x74, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0x20, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x4d, 0x69,
0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66,
0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5a, 0x0a, 0x1f, 0x47, 0x65, 0x74,
0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06,
0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x72,
0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63,
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x59, 0x0a, 0x1e, 0x53, 0x65, 0x74, 0x4d, 0x69, 0x73, 0x73,
0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72,
0x72, 0x70, 0x63, 0x2e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72,
0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x22, 0x21, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x22, 0x80, 0x02, 0x0a, 0x14, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43,
0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, 0x0a, 0x11,
0x68, 0x61, 0x6c, 0x66, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64,
0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x68, 0x61, 0x6c, 0x66, 0x4c, 0x69, 0x66,
0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x68, 0x6f, 0x70, 0x5f,
0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28,
0x02, 0x52, 0x0e, 0x68, 0x6f, 0x70, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74,
0x79, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
0x02, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x36, 0x0a, 0x17, 0x6d, 0x61, 0x78,
0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x73,
0x75, 0x6c, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x69,
0x6d, 0x75, 0x6d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
0x73, 0x12, 0x43, 0x0a, 0x1e, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x66, 0x61, 0x69,
0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x78, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72,
0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1b, 0x6d, 0x69, 0x6e, 0x69, 0x6d,
0x75, 0x6d, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x78, 0x49, 0x6e,
0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x6a, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50,
0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x17,
0x0a, 0x07, 0x74, 0x6f, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52,
0x06, 0x74, 0x6f, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x6d, 0x74, 0x5f, 0x6d,
0x73, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x6d, 0x74, 0x4d, 0x73,
0x61, 0x74, 0x22, 0x6b, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x62, 0x61,
0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20,
0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20,
0x01, 0x28, 0x01, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79,
0x12, 0x2d, 0x0a, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x13, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61,
0x69, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x22,
0xca, 0x01, 0x0a, 0x11, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x6d, 0x74, 0x5f, 0x6d, 0x73, 0x61,
0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x6d, 0x74, 0x4d, 0x73, 0x61, 0x74,
0x12, 0x28, 0x0a, 0x10, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x6c, 0x74, 0x76, 0x5f, 0x64,
0x65, 0x6c, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x66, 0x69, 0x6e, 0x61,
0x6c, 0x43, 0x6c, 0x74, 0x76, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x10, 0x6f, 0x75,
0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03,
0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69,
0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x6f, 0x70, 0x5f,
0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0a, 0x68,
0x6f, 0x70, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79,
0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52,
0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x22, 0x38, 0x0a, 0x12,
0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x12, 0x22, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x0c, 0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52,
0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x22, 0x1c, 0x0a, 0x1a, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72,
0x69, 0x62, 0x65, 0x48, 0x74, 0x6c, 0x63, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x22, 0xf6, 0x04, 0x0a, 0x09, 0x48, 0x74, 0x6c, 0x63, 0x45, 0x76, 0x65,
0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x63,
0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52,
0x11, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x63,
0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52,
0x11, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x68,
0x74, 0x6c, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x69, 0x6e,
0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x48, 0x74, 0x6c, 0x63, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10,
0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x69, 0x64,
0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67,
0x48, 0x74, 0x6c, 0x63, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x69,
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x12, 0x3d, 0x0a, 0x0a, 0x65, 0x76, 0x65,
0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e,
0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x48, 0x74, 0x6c, 0x63, 0x45, 0x76,
0x65, 0x6e, 0x74, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x65,
0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x66, 0x6f, 0x72, 0x77,
0x61, 0x72, 0x64, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x17, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x6f, 0x72, 0x77,
0x61, 0x72, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x6f, 0x72, 0x77,
0x61, 0x72, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x12, 0x66, 0x6f, 0x72, 0x77,
0x61, 0x72, 0x64, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x08,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63,
0x2e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x45, 0x76, 0x65, 0x6e,
0x74, 0x48, 0x00, 0x52, 0x10, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x46, 0x61, 0x69, 0x6c,
0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x0c, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x5f,
0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x72, 0x6f,
0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x45, 0x76,
0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x45, 0x76, 0x65,
0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x5f,
0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x6f,
0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x46, 0x61, 0x69, 0x6c,
0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x6c, 0x69, 0x6e, 0x6b, 0x46, 0x61, 0x69,
0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x3c, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54,
0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00,
0x12, 0x08, 0x0a, 0x04, 0x53, 0x45, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45,
0x43, 0x45, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x4f, 0x52, 0x57, 0x41,
0x52, 0x44, 0x10, 0x03, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xbc, 0x01,
0x0a, 0x08, 0x48, 0x74, 0x6c, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e,
0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x6f, 0x63, 0x6b, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x54,
0x69, 0x6d, 0x65, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x75, 0x74, 0x67, 0x6f,
0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01,
0x28, 0x0d, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65,
0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67,
0x5f, 0x61, 0x6d, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52,
0x0f, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x41, 0x6d, 0x74, 0x4d, 0x73, 0x61, 0x74,
0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x6d, 0x74,
0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6f, 0x75, 0x74,
0x67, 0x6f, 0x69, 0x6e, 0x67, 0x41, 0x6d, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x22, 0x37, 0x0a, 0x0c,
0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x04,
0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x6f, 0x75,
0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x48, 0x74, 0x6c, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x52,
0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x12, 0x0a, 0x10, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64,
0x46, 0x61, 0x69, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x29, 0x0a, 0x0b, 0x53, 0x65, 0x74,
0x74, 0x6c, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x69,
0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x70, 0x72, 0x65, 0x69,
0x6d, 0x61, 0x67, 0x65, 0x22, 0xdf, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x6e, 0x6b, 0x46, 0x61, 0x69,
0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63,
0x2e, 0x48, 0x74, 0x6c, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12,
0x3d, 0x0a, 0x0c, 0x77, 0x69, 0x72, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x61,
0x69, 0x6c, 0x75, 0x72, 0x65, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x64,
0x65, 0x52, 0x0b, 0x77, 0x69, 0x72, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x3f,
0x0a, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c,
0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72,
0x70, 0x63, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
0x52, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12,
0x25, 0x0a, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e,
0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65,
0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x8a, 0x01, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65,
0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72,
0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65,
0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x69, 0x6d,
0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x70, 0x72, 0x65, 0x69, 0x6d,
0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x18, 0x04, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x48, 0x54, 0x4c, 0x43, 0x41,
0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x52, 0x05, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x4a, 0x04, 0x08,
0x03, 0x10, 0x04, 0x22, 0x3e, 0x0a, 0x0a, 0x43, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x4b, 0x65,
0x79, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x04, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x74,
0x6c, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x74, 0x6c,
0x63, 0x49, 0x64, 0x22, 0xbf, 0x04, 0x0a, 0x1b, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x48,
0x74, 0x6c, 0x63, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f,
0x63, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x15, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x69,
0x72, 0x63, 0x75, 0x69, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69,
0x6e, 0x67, 0x43, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x14,
0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f,
0x6d, 0x73, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x6f,
0x6d, 0x69, 0x6e, 0x67, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x27,
0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72,
0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e,
0x67, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 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, 0x3b, 0x0a, 0x1a, 0x6f, 0x75,
0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64,
0x5f, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17,
0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65,
0x64, 0x43, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x6f, 0x75, 0x74, 0x67, 0x6f,
0x69, 0x6e, 0x67, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18,
0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x41,
0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x75, 0x74,
0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01,
0x28, 0x0d, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x70, 0x69,
0x72, 0x79, 0x12, 0x60, 0x0a, 0x0e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x63,
0x6f, 0x72, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x72, 0x6f, 0x75,
0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x48, 0x74,
0x6c, 0x63, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x63,
0x6f, 0x72, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c,
0x6f, 0x62, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x42,
0x6c, 0x6f, 0x62, 0x1a, 0x40, 0x0a, 0x12, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x63,
0x6f, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xc0, 0x01, 0x0a, 0x1c, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72,
0x64, 0x48, 0x74, 0x6c, 0x63, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69,
0x6e, 0x67, 0x5f, 0x63, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63,
0x2e, 0x43, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x12, 0x69, 0x6e, 0x63,
0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x43, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x4b, 0x65, 0x79, 0x12,
0x3b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32,
0x23, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x6f,
0x6c, 0x76, 0x65, 0x48, 0x6f, 0x6c, 0x64, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x41, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08,
0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08,
0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x82, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64,
0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x69,
0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63,
0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x09, 0x63,
0x68, 0x61, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65,
0x72, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x41,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x1a, 0x0a,
0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75,
0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x81, 0x04, 0x0a, 0x0d, 0x46, 0x61,
0x69, 0x6c, 0x75, 0x72, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0b, 0x0a, 0x07, 0x55,
0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x5f, 0x44,
0x45, 0x54, 0x41, 0x49, 0x4c, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x4e, 0x49, 0x4f, 0x4e,
0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x49, 0x4e,
0x4b, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x4c, 0x49, 0x47, 0x49, 0x42, 0x4c, 0x45, 0x10, 0x03,
0x12, 0x14, 0x0a, 0x10, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x54, 0x49, 0x4d,
0x45, 0x4f, 0x55, 0x54, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x54, 0x4c, 0x43, 0x5f, 0x45,
0x58, 0x43, 0x45, 0x45, 0x44, 0x53, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14,
0x49, 0x4e, 0x53, 0x55, 0x46, 0x46, 0x49, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x42, 0x41, 0x4c,
0x41, 0x4e, 0x43, 0x45, 0x10, 0x06, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x50,
0x4c, 0x45, 0x54, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x10, 0x07, 0x12, 0x13,
0x0a, 0x0f, 0x48, 0x54, 0x4c, 0x43, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45,
0x44, 0x10, 0x08, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x53, 0x5f,
0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x09, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x4e,
0x56, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x0a,
0x12, 0x15, 0x0a, 0x11, 0x49, 0x4e, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x44, 0x45,
0x52, 0x50, 0x41, 0x49, 0x44, 0x10, 0x0b, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x4e, 0x56, 0x4f, 0x49,
0x43, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x59, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x53, 0x4f,
0x4f, 0x4e, 0x10, 0x0c, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x4e, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x5f,
0x4e, 0x4f, 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x10, 0x0d, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x50,
0x50, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55,
0x54, 0x10, 0x0e, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x4d,
0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x0f, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x45, 0x54,
0x5f, 0x54, 0x4f, 0x54, 0x41, 0x4c, 0x5f, 0x4d, 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10,
0x10, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x45, 0x54, 0x5f, 0x54, 0x4f, 0x54, 0x41, 0x4c, 0x5f, 0x54,
0x4f, 0x4f, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x11, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x45, 0x54, 0x5f,
0x4f, 0x56, 0x45, 0x52, 0x50, 0x41, 0x49, 0x44, 0x10, 0x12, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x4e,
0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x10, 0x13, 0x12,
0x13, 0x0a, 0x0f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x4b, 0x45, 0x59, 0x53, 0x45,
0x4e, 0x44, 0x10, 0x14, 0x12, 0x13, 0x0a, 0x0f, 0x4d, 0x50, 0x50, 0x5f, 0x49, 0x4e, 0x5f, 0x50,
0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x15, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x49, 0x52,
0x43, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x10, 0x16, 0x2a, 0xae, 0x01,
0x0a, 0x0c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0d,
0x0a, 0x09, 0x49, 0x4e, 0x5f, 0x46, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x10, 0x00, 0x12, 0x0d, 0x0a,
0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e,
0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x02,
0x12, 0x13, 0x0a, 0x0f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x4e, 0x4f, 0x5f, 0x52, 0x4f,
0x55, 0x54, 0x45, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f,
0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x24, 0x0a, 0x20, 0x46, 0x41, 0x49, 0x4c, 0x45,
0x44, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x52, 0x52, 0x45, 0x43, 0x54, 0x5f, 0x50, 0x41, 0x59, 0x4d,
0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x54, 0x41, 0x49, 0x4c, 0x53, 0x10, 0x05, 0x12, 0x1f, 0x0a,
0x1b, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x49, 0x4e, 0x53, 0x55, 0x46, 0x46, 0x49, 0x43,
0x49, 0x45, 0x4e, 0x54, 0x5f, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x06, 0x2a, 0x3c,
0x0a, 0x18, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x48, 0x6f, 0x6c, 0x64, 0x46, 0x6f, 0x72,
0x77, 0x61, 0x72, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x45,
0x54, 0x54, 0x4c, 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x01,
0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x53, 0x55, 0x4d, 0x45, 0x10, 0x02, 0x2a, 0x35, 0x0a, 0x10,
0x43, 0x68, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x12, 0x0a, 0x0a, 0x06, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07,
0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x55, 0x54,
0x4f, 0x10, 0x02, 0x32, 0xf1, 0x0b, 0x0a, 0x06, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x40,
0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x32, 0x12,
0x1d, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x6e, 0x64,
0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e,
0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x30, 0x01,
0x12, 0x42, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74,
0x56, 0x32, 0x12, 0x1e, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x54,
0x72, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x79, 0x6d, 0x65,
0x6e, 0x74, 0x30, 0x01, 0x12, 0x4b, 0x0a, 0x10, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65,
0x52, 0x6f, 0x75, 0x74, 0x65, 0x46, 0x65, 0x65, 0x12, 0x1a, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65,
0x72, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63,
0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x46, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x51, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x52, 0x6f, 0x75, 0x74, 0x65,
0x12, 0x1d, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x6e,
0x64, 0x54, 0x6f, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
0x1e, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x6e, 0x64,
0x54, 0x6f, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
0x03, 0x88, 0x02, 0x01, 0x12, 0x42, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x52, 0x6f,
0x75, 0x74, 0x65, 0x56, 0x32, 0x12, 0x1d, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70,
0x63, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x48, 0x54, 0x4c,
0x43, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x12, 0x64, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x65,
0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12,
0x25, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x65,
0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72,
0x70, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43,
0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64,
0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x25, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70,
0x63, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72,
0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69,
0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x15, 0x58, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d,
0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x27, 0x2e,
0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x58, 0x49, 0x6d, 0x70, 0x6f, 0x72,
0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72,
0x70, 0x63, 0x2e, 0x58, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f,
0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x12, 0x70, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x2e, 0x72, 0x6f,
0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69,
0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72,
0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e,
0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x12, 0x70, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x2e,
0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x69, 0x73,
0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65,
0x72, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43,
0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f,
0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x22, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65,
0x72, 0x72, 0x70, 0x63, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62,
0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x72,
0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72,
0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x49, 0x0a, 0x0a, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12,
0x1c, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x75, 0x69, 0x6c,
0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e,
0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52,
0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x13,
0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x48, 0x74, 0x6c, 0x63, 0x45, 0x76, 0x65,
0x6e, 0x74, 0x73, 0x12, 0x25, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e,
0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x48, 0x74, 0x6c, 0x63, 0x45, 0x76, 0x65,
0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x72, 0x6f, 0x75,
0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x48, 0x74, 0x6c, 0x63, 0x45, 0x76, 0x65, 0x6e, 0x74,
0x30, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e,
0x74, 0x12, 0x1d, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65,
0x6e, 0x64, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x18, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x79,
0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x03, 0x88, 0x02, 0x01, 0x30,
0x01, 0x12, 0x4f, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e,
0x74, 0x12, 0x1e, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72,
0x61, 0x63, 0x6b, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x1a, 0x18, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61,
0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x03, 0x88, 0x02, 0x01,
0x30, 0x01, 0x12, 0x66, 0x0a, 0x0f, 0x48, 0x74, 0x6c, 0x63, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63,
0x65, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x27, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70,
0x63, 0x2e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x48, 0x74, 0x6c, 0x63, 0x49, 0x6e, 0x74,
0x65, 0x72, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x26,
0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x6f, 0x72, 0x77, 0x61,
0x72, 0x64, 0x48, 0x74, 0x6c, 0x63, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x65, 0x70, 0x74, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x28, 0x01, 0x30, 0x01, 0x12, 0x5b, 0x0a, 0x10, 0x55, 0x70,
0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22,
0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74,
0x65, 0x43, 0x68, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x23, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x55,
0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75,
0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x69, 0x6e, 0x67, 0x6e,
0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x6c, 0x6e, 0x64, 0x2f, 0x6c, 0x6e, 0x72, 0x70, 0x63,
0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x33,
}
var (
file_routerrpc_router_proto_rawDescOnce sync.Once
file_routerrpc_router_proto_rawDescData = file_routerrpc_router_proto_rawDesc
)
func file_routerrpc_router_proto_rawDescGZIP() []byte {
file_routerrpc_router_proto_rawDescOnce.Do(func() {
file_routerrpc_router_proto_rawDescData = protoimpl.X.CompressGZIP(file_routerrpc_router_proto_rawDescData)
})
return file_routerrpc_router_proto_rawDescData
}
var file_routerrpc_router_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
var file_routerrpc_router_proto_msgTypes = make([]protoimpl.MessageInfo, 38)
var file_routerrpc_router_proto_goTypes = []interface{}{
(FailureDetail)(0), // 0: routerrpc.FailureDetail
(PaymentState)(0), // 1: routerrpc.PaymentState
(ResolveHoldForwardAction)(0), // 2: routerrpc.ResolveHoldForwardAction
(ChanStatusAction)(0), // 3: routerrpc.ChanStatusAction
(HtlcEvent_EventType)(0), // 4: routerrpc.HtlcEvent.EventType
(*SendPaymentRequest)(nil), // 5: routerrpc.SendPaymentRequest
(*TrackPaymentRequest)(nil), // 6: routerrpc.TrackPaymentRequest
(*RouteFeeRequest)(nil), // 7: routerrpc.RouteFeeRequest
(*RouteFeeResponse)(nil), // 8: routerrpc.RouteFeeResponse
(*SendToRouteRequest)(nil), // 9: routerrpc.SendToRouteRequest
(*SendToRouteResponse)(nil), // 10: routerrpc.SendToRouteResponse
(*ResetMissionControlRequest)(nil), // 11: routerrpc.ResetMissionControlRequest
(*ResetMissionControlResponse)(nil), // 12: routerrpc.ResetMissionControlResponse
(*QueryMissionControlRequest)(nil), // 13: routerrpc.QueryMissionControlRequest
(*QueryMissionControlResponse)(nil), // 14: routerrpc.QueryMissionControlResponse
(*XImportMissionControlRequest)(nil), // 15: routerrpc.XImportMissionControlRequest
(*XImportMissionControlResponse)(nil), // 16: routerrpc.XImportMissionControlResponse
(*PairHistory)(nil), // 17: routerrpc.PairHistory
(*PairData)(nil), // 18: routerrpc.PairData
(*GetMissionControlConfigRequest)(nil), // 19: routerrpc.GetMissionControlConfigRequest
(*GetMissionControlConfigResponse)(nil), // 20: routerrpc.GetMissionControlConfigResponse
(*SetMissionControlConfigRequest)(nil), // 21: routerrpc.SetMissionControlConfigRequest
(*SetMissionControlConfigResponse)(nil), // 22: routerrpc.SetMissionControlConfigResponse
(*MissionControlConfig)(nil), // 23: routerrpc.MissionControlConfig
(*QueryProbabilityRequest)(nil), // 24: routerrpc.QueryProbabilityRequest
(*QueryProbabilityResponse)(nil), // 25: routerrpc.QueryProbabilityResponse
(*BuildRouteRequest)(nil), // 26: routerrpc.BuildRouteRequest
(*BuildRouteResponse)(nil), // 27: routerrpc.BuildRouteResponse
(*SubscribeHtlcEventsRequest)(nil), // 28: routerrpc.SubscribeHtlcEventsRequest
(*HtlcEvent)(nil), // 29: routerrpc.HtlcEvent
(*HtlcInfo)(nil), // 30: routerrpc.HtlcInfo
(*ForwardEvent)(nil), // 31: routerrpc.ForwardEvent
(*ForwardFailEvent)(nil), // 32: routerrpc.ForwardFailEvent
(*SettleEvent)(nil), // 33: routerrpc.SettleEvent
(*LinkFailEvent)(nil), // 34: routerrpc.LinkFailEvent
(*PaymentStatus)(nil), // 35: routerrpc.PaymentStatus
(*CircuitKey)(nil), // 36: routerrpc.CircuitKey
(*ForwardHtlcInterceptRequest)(nil), // 37: routerrpc.ForwardHtlcInterceptRequest
(*ForwardHtlcInterceptResponse)(nil), // 38: routerrpc.ForwardHtlcInterceptResponse
(*UpdateChanStatusRequest)(nil), // 39: routerrpc.UpdateChanStatusRequest
(*UpdateChanStatusResponse)(nil), // 40: routerrpc.UpdateChanStatusResponse
nil, // 41: routerrpc.SendPaymentRequest.DestCustomRecordsEntry
nil, // 42: routerrpc.ForwardHtlcInterceptRequest.CustomRecordsEntry
(*lnrpc.RouteHint)(nil), // 43: lnrpc.RouteHint
(lnrpc.FeatureBit)(0), // 44: lnrpc.FeatureBit
(*lnrpc.Route)(nil), // 45: lnrpc.Route
(*lnrpc.Failure)(nil), // 46: lnrpc.Failure
(lnrpc.Failure_FailureCode)(0), // 47: lnrpc.Failure.FailureCode
(*lnrpc.HTLCAttempt)(nil), // 48: lnrpc.HTLCAttempt
(*lnrpc.ChannelPoint)(nil), // 49: lnrpc.ChannelPoint
(*lnrpc.Payment)(nil), // 50: lnrpc.Payment
}
var file_routerrpc_router_proto_depIdxs = []int32{
43, // 0: routerrpc.SendPaymentRequest.route_hints:type_name -> lnrpc.RouteHint
41, // 1: routerrpc.SendPaymentRequest.dest_custom_records:type_name -> routerrpc.SendPaymentRequest.DestCustomRecordsEntry
44, // 2: routerrpc.SendPaymentRequest.dest_features:type_name -> lnrpc.FeatureBit
45, // 3: routerrpc.SendToRouteRequest.route:type_name -> lnrpc.Route
46, // 4: routerrpc.SendToRouteResponse.failure:type_name -> lnrpc.Failure
17, // 5: routerrpc.QueryMissionControlResponse.pairs:type_name -> routerrpc.PairHistory
17, // 6: routerrpc.XImportMissionControlRequest.pairs:type_name -> routerrpc.PairHistory
18, // 7: routerrpc.PairHistory.history:type_name -> routerrpc.PairData
23, // 8: routerrpc.GetMissionControlConfigResponse.config:type_name -> routerrpc.MissionControlConfig
23, // 9: routerrpc.SetMissionControlConfigRequest.config:type_name -> routerrpc.MissionControlConfig
18, // 10: routerrpc.QueryProbabilityResponse.history:type_name -> routerrpc.PairData
45, // 11: routerrpc.BuildRouteResponse.route:type_name -> lnrpc.Route
4, // 12: routerrpc.HtlcEvent.event_type:type_name -> routerrpc.HtlcEvent.EventType
31, // 13: routerrpc.HtlcEvent.forward_event:type_name -> routerrpc.ForwardEvent
32, // 14: routerrpc.HtlcEvent.forward_fail_event:type_name -> routerrpc.ForwardFailEvent
33, // 15: routerrpc.HtlcEvent.settle_event:type_name -> routerrpc.SettleEvent
34, // 16: routerrpc.HtlcEvent.link_fail_event:type_name -> routerrpc.LinkFailEvent
30, // 17: routerrpc.ForwardEvent.info:type_name -> routerrpc.HtlcInfo
30, // 18: routerrpc.LinkFailEvent.info:type_name -> routerrpc.HtlcInfo
47, // 19: routerrpc.LinkFailEvent.wire_failure:type_name -> lnrpc.Failure.FailureCode
0, // 20: routerrpc.LinkFailEvent.failure_detail:type_name -> routerrpc.FailureDetail
1, // 21: routerrpc.PaymentStatus.state:type_name -> routerrpc.PaymentState
48, // 22: routerrpc.PaymentStatus.htlcs:type_name -> lnrpc.HTLCAttempt
36, // 23: routerrpc.ForwardHtlcInterceptRequest.incoming_circuit_key:type_name -> routerrpc.CircuitKey
42, // 24: routerrpc.ForwardHtlcInterceptRequest.custom_records:type_name -> routerrpc.ForwardHtlcInterceptRequest.CustomRecordsEntry
36, // 25: routerrpc.ForwardHtlcInterceptResponse.incoming_circuit_key:type_name -> routerrpc.CircuitKey
2, // 26: routerrpc.ForwardHtlcInterceptResponse.action:type_name -> routerrpc.ResolveHoldForwardAction
49, // 27: routerrpc.UpdateChanStatusRequest.chan_point:type_name -> lnrpc.ChannelPoint
3, // 28: routerrpc.UpdateChanStatusRequest.action:type_name -> routerrpc.ChanStatusAction
5, // 29: routerrpc.Router.SendPaymentV2:input_type -> routerrpc.SendPaymentRequest
6, // 30: routerrpc.Router.TrackPaymentV2:input_type -> routerrpc.TrackPaymentRequest
7, // 31: routerrpc.Router.EstimateRouteFee:input_type -> routerrpc.RouteFeeRequest
9, // 32: routerrpc.Router.SendToRoute:input_type -> routerrpc.SendToRouteRequest
9, // 33: routerrpc.Router.SendToRouteV2:input_type -> routerrpc.SendToRouteRequest
11, // 34: routerrpc.Router.ResetMissionControl:input_type -> routerrpc.ResetMissionControlRequest
13, // 35: routerrpc.Router.QueryMissionControl:input_type -> routerrpc.QueryMissionControlRequest
15, // 36: routerrpc.Router.XImportMissionControl:input_type -> routerrpc.XImportMissionControlRequest
19, // 37: routerrpc.Router.GetMissionControlConfig:input_type -> routerrpc.GetMissionControlConfigRequest
21, // 38: routerrpc.Router.SetMissionControlConfig:input_type -> routerrpc.SetMissionControlConfigRequest
24, // 39: routerrpc.Router.QueryProbability:input_type -> routerrpc.QueryProbabilityRequest
26, // 40: routerrpc.Router.BuildRoute:input_type -> routerrpc.BuildRouteRequest
28, // 41: routerrpc.Router.SubscribeHtlcEvents:input_type -> routerrpc.SubscribeHtlcEventsRequest
5, // 42: routerrpc.Router.SendPayment:input_type -> routerrpc.SendPaymentRequest
6, // 43: routerrpc.Router.TrackPayment:input_type -> routerrpc.TrackPaymentRequest
38, // 44: routerrpc.Router.HtlcInterceptor:input_type -> routerrpc.ForwardHtlcInterceptResponse
39, // 45: routerrpc.Router.UpdateChanStatus:input_type -> routerrpc.UpdateChanStatusRequest
50, // 46: routerrpc.Router.SendPaymentV2:output_type -> lnrpc.Payment
50, // 47: routerrpc.Router.TrackPaymentV2:output_type -> lnrpc.Payment
8, // 48: routerrpc.Router.EstimateRouteFee:output_type -> routerrpc.RouteFeeResponse
10, // 49: routerrpc.Router.SendToRoute:output_type -> routerrpc.SendToRouteResponse
48, // 50: routerrpc.Router.SendToRouteV2:output_type -> lnrpc.HTLCAttempt
12, // 51: routerrpc.Router.ResetMissionControl:output_type -> routerrpc.ResetMissionControlResponse
14, // 52: routerrpc.Router.QueryMissionControl:output_type -> routerrpc.QueryMissionControlResponse
16, // 53: routerrpc.Router.XImportMissionControl:output_type -> routerrpc.XImportMissionControlResponse
20, // 54: routerrpc.Router.GetMissionControlConfig:output_type -> routerrpc.GetMissionControlConfigResponse
22, // 55: routerrpc.Router.SetMissionControlConfig:output_type -> routerrpc.SetMissionControlConfigResponse
25, // 56: routerrpc.Router.QueryProbability:output_type -> routerrpc.QueryProbabilityResponse
27, // 57: routerrpc.Router.BuildRoute:output_type -> routerrpc.BuildRouteResponse
29, // 58: routerrpc.Router.SubscribeHtlcEvents:output_type -> routerrpc.HtlcEvent
35, // 59: routerrpc.Router.SendPayment:output_type -> routerrpc.PaymentStatus
35, // 60: routerrpc.Router.TrackPayment:output_type -> routerrpc.PaymentStatus
37, // 61: routerrpc.Router.HtlcInterceptor:output_type -> routerrpc.ForwardHtlcInterceptRequest
40, // 62: routerrpc.Router.UpdateChanStatus:output_type -> routerrpc.UpdateChanStatusResponse
46, // [46:63] is the sub-list for method output_type
29, // [29:46] is the sub-list for method input_type
29, // [29:29] is the sub-list for extension type_name
29, // [29:29] is the sub-list for extension extendee
0, // [0:29] is the sub-list for field type_name
}
func init() { file_routerrpc_router_proto_init() }
func file_routerrpc_router_proto_init() {
if File_routerrpc_router_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_routerrpc_router_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SendPaymentRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TrackPaymentRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RouteFeeRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RouteFeeResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SendToRouteRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SendToRouteResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ResetMissionControlRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ResetMissionControlResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*QueryMissionControlRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*QueryMissionControlResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*XImportMissionControlRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*XImportMissionControlResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PairHistory); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PairData); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetMissionControlConfigRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetMissionControlConfigResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SetMissionControlConfigRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SetMissionControlConfigResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MissionControlConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*QueryProbabilityRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*QueryProbabilityResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildRouteRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildRouteResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SubscribeHtlcEventsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*HtlcEvent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*HtlcInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ForwardEvent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ForwardFailEvent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SettleEvent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LinkFailEvent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PaymentStatus); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CircuitKey); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ForwardHtlcInterceptRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ForwardHtlcInterceptResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpdateChanStatusRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_routerrpc_router_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpdateChanStatusResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_routerrpc_router_proto_msgTypes[24].OneofWrappers = []interface{}{
(*HtlcEvent_ForwardEvent)(nil),
(*HtlcEvent_ForwardFailEvent)(nil),
(*HtlcEvent_SettleEvent)(nil),
(*HtlcEvent_LinkFailEvent)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_routerrpc_router_proto_rawDesc,
NumEnums: 5,
NumMessages: 38,
NumExtensions: 0,
NumServices: 1,
},
GoTypes: file_routerrpc_router_proto_goTypes,
DependencyIndexes: file_routerrpc_router_proto_depIdxs,
EnumInfos: file_routerrpc_router_proto_enumTypes,
MessageInfos: file_routerrpc_router_proto_msgTypes,
}.Build()
File_routerrpc_router_proto = out.File
file_routerrpc_router_proto_rawDesc = nil
file_routerrpc_router_proto_goTypes = nil
file_routerrpc_router_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
// RouterClient is the client API for Router service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type RouterClient interface {
//
//SendPaymentV2 attempts to route a payment described by the passed
//PaymentRequest to the final destination. The call returns a stream of
//payment updates.
SendPaymentV2(ctx context.Context, in *SendPaymentRequest, opts ...grpc.CallOption) (Router_SendPaymentV2Client, error)
//
//TrackPaymentV2 returns an update stream for the payment identified by the
//payment hash.
TrackPaymentV2(ctx context.Context, in *TrackPaymentRequest, opts ...grpc.CallOption) (Router_TrackPaymentV2Client, error)
//
//EstimateRouteFee allows callers to obtain a lower bound w.r.t how much it
//may cost to send an HTLC to the target end destination.
EstimateRouteFee(ctx context.Context, in *RouteFeeRequest, opts ...grpc.CallOption) (*RouteFeeResponse, error)
// Deprecated: Do not use.
//
//Deprecated, use SendToRouteV2. SendToRoute attempts to make a payment via
//the specified route. This method differs from SendPayment in that it
//allows users to specify a full route manually. This can be used for
//things like rebalancing, and atomic swaps. It differs from the newer
//SendToRouteV2 in that it doesn't return the full HTLC information.
SendToRoute(ctx context.Context, in *SendToRouteRequest, opts ...grpc.CallOption) (*SendToRouteResponse, error)
//
2020-06-03 18:36:08 +03:00
//SendToRouteV2 attempts to make a payment via the specified route. This
//method differs from SendPayment in that it allows users to specify a full
//route manually. This can be used for things like rebalancing, and atomic
//swaps.
SendToRouteV2(ctx context.Context, in *SendToRouteRequest, opts ...grpc.CallOption) (*lnrpc.HTLCAttempt, error)
//
//ResetMissionControl clears all mission control state and starts with a clean
//slate.
ResetMissionControl(ctx context.Context, in *ResetMissionControlRequest, opts ...grpc.CallOption) (*ResetMissionControlResponse, error)
//
//QueryMissionControl exposes the internal mission control state to callers.
//It is a development feature.
QueryMissionControl(ctx context.Context, in *QueryMissionControlRequest, opts ...grpc.CallOption) (*QueryMissionControlResponse, error)
//
2021-03-18 11:46:46 +03:00
//XImportMissionControl is an experimental API that imports the state provided
//to the internal mission control's state, using all results which are more
//recent than our existing values. These values will only be imported
//in-memory, and will not be persisted across restarts.
XImportMissionControl(ctx context.Context, in *XImportMissionControlRequest, opts ...grpc.CallOption) (*XImportMissionControlResponse, error)
//
//GetMissionControlConfig returns mission control's current config.
GetMissionControlConfig(ctx context.Context, in *GetMissionControlConfigRequest, opts ...grpc.CallOption) (*GetMissionControlConfigResponse, error)
//
//SetMissionControlConfig will set mission control's config, if the config
//provided is valid.
SetMissionControlConfig(ctx context.Context, in *SetMissionControlConfigRequest, opts ...grpc.CallOption) (*SetMissionControlConfigResponse, error)
//
//QueryProbability returns the current success probability estimate for a
//given node pair and amount.
QueryProbability(ctx context.Context, in *QueryProbabilityRequest, opts ...grpc.CallOption) (*QueryProbabilityResponse, error)
//
//BuildRoute builds a fully specified route based on a list of hop public
//keys. It retrieves the relevant channel policies from the graph in order to
//calculate the correct fees and time locks.
BuildRoute(ctx context.Context, in *BuildRouteRequest, opts ...grpc.CallOption) (*BuildRouteResponse, error)
//
//SubscribeHtlcEvents creates a uni-directional stream from the server to
//the client which delivers a stream of htlc events.
SubscribeHtlcEvents(ctx context.Context, in *SubscribeHtlcEventsRequest, opts ...grpc.CallOption) (Router_SubscribeHtlcEventsClient, error)
// Deprecated: Do not use.
//
//Deprecated, use SendPaymentV2. SendPayment attempts to route a payment
//described by the passed PaymentRequest to the final destination. The call
//returns a stream of payment status updates.
SendPayment(ctx context.Context, in *SendPaymentRequest, opts ...grpc.CallOption) (Router_SendPaymentClient, error)
// Deprecated: Do not use.
//
//Deprecated, use TrackPaymentV2. TrackPayment returns an update stream for
//the payment identified by the payment hash.
TrackPayment(ctx context.Context, in *TrackPaymentRequest, opts ...grpc.CallOption) (Router_TrackPaymentClient, error)
//*
//HtlcInterceptor dispatches a bi-directional streaming RPC in which
//Forwarded HTLC requests are sent to the client and the client responds with
//a boolean that tells LND if this htlc should be intercepted.
//In case of interception, the htlc can be either settled, cancelled or
//resumed later by using the ResolveHoldForward endpoint.
HtlcInterceptor(ctx context.Context, opts ...grpc.CallOption) (Router_HtlcInterceptorClient, error)
//
//UpdateChanStatus attempts to manually set the state of a channel
//(enabled, disabled, or auto). A manual "disable" request will cause the
//channel to stay disabled until a subsequent manual request of either
//"enable" or "auto".
UpdateChanStatus(ctx context.Context, in *UpdateChanStatusRequest, opts ...grpc.CallOption) (*UpdateChanStatusResponse, error)
}
type routerClient struct {
cc grpc.ClientConnInterface
}
func NewRouterClient(cc grpc.ClientConnInterface) RouterClient {
return &routerClient{cc}
}
func (c *routerClient) SendPaymentV2(ctx context.Context, in *SendPaymentRequest, opts ...grpc.CallOption) (Router_SendPaymentV2Client, error) {
stream, err := c.cc.NewStream(ctx, &_Router_serviceDesc.Streams[0], "/routerrpc.Router/SendPaymentV2", opts...)
if err != nil {
return nil, err
}
x := &routerSendPaymentV2Client{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 Router_SendPaymentV2Client interface {
Recv() (*lnrpc.Payment, error)
grpc.ClientStream
}
type routerSendPaymentV2Client struct {
grpc.ClientStream
}
func (x *routerSendPaymentV2Client) Recv() (*lnrpc.Payment, error) {
m := new(lnrpc.Payment)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
func (c *routerClient) TrackPaymentV2(ctx context.Context, in *TrackPaymentRequest, opts ...grpc.CallOption) (Router_TrackPaymentV2Client, error) {
stream, err := c.cc.NewStream(ctx, &_Router_serviceDesc.Streams[1], "/routerrpc.Router/TrackPaymentV2", opts...)
if err != nil {
return nil, err
}
x := &routerTrackPaymentV2Client{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 Router_TrackPaymentV2Client interface {
Recv() (*lnrpc.Payment, error)
grpc.ClientStream
}
type routerTrackPaymentV2Client struct {
grpc.ClientStream
}
func (x *routerTrackPaymentV2Client) Recv() (*lnrpc.Payment, error) {
m := new(lnrpc.Payment)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
func (c *routerClient) EstimateRouteFee(ctx context.Context, in *RouteFeeRequest, opts ...grpc.CallOption) (*RouteFeeResponse, error) {
out := new(RouteFeeResponse)
err := c.cc.Invoke(ctx, "/routerrpc.Router/EstimateRouteFee", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// Deprecated: Do not use.
func (c *routerClient) SendToRoute(ctx context.Context, in *SendToRouteRequest, opts ...grpc.CallOption) (*SendToRouteResponse, error) {
out := new(SendToRouteResponse)
err := c.cc.Invoke(ctx, "/routerrpc.Router/SendToRoute", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *routerClient) SendToRouteV2(ctx context.Context, in *SendToRouteRequest, opts ...grpc.CallOption) (*lnrpc.HTLCAttempt, error) {
out := new(lnrpc.HTLCAttempt)
err := c.cc.Invoke(ctx, "/routerrpc.Router/SendToRouteV2", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *routerClient) ResetMissionControl(ctx context.Context, in *ResetMissionControlRequest, opts ...grpc.CallOption) (*ResetMissionControlResponse, error) {
out := new(ResetMissionControlResponse)
err := c.cc.Invoke(ctx, "/routerrpc.Router/ResetMissionControl", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *routerClient) QueryMissionControl(ctx context.Context, in *QueryMissionControlRequest, opts ...grpc.CallOption) (*QueryMissionControlResponse, error) {
out := new(QueryMissionControlResponse)
err := c.cc.Invoke(ctx, "/routerrpc.Router/QueryMissionControl", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
2021-03-18 11:46:46 +03:00
func (c *routerClient) XImportMissionControl(ctx context.Context, in *XImportMissionControlRequest, opts ...grpc.CallOption) (*XImportMissionControlResponse, error) {
out := new(XImportMissionControlResponse)
err := c.cc.Invoke(ctx, "/routerrpc.Router/XImportMissionControl", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *routerClient) GetMissionControlConfig(ctx context.Context, in *GetMissionControlConfigRequest, opts ...grpc.CallOption) (*GetMissionControlConfigResponse, error) {
out := new(GetMissionControlConfigResponse)
err := c.cc.Invoke(ctx, "/routerrpc.Router/GetMissionControlConfig", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *routerClient) SetMissionControlConfig(ctx context.Context, in *SetMissionControlConfigRequest, opts ...grpc.CallOption) (*SetMissionControlConfigResponse, error) {
out := new(SetMissionControlConfigResponse)
err := c.cc.Invoke(ctx, "/routerrpc.Router/SetMissionControlConfig", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *routerClient) QueryProbability(ctx context.Context, in *QueryProbabilityRequest, opts ...grpc.CallOption) (*QueryProbabilityResponse, error) {
out := new(QueryProbabilityResponse)
err := c.cc.Invoke(ctx, "/routerrpc.Router/QueryProbability", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *routerClient) BuildRoute(ctx context.Context, in *BuildRouteRequest, opts ...grpc.CallOption) (*BuildRouteResponse, error) {
out := new(BuildRouteResponse)
err := c.cc.Invoke(ctx, "/routerrpc.Router/BuildRoute", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *routerClient) SubscribeHtlcEvents(ctx context.Context, in *SubscribeHtlcEventsRequest, opts ...grpc.CallOption) (Router_SubscribeHtlcEventsClient, error) {
stream, err := c.cc.NewStream(ctx, &_Router_serviceDesc.Streams[2], "/routerrpc.Router/SubscribeHtlcEvents", opts...)
if err != nil {
return nil, err
}
x := &routerSubscribeHtlcEventsClient{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 Router_SubscribeHtlcEventsClient interface {
Recv() (*HtlcEvent, error)
grpc.ClientStream
}
type routerSubscribeHtlcEventsClient struct {
grpc.ClientStream
}
func (x *routerSubscribeHtlcEventsClient) Recv() (*HtlcEvent, error) {
m := new(HtlcEvent)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
// Deprecated: Do not use.
func (c *routerClient) SendPayment(ctx context.Context, in *SendPaymentRequest, opts ...grpc.CallOption) (Router_SendPaymentClient, error) {
stream, err := c.cc.NewStream(ctx, &_Router_serviceDesc.Streams[3], "/routerrpc.Router/SendPayment", opts...)
if err != nil {
return nil, err
}
x := &routerSendPaymentClient{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 Router_SendPaymentClient interface {
Recv() (*PaymentStatus, error)
grpc.ClientStream
}
type routerSendPaymentClient struct {
grpc.ClientStream
}
func (x *routerSendPaymentClient) Recv() (*PaymentStatus, error) {
m := new(PaymentStatus)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
// Deprecated: Do not use.
func (c *routerClient) TrackPayment(ctx context.Context, in *TrackPaymentRequest, opts ...grpc.CallOption) (Router_TrackPaymentClient, error) {
stream, err := c.cc.NewStream(ctx, &_Router_serviceDesc.Streams[4], "/routerrpc.Router/TrackPayment", opts...)
if err != nil {
return nil, err
}
x := &routerTrackPaymentClient{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 Router_TrackPaymentClient interface {
Recv() (*PaymentStatus, error)
grpc.ClientStream
}
type routerTrackPaymentClient struct {
grpc.ClientStream
}
func (x *routerTrackPaymentClient) Recv() (*PaymentStatus, error) {
m := new(PaymentStatus)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
func (c *routerClient) HtlcInterceptor(ctx context.Context, opts ...grpc.CallOption) (Router_HtlcInterceptorClient, error) {
stream, err := c.cc.NewStream(ctx, &_Router_serviceDesc.Streams[5], "/routerrpc.Router/HtlcInterceptor", opts...)
if err != nil {
return nil, err
}
x := &routerHtlcInterceptorClient{stream}
return x, nil
}
type Router_HtlcInterceptorClient interface {
Send(*ForwardHtlcInterceptResponse) error
Recv() (*ForwardHtlcInterceptRequest, error)
grpc.ClientStream
}
type routerHtlcInterceptorClient struct {
grpc.ClientStream
}
func (x *routerHtlcInterceptorClient) Send(m *ForwardHtlcInterceptResponse) error {
return x.ClientStream.SendMsg(m)
}
func (x *routerHtlcInterceptorClient) Recv() (*ForwardHtlcInterceptRequest, error) {
m := new(ForwardHtlcInterceptRequest)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
func (c *routerClient) UpdateChanStatus(ctx context.Context, in *UpdateChanStatusRequest, opts ...grpc.CallOption) (*UpdateChanStatusResponse, error) {
out := new(UpdateChanStatusResponse)
err := c.cc.Invoke(ctx, "/routerrpc.Router/UpdateChanStatus", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// RouterServer is the server API for Router service.
type RouterServer interface {
//
//SendPaymentV2 attempts to route a payment described by the passed
//PaymentRequest to the final destination. The call returns a stream of
//payment updates.
SendPaymentV2(*SendPaymentRequest, Router_SendPaymentV2Server) error
//
//TrackPaymentV2 returns an update stream for the payment identified by the
//payment hash.
TrackPaymentV2(*TrackPaymentRequest, Router_TrackPaymentV2Server) error
//
//EstimateRouteFee allows callers to obtain a lower bound w.r.t how much it
//may cost to send an HTLC to the target end destination.
EstimateRouteFee(context.Context, *RouteFeeRequest) (*RouteFeeResponse, error)
// Deprecated: Do not use.
//
//Deprecated, use SendToRouteV2. SendToRoute attempts to make a payment via
//the specified route. This method differs from SendPayment in that it
//allows users to specify a full route manually. This can be used for
//things like rebalancing, and atomic swaps. It differs from the newer
//SendToRouteV2 in that it doesn't return the full HTLC information.
SendToRoute(context.Context, *SendToRouteRequest) (*SendToRouteResponse, error)
//
2020-06-03 18:36:08 +03:00
//SendToRouteV2 attempts to make a payment via the specified route. This
//method differs from SendPayment in that it allows users to specify a full
//route manually. This can be used for things like rebalancing, and atomic
//swaps.
SendToRouteV2(context.Context, *SendToRouteRequest) (*lnrpc.HTLCAttempt, error)
//
//ResetMissionControl clears all mission control state and starts with a clean
//slate.
ResetMissionControl(context.Context, *ResetMissionControlRequest) (*ResetMissionControlResponse, error)
//
//QueryMissionControl exposes the internal mission control state to callers.
//It is a development feature.
QueryMissionControl(context.Context, *QueryMissionControlRequest) (*QueryMissionControlResponse, error)
//
2021-03-18 11:46:46 +03:00
//XImportMissionControl is an experimental API that imports the state provided
//to the internal mission control's state, using all results which are more
//recent than our existing values. These values will only be imported
//in-memory, and will not be persisted across restarts.
XImportMissionControl(context.Context, *XImportMissionControlRequest) (*XImportMissionControlResponse, error)
//
//GetMissionControlConfig returns mission control's current config.
GetMissionControlConfig(context.Context, *GetMissionControlConfigRequest) (*GetMissionControlConfigResponse, error)
//
//SetMissionControlConfig will set mission control's config, if the config
//provided is valid.
SetMissionControlConfig(context.Context, *SetMissionControlConfigRequest) (*SetMissionControlConfigResponse, error)
//
//QueryProbability returns the current success probability estimate for a
//given node pair and amount.
QueryProbability(context.Context, *QueryProbabilityRequest) (*QueryProbabilityResponse, error)
//
//BuildRoute builds a fully specified route based on a list of hop public
//keys. It retrieves the relevant channel policies from the graph in order to
//calculate the correct fees and time locks.
BuildRoute(context.Context, *BuildRouteRequest) (*BuildRouteResponse, error)
//
//SubscribeHtlcEvents creates a uni-directional stream from the server to
//the client which delivers a stream of htlc events.
SubscribeHtlcEvents(*SubscribeHtlcEventsRequest, Router_SubscribeHtlcEventsServer) error
// Deprecated: Do not use.
//
//Deprecated, use SendPaymentV2. SendPayment attempts to route a payment
//described by the passed PaymentRequest to the final destination. The call
//returns a stream of payment status updates.
SendPayment(*SendPaymentRequest, Router_SendPaymentServer) error
// Deprecated: Do not use.
//
//Deprecated, use TrackPaymentV2. TrackPayment returns an update stream for
//the payment identified by the payment hash.
TrackPayment(*TrackPaymentRequest, Router_TrackPaymentServer) error
//*
//HtlcInterceptor dispatches a bi-directional streaming RPC in which
//Forwarded HTLC requests are sent to the client and the client responds with
//a boolean that tells LND if this htlc should be intercepted.
//In case of interception, the htlc can be either settled, cancelled or
//resumed later by using the ResolveHoldForward endpoint.
HtlcInterceptor(Router_HtlcInterceptorServer) error
//
//UpdateChanStatus attempts to manually set the state of a channel
//(enabled, disabled, or auto). A manual "disable" request will cause the
//channel to stay disabled until a subsequent manual request of either
//"enable" or "auto".
UpdateChanStatus(context.Context, *UpdateChanStatusRequest) (*UpdateChanStatusResponse, error)
}
// UnimplementedRouterServer can be embedded to have forward compatible implementations.
type UnimplementedRouterServer struct {
}
func (*UnimplementedRouterServer) SendPaymentV2(*SendPaymentRequest, Router_SendPaymentV2Server) error {
return status.Errorf(codes.Unimplemented, "method SendPaymentV2 not implemented")
}
func (*UnimplementedRouterServer) TrackPaymentV2(*TrackPaymentRequest, Router_TrackPaymentV2Server) error {
return status.Errorf(codes.Unimplemented, "method TrackPaymentV2 not implemented")
}
func (*UnimplementedRouterServer) EstimateRouteFee(context.Context, *RouteFeeRequest) (*RouteFeeResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method EstimateRouteFee not implemented")
}
func (*UnimplementedRouterServer) SendToRoute(context.Context, *SendToRouteRequest) (*SendToRouteResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method SendToRoute not implemented")
}
func (*UnimplementedRouterServer) SendToRouteV2(context.Context, *SendToRouteRequest) (*lnrpc.HTLCAttempt, error) {
return nil, status.Errorf(codes.Unimplemented, "method SendToRouteV2 not implemented")
}
func (*UnimplementedRouterServer) ResetMissionControl(context.Context, *ResetMissionControlRequest) (*ResetMissionControlResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ResetMissionControl not implemented")
}
func (*UnimplementedRouterServer) QueryMissionControl(context.Context, *QueryMissionControlRequest) (*QueryMissionControlResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method QueryMissionControl not implemented")
}
func (*UnimplementedRouterServer) XImportMissionControl(context.Context, *XImportMissionControlRequest) (*XImportMissionControlResponse, error) {
2021-03-18 11:46:46 +03:00
return nil, status.Errorf(codes.Unimplemented, "method XImportMissionControl not implemented")
}
func (*UnimplementedRouterServer) GetMissionControlConfig(context.Context, *GetMissionControlConfigRequest) (*GetMissionControlConfigResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetMissionControlConfig not implemented")
}
func (*UnimplementedRouterServer) SetMissionControlConfig(context.Context, *SetMissionControlConfigRequest) (*SetMissionControlConfigResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method SetMissionControlConfig not implemented")
}
func (*UnimplementedRouterServer) QueryProbability(context.Context, *QueryProbabilityRequest) (*QueryProbabilityResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method QueryProbability not implemented")
}
func (*UnimplementedRouterServer) BuildRoute(context.Context, *BuildRouteRequest) (*BuildRouteResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method BuildRoute not implemented")
}
func (*UnimplementedRouterServer) SubscribeHtlcEvents(*SubscribeHtlcEventsRequest, Router_SubscribeHtlcEventsServer) error {
return status.Errorf(codes.Unimplemented, "method SubscribeHtlcEvents not implemented")
}
func (*UnimplementedRouterServer) SendPayment(*SendPaymentRequest, Router_SendPaymentServer) error {
return status.Errorf(codes.Unimplemented, "method SendPayment not implemented")
}
func (*UnimplementedRouterServer) TrackPayment(*TrackPaymentRequest, Router_TrackPaymentServer) error {
return status.Errorf(codes.Unimplemented, "method TrackPayment not implemented")
}
func (*UnimplementedRouterServer) HtlcInterceptor(Router_HtlcInterceptorServer) error {
return status.Errorf(codes.Unimplemented, "method HtlcInterceptor not implemented")
}
func (*UnimplementedRouterServer) UpdateChanStatus(context.Context, *UpdateChanStatusRequest) (*UpdateChanStatusResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdateChanStatus not implemented")
}
func RegisterRouterServer(s *grpc.Server, srv RouterServer) {
s.RegisterService(&_Router_serviceDesc, srv)
}
func _Router_SendPaymentV2_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(SendPaymentRequest)
if err := stream.RecvMsg(m); err != nil {
return err
}
return srv.(RouterServer).SendPaymentV2(m, &routerSendPaymentV2Server{stream})
}
type Router_SendPaymentV2Server interface {
Send(*lnrpc.Payment) error
grpc.ServerStream
}
type routerSendPaymentV2Server struct {
grpc.ServerStream
}
func (x *routerSendPaymentV2Server) Send(m *lnrpc.Payment) error {
return x.ServerStream.SendMsg(m)
}
func _Router_TrackPaymentV2_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(TrackPaymentRequest)
if err := stream.RecvMsg(m); err != nil {
return err
}
return srv.(RouterServer).TrackPaymentV2(m, &routerTrackPaymentV2Server{stream})
}
type Router_TrackPaymentV2Server interface {
Send(*lnrpc.Payment) error
grpc.ServerStream
}
type routerTrackPaymentV2Server struct {
grpc.ServerStream
}
func (x *routerTrackPaymentV2Server) Send(m *lnrpc.Payment) error {
return x.ServerStream.SendMsg(m)
}
func _Router_EstimateRouteFee_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(RouteFeeRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RouterServer).EstimateRouteFee(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/routerrpc.Router/EstimateRouteFee",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RouterServer).EstimateRouteFee(ctx, req.(*RouteFeeRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Router_SendToRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(SendToRouteRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RouterServer).SendToRoute(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/routerrpc.Router/SendToRoute",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RouterServer).SendToRoute(ctx, req.(*SendToRouteRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Router_SendToRouteV2_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(SendToRouteRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RouterServer).SendToRouteV2(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/routerrpc.Router/SendToRouteV2",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RouterServer).SendToRouteV2(ctx, req.(*SendToRouteRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Router_ResetMissionControl_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ResetMissionControlRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RouterServer).ResetMissionControl(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/routerrpc.Router/ResetMissionControl",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RouterServer).ResetMissionControl(ctx, req.(*ResetMissionControlRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Router_QueryMissionControl_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(QueryMissionControlRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RouterServer).QueryMissionControl(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/routerrpc.Router/QueryMissionControl",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RouterServer).QueryMissionControl(ctx, req.(*QueryMissionControlRequest))
}
return interceptor(ctx, in, info, handler)
}
2021-03-18 11:46:46 +03:00
func _Router_XImportMissionControl_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(XImportMissionControlRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RouterServer).XImportMissionControl(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/routerrpc.Router/XImportMissionControl",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RouterServer).XImportMissionControl(ctx, req.(*XImportMissionControlRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Router_GetMissionControlConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetMissionControlConfigRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RouterServer).GetMissionControlConfig(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/routerrpc.Router/GetMissionControlConfig",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RouterServer).GetMissionControlConfig(ctx, req.(*GetMissionControlConfigRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Router_SetMissionControlConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(SetMissionControlConfigRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RouterServer).SetMissionControlConfig(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/routerrpc.Router/SetMissionControlConfig",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RouterServer).SetMissionControlConfig(ctx, req.(*SetMissionControlConfigRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Router_QueryProbability_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(QueryProbabilityRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RouterServer).QueryProbability(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/routerrpc.Router/QueryProbability",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RouterServer).QueryProbability(ctx, req.(*QueryProbabilityRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Router_BuildRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(BuildRouteRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RouterServer).BuildRoute(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/routerrpc.Router/BuildRoute",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RouterServer).BuildRoute(ctx, req.(*BuildRouteRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Router_SubscribeHtlcEvents_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(SubscribeHtlcEventsRequest)
if err := stream.RecvMsg(m); err != nil {
return err
}
return srv.(RouterServer).SubscribeHtlcEvents(m, &routerSubscribeHtlcEventsServer{stream})
}
type Router_SubscribeHtlcEventsServer interface {
Send(*HtlcEvent) error
grpc.ServerStream
}
type routerSubscribeHtlcEventsServer struct {
grpc.ServerStream
}
func (x *routerSubscribeHtlcEventsServer) Send(m *HtlcEvent) error {
return x.ServerStream.SendMsg(m)
}
func _Router_SendPayment_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(SendPaymentRequest)
if err := stream.RecvMsg(m); err != nil {
return err
}
return srv.(RouterServer).SendPayment(m, &routerSendPaymentServer{stream})
}
type Router_SendPaymentServer interface {
Send(*PaymentStatus) error
grpc.ServerStream
}
type routerSendPaymentServer struct {
grpc.ServerStream
}
func (x *routerSendPaymentServer) Send(m *PaymentStatus) error {
return x.ServerStream.SendMsg(m)
}
func _Router_TrackPayment_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(TrackPaymentRequest)
if err := stream.RecvMsg(m); err != nil {
return err
}
return srv.(RouterServer).TrackPayment(m, &routerTrackPaymentServer{stream})
}
type Router_TrackPaymentServer interface {
Send(*PaymentStatus) error
grpc.ServerStream
}
type routerTrackPaymentServer struct {
grpc.ServerStream
}
func (x *routerTrackPaymentServer) Send(m *PaymentStatus) error {
return x.ServerStream.SendMsg(m)
}
func _Router_HtlcInterceptor_Handler(srv interface{}, stream grpc.ServerStream) error {
return srv.(RouterServer).HtlcInterceptor(&routerHtlcInterceptorServer{stream})
}
type Router_HtlcInterceptorServer interface {
Send(*ForwardHtlcInterceptRequest) error
Recv() (*ForwardHtlcInterceptResponse, error)
grpc.ServerStream
}
type routerHtlcInterceptorServer struct {
grpc.ServerStream
}
func (x *routerHtlcInterceptorServer) Send(m *ForwardHtlcInterceptRequest) error {
return x.ServerStream.SendMsg(m)
}
func (x *routerHtlcInterceptorServer) Recv() (*ForwardHtlcInterceptResponse, error) {
m := new(ForwardHtlcInterceptResponse)
if err := x.ServerStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
func _Router_UpdateChanStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(UpdateChanStatusRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RouterServer).UpdateChanStatus(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/routerrpc.Router/UpdateChanStatus",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RouterServer).UpdateChanStatus(ctx, req.(*UpdateChanStatusRequest))
}
return interceptor(ctx, in, info, handler)
}
var _Router_serviceDesc = grpc.ServiceDesc{
ServiceName: "routerrpc.Router",
HandlerType: (*RouterServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "EstimateRouteFee",
Handler: _Router_EstimateRouteFee_Handler,
},
{
MethodName: "SendToRoute",
Handler: _Router_SendToRoute_Handler,
},
{
MethodName: "SendToRouteV2",
Handler: _Router_SendToRouteV2_Handler,
},
{
MethodName: "ResetMissionControl",
Handler: _Router_ResetMissionControl_Handler,
},
{
MethodName: "QueryMissionControl",
Handler: _Router_QueryMissionControl_Handler,
},
2021-03-18 11:46:46 +03:00
{
MethodName: "XImportMissionControl",
Handler: _Router_XImportMissionControl_Handler,
},
{
MethodName: "GetMissionControlConfig",
Handler: _Router_GetMissionControlConfig_Handler,
},
{
MethodName: "SetMissionControlConfig",
Handler: _Router_SetMissionControlConfig_Handler,
},
{
MethodName: "QueryProbability",
Handler: _Router_QueryProbability_Handler,
},
{
MethodName: "BuildRoute",
Handler: _Router_BuildRoute_Handler,
},
{
MethodName: "UpdateChanStatus",
Handler: _Router_UpdateChanStatus_Handler,
},
},
Streams: []grpc.StreamDesc{
{
StreamName: "SendPaymentV2",
Handler: _Router_SendPaymentV2_Handler,
ServerStreams: true,
},
{
StreamName: "TrackPaymentV2",
Handler: _Router_TrackPaymentV2_Handler,
ServerStreams: true,
},
{
StreamName: "SubscribeHtlcEvents",
Handler: _Router_SubscribeHtlcEvents_Handler,
ServerStreams: true,
},
{
StreamName: "SendPayment",
Handler: _Router_SendPayment_Handler,
ServerStreams: true,
},
{
StreamName: "TrackPayment",
Handler: _Router_TrackPayment_Handler,
ServerStreams: true,
},
{
StreamName: "HtlcInterceptor",
Handler: _Router_HtlcInterceptor_Handler,
ServerStreams: true,
ClientStreams: true,
},
},
Metadata: "routerrpc/router.proto",
}