Files
lspd/rpc/lspd.proto
2024-02-08 11:19:56 +01:00

105 lines
3.0 KiB
Protocol Buffer

syntax = "proto3";
option java_multiple_files = true;
option java_package = "io.grpc.lspd.service";
option java_outer_classname = "LspdProto";
option go_package = "github.com/breez/lspd";
package lspd;
service ChannelOpener {
rpc ChannelInformation(ChannelInformationRequest)
returns (ChannelInformationReply) {}
rpc RegisterPayment (RegisterPaymentRequest) returns (RegisterPaymentReply) {}
rpc CheckChannels(Encrypted) returns (Encrypted) {}
}
message ChannelInformationRequest {
/// The identity pubkey of the Lightning node
string pubkey = 1 [ json_name = "pubkey" ];
}
message ChannelInformationReply {
/// The name of of lsp
string name = 1 [ json_name = "name" ];
/// The identity pubkey of the Lightning node
string pubkey = 2 [ json_name = "pubkey" ];
/// The network location of the lightning node, e.g. `12.34.56.78:9012` or
/// `localhost:10011`
string host = 3 [ json_name = "host" ];
/// The channel capacity in satoshis
int64 channel_capacity = 4 [ json_name = "channel_capacity" ];
/// The target number of blocks that the funding transaction should be
/// confirmed by.
int32 target_conf = 5 [ json_name = "target_conf" ];
/// The base fee charged regardless of the number of milli-satoshis sent.
int64 base_fee_msat = 6 [ json_name = "base_fee_msat" ];
/// The effective fee rate in milli-satoshis. The precision of this value goes
/// up to 6 decimal places, so 1e-6.
double fee_rate = 7 [ json_name = "fee_rate" ];
/// The required timelock delta for HTLCs forwarded over the channel.
uint32 time_lock_delta = 8 [ json_name = "time_lock_delta" ];
/// The minimum value in millisatoshi we will require for incoming HTLCs on
/// the channel.
int64 min_htlc_msat = 9 [ json_name = "min_htlc_msat" ];
int64 channel_fee_permyriad = 10 [deprecated = true];
bytes lsp_pubkey = 11;
// The channel can be closed if not used this duration in seconds.
int64 max_inactive_duration = 12 [deprecated = true];
int64 channel_minimum_fee_msat = 13 [deprecated = true];
repeated OpeningFeeParams opening_fee_params_menu = 14;
}
message OpeningFeeParams {
uint64 min_msat = 1;
uint32 proportional = 2;
string valid_until = 3;
// The channel can be closed if not used this duration in blocks.
uint32 max_idle_time = 4;
uint32 max_client_to_self_delay = 5;
string promise = 6;
}
message RegisterPaymentRequest {
bytes blob = 3;
}
message RegisterPaymentReply {}
message PaymentInformation {
bytes payment_hash = 1;
bytes payment_secret = 2;
bytes destination = 3;
int64 incoming_amount_msat = 4;
int64 outgoing_amount_msat = 5;
string tag = 6;
OpeningFeeParams opening_fee_params = 7;
}
message Encrypted {
bytes data = 1;
}
message Signed {
bytes data = 1;
bytes pubkey = 2;
bytes signature = 3;
}
message CheckChannelsRequest {
bytes encrypt_pubkey = 1;
map<string, uint64> fake_channels = 2;
map<string, uint64> waiting_close_channels = 3;
}
message CheckChannelsReply {
map<string, uint64> not_fake_channels = 1;
map<string, uint64> closed_channels = 2;
}