You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
loop/swapserverrpc/reservation.proto

71 lines
2.6 KiB
Protocol Buffer

syntax = "proto3";
// We can't change this to swapserverrpc, it would be a breaking change because
// the package name is also contained in the HTTP URIs and old clients would
// call the wrong endpoints. Luckily with the go_package option we can have
// different golang and RPC package names to fix protobuf namespace conflicts.
package looprpc;
option go_package = "github.com/lightninglabs/loop/swapserverrpc";
service ReservationService {
// ReservationNotificationStream is a server side stream that sends
// notifications if the server wants to open a reservation to the client.
rpc ReservationNotificationStream (ReservationNotificationRequest)
returns (stream ServerReservationNotification);
// OpenReservation requests a new reservation UTXO from the server.
rpc OpenReservation (ServerOpenReservationRequest)
returns (ServerOpenReservationResponse);
}
// ReservationNotificationRequest is an empty request sent from the client to
// the server to open a stream to receive reservation notifications.
message ReservationNotificationRequest {
}
// ServerReservationNotification is a notification sent from the server to the
// client if the server wants to open a reservation.
message ServerReservationNotification {
// reservation_id is the id of the reservation.
bytes reservation_id = 1;
// value is the value of the reservation in satoshis.
uint64 value = 2;
// server_key is the public key of the server.
bytes server_key = 3;
// expiry is the absolute expiry of the reservation.
uint32 expiry = 4;
// protocol_version is the version of the reservation protocol.
ReservationProtocolVersion protocol_version = 5;
}
// ServerOpenReservationRequest is a request sent from the client to the server
// to confirm a reservation opening.
message ServerOpenReservationRequest {
// reservation_id is the id of the reservation.
bytes reservation_id = 1;
// client_key is the public key of the client.
bytes client_key = 2;
}
// ServerOpenReservationResponse is a response sent from the server to the
// client to confirm a reservation opening.
message ServerOpenReservationResponse {
}
// ReservationProtocolVersion is the version of the reservation protocol.
enum ReservationProtocolVersion {
// RESERVATION_NONE is the default value and means that the reservation
// protocol version is not set.
RESERVATION_NONE = 0;
// RESERVATION_SERVER_REQUEST is the first version of the reservation
// protocol where the server notifies the client about a reservation.
RESERVATION_SERVER_NOTIFY = 1;
};