clmrpc: add Leases RPC

This commit is contained in:
Wilmer Paulino 2020-09-09 13:35:06 -07:00
parent a561562e3b
commit 9becbf6231
No known key found for this signature in database
GPG key ID: 6DF57B9F9514972F
5 changed files with 864 additions and 133 deletions

View file

@ -1805,6 +1805,225 @@ func (m *AuctionFeeResponse) GetExecutionFee() *ExecutionFee {
return nil
}
type Lease struct {
// The outpoint of the channel created.
ChannelPoint *OutPoint `protobuf:"bytes,1,opt,name=channel_point,json=channelPoint,proto3" json:"channel_point,omitempty"`
// The amount, in satoshis, of the channel created.
ChannelAmtSat uint64 `protobuf:"varint,2,opt,name=channel_amt_sat,json=channelAmtSat,proto3" json:"channel_amt_sat,omitempty"`
// The intended duration, in blocks, of the channel created.
ChannelDurationBlocks uint32 `protobuf:"varint,3,opt,name=channel_duration_blocks,json=channelDurationBlocks,proto3" json:"channel_duration_blocks,omitempty"`
//
//The premium, in satoshis, either paid or received for the offered liquidity.
PremiumSat uint64 `protobuf:"varint,4,opt,name=premium_sat,json=premiumSat,proto3" json:"premium_sat,omitempty"`
//
//The execution fee, in satoshis, charged by the auctioneer for the channel
//created.
ExecutionFeeSat uint64 `protobuf:"varint,5,opt,name=execution_fee_sat,json=executionFeeSat,proto3" json:"execution_fee_sat,omitempty"`
//
//The fee, in satoshis, charged by the auctioneer for the batch execution
//transaction that created this lease.
ChainFeeSat uint64 `protobuf:"varint,6,opt,name=chain_fee_sat,json=chainFeeSat,proto3" json:"chain_fee_sat,omitempty"`
// The order executed that resulted in the channel created.
OrderNonce []byte `protobuf:"bytes,7,opt,name=order_nonce,json=orderNonce,proto3" json:"order_nonce,omitempty"`
// Whether this channel was purchased from another trader or not.
Purchased bool `protobuf:"varint,8,opt,name=purchased,proto3" json:"purchased,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Lease) Reset() { *m = Lease{} }
func (m *Lease) String() string { return proto.CompactTextString(m) }
func (*Lease) ProtoMessage() {}
func (*Lease) Descriptor() ([]byte, []int) {
return fileDescriptor_b8f61804588c75fe, []int{30}
}
func (m *Lease) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Lease.Unmarshal(m, b)
}
func (m *Lease) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Lease.Marshal(b, m, deterministic)
}
func (m *Lease) XXX_Merge(src proto.Message) {
xxx_messageInfo_Lease.Merge(m, src)
}
func (m *Lease) XXX_Size() int {
return xxx_messageInfo_Lease.Size(m)
}
func (m *Lease) XXX_DiscardUnknown() {
xxx_messageInfo_Lease.DiscardUnknown(m)
}
var xxx_messageInfo_Lease proto.InternalMessageInfo
func (m *Lease) GetChannelPoint() *OutPoint {
if m != nil {
return m.ChannelPoint
}
return nil
}
func (m *Lease) GetChannelAmtSat() uint64 {
if m != nil {
return m.ChannelAmtSat
}
return 0
}
func (m *Lease) GetChannelDurationBlocks() uint32 {
if m != nil {
return m.ChannelDurationBlocks
}
return 0
}
func (m *Lease) GetPremiumSat() uint64 {
if m != nil {
return m.PremiumSat
}
return 0
}
func (m *Lease) GetExecutionFeeSat() uint64 {
if m != nil {
return m.ExecutionFeeSat
}
return 0
}
func (m *Lease) GetChainFeeSat() uint64 {
if m != nil {
return m.ChainFeeSat
}
return 0
}
func (m *Lease) GetOrderNonce() []byte {
if m != nil {
return m.OrderNonce
}
return nil
}
func (m *Lease) GetPurchased() bool {
if m != nil {
return m.Purchased
}
return false
}
type LeasesRequest struct {
//
//An optional list of batches to retrieve the leases of. If empty, leases
//throughout all batches are returned.
BatchIds [][]byte `protobuf:"bytes,1,rep,name=batch_ids,json=batchIds,proto3" json:"batch_ids,omitempty"`
//
//An optional list of accounts to retrieve the leases of. If empty, leases
//for all accounts are returned.
Accounts [][]byte `protobuf:"bytes,2,rep,name=accounts,proto3" json:"accounts,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *LeasesRequest) Reset() { *m = LeasesRequest{} }
func (m *LeasesRequest) String() string { return proto.CompactTextString(m) }
func (*LeasesRequest) ProtoMessage() {}
func (*LeasesRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_b8f61804588c75fe, []int{31}
}
func (m *LeasesRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LeasesRequest.Unmarshal(m, b)
}
func (m *LeasesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_LeasesRequest.Marshal(b, m, deterministic)
}
func (m *LeasesRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_LeasesRequest.Merge(m, src)
}
func (m *LeasesRequest) XXX_Size() int {
return xxx_messageInfo_LeasesRequest.Size(m)
}
func (m *LeasesRequest) XXX_DiscardUnknown() {
xxx_messageInfo_LeasesRequest.DiscardUnknown(m)
}
var xxx_messageInfo_LeasesRequest proto.InternalMessageInfo
func (m *LeasesRequest) GetBatchIds() [][]byte {
if m != nil {
return m.BatchIds
}
return nil
}
func (m *LeasesRequest) GetAccounts() [][]byte {
if m != nil {
return m.Accounts
}
return nil
}
type LeasesResponse struct {
// The relevant list of leases purchased or sold within the auction.
Leases []*Lease `protobuf:"bytes,1,rep,name=leases,proto3" json:"leases,omitempty"`
// The total amount of satoshis earned from the leases returned.
TotalAmtEarnedSat uint64 `protobuf:"varint,2,opt,name=total_amt_earned_sat,json=totalAmtEarnedSat,proto3" json:"total_amt_earned_sat,omitempty"`
// The total amount of satoshis paid for the leases returned.
TotalAmtPaidSat uint64 `protobuf:"varint,3,opt,name=total_amt_paid_sat,json=totalAmtPaidSat,proto3" json:"total_amt_paid_sat,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *LeasesResponse) Reset() { *m = LeasesResponse{} }
func (m *LeasesResponse) String() string { return proto.CompactTextString(m) }
func (*LeasesResponse) ProtoMessage() {}
func (*LeasesResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_b8f61804588c75fe, []int{32}
}
func (m *LeasesResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LeasesResponse.Unmarshal(m, b)
}
func (m *LeasesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_LeasesResponse.Marshal(b, m, deterministic)
}
func (m *LeasesResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_LeasesResponse.Merge(m, src)
}
func (m *LeasesResponse) XXX_Size() int {
return xxx_messageInfo_LeasesResponse.Size(m)
}
func (m *LeasesResponse) XXX_DiscardUnknown() {
xxx_messageInfo_LeasesResponse.DiscardUnknown(m)
}
var xxx_messageInfo_LeasesResponse proto.InternalMessageInfo
func (m *LeasesResponse) GetLeases() []*Lease {
if m != nil {
return m.Leases
}
return nil
}
func (m *LeasesResponse) GetTotalAmtEarnedSat() uint64 {
if m != nil {
return m.TotalAmtEarnedSat
}
return 0
}
func (m *LeasesResponse) GetTotalAmtPaidSat() uint64 {
if m != nil {
return m.TotalAmtPaidSat
}
return 0
}
type TokensRequest struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1815,7 +2034,7 @@ func (m *TokensRequest) Reset() { *m = TokensRequest{} }
func (m *TokensRequest) String() string { return proto.CompactTextString(m) }
func (*TokensRequest) ProtoMessage() {}
func (*TokensRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_b8f61804588c75fe, []int{30}
return fileDescriptor_b8f61804588c75fe, []int{33}
}
func (m *TokensRequest) XXX_Unmarshal(b []byte) error {
@ -1849,7 +2068,7 @@ func (m *TokensResponse) Reset() { *m = TokensResponse{} }
func (m *TokensResponse) String() string { return proto.CompactTextString(m) }
func (*TokensResponse) ProtoMessage() {}
func (*TokensResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_b8f61804588c75fe, []int{31}
return fileDescriptor_b8f61804588c75fe, []int{34}
}
func (m *TokensResponse) XXX_Unmarshal(b []byte) error {
@ -1914,7 +2133,7 @@ func (m *LsatToken) Reset() { *m = LsatToken{} }
func (m *LsatToken) String() string { return proto.CompactTextString(m) }
func (*LsatToken) ProtoMessage() {}
func (*LsatToken) Descriptor() ([]byte, []int) {
return fileDescriptor_b8f61804588c75fe, []int{32}
return fileDescriptor_b8f61804588c75fe, []int{35}
}
func (m *LsatToken) XXX_Unmarshal(b []byte) error {
@ -2023,6 +2242,9 @@ func init() {
proto.RegisterType((*RecoverAccountsResponse)(nil), "poolrpc.RecoverAccountsResponse")
proto.RegisterType((*AuctionFeeRequest)(nil), "poolrpc.AuctionFeeRequest")
proto.RegisterType((*AuctionFeeResponse)(nil), "poolrpc.AuctionFeeResponse")
proto.RegisterType((*Lease)(nil), "poolrpc.Lease")
proto.RegisterType((*LeasesRequest)(nil), "poolrpc.LeasesRequest")
proto.RegisterType((*LeasesResponse)(nil), "poolrpc.LeasesResponse")
proto.RegisterType((*TokensRequest)(nil), "poolrpc.TokensRequest")
proto.RegisterType((*TokensResponse)(nil), "poolrpc.TokensResponse")
proto.RegisterType((*LsatToken)(nil), "poolrpc.LsatToken")
@ -2031,132 +2253,146 @@ func init() {
func init() { proto.RegisterFile("trader.proto", fileDescriptor_b8f61804588c75fe) }
var fileDescriptor_b8f61804588c75fe = []byte{
// 1990 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0xeb, 0x72, 0x23, 0x47,
0x15, 0xb6, 0x7c, 0xf7, 0xd1, 0xd5, 0x2d, 0xad, 0xed, 0xd5, 0xda, 0x6b, 0xef, 0x40, 0xc0, 0xeb,
0x2c, 0x56, 0xc5, 0x90, 0xa2, 0x2a, 0xa4, 0x00, 0xcb, 0x96, 0x23, 0x57, 0x36, 0xb6, 0x19, 0x3b,
0x4b, 0x12, 0xaa, 0x98, 0x6a, 0x69, 0x5a, 0x52, 0xe3, 0xb9, 0x28, 0xd3, 0x3d, 0xbe, 0x90, 0xe2,
0x0f, 0xf0, 0x00, 0x14, 0x29, 0x9e, 0x86, 0x17, 0xe0, 0x07, 0xff, 0xe0, 0x11, 0xf8, 0xcb, 0x3b,
0xa4, 0xfa, 0x36, 0x9a, 0x91, 0xe4, 0xbd, 0xe4, 0x9f, 0xe6, 0x3b, 0xa7, 0xfb, 0x3b, 0xe7, 0xf4,
0x39, 0x7d, 0x4e, 0x0b, 0x0a, 0x3c, 0xc2, 0x2e, 0x89, 0xf6, 0x87, 0x51, 0xc8, 0x43, 0xb4, 0x34,
0x0c, 0x43, 0x2f, 0x1a, 0x76, 0xeb, 0x9b, 0xfd, 0x30, 0xec, 0x7b, 0xa4, 0x81, 0x87, 0xb4, 0x81,
0x83, 0x20, 0xe4, 0x98, 0xd3, 0x30, 0x60, 0x4a, 0xad, 0x5e, 0xc1, 0x71, 0x57, 0x7c, 0x13, 0xb3,
0xd0, 0xfa, 0x77, 0x0e, 0xd0, 0x69, 0x40, 0xf9, 0x61, 0xb7, 0x1b, 0xc6, 0x01, 0xb7, 0xc9, 0xd7,
0x31, 0x61, 0x1c, 0xfd, 0x00, 0x8a, 0x58, 0x21, 0xce, 0x0d, 0xf6, 0x62, 0xb2, 0x91, 0xdb, 0xc9,
0xed, 0xce, 0xdb, 0x05, 0x0d, 0xbe, 0x12, 0x18, 0x7a, 0x0e, 0x65, 0xdc, 0x61, 0xa1, 0x17, 0x73,
0xe2, 0x0c, 0x08, 0xed, 0x0f, 0xf8, 0xc6, 0xec, 0x4e, 0x6e, 0xb7, 0xd8, 0x9e, 0xb1, 0x4b, 0x46,
0xd0, 0x96, 0xb8, 0x50, 0x8d, 0x88, 0x87, 0x39, 0xbd, 0x49, 0x54, 0xe7, 0x8c, 0xaa, 0x11, 0x68,
0xd5, 0x67, 0x90, 0xef, 0x86, 0x41, 0xcf, 0xe1, 0x38, 0xea, 0x13, 0xbe, 0x31, 0x2f, 0xd5, 0x72,
0x36, 0x08, 0xf0, 0x4a, 0x62, 0xcd, 0x0a, 0x94, 0x8c, 0x75, 0xe4, 0x6e, 0x48, 0xa3, 0xfb, 0xe6,
0x22, 0xcc, 0xf7, 0x08, 0x61, 0x16, 0x81, 0xea, 0x6f, 0xe2, 0x90, 0x93, 0xef, 0xe3, 0xce, 0x18,
0xb1, 0x71, 0x25, 0x4d, 0x6c, 0x68, 0x6e, 0xa1, 0x96, 0xa5, 0x61, 0xc3, 0x30, 0x60, 0x04, 0xfd,
0x1c, 0x1e, 0xfb, 0x34, 0x20, 0x91, 0xd3, 0x23, 0xc4, 0x89, 0x30, 0x27, 0x0e, 0xc3, 0xdc, 0x19,
0x92, 0xc8, 0xb9, 0xbe, 0xd5, 0x9c, 0x35, 0xa9, 0x70, 0x42, 0x88, 0x8d, 0x39, 0xb9, 0xc4, 0xfc,
0x82, 0x44, 0x9f, 0xde, 0xa2, 0x1f, 0x41, 0x79, 0xb4, 0x90, 0x87, 0x1c, 0x7b, 0x92, 0x7f, 0xde,
0x2e, 0x1a, 0xf5, 0x2b, 0x01, 0x5a, 0x8f, 0xa0, 0xfa, 0x92, 0x32, 0x73, 0x5a, 0x4c, 0xfb, 0x67,
0x1d, 0x43, 0x2d, 0x0b, 0x6b, 0x7b, 0x5e, 0xc0, 0xb2, 0x76, 0x91, 0x6d, 0xe4, 0x76, 0xe6, 0x76,
0xf3, 0x07, 0x95, 0x7d, 0x9d, 0x29, 0xfb, 0xc6, 0xf6, 0x44, 0xc3, 0xfa, 0x15, 0x2c, 0x9e, 0xc7,
0x7c, 0x18, 0x73, 0xf4, 0x04, 0x56, 0x64, 0x9c, 0x84, 0xf9, 0xda, 0xee, 0x65, 0x09, 0x5c, 0x62,
0x8e, 0x36, 0x60, 0x09, 0xbb, 0x6e, 0x44, 0x18, 0x93, 0x36, 0xae, 0xd8, 0xe6, 0xd3, 0xfa, 0x6b,
0x0e, 0x8a, 0x6a, 0x87, 0xdf, 0x52, 0x3e, 0x38, 0x21, 0x24, 0xad, 0x9b, 0xcb, 0xe8, 0xbe, 0x45,
0xb4, 0xd1, 0x3e, 0x54, 0xa7, 0xc5, 0x51, 0x24, 0xce, 0x7c, 0x7b, 0xc6, 0x2e, 0xf7, 0xb2, 0x41,
0x4c, 0x4e, 0xe7, 0x08, 0xd6, 0x94, 0x15, 0x4c, 0x98, 0x71, 0xea, 0x0f, 0x3d, 0xda, 0xa5, 0x5c,
0x98, 0xf3, 0x1c, 0x96, 0x42, 0x25, 0xd1, 0xe1, 0x28, 0x27, 0xe1, 0x50, 0x2b, 0x6c, 0x23, 0xb7,
0xfe, 0x95, 0x83, 0xea, 0x91, 0x17, 0xb2, 0xf1, 0x54, 0xda, 0x02, 0x50, 0x95, 0xe7, 0x5c, 0x93,
0x7b, 0xe9, 0x54, 0xc1, 0x5e, 0x51, 0xc8, 0xa7, 0xe4, 0x1e, 0xfd, 0x1a, 0xca, 0x6a, 0x07, 0xe7,
0x96, 0xf2, 0x81, 0x38, 0x4e, 0xe9, 0x5a, 0xfe, 0x60, 0x6d, 0x8c, 0x49, 0x47, 0xa8, 0x3d, 0x63,
0x17, 0xc3, 0x4c, 0xc8, 0x7e, 0x31, 0xb2, 0x71, 0x4e, 0xae, 0xdc, 0x1e, 0x5b, 0x39, 0xee, 0x55,
0x7b, 0x26, 0xb1, 0xba, 0x59, 0x85, 0xd5, 0x5e, 0x1c, 0xb8, 0xcc, 0x71, 0x09, 0xe3, 0x34, 0x90,
0xc5, 0x6f, 0x7d, 0x08, 0xb5, 0xac, 0x27, 0x3a, 0x3b, 0xb6, 0x00, 0xba, 0x02, 0x77, 0xf8, 0x1d,
0x75, 0x8d, 0x2b, 0x12, 0xb9, 0xba, 0xa3, 0xae, 0xf5, 0xb7, 0x1c, 0xac, 0x09, 0x2a, 0x37, 0xc2,
0xb7, 0xef, 0x16, 0x84, 0x54, 0x98, 0x67, 0x5f, 0x1f, 0x66, 0xf4, 0xe2, 0x35, 0x67, 0x3c, 0x71,
0xc2, 0xd6, 0x1f, 0x60, 0x7d, 0xc2, 0x22, 0xed, 0xcc, 0x1e, 0x2c, 0xe9, 0x44, 0x96, 0xf6, 0x4c,
0xcb, 0x74, 0xa3, 0x20, 0xae, 0x83, 0x5b, 0xbd, 0x8d, 0xf2, 0x7d, 0x56, 0x7a, 0x50, 0x30, 0xa0,
0x74, 0xff, 0x2f, 0x39, 0x78, 0x74, 0x4c, 0x86, 0x21, 0x9b, 0xb8, 0x1c, 0xdf, 0xe0, 0xfd, 0x16,
0x00, 0xf6, 0xe5, 0x5d, 0x23, 0xaa, 0x47, 0x95, 0xf1, 0x8a, 0x42, 0x44, 0xf9, 0xbc, 0x9b, 0xc7,
0x7d, 0x58, 0x1b, 0x37, 0xe2, 0x7b, 0x38, 0xfc, 0x0c, 0x0a, 0xae, 0xda, 0x25, 0xed, 0x6f, 0x5e,
0x63, 0xd2, 0x5d, 0x17, 0x1e, 0x35, 0x63, 0x7f, 0xa8, 0x97, 0x8a, 0xfb, 0xe9, 0xed, 0xbc, 0x7d,
0xc0, 0x9d, 0xd9, 0xe9, 0xee, 0x6c, 0xc0, 0xda, 0x38, 0x8b, 0x72, 0xc7, 0xfa, 0xc7, 0x2c, 0x2c,
0x69, 0xf8, 0x4d, 0x94, 0x3f, 0x81, 0x65, 0x91, 0x3e, 0x21, 0x0d, 0xb8, 0x2e, 0xae, 0xd5, 0x74,
0x7e, 0x5d, 0x08, 0x81, 0x9d, 0xa8, 0xa0, 0x1a, 0x2c, 0xa8, 0x4b, 0x5f, 0x85, 0x58, 0x7d, 0xa0,
0xf7, 0x61, 0x15, 0xdf, 0x60, 0xea, 0xe1, 0x8e, 0x47, 0x9c, 0x0e, 0xf6, 0x70, 0xd0, 0x25, 0xb2,
0xd9, 0xcc, 0xdb, 0x95, 0x44, 0xd0, 0x54, 0xb8, 0x50, 0x96, 0x8d, 0x46, 0xd6, 0x93, 0x69, 0x60,
0x0b, 0xe2, 0xca, 0xb2, 0x2b, 0x23, 0x81, 0x6e, 0x60, 0xef, 0xc3, 0x02, 0xe3, 0x98, 0x93, 0x8d,
0xc5, 0x9d, 0xdc, 0x6e, 0xe9, 0xe0, 0xd1, 0xf8, 0xb1, 0x5c, 0x0a, 0xa1, 0xad, 0x74, 0xd0, 0x36,
0xe4, 0x3d, 0xcc, 0x09, 0xd3, 0x07, 0xb3, 0x24, 0x7d, 0x05, 0x05, 0xc9, 0x73, 0xe9, 0x02, 0xba,
0x8c, 0x3b, 0x3e, 0xe5, 0xe7, 0x91, 0x4b, 0x22, 0x73, 0x28, 0x3b, 0x30, 0x87, 0xd9, 0xb5, 0x3e,
0xf8, 0xc2, 0x88, 0x81, 0x5d, 0xb7, 0x67, 0x6c, 0x21, 0x12, 0x1a, 0x1d, 0x7d, 0xd2, 0x69, 0x8d,
0x26, 0x75, 0x85, 0x46, 0x87, 0xba, 0xcd, 0x15, 0x58, 0x72, 0x09, 0xc7, 0xd4, 0x63, 0xd6, 0xdf,
0x73, 0x50, 0xcd, 0xb0, 0xe8, 0x1c, 0xfb, 0x18, 0x8a, 0x34, 0xb8, 0xc1, 0x1e, 0x75, 0x9d, 0x50,
0x08, 0x34, 0xe1, 0xc8, 0xa5, 0x53, 0x25, 0x95, 0xab, 0xda, 0x33, 0x76, 0x81, 0xa6, 0xbe, 0xd1,
0x01, 0xd4, 0x70, 0xb7, 0x4b, 0x86, 0x9c, 0xe8, 0xe5, 0x4e, 0x10, 0x8a, 0x28, 0xcb, 0xec, 0x6b,
0xcf, 0xd8, 0xc8, 0x48, 0xa5, 0xfa, 0x99, 0x90, 0xa5, 0x8d, 0xaa, 0xc2, 0xaa, 0x68, 0x6a, 0x52,
0x98, 0x74, 0xba, 0x2f, 0x00, 0xa5, 0x41, 0x6d, 0xe7, 0x0e, 0xcc, 0x63, 0x76, 0x6d, 0x2e, 0xf5,
0x4c, 0x3c, 0x6c, 0x29, 0x11, 0x1a, 0x1d, 0xea, 0x9a, 0xfb, 0x28, 0x13, 0x0f, 0x5b, 0x4a, 0xac,
0x0f, 0x01, 0x1d, 0x89, 0xc3, 0xf6, 0x32, 0x81, 0xde, 0x86, 0x7c, 0xda, 0x74, 0x95, 0x8b, 0x10,
0x26, 0x06, 0x8b, 0x8e, 0x9c, 0x59, 0xa6, 0xd3, 0xf9, 0xbf, 0xb3, 0xb0, 0xa0, 0xa2, 0xf0, 0xe6,
0xdb, 0x42, 0xd6, 0x4e, 0x8f, 0xde, 0x11, 0x75, 0x5c, 0x45, 0x7b, 0x45, 0x20, 0x27, 0x02, 0x40,
0x15, 0x98, 0xc3, 0x3e, 0xd7, 0xa9, 0x2b, 0x7e, 0xa2, 0x5f, 0xc2, 0x96, 0x8f, 0xef, 0x9c, 0x0e,
0xe6, 0xdd, 0xc1, 0xd4, 0x39, 0x43, 0x25, 0xf1, 0xba, 0x8f, 0xef, 0x9a, 0x42, 0x67, 0x7c, 0xd4,
0x18, 0xf3, 0x68, 0x61, 0xdc, 0x23, 0xf4, 0x3c, 0x9b, 0xbf, 0xd5, 0x51, 0x6d, 0x09, 0x9d, 0x4c,
0xf6, 0xd6, 0x60, 0x21, 0x0e, 0x28, 0x67, 0x32, 0x6f, 0x8b, 0xb6, 0xfa, 0x10, 0xd5, 0x22, 0x7f,
0x38, 0x71, 0xd0, 0x8b, 0xbd, 0x1e, 0xf5, 0x3c, 0xe2, 0x6e, 0x2c, 0xab, 0x6a, 0x91, 0x82, 0xcf,
0x47, 0x38, 0x7a, 0x01, 0x28, 0x22, 0x8c, 0x44, 0x37, 0xc4, 0x75, 0x46, 0x33, 0xc7, 0x8a, 0x2a,
0x44, 0x23, 0x79, 0xa5, 0x67, 0x0f, 0xeb, 0x1e, 0xe6, 0x9a, 0xd4, 0x45, 0xbb, 0x49, 0x96, 0xe8,
0x8c, 0x2c, 0x65, 0x8d, 0xb4, 0x8d, 0x58, 0xcc, 0x10, 0x3e, 0x0d, 0x1c, 0x37, 0xd6, 0xb5, 0xdb,
0xf1, 0xc2, 0xee, 0x35, 0xd3, 0x71, 0x5e, 0xf5, 0x69, 0x70, 0xac, 0x25, 0x4d, 0x29, 0x10, 0x03,
0xcb, 0x0d, 0x89, 0x18, 0x0d, 0x03, 0x35, 0xa0, 0xda, 0xe6, 0x53, 0x50, 0x1f, 0xb2, 0xeb, 0x77,
0xa4, 0xc6, 0x77, 0x0f, 0x52, 0xe3, 0xbb, 0xb7, 0xa6, 0xde, 0x80, 0x35, 0x9b, 0x74, 0xc3, 0x1b,
0x12, 0x8d, 0x0f, 0x7e, 0xe7, 0xb0, 0x3e, 0x21, 0xd1, 0x35, 0xf1, 0x33, 0x58, 0x0b, 0x62, 0xdf,
0x89, 0x94, 0x98, 0xb8, 0x4e, 0x6a, 0x12, 0x14, 0xbb, 0xd7, 0x82, 0xd8, 0xb7, 0x8d, 0xd0, 0xac,
0x16, 0x45, 0x77, 0xa8, 0xde, 0x08, 0xa3, 0x16, 0x60, 0x5d, 0x00, 0x4a, 0x83, 0x9a, 0xe0, 0x23,
0x28, 0x92, 0x3b, 0xd2, 0x8d, 0xa5, 0x73, 0x62, 0xd0, 0x19, 0xbf, 0x1c, 0x5a, 0x46, 0x2a, 0x56,
0x15, 0x48, 0xea, 0xcb, 0x2a, 0x43, 0xf1, 0x2a, 0xbc, 0x26, 0x41, 0xe2, 0xc8, 0xc7, 0x50, 0x32,
0x40, 0xd2, 0xdf, 0x16, 0xb9, 0x44, 0x74, 0x55, 0xa3, 0x64, 0xdf, 0x97, 0x0c, 0x73, 0xa9, 0x6c,
0x6b, 0x0d, 0xeb, 0x9f, 0xb3, 0xb0, 0x92, 0xa0, 0xa2, 0xbd, 0x77, 0x30, 0x23, 0x8e, 0x8f, 0xbb,
0x38, 0x0a, 0xc3, 0x40, 0x17, 0x5d, 0x41, 0x80, 0x9f, 0x69, 0x4c, 0xb4, 0xc4, 0x21, 0xbe, 0xf7,
0x49, 0xc0, 0x9d, 0x01, 0x66, 0x03, 0xd3, 0x12, 0x35, 0xd6, 0xc6, 0x6c, 0x80, 0x9e, 0x43, 0xc5,
0xa8, 0x0c, 0x23, 0x42, 0x7d, 0xdc, 0x57, 0x3d, 0xa4, 0x60, 0x97, 0x35, 0x7e, 0xa1, 0x61, 0xb4,
0x0b, 0x15, 0xdd, 0xf3, 0x87, 0x98, 0xba, 0x8e, 0x2f, 0x72, 0x58, 0xd4, 0xe1, 0x9c, 0x5d, 0x52,
0xf8, 0x05, 0xa6, 0xee, 0x67, 0x0c, 0x73, 0xf4, 0x01, 0x3c, 0x8a, 0xc2, 0x98, 0xd3, 0xa0, 0x2f,
0x8b, 0x77, 0xa4, 0xbe, 0x20, 0xd5, 0x91, 0x16, 0x9e, 0x10, 0x92, 0x2c, 0x79, 0x06, 0x05, 0x4e,
0x7d, 0xe2, 0x74, 0x23, 0x82, 0x39, 0x71, 0x65, 0x5d, 0xce, 0xd9, 0x79, 0x81, 0x1d, 0x29, 0x48,
0xe4, 0x8e, 0xec, 0x43, 0x44, 0xb5, 0x90, 0x65, 0xdb, 0x7c, 0x8a, 0xc5, 0x8c, 0x87, 0x11, 0xee,
0x13, 0x27, 0xc0, 0x3e, 0x91, 0x75, 0xb8, 0x62, 0xe7, 0x35, 0x76, 0x86, 0x7d, 0xb2, 0xf7, 0x6d,
0x0e, 0x0a, 0xe9, 0xde, 0x84, 0x2a, 0x50, 0xb8, 0x68, 0x9d, 0x1d, 0x9f, 0x9e, 0x7d, 0xe2, 0x9c,
0x5f, 0xb4, 0xce, 0x2a, 0x33, 0x08, 0x41, 0xc9, 0x20, 0x9f, 0x5f, 0x1c, 0x1f, 0x5e, 0xb5, 0x2a,
0x39, 0xb4, 0x0c, 0xf3, 0x52, 0x3a, 0x8b, 0xf2, 0xb0, 0xd4, 0xfa, 0xe2, 0xe2, 0xd4, 0x6e, 0x1d,
0x57, 0xe6, 0xd2, 0xaa, 0x47, 0x2f, 0xcf, 0x2f, 0x5b, 0xc7, 0x95, 0x79, 0x04, 0xb0, 0xa8, 0x7f,
0x2f, 0xa0, 0x2a, 0x94, 0xed, 0xd6, 0xd1, 0xf9, 0xab, 0x96, 0xfd, 0xa5, 0x73, 0x72, 0x78, 0xfa,
0xb2, 0x75, 0x5c, 0x59, 0x44, 0xab, 0x50, 0x34, 0x8b, 0x9a, 0x87, 0x57, 0x47, 0xed, 0xca, 0xd2,
0xc1, 0xff, 0xf3, 0xb0, 0x78, 0x25, 0xaf, 0x49, 0x14, 0x42, 0x21, 0xfd, 0xdc, 0x42, 0x9b, 0x49,
0x2a, 0x4c, 0x79, 0xec, 0xd5, 0xb7, 0x1e, 0x90, 0xea, 0x9b, 0xd9, 0xfa, 0xf3, 0x7f, 0xfe, 0xf7,
0xed, 0xec, 0xa6, 0xb5, 0xde, 0xb8, 0xf9, 0xa0, 0x21, 0x34, 0x1b, 0xa6, 0x30, 0x1a, 0x5f, 0x0b,
0xfd, 0x8f, 0x72, 0x7b, 0xe8, 0x2b, 0xc8, 0xa7, 0x1e, 0xc5, 0xe8, 0x49, 0xaa, 0xdf, 0x8d, 0x4f,
0x83, 0xf5, 0x89, 0xb1, 0xcb, 0xda, 0x94, 0x0c, 0x6b, 0xd6, 0xea, 0x04, 0x83, 0xd8, 0xbb, 0x07,
0x85, 0xf4, 0x5b, 0x2d, 0xe5, 0xcc, 0x94, 0x97, 0x5d, 0xca, 0x99, 0x69, 0x0f, 0x3c, 0xeb, 0xb1,
0xa4, 0xaa, 0xa2, 0x49, 0x2a, 0xc1, 0x93, 0x9e, 0xfa, 0x53, 0x3c, 0x53, 0x9e, 0x35, 0x29, 0x9e,
0x69, 0x4f, 0x05, 0xc3, 0xb3, 0x37, 0x85, 0xe7, 0x1b, 0x28, 0x8f, 0xcd, 0xe4, 0x68, 0xf4, 0x62,
0x99, 0xfe, 0x7e, 0xa8, 0xef, 0x3c, 0xac, 0xa0, 0x09, 0xdf, 0x93, 0x84, 0xdb, 0x56, 0x7d, 0xf2,
0x94, 0xcc, 0x94, 0x2e, 0x82, 0x79, 0x0b, 0xa5, 0xec, 0x78, 0x8c, 0x9e, 0x26, 0x5b, 0x4f, 0x1d,
0xde, 0xeb, 0xdb, 0x0f, 0xca, 0x35, 0xf3, 0x0f, 0x25, 0xf3, 0x53, 0xeb, 0xf1, 0x24, 0xb3, 0x9e,
0x97, 0x05, 0x31, 0x87, 0x52, 0x76, 0x90, 0x4d, 0x11, 0x4f, 0x9d, 0xa3, 0x53, 0xc4, 0x0f, 0x4c,
0xc0, 0xcf, 0x24, 0xf1, 0x13, 0x6b, 0x6d, 0x92, 0xb8, 0x13, 0xfb, 0x43, 0xc1, 0xfa, 0x47, 0x28,
0x8f, 0x5d, 0xf7, 0xa9, 0x58, 0x4f, 0x6f, 0x11, 0xa9, 0x58, 0x3f, 0xd0, 0x29, 0x5e, 0xe7, 0xb1,
0xee, 0x1e, 0x82, 0xdb, 0x85, 0x7c, 0x6a, 0x44, 0x4c, 0xd5, 0xc4, 0xe4, 0x78, 0x5a, 0xdf, 0x9c,
0x2e, 0xd4, 0x7c, 0x75, 0xc9, 0x57, 0xb3, 0xca, 0x09, 0x9f, 0x9c, 0x3e, 0x64, 0x75, 0xfc, 0x1e,
0x60, 0x34, 0xdf, 0xa1, 0x7a, 0x26, 0xfb, 0x33, 0x93, 0x60, 0xfd, 0xc9, 0x54, 0x99, 0xa6, 0x58,
0x97, 0x14, 0xab, 0x68, 0x9c, 0x02, 0x85, 0x90, 0x4f, 0x8d, 0x6b, 0x29, 0x2f, 0x26, 0x67, 0xbf,
0x94, 0x17, 0xd3, 0x26, 0x3c, 0x9d, 0xa1, 0x7b, 0x5b, 0x63, 0x14, 0x8d, 0x6f, 0x52, 0xe3, 0xd5,
0x9f, 0xd0, 0xef, 0x00, 0x46, 0xbd, 0x33, 0xe5, 0xd0, 0x44, 0x97, 0x4d, 0x39, 0x34, 0xd9, 0x6c,
0xad, 0x9a, 0x64, 0x2b, 0xa1, 0x42, 0xc2, 0xd6, 0x23, 0x04, 0x85, 0x50, 0x94, 0x33, 0xde, 0x65,
0x80, 0x87, 0x6c, 0x10, 0x72, 0x34, 0x2a, 0xe3, 0x0c, 0x6e, 0x28, 0x9e, 0x3e, 0x24, 0xd6, 0x2c,
0xdb, 0x92, 0xe5, 0x31, 0x1a, 0xdd, 0x8d, 0x72, 0xcc, 0x6c, 0x30, 0xb3, 0xff, 0x97, 0x50, 0xfc,
0x84, 0xf0, 0xa4, 0xd5, 0x32, 0x34, 0xfa, 0x5b, 0x23, 0xd3, 0xcf, 0xeb, 0xeb, 0x13, 0xf8, 0xb4,
0x93, 0xf1, 0x18, 0xe6, 0x0d, 0xd5, 0xc3, 0x9b, 0x3f, 0xfe, 0xea, 0xbd, 0x3e, 0xe5, 0x83, 0xb8,
0xb3, 0xdf, 0x0d, 0xfd, 0x86, 0x27, 0x9e, 0x52, 0x01, 0x0d, 0xfa, 0x1e, 0xee, 0x30, 0x65, 0x8a,
0xde, 0xb0, 0xb3, 0x28, 0xff, 0xb9, 0xfc, 0xe9, 0x77, 0x01, 0x00, 0x00, 0xff, 0xff, 0xa5, 0x07,
0xa2, 0x7f, 0x02, 0x15, 0x00, 0x00,
// 2217 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0x5b, 0x73, 0x23, 0x47,
0x15, 0xb6, 0x64, 0x5b, 0xb6, 0x8f, 0xae, 0x6e, 0xcb, 0x97, 0xd5, 0xda, 0xb1, 0x77, 0x20, 0xc1,
0xeb, 0x5d, 0x56, 0x95, 0x85, 0x84, 0xaa, 0x90, 0x02, 0x2c, 0x5b, 0x1b, 0xb9, 0xb2, 0x59, 0x9b,
0xb1, 0xb3, 0x24, 0xa1, 0x8a, 0xa9, 0x96, 0xa6, 0x6d, 0x0d, 0x9e, 0x8b, 0x32, 0xdd, 0xe3, 0x0b,
0x29, 0x5e, 0x80, 0x1f, 0x40, 0x91, 0x82, 0x3f, 0xc3, 0x13, 0x6f, 0x3c, 0x50, 0xc5, 0x03, 0xfc,
0x04, 0x7e, 0x08, 0xd5, 0x37, 0x4d, 0xcf, 0x48, 0xde, 0x4b, 0xde, 0x34, 0xe7, 0x7c, 0xdd, 0x5f,
0x9f, 0x5b, 0xf7, 0x39, 0x82, 0x0a, 0x8b, 0xb1, 0x4b, 0xe2, 0x27, 0xa3, 0x38, 0x62, 0x11, 0x5a,
0x18, 0x45, 0x91, 0x1f, 0x8f, 0x06, 0xad, 0xcd, 0x8b, 0x28, 0xba, 0xf0, 0x49, 0x1b, 0x8f, 0xbc,
0x36, 0x0e, 0xc3, 0x88, 0x61, 0xe6, 0x45, 0x21, 0x95, 0xb0, 0x56, 0x03, 0x27, 0x03, 0xfe, 0x4d,
0xf4, 0x42, 0xeb, 0x5f, 0x05, 0x40, 0x47, 0xa1, 0xc7, 0xf6, 0x07, 0x83, 0x28, 0x09, 0x99, 0x4d,
0xbe, 0x4e, 0x08, 0x65, 0xe8, 0x7b, 0x50, 0xc5, 0x52, 0xe2, 0x5c, 0x61, 0x3f, 0x21, 0x1b, 0x85,
0x9d, 0xc2, 0xee, 0x9c, 0x5d, 0x51, 0xc2, 0x97, 0x5c, 0x86, 0x1e, 0x42, 0x1d, 0xf7, 0x69, 0xe4,
0x27, 0x8c, 0x38, 0x43, 0xe2, 0x5d, 0x0c, 0xd9, 0x46, 0x71, 0xa7, 0xb0, 0x5b, 0xed, 0xcd, 0xd8,
0x35, 0xad, 0xe8, 0x09, 0x39, 0x87, 0xc6, 0xc4, 0xc7, 0xcc, 0xbb, 0x1a, 0x43, 0x67, 0x35, 0x54,
0x2b, 0x14, 0xf4, 0x01, 0x94, 0x07, 0x51, 0x78, 0xee, 0x30, 0x1c, 0x5f, 0x10, 0xb6, 0x31, 0x27,
0x60, 0x05, 0x1b, 0xb8, 0xf0, 0x4c, 0xc8, 0x3a, 0x0d, 0xa8, 0xe9, 0xd3, 0x91, 0x9b, 0x91, 0x17,
0xdf, 0x76, 0x4a, 0x30, 0x77, 0x4e, 0x08, 0xb5, 0x08, 0xac, 0xfc, 0x32, 0x89, 0x18, 0xf9, 0x2e,
0xe6, 0xe4, 0x88, 0xb5, 0x29, 0x26, 0xb1, 0xa6, 0xb9, 0x86, 0x66, 0x96, 0x86, 0x8e, 0xa2, 0x90,
0x12, 0xf4, 0x13, 0xb8, 0x17, 0x78, 0x21, 0x89, 0x9d, 0x73, 0x42, 0x9c, 0x18, 0x33, 0xe2, 0x50,
0xcc, 0x9c, 0x11, 0x89, 0x9d, 0xcb, 0x6b, 0xc5, 0xd9, 0x14, 0x80, 0x67, 0x84, 0xd8, 0x98, 0x91,
0x53, 0xcc, 0x4e, 0x48, 0xfc, 0xe9, 0x35, 0x7a, 0x0f, 0xea, 0xe9, 0x42, 0x16, 0x31, 0xec, 0x0b,
0xfe, 0x39, 0xbb, 0xaa, 0xe1, 0x67, 0x5c, 0x68, 0xad, 0xc2, 0xca, 0x73, 0x8f, 0xea, 0x68, 0x51,
0x65, 0x9f, 0x75, 0x08, 0xcd, 0xac, 0x58, 0x9d, 0xe7, 0x31, 0x2c, 0x2a, 0x13, 0xe9, 0x46, 0x61,
0x67, 0x76, 0xb7, 0xfc, 0xb4, 0xf1, 0x44, 0x65, 0xca, 0x13, 0x7d, 0xf6, 0x31, 0xc2, 0xfa, 0x39,
0x94, 0x8e, 0x13, 0x36, 0x4a, 0x18, 0xba, 0x0f, 0x4b, 0xc2, 0x4f, 0xfc, 0xf8, 0xea, 0xdc, 0x8b,
0x42, 0x70, 0x8a, 0x19, 0xda, 0x80, 0x05, 0xec, 0xba, 0x31, 0xa1, 0x54, 0x9c, 0x71, 0xc9, 0xd6,
0x9f, 0xd6, 0x9f, 0x0a, 0x50, 0x95, 0x3b, 0xfc, 0xca, 0x63, 0xc3, 0x67, 0x84, 0x98, 0xd8, 0x42,
0x06, 0xfb, 0x06, 0xde, 0x46, 0x4f, 0x60, 0x65, 0x9a, 0x1f, 0x79, 0xe2, 0xcc, 0xf5, 0x66, 0xec,
0xfa, 0x79, 0xd6, 0x89, 0xe3, 0xe8, 0x1c, 0xc0, 0x9a, 0x3c, 0x05, 0xe5, 0xc7, 0x38, 0x0a, 0x46,
0xbe, 0x37, 0xf0, 0x18, 0x3f, 0xce, 0x43, 0x58, 0x88, 0xa4, 0x46, 0xb9, 0xa3, 0x3e, 0x76, 0x87,
0x5c, 0x61, 0x6b, 0xbd, 0xf5, 0xcf, 0x02, 0xac, 0x1c, 0xf8, 0x11, 0xcd, 0xa7, 0xd2, 0x16, 0x80,
0xac, 0x3c, 0xe7, 0x92, 0xdc, 0x0a, 0xa3, 0x2a, 0xf6, 0x92, 0x94, 0x7c, 0x4a, 0x6e, 0xd1, 0x2f,
0xa0, 0x2e, 0x77, 0x70, 0xae, 0x3d, 0x36, 0xe4, 0xe1, 0x14, 0xa6, 0x95, 0x9f, 0xae, 0xe5, 0x98,
0x94, 0x87, 0x7a, 0x33, 0x76, 0x35, 0xca, 0xb8, 0xec, 0xa7, 0xe9, 0x19, 0x67, 0xc5, 0xca, 0xed,
0xdc, 0xca, 0xbc, 0x55, 0xbd, 0x99, 0xf1, 0xa9, 0x3b, 0x2b, 0xb0, 0x7c, 0x9e, 0x84, 0x2e, 0x75,
0x5c, 0x42, 0x99, 0x17, 0x8a, 0xe2, 0xb7, 0x3e, 0x80, 0x66, 0xd6, 0x12, 0x95, 0x1d, 0x5b, 0x00,
0x03, 0x2e, 0x77, 0xd8, 0x8d, 0xe7, 0x6a, 0x53, 0x84, 0xe4, 0xec, 0xc6, 0x73, 0xad, 0x3f, 0x17,
0x60, 0x8d, 0x53, 0xb9, 0x31, 0xbe, 0x7e, 0x3b, 0x27, 0x18, 0x6e, 0x2e, 0xbe, 0xda, 0xcd, 0xe8,
0xf1, 0x2b, 0x62, 0x3c, 0x11, 0x61, 0xeb, 0xb7, 0xb0, 0x3e, 0x71, 0x22, 0x65, 0xcc, 0x1e, 0x2c,
0xa8, 0x44, 0x16, 0xe7, 0x99, 0x96, 0xe9, 0x1a, 0xc0, 0xaf, 0x83, 0x6b, 0xb5, 0x8d, 0xb4, 0xbd,
0x28, 0x2c, 0xa8, 0x68, 0xa1, 0x30, 0xff, 0x8f, 0x05, 0x58, 0x3d, 0x24, 0xa3, 0x88, 0x4e, 0x5c,
0x8e, 0xaf, 0xb1, 0x7e, 0x0b, 0x00, 0x07, 0xe2, 0xae, 0xe1, 0xd5, 0x23, 0xcb, 0x78, 0x49, 0x4a,
0x78, 0xf9, 0xbc, 0x9d, 0xc5, 0x17, 0xb0, 0x96, 0x3f, 0xc4, 0x77, 0x30, 0xf8, 0x01, 0x54, 0x5c,
0xb9, 0x8b, 0x69, 0x6f, 0x59, 0xc9, 0x84, 0xb9, 0x2e, 0xac, 0x76, 0x92, 0x60, 0xa4, 0x96, 0xf2,
0xfb, 0xe9, 0xcd, 0xac, 0xbd, 0xc3, 0x9c, 0xe2, 0x74, 0x73, 0x36, 0x60, 0x2d, 0xcf, 0x22, 0xcd,
0xb1, 0xfe, 0x5a, 0x84, 0x05, 0x25, 0x7e, 0x1d, 0xe5, 0x0f, 0x61, 0x91, 0xa7, 0x4f, 0xe4, 0x85,
0x4c, 0x15, 0xd7, 0xb2, 0x99, 0x5f, 0x27, 0x5c, 0x61, 0x8f, 0x21, 0xa8, 0x09, 0xf3, 0xf2, 0xd2,
0x97, 0x2e, 0x96, 0x1f, 0xe8, 0x11, 0x2c, 0xe3, 0x2b, 0xec, 0xf9, 0xb8, 0xef, 0x13, 0xa7, 0x8f,
0x7d, 0x1c, 0x0e, 0x88, 0x78, 0x6c, 0xe6, 0xec, 0xc6, 0x58, 0xd1, 0x91, 0x72, 0x0e, 0x16, 0x0f,
0x8d, 0xa8, 0x27, 0xfd, 0x80, 0xcd, 0xf3, 0x2b, 0xcb, 0x6e, 0xa4, 0x0a, 0xf5, 0x80, 0x3d, 0x82,
0x79, 0xca, 0x30, 0x23, 0x1b, 0xa5, 0x9d, 0xc2, 0x6e, 0xed, 0xe9, 0x6a, 0x3e, 0x2c, 0xa7, 0x5c,
0x69, 0x4b, 0x0c, 0xda, 0x86, 0xb2, 0x8f, 0x19, 0xa1, 0x2a, 0x30, 0x0b, 0xc2, 0x56, 0x90, 0x22,
0x11, 0x97, 0x01, 0xa0, 0xd3, 0xa4, 0x1f, 0x78, 0xec, 0x38, 0x76, 0x49, 0xac, 0x83, 0xb2, 0x03,
0xb3, 0x98, 0x5e, 0xaa, 0xc0, 0x57, 0x52, 0x06, 0x7a, 0xd9, 0x9b, 0xb1, 0xb9, 0x8a, 0x23, 0xfa,
0x2a, 0xd2, 0x26, 0xa2, 0xe3, 0xb9, 0x1c, 0xd1, 0xf7, 0xdc, 0xce, 0x12, 0x2c, 0xb8, 0x84, 0x61,
0xcf, 0xa7, 0xd6, 0x5f, 0x0a, 0xb0, 0x92, 0x61, 0x51, 0x39, 0xf6, 0x31, 0x54, 0xbd, 0xf0, 0x0a,
0xfb, 0x9e, 0xeb, 0x44, 0x5c, 0xa1, 0x08, 0x53, 0x93, 0x8e, 0xa4, 0x56, 0xac, 0xea, 0xcd, 0xd8,
0x15, 0xcf, 0xf8, 0x46, 0x4f, 0xa1, 0x89, 0x07, 0x03, 0x32, 0x62, 0x44, 0x2d, 0x77, 0xc2, 0x88,
0x7b, 0x59, 0x64, 0x5f, 0x6f, 0xc6, 0x46, 0x5a, 0x2b, 0xe0, 0x2f, 0xb8, 0xce, 0x3c, 0xd4, 0x0a,
0x2c, 0xf3, 0x47, 0x4d, 0x28, 0xc7, 0x2f, 0xdd, 0x17, 0x80, 0x4c, 0xa1, 0x3a, 0xe7, 0x0e, 0xcc,
0x61, 0x7a, 0xa9, 0x2f, 0xf5, 0x8c, 0x3f, 0x6c, 0xa1, 0xe1, 0x88, 0xbe, 0xe7, 0xea, 0xfb, 0x28,
0xe3, 0x0f, 0x5b, 0x68, 0xac, 0x0f, 0x00, 0x1d, 0xf0, 0x60, 0xfb, 0x19, 0x47, 0x6f, 0x43, 0xd9,
0x3c, 0xba, 0xcc, 0x45, 0x88, 0xc6, 0x07, 0xe6, 0x2f, 0x72, 0x66, 0x99, 0x4a, 0xe7, 0xff, 0x16,
0x61, 0x5e, 0x7a, 0xe1, 0xf5, 0xb7, 0x85, 0xa8, 0x9d, 0x73, 0xef, 0x86, 0xc8, 0x70, 0x55, 0xed,
0x25, 0x2e, 0x79, 0xc6, 0x05, 0xa8, 0x01, 0xb3, 0x38, 0x60, 0x2a, 0x75, 0xf9, 0x4f, 0xf4, 0x33,
0xd8, 0x0a, 0xf0, 0x8d, 0xd3, 0xc7, 0x6c, 0x30, 0x9c, 0xda, 0x67, 0xc8, 0x24, 0x5e, 0x0f, 0xf0,
0x4d, 0x87, 0x63, 0xf2, 0xad, 0x46, 0xce, 0xa2, 0xf9, 0xbc, 0x45, 0xe8, 0x61, 0x36, 0x7f, 0x57,
0xd2, 0xda, 0xe2, 0x98, 0x4c, 0xf6, 0x36, 0x61, 0x3e, 0x09, 0x3d, 0x46, 0x45, 0xde, 0x56, 0x6d,
0xf9, 0xc1, 0xab, 0x45, 0xfc, 0x70, 0x92, 0xf0, 0x3c, 0xf1, 0xcf, 0x3d, 0xdf, 0x27, 0xee, 0xc6,
0xa2, 0xac, 0x16, 0xa1, 0xf8, 0x3c, 0x95, 0xa3, 0xc7, 0x80, 0x62, 0x42, 0x49, 0x7c, 0x45, 0x5c,
0x27, 0xed, 0x39, 0x96, 0x64, 0x21, 0x6a, 0xcd, 0x4b, 0xd5, 0x7b, 0x58, 0xb7, 0x30, 0xdb, 0xf1,
0x5c, 0xb4, 0x3b, 0xce, 0x12, 0x95, 0x91, 0xb5, 0xec, 0x21, 0x6d, 0xad, 0xe6, 0x3d, 0x44, 0xe0,
0x85, 0x8e, 0x9b, 0xa8, 0xda, 0xed, 0xfb, 0xd1, 0xe0, 0x92, 0x2a, 0x3f, 0x2f, 0x07, 0x5e, 0x78,
0xa8, 0x34, 0x1d, 0xa1, 0xe0, 0x0d, 0xcb, 0x15, 0x89, 0xa9, 0x17, 0x85, 0xb2, 0x41, 0xb5, 0xf5,
0x27, 0xa7, 0xde, 0xa7, 0x97, 0x6f, 0x49, 0x8d, 0x6f, 0xee, 0xa4, 0xc6, 0x37, 0x6f, 0x4c, 0xbd,
0x01, 0x6b, 0x36, 0x19, 0x44, 0x57, 0x24, 0xce, 0x37, 0x7e, 0xc7, 0xb0, 0x3e, 0xa1, 0x51, 0x35,
0xf1, 0x63, 0x58, 0x0b, 0x93, 0xc0, 0x89, 0xa5, 0x9a, 0xb8, 0x8e, 0xd1, 0x09, 0xf2, 0xdd, 0x9b,
0x61, 0x12, 0xd8, 0x5a, 0xa9, 0x57, 0xf3, 0xa2, 0xdb, 0x97, 0x33, 0x42, 0xfa, 0x04, 0x58, 0x27,
0x80, 0x4c, 0xa1, 0x22, 0xf8, 0x08, 0xaa, 0xe4, 0x86, 0x0c, 0x12, 0x61, 0x1c, 0x6f, 0x74, 0xf2,
0x97, 0x43, 0x57, 0x6b, 0xf9, 0xaa, 0x0a, 0x31, 0xbe, 0xac, 0x7f, 0x17, 0x61, 0xfe, 0x39, 0xc1,
0x94, 0xa0, 0x0f, 0xa1, 0x3a, 0x18, 0xe2, 0x30, 0x24, 0xbe, 0x23, 0x6f, 0xf4, 0xc2, 0x5d, 0x37,
0x7a, 0x45, 0xe1, 0xc4, 0x17, 0xef, 0x98, 0xf5, 0x3a, 0x1c, 0x98, 0x4f, 0xad, 0xde, 0x6e, 0x3f,
0x10, 0xcf, 0xed, 0x87, 0xb0, 0xae, 0x71, 0xf9, 0x48, 0x48, 0x2f, 0xaf, 0x2a, 0x75, 0x2e, 0x1a,
0xdb, 0x50, 0x1e, 0xc5, 0x24, 0xf0, 0x92, 0x40, 0xec, 0x2d, 0x8b, 0x0a, 0x94, 0x88, 0x6f, 0xbc,
0xc7, 0xdf, 0x04, 0xc3, 0x7c, 0x01, 0x9b, 0x97, 0xcf, 0x9e, 0x69, 0x2b, 0xc7, 0x5a, 0xc2, 0x48,
0x2f, 0xc5, 0x95, 0x04, 0xae, 0x2c, 0x84, 0x0a, 0x93, 0xab, 0xcb, 0x85, 0x89, 0xba, 0xdc, 0x84,
0xa5, 0x51, 0x12, 0x0f, 0x86, 0x98, 0xaa, 0x72, 0x5a, 0xb4, 0x53, 0x81, 0xd5, 0x83, 0xaa, 0x70,
0xa8, 0x4e, 0x0d, 0xde, 0xc3, 0xcb, 0x3b, 0x82, 0x5f, 0x7b, 0xfc, 0x62, 0xac, 0xd8, 0x8b, 0x42,
0x70, 0xe4, 0x52, 0xd4, 0x32, 0x06, 0x83, 0xa2, 0xd4, 0x8d, 0xc7, 0x80, 0xbf, 0x15, 0xa0, 0xa6,
0xb7, 0x52, 0xa1, 0x7e, 0x0f, 0x4a, 0xbe, 0x90, 0xa8, 0x1b, 0x36, 0xcd, 0x79, 0x01, 0xb4, 0x95,
0x16, 0xb5, 0xa1, 0x29, 0x86, 0x17, 0x11, 0x12, 0x82, 0xe3, 0x90, 0xb8, 0x46, 0x64, 0x96, 0x85,
0x6e, 0x3f, 0x60, 0x5d, 0xa1, 0xe1, 0x46, 0x3f, 0x02, 0x94, 0x2e, 0x18, 0x61, 0x4f, 0xc2, 0x55,
0x2f, 0xa4, 0xe1, 0x27, 0xd8, 0xe3, 0x60, 0xab, 0x0e, 0xd5, 0xb3, 0xe8, 0x92, 0x84, 0xe3, 0xec,
0xff, 0x18, 0x6a, 0x5a, 0x30, 0x6e, 0x8a, 0x4a, 0x4c, 0x48, 0xd4, 0x41, 0x51, 0x7a, 0x50, 0x8a,
0x99, 0x00, 0xdb, 0x0a, 0x61, 0xfd, 0xbd, 0x08, 0x4b, 0x63, 0x29, 0xef, 0x09, 0xfb, 0x98, 0x12,
0x27, 0xc0, 0x03, 0x1c, 0x47, 0x51, 0xa8, 0x6e, 0xea, 0x0a, 0x17, 0x7e, 0xa6, 0x64, 0xbc, 0x8f,
0x1a, 0xe1, 0xdb, 0x80, 0x84, 0xcc, 0x19, 0x62, 0x3a, 0xd4, 0x7d, 0x94, 0x92, 0xf5, 0x30, 0x1d,
0xa2, 0x87, 0xd0, 0xd0, 0x90, 0x51, 0x4c, 0xbc, 0x00, 0x5f, 0xc8, 0xc6, 0xa3, 0x62, 0xd7, 0x95,
0xfc, 0x44, 0x89, 0xd1, 0x2e, 0x34, 0x54, 0xa3, 0x28, 0x2c, 0x0f, 0x74, 0x9e, 0xcd, 0xda, 0x35,
0x29, 0xe7, 0x86, 0x7f, 0x46, 0x31, 0x43, 0xef, 0xc3, 0x6a, 0x1c, 0x25, 0xcc, 0x0b, 0x2f, 0x44,
0x06, 0xa5, 0xf0, 0x79, 0x01, 0x47, 0x4a, 0xf9, 0x8c, 0x90, 0xf1, 0x92, 0x07, 0x50, 0x61, 0x5e,
0x40, 0x9c, 0x41, 0x4c, 0x30, 0x23, 0xae, 0xc8, 0xb8, 0x59, 0xbb, 0xcc, 0x65, 0x07, 0x52, 0xc4,
0x2f, 0x1c, 0xd1, 0xbc, 0x10, 0xd9, 0x77, 0x2c, 0xda, 0xfa, 0x93, 0x2f, 0xa6, 0x2c, 0x8a, 0xf1,
0x05, 0x71, 0x42, 0x1c, 0x10, 0x91, 0x6d, 0x4b, 0x76, 0x59, 0xc9, 0x5e, 0xe0, 0x80, 0xec, 0x7d,
0x5b, 0x80, 0x8a, 0xd9, 0xd0, 0xa0, 0x06, 0x54, 0x4e, 0xba, 0x2f, 0x0e, 0x8f, 0x5e, 0x7c, 0xe2,
0x1c, 0x9f, 0x74, 0x5f, 0x34, 0x66, 0x10, 0x82, 0x9a, 0x96, 0x7c, 0x7e, 0x72, 0xb8, 0x7f, 0xd6,
0x6d, 0x14, 0xd0, 0x22, 0xcc, 0x09, 0x6d, 0x11, 0x95, 0x61, 0xa1, 0xfb, 0xc5, 0xc9, 0x91, 0xdd,
0x3d, 0x6c, 0xcc, 0x9a, 0xd0, 0x83, 0xe7, 0xc7, 0xa7, 0xdd, 0xc3, 0xc6, 0x1c, 0x02, 0x28, 0xa9,
0xdf, 0xf3, 0x68, 0x05, 0xea, 0x76, 0xf7, 0xe0, 0xf8, 0x65, 0xd7, 0xfe, 0xd2, 0x79, 0xb6, 0x7f,
0xf4, 0xbc, 0x7b, 0xd8, 0x28, 0xa1, 0x65, 0xa8, 0xea, 0x45, 0x9d, 0xfd, 0xb3, 0x83, 0x5e, 0x63,
0xe1, 0xe9, 0x3f, 0x2a, 0x50, 0x3a, 0x13, 0x6f, 0x2b, 0x8a, 0xa0, 0x62, 0xce, 0xe8, 0x68, 0x73,
0x9c, 0x0a, 0x53, 0xfe, 0x21, 0x68, 0x6d, 0xdd, 0xa1, 0x55, 0xcf, 0xb9, 0xf5, 0x87, 0xff, 0xfc,
0xef, 0xdb, 0xe2, 0xa6, 0xb5, 0xde, 0xbe, 0x7a, 0xbf, 0xcd, 0x91, 0x6d, 0x5d, 0x2e, 0xed, 0xaf,
0x39, 0xfe, 0xa3, 0xc2, 0x1e, 0xfa, 0x0a, 0xca, 0xc6, 0x3f, 0x29, 0xe8, 0xbe, 0xd1, 0x24, 0xe5,
0x47, 0x88, 0xd6, 0x44, 0xaf, 0x6e, 0x6d, 0x0a, 0x86, 0x35, 0x6b, 0x79, 0x82, 0x81, 0xef, 0x7d,
0x0e, 0x15, 0x73, 0xc0, 0x37, 0x8c, 0x99, 0xf2, 0x77, 0x80, 0x61, 0xcc, 0xb4, 0x7f, 0x05, 0xac,
0x7b, 0x82, 0x6a, 0x05, 0x4d, 0x52, 0x71, 0x1e, 0x73, 0x54, 0x34, 0x78, 0xa6, 0xcc, 0xc2, 0x06,
0xcf, 0xb4, 0xf9, 0x52, 0xf3, 0xec, 0x4d, 0xe1, 0xf9, 0x06, 0xea, 0xb9, 0x41, 0x0e, 0xa5, 0x63,
0xee, 0xf4, 0xa1, 0xb3, 0xb5, 0x73, 0x37, 0x40, 0x11, 0xbe, 0x2b, 0x08, 0xb7, 0xad, 0xd6, 0x64,
0x94, 0xf4, 0x68, 0xc7, 0x9d, 0x79, 0x0d, 0xb5, 0xec, 0x4c, 0x85, 0xde, 0x19, 0x6f, 0x3d, 0x75,
0xe2, 0x6b, 0x6d, 0xdf, 0xa9, 0x57, 0xcc, 0xdf, 0x17, 0xcc, 0xef, 0x58, 0xf7, 0x26, 0x99, 0xd5,
0x90, 0xc5, 0x89, 0x19, 0xd4, 0xb2, 0xd3, 0x8f, 0x41, 0x3c, 0x75, 0xf8, 0x32, 0x88, 0xef, 0x18,
0x9b, 0x1e, 0x08, 0xe2, 0xfb, 0xd6, 0xda, 0x24, 0x71, 0x3f, 0x09, 0x46, 0x9c, 0xf5, 0x77, 0x50,
0xcf, 0xf5, 0x08, 0x86, 0xaf, 0xa7, 0xf7, 0x15, 0x86, 0xaf, 0xef, 0x68, 0x2f, 0x5e, 0x65, 0xb1,
0x6a, 0x39, 0x38, 0xb7, 0x0b, 0x65, 0x63, 0xae, 0x30, 0x6a, 0x62, 0x72, 0xa6, 0x69, 0x6d, 0x4e,
0x57, 0x2a, 0xbe, 0x96, 0xe0, 0x6b, 0x5a, 0xf5, 0x31, 0x9f, 0x78, 0x1a, 0x45, 0x75, 0xfc, 0x06,
0x20, 0x1d, 0x0a, 0x50, 0x2b, 0x93, 0xfd, 0x99, 0xf1, 0xa1, 0x75, 0x7f, 0xaa, 0x4e, 0x51, 0xac,
0x0b, 0x8a, 0x65, 0x94, 0xa7, 0x40, 0x11, 0x94, 0x8d, 0x1e, 0xdf, 0xb0, 0x62, 0x72, 0x60, 0x30,
0xac, 0x98, 0x36, 0x16, 0xa8, 0x0c, 0xdd, 0xdb, 0xca, 0x51, 0xb4, 0xbf, 0x31, 0xde, 0xfe, 0xdf,
0xa3, 0x5f, 0x03, 0xa4, 0x0d, 0x97, 0x61, 0xd0, 0x44, 0x6b, 0x66, 0x18, 0x34, 0xd9, 0xa1, 0x59,
0x4d, 0xc1, 0x56, 0x43, 0x95, 0x31, 0xdb, 0x39, 0x21, 0x28, 0x82, 0xaa, 0x18, 0x0c, 0x4e, 0x43,
0x3c, 0xa2, 0xc3, 0x88, 0xa1, 0xb4, 0x8c, 0x33, 0x72, 0x4d, 0xf1, 0xce, 0x5d, 0x6a, 0xc5, 0xb2,
0x2d, 0x58, 0xee, 0xa1, 0xf4, 0x6e, 0x14, 0x6d, 0x46, 0x9b, 0xea, 0xfd, 0xbf, 0x84, 0xea, 0x27,
0x84, 0x8d, 0x9f, 0x5a, 0x8a, 0xd2, 0xff, 0xc2, 0x32, 0xef, 0x79, 0x6b, 0x7d, 0x42, 0x3e, 0x2d,
0x32, 0x3e, 0xc5, 0xac, 0x2d, 0xdf, 0x70, 0x64, 0x43, 0x49, 0xb6, 0x2a, 0xc6, 0x9e, 0x99, 0x36,
0xc8, 0xd8, 0x33, 0xdb, 0xd3, 0x4c, 0x89, 0xb6, 0x6c, 0x62, 0x3a, 0x3f, 0xf8, 0xea, 0xdd, 0x0b,
0x8f, 0x0d, 0x93, 0xfe, 0x93, 0x41, 0x14, 0xb4, 0x7d, 0x3e, 0xd3, 0x87, 0x5e, 0x78, 0xe1, 0xe3,
0x3e, 0x95, 0x38, 0xb5, 0x61, 0xbf, 0x24, 0xfe, 0x42, 0xff, 0xd1, 0xff, 0x03, 0x00, 0x00, 0xff,
0xff, 0xfb, 0xf5, 0x8b, 0xcd, 0x8b, 0x17, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@ -2227,9 +2463,13 @@ type TraderClient interface {
// pool: `auction snapshot`
//BatchSnapshot returns the snapshot of a past batch identified by its ID.
BatchSnapshot(ctx context.Context, in *BatchSnapshotRequest, opts ...grpc.CallOption) (*BatchSnapshotResponse, error)
//* pool: `listauth`
// pool: `listauth`
//GetLsatTokens returns all LSAT tokens the daemon ever paid for.
GetLsatTokens(ctx context.Context, in *TokensRequest, opts ...grpc.CallOption) (*TokensResponse, error)
// pool: `auction leases`
//Leases returns the list of channels that were either purchased or sold by
//the trader within the auction.
Leases(ctx context.Context, in *LeasesRequest, opts ...grpc.CallOption) (*LeasesResponse, error)
}
type traderClient struct {
@ -2366,6 +2606,15 @@ func (c *traderClient) GetLsatTokens(ctx context.Context, in *TokensRequest, opt
return out, nil
}
func (c *traderClient) Leases(ctx context.Context, in *LeasesRequest, opts ...grpc.CallOption) (*LeasesResponse, error) {
out := new(LeasesResponse)
err := c.cc.Invoke(ctx, "/poolrpc.Trader/Leases", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// TraderServer is the server API for Trader service.
type TraderServer interface {
//
@ -2424,9 +2673,13 @@ type TraderServer interface {
// pool: `auction snapshot`
//BatchSnapshot returns the snapshot of a past batch identified by its ID.
BatchSnapshot(context.Context, *BatchSnapshotRequest) (*BatchSnapshotResponse, error)
//* pool: `listauth`
// pool: `listauth`
//GetLsatTokens returns all LSAT tokens the daemon ever paid for.
GetLsatTokens(context.Context, *TokensRequest) (*TokensResponse, error)
// pool: `auction leases`
//Leases returns the list of channels that were either purchased or sold by
//the trader within the auction.
Leases(context.Context, *LeasesRequest) (*LeasesResponse, error)
}
// UnimplementedTraderServer can be embedded to have forward compatible implementations.
@ -2475,6 +2728,9 @@ func (*UnimplementedTraderServer) BatchSnapshot(ctx context.Context, req *BatchS
func (*UnimplementedTraderServer) GetLsatTokens(ctx context.Context, req *TokensRequest) (*TokensResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetLsatTokens not implemented")
}
func (*UnimplementedTraderServer) Leases(ctx context.Context, req *LeasesRequest) (*LeasesResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method Leases not implemented")
}
func RegisterTraderServer(s *grpc.Server, srv TraderServer) {
s.RegisterService(&_Trader_serviceDesc, srv)
@ -2732,6 +2988,24 @@ func _Trader_GetLsatTokens_Handler(srv interface{}, ctx context.Context, dec fun
return interceptor(ctx, in, info, handler)
}
func _Trader_Leases_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(LeasesRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(TraderServer).Leases(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/poolrpc.Trader/Leases",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(TraderServer).Leases(ctx, req.(*LeasesRequest))
}
return interceptor(ctx, in, info, handler)
}
var _Trader_serviceDesc = grpc.ServiceDesc{
ServiceName: "poolrpc.Trader",
HandlerType: (*TraderServer)(nil),
@ -2792,6 +3066,10 @@ var _Trader_serviceDesc = grpc.ServiceDesc{
MethodName: "GetLsatTokens",
Handler: _Trader_GetLsatTokens_Handler,
},
{
MethodName: "Leases",
Handler: _Trader_Leases_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "trader.proto",

View file

@ -461,6 +461,39 @@ func local_request_Trader_GetLsatTokens_0(ctx context.Context, marshaler runtime
}
var (
filter_Trader_Leases_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
)
func request_Trader_Leases_0(ctx context.Context, marshaler runtime.Marshaler, client TraderClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq LeasesRequest
var metadata runtime.ServerMetadata
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Trader_Leases_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := client.Leases(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
}
func local_request_Trader_Leases_0(ctx context.Context, marshaler runtime.Marshaler, server TraderServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq LeasesRequest
var metadata runtime.ServerMetadata
if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_Trader_Leases_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := server.Leases(ctx, &protoReq)
return msg, metadata, err
}
// RegisterTraderHandlerServer registers the http handlers for service Trader to "mux".
// UnaryRPC :call TraderServer directly.
// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
@ -746,6 +779,26 @@ func RegisterTraderHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser
})
mux.Handle("GET", pattern_Trader_Leases_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := local_request_Trader_Leases_0(rctx, inboundMarshaler, server, req, pathParams)
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
forward_Trader_Leases_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
return nil
}
@ -1067,6 +1120,26 @@ func RegisterTraderHandlerClient(ctx context.Context, mux *runtime.ServeMux, cli
})
mux.Handle("GET", pattern_Trader_Leases_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateContext(ctx, mux, req)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := request_Trader_Leases_0(rctx, inboundMarshaler, client, req, pathParams)
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
forward_Trader_Leases_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
return nil
}
@ -1098,6 +1171,8 @@ var (
pattern_Trader_BatchSnapshot_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "pool", "batch", "snapshot"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_Trader_GetLsatTokens_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "lsat", "tokens"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_Trader_Leases_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "pool", "leases"}, "", runtime.AssumeColonVerbOpt(true)))
)
var (
@ -1128,4 +1203,6 @@ var (
forward_Trader_BatchSnapshot_0 = runtime.ForwardResponseMessage
forward_Trader_GetLsatTokens_0 = runtime.ForwardResponseMessage
forward_Trader_Leases_0 = runtime.ForwardResponseMessage
)

View file

@ -149,7 +149,7 @@ service Trader {
};
};
/** pool: `listauth`
/* pool: `listauth`
GetLsatTokens returns all LSAT tokens the daemon ever paid for.
*/
rpc GetLsatTokens (TokensRequest) returns (TokensResponse) {
@ -157,6 +157,17 @@ service Trader {
get: "/v1/lsat/tokens"
};
}
/* pool: `auction leases`
Leases returns the list of channels that were either purchased or sold by
the trader within the auction.
*/
rpc Leases (LeasesRequest) returns (LeasesResponse) {
option (google.api.http) = {
get: "/v1/pool/leases"
};
};
}
message InitAccountRequest {
@ -535,6 +546,65 @@ message AuctionFeeResponse {
ExecutionFee execution_fee = 1;
}
message Lease {
// The outpoint of the channel created.
OutPoint channel_point = 1;
// The amount, in satoshis, of the channel created.
uint64 channel_amt_sat = 2;
// The intended duration, in blocks, of the channel created.
uint32 channel_duration_blocks = 3;
/*
The premium, in satoshis, either paid or received for the offered liquidity.
*/
uint64 premium_sat = 4;
/*
The execution fee, in satoshis, charged by the auctioneer for the channel
created.
*/
uint64 execution_fee_sat = 5;
/*
The fee, in satoshis, charged by the auctioneer for the batch execution
transaction that created this lease.
*/
uint64 chain_fee_sat = 6;
// The order executed that resulted in the channel created.
bytes order_nonce = 7;
// Whether this channel was purchased from another trader or not.
bool purchased = 8;
}
message LeasesRequest {
/*
An optional list of batches to retrieve the leases of. If empty, leases
throughout all batches are returned.
*/
repeated bytes batch_ids = 1;
/*
An optional list of accounts to retrieve the leases of. If empty, leases
for all accounts are returned.
*/
repeated bytes accounts = 2;
}
message LeasesResponse {
// The relevant list of leases purchased or sold within the auction.
repeated Lease leases = 1;
// The total amount of satoshis earned from the leases returned.
uint64 total_amt_earned_sat = 2;
// The total amount of satoshis paid for the leases returned.
uint64 total_amt_paid_sat = 3;
}
message TokensRequest {
}

View file

@ -13,7 +13,7 @@
"paths": {
"/v1/lsat/tokens": {
"get": {
"summary": "* pool: `listauth`\nGetLsatTokens returns all LSAT tokens the daemon ever paid for.",
"summary": "pool: `listauth`\nGetLsatTokens returns all LSAT tokens the daemon ever paid for.",
"operationId": "GetLsatTokens",
"responses": {
"200": {
@ -363,6 +363,55 @@
]
}
},
"/v1/pool/leases": {
"get": {
"summary": "pool: `auction leases`\nLeases returns the list of channels that were either purchased or sold by\nthe trader within the auction.",
"operationId": "Leases",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/poolrpcLeasesResponse"
}
},
"default": {
"description": "An unexpected error response",
"schema": {
"$ref": "#/definitions/gatewayruntimeError"
}
}
},
"parameters": [
{
"name": "batch_ids",
"description": "An optional list of batches to retrieve the leases of. If empty, leases\nthroughout all batches are returned.",
"in": "query",
"required": false,
"type": "array",
"items": {
"type": "string",
"format": "byte"
},
"collectionFormat": "multi"
},
{
"name": "accounts",
"description": "An optional list of accounts to retrieve the leases of. If empty, leases\nfor all accounts are returned.",
"in": "query",
"required": false,
"type": "array",
"items": {
"type": "string",
"format": "byte"
},
"collectionFormat": "multi"
}
],
"tags": [
"Trader"
]
}
},
"/v1/pool/orders": {
"get": {
"summary": "pool: `orders list`\nListOrders returns a list of all active and archived orders that are\ncurrently known to the trader daemon.",
@ -787,6 +836,72 @@
}
}
},
"poolrpcLease": {
"type": "object",
"properties": {
"channel_point": {
"$ref": "#/definitions/poolrpcOutPoint",
"description": "The outpoint of the channel created."
},
"channel_amt_sat": {
"type": "string",
"format": "uint64",
"description": "The amount, in satoshis, of the channel created."
},
"channel_duration_blocks": {
"type": "integer",
"format": "int64",
"description": "The intended duration, in blocks, of the channel created."
},
"premium_sat": {
"type": "string",
"format": "uint64",
"description": "The premium, in satoshis, either paid or received for the offered liquidity."
},
"execution_fee_sat": {
"type": "string",
"format": "uint64",
"description": "The execution fee, in satoshis, charged by the auctioneer for the channel\ncreated."
},
"chain_fee_sat": {
"type": "string",
"format": "uint64",
"description": "The fee, in satoshis, charged by the auctioneer for the batch execution\ntransaction that created this lease."
},
"order_nonce": {
"type": "string",
"format": "byte",
"description": "The order executed that resulted in the channel created."
},
"purchased": {
"type": "boolean",
"format": "boolean",
"description": "Whether this channel was purchased from another trader or not."
}
}
},
"poolrpcLeasesResponse": {
"type": "object",
"properties": {
"leases": {
"type": "array",
"items": {
"$ref": "#/definitions/poolrpcLease"
},
"description": "The relevant list of leases purchased or sold within the auction."
},
"total_amt_earned_sat": {
"type": "string",
"format": "uint64",
"description": "The total amount of satoshis earned from the leases returned."
},
"total_amt_paid_sat": {
"type": "string",
"format": "uint64",
"description": "The total amount of satoshis paid for the leases returned."
}
}
},
"poolrpcListAccountsResponse": {
"type": "object",
"properties": {

View file

@ -23,9 +23,11 @@ import (
"github.com/lightninglabs/pool/clientdb"
"github.com/lightninglabs/pool/order"
"github.com/lightninglabs/pool/poolrpc"
"github.com/lightninglabs/pool/poolscript"
"github.com/lightninglabs/pool/terms"
"github.com/lightningnetwork/lnd"
"github.com/lightningnetwork/lnd/chanbackup"
"github.com/lightningnetwork/lnd/input"
"github.com/lightningnetwork/lnd/lnrpc"
"github.com/lightningnetwork/lnd/lnwallet/chainfee"
"github.com/lightningnetwork/lnd/lnwire"
@ -1476,6 +1478,195 @@ func (s *rpcServer) AuctionFee(ctx context.Context,
}, nil
}
// Leases returns the list of channels that were either purchased or sold by the
// trader within the auction.
func (s *rpcServer) Leases(ctx context.Context,
req *poolrpc.LeasesRequest) (*poolrpc.LeasesResponse, error) {
// We'll start by parsing the list of accounts we should retrieve lease
// for. If none are specified, leases for all accounts will be returned.
accounts := make(map[[33]byte]struct{}, len(req.Accounts))
for _, rawAccountKey := range req.Accounts {
_, err := btcec.ParsePubKey(rawAccountKey, btcec.S256())
if err != nil {
return nil, fmt.Errorf("invalid account key: %v", err)
}
var accountKey [33]byte
copy(accountKey[:], rawAccountKey)
accounts[accountKey] = struct{}{}
}
// We'll then retrieve the list of specified batches. If none are
// specified, we'll retrieve all of them.
var batches []*clientdb.LocalBatchSnapshot
if len(req.BatchIds) == 0 {
var err error
batches, err = s.server.db.GetLocalBatchSnapshots()
if err != nil {
return nil, err
}
} else {
for _, rawBatchID := range req.BatchIds {
batchKey, err := btcec.ParsePubKey(
rawBatchID, btcec.S256(),
)
if err != nil {
return nil, fmt.Errorf("invalid batch id: %v",
err)
}
batchID := order.NewBatchID(batchKey)
batch, err := s.server.db.GetLocalBatchSnapshot(batchID)
if err != nil {
return nil, err
}
batches = append(batches, batch)
}
}
return s.prepareLeasesResponse(ctx, accounts, batches)
}
// prepareLeasesResponse prepares a poolrpc.LeasesResponse for the given
// accounts in the given batches.
func (s *rpcServer) prepareLeasesResponse(ctx context.Context,
accounts map[[33]byte]struct{}, batches []*clientdb.LocalBatchSnapshot) (
*poolrpc.LeasesResponse, error) {
// Now we're ready to prepare our response.
var (
rpcLeases []*poolrpc.Lease
totalAmtEarned btcutil.Amount
totalAmtPaid btcutil.Amount
)
for _, batch := range batches {
// Keep a tally of how many channels were created within each
// batch in order to estimate the chain fees paid.
numChans := 0
// Keep track of the index for the first lease found for this
// batch. We'll use this to know where to start from when
// populating the ChainFeeSat field for each lease.
firstIdxForBatch := len(rpcLeases)
for nonce, matches := range batch.MatchedOrders {
nonce := nonce
for _, match := range matches {
// Obtain our order that was matched.
ourOrder, ok := batch.Orders[nonce]
if !ok {
return nil, fmt.Errorf("order %v not "+
"found in batch snapshot", nonce)
}
// Filter out the account if required.
_, ok = accounts[ourOrder.Details().AcctKey]
if len(accounts) != 0 && !ok {
continue
}
// Derive the channel output script, which we'll
// use to locate the channel outpoint within the
// batch transaction.
ourMultiSigKey, err := s.server.lndServices.WalletKit.DeriveKey(
ctx, &ourOrder.Details().MultiSigKeyLocator,
)
if err != nil {
return nil, err
}
chanAmt := match.UnitsFilled.ToSatoshis()
_, chanOutput, err := input.GenFundingPkScript(
ourMultiSigKey.PubKey.SerializeCompressed(),
match.MultiSigKey[:], int64(chanAmt),
)
if err != nil {
return nil, err
}
batchTxHash := batch.BatchTX.TxHash()
chanOutputIdx, ok := poolscript.LocateOutputScript(
batch.BatchTX, chanOutput.PkScript,
)
if !ok {
return nil, fmt.Errorf("channel with "+
"script %x not found in batch "+
"transaction %v",
chanOutput.PkScript, batchTxHash)
}
// The duration of the channel is always that
// specified by the bid order.
var bidDuration uint32
if ourOrder.Type() == order.TypeBid {
bidDuration = ourOrder.(*order.Bid).MinDuration
} else {
bidDuration = match.Order.(*order.Bid).MinDuration
}
// Calculate the premium paid/received to/from
// the maker/taker and the execution fee paid
// to the auctioneer and tally them.
premium := batch.ClearingPrice.LumpSumPremium(
chanAmt, bidDuration,
)
exeFee := batch.ExecutionFee.BaseFee() +
batch.ExecutionFee.ExecutionFee(chanAmt)
if ourOrder.Type() == order.TypeBid {
totalAmtPaid += premium
} else {
totalAmtEarned += premium
}
totalAmtPaid += exeFee
purchased := ourOrder.Type() == order.TypeBid
rpcLeases = append(rpcLeases, &poolrpc.Lease{
ChannelPoint: &poolrpc.OutPoint{
Txid: batchTxHash[:],
OutputIndex: chanOutputIdx,
},
ChannelAmtSat: uint64(chanAmt),
ChannelDurationBlocks: bidDuration,
PremiumSat: uint64(premium),
ExecutionFeeSat: uint64(exeFee),
OrderNonce: nonce[:],
Purchased: purchased,
})
numChans++
}
// Estimate the chain fees paid for the number of
// channels created in this batch and tally them.
chainFee := order.EstimateTraderFee(
uint32(numChans), batch.BatchTxFeeRate,
)
// We'll need to compute the chain fee paid for each
// lease. Since multiple leases can be created within a
// batch, we'll need to evenly distribute. We'll always
// apply the remainder to the first lease in the batch.
chainFeePerChan := chainFee / btcutil.Amount(numChans)
chainFeePerChanRem := chainFee % btcutil.Amount(numChans)
for i := firstIdxForBatch; i < len(rpcLeases); i++ {
chainFee := chainFeePerChan
if i == firstIdxForBatch {
chainFee += chainFeePerChanRem
}
rpcLeases[i].ChainFeeSat = uint64(chainFee)
}
totalAmtPaid += chainFee
}
}
return &poolrpc.LeasesResponse{
Leases: rpcLeases,
TotalAmtEarnedSat: uint64(totalAmtEarned),
TotalAmtPaidSat: uint64(totalAmtPaid),
}, nil
}
// BatchSnapshot returns information about a target batch including the
// clearing price of the batch, and the set of orders matched within the batch.
func (s *rpcServer) BatchSnapshot(ctx context.Context,