faraday/frdrpc/faraday.pb.go
bitromortac 6a1710af94 frdrpc: add ForwardingAbility RPC schema
Add the ForwardingAbility RPC that reports, for every (peerIn, peerOut)
pair, the raw forwarding facts over a window: effective uptime in seconds
and forwarded volume in satoshis. The response is a sparse, packed encoding
(deduplicated peer keys plus packed pair indices) carrying only pairs with a
non-zero signal; an absent pair means zero over the window. A single
liquidity_floor_sat request parameter sets the directional liquidity a pair
must hold to count as economically forwardable.
2026-06-09 13:15:48 +02:00

3326 lines
125 KiB
Go

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.34.2
// protoc v3.21.12
// source: faraday.proto
package frdrpc
import (
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)
)
// Granularity describes the aggregation level at which the Bitcoin price should
// be queried. Note that setting lower levels of granularity may require more
// queries to the fiat backend.
type Granularity int32
const (
Granularity_UNKNOWN_GRANULARITY Granularity = 0
Granularity_MINUTE Granularity = 1
Granularity_FIVE_MINUTES Granularity = 2
Granularity_FIFTEEN_MINUTES Granularity = 3
Granularity_THIRTY_MINUTES Granularity = 4
Granularity_HOUR Granularity = 5
Granularity_SIX_HOURS Granularity = 6
Granularity_TWELVE_HOURS Granularity = 7
Granularity_DAY Granularity = 8
)
// Enum value maps for Granularity.
var (
Granularity_name = map[int32]string{
0: "UNKNOWN_GRANULARITY",
1: "MINUTE",
2: "FIVE_MINUTES",
3: "FIFTEEN_MINUTES",
4: "THIRTY_MINUTES",
5: "HOUR",
6: "SIX_HOURS",
7: "TWELVE_HOURS",
8: "DAY",
}
Granularity_value = map[string]int32{
"UNKNOWN_GRANULARITY": 0,
"MINUTE": 1,
"FIVE_MINUTES": 2,
"FIFTEEN_MINUTES": 3,
"THIRTY_MINUTES": 4,
"HOUR": 5,
"SIX_HOURS": 6,
"TWELVE_HOURS": 7,
"DAY": 8,
}
)
func (x Granularity) Enum() *Granularity {
p := new(Granularity)
*p = x
return p
}
func (x Granularity) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Granularity) Descriptor() protoreflect.EnumDescriptor {
return file_faraday_proto_enumTypes[0].Descriptor()
}
func (Granularity) Type() protoreflect.EnumType {
return &file_faraday_proto_enumTypes[0]
}
func (x Granularity) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Granularity.Descriptor instead.
func (Granularity) EnumDescriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{0}
}
// FiatBackend is the API endpoint to be used for any fiat related queries.
type FiatBackend int32
const (
FiatBackend_UNKNOWN_FIATBACKEND FiatBackend = 0
// Use the CoinCap API for fiat price information.
// This API is reached through the following URL:
// https://api.coincap.io/v2/assets/bitcoin/history
FiatBackend_COINCAP FiatBackend = 1
// Use the CoinDesk API for fiat price information.
// This API is reached through the following URL:
// https://api.coindesk.com/v1/bpi/historical/close.json
FiatBackend_COINDESK FiatBackend = 2
// Use custom price data provided in a CSV file for fiat price information.
FiatBackend_CUSTOM FiatBackend = 3
// Use the CoinGecko API for fiat price information.
// This API is reached through the following URL:
// https://api.coingecko.com/api/v3/coins/bitcoin/market_chart
FiatBackend_COINGECKO FiatBackend = 4
// Use the Bitfinex API for fiat price information.
// This API is reached through the following URL:
// https://api-pub.bitfinex.com/v2/candles/trade:1h:tBTCUSD/hist
FiatBackend_BITFINEX FiatBackend = 5
)
// Enum value maps for FiatBackend.
var (
FiatBackend_name = map[int32]string{
0: "UNKNOWN_FIATBACKEND",
1: "COINCAP",
2: "COINDESK",
3: "CUSTOM",
4: "COINGECKO",
5: "BITFINEX",
}
FiatBackend_value = map[string]int32{
"UNKNOWN_FIATBACKEND": 0,
"COINCAP": 1,
"COINDESK": 2,
"CUSTOM": 3,
"COINGECKO": 4,
"BITFINEX": 5,
}
)
func (x FiatBackend) Enum() *FiatBackend {
p := new(FiatBackend)
*p = x
return p
}
func (x FiatBackend) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (FiatBackend) Descriptor() protoreflect.EnumDescriptor {
return file_faraday_proto_enumTypes[1].Descriptor()
}
func (FiatBackend) Type() protoreflect.EnumType {
return &file_faraday_proto_enumTypes[1]
}
func (x FiatBackend) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use FiatBackend.Descriptor instead.
func (FiatBackend) EnumDescriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{1}
}
type EntryType int32
const (
EntryType_UNKNOWN EntryType = 0
// A channel opening transaction for a channel opened by our node.
EntryType_LOCAL_CHANNEL_OPEN EntryType = 1
// A channel opening transaction for a channel opened by a remote node.
EntryType_REMOTE_CHANNEL_OPEN EntryType = 2
// The on chain fee paid to open a channel.
EntryType_CHANNEL_OPEN_FEE EntryType = 3
// A channel closing transaction.
EntryType_CHANNEL_CLOSE EntryType = 4
// Receipt of funds. On chain this reflects receives, off chain settlement
// of invoices.
EntryType_RECEIPT EntryType = 5
// Payment of funds. On chain this reflects sends, off chain settlement
// of our payments.
EntryType_PAYMENT EntryType = 6
// Payment of fees.
EntryType_FEE EntryType = 7
// Receipt of a payment to ourselves.
EntryType_CIRCULAR_RECEIPT EntryType = 8
// A forward through our node.
EntryType_FORWARD EntryType = 9
// Fees earned from forwarding.
EntryType_FORWARD_FEE EntryType = 10
// Sending of a payment to ourselves.
EntryType_CIRCULAR_PAYMENT EntryType = 11
// The fees paid to send an off chain payment to ourselves.
EntryType_CIRCULAR_FEE EntryType = 12
// A transaction that sweeps funds back into our wallet's control.
EntryType_SWEEP EntryType = 13
// The amount of fees paid for a sweep transaction.
EntryType_SWEEP_FEE EntryType = 14
// The fees paid to close a channel.
EntryType_CHANNEL_CLOSE_FEE EntryType = 15
)
// Enum value maps for EntryType.
var (
EntryType_name = map[int32]string{
0: "UNKNOWN",
1: "LOCAL_CHANNEL_OPEN",
2: "REMOTE_CHANNEL_OPEN",
3: "CHANNEL_OPEN_FEE",
4: "CHANNEL_CLOSE",
5: "RECEIPT",
6: "PAYMENT",
7: "FEE",
8: "CIRCULAR_RECEIPT",
9: "FORWARD",
10: "FORWARD_FEE",
11: "CIRCULAR_PAYMENT",
12: "CIRCULAR_FEE",
13: "SWEEP",
14: "SWEEP_FEE",
15: "CHANNEL_CLOSE_FEE",
}
EntryType_value = map[string]int32{
"UNKNOWN": 0,
"LOCAL_CHANNEL_OPEN": 1,
"REMOTE_CHANNEL_OPEN": 2,
"CHANNEL_OPEN_FEE": 3,
"CHANNEL_CLOSE": 4,
"RECEIPT": 5,
"PAYMENT": 6,
"FEE": 7,
"CIRCULAR_RECEIPT": 8,
"FORWARD": 9,
"FORWARD_FEE": 10,
"CIRCULAR_PAYMENT": 11,
"CIRCULAR_FEE": 12,
"SWEEP": 13,
"SWEEP_FEE": 14,
"CHANNEL_CLOSE_FEE": 15,
}
)
func (x EntryType) Enum() *EntryType {
p := new(EntryType)
*p = x
return p
}
func (x EntryType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (EntryType) Descriptor() protoreflect.EnumDescriptor {
return file_faraday_proto_enumTypes[2].Descriptor()
}
func (EntryType) Type() protoreflect.EnumType {
return &file_faraday_proto_enumTypes[2]
}
func (x EntryType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use EntryType.Descriptor instead.
func (EntryType) EnumDescriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{2}
}
type ChannelEventType int32
const (
// An unknown event type.
ChannelEventType_CHAN_EVENT_UNKNOWN ChannelEventType = 0
// An online event.
ChannelEventType_CHAN_EVENT_ONLINE ChannelEventType = 1
// An offline event.
ChannelEventType_CHAN_EVENT_OFFLINE ChannelEventType = 2
// A channel balance update event.
ChannelEventType_CHAN_EVENT_UPDATE ChannelEventType = 3
)
// Enum value maps for ChannelEventType.
var (
ChannelEventType_name = map[int32]string{
0: "CHAN_EVENT_UNKNOWN",
1: "CHAN_EVENT_ONLINE",
2: "CHAN_EVENT_OFFLINE",
3: "CHAN_EVENT_UPDATE",
}
ChannelEventType_value = map[string]int32{
"CHAN_EVENT_UNKNOWN": 0,
"CHAN_EVENT_ONLINE": 1,
"CHAN_EVENT_OFFLINE": 2,
"CHAN_EVENT_UPDATE": 3,
}
)
func (x ChannelEventType) Enum() *ChannelEventType {
p := new(ChannelEventType)
*p = x
return p
}
func (x ChannelEventType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ChannelEventType) Descriptor() protoreflect.EnumDescriptor {
return file_faraday_proto_enumTypes[3].Descriptor()
}
func (ChannelEventType) Type() protoreflect.EnumType {
return &file_faraday_proto_enumTypes[3]
}
func (x ChannelEventType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ChannelEventType.Descriptor instead.
func (ChannelEventType) EnumDescriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{3}
}
type CloseRecommendationRequest_Metric int32
const (
CloseRecommendationRequest_UNKNOWN CloseRecommendationRequest_Metric = 0
CloseRecommendationRequest_UPTIME CloseRecommendationRequest_Metric = 1
CloseRecommendationRequest_REVENUE CloseRecommendationRequest_Metric = 2
CloseRecommendationRequest_INCOMING_VOLUME CloseRecommendationRequest_Metric = 3
CloseRecommendationRequest_OUTGOING_VOLUME CloseRecommendationRequest_Metric = 4
CloseRecommendationRequest_TOTAL_VOLUME CloseRecommendationRequest_Metric = 5
)
// Enum value maps for CloseRecommendationRequest_Metric.
var (
CloseRecommendationRequest_Metric_name = map[int32]string{
0: "UNKNOWN",
1: "UPTIME",
2: "REVENUE",
3: "INCOMING_VOLUME",
4: "OUTGOING_VOLUME",
5: "TOTAL_VOLUME",
}
CloseRecommendationRequest_Metric_value = map[string]int32{
"UNKNOWN": 0,
"UPTIME": 1,
"REVENUE": 2,
"INCOMING_VOLUME": 3,
"OUTGOING_VOLUME": 4,
"TOTAL_VOLUME": 5,
}
)
func (x CloseRecommendationRequest_Metric) Enum() *CloseRecommendationRequest_Metric {
p := new(CloseRecommendationRequest_Metric)
*p = x
return p
}
func (x CloseRecommendationRequest_Metric) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (CloseRecommendationRequest_Metric) Descriptor() protoreflect.EnumDescriptor {
return file_faraday_proto_enumTypes[4].Descriptor()
}
func (CloseRecommendationRequest_Metric) Type() protoreflect.EnumType {
return &file_faraday_proto_enumTypes[4]
}
func (x CloseRecommendationRequest_Metric) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use CloseRecommendationRequest_Metric.Descriptor instead.
func (CloseRecommendationRequest_Metric) EnumDescriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{0, 0}
}
type CloseRecommendationRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The minimum amount of time in seconds that a channel should have been
// monitored by lnd to be eligible for close. This value is in place to
// protect against closing of newer channels.
MinimumMonitored int64 `protobuf:"varint,1,opt,name=minimum_monitored,json=minimumMonitored,proto3" json:"minimum_monitored,omitempty"`
// The data point base close recommendations on. Available options are:
// Uptime: ratio of channel peer's uptime to the period they have been
// monitored to.
// Revenue: the revenue that the channel has produced per block that its
// funding transaction has been confirmed for.
Metric CloseRecommendationRequest_Metric `protobuf:"varint,2,opt,name=metric,proto3,enum=frdrpc.CloseRecommendationRequest_Metric" json:"metric,omitempty"`
}
func (x *CloseRecommendationRequest) Reset() {
*x = CloseRecommendationRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CloseRecommendationRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CloseRecommendationRequest) ProtoMessage() {}
func (x *CloseRecommendationRequest) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 CloseRecommendationRequest.ProtoReflect.Descriptor instead.
func (*CloseRecommendationRequest) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{0}
}
func (x *CloseRecommendationRequest) GetMinimumMonitored() int64 {
if x != nil {
return x.MinimumMonitored
}
return 0
}
func (x *CloseRecommendationRequest) GetMetric() CloseRecommendationRequest_Metric {
if x != nil {
return x.Metric
}
return CloseRecommendationRequest_UNKNOWN
}
type OutlierRecommendationsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The parameters that are common to all close recommendations.
RecRequest *CloseRecommendationRequest `protobuf:"bytes,1,opt,name=rec_request,json=recRequest,proto3" json:"rec_request,omitempty"`
// The number of inter-quartile ranges a value needs to be beneath the lower
// quartile/ above the upper quartile to be considered a lower/upper outlier.
// Lower values will be more aggressive in recommending channel closes, and
// upper values will be more conservative. Recommended values are 1.5 for
// aggressive recommendations and 3 for conservative recommendations.
OutlierMultiplier float32 `protobuf:"fixed32,2,opt,name=outlier_multiplier,json=outlierMultiplier,proto3" json:"outlier_multiplier,omitempty"`
}
func (x *OutlierRecommendationsRequest) Reset() {
*x = OutlierRecommendationsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *OutlierRecommendationsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*OutlierRecommendationsRequest) ProtoMessage() {}
func (x *OutlierRecommendationsRequest) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 OutlierRecommendationsRequest.ProtoReflect.Descriptor instead.
func (*OutlierRecommendationsRequest) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{1}
}
func (x *OutlierRecommendationsRequest) GetRecRequest() *CloseRecommendationRequest {
if x != nil {
return x.RecRequest
}
return nil
}
func (x *OutlierRecommendationsRequest) GetOutlierMultiplier() float32 {
if x != nil {
return x.OutlierMultiplier
}
return 0
}
type ThresholdRecommendationsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The parameters that are common to all close recommendations.
RecRequest *CloseRecommendationRequest `protobuf:"bytes,1,opt,name=rec_request,json=recRequest,proto3" json:"rec_request,omitempty"`
// The threshold that recommendations will be calculated based on.
// For uptime: ratio of uptime to observed lifetime beneath which channels
// will be recommended for closure.
//
// For revenue: revenue per block that capital has been committed to the
// channel beneath which channels will be recommended for closure. This
// value is provided per block so that channels that have been open for
// different periods of time can be compared.
//
// For incoming volume: The incoming volume per block that capital has
// been committed to the channel beneath which channels will be recommended
// for closure. This value is provided per block so that channels that have
// been open for different periods of time can be compared.
//
// For outgoing volume: The outgoing volume per block that capital has been
// committed to the channel beneath which channels will be recommended for
// closure. This value is provided per block so that channels that have been
// open for different periods of time can be compared.
//
// For total volume: The total volume per block that capital has been
// committed to the channel beneath which channels will be recommended for
// closure. This value is provided per block so that channels that have been
// open for different periods of time can be compared.
ThresholdValue float32 `protobuf:"fixed32,2,opt,name=threshold_value,json=thresholdValue,proto3" json:"threshold_value,omitempty"`
}
func (x *ThresholdRecommendationsRequest) Reset() {
*x = ThresholdRecommendationsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ThresholdRecommendationsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ThresholdRecommendationsRequest) ProtoMessage() {}
func (x *ThresholdRecommendationsRequest) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 ThresholdRecommendationsRequest.ProtoReflect.Descriptor instead.
func (*ThresholdRecommendationsRequest) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{2}
}
func (x *ThresholdRecommendationsRequest) GetRecRequest() *CloseRecommendationRequest {
if x != nil {
return x.RecRequest
}
return nil
}
func (x *ThresholdRecommendationsRequest) GetThresholdValue() float32 {
if x != nil {
return x.ThresholdValue
}
return 0
}
type CloseRecommendationsResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The total number of channels, before filtering out channels that are
// not eligible for close recommendations.
TotalChannels int32 `protobuf:"varint,1,opt,name=total_channels,json=totalChannels,proto3" json:"total_channels,omitempty"`
// The number of channels that were considered for close recommendations.
ConsideredChannels int32 `protobuf:"varint,2,opt,name=considered_channels,json=consideredChannels,proto3" json:"considered_channels,omitempty"`
// A set of channel close recommendations. The absence of a channel in this
// set implies that it was not considered for close because it did not meet
// the criteria for close recommendations (it is private, or has not been
// monitored for long enough).
Recommendations []*Recommendation `protobuf:"bytes,3,rep,name=recommendations,proto3" json:"recommendations,omitempty"`
}
func (x *CloseRecommendationsResponse) Reset() {
*x = CloseRecommendationsResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CloseRecommendationsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CloseRecommendationsResponse) ProtoMessage() {}
func (x *CloseRecommendationsResponse) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 CloseRecommendationsResponse.ProtoReflect.Descriptor instead.
func (*CloseRecommendationsResponse) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{3}
}
func (x *CloseRecommendationsResponse) GetTotalChannels() int32 {
if x != nil {
return x.TotalChannels
}
return 0
}
func (x *CloseRecommendationsResponse) GetConsideredChannels() int32 {
if x != nil {
return x.ConsideredChannels
}
return 0
}
func (x *CloseRecommendationsResponse) GetRecommendations() []*Recommendation {
if x != nil {
return x.Recommendations
}
return nil
}
type Recommendation struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The channel point [funding txid: outpoint] of the channel being considered
// for close.
ChanPoint string `protobuf:"bytes,1,opt,name=chan_point,json=chanPoint,proto3" json:"chan_point,omitempty"`
// The value of the metric that close recommendations were based on.
Value float32 `protobuf:"fixed32,2,opt,name=value,proto3" json:"value,omitempty"`
// A boolean indicating whether we recommend closing the channel.
RecommendClose bool `protobuf:"varint,3,opt,name=recommend_close,json=recommendClose,proto3" json:"recommend_close,omitempty"`
}
func (x *Recommendation) Reset() {
*x = Recommendation{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Recommendation) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Recommendation) ProtoMessage() {}
func (x *Recommendation) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 Recommendation.ProtoReflect.Descriptor instead.
func (*Recommendation) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{4}
}
func (x *Recommendation) GetChanPoint() string {
if x != nil {
return x.ChanPoint
}
return ""
}
func (x *Recommendation) GetValue() float32 {
if x != nil {
return x.Value
}
return 0
}
func (x *Recommendation) GetRecommendClose() bool {
if x != nil {
return x.RecommendClose
}
return false
}
type RevenueReportRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The funding transaction outpoints for the channels to generate a revenue
// report for. If this is empty, it will be generated for all open and closed
// channels. Channel funding points should be expressed with the format
// fundingTxID:outpoint.
ChanPoints []string `protobuf:"bytes,1,rep,name=chan_points,json=chanPoints,proto3" json:"chan_points,omitempty"`
// Start time is beginning of the range over which the report will be
// generated, expressed as unix epoch offset in seconds.
StartTime uint64 `protobuf:"varint,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
// End time is end of the range over which the report will be
// generated, expressed as unix epoch offset in seconds.
EndTime uint64 `protobuf:"varint,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
}
func (x *RevenueReportRequest) Reset() {
*x = RevenueReportRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RevenueReportRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RevenueReportRequest) ProtoMessage() {}
func (x *RevenueReportRequest) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 RevenueReportRequest.ProtoReflect.Descriptor instead.
func (*RevenueReportRequest) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{5}
}
func (x *RevenueReportRequest) GetChanPoints() []string {
if x != nil {
return x.ChanPoints
}
return nil
}
func (x *RevenueReportRequest) GetStartTime() uint64 {
if x != nil {
return x.StartTime
}
return 0
}
func (x *RevenueReportRequest) GetEndTime() uint64 {
if x != nil {
return x.EndTime
}
return 0
}
type RevenueReportResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Reports is a set of pairwise revenue report generated for the channel(s)
// over the period specified.
Reports []*RevenueReport `protobuf:"bytes,1,rep,name=reports,proto3" json:"reports,omitempty"`
}
func (x *RevenueReportResponse) Reset() {
*x = RevenueReportResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RevenueReportResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RevenueReportResponse) ProtoMessage() {}
func (x *RevenueReportResponse) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 RevenueReportResponse.ProtoReflect.Descriptor instead.
func (*RevenueReportResponse) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{6}
}
func (x *RevenueReportResponse) GetReports() []*RevenueReport {
if x != nil {
return x.Reports
}
return nil
}
type RevenueReport struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Target channel is the channel that the report is generated for; incoming
// fields in the report mean that this channel was the incoming channel,
// and the pair as the outgoing, outgoing fields mean that this channel was
// the outgoing channel and the peer was the incoming channel.
TargetChannel string `protobuf:"bytes,1,opt,name=target_channel,json=targetChannel,proto3" json:"target_channel,omitempty"`
// Pair reports maps the channel point of a peer that we generated revenue
// with to a report detailing the revenue.
PairReports map[string]*PairReport `protobuf:"bytes,2,rep,name=pair_reports,json=pairReports,proto3" json:"pair_reports,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *RevenueReport) Reset() {
*x = RevenueReport{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RevenueReport) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RevenueReport) ProtoMessage() {}
func (x *RevenueReport) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 RevenueReport.ProtoReflect.Descriptor instead.
func (*RevenueReport) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{7}
}
func (x *RevenueReport) GetTargetChannel() string {
if x != nil {
return x.TargetChannel
}
return ""
}
func (x *RevenueReport) GetPairReports() map[string]*PairReport {
if x != nil {
return x.PairReports
}
return nil
}
type PairReport struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Amount outgoing msat is the amount in millisatoshis that arrived
// on the pair channel to be forwarded onwards by our channel.
AmountOutgoingMsat int64 `protobuf:"varint,1,opt,name=amount_outgoing_msat,json=amountOutgoingMsat,proto3" json:"amount_outgoing_msat,omitempty"`
// Fees outgoing is the amount of fees in millisatoshis that we
// attribute to the channel for its role as the outgoing channel in
// forwards.
FeesOutgoingMsat int64 `protobuf:"varint,2,opt,name=fees_outgoing_msat,json=feesOutgoingMsat,proto3" json:"fees_outgoing_msat,omitempty"`
// Amount incoming msat is the amount in millisatoshis that arrived
// on our channel to be forwarded onwards by the pair channel.
AmountIncomingMsat int64 `protobuf:"varint,3,opt,name=amount_incoming_msat,json=amountIncomingMsat,proto3" json:"amount_incoming_msat,omitempty"`
// Fees incoming is the amount of fees in millisatoshis that we
// attribute to the channel for its role as the incoming channel in
// forwards.
FeesIncomingMsat int64 `protobuf:"varint,4,opt,name=fees_incoming_msat,json=feesIncomingMsat,proto3" json:"fees_incoming_msat,omitempty"`
}
func (x *PairReport) Reset() {
*x = PairReport{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PairReport) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PairReport) ProtoMessage() {}
func (x *PairReport) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 PairReport.ProtoReflect.Descriptor instead.
func (*PairReport) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{8}
}
func (x *PairReport) GetAmountOutgoingMsat() int64 {
if x != nil {
return x.AmountOutgoingMsat
}
return 0
}
func (x *PairReport) GetFeesOutgoingMsat() int64 {
if x != nil {
return x.FeesOutgoingMsat
}
return 0
}
func (x *PairReport) GetAmountIncomingMsat() int64 {
if x != nil {
return x.AmountIncomingMsat
}
return 0
}
func (x *PairReport) GetFeesIncomingMsat() int64 {
if x != nil {
return x.FeesIncomingMsat
}
return 0
}
type ChannelInsightsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *ChannelInsightsRequest) Reset() {
*x = ChannelInsightsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ChannelInsightsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ChannelInsightsRequest) ProtoMessage() {}
func (x *ChannelInsightsRequest) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 ChannelInsightsRequest.ProtoReflect.Descriptor instead.
func (*ChannelInsightsRequest) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{9}
}
type ChannelInsightsResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Insights for the set of currently open channels.
ChannelInsights []*ChannelInsight `protobuf:"bytes,1,rep,name=channel_insights,json=channelInsights,proto3" json:"channel_insights,omitempty"`
}
func (x *ChannelInsightsResponse) Reset() {
*x = ChannelInsightsResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ChannelInsightsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ChannelInsightsResponse) ProtoMessage() {}
func (x *ChannelInsightsResponse) ProtoReflect() protoreflect.Message {
mi := &file_faraday_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ChannelInsightsResponse.ProtoReflect.Descriptor instead.
func (*ChannelInsightsResponse) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{10}
}
func (x *ChannelInsightsResponse) GetChannelInsights() []*ChannelInsight {
if x != nil {
return x.ChannelInsights
}
return nil
}
type ChannelInsight struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The outpoint of the channel's funding transaction.
ChanPoint string `protobuf:"bytes,1,opt,name=chan_point,json=chanPoint,proto3" json:"chan_point,omitempty"`
// The amount of time in seconds that we have monitored the channel peer's
// uptime for.
MonitoredSeconds uint64 `protobuf:"varint,2,opt,name=monitored_seconds,json=monitoredSeconds,proto3" json:"monitored_seconds,omitempty"`
// The amount of time in seconds that the channel peer has been online over
// the period it has been monitored for.
UptimeSeconds uint64 `protobuf:"varint,3,opt,name=uptime_seconds,json=uptimeSeconds,proto3" json:"uptime_seconds,omitempty"`
// The volume, in millisatoshis, that has been forwarded with this channel as
// the incoming channel.
VolumeIncomingMsat int64 `protobuf:"varint,4,opt,name=volume_incoming_msat,json=volumeIncomingMsat,proto3" json:"volume_incoming_msat,omitempty"`
// The volume, in millisatoshis, that has been forwarded with this channel as
// the outgoing channel.
VolumeOutgoingMsat int64 `protobuf:"varint,5,opt,name=volume_outgoing_msat,json=volumeOutgoingMsat,proto3" json:"volume_outgoing_msat,omitempty"`
// The total fees earned by this channel for its participation in forwards,
// expressed in millisatoshis. Note that we attribute fees evenly across
// incoming and outgoing channels.
FeesEarnedMsat int64 `protobuf:"varint,6,opt,name=fees_earned_msat,json=feesEarnedMsat,proto3" json:"fees_earned_msat,omitempty"`
// The number of confirmations the funding transaction has.
Confirmations uint32 `protobuf:"varint,7,opt,name=confirmations,proto3" json:"confirmations,omitempty"`
// True if the channel is private.
Private bool `protobuf:"varint,8,opt,name=private,proto3" json:"private,omitempty"`
}
func (x *ChannelInsight) Reset() {
*x = ChannelInsight{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ChannelInsight) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ChannelInsight) ProtoMessage() {}
func (x *ChannelInsight) ProtoReflect() protoreflect.Message {
mi := &file_faraday_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ChannelInsight.ProtoReflect.Descriptor instead.
func (*ChannelInsight) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{11}
}
func (x *ChannelInsight) GetChanPoint() string {
if x != nil {
return x.ChanPoint
}
return ""
}
func (x *ChannelInsight) GetMonitoredSeconds() uint64 {
if x != nil {
return x.MonitoredSeconds
}
return 0
}
func (x *ChannelInsight) GetUptimeSeconds() uint64 {
if x != nil {
return x.UptimeSeconds
}
return 0
}
func (x *ChannelInsight) GetVolumeIncomingMsat() int64 {
if x != nil {
return x.VolumeIncomingMsat
}
return 0
}
func (x *ChannelInsight) GetVolumeOutgoingMsat() int64 {
if x != nil {
return x.VolumeOutgoingMsat
}
return 0
}
func (x *ChannelInsight) GetFeesEarnedMsat() int64 {
if x != nil {
return x.FeesEarnedMsat
}
return 0
}
func (x *ChannelInsight) GetConfirmations() uint32 {
if x != nil {
return x.Confirmations
}
return 0
}
func (x *ChannelInsight) GetPrivate() bool {
if x != nil {
return x.Private
}
return false
}
type ExchangeRateRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// A set of timestamps for which we want the bitcoin price.
Timestamps []uint64 `protobuf:"varint,3,rep,packed,name=timestamps,proto3" json:"timestamps,omitempty"`
// The level of granularity at which we want the bitcoin price to be quoted.
Granularity Granularity `protobuf:"varint,4,opt,name=granularity,proto3,enum=frdrpc.Granularity" json:"granularity,omitempty"`
// The api to be used for fiat related queries.
FiatBackend FiatBackend `protobuf:"varint,5,opt,name=fiat_backend,json=fiatBackend,proto3,enum=frdrpc.FiatBackend" json:"fiat_backend,omitempty"`
// Custom price points to use if the CUSTOM FiatBackend option is set.
CustomPrices []*BitcoinPrice `protobuf:"bytes,8,rep,name=custom_prices,json=customPrices,proto3" json:"custom_prices,omitempty"`
}
func (x *ExchangeRateRequest) Reset() {
*x = ExchangeRateRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ExchangeRateRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ExchangeRateRequest) ProtoMessage() {}
func (x *ExchangeRateRequest) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 ExchangeRateRequest.ProtoReflect.Descriptor instead.
func (*ExchangeRateRequest) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{12}
}
func (x *ExchangeRateRequest) GetTimestamps() []uint64 {
if x != nil {
return x.Timestamps
}
return nil
}
func (x *ExchangeRateRequest) GetGranularity() Granularity {
if x != nil {
return x.Granularity
}
return Granularity_UNKNOWN_GRANULARITY
}
func (x *ExchangeRateRequest) GetFiatBackend() FiatBackend {
if x != nil {
return x.FiatBackend
}
return FiatBackend_UNKNOWN_FIATBACKEND
}
func (x *ExchangeRateRequest) GetCustomPrices() []*BitcoinPrice {
if x != nil {
return x.CustomPrices
}
return nil
}
type ExchangeRateResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Rates contains a set of exchange rates for the set of timestamps
Rates []*ExchangeRate `protobuf:"bytes,2,rep,name=rates,proto3" json:"rates,omitempty"`
}
func (x *ExchangeRateResponse) Reset() {
*x = ExchangeRateResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ExchangeRateResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ExchangeRateResponse) ProtoMessage() {}
func (x *ExchangeRateResponse) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 ExchangeRateResponse.ProtoReflect.Descriptor instead.
func (*ExchangeRateResponse) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{13}
}
func (x *ExchangeRateResponse) GetRates() []*ExchangeRate {
if x != nil {
return x.Rates
}
return nil
}
type BitcoinPrice struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The price of 1 BTC, expressed in USD.
Price string `protobuf:"bytes,1,opt,name=price,proto3" json:"price,omitempty"`
// The timestamp for this price price provided.
PriceTimestamp uint64 `protobuf:"varint,2,opt,name=price_timestamp,json=priceTimestamp,proto3" json:"price_timestamp,omitempty"`
// The currency that the price is denoted in.
Currency string `protobuf:"bytes,3,opt,name=currency,proto3" json:"currency,omitempty"`
}
func (x *BitcoinPrice) Reset() {
*x = BitcoinPrice{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BitcoinPrice) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BitcoinPrice) ProtoMessage() {}
func (x *BitcoinPrice) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 BitcoinPrice.ProtoReflect.Descriptor instead.
func (*BitcoinPrice) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{14}
}
func (x *BitcoinPrice) GetPrice() string {
if x != nil {
return x.Price
}
return ""
}
func (x *BitcoinPrice) GetPriceTimestamp() uint64 {
if x != nil {
return x.PriceTimestamp
}
return 0
}
func (x *BitcoinPrice) GetCurrency() string {
if x != nil {
return x.Currency
}
return ""
}
type ExchangeRate struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// timestamp is the timestamp of the original request made.
Timestamp uint64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
// Price is the bitcoin price approximation for the timestamp queried. Note
// that this value has its own timestamp because we are not guaranteed to get
// price points for the exact timestamp that was queried.
BtcPrice *BitcoinPrice `protobuf:"bytes,2,opt,name=btc_price,json=btcPrice,proto3" json:"btc_price,omitempty"`
}
func (x *ExchangeRate) Reset() {
*x = ExchangeRate{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ExchangeRate) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ExchangeRate) ProtoMessage() {}
func (x *ExchangeRate) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 ExchangeRate.ProtoReflect.Descriptor instead.
func (*ExchangeRate) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{15}
}
func (x *ExchangeRate) GetTimestamp() uint64 {
if x != nil {
return x.Timestamp
}
return 0
}
func (x *ExchangeRate) GetBtcPrice() *BitcoinPrice {
if x != nil {
return x.BtcPrice
}
return nil
}
type NodeAuditRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The unix time from which to produce the report, inclusive.
StartTime uint64 `protobuf:"varint,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
// The unix time until which to produce the report, exclusive.
EndTime uint64 `protobuf:"varint,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
// Set to generate a report without conversion to fiat. If set, fiat values
// will display as 0.
DisableFiat bool `protobuf:"varint,4,opt,name=disable_fiat,json=disableFiat,proto3" json:"disable_fiat,omitempty"`
// The level of granularity at which we wish to produce fiat prices.
Granularity Granularity `protobuf:"varint,5,opt,name=granularity,proto3,enum=frdrpc.Granularity" json:"granularity,omitempty"`
// An optional set of custom categories which can be used to identify bespoke
// categories in the report. Each category must have a unique name, and may not
// have common identifier regexes. Transactions that are matched to these
// categories report the category name in the CustomCategory field.
CustomCategories []*CustomCategory `protobuf:"bytes,6,rep,name=custom_categories,json=customCategories,proto3" json:"custom_categories,omitempty"`
// The api to be used for fiat related queries.
FiatBackend FiatBackend `protobuf:"varint,7,opt,name=fiat_backend,json=fiatBackend,proto3,enum=frdrpc.FiatBackend" json:"fiat_backend,omitempty"`
// Custom price points to use if the CUSTOM FiatBackend option is set.
CustomPrices []*BitcoinPrice `protobuf:"bytes,8,rep,name=custom_prices,json=customPrices,proto3" json:"custom_prices,omitempty"`
}
func (x *NodeAuditRequest) Reset() {
*x = NodeAuditRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *NodeAuditRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*NodeAuditRequest) ProtoMessage() {}
func (x *NodeAuditRequest) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 NodeAuditRequest.ProtoReflect.Descriptor instead.
func (*NodeAuditRequest) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{16}
}
func (x *NodeAuditRequest) GetStartTime() uint64 {
if x != nil {
return x.StartTime
}
return 0
}
func (x *NodeAuditRequest) GetEndTime() uint64 {
if x != nil {
return x.EndTime
}
return 0
}
func (x *NodeAuditRequest) GetDisableFiat() bool {
if x != nil {
return x.DisableFiat
}
return false
}
func (x *NodeAuditRequest) GetGranularity() Granularity {
if x != nil {
return x.Granularity
}
return Granularity_UNKNOWN_GRANULARITY
}
func (x *NodeAuditRequest) GetCustomCategories() []*CustomCategory {
if x != nil {
return x.CustomCategories
}
return nil
}
func (x *NodeAuditRequest) GetFiatBackend() FiatBackend {
if x != nil {
return x.FiatBackend
}
return FiatBackend_UNKNOWN_FIATBACKEND
}
func (x *NodeAuditRequest) GetCustomPrices() []*BitcoinPrice {
if x != nil {
return x.CustomPrices
}
return nil
}
type CustomCategory struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The name for the custom category which will contain all transactions that
// are labelled with a string matching one of the regexes provided in
// label identifiers.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Set to true to apply this category to on chain transactions. Can be set in
// conjunction with off_chain to apply the category to all transactions.
OnChain bool `protobuf:"varint,2,opt,name=on_chain,json=onChain,proto3" json:"on_chain,omitempty"`
// Set to true to apply this category to off chain transactions. Can be set in
// conjunction with on_chain to apply the category to all transactions.
OffChain bool `protobuf:"varint,3,opt,name=off_chain,json=offChain,proto3" json:"off_chain,omitempty"`
// A set of regular expressions which identify transactions by their label as
// belonging in this custom category. If a label matches any single regex in
// the set, it is considered to be in the category. These expressions will be
// matched against various labels that are present in lnd: on chain
// transactions will be matched against their label field, off chain receipts
// will be matched against their memo. At present, there is no way to match
// forwards or off chain payments. These expressions must be unique across
// custom categories, otherwise faraday will not be able to identify which
// custom category a transaction belongs in.
LabelPatterns []string `protobuf:"bytes,5,rep,name=label_patterns,json=labelPatterns,proto3" json:"label_patterns,omitempty"`
}
func (x *CustomCategory) Reset() {
*x = CustomCategory{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CustomCategory) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CustomCategory) ProtoMessage() {}
func (x *CustomCategory) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 CustomCategory.ProtoReflect.Descriptor instead.
func (*CustomCategory) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{17}
}
func (x *CustomCategory) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *CustomCategory) GetOnChain() bool {
if x != nil {
return x.OnChain
}
return false
}
func (x *CustomCategory) GetOffChain() bool {
if x != nil {
return x.OffChain
}
return false
}
func (x *CustomCategory) GetLabelPatterns() []string {
if x != nil {
return x.LabelPatterns
}
return nil
}
type ReportEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The unix timestamp of the event.
Timestamp uint64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
// Whether the entry occurred on chain or off chain.
OnChain bool `protobuf:"varint,2,opt,name=on_chain,json=onChain,proto3" json:"on_chain,omitempty"`
// The amount of the entry, expressed in millisatoshis.
Amount uint64 `protobuf:"varint,3,opt,name=amount,proto3" json:"amount,omitempty"`
// Whether the entry is a credit or a debit.
Credit bool `protobuf:"varint,4,opt,name=credit,proto3" json:"credit,omitempty"`
// The asset affected by the entry.
Asset string `protobuf:"bytes,5,opt,name=asset,proto3" json:"asset,omitempty"`
// The kind of activity that this entry represents.
Type EntryType `protobuf:"varint,6,opt,name=type,proto3,enum=frdrpc.EntryType" json:"type,omitempty"`
// This field will be populated for entry type custom, and represents the name
// of a custom category that the report was produced with.
CustomCategory string `protobuf:"bytes,12,opt,name=custom_category,json=customCategory,proto3" json:"custom_category,omitempty"`
// The transaction id of the entry.
Txid string `protobuf:"bytes,7,opt,name=txid,proto3" json:"txid,omitempty"`
// The fiat amount of the entry's amount in the currency specified in the
// btc_price field.
Fiat string `protobuf:"bytes,8,opt,name=fiat,proto3" json:"fiat,omitempty"`
// A unique identifier for the entry, if available.
Reference string `protobuf:"bytes,9,opt,name=reference,proto3" json:"reference,omitempty"`
// An additional note for the entry, providing additional context.
Note string `protobuf:"bytes,10,opt,name=note,proto3" json:"note,omitempty"`
// The bitcoin price and timestamp used to calculate our fiat value.
BtcPrice *BitcoinPrice `protobuf:"bytes,11,opt,name=btc_price,json=btcPrice,proto3" json:"btc_price,omitempty"`
}
func (x *ReportEntry) Reset() {
*x = ReportEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ReportEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ReportEntry) ProtoMessage() {}
func (x *ReportEntry) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 ReportEntry.ProtoReflect.Descriptor instead.
func (*ReportEntry) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{18}
}
func (x *ReportEntry) GetTimestamp() uint64 {
if x != nil {
return x.Timestamp
}
return 0
}
func (x *ReportEntry) GetOnChain() bool {
if x != nil {
return x.OnChain
}
return false
}
func (x *ReportEntry) GetAmount() uint64 {
if x != nil {
return x.Amount
}
return 0
}
func (x *ReportEntry) GetCredit() bool {
if x != nil {
return x.Credit
}
return false
}
func (x *ReportEntry) GetAsset() string {
if x != nil {
return x.Asset
}
return ""
}
func (x *ReportEntry) GetType() EntryType {
if x != nil {
return x.Type
}
return EntryType_UNKNOWN
}
func (x *ReportEntry) GetCustomCategory() string {
if x != nil {
return x.CustomCategory
}
return ""
}
func (x *ReportEntry) GetTxid() string {
if x != nil {
return x.Txid
}
return ""
}
func (x *ReportEntry) GetFiat() string {
if x != nil {
return x.Fiat
}
return ""
}
func (x *ReportEntry) GetReference() string {
if x != nil {
return x.Reference
}
return ""
}
func (x *ReportEntry) GetNote() string {
if x != nil {
return x.Note
}
return ""
}
func (x *ReportEntry) GetBtcPrice() *BitcoinPrice {
if x != nil {
return x.BtcPrice
}
return nil
}
type NodeAuditResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// On chain reports for the period queried.
Reports []*ReportEntry `protobuf:"bytes,1,rep,name=reports,proto3" json:"reports,omitempty"`
}
func (x *NodeAuditResponse) Reset() {
*x = NodeAuditResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *NodeAuditResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*NodeAuditResponse) ProtoMessage() {}
func (x *NodeAuditResponse) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 NodeAuditResponse.ProtoReflect.Descriptor instead.
func (*NodeAuditResponse) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{19}
}
func (x *NodeAuditResponse) GetReports() []*ReportEntry {
if x != nil {
return x.Reports
}
return nil
}
type CloseReportRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The funding outpoint of the channel the report should be created for,
// formatted txid:outpoint.
ChannelPoint string `protobuf:"bytes,1,opt,name=channel_point,json=channelPoint,proto3" json:"channel_point,omitempty"`
}
func (x *CloseReportRequest) Reset() {
*x = CloseReportRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CloseReportRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CloseReportRequest) ProtoMessage() {}
func (x *CloseReportRequest) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 CloseReportRequest.ProtoReflect.Descriptor instead.
func (*CloseReportRequest) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{20}
}
func (x *CloseReportRequest) GetChannelPoint() string {
if x != nil {
return x.ChannelPoint
}
return ""
}
type CloseReportResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The funding outpoint of the channel.
ChannelPoint string `protobuf:"bytes,1,opt,name=channel_point,json=channelPoint,proto3" json:"channel_point,omitempty"`
// True if we opened the channel, false if the remote peer did.
ChannelInitiator bool `protobuf:"varint,2,opt,name=channel_initiator,json=channelInitiator,proto3" json:"channel_initiator,omitempty"`
// The type of close that resolved this channel.
CloseType string `protobuf:"bytes,3,opt,name=close_type,json=closeType,proto3" json:"close_type,omitempty"`
// The transaction id of the close transaction that confirmed on chain.
CloseTxid string `protobuf:"bytes,4,opt,name=close_txid,json=closeTxid,proto3" json:"close_txid,omitempty"`
// The fee we paid on chain to open this channel in satoshis, note that this
// field will be zero if the remote party paid.
OpenFee string `protobuf:"bytes,5,opt,name=open_fee,json=openFee,proto3" json:"open_fee,omitempty"`
// The fee we paid on chain for the close transaction in staoshis, note that
// this field will be zero if the remote party paid.
CloseFee string `protobuf:"bytes,6,opt,name=close_fee,json=closeFee,proto3" json:"close_fee,omitempty"`
}
func (x *CloseReportResponse) Reset() {
*x = CloseReportResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CloseReportResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CloseReportResponse) ProtoMessage() {}
func (x *CloseReportResponse) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 CloseReportResponse.ProtoReflect.Descriptor instead.
func (*CloseReportResponse) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{21}
}
func (x *CloseReportResponse) GetChannelPoint() string {
if x != nil {
return x.ChannelPoint
}
return ""
}
func (x *CloseReportResponse) GetChannelInitiator() bool {
if x != nil {
return x.ChannelInitiator
}
return false
}
func (x *CloseReportResponse) GetCloseType() string {
if x != nil {
return x.CloseType
}
return ""
}
func (x *CloseReportResponse) GetCloseTxid() string {
if x != nil {
return x.CloseTxid
}
return ""
}
func (x *CloseReportResponse) GetOpenFee() string {
if x != nil {
return x.OpenFee
}
return ""
}
func (x *CloseReportResponse) GetCloseFee() string {
if x != nil {
return x.CloseFee
}
return ""
}
type ChannelEventsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The channel point of the channel to get events for, formatted txid:outpoint.
ChanPoint string `protobuf:"bytes,1,opt,name=chan_point,json=chanPoint,proto3" json:"chan_point,omitempty"`
// Lower time bound, inclusive, as Unix seconds. Independent filter — does
// not need to advance between paginated calls. Zero means no lower bound.
StartTime int64 `protobuf:"varint,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
// Upper time bound, exclusive, as Unix seconds. Must be greater than or
// equal to start_time. Zero means "use the server's current time".
EndTime int64 `protobuf:"varint,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
// The maximum number of events to return. If zero, the server default is
// used. The server enforces a hard cap; values above the cap are clamped.
MaxEvents uint32 `protobuf:"varint,4,opt,name=max_events,json=maxEvents,proto3" json:"max_events,omitempty"`
// Pagination cursor: id of the last event from the previous response.
// Pass zero on the first call; for subsequent calls pass the response's
// last_id to resume past already-returned events.
LastId int64 `protobuf:"varint,5,opt,name=last_id,json=lastId,proto3" json:"last_id,omitempty"`
}
func (x *ChannelEventsRequest) Reset() {
*x = ChannelEventsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ChannelEventsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ChannelEventsRequest) ProtoMessage() {}
func (x *ChannelEventsRequest) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 ChannelEventsRequest.ProtoReflect.Descriptor instead.
func (*ChannelEventsRequest) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{22}
}
func (x *ChannelEventsRequest) GetChanPoint() string {
if x != nil {
return x.ChanPoint
}
return ""
}
func (x *ChannelEventsRequest) GetStartTime() int64 {
if x != nil {
return x.StartTime
}
return 0
}
func (x *ChannelEventsRequest) GetEndTime() int64 {
if x != nil {
return x.EndTime
}
return 0
}
func (x *ChannelEventsRequest) GetMaxEvents() uint32 {
if x != nil {
return x.MaxEvents
}
return 0
}
func (x *ChannelEventsRequest) GetLastId() int64 {
if x != nil {
return x.LastId
}
return 0
}
type ChannelEventsResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The list of channel events.
Events []*ChannelEvent `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"`
// Id of the last event returned, suitable as the next request's last_id.
// Zero when events is empty.
LastId int64 `protobuf:"varint,2,opt,name=last_id,json=lastId,proto3" json:"last_id,omitempty"`
// True when the page filled to the requested limit and more events may be
// available; callers should keep paginating until this is false.
HasMore bool `protobuf:"varint,3,opt,name=has_more,json=hasMore,proto3" json:"has_more,omitempty"`
}
func (x *ChannelEventsResponse) Reset() {
*x = ChannelEventsResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ChannelEventsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ChannelEventsResponse) ProtoMessage() {}
func (x *ChannelEventsResponse) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 ChannelEventsResponse.ProtoReflect.Descriptor instead.
func (*ChannelEventsResponse) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{23}
}
func (x *ChannelEventsResponse) GetEvents() []*ChannelEvent {
if x != nil {
return x.Events
}
return nil
}
func (x *ChannelEventsResponse) GetLastId() int64 {
if x != nil {
return x.LastId
}
return 0
}
func (x *ChannelEventsResponse) GetHasMore() bool {
if x != nil {
return x.HasMore
}
return false
}
type ChannelEvent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The timestamp of the event, as Unix seconds.
Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
// The type of the event.
EventType ChannelEventType `protobuf:"varint,2,opt,name=event_type,json=eventType,proto3,enum=frdrpc.ChannelEventType" json:"event_type,omitempty"`
// The channel's local balance at the time of the event in sat.
LocalBalance uint64 `protobuf:"varint,3,opt,name=local_balance,json=localBalance,proto3" json:"local_balance,omitempty"`
// The channel's remote balance at the time of the event in sat.
RemoteBalance uint64 `protobuf:"varint,4,opt,name=remote_balance,json=remoteBalance,proto3" json:"remote_balance,omitempty"`
// Server-assigned monotonic identity. Echo this back as the next
// request's last_id when paginating.
Id int64 `protobuf:"varint,5,opt,name=id,proto3" json:"id,omitempty"`
}
func (x *ChannelEvent) Reset() {
*x = ChannelEvent{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ChannelEvent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ChannelEvent) ProtoMessage() {}
func (x *ChannelEvent) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 ChannelEvent.ProtoReflect.Descriptor instead.
func (*ChannelEvent) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{24}
}
func (x *ChannelEvent) GetTimestamp() int64 {
if x != nil {
return x.Timestamp
}
return 0
}
func (x *ChannelEvent) GetEventType() ChannelEventType {
if x != nil {
return x.EventType
}
return ChannelEventType_CHAN_EVENT_UNKNOWN
}
func (x *ChannelEvent) GetLocalBalance() uint64 {
if x != nil {
return x.LocalBalance
}
return 0
}
func (x *ChannelEvent) GetRemoteBalance() uint64 {
if x != nil {
return x.RemoteBalance
}
return 0
}
func (x *ChannelEvent) GetId() int64 {
if x != nil {
return x.Id
}
return 0
}
type ForwardingAbilityRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The start time of the query range as unix seconds. A value of 0 means
// the earliest available data.
StartTime uint64 `protobuf:"varint,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
// The end time of the query range as unix seconds. A value of 0 means the
// server's current time.
EndTime uint64 `protobuf:"varint,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
// The minimum directional liquidity in satoshis for a peer pair to count as
// economically forwardable. A value of 0 selects the server default. Hold
// this constant across calls for comparable series.
LiquidityFloorSat uint64 `protobuf:"varint,3,opt,name=liquidity_floor_sat,json=liquidityFloorSat,proto3" json:"liquidity_floor_sat,omitempty"`
// The uptime fraction in [0, 1] at or above which a peer pair that did not
// forward is reported compactly as a single bit in up_but_idle_bitmask
// rather than as a full entry. A value of 0 selects the server default.
// Pairs below this threshold that also did not forward are omitted
// entirely. If no pair meets the threshold the server returns a
// FailedPrecondition error, since that indicates the node itself was down
// for the window and the data carries no signal.
UptimeThreshold float64 `protobuf:"fixed64,4,opt,name=uptime_threshold,json=uptimeThreshold,proto3" json:"uptime_threshold,omitempty"`
}
func (x *ForwardingAbilityRequest) Reset() {
*x = ForwardingAbilityRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ForwardingAbilityRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ForwardingAbilityRequest) ProtoMessage() {}
func (x *ForwardingAbilityRequest) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 ForwardingAbilityRequest.ProtoReflect.Descriptor instead.
func (*ForwardingAbilityRequest) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{25}
}
func (x *ForwardingAbilityRequest) GetStartTime() uint64 {
if x != nil {
return x.StartTime
}
return 0
}
func (x *ForwardingAbilityRequest) GetEndTime() uint64 {
if x != nil {
return x.EndTime
}
return 0
}
func (x *ForwardingAbilityRequest) GetLiquidityFloorSat() uint64 {
if x != nil {
return x.LiquidityFloorSat
}
return 0
}
func (x *ForwardingAbilityRequest) GetUptimeThreshold() float64 {
if x != nil {
return x.UptimeThreshold
}
return 0
}
type ForwardingAbilityResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Sorted list of unique compressed 33-byte public keys of the peers.
Peers [][]byte `protobuf:"bytes,1,rep,name=peers,proto3" json:"peers,omitempty"`
// Sparse list of forwarding ability entries. An entry is present only for a
// pair that forwarded volume, carrying its exact effective_uptime_s and
// forwarded_sat. Pairs that did not forward are never listed here; they are
// either flagged in quiet_uptime_bitmask or absent. Entries take precedence
// over the bitmask for the same pair.
Entries []*ForwardingAbilityEntry `protobuf:"bytes,2,rep,name=entries,proto3" json:"entries,omitempty"`
// The start of the window the metrics cover, as unix seconds.
StartTime int64 `protobuf:"varint,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
// The end of the window the metrics cover, as unix seconds.
EndTime int64 `protobuf:"varint,4,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
// A packed bitmask over the n*n ordered peer pairs, where n is the length
// of peers. The bit at index in*n+out is set when that pair held at least
// the uptime_threshold fraction of effective uptime over the window but did
// not forward: the dense "up but idle" population. A pair with a forwarded
// entry is never flagged here. A pair that is neither listed in entries nor
// flagged here had sub-threshold uptime and no forwards: treat it as zero.
UpButIdleBitmask []byte `protobuf:"bytes,5,opt,name=up_but_idle_bitmask,json=upButIdleBitmask,proto3" json:"up_but_idle_bitmask,omitempty"`
// The uptime fraction in [0, 1] used to populate up_but_idle_bitmask,
// echoed back so consumers know the threshold the server applied.
UptimeThreshold float64 `protobuf:"fixed64,6,opt,name=uptime_threshold,json=uptimeThreshold,proto3" json:"uptime_threshold,omitempty"`
}
func (x *ForwardingAbilityResponse) Reset() {
*x = ForwardingAbilityResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ForwardingAbilityResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ForwardingAbilityResponse) ProtoMessage() {}
func (x *ForwardingAbilityResponse) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 ForwardingAbilityResponse.ProtoReflect.Descriptor instead.
func (*ForwardingAbilityResponse) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{26}
}
func (x *ForwardingAbilityResponse) GetPeers() [][]byte {
if x != nil {
return x.Peers
}
return nil
}
func (x *ForwardingAbilityResponse) GetEntries() []*ForwardingAbilityEntry {
if x != nil {
return x.Entries
}
return nil
}
func (x *ForwardingAbilityResponse) GetStartTime() int64 {
if x != nil {
return x.StartTime
}
return 0
}
func (x *ForwardingAbilityResponse) GetEndTime() int64 {
if x != nil {
return x.EndTime
}
return 0
}
func (x *ForwardingAbilityResponse) GetUpButIdleBitmask() []byte {
if x != nil {
return x.UpButIdleBitmask
}
return nil
}
func (x *ForwardingAbilityResponse) GetUptimeThreshold() float64 {
if x != nil {
return x.UptimeThreshold
}
return 0
}
type ForwardingAbilityEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The indices of the incoming and outgoing peers packed into a single
// 32-bit integer: packed_idx = (in << 16) | out. This caps the peer set at
// 65535 peers per direction.
PackedIdx uint32 `protobuf:"varint,1,opt,name=packed_idx,json=packedIdx,proto3" json:"packed_idx,omitempty"`
// Seconds the peer pair held at least the requested liquidity floor of
// directional forwardable liquidity over the window.
EffectiveUptimeS int64 `protobuf:"varint,2,opt,name=effective_uptime_s,json=effectiveUptimeS,proto3" json:"effective_uptime_s,omitempty"`
// Total successfully forwarded amount over the window, in satoshis.
ForwardedSat int64 `protobuf:"varint,3,opt,name=forwarded_sat,json=forwardedSat,proto3" json:"forwarded_sat,omitempty"`
}
func (x *ForwardingAbilityEntry) Reset() {
*x = ForwardingAbilityEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_faraday_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ForwardingAbilityEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ForwardingAbilityEntry) ProtoMessage() {}
func (x *ForwardingAbilityEntry) ProtoReflect() protoreflect.Message {
mi := &file_faraday_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 ForwardingAbilityEntry.ProtoReflect.Descriptor instead.
func (*ForwardingAbilityEntry) Descriptor() ([]byte, []int) {
return file_faraday_proto_rawDescGZIP(), []int{27}
}
func (x *ForwardingAbilityEntry) GetPackedIdx() uint32 {
if x != nil {
return x.PackedIdx
}
return 0
}
func (x *ForwardingAbilityEntry) GetEffectiveUptimeS() int64 {
if x != nil {
return x.EffectiveUptimeS
}
return 0
}
func (x *ForwardingAbilityEntry) GetForwardedSat() int64 {
if x != nil {
return x.ForwardedSat
}
return 0
}
var File_faraday_proto protoreflect.FileDescriptor
var file_faraday_proto_rawDesc = []byte{
0x0a, 0x0d, 0x66, 0x61, 0x72, 0x61, 0x64, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
0x06, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x22, 0xf8, 0x01, 0x0a, 0x1a, 0x43, 0x6c, 0x6f, 0x73,
0x65, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75,
0x6d, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x03, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f,
0x72, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x6f,
0x73, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x06,
0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x22, 0x6a, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a,
0x06, 0x55, 0x50, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x56,
0x45, 0x4e, 0x55, 0x45, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49,
0x4e, 0x47, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x4f,
0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x10, 0x04,
0x12, 0x10, 0x0a, 0x0c, 0x54, 0x4f, 0x54, 0x41, 0x4c, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45,
0x10, 0x05, 0x22, 0x93, 0x01, 0x0a, 0x1d, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x65, 0x72, 0x52, 0x65,
0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x66, 0x72, 0x64, 0x72,
0x70, 0x63, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x72,
0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x6f, 0x75, 0x74,
0x6c, 0x69, 0x65, 0x72, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18,
0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6f, 0x75, 0x74, 0x6c, 0x69, 0x65, 0x72, 0x4d, 0x75,
0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x22, 0x8f, 0x01, 0x0a, 0x1f, 0x54, 0x68, 0x72,
0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x0b,
0x72, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x22, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65,
0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x74, 0x68, 0x72, 0x65,
0x73, 0x68, 0x6f, 0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb8, 0x01, 0x0a, 0x1c, 0x43,
0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x74,
0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20,
0x01, 0x28, 0x05, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65,
0x6c, 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64,
0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
0x12, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e,
0x65, 0x6c, 0x73, 0x12, 0x40, 0x0a, 0x0f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66,
0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x6e, 0x0a, 0x0e, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x5f,
0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x68, 0x61,
0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a, 0x0f,
0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18,
0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64,
0x43, 0x6c, 0x6f, 0x73, 0x65, 0x22, 0x71, 0x0a, 0x14, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65,
0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a,
0x0b, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03,
0x28, 0x09, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x1d,
0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a,
0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52,
0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x48, 0x0a, 0x15, 0x52, 0x65, 0x76, 0x65,
0x6e, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x2f, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x15, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x76, 0x65,
0x6e, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72,
0x74, 0x73, 0x22, 0xd5, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x52, 0x65,
0x70, 0x6f, 0x72, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x63,
0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x61,
0x72, 0x67, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x49, 0x0a, 0x0c, 0x70,
0x61, 0x69, 0x72, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x26, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x76, 0x65, 0x6e,
0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x70,
0x6f, 0x72, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x70, 0x61, 0x69, 0x72, 0x52,
0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x1a, 0x52, 0x0a, 0x10, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65,
0x70, 0x6f, 0x72, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x66, 0x72,
0x64, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xcc, 0x01, 0x0a, 0x0a, 0x50,
0x61, 0x69, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x6d, 0x6f,
0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x73, 0x61,
0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f,
0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x66,
0x65, 0x65, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x73, 0x61,
0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x66, 0x65, 0x65, 0x73, 0x4f, 0x75, 0x74,
0x67, 0x6f, 0x69, 0x6e, 0x67, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x6d, 0x6f,
0x75, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x73, 0x61,
0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x49,
0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x66,
0x65, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x73, 0x61,
0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x66, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x63,
0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x4d, 0x73, 0x61, 0x74, 0x22, 0x18, 0x0a, 0x16, 0x43, 0x68, 0x61,
0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x22, 0x5c, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e,
0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41,
0x0a, 0x10, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68,
0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70,
0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74,
0x52, 0x0f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74,
0x73, 0x22, 0xd1, 0x02, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x73,
0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x69,
0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x50, 0x6f,
0x69, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x65, 0x64,
0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10,
0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73,
0x12, 0x25, 0x0a, 0x0e, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e,
0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65,
0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x76, 0x6f, 0x6c, 0x75, 0x6d,
0x65, 0x5f, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18,
0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x63,
0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x76, 0x6f, 0x6c,
0x75, 0x6d, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x73, 0x61,
0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4f,
0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x66,
0x65, 0x65, 0x73, 0x5f, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18,
0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x66, 0x65, 0x65, 0x73, 0x45, 0x61, 0x72, 0x6e, 0x65,
0x64, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x6f,
0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70,
0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x72,
0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0xeb, 0x01, 0x0a, 0x13, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e,
0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a,
0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
0x04, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x12, 0x35, 0x0a,
0x0b, 0x67, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x13, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x72, 0x61, 0x6e,
0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x67, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61,
0x72, 0x69, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x0c, 0x66, 0x69, 0x61, 0x74, 0x5f, 0x62, 0x61, 0x63,
0x6b, 0x65, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x66, 0x72, 0x64,
0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x61, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x52,
0x0b, 0x66, 0x69, 0x61, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x39, 0x0a, 0x0d,
0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, 0x18, 0x08, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x74,
0x63, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f,
0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08,
0x02, 0x10, 0x03, 0x22, 0x48, 0x0a, 0x14, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52,
0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x72,
0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x66, 0x72, 0x64,
0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65,
0x52, 0x05, 0x72, 0x61, 0x74, 0x65, 0x73, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0x69, 0x0a,
0x0c, 0x42, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x14, 0x0a,
0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72,
0x69, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x69, 0x6d,
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x72,
0x69, 0x63, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08,
0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x5f, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x68,
0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65,
0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d,
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x74, 0x63, 0x5f, 0x70, 0x72,
0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x66, 0x72, 0x64, 0x72,
0x70, 0x63, 0x2e, 0x42, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52,
0x08, 0x62, 0x74, 0x63, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0xe4, 0x02, 0x0a, 0x10, 0x4e, 0x6f,
0x64, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d,
0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a,
0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52,
0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x61,
0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b,
0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x61, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x67,
0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x13, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x75, 0x6c,
0x61, 0x72, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x67, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69,
0x74, 0x79, 0x12, 0x43, 0x0a, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x63, 0x61, 0x74,
0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e,
0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x61, 0x74,
0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x10, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x61, 0x74,
0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x0c, 0x66, 0x69, 0x61, 0x74, 0x5f,
0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e,
0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x61, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x65,
0x6e, 0x64, 0x52, 0x0b, 0x66, 0x69, 0x61, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12,
0x39, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x73,
0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e,
0x42, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x0c, 0x63, 0x75,
0x73, 0x74, 0x6f, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04,
0x22, 0x83, 0x01, 0x0a, 0x0e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x61, 0x74, 0x65, 0x67,
0x6f, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x6e, 0x5f, 0x63, 0x68,
0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6f, 0x6e, 0x43, 0x68, 0x61,
0x69, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x66, 0x66, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18,
0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x66, 0x66, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12,
0x25, 0x0a, 0x0e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e,
0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x61,
0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x22, 0xe9, 0x02, 0x0a, 0x0b, 0x52, 0x65, 0x70, 0x6f, 0x72,
0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73,
0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e,
0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12,
0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52,
0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69,
0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12,
0x14, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x25, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x74,
0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f,
0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18,
0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x61, 0x74,
0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x07, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x61,
0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x61, 0x74, 0x12, 0x1c, 0x0a,
0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09,
0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e,
0x6f, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12,
0x31, 0x0a, 0x09, 0x62, 0x74, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x14, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x74, 0x63,
0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x08, 0x62, 0x74, 0x63, 0x50, 0x72, 0x69,
0x63, 0x65, 0x22, 0x42, 0x0a, 0x11, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72,
0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70,
0x63, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x72,
0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x22, 0x39, 0x0a, 0x12, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52,
0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d,
0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x6f, 0x69, 0x6e,
0x74, 0x22, 0xdd, 0x01, 0x0a, 0x13, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72,
0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x68, 0x61,
0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2b,
0x0a, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61,
0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x63, 0x68, 0x61, 0x6e, 0x6e,
0x65, 0x6c, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63,
0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
0x09, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c,
0x6f, 0x73, 0x65, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
0x63, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x78, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x70, 0x65,
0x6e, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x65,
0x6e, 0x46, 0x65, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x66, 0x65,
0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x46, 0x65,
0x65, 0x22, 0xa7, 0x01, 0x0a, 0x14, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x76, 0x65,
0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68,
0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
0x63, 0x68, 0x61, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61,
0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73,
0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f,
0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54,
0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74,
0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x45, 0x76, 0x65, 0x6e,
0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20,
0x01, 0x28, 0x03, 0x52, 0x06, 0x6c, 0x61, 0x73, 0x74, 0x49, 0x64, 0x22, 0x79, 0x0a, 0x15, 0x43,
0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68,
0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e,
0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
0x01, 0x28, 0x03, 0x52, 0x06, 0x6c, 0x61, 0x73, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x68,
0x61, 0x73, 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68,
0x61, 0x73, 0x4d, 0x6f, 0x72, 0x65, 0x22, 0xc1, 0x01, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x6e,
0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73,
0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65,
0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74,
0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x66, 0x72, 0x64, 0x72,
0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54,
0x79, 0x70, 0x65, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23,
0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18,
0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x61, 0x6c, 0x61,
0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x62, 0x61,
0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x72, 0x65, 0x6d,
0x6f, 0x74, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0xaf, 0x01, 0x0a, 0x18, 0x46,
0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74,
0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61,
0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69,
0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d,
0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x5f, 0x66,
0x6c, 0x6f, 0x6f, 0x72, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11,
0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x53, 0x61,
0x74, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65,
0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x75, 0x70, 0x74,
0x69, 0x6d, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0xff, 0x01, 0x0a,
0x19, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x62, 0x69, 0x6c, 0x69,
0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x65,
0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73,
0x12, 0x38, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x1e, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x6f, 0x72, 0x77, 0x61,
0x72, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72,
0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74,
0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64,
0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64,
0x54, 0x69, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x75, 0x70, 0x5f, 0x62, 0x75, 0x74, 0x5f, 0x69,
0x64, 0x6c, 0x65, 0x5f, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28,
0x0c, 0x52, 0x10, 0x75, 0x70, 0x42, 0x75, 0x74, 0x49, 0x64, 0x6c, 0x65, 0x42, 0x69, 0x74, 0x6d,
0x61, 0x73, 0x6b, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x68,
0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x75,
0x70, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0x8a,
0x01, 0x0a, 0x16, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x62, 0x69,
0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x63,
0x6b, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70,
0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x64, 0x78, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x66, 0x66, 0x65,
0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x18, 0x02,
0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55,
0x70, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72,
0x64, 0x65, 0x64, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x66,
0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, 0x53, 0x61, 0x74, 0x2a, 0xa1, 0x01, 0x0a, 0x0b,
0x47, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x12, 0x17, 0x0a, 0x13, 0x55,
0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x47, 0x52, 0x41, 0x4e, 0x55, 0x4c, 0x41, 0x52, 0x49,
0x54, 0x59, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45, 0x10, 0x01,
0x12, 0x10, 0x0a, 0x0c, 0x46, 0x49, 0x56, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45, 0x53,
0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x46, 0x49, 0x46, 0x54, 0x45, 0x45, 0x4e, 0x5f, 0x4d, 0x49,
0x4e, 0x55, 0x54, 0x45, 0x53, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x48, 0x49, 0x52, 0x54,
0x59, 0x5f, 0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45, 0x53, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x48,
0x4f, 0x55, 0x52, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x49, 0x58, 0x5f, 0x48, 0x4f, 0x55,
0x52, 0x53, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x57, 0x45, 0x4c, 0x56, 0x45, 0x5f, 0x48,
0x4f, 0x55, 0x52, 0x53, 0x10, 0x07, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x41, 0x59, 0x10, 0x08, 0x2a,
0x6a, 0x0a, 0x0b, 0x46, 0x69, 0x61, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x17,
0x0a, 0x13, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x46, 0x49, 0x41, 0x54, 0x42, 0x41,
0x43, 0x4b, 0x45, 0x4e, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x49, 0x4e, 0x43,
0x41, 0x50, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x49, 0x4e, 0x44, 0x45, 0x53, 0x4b,
0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x03, 0x12, 0x0d,
0x0a, 0x09, 0x43, 0x4f, 0x49, 0x4e, 0x47, 0x45, 0x43, 0x4b, 0x4f, 0x10, 0x04, 0x12, 0x0c, 0x0a,
0x08, 0x42, 0x49, 0x54, 0x46, 0x49, 0x4e, 0x45, 0x58, 0x10, 0x05, 0x2a, 0xa2, 0x02, 0x0a, 0x09,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b,
0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f,
0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x10, 0x01, 0x12, 0x17,
0x0a, 0x13, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c,
0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x48, 0x41, 0x4e, 0x4e,
0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x5f, 0x46, 0x45, 0x45, 0x10, 0x03, 0x12, 0x11, 0x0a,
0x0d, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x10, 0x04,
0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x43, 0x45, 0x49, 0x50, 0x54, 0x10, 0x05, 0x12, 0x0b, 0x0a,
0x07, 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x06, 0x12, 0x07, 0x0a, 0x03, 0x46, 0x45,
0x45, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x49, 0x52, 0x43, 0x55, 0x4c, 0x41, 0x52, 0x5f,
0x52, 0x45, 0x43, 0x45, 0x49, 0x50, 0x54, 0x10, 0x08, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x4f, 0x52,
0x57, 0x41, 0x52, 0x44, 0x10, 0x09, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52,
0x44, 0x5f, 0x46, 0x45, 0x45, 0x10, 0x0a, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x49, 0x52, 0x43, 0x55,
0x4c, 0x41, 0x52, 0x5f, 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x0b, 0x12, 0x10, 0x0a,
0x0c, 0x43, 0x49, 0x52, 0x43, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x46, 0x45, 0x45, 0x10, 0x0c, 0x12,
0x09, 0x0a, 0x05, 0x53, 0x57, 0x45, 0x45, 0x50, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x57,
0x45, 0x45, 0x50, 0x5f, 0x46, 0x45, 0x45, 0x10, 0x0e, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x48, 0x41,
0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x46, 0x45, 0x45, 0x10, 0x0f,
0x2a, 0x70, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74,
0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x48, 0x41, 0x4e, 0x5f, 0x45, 0x56, 0x45,
0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11,
0x43, 0x48, 0x41, 0x4e, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x49, 0x4e,
0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x48, 0x41, 0x4e, 0x5f, 0x45, 0x56, 0x45, 0x4e,
0x54, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x43,
0x48, 0x41, 0x4e, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45,
0x10, 0x03, 0x32, 0x83, 0x06, 0x0a, 0x0d, 0x46, 0x61, 0x72, 0x61, 0x64, 0x61, 0x79, 0x53, 0x65,
0x72, 0x76, 0x65, 0x72, 0x12, 0x65, 0x0a, 0x16, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x65, 0x72, 0x52,
0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25,
0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x65, 0x72, 0x52,
0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x43,
0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x18, 0x54,
0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63,
0x2e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d,
0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x24, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52,
0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x75,
0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1c, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63,
0x2e, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x52,
0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49,
0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x12, 0x1e, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63,
0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63,
0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x68,
0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70,
0x63, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x45,
0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74,
0x12, 0x18, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x75,
0x64, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x66, 0x72, 0x64,
0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65,
0x70, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c,
0x6f, 0x73, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x1b, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52,
0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a,
0x10, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74,
0x73, 0x12, 0x1c, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e,
0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
0x1d, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58,
0x0a, 0x11, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x62, 0x69, 0x6c,
0x69, 0x74, 0x79, 0x12, 0x20, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x6f, 0x72,
0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x66, 0x72, 0x64, 0x72, 0x70, 0x63, 0x2e, 0x46,
0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x29, 0x5a, 0x27, 0x67, 0x69, 0x74, 0x68,
0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x69, 0x6e, 0x67,
0x6c, 0x61, 0x62, 0x73, 0x2f, 0x66, 0x61, 0x72, 0x61, 0x64, 0x61, 0x79, 0x2f, 0x66, 0x72, 0x64,
0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_faraday_proto_rawDescOnce sync.Once
file_faraday_proto_rawDescData = file_faraday_proto_rawDesc
)
func file_faraday_proto_rawDescGZIP() []byte {
file_faraday_proto_rawDescOnce.Do(func() {
file_faraday_proto_rawDescData = protoimpl.X.CompressGZIP(file_faraday_proto_rawDescData)
})
return file_faraday_proto_rawDescData
}
var file_faraday_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
var file_faraday_proto_msgTypes = make([]protoimpl.MessageInfo, 29)
var file_faraday_proto_goTypes = []any{
(Granularity)(0), // 0: frdrpc.Granularity
(FiatBackend)(0), // 1: frdrpc.FiatBackend
(EntryType)(0), // 2: frdrpc.EntryType
(ChannelEventType)(0), // 3: frdrpc.ChannelEventType
(CloseRecommendationRequest_Metric)(0), // 4: frdrpc.CloseRecommendationRequest.Metric
(*CloseRecommendationRequest)(nil), // 5: frdrpc.CloseRecommendationRequest
(*OutlierRecommendationsRequest)(nil), // 6: frdrpc.OutlierRecommendationsRequest
(*ThresholdRecommendationsRequest)(nil), // 7: frdrpc.ThresholdRecommendationsRequest
(*CloseRecommendationsResponse)(nil), // 8: frdrpc.CloseRecommendationsResponse
(*Recommendation)(nil), // 9: frdrpc.Recommendation
(*RevenueReportRequest)(nil), // 10: frdrpc.RevenueReportRequest
(*RevenueReportResponse)(nil), // 11: frdrpc.RevenueReportResponse
(*RevenueReport)(nil), // 12: frdrpc.RevenueReport
(*PairReport)(nil), // 13: frdrpc.PairReport
(*ChannelInsightsRequest)(nil), // 14: frdrpc.ChannelInsightsRequest
(*ChannelInsightsResponse)(nil), // 15: frdrpc.ChannelInsightsResponse
(*ChannelInsight)(nil), // 16: frdrpc.ChannelInsight
(*ExchangeRateRequest)(nil), // 17: frdrpc.ExchangeRateRequest
(*ExchangeRateResponse)(nil), // 18: frdrpc.ExchangeRateResponse
(*BitcoinPrice)(nil), // 19: frdrpc.BitcoinPrice
(*ExchangeRate)(nil), // 20: frdrpc.ExchangeRate
(*NodeAuditRequest)(nil), // 21: frdrpc.NodeAuditRequest
(*CustomCategory)(nil), // 22: frdrpc.CustomCategory
(*ReportEntry)(nil), // 23: frdrpc.ReportEntry
(*NodeAuditResponse)(nil), // 24: frdrpc.NodeAuditResponse
(*CloseReportRequest)(nil), // 25: frdrpc.CloseReportRequest
(*CloseReportResponse)(nil), // 26: frdrpc.CloseReportResponse
(*ChannelEventsRequest)(nil), // 27: frdrpc.ChannelEventsRequest
(*ChannelEventsResponse)(nil), // 28: frdrpc.ChannelEventsResponse
(*ChannelEvent)(nil), // 29: frdrpc.ChannelEvent
(*ForwardingAbilityRequest)(nil), // 30: frdrpc.ForwardingAbilityRequest
(*ForwardingAbilityResponse)(nil), // 31: frdrpc.ForwardingAbilityResponse
(*ForwardingAbilityEntry)(nil), // 32: frdrpc.ForwardingAbilityEntry
nil, // 33: frdrpc.RevenueReport.PairReportsEntry
}
var file_faraday_proto_depIdxs = []int32{
4, // 0: frdrpc.CloseRecommendationRequest.metric:type_name -> frdrpc.CloseRecommendationRequest.Metric
5, // 1: frdrpc.OutlierRecommendationsRequest.rec_request:type_name -> frdrpc.CloseRecommendationRequest
5, // 2: frdrpc.ThresholdRecommendationsRequest.rec_request:type_name -> frdrpc.CloseRecommendationRequest
9, // 3: frdrpc.CloseRecommendationsResponse.recommendations:type_name -> frdrpc.Recommendation
12, // 4: frdrpc.RevenueReportResponse.reports:type_name -> frdrpc.RevenueReport
33, // 5: frdrpc.RevenueReport.pair_reports:type_name -> frdrpc.RevenueReport.PairReportsEntry
16, // 6: frdrpc.ChannelInsightsResponse.channel_insights:type_name -> frdrpc.ChannelInsight
0, // 7: frdrpc.ExchangeRateRequest.granularity:type_name -> frdrpc.Granularity
1, // 8: frdrpc.ExchangeRateRequest.fiat_backend:type_name -> frdrpc.FiatBackend
19, // 9: frdrpc.ExchangeRateRequest.custom_prices:type_name -> frdrpc.BitcoinPrice
20, // 10: frdrpc.ExchangeRateResponse.rates:type_name -> frdrpc.ExchangeRate
19, // 11: frdrpc.ExchangeRate.btc_price:type_name -> frdrpc.BitcoinPrice
0, // 12: frdrpc.NodeAuditRequest.granularity:type_name -> frdrpc.Granularity
22, // 13: frdrpc.NodeAuditRequest.custom_categories:type_name -> frdrpc.CustomCategory
1, // 14: frdrpc.NodeAuditRequest.fiat_backend:type_name -> frdrpc.FiatBackend
19, // 15: frdrpc.NodeAuditRequest.custom_prices:type_name -> frdrpc.BitcoinPrice
2, // 16: frdrpc.ReportEntry.type:type_name -> frdrpc.EntryType
19, // 17: frdrpc.ReportEntry.btc_price:type_name -> frdrpc.BitcoinPrice
23, // 18: frdrpc.NodeAuditResponse.reports:type_name -> frdrpc.ReportEntry
29, // 19: frdrpc.ChannelEventsResponse.events:type_name -> frdrpc.ChannelEvent
3, // 20: frdrpc.ChannelEvent.event_type:type_name -> frdrpc.ChannelEventType
32, // 21: frdrpc.ForwardingAbilityResponse.entries:type_name -> frdrpc.ForwardingAbilityEntry
13, // 22: frdrpc.RevenueReport.PairReportsEntry.value:type_name -> frdrpc.PairReport
6, // 23: frdrpc.FaradayServer.OutlierRecommendations:input_type -> frdrpc.OutlierRecommendationsRequest
7, // 24: frdrpc.FaradayServer.ThresholdRecommendations:input_type -> frdrpc.ThresholdRecommendationsRequest
10, // 25: frdrpc.FaradayServer.RevenueReport:input_type -> frdrpc.RevenueReportRequest
14, // 26: frdrpc.FaradayServer.ChannelInsights:input_type -> frdrpc.ChannelInsightsRequest
17, // 27: frdrpc.FaradayServer.ExchangeRate:input_type -> frdrpc.ExchangeRateRequest
21, // 28: frdrpc.FaradayServer.NodeAudit:input_type -> frdrpc.NodeAuditRequest
25, // 29: frdrpc.FaradayServer.CloseReport:input_type -> frdrpc.CloseReportRequest
27, // 30: frdrpc.FaradayServer.GetChannelEvents:input_type -> frdrpc.ChannelEventsRequest
30, // 31: frdrpc.FaradayServer.ForwardingAbility:input_type -> frdrpc.ForwardingAbilityRequest
8, // 32: frdrpc.FaradayServer.OutlierRecommendations:output_type -> frdrpc.CloseRecommendationsResponse
8, // 33: frdrpc.FaradayServer.ThresholdRecommendations:output_type -> frdrpc.CloseRecommendationsResponse
11, // 34: frdrpc.FaradayServer.RevenueReport:output_type -> frdrpc.RevenueReportResponse
15, // 35: frdrpc.FaradayServer.ChannelInsights:output_type -> frdrpc.ChannelInsightsResponse
18, // 36: frdrpc.FaradayServer.ExchangeRate:output_type -> frdrpc.ExchangeRateResponse
24, // 37: frdrpc.FaradayServer.NodeAudit:output_type -> frdrpc.NodeAuditResponse
26, // 38: frdrpc.FaradayServer.CloseReport:output_type -> frdrpc.CloseReportResponse
28, // 39: frdrpc.FaradayServer.GetChannelEvents:output_type -> frdrpc.ChannelEventsResponse
31, // 40: frdrpc.FaradayServer.ForwardingAbility:output_type -> frdrpc.ForwardingAbilityResponse
32, // [32:41] is the sub-list for method output_type
23, // [23:32] is the sub-list for method input_type
23, // [23:23] is the sub-list for extension type_name
23, // [23:23] is the sub-list for extension extendee
0, // [0:23] is the sub-list for field type_name
}
func init() { file_faraday_proto_init() }
func file_faraday_proto_init() {
if File_faraday_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_faraday_proto_msgTypes[0].Exporter = func(v any, i int) any {
switch v := v.(*CloseRecommendationRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[1].Exporter = func(v any, i int) any {
switch v := v.(*OutlierRecommendationsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[2].Exporter = func(v any, i int) any {
switch v := v.(*ThresholdRecommendationsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[3].Exporter = func(v any, i int) any {
switch v := v.(*CloseRecommendationsResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[4].Exporter = func(v any, i int) any {
switch v := v.(*Recommendation); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[5].Exporter = func(v any, i int) any {
switch v := v.(*RevenueReportRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[6].Exporter = func(v any, i int) any {
switch v := v.(*RevenueReportResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[7].Exporter = func(v any, i int) any {
switch v := v.(*RevenueReport); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[8].Exporter = func(v any, i int) any {
switch v := v.(*PairReport); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[9].Exporter = func(v any, i int) any {
switch v := v.(*ChannelInsightsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[10].Exporter = func(v any, i int) any {
switch v := v.(*ChannelInsightsResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[11].Exporter = func(v any, i int) any {
switch v := v.(*ChannelInsight); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[12].Exporter = func(v any, i int) any {
switch v := v.(*ExchangeRateRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[13].Exporter = func(v any, i int) any {
switch v := v.(*ExchangeRateResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[14].Exporter = func(v any, i int) any {
switch v := v.(*BitcoinPrice); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[15].Exporter = func(v any, i int) any {
switch v := v.(*ExchangeRate); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[16].Exporter = func(v any, i int) any {
switch v := v.(*NodeAuditRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[17].Exporter = func(v any, i int) any {
switch v := v.(*CustomCategory); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[18].Exporter = func(v any, i int) any {
switch v := v.(*ReportEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[19].Exporter = func(v any, i int) any {
switch v := v.(*NodeAuditResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[20].Exporter = func(v any, i int) any {
switch v := v.(*CloseReportRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[21].Exporter = func(v any, i int) any {
switch v := v.(*CloseReportResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[22].Exporter = func(v any, i int) any {
switch v := v.(*ChannelEventsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[23].Exporter = func(v any, i int) any {
switch v := v.(*ChannelEventsResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[24].Exporter = func(v any, i int) any {
switch v := v.(*ChannelEvent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[25].Exporter = func(v any, i int) any {
switch v := v.(*ForwardingAbilityRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[26].Exporter = func(v any, i int) any {
switch v := v.(*ForwardingAbilityResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_faraday_proto_msgTypes[27].Exporter = func(v any, i int) any {
switch v := v.(*ForwardingAbilityEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_faraday_proto_rawDesc,
NumEnums: 5,
NumMessages: 29,
NumExtensions: 0,
NumServices: 1,
},
GoTypes: file_faraday_proto_goTypes,
DependencyIndexes: file_faraday_proto_depIdxs,
EnumInfos: file_faraday_proto_enumTypes,
MessageInfos: file_faraday_proto_msgTypes,
}.Build()
File_faraday_proto = out.File
file_faraday_proto_rawDesc = nil
file_faraday_proto_goTypes = nil
file_faraday_proto_depIdxs = nil
}