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 fake_channels = 2; map waiting_close_channels = 3; } message CheckChannelsReply { map not_fake_channels = 1; map closed_channels = 2; }