faraday/frdrpc/faraday.pb.go
2021-09-01 09:07:35 +02:00

2632 lines
97 KiB
Go

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.26.0
// protoc v3.6.1
// 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
)
// Enum value maps for FiatBackend.
var (
FiatBackend_name = map[int32]string{
0: "UNKNOWN_FIATBACKEND",
1: "COINCAP",
2: "COINDESK",
3: "CUSTOM",
4: "COINGECKO",
}
FiatBackend_value = map[string]int32{
"UNKNOWN_FIATBACKEND": 0,
"COINCAP": 1,
"COINDESK": 2,
"CUSTOM": 3,
"COINGECKO": 4,
}
)
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 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[3].Descriptor()
}
func (CloseRecommendationRequest_Metric) Type() protoreflect.EnumType {
return &file_faraday_proto_enumTypes[3]
}
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 ""
}
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, 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, 0x5c, 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, 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, 0x32, 0xd8, 0x04, 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, 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, 4)
var file_faraday_proto_msgTypes = make([]protoimpl.MessageInfo, 23)
var file_faraday_proto_goTypes = []interface{}{
(Granularity)(0), // 0: frdrpc.Granularity
(FiatBackend)(0), // 1: frdrpc.FiatBackend
(EntryType)(0), // 2: frdrpc.EntryType
(CloseRecommendationRequest_Metric)(0), // 3: frdrpc.CloseRecommendationRequest.Metric
(*CloseRecommendationRequest)(nil), // 4: frdrpc.CloseRecommendationRequest
(*OutlierRecommendationsRequest)(nil), // 5: frdrpc.OutlierRecommendationsRequest
(*ThresholdRecommendationsRequest)(nil), // 6: frdrpc.ThresholdRecommendationsRequest
(*CloseRecommendationsResponse)(nil), // 7: frdrpc.CloseRecommendationsResponse
(*Recommendation)(nil), // 8: frdrpc.Recommendation
(*RevenueReportRequest)(nil), // 9: frdrpc.RevenueReportRequest
(*RevenueReportResponse)(nil), // 10: frdrpc.RevenueReportResponse
(*RevenueReport)(nil), // 11: frdrpc.RevenueReport
(*PairReport)(nil), // 12: frdrpc.PairReport
(*ChannelInsightsRequest)(nil), // 13: frdrpc.ChannelInsightsRequest
(*ChannelInsightsResponse)(nil), // 14: frdrpc.ChannelInsightsResponse
(*ChannelInsight)(nil), // 15: frdrpc.ChannelInsight
(*ExchangeRateRequest)(nil), // 16: frdrpc.ExchangeRateRequest
(*ExchangeRateResponse)(nil), // 17: frdrpc.ExchangeRateResponse
(*BitcoinPrice)(nil), // 18: frdrpc.BitcoinPrice
(*ExchangeRate)(nil), // 19: frdrpc.ExchangeRate
(*NodeAuditRequest)(nil), // 20: frdrpc.NodeAuditRequest
(*CustomCategory)(nil), // 21: frdrpc.CustomCategory
(*ReportEntry)(nil), // 22: frdrpc.ReportEntry
(*NodeAuditResponse)(nil), // 23: frdrpc.NodeAuditResponse
(*CloseReportRequest)(nil), // 24: frdrpc.CloseReportRequest
(*CloseReportResponse)(nil), // 25: frdrpc.CloseReportResponse
nil, // 26: frdrpc.RevenueReport.PairReportsEntry
}
var file_faraday_proto_depIdxs = []int32{
3, // 0: frdrpc.CloseRecommendationRequest.metric:type_name -> frdrpc.CloseRecommendationRequest.Metric
4, // 1: frdrpc.OutlierRecommendationsRequest.rec_request:type_name -> frdrpc.CloseRecommendationRequest
4, // 2: frdrpc.ThresholdRecommendationsRequest.rec_request:type_name -> frdrpc.CloseRecommendationRequest
8, // 3: frdrpc.CloseRecommendationsResponse.recommendations:type_name -> frdrpc.Recommendation
11, // 4: frdrpc.RevenueReportResponse.reports:type_name -> frdrpc.RevenueReport
26, // 5: frdrpc.RevenueReport.pair_reports:type_name -> frdrpc.RevenueReport.PairReportsEntry
15, // 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
18, // 9: frdrpc.ExchangeRateRequest.custom_prices:type_name -> frdrpc.BitcoinPrice
19, // 10: frdrpc.ExchangeRateResponse.rates:type_name -> frdrpc.ExchangeRate
18, // 11: frdrpc.ExchangeRate.btc_price:type_name -> frdrpc.BitcoinPrice
0, // 12: frdrpc.NodeAuditRequest.granularity:type_name -> frdrpc.Granularity
21, // 13: frdrpc.NodeAuditRequest.custom_categories:type_name -> frdrpc.CustomCategory
1, // 14: frdrpc.NodeAuditRequest.fiat_backend:type_name -> frdrpc.FiatBackend
18, // 15: frdrpc.NodeAuditRequest.custom_prices:type_name -> frdrpc.BitcoinPrice
2, // 16: frdrpc.ReportEntry.type:type_name -> frdrpc.EntryType
18, // 17: frdrpc.ReportEntry.btc_price:type_name -> frdrpc.BitcoinPrice
22, // 18: frdrpc.NodeAuditResponse.reports:type_name -> frdrpc.ReportEntry
12, // 19: frdrpc.RevenueReport.PairReportsEntry.value:type_name -> frdrpc.PairReport
5, // 20: frdrpc.FaradayServer.OutlierRecommendations:input_type -> frdrpc.OutlierRecommendationsRequest
6, // 21: frdrpc.FaradayServer.ThresholdRecommendations:input_type -> frdrpc.ThresholdRecommendationsRequest
9, // 22: frdrpc.FaradayServer.RevenueReport:input_type -> frdrpc.RevenueReportRequest
13, // 23: frdrpc.FaradayServer.ChannelInsights:input_type -> frdrpc.ChannelInsightsRequest
16, // 24: frdrpc.FaradayServer.ExchangeRate:input_type -> frdrpc.ExchangeRateRequest
20, // 25: frdrpc.FaradayServer.NodeAudit:input_type -> frdrpc.NodeAuditRequest
24, // 26: frdrpc.FaradayServer.CloseReport:input_type -> frdrpc.CloseReportRequest
7, // 27: frdrpc.FaradayServer.OutlierRecommendations:output_type -> frdrpc.CloseRecommendationsResponse
7, // 28: frdrpc.FaradayServer.ThresholdRecommendations:output_type -> frdrpc.CloseRecommendationsResponse
10, // 29: frdrpc.FaradayServer.RevenueReport:output_type -> frdrpc.RevenueReportResponse
14, // 30: frdrpc.FaradayServer.ChannelInsights:output_type -> frdrpc.ChannelInsightsResponse
17, // 31: frdrpc.FaradayServer.ExchangeRate:output_type -> frdrpc.ExchangeRateResponse
23, // 32: frdrpc.FaradayServer.NodeAudit:output_type -> frdrpc.NodeAuditResponse
25, // 33: frdrpc.FaradayServer.CloseReport:output_type -> frdrpc.CloseReportResponse
27, // [27:34] is the sub-list for method output_type
20, // [20:27] is the sub-list for method input_type
20, // [20:20] is the sub-list for extension type_name
20, // [20:20] is the sub-list for extension extendee
0, // [0:20] 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 interface{}, i int) interface{} {
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 interface{}, i int) interface{} {
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 interface{}, i int) interface{} {
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 interface{}, i int) interface{} {
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 interface{}, i int) interface{} {
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 interface{}, i int) interface{} {
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 interface{}, i int) interface{} {
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 interface{}, i int) interface{} {
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 interface{}, i int) interface{} {
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 interface{}, i int) interface{} {
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 interface{}, i int) interface{} {
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 interface{}, i int) interface{} {
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 interface{}, i int) interface{} {
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 interface{}, i int) interface{} {
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 interface{}, i int) interface{} {
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 interface{}, i int) interface{} {
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 interface{}, i int) interface{} {
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 interface{}, i int) interface{} {
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 interface{}, i int) interface{} {
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 interface{}, i int) interface{} {
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 interface{}, i int) interface{} {
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 interface{}, i int) interface{} {
switch v := v.(*CloseReportResponse); 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: 4,
NumMessages: 23,
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
}