mirror of
https://github.com/lightninglabs/loop
synced 2024-11-04 06:00:21 +00:00
65c847674d
Once we have revealed our preimage to the world with a sweep attempt, we can safely push our preimage to the server to speed up on chain claim. Rather than rely on the server, we use the state of our invoice in lnd to determine whether we should continue trying to push the preimage to the server.
174 lines
4.7 KiB
Protocol Buffer
174 lines
4.7 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
import "google/api/annotations.proto";
|
|
|
|
package looprpc;
|
|
|
|
service SwapServer {
|
|
rpc LoopOutTerms (ServerLoopOutTermsRequest) returns (ServerLoopOutTerms);
|
|
|
|
rpc NewLoopOutSwap (ServerLoopOutRequest) returns (ServerLoopOutResponse);
|
|
|
|
rpc LoopOutPushPreimage (ServerLoopOutPushPreimageRequest)
|
|
returns (ServerLoopOutPushPreimageResponse);
|
|
|
|
rpc LoopOutQuote (ServerLoopOutQuoteRequest) returns (ServerLoopOutQuote);
|
|
|
|
rpc LoopInTerms (ServerLoopInTermsRequest) returns (ServerLoopInTerms);
|
|
|
|
rpc NewLoopInSwap (ServerLoopInRequest) returns (ServerLoopInResponse);
|
|
|
|
rpc LoopInQuote (ServerLoopInQuoteRequest)
|
|
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;
|
|
|
|
/**
|
|
Loop will use native segwit (P2WSH) htlcs by default, while externally
|
|
published htlcs may use native (P2WSH) or nested (NP2WSH) segwit as well.
|
|
*/
|
|
NATIVE_SEGWIT_LOOP_IN = 2;
|
|
|
|
/*
|
|
Once the on chain loop out htlc is confirmed, the client can push the swap
|
|
preimage to the server to speed up claim of their off chain htlc (acquiring
|
|
incoming liquidity more quickly than if the server waited for the on chain
|
|
claim tx).
|
|
*/
|
|
PREIMAGE_PUSH_LOOP_OUT = 3;
|
|
}
|
|
|
|
message ServerLoopOutRequest {
|
|
bytes receiver_key = 1;
|
|
|
|
bytes swap_hash = 2;
|
|
|
|
uint64 amt = 3;
|
|
|
|
/// The unix time in seconds we want the on-chain swap to be published by.
|
|
int64 swap_publication_deadline = 4;
|
|
|
|
/// The protocol version that the client adheres to.
|
|
ProtocolVersion protocol_version = 5;
|
|
}
|
|
|
|
message ServerLoopOutResponse {
|
|
string swap_invoice = 1;
|
|
|
|
string prepay_invoice = 2;
|
|
|
|
bytes sender_key = 3;
|
|
|
|
int32 expiry = 4;
|
|
}
|
|
|
|
message ServerLoopOutQuoteRequest {
|
|
/// The swap amount. If zero, a quote for a maximum amt swap will be given.
|
|
uint64 amt = 1;
|
|
|
|
/// The unix time in seconds we want the on-chain swap to be published by.
|
|
int64 swap_publication_deadline = 2;
|
|
|
|
/// The protocol version that the client adheres to.
|
|
ProtocolVersion protocol_version = 3;
|
|
}
|
|
|
|
message ServerLoopOutQuote {
|
|
string swap_payment_dest = 1;
|
|
|
|
/// The total estimated swap fee given the quote amt.
|
|
int64 swap_fee = 2;
|
|
|
|
/// Deprecated, total swap fee given quote amt is calculated in swap_fee.
|
|
int64 swap_fee_rate = 3 [deprecated = true];
|
|
|
|
uint64 prepay_amt = 4;
|
|
|
|
uint64 min_swap_amount = 5 [deprecated = true];
|
|
|
|
uint64 max_swap_amount = 6 [deprecated = true];
|
|
|
|
int32 cltv_delta = 7;
|
|
}
|
|
|
|
message ServerLoopOutTermsRequest {
|
|
/// The protocol version that the client adheres to.
|
|
ProtocolVersion protocol_version = 1;
|
|
}
|
|
|
|
message ServerLoopOutTerms {
|
|
uint64 min_swap_amount = 1;
|
|
uint64 max_swap_amount = 2;
|
|
}
|
|
|
|
message ServerLoopInRequest {
|
|
bytes sender_key = 1;
|
|
bytes swap_hash = 2;
|
|
uint64 amt = 3;
|
|
string swap_invoice = 4;
|
|
bytes last_hop = 5;
|
|
|
|
/// The protocol version that the client adheres to.
|
|
ProtocolVersion protocol_version = 6;
|
|
}
|
|
|
|
message ServerLoopInResponse {
|
|
bytes receiver_key = 1;
|
|
int32 expiry = 2;
|
|
}
|
|
|
|
message ServerLoopInQuoteRequest {
|
|
/// The swap amount. If zero, a quote for a maximum amt swap will be given.
|
|
uint64 amt = 1;
|
|
|
|
/// The protocol version that the client adheres to.
|
|
ProtocolVersion protocol_version = 2;
|
|
}
|
|
|
|
message ServerLoopInQuoteResponse {
|
|
int64 swap_fee = 1;
|
|
int64 swap_fee_rate = 2 [deprecated = true];
|
|
uint64 min_swap_amount = 4 [deprecated = true];
|
|
uint64 max_swap_amount = 5 [deprecated = true];
|
|
int32 cltv_delta = 6;
|
|
}
|
|
|
|
message ServerLoopInTermsRequest {
|
|
/// The protocol version that the client adheres to.
|
|
ProtocolVersion protocol_version = 1;
|
|
}
|
|
|
|
message ServerLoopInTerms {
|
|
uint64 min_swap_amount = 1;
|
|
uint64 max_swap_amount = 2;
|
|
}
|
|
|
|
// ServerLoopOutPushPreimageRequest pushes a preimage to the server. Note that
|
|
// this call returns with no error after the server acknowledges the preimage
|
|
// and does not block until the invoice is settled.
|
|
message ServerLoopOutPushPreimageRequest {
|
|
// The protocol version that the client adheres to.
|
|
ProtocolVersion protocol_version = 1;
|
|
|
|
/*
|
|
Preimage is the preimage of the loop out swap that we wish to push to the
|
|
server to speed up off-chain claim once the on-chain htlc has confirmed.
|
|
*/
|
|
bytes preimage = 2;
|
|
}
|
|
|
|
message ServerLoopOutPushPreimageResponse {
|
|
}
|