multi: report protocol version

pull/186/head
Joost Jager 4 years ago
parent 7cb914927f
commit 92730e0eaf
No known key found for this signature in database
GPG Key ID: A61B9D4C393C59C7

@ -23,15 +23,49 @@ var _ = math.Inf
// proto package needs to be updated. // proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
//*
//This enum defines the protocol versions that clients may adhere to. Note that
//this is not a flagged enum. If a particular protocol version adds a feature,
//then in general all the preceding features are also supported. Exception to this
//is when features get deprecated.
type ProtocolVersion int32
const (
/// No protocol version reported at all.
ProtocolVersion_LEGACY ProtocolVersion = 0
/// Client may attempt to send the loop out payment in multiple parts.
ProtocolVersion_MULTI_LOOP_OUT ProtocolVersion = 1
)
var ProtocolVersion_name = map[int32]string{
0: "LEGACY",
1: "MULTI_LOOP_OUT",
}
var ProtocolVersion_value = map[string]int32{
"LEGACY": 0,
"MULTI_LOOP_OUT": 1,
}
func (x ProtocolVersion) String() string {
return proto.EnumName(ProtocolVersion_name, int32(x))
}
func (ProtocolVersion) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_ad098daeda4239f7, []int{0}
}
type ServerLoopOutRequest struct { type ServerLoopOutRequest struct {
ReceiverKey []byte `protobuf:"bytes,1,opt,name=receiver_key,json=receiverKey,proto3" json:"receiver_key,omitempty"` ReceiverKey []byte `protobuf:"bytes,1,opt,name=receiver_key,json=receiverKey,proto3" json:"receiver_key,omitempty"`
SwapHash []byte `protobuf:"bytes,2,opt,name=swap_hash,json=swapHash,proto3" json:"swap_hash,omitempty"` SwapHash []byte `protobuf:"bytes,2,opt,name=swap_hash,json=swapHash,proto3" json:"swap_hash,omitempty"`
Amt uint64 `protobuf:"varint,3,opt,name=amt,proto3" json:"amt,omitempty"` Amt uint64 `protobuf:"varint,3,opt,name=amt,proto3" json:"amt,omitempty"`
/// The unix time in seconds we want the on-chain swap to be published by. /// The unix time in seconds we want the on-chain swap to be published by.
SwapPublicationDeadline int64 `protobuf:"varint,4,opt,name=swap_publication_deadline,json=swapPublicationDeadline,proto3" json:"swap_publication_deadline,omitempty"` SwapPublicationDeadline int64 `protobuf:"varint,4,opt,name=swap_publication_deadline,json=swapPublicationDeadline,proto3" json:"swap_publication_deadline,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` /// The protocol version that the client adheres to.
XXX_unrecognized []byte `json:"-"` ProtocolVersion ProtocolVersion `protobuf:"varint,5,opt,name=protocol_version,json=protocolVersion,proto3,enum=looprpc.ProtocolVersion" json:"protocol_version,omitempty"`
XXX_sizecache int32 `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
} }
func (m *ServerLoopOutRequest) Reset() { *m = ServerLoopOutRequest{} } func (m *ServerLoopOutRequest) Reset() { *m = ServerLoopOutRequest{} }
@ -87,6 +121,13 @@ func (m *ServerLoopOutRequest) GetSwapPublicationDeadline() int64 {
return 0 return 0
} }
func (m *ServerLoopOutRequest) GetProtocolVersion() ProtocolVersion {
if m != nil {
return m.ProtocolVersion
}
return ProtocolVersion_LEGACY
}
type ServerLoopOutResponse struct { type ServerLoopOutResponse struct {
SwapInvoice string `protobuf:"bytes,1,opt,name=swap_invoice,json=swapInvoice,proto3" json:"swap_invoice,omitempty"` SwapInvoice string `protobuf:"bytes,1,opt,name=swap_invoice,json=swapInvoice,proto3" json:"swap_invoice,omitempty"`
PrepayInvoice string `protobuf:"bytes,2,opt,name=prepay_invoice,json=prepayInvoice,proto3" json:"prepay_invoice,omitempty"` PrepayInvoice string `protobuf:"bytes,2,opt,name=prepay_invoice,json=prepayInvoice,proto3" json:"prepay_invoice,omitempty"`
@ -154,10 +195,12 @@ type ServerLoopOutQuoteRequest struct {
/// The swap amount. If zero, a quote for a maximum amt swap will be given. /// The swap amount. If zero, a quote for a maximum amt swap will be given.
Amt uint64 `protobuf:"varint,1,opt,name=amt,proto3" json:"amt,omitempty"` Amt uint64 `protobuf:"varint,1,opt,name=amt,proto3" json:"amt,omitempty"`
/// The unix time in seconds we want the on-chain swap to be published by. /// The unix time in seconds we want the on-chain swap to be published by.
SwapPublicationDeadline int64 `protobuf:"varint,2,opt,name=swap_publication_deadline,json=swapPublicationDeadline,proto3" json:"swap_publication_deadline,omitempty"` SwapPublicationDeadline int64 `protobuf:"varint,2,opt,name=swap_publication_deadline,json=swapPublicationDeadline,proto3" json:"swap_publication_deadline,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` /// The protocol version that the client adheres to.
XXX_unrecognized []byte `json:"-"` ProtocolVersion ProtocolVersion `protobuf:"varint,3,opt,name=protocol_version,json=protocolVersion,proto3,enum=looprpc.ProtocolVersion" json:"protocol_version,omitempty"`
XXX_sizecache int32 `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
} }
func (m *ServerLoopOutQuoteRequest) Reset() { *m = ServerLoopOutQuoteRequest{} } func (m *ServerLoopOutQuoteRequest) Reset() { *m = ServerLoopOutQuoteRequest{} }
@ -199,6 +242,13 @@ func (m *ServerLoopOutQuoteRequest) GetSwapPublicationDeadline() int64 {
return 0 return 0
} }
func (m *ServerLoopOutQuoteRequest) GetProtocolVersion() ProtocolVersion {
if m != nil {
return m.ProtocolVersion
}
return ProtocolVersion_LEGACY
}
type ServerLoopOutQuote struct { type ServerLoopOutQuote struct {
SwapPaymentDest string `protobuf:"bytes,1,opt,name=swap_payment_dest,json=swapPaymentDest,proto3" json:"swap_payment_dest,omitempty"` SwapPaymentDest string `protobuf:"bytes,1,opt,name=swap_payment_dest,json=swapPaymentDest,proto3" json:"swap_payment_dest,omitempty"`
/// The total estimated swap fee given the quote amt. /// The total estimated swap fee given the quote amt.
@ -292,9 +342,11 @@ func (m *ServerLoopOutQuote) GetCltvDelta() int32 {
} }
type ServerLoopOutTermsRequest struct { type ServerLoopOutTermsRequest struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"` /// The protocol version that the client adheres to.
XXX_unrecognized []byte `json:"-"` ProtocolVersion ProtocolVersion `protobuf:"varint,1,opt,name=protocol_version,json=protocolVersion,proto3,enum=looprpc.ProtocolVersion" json:"protocol_version,omitempty"`
XXX_sizecache int32 `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
} }
func (m *ServerLoopOutTermsRequest) Reset() { *m = ServerLoopOutTermsRequest{} } func (m *ServerLoopOutTermsRequest) Reset() { *m = ServerLoopOutTermsRequest{} }
@ -322,6 +374,13 @@ func (m *ServerLoopOutTermsRequest) XXX_DiscardUnknown() {
var xxx_messageInfo_ServerLoopOutTermsRequest proto.InternalMessageInfo var xxx_messageInfo_ServerLoopOutTermsRequest proto.InternalMessageInfo
func (m *ServerLoopOutTermsRequest) GetProtocolVersion() ProtocolVersion {
if m != nil {
return m.ProtocolVersion
}
return ProtocolVersion_LEGACY
}
type ServerLoopOutTerms struct { type ServerLoopOutTerms struct {
MinSwapAmount uint64 `protobuf:"varint,1,opt,name=min_swap_amount,json=minSwapAmount,proto3" json:"min_swap_amount,omitempty"` MinSwapAmount uint64 `protobuf:"varint,1,opt,name=min_swap_amount,json=minSwapAmount,proto3" json:"min_swap_amount,omitempty"`
MaxSwapAmount uint64 `protobuf:"varint,2,opt,name=max_swap_amount,json=maxSwapAmount,proto3" json:"max_swap_amount,omitempty"` MaxSwapAmount uint64 `protobuf:"varint,2,opt,name=max_swap_amount,json=maxSwapAmount,proto3" json:"max_swap_amount,omitempty"`
@ -370,14 +429,16 @@ func (m *ServerLoopOutTerms) GetMaxSwapAmount() uint64 {
} }
type ServerLoopInRequest struct { type ServerLoopInRequest struct {
SenderKey []byte `protobuf:"bytes,1,opt,name=sender_key,json=senderKey,proto3" json:"sender_key,omitempty"` SenderKey []byte `protobuf:"bytes,1,opt,name=sender_key,json=senderKey,proto3" json:"sender_key,omitempty"`
SwapHash []byte `protobuf:"bytes,2,opt,name=swap_hash,json=swapHash,proto3" json:"swap_hash,omitempty"` SwapHash []byte `protobuf:"bytes,2,opt,name=swap_hash,json=swapHash,proto3" json:"swap_hash,omitempty"`
Amt uint64 `protobuf:"varint,3,opt,name=amt,proto3" json:"amt,omitempty"` Amt uint64 `protobuf:"varint,3,opt,name=amt,proto3" json:"amt,omitempty"`
SwapInvoice string `protobuf:"bytes,4,opt,name=swap_invoice,json=swapInvoice,proto3" json:"swap_invoice,omitempty"` SwapInvoice string `protobuf:"bytes,4,opt,name=swap_invoice,json=swapInvoice,proto3" json:"swap_invoice,omitempty"`
LastHop []byte `protobuf:"bytes,5,opt,name=last_hop,json=lastHop,proto3" json:"last_hop,omitempty"` LastHop []byte `protobuf:"bytes,5,opt,name=last_hop,json=lastHop,proto3" json:"last_hop,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` /// The protocol version that the client adheres to.
XXX_unrecognized []byte `json:"-"` ProtocolVersion ProtocolVersion `protobuf:"varint,6,opt,name=protocol_version,json=protocolVersion,proto3,enum=looprpc.ProtocolVersion" json:"protocol_version,omitempty"`
XXX_sizecache int32 `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
} }
func (m *ServerLoopInRequest) Reset() { *m = ServerLoopInRequest{} } func (m *ServerLoopInRequest) Reset() { *m = ServerLoopInRequest{} }
@ -440,6 +501,13 @@ func (m *ServerLoopInRequest) GetLastHop() []byte {
return nil return nil
} }
func (m *ServerLoopInRequest) GetProtocolVersion() ProtocolVersion {
if m != nil {
return m.ProtocolVersion
}
return ProtocolVersion_LEGACY
}
type ServerLoopInResponse struct { type ServerLoopInResponse struct {
ReceiverKey []byte `protobuf:"bytes,1,opt,name=receiver_key,json=receiverKey,proto3" json:"receiver_key,omitempty"` ReceiverKey []byte `protobuf:"bytes,1,opt,name=receiver_key,json=receiverKey,proto3" json:"receiver_key,omitempty"`
Expiry int32 `protobuf:"varint,2,opt,name=expiry,proto3" json:"expiry,omitempty"` Expiry int32 `protobuf:"varint,2,opt,name=expiry,proto3" json:"expiry,omitempty"`
@ -489,10 +557,12 @@ func (m *ServerLoopInResponse) GetExpiry() int32 {
type ServerLoopInQuoteRequest struct { type ServerLoopInQuoteRequest struct {
/// The swap amount. If zero, a quote for a maximum amt swap will be given. /// The swap amount. If zero, a quote for a maximum amt swap will be given.
Amt uint64 `protobuf:"varint,1,opt,name=amt,proto3" json:"amt,omitempty"` Amt uint64 `protobuf:"varint,1,opt,name=amt,proto3" json:"amt,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` /// The protocol version that the client adheres to.
XXX_unrecognized []byte `json:"-"` ProtocolVersion ProtocolVersion `protobuf:"varint,2,opt,name=protocol_version,json=protocolVersion,proto3,enum=looprpc.ProtocolVersion" json:"protocol_version,omitempty"`
XXX_sizecache int32 `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
} }
func (m *ServerLoopInQuoteRequest) Reset() { *m = ServerLoopInQuoteRequest{} } func (m *ServerLoopInQuoteRequest) Reset() { *m = ServerLoopInQuoteRequest{} }
@ -527,6 +597,13 @@ func (m *ServerLoopInQuoteRequest) GetAmt() uint64 {
return 0 return 0
} }
func (m *ServerLoopInQuoteRequest) GetProtocolVersion() ProtocolVersion {
if m != nil {
return m.ProtocolVersion
}
return ProtocolVersion_LEGACY
}
type ServerLoopInQuoteResponse struct { type ServerLoopInQuoteResponse struct {
SwapFee int64 `protobuf:"varint,1,opt,name=swap_fee,json=swapFee,proto3" json:"swap_fee,omitempty"` SwapFee int64 `protobuf:"varint,1,opt,name=swap_fee,json=swapFee,proto3" json:"swap_fee,omitempty"`
SwapFeeRate int64 `protobuf:"varint,2,opt,name=swap_fee_rate,json=swapFeeRate,proto3" json:"swap_fee_rate,omitempty"` // Deprecated: Do not use. SwapFeeRate int64 `protobuf:"varint,2,opt,name=swap_fee_rate,json=swapFeeRate,proto3" json:"swap_fee_rate,omitempty"` // Deprecated: Do not use.
@ -602,9 +679,11 @@ func (m *ServerLoopInQuoteResponse) GetCltvDelta() int32 {
} }
type ServerLoopInTermsRequest struct { type ServerLoopInTermsRequest struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"` /// The protocol version that the client adheres to.
XXX_unrecognized []byte `json:"-"` ProtocolVersion ProtocolVersion `protobuf:"varint,1,opt,name=protocol_version,json=protocolVersion,proto3,enum=looprpc.ProtocolVersion" json:"protocol_version,omitempty"`
XXX_sizecache int32 `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
} }
func (m *ServerLoopInTermsRequest) Reset() { *m = ServerLoopInTermsRequest{} } func (m *ServerLoopInTermsRequest) Reset() { *m = ServerLoopInTermsRequest{} }
@ -632,6 +711,13 @@ func (m *ServerLoopInTermsRequest) XXX_DiscardUnknown() {
var xxx_messageInfo_ServerLoopInTermsRequest proto.InternalMessageInfo var xxx_messageInfo_ServerLoopInTermsRequest proto.InternalMessageInfo
func (m *ServerLoopInTermsRequest) GetProtocolVersion() ProtocolVersion {
if m != nil {
return m.ProtocolVersion
}
return ProtocolVersion_LEGACY
}
type ServerLoopInTerms struct { type ServerLoopInTerms struct {
MinSwapAmount uint64 `protobuf:"varint,1,opt,name=min_swap_amount,json=minSwapAmount,proto3" json:"min_swap_amount,omitempty"` MinSwapAmount uint64 `protobuf:"varint,1,opt,name=min_swap_amount,json=minSwapAmount,proto3" json:"min_swap_amount,omitempty"`
MaxSwapAmount uint64 `protobuf:"varint,2,opt,name=max_swap_amount,json=maxSwapAmount,proto3" json:"max_swap_amount,omitempty"` MaxSwapAmount uint64 `protobuf:"varint,2,opt,name=max_swap_amount,json=maxSwapAmount,proto3" json:"max_swap_amount,omitempty"`
@ -680,6 +766,7 @@ func (m *ServerLoopInTerms) GetMaxSwapAmount() uint64 {
} }
func init() { func init() {
proto.RegisterEnum("looprpc.ProtocolVersion", ProtocolVersion_name, ProtocolVersion_value)
proto.RegisterType((*ServerLoopOutRequest)(nil), "looprpc.ServerLoopOutRequest") proto.RegisterType((*ServerLoopOutRequest)(nil), "looprpc.ServerLoopOutRequest")
proto.RegisterType((*ServerLoopOutResponse)(nil), "looprpc.ServerLoopOutResponse") proto.RegisterType((*ServerLoopOutResponse)(nil), "looprpc.ServerLoopOutResponse")
proto.RegisterType((*ServerLoopOutQuoteRequest)(nil), "looprpc.ServerLoopOutQuoteRequest") proto.RegisterType((*ServerLoopOutQuoteRequest)(nil), "looprpc.ServerLoopOutQuoteRequest")
@ -697,51 +784,57 @@ func init() {
func init() { proto.RegisterFile("server.proto", fileDescriptor_ad098daeda4239f7) } func init() { proto.RegisterFile("server.proto", fileDescriptor_ad098daeda4239f7) }
var fileDescriptor_ad098daeda4239f7 = []byte{ var fileDescriptor_ad098daeda4239f7 = []byte{
// 693 bytes of a gzipped FileDescriptorProto // 786 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0xdd, 0x4e, 0xdb, 0x4c, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0xdd, 0x52, 0xda, 0x40,
0x10, 0x95, 0x9d, 0x90, 0x90, 0x21, 0x81, 0x8f, 0xfd, 0xfa, 0xe3, 0x04, 0x52, 0x81, 0xa5, 0x22, 0x14, 0x6e, 0x02, 0x82, 0x1c, 0xf9, 0x73, 0xfb, 0x17, 0x50, 0x3a, 0xc8, 0x4c, 0x1d, 0xc6, 0x0b,
0x84, 0x2a, 0x90, 0xda, 0xbb, 0xde, 0x51, 0x21, 0x04, 0x2a, 0x2a, 0xc5, 0x70, 0x6f, 0x2d, 0xc9, 0x9d, 0xda, 0xbb, 0xde, 0x59, 0xad, 0x95, 0x29, 0x2d, 0x1a, 0xb1, 0x33, 0xbd, 0x4a, 0x57, 0x38,
0x94, 0x58, 0xb5, 0xbd, 0x5b, 0x7b, 0x13, 0xc8, 0x9b, 0xb4, 0x97, 0x95, 0xfa, 0x4a, 0x7d, 0x90, 0x95, 0x4c, 0x43, 0x36, 0x26, 0x0b, 0xca, 0x9b, 0xb4, 0x2f, 0xd1, 0xb7, 0xe9, 0x2b, 0x74, 0xa6,
0xbe, 0x41, 0xb5, 0x3f, 0x26, 0xb6, 0xf3, 0x03, 0x48, 0xbd, 0x63, 0x67, 0x0e, 0x33, 0x67, 0xce, 0x97, 0x7d, 0x83, 0x4e, 0x36, 0x89, 0x24, 0x21, 0xa8, 0xcc, 0x78, 0x67, 0xce, 0x7e, 0x9e, 0xfd,
0x9c, 0x89, 0xa1, 0x99, 0x62, 0x32, 0xc2, 0x64, 0x9f, 0x27, 0x4c, 0x30, 0x52, 0x0f, 0x19, 0xe3, 0xbe, 0xef, 0x9c, 0x6f, 0x81, 0xbc, 0x83, 0xf6, 0x18, 0xed, 0x6d, 0xcb, 0x66, 0x9c, 0x91, 0xac,
0x09, 0xef, 0x75, 0x36, 0x6f, 0x18, 0xbb, 0x09, 0xf1, 0x80, 0xf2, 0xe0, 0x80, 0xc6, 0x31, 0x13, 0xc1, 0x98, 0x65, 0x5b, 0xbd, 0xea, 0xfa, 0x05, 0x63, 0x17, 0x06, 0xee, 0x50, 0x4b, 0xdf, 0xa1,
0x54, 0x04, 0x2c, 0x4e, 0x35, 0xcc, 0xfd, 0x65, 0xc1, 0xb3, 0x4b, 0xf5, 0x7f, 0x67, 0x8c, 0xf1, 0xa6, 0xc9, 0x38, 0xe5, 0x3a, 0x33, 0x1d, 0x0f, 0xd6, 0xf8, 0x2b, 0xc1, 0x93, 0x53, 0xf1, 0x7f,
0xf3, 0xa1, 0xf0, 0xf0, 0xdb, 0x10, 0x53, 0x41, 0xb6, 0xa1, 0x99, 0x60, 0x0f, 0x83, 0x11, 0x26, 0x6d, 0xc6, 0xac, 0xce, 0x88, 0xab, 0x78, 0x39, 0x42, 0x87, 0x93, 0x0d, 0xc8, 0xdb, 0xd8, 0x43,
0xfe, 0x57, 0x1c, 0x3b, 0xd6, 0x96, 0xb5, 0xdb, 0xf4, 0x56, 0xb2, 0xd8, 0x47, 0x1c, 0x93, 0x0d, 0x7d, 0x8c, 0xb6, 0xf6, 0x1d, 0x27, 0x8a, 0x54, 0x97, 0x9a, 0x79, 0x75, 0x25, 0xa8, 0x7d, 0xc0,
0x68, 0xa4, 0xb7, 0x94, 0xfb, 0x03, 0x9a, 0x0e, 0x1c, 0x5b, 0xe5, 0x97, 0x65, 0xe0, 0x84, 0xa6, 0x09, 0x59, 0x83, 0x9c, 0x73, 0x45, 0x2d, 0x6d, 0x40, 0x9d, 0x81, 0x22, 0x8b, 0xf3, 0x65, 0xb7,
0x03, 0xf2, 0x1f, 0x54, 0x68, 0x24, 0x9c, 0xca, 0x96, 0xb5, 0x5b, 0xf5, 0xe4, 0x9f, 0xe4, 0x3d, 0x70, 0x44, 0x9d, 0x01, 0x29, 0x43, 0x8a, 0x0e, 0xb9, 0x92, 0xaa, 0x4b, 0xcd, 0xb4, 0xea, 0xfe,
0xb4, 0x15, 0x9c, 0x0f, 0xaf, 0xc3, 0xa0, 0xa7, 0x58, 0xf8, 0x7d, 0xa4, 0xfd, 0x30, 0x88, 0xd1, 0x49, 0xde, 0x40, 0x45, 0xc0, 0xad, 0xd1, 0xb9, 0xa1, 0xf7, 0x04, 0x0b, 0xad, 0x8f, 0xb4, 0x6f,
0xa9, 0x6e, 0x59, 0xbb, 0x15, 0xef, 0xa5, 0x04, 0x7c, 0x9e, 0xe4, 0x8f, 0x4c, 0xda, 0xfd, 0x6e, 0xe8, 0x26, 0x2a, 0xe9, 0xba, 0xd4, 0x4c, 0xa9, 0xcf, 0x5d, 0xc0, 0xf1, 0xf4, 0xfc, 0xc0, 0x3f,
0xc1, 0xf3, 0x12, 0xcd, 0x94, 0xb3, 0x38, 0x45, 0xc9, 0x53, 0x55, 0x0d, 0xe2, 0x11, 0x0b, 0x7a, 0x26, 0xfb, 0x50, 0x16, 0x7c, 0x7b, 0xcc, 0xd0, 0xc6, 0x68, 0x3b, 0x3a, 0x33, 0x95, 0xa5, 0xba,
0xa8, 0x78, 0x36, 0xbc, 0x15, 0x19, 0x3b, 0xd5, 0x21, 0xf2, 0x1a, 0x56, 0x79, 0x82, 0x9c, 0x8e, 0xd4, 0x2c, 0xee, 0x2a, 0xdb, 0xbe, 0xd0, 0xed, 0x63, 0x1f, 0xf0, 0xd9, 0x3b, 0x57, 0x4b, 0x56,
0xef, 0x41, 0xb6, 0x02, 0xb5, 0x74, 0x34, 0x83, 0x75, 0x01, 0x52, 0x8c, 0xfb, 0x66, 0xde, 0x8a, 0xb4, 0xd0, 0xf8, 0x21, 0xc1, 0xd3, 0x98, 0x56, 0xc7, 0x62, 0xa6, 0x83, 0xae, 0x58, 0x41, 0x4d,
0x9a, 0xa7, 0xa1, 0x23, 0x72, 0xda, 0x17, 0x50, 0xc3, 0x3b, 0x1e, 0x24, 0x63, 0xc5, 0x75, 0xc9, 0x37, 0xc7, 0x4c, 0xef, 0xa1, 0x10, 0x9b, 0x53, 0x57, 0xdc, 0x5a, 0xcb, 0x2b, 0x91, 0x97, 0x50,
0x33, 0x2f, 0x37, 0x80, 0x76, 0x81, 0xd9, 0xc5, 0x90, 0x09, 0xcc, 0x54, 0x34, 0x2a, 0x58, 0x8f, 0xb4, 0x6c, 0xb4, 0xe8, 0xe4, 0x06, 0x24, 0x0b, 0x50, 0xc1, 0xab, 0x06, 0xb0, 0x1a, 0x80, 0x83,
0x54, 0xc1, 0x5e, 0xac, 0xc2, 0x0f, 0x1b, 0xc8, 0x74, 0x2f, 0xb2, 0x07, 0xeb, 0xba, 0x24, 0x1d, 0x66, 0xdf, 0x37, 0x2d, 0x25, 0x4c, 0xc9, 0x79, 0x15, 0xd7, 0xb2, 0x67, 0x90, 0xc1, 0x6b, 0x4b,
0x47, 0x18, 0x0b, 0xbf, 0x8f, 0xa9, 0x30, 0x3a, 0xac, 0xa9, 0x52, 0x3a, 0x7e, 0x24, 0x09, 0xb5, 0xb7, 0x27, 0x42, 0xf0, 0x92, 0xea, 0x7f, 0x35, 0x7e, 0x49, 0x50, 0x89, 0x50, 0x3b, 0x19, 0x31,
0x41, 0xad, 0xc8, 0xff, 0x82, 0x59, 0xb7, 0xba, 0x7c, 0x1f, 0x23, 0x92, 0x1d, 0x68, 0x65, 0x29, 0x8e, 0xc1, 0x2c, 0x7c, 0x2f, 0xa5, 0x7b, 0x7a, 0x29, 0x2f, 0xee, 0x65, 0x6a, 0x51, 0x2f, 0x7f,
0x3f, 0xa1, 0x02, 0x95, 0x04, 0x95, 0x0f, 0xb6, 0x63, 0x69, 0x39, 0x8f, 0x11, 0x3d, 0x2a, 0x94, 0xca, 0x40, 0x66, 0x09, 0x93, 0x2d, 0x58, 0xf5, 0x78, 0xd1, 0xc9, 0x10, 0x4d, 0xae, 0xf5, 0xd1,
0x4e, 0x46, 0x4e, 0x39, 0x5a, 0x55, 0x8d, 0xd6, 0xd0, 0x91, 0xc3, 0x48, 0x90, 0x3d, 0x58, 0x8b, 0xe1, 0xbe, 0x9b, 0x25, 0xc1, 0xc7, 0xab, 0x1f, 0xb8, 0xaa, 0x2a, 0x20, 0xb6, 0x45, 0xfb, 0x86,
0x82, 0xd8, 0x57, 0xa5, 0x68, 0xc4, 0x86, 0xb1, 0x70, 0x96, 0x24, 0x46, 0x15, 0x6a, 0x45, 0x41, 0x01, 0xe5, 0xac, 0xfb, 0x7d, 0x88, 0x48, 0x36, 0xa1, 0x10, 0x1c, 0x69, 0x36, 0xe5, 0x28, 0xf8,
0x7c, 0x79, 0x4b, 0xf9, 0xa1, 0x4a, 0x28, 0x2c, 0xbd, 0x2b, 0x60, 0x6b, 0x39, 0x2c, 0xbd, 0xcb, 0xa5, 0xde, 0xca, 0x8a, 0xe4, 0x0d, 0xe5, 0x10, 0x51, 0xa5, 0x5c, 0xb8, 0xed, 0x0f, 0xc5, 0xf5,
0x61, 0xbb, 0x00, 0xbd, 0x50, 0x8c, 0xfc, 0x3e, 0x86, 0x82, 0x3a, 0x75, 0xb5, 0x83, 0x86, 0x8c, 0x27, 0x2d, 0xfc, 0xc9, 0x79, 0x95, 0xbd, 0x21, 0x27, 0x5b, 0x50, 0x1a, 0xea, 0xa6, 0x26, 0x5a,
0x1c, 0xc9, 0x80, 0xbb, 0x51, 0x5a, 0xc3, 0x15, 0x26, 0x51, 0x6a, 0xd6, 0xe0, 0xf6, 0x4b, 0xba, 0xd1, 0x21, 0x1b, 0x99, 0x5c, 0x2c, 0x4d, 0x5a, 0x34, 0x2a, 0x0c, 0x75, 0xf3, 0xf4, 0x8a, 0x5a,
0xa9, 0x24, 0xd9, 0x99, 0x66, 0xaa, 0x17, 0x55, 0x62, 0xb9, 0x33, 0xcd, 0xd2, 0x36, 0xb8, 0x3c, 0x7b, 0xe2, 0x40, 0x60, 0xe9, 0x75, 0x04, 0x9b, 0x09, 0x61, 0xe9, 0x75, 0x08, 0x5b, 0x03, 0xe8,
0x43, 0xf7, 0xa7, 0x05, 0xff, 0x4f, 0xda, 0x9c, 0xc6, 0x99, 0x09, 0x8a, 0xc6, 0xb2, 0xca, 0xc6, 0x19, 0x7c, 0xac, 0xf5, 0xd1, 0xe0, 0x54, 0xc9, 0x8a, 0x49, 0xe6, 0xdc, 0xca, 0x81, 0x5b, 0x68,
0x7a, 0xe2, 0x19, 0x95, 0x0d, 0x5f, 0x9d, 0x36, 0x7c, 0x1b, 0x96, 0x43, 0x9a, 0x0a, 0x7f, 0xc0, 0x7c, 0x8d, 0xcd, 0xb2, 0x8b, 0xf6, 0xd0, 0x09, 0x66, 0x99, 0xe4, 0xbe, 0xb4, 0xa8, 0xfb, 0xfd,
0xb8, 0xd2, 0xbe, 0xe9, 0xd5, 0xe5, 0xfb, 0x84, 0x71, 0xf7, 0x22, 0x7f, 0xee, 0x92, 0xe2, 0xe4, 0x98, 0xf9, 0xe2, 0x06, 0xb2, 0x39, 0x2b, 0xd7, 0x5b, 0x99, 0x98, 0xd4, 0xcd, 0x59, 0xa9, 0xb2,
0x8c, 0x1e, 0x3a, 0xf7, 0xc9, 0x01, 0xd8, 0x85, 0x03, 0x78, 0x03, 0x4e, 0xbe, 0xe4, 0x62, 0xff, 0x8f, 0x0b, 0xcb, 0x6c, 0xfc, 0x91, 0xe0, 0xf1, 0xf4, 0x9a, 0x96, 0x19, 0x48, 0x88, 0xee, 0xb8,
0xbb, 0xbf, 0xad, 0xfc, 0xa2, 0xee, 0xe1, 0x86, 0x46, 0xde, 0x9e, 0xd6, 0x03, 0xf6, 0xb4, 0x67, 0x14, 0xdf, 0xf1, 0x05, 0x9f, 0x85, 0x78, 0xf6, 0xd2, 0xb3, 0xd9, 0xab, 0xc0, 0xb2, 0x41, 0x1d,
0xdb, 0x73, 0x86, 0xff, 0xaa, 0x4f, 0xf0, 0xdf, 0xd2, 0xe3, 0xfc, 0x57, 0x2b, 0xfb, 0xaf, 0x53, 0xae, 0x0d, 0x98, 0x25, 0x06, 0x98, 0x57, 0xb3, 0xee, 0xf7, 0x11, 0xb3, 0x12, 0xed, 0xcc, 0x2c,
0x54, 0xa1, 0x60, 0xbf, 0x1e, 0xac, 0x4f, 0xe5, 0xfe, 0xb5, 0xfb, 0xde, 0xfe, 0xa9, 0x00, 0xc8, 0x6a, 0xe7, 0x49, 0xf8, 0x0d, 0x74, 0x75, 0x4e, 0x9f, 0x85, 0xbb, 0xde, 0xc0, 0x69, 0xa0, 0xe5,
0xa7, 0xee, 0x44, 0xce, 0xa1, 0x59, 0x30, 0xbb, 0xbb, 0x6f, 0x3e, 0x08, 0xfb, 0x73, 0xcf, 0xa4, 0x48, 0xa0, 0x2f, 0x41, 0x09, 0xb7, 0xbc, 0x23, 0xce, 0x49, 0x2a, 0xe4, 0x45, 0x55, 0xfc, 0x8e,
0xb3, 0xb1, 0x00, 0x43, 0xce, 0x61, 0xf5, 0x13, 0xde, 0x9a, 0x90, 0x6c, 0x44, 0xba, 0xb3, 0xe1, 0xbc, 0x21, 0x37, 0x77, 0xfa, 0x5a, 0xc2, 0x69, 0x93, 0xee, 0x48, 0x9b, 0x9c, 0x9c, 0xb6, 0x84,
0x59, 0xb5, 0x57, 0xf3, 0xd2, 0x66, 0xd7, 0x13, 0x86, 0xfa, 0x67, 0x6c, 0x0e, 0xc3, 0xbc, 0x9f, 0x38, 0xa5, 0x17, 0x88, 0xd3, 0xd2, 0xfd, 0xe2, 0x94, 0x89, 0xc7, 0x49, 0x8b, 0x5a, 0xf9, 0xf0,
0xe6, 0x31, 0xd4, 0x05, 0xce, 0x60, 0x25, 0x2f, 0xf0, 0xf6, 0x0c, 0x6c, 0x71, 0x31, 0x9d, 0xce, 0x69, 0xea, 0xc1, 0xea, 0xcc, 0x05, 0x0f, 0x1d, 0xa6, 0xad, 0x57, 0x50, 0x8a, 0x11, 0x21, 0x00,
0x7c, 0x08, 0x39, 0x83, 0x96, 0x99, 0xf7, 0x54, 0xad, 0x83, 0x6c, 0xce, 0x04, 0x67, 0xa5, 0xba, 0x99, 0xf6, 0xbb, 0xf7, 0x7b, 0xfb, 0x5f, 0xca, 0x8f, 0x08, 0x81, 0xe2, 0xc7, 0xb3, 0x76, 0xb7,
0x73, 0xb2, 0x66, 0xd8, 0xab, 0x8c, 0x9b, 0xa6, 0x3a, 0x9b, 0x5b, 0x61, 0x54, 0x77, 0x11, 0x44, 0xa5, 0xb5, 0x3b, 0x9d, 0x63, 0xad, 0x73, 0xd6, 0x2d, 0x4b, 0xbb, 0xff, 0x52, 0x00, 0x6e, 0x07,
0x57, 0xbd, 0xae, 0xa9, 0x8f, 0xf8, 0xbb, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x6c, 0x99, 0x4f, 0x8f, 0x1c, 0xe9, 0x40, 0x3e, 0x12, 0xf7, 0xc6, 0x8d, 0xc2, 0xb9, 0xaf, 0x4d, 0x75, 0xed, 0x16,
0x5f, 0xfb, 0x07, 0x00, 0x00, 0x0c, 0xe9, 0x40, 0xf1, 0x13, 0x5e, 0xf9, 0x25, 0xf7, 0x22, 0x52, 0x4b, 0x86, 0x07, 0xdd, 0x5e,
0xcc, 0x3b, 0xf6, 0x77, 0x6c, 0xca, 0xd0, 0xfb, 0x35, 0x98, 0xc3, 0x30, 0x1c, 0x86, 0x79, 0x0c,
0xbd, 0x06, 0x6d, 0x58, 0x09, 0xcf, 0x64, 0x23, 0x01, 0x1b, 0x5d, 0x88, 0x6a, 0x75, 0x3e, 0x84,
0xb4, 0xa1, 0xe0, 0xeb, 0x6d, 0x89, 0x09, 0x92, 0xf5, 0x44, 0x70, 0xd0, 0xaa, 0x36, 0xe7, 0xd4,
0x17, 0xdb, 0x0d, 0xb8, 0x79, 0x54, 0x93, 0xb9, 0x45, 0xa4, 0x36, 0x6e, 0x83, 0x78, 0x5d, 0xcf,
0x33, 0x62, 0x39, 0x5f, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0xd4, 0x54, 0xd0, 0xf3, 0xcd, 0x09,
0x00, 0x00,
} }
// Reference imports to suppress errors if they are not otherwise used. // Reference imports to suppress errors if they are not otherwise used.

@ -19,6 +19,20 @@ service SwapServer {
returns (ServerLoopInQuoteResponse); returns (ServerLoopInQuoteResponse);
} }
/**
This enum defines the protocol versions that clients may adhere to. Note that
this is not a flagged enum. If a particular protocol version adds a feature,
then in general all the preceding features are also supported. Exception to this
is when features get deprecated.
*/
enum ProtocolVersion {
/// No protocol version reported at all.
LEGACY = 0;
/// Client may attempt to send the loop out payment in multiple parts.
MULTI_LOOP_OUT = 1;
}
message ServerLoopOutRequest { message ServerLoopOutRequest {
bytes receiver_key = 1; bytes receiver_key = 1;
@ -28,6 +42,9 @@ message ServerLoopOutRequest {
/// The unix time in seconds we want the on-chain swap to be published by. /// The unix time in seconds we want the on-chain swap to be published by.
int64 swap_publication_deadline = 4; int64 swap_publication_deadline = 4;
/// The protocol version that the client adheres to.
ProtocolVersion protocol_version = 5;
} }
message ServerLoopOutResponse { message ServerLoopOutResponse {
@ -46,6 +63,9 @@ message ServerLoopOutQuoteRequest {
/// The unix time in seconds we want the on-chain swap to be published by. /// The unix time in seconds we want the on-chain swap to be published by.
int64 swap_publication_deadline = 2; int64 swap_publication_deadline = 2;
/// The protocol version that the client adheres to.
ProtocolVersion protocol_version = 3;
} }
message ServerLoopOutQuote { message ServerLoopOutQuote {
@ -67,6 +87,8 @@ message ServerLoopOutQuote {
} }
message ServerLoopOutTermsRequest { message ServerLoopOutTermsRequest {
/// The protocol version that the client adheres to.
ProtocolVersion protocol_version = 1;
} }
message ServerLoopOutTerms { message ServerLoopOutTerms {
@ -80,6 +102,9 @@ message ServerLoopInRequest {
uint64 amt = 3; uint64 amt = 3;
string swap_invoice = 4; string swap_invoice = 4;
bytes last_hop = 5; bytes last_hop = 5;
/// The protocol version that the client adheres to.
ProtocolVersion protocol_version = 6;
} }
message ServerLoopInResponse { message ServerLoopInResponse {
@ -90,6 +115,9 @@ message ServerLoopInResponse {
message ServerLoopInQuoteRequest { message ServerLoopInQuoteRequest {
/// The swap amount. If zero, a quote for a maximum amt swap will be given. /// The swap amount. If zero, a quote for a maximum amt swap will be given.
uint64 amt = 1; uint64 amt = 1;
/// The protocol version that the client adheres to.
ProtocolVersion protocol_version = 2;
} }
message ServerLoopInQuoteResponse { message ServerLoopInQuoteResponse {
@ -101,6 +129,8 @@ message ServerLoopInQuoteResponse {
} }
message ServerLoopInTermsRequest { message ServerLoopInTermsRequest {
/// The protocol version that the client adheres to.
ProtocolVersion protocol_version = 1;
} }
message ServerLoopInTerms { message ServerLoopInTerms {

@ -21,6 +21,10 @@ import (
"google.golang.org/grpc/credentials" "google.golang.org/grpc/credentials"
) )
// protocolVersion defines the version of the protocol that is currently
// supported by the loop client.
const protocolVersion = looprpc.ProtocolVersion_MULTI_LOOP_OUT
type swapServerClient interface { type swapServerClient interface {
GetLoopOutTerms(ctx context.Context) ( GetLoopOutTerms(ctx context.Context) (
*LoopOutTerms, error) *LoopOutTerms, error)
@ -84,7 +88,9 @@ func (s *grpcSwapServerClient) GetLoopOutTerms(ctx context.Context) (
rpcCtx, rpcCancel := context.WithTimeout(ctx, globalCallTimeout) rpcCtx, rpcCancel := context.WithTimeout(ctx, globalCallTimeout)
defer rpcCancel() defer rpcCancel()
terms, err := s.server.LoopOutTerms(rpcCtx, terms, err := s.server.LoopOutTerms(rpcCtx,
&looprpc.ServerLoopOutTermsRequest{}, &looprpc.ServerLoopOutTermsRequest{
ProtocolVersion: protocolVersion,
},
) )
if err != nil { if err != nil {
return nil, err return nil, err
@ -106,6 +112,7 @@ func (s *grpcSwapServerClient) GetLoopOutQuote(ctx context.Context,
&looprpc.ServerLoopOutQuoteRequest{ &looprpc.ServerLoopOutQuoteRequest{
Amt: uint64(amt), Amt: uint64(amt),
SwapPublicationDeadline: swapPublicationDeadline.Unix(), SwapPublicationDeadline: swapPublicationDeadline.Unix(),
ProtocolVersion: protocolVersion,
}, },
) )
if err != nil { if err != nil {
@ -136,7 +143,9 @@ func (s *grpcSwapServerClient) GetLoopInTerms(ctx context.Context) (
rpcCtx, rpcCancel := context.WithTimeout(ctx, globalCallTimeout) rpcCtx, rpcCancel := context.WithTimeout(ctx, globalCallTimeout)
defer rpcCancel() defer rpcCancel()
terms, err := s.server.LoopInTerms(rpcCtx, terms, err := s.server.LoopInTerms(rpcCtx,
&looprpc.ServerLoopInTermsRequest{}, &looprpc.ServerLoopInTermsRequest{
ProtocolVersion: protocolVersion,
},
) )
if err != nil { if err != nil {
return nil, err return nil, err
@ -155,7 +164,8 @@ func (s *grpcSwapServerClient) GetLoopInQuote(ctx context.Context,
defer rpcCancel() defer rpcCancel()
quoteResp, err := s.server.LoopInQuote(rpcCtx, quoteResp, err := s.server.LoopInQuote(rpcCtx,
&looprpc.ServerLoopInQuoteRequest{ &looprpc.ServerLoopInQuoteRequest{
Amt: uint64(amt), Amt: uint64(amt),
ProtocolVersion: protocolVersion,
}, },
) )
if err != nil { if err != nil {
@ -181,6 +191,7 @@ func (s *grpcSwapServerClient) NewLoopOutSwap(ctx context.Context,
Amt: uint64(amount), Amt: uint64(amount),
ReceiverKey: receiverKey[:], ReceiverKey: receiverKey[:],
SwapPublicationDeadline: swapPublicationDeadline.Unix(), SwapPublicationDeadline: swapPublicationDeadline.Unix(),
ProtocolVersion: protocolVersion,
}, },
) )
if err != nil { if err != nil {
@ -212,10 +223,11 @@ func (s *grpcSwapServerClient) NewLoopInSwap(ctx context.Context,
defer rpcCancel() defer rpcCancel()
req := &looprpc.ServerLoopInRequest{ req := &looprpc.ServerLoopInRequest{
SwapHash: swapHash[:], SwapHash: swapHash[:],
Amt: uint64(amount), Amt: uint64(amount),
SenderKey: senderKey[:], SenderKey: senderKey[:],
SwapInvoice: swapInvoice, SwapInvoice: swapInvoice,
ProtocolVersion: protocolVersion,
} }
if lastHop != nil { if lastHop != nil {
req.LastHop = lastHop[:] req.LastHop = lastHop[:]

Loading…
Cancel
Save