diff --git a/API.md b/API.md new file mode 100644 index 0000000..16cab53 --- /dev/null +++ b/API.md @@ -0,0 +1,529 @@ +# Protocol Documentation + + +## Table of Contents + +- [lspd.proto](#lspd-proto) + - [ChannelInformationReply](#lspd-ChannelInformationReply) + - [ChannelInformationRequest](#lspd-ChannelInformationRequest) + - [Encrypted](#lspd-Encrypted) + - [GetTimeLockDeltaReply](#lspd-GetTimeLockDeltaReply) + - [GetTimeLockDeltaRequest](#lspd-GetTimeLockDeltaRequest) + - [IntegrityNonceReply](#lspd-IntegrityNonceReply) + - [IntegrityNonceRequest](#lspd-IntegrityNonceRequest) + - [IntegrityVerifyReply](#lspd-IntegrityVerifyReply) + - [IntegrityVerifyRequest](#lspd-IntegrityVerifyRequest) + - [NodePair](#lspd-NodePair) + - [OpenChannelReply](#lspd-OpenChannelReply) + - [OpenChannelRequest](#lspd-OpenChannelRequest) + - [PaymentInformation](#lspd-PaymentInformation) + - [PingReply](#lspd-PingReply) + - [PingRequest](#lspd-PingRequest) + - [QueryRoutesRequest](#lspd-QueryRoutesRequest) + - [ReceiveSubmarineReply](#lspd-ReceiveSubmarineReply) + - [ReceiveSubmarineRequest](#lspd-ReceiveSubmarineRequest) + - [RegisterPaymentReply](#lspd-RegisterPaymentReply) + - [RegisterPaymentRequest](#lspd-RegisterPaymentRequest) + - [RegisterSubmarineReply](#lspd-RegisterSubmarineReply) + - [RegisterSubmarineRequest](#lspd-RegisterSubmarineRequest) + - [RegisterUserInfoReply](#lspd-RegisterUserInfoReply) + - [RegisterUserInfoRequest](#lspd-RegisterUserInfoRequest) + - [ReportReply](#lspd-ReportReply) + - [ReportRequest](#lspd-ReportRequest) + + - [IntegrityResult](#lspd-IntegrityResult) + - [ReportRequest.ReportLevel](#lspd-ReportRequest-ReportLevel) + + - [LightningService](#lspd-LightningService) + +- [Scalar Value Types](#scalar-value-types) + + + + +

Top

+ +## lspd.proto + + + + + +### ChannelInformationReply + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| name | [string](#string) | | The name of of LSP | +| pubkey | [string](#string) | | The identity pubkey of the Lightning node | +| host | [string](#string) | | The network location of the lightning node, e.g. `12.34.56.78:9012` or / `localhost:10011` | +| base_fee_msat | [int64](#int64) | | The base fee charged regardless of the number of milli-satoshis sent. | +| fee_rate | [double](#double) | | The effective fee rate in milli-satoshis. The precision of this value goes / up to 6 decimal places, so 1e-6. | +| time_lock_delta | [uint32](#uint32) | | The required timelock delta for HTLCs forwarded over the channel. | +| channel_fee_permyriad | [int64](#int64) | | The feerate per 10000 sats(1/100 percent) | +| lsp_pubkey | [bytes](#bytes) | | LSP pubkey(not LN node_id). / It uses for encoding `Encrypted.data` from remote peer. | +| max_inactive_duration | [int64](#int64) | | The channel can be closed if not used this duration in seconds. | +| channel_minimum_fee_msat | [int64](#int64) | | The minimum fee msat for On-The-Fly channel creation and Submarine Swap(not routing fee). | +| version | [string](#string) | | LSP version | +| swap_script_version | [int32](#int32) | | Submarine Script version | + + + + + + + + +### ChannelInformationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| pubkey | [string](#string) | | The identity pubkey of the Lightning node | + + + + + + + + +### Encrypted + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| data | [bytes](#bytes) | | The encrypted data by LSP pubkey | + + + + + + + + +### GetTimeLockDeltaReply + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| time_lock_delta_hub | [uint32](#uint32) | | time_lock_delta value from hub routing policy | +| time_lock_delta_another | [uint32](#uint32) | | time_lock_delta value from another node routing policy | + + + + + + + + +### GetTimeLockDeltaRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| chan_id | [uint64](#uint64) | | The ID to request channel time_lock_delta value. | + + + + + + + + +### IntegrityNonceReply + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| nonce | [string](#string) | | The nonce for Integrity API | + + + + + + + + +### IntegrityNonceRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| encrypt_pubkey | [bytes](#bytes) | | The pubkey to encrypt response data(`QueryRouteReply`) | +| pubkey | [bytes](#bytes) | | The identity pubkey of the Lightning node | +| id | [string](#string) | | The model -dependent ID | + + + + + + + + +### IntegrityVerifyReply + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| result | [IntegrityResult](#lspd-IntegrityResult) | | | + + + + + + + + +### IntegrityVerifyRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| pubkey | [bytes](#bytes) | | The identity pubkey of the Lightning node | +| token | [string](#string) | | Integrity token(empty string: return previous result if exist) | +| id | [string](#string) | | The model -dependent ID | + + + + + + + + +### NodePair + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| from | [bytes](#bytes) | | | +| to | [bytes](#bytes) | | | + + + + + + + + +### OpenChannelReply + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| tx_hash | [string](#string) | | The transaction hash | +| output_index | [uint32](#uint32) | | The output index | + + + + + + + + +### OpenChannelRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| pubkey | [string](#string) | | The identity pubkey of the Lightning node | + + + + + + + + +### PaymentInformation + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| payment_hash | [bytes](#bytes) | | The payment hash to intercept forwarding HTLC | +| payment_secret | [bytes](#bytes) | | The payment address. / An optional payment addr to be included within the last hop of the route. | +| destination | [bytes](#bytes) | | The payee LND node_id | +| incoming_amount_msat | [int64](#int64) | | The incoming amount to LSP's LN node | +| outgoing_amount_msat | [int64](#int64) | | The outgoing amount from LSP's LN node to payee | + + + + + + + + +### PingReply + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| nonce | [int32](#int32) | | | + + + + + + + + +### PingRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| nonce | [int32](#int32) | | | + + + + + + + + +### QueryRoutesRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| encrypt_pubkey | [bytes](#bytes) | | The pubkey to encrypt response data(`QueryRouteReply`) | +| invoice | [string](#string) | | The LN invoice to send after open channel | +| ignored_nodes | [bytes](#bytes) | repeated | The nodes to ignore routing | +| ignored_pairs | [NodePair](#lspd-NodePair) | repeated | The pairs to ignore routing | +| amount | [int64](#int64) | | Specify amount if invoice not have amount(0: use `invoice` amount) | + + + + + + + + +### ReceiveSubmarineReply + + + + + + + + + +### ReceiveSubmarineRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| payment_hash | [bytes](#bytes) | | THe payment_hash to process Submarine Swap | +| invoice | [string](#string) | | The LN invoice to send after open channel | + + + + + + + + +### RegisterPaymentReply + + + + + + + + + +### RegisterPaymentRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| blob | [bytes](#bytes) | | The encrypted `PaymentInformation` by LSP pubkey | + + + + + + + + +### RegisterSubmarineReply + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| script_address | [string](#string) | | swap address | +| htlc_pubkey | [bytes](#bytes) | | The HTLC pubkey for swap script | + + + + + + + + +### RegisterSubmarineRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| encrypt_pubkey | [bytes](#bytes) | | The pubkey to encrypt response data(`RegisterSubmarineReply`) | +| payment_hash | [bytes](#bytes) | | THe payment_hash for swap script and LN invoice | +| repay_pubkey | [bytes](#bytes) | | The repayment pubkey for swap script | +| destination | [bytes](#bytes) | | The payee LN node_id | +| swap_script_version | [int32](#int32) | | Supported submarine Script version | + + + + + + + + +### RegisterUserInfoReply + + + + + + + + + +### RegisterUserInfoRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| mail_address | [string](#string) | | mail address | + + + + + + + + +### ReportReply + + + + + + + + + +### ReportRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| category | [string](#string) | | category | +| level | [ReportRequest.ReportLevel](#lspd-ReportRequest-ReportLevel) | | | +| message | [string](#string) | | message | + + + + + + + + + + +### IntegrityResult + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| INTEGRITYRESULT_NONE | 0 | | +| INTEGRITYRESULT_OK | 1 | | +| INTEGRITYRESULT_NG | 2 | | + + + + + +### ReportRequest.ReportLevel +level + +| Name | Number | Description | +| ---- | ------ | ----------- | +| REPORTLEVEL_NORMAL | 0 | | +| REPORTLEVEL_NOTIFY | 1 | | +| REPORTLEVEL_ALERT | 2 | | + + + + + + + + + +### LightningService + + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| Ping | [PingRequest](#lspd-PingRequest) | [PingReply](#lspd-PingReply) | Ping/Pong | +| ChannelInformation | [ChannelInformationRequest](#lspd-ChannelInformationRequest) | [ChannelInformationReply](#lspd-ChannelInformationReply) | Get LSP information | +| OpenChannel | [OpenChannelRequest](#lspd-OpenChannelRequest) | [OpenChannelReply](#lspd-OpenChannelReply) | Open private zero-conf channel | +| RegisterPayment | [RegisterPaymentRequest](#lspd-RegisterPaymentRequest) | [RegisterPaymentReply](#lspd-RegisterPaymentReply) | [on-the-fly]Register a on-the-fly channel creation information | +| RegisterSubmarine | [Encrypted](#lspd-Encrypted) | [Encrypted](#lspd-Encrypted) | [submarine swap]Register a Submarine Swap information | +| ReceiveSubmarine | [Encrypted](#lspd-Encrypted) | [ReceiveSubmarineReply](#lspd-ReceiveSubmarineReply) | [submarine swap]Request starting Submarine Swap | +| QueryRoutes | [Encrypted](#lspd-Encrypted) | [Encrypted](#lspd-Encrypted) | Request query routes | +| GetTimeLockDelta | [GetTimeLockDeltaRequest](#lspd-GetTimeLockDeltaRequest) | [GetTimeLockDeltaReply](#lspd-GetTimeLockDeltaReply) | Request time_lock_delta obtained from GetChanInfo() result. (time_lock_delta is the same as cltv_expiry_delta in channel_update message.) If GetChanInfo() result doesn't contain hub's lnrpc.RoutingPolicy, return error. [GetChanInfo](https://lightning.engineering/api-docs/api/lnd/lightning/get-chan-info) | +| RegisterUserInfo | [Encrypted](#lspd-Encrypted) | [RegisterUserInfoReply](#lspd-RegisterUserInfoReply) | Register user mail address | +| ReportMessage | [Encrypted](#lspd-Encrypted) | [ReportReply](#lspd-ReportReply) | Report message | +| IntegrityNonce | [Encrypted](#lspd-Encrypted) | [Encrypted](#lspd-Encrypted) | Integrity get nonce message | +| IntegrityVerify | [Encrypted](#lspd-Encrypted) | [IntegrityVerifyReply](#lspd-IntegrityVerifyReply) | Integrity Verify message | + + + + + +## Scalar Value Types + +| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby | +| ----------- | ----- | --- | ---- | ------ | -- | -- | --- | ---- | +| double | | double | double | float | float64 | double | float | Float | +| float | | float | float | float | float32 | float | float | Float | +| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | +| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum | +| uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) | +| uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) | +| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | +| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum | +| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) | +| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum | +| sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | +| sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum | +| bool | | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | +| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) | +| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) | + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0f207e5 --- /dev/null +++ b/LICENSE @@ -0,0 +1,23 @@ +MIT License + +Copyright (c) 2023 Nayuta inc. +Copyright (c) 2022 Breez + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..859aecd --- /dev/null +++ b/README.md @@ -0,0 +1,48 @@ +original: [github.com/breez/lspd/rpc](https://github.com/breez/lspd/tree/ad0595f3f9dc417dd2371215ec9c52ea2c66a801/rpc) + +# NayutaHub2LspdProto + +NayutaHub2Lpsd proto file definition. + +## update *.go and API.md + +[Compiling Your Protocol Buffers](https://protobuf.dev/getting-started/gotutorial/#compiling-protocol-buffers) + +### install requirements + +https://grpc.io/docs/languages/go/quickstart/ + +#### protoc + +Download, unzip and place your PATH. + +[protobuf v3.19.1](https://github.com/protocolbuffers/protobuf/releases/tag/v3.19.1) + +#### protoc-gen-go + +```bash +go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.27.1 +go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.1 +``` + +#### check + +```bash +protoc --version +protoc-gen-go --version +protoc-gen-go-grpc --version +``` + +Expected results + +```bash +libprotoc 3.19.1 +protoc-gen-go v1.27.1 +protoc-gen-go-grpc 1.1.0 +``` + +### update + +```bash +./genproto.sh +``` diff --git a/genproto.sh b/genproto.sh new file mode 100755 index 0000000..fc602d1 --- /dev/null +++ b/genproto.sh @@ -0,0 +1,7 @@ +#!/bin/bash +#protoc -I . lspd.proto --go_out=plugins=grpc:. + +# https://grpc.io/docs/languages/go/quickstart/#regenerate-grpc-code +protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative lspd.proto + +docker run --rm -v $(pwd):/out -v $(pwd):/protos pseudomuto/protoc-gen-doc --doc_opt=markdown,API.md diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..ed18f11 --- /dev/null +++ b/go.mod @@ -0,0 +1,16 @@ +module github.com/nayutaco/NayutaHub2LspdProto + +go 1.17 + +require ( + google.golang.org/grpc v1.38.0 + google.golang.org/protobuf v1.26.0 +) + +require ( + github.com/golang/protobuf v1.5.0 // indirect + golang.org/x/net v0.0.0-20190311183353-d8887717615a // indirect + golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a // indirect + golang.org/x/text v0.3.0 // indirect + google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..e90524b --- /dev/null +++ b/go.sum @@ -0,0 +1,88 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0 h1:LUVKkCeviFUMKqHa4tXIIij/lbhnMbP7Fn5wKdKkRh4= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.38.0 h1:/9BgsAsa5nWe26HqOlvlgJnqBuktYOLCgjCPqsa56W0= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/lspd.pb.go b/lspd.pb.go new file mode 100644 index 0000000..88bcd6e --- /dev/null +++ b/lspd.pb.go @@ -0,0 +1,2277 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.19.1 +// source: lspd.proto + +package NayutaHub2LspdProto + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type IntegrityResult int32 + +const ( + IntegrityResult_INTEGRITYRESULT_NONE IntegrityResult = 0 + IntegrityResult_INTEGRITYRESULT_OK IntegrityResult = 1 + IntegrityResult_INTEGRITYRESULT_NG IntegrityResult = 2 +) + +// Enum value maps for IntegrityResult. +var ( + IntegrityResult_name = map[int32]string{ + 0: "INTEGRITYRESULT_NONE", + 1: "INTEGRITYRESULT_OK", + 2: "INTEGRITYRESULT_NG", + } + IntegrityResult_value = map[string]int32{ + "INTEGRITYRESULT_NONE": 0, + "INTEGRITYRESULT_OK": 1, + "INTEGRITYRESULT_NG": 2, + } +) + +func (x IntegrityResult) Enum() *IntegrityResult { + p := new(IntegrityResult) + *p = x + return p +} + +func (x IntegrityResult) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (IntegrityResult) Descriptor() protoreflect.EnumDescriptor { + return file_lspd_proto_enumTypes[0].Descriptor() +} + +func (IntegrityResult) Type() protoreflect.EnumType { + return &file_lspd_proto_enumTypes[0] +} + +func (x IntegrityResult) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IntegrityResult.Descriptor instead. +func (IntegrityResult) EnumDescriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{0} +} + +// level +type ReportRequest_ReportLevel int32 + +const ( + ReportRequest_REPORTLEVEL_NORMAL ReportRequest_ReportLevel = 0 + ReportRequest_REPORTLEVEL_NOTIFY ReportRequest_ReportLevel = 1 + ReportRequest_REPORTLEVEL_ALERT ReportRequest_ReportLevel = 2 +) + +// Enum value maps for ReportRequest_ReportLevel. +var ( + ReportRequest_ReportLevel_name = map[int32]string{ + 0: "REPORTLEVEL_NORMAL", + 1: "REPORTLEVEL_NOTIFY", + 2: "REPORTLEVEL_ALERT", + } + ReportRequest_ReportLevel_value = map[string]int32{ + "REPORTLEVEL_NORMAL": 0, + "REPORTLEVEL_NOTIFY": 1, + "REPORTLEVEL_ALERT": 2, + } +) + +func (x ReportRequest_ReportLevel) Enum() *ReportRequest_ReportLevel { + p := new(ReportRequest_ReportLevel) + *p = x + return p +} + +func (x ReportRequest_ReportLevel) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ReportRequest_ReportLevel) Descriptor() protoreflect.EnumDescriptor { + return file_lspd_proto_enumTypes[1].Descriptor() +} + +func (ReportRequest_ReportLevel) Type() protoreflect.EnumType { + return &file_lspd_proto_enumTypes[1] +} + +func (x ReportRequest_ReportLevel) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ReportRequest_ReportLevel.Descriptor instead. +func (ReportRequest_ReportLevel) EnumDescriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{20, 0} +} + +type PingRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Nonce int32 `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"` +} + +func (x *PingRequest) Reset() { + *x = PingRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PingRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PingRequest) ProtoMessage() {} + +func (x *PingRequest) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PingRequest.ProtoReflect.Descriptor instead. +func (*PingRequest) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{0} +} + +func (x *PingRequest) GetNonce() int32 { + if x != nil { + return x.Nonce + } + return 0 +} + +type PingReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Nonce int32 `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"` +} + +func (x *PingReply) Reset() { + *x = PingReply{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PingReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PingReply) ProtoMessage() {} + +func (x *PingReply) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PingReply.ProtoReflect.Descriptor instead. +func (*PingReply) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{1} +} + +func (x *PingReply) GetNonce() int32 { + if x != nil { + return x.Nonce + } + return 0 +} + +type ChannelInformationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + /// The identity pubkey of the Lightning node + Pubkey string `protobuf:"bytes,1,opt,name=pubkey,proto3" json:"pubkey,omitempty"` +} + +func (x *ChannelInformationRequest) Reset() { + *x = ChannelInformationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelInformationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelInformationRequest) ProtoMessage() {} + +func (x *ChannelInformationRequest) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelInformationRequest.ProtoReflect.Descriptor instead. +func (*ChannelInformationRequest) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{2} +} + +func (x *ChannelInformationRequest) GetPubkey() string { + if x != nil { + return x.Pubkey + } + return "" +} + +type ChannelInformationReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + /// The name of of LSP + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + /// The identity pubkey of the Lightning node + Pubkey string `protobuf:"bytes,2,opt,name=pubkey,proto3" json:"pubkey,omitempty"` + /// The network location of the lightning node, e.g. `12.34.56.78:9012` or + /// `localhost:10011` + Host string `protobuf:"bytes,3,opt,name=host,proto3" json:"host,omitempty"` + /// The base fee charged regardless of the number of milli-satoshis sent. + BaseFeeMsat int64 `protobuf:"varint,6,opt,name=base_fee_msat,proto3" json:"base_fee_msat,omitempty"` + /// The effective fee rate in milli-satoshis. The precision of this value goes + /// up to 6 decimal places, so 1e-6. + FeeRate float64 `protobuf:"fixed64,7,opt,name=fee_rate,proto3" json:"fee_rate,omitempty"` + /// The required timelock delta for HTLCs forwarded over the channel. + TimeLockDelta uint32 `protobuf:"varint,8,opt,name=time_lock_delta,proto3" json:"time_lock_delta,omitempty"` + /// The feerate per 10000 sats(1/100 percent) + ChannelFeePermyriad int64 `protobuf:"varint,10,opt,name=channel_fee_permyriad,json=channelFeePermyriad,proto3" json:"channel_fee_permyriad,omitempty"` + /// LSP pubkey(not LN node_id). + /// It uses for encoding `Encrypted.data` from remote peer. + LspPubkey []byte `protobuf:"bytes,11,opt,name=lsp_pubkey,json=lspPubkey,proto3" json:"lsp_pubkey,omitempty"` + /// The channel can be closed if not used this duration in seconds. + MaxInactiveDuration int64 `protobuf:"varint,12,opt,name=max_inactive_duration,json=maxInactiveDuration,proto3" json:"max_inactive_duration,omitempty"` + /// The minimum fee msat for On-The-Fly channel creation and Submarine Swap(not routing fee). + ChannelMinimumFeeMsat int64 `protobuf:"varint,13,opt,name=channel_minimum_fee_msat,json=channelMinimumFeeMsat,proto3" json:"channel_minimum_fee_msat,omitempty"` + /// LSP version + Version string `protobuf:"bytes,14,opt,name=version,proto3" json:"version,omitempty"` + /// Submarine Script version + SwapScriptVersion int32 `protobuf:"varint,15,opt,name=swap_script_version,json=swapScriptVersion,proto3" json:"swap_script_version,omitempty"` +} + +func (x *ChannelInformationReply) Reset() { + *x = ChannelInformationReply{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelInformationReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelInformationReply) ProtoMessage() {} + +func (x *ChannelInformationReply) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelInformationReply.ProtoReflect.Descriptor instead. +func (*ChannelInformationReply) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{3} +} + +func (x *ChannelInformationReply) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ChannelInformationReply) GetPubkey() string { + if x != nil { + return x.Pubkey + } + return "" +} + +func (x *ChannelInformationReply) GetHost() string { + if x != nil { + return x.Host + } + return "" +} + +func (x *ChannelInformationReply) GetBaseFeeMsat() int64 { + if x != nil { + return x.BaseFeeMsat + } + return 0 +} + +func (x *ChannelInformationReply) GetFeeRate() float64 { + if x != nil { + return x.FeeRate + } + return 0 +} + +func (x *ChannelInformationReply) GetTimeLockDelta() uint32 { + if x != nil { + return x.TimeLockDelta + } + return 0 +} + +func (x *ChannelInformationReply) GetChannelFeePermyriad() int64 { + if x != nil { + return x.ChannelFeePermyriad + } + return 0 +} + +func (x *ChannelInformationReply) GetLspPubkey() []byte { + if x != nil { + return x.LspPubkey + } + return nil +} + +func (x *ChannelInformationReply) GetMaxInactiveDuration() int64 { + if x != nil { + return x.MaxInactiveDuration + } + return 0 +} + +func (x *ChannelInformationReply) GetChannelMinimumFeeMsat() int64 { + if x != nil { + return x.ChannelMinimumFeeMsat + } + return 0 +} + +func (x *ChannelInformationReply) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *ChannelInformationReply) GetSwapScriptVersion() int32 { + if x != nil { + return x.SwapScriptVersion + } + return 0 +} + +type OpenChannelRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + /// The identity pubkey of the Lightning node + Pubkey string `protobuf:"bytes,1,opt,name=pubkey,proto3" json:"pubkey,omitempty"` +} + +func (x *OpenChannelRequest) Reset() { + *x = OpenChannelRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OpenChannelRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OpenChannelRequest) ProtoMessage() {} + +func (x *OpenChannelRequest) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OpenChannelRequest.ProtoReflect.Descriptor instead. +func (*OpenChannelRequest) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{4} +} + +func (x *OpenChannelRequest) GetPubkey() string { + if x != nil { + return x.Pubkey + } + return "" +} + +type OpenChannelReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + /// The transaction hash + TxHash string `protobuf:"bytes,1,opt,name=tx_hash,proto3" json:"tx_hash,omitempty"` + /// The output index + OutputIndex uint32 `protobuf:"varint,2,opt,name=output_index,proto3" json:"output_index,omitempty"` +} + +func (x *OpenChannelReply) Reset() { + *x = OpenChannelReply{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OpenChannelReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OpenChannelReply) ProtoMessage() {} + +func (x *OpenChannelReply) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OpenChannelReply.ProtoReflect.Descriptor instead. +func (*OpenChannelReply) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{5} +} + +func (x *OpenChannelReply) GetTxHash() string { + if x != nil { + return x.TxHash + } + return "" +} + +func (x *OpenChannelReply) GetOutputIndex() uint32 { + if x != nil { + return x.OutputIndex + } + return 0 +} + +type RegisterPaymentRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + /// The encrypted `PaymentInformation` by LSP pubkey + Blob []byte `protobuf:"bytes,3,opt,name=blob,proto3" json:"blob,omitempty"` +} + +func (x *RegisterPaymentRequest) Reset() { + *x = RegisterPaymentRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegisterPaymentRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterPaymentRequest) ProtoMessage() {} + +func (x *RegisterPaymentRequest) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RegisterPaymentRequest.ProtoReflect.Descriptor instead. +func (*RegisterPaymentRequest) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{6} +} + +func (x *RegisterPaymentRequest) GetBlob() []byte { + if x != nil { + return x.Blob + } + return nil +} + +type RegisterPaymentReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RegisterPaymentReply) Reset() { + *x = RegisterPaymentReply{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegisterPaymentReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterPaymentReply) ProtoMessage() {} + +func (x *RegisterPaymentReply) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RegisterPaymentReply.ProtoReflect.Descriptor instead. +func (*RegisterPaymentReply) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{7} +} + +type PaymentInformation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + /// The payment hash to intercept forwarding HTLC + PaymentHash []byte `protobuf:"bytes,1,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` + /// The payment address. + /// An optional payment addr to be included within the last hop of the route. + PaymentSecret []byte `protobuf:"bytes,2,opt,name=payment_secret,json=paymentSecret,proto3" json:"payment_secret,omitempty"` + /// The payee LND node_id + Destination []byte `protobuf:"bytes,3,opt,name=destination,proto3" json:"destination,omitempty"` + /// The incoming amount to LSP's LN node + IncomingAmountMsat int64 `protobuf:"varint,4,opt,name=incoming_amount_msat,json=incomingAmountMsat,proto3" json:"incoming_amount_msat,omitempty"` + /// The outgoing amount from LSP's LN node to payee + OutgoingAmountMsat int64 `protobuf:"varint,5,opt,name=outgoing_amount_msat,json=outgoingAmountMsat,proto3" json:"outgoing_amount_msat,omitempty"` +} + +func (x *PaymentInformation) Reset() { + *x = PaymentInformation{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PaymentInformation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PaymentInformation) ProtoMessage() {} + +func (x *PaymentInformation) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PaymentInformation.ProtoReflect.Descriptor instead. +func (*PaymentInformation) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{8} +} + +func (x *PaymentInformation) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *PaymentInformation) GetPaymentSecret() []byte { + if x != nil { + return x.PaymentSecret + } + return nil +} + +func (x *PaymentInformation) GetDestination() []byte { + if x != nil { + return x.Destination + } + return nil +} + +func (x *PaymentInformation) GetIncomingAmountMsat() int64 { + if x != nil { + return x.IncomingAmountMsat + } + return 0 +} + +func (x *PaymentInformation) GetOutgoingAmountMsat() int64 { + if x != nil { + return x.OutgoingAmountMsat + } + return 0 +} + +type Encrypted struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + /// The encrypted data by LSP pubkey + Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *Encrypted) Reset() { + *x = Encrypted{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Encrypted) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Encrypted) ProtoMessage() {} + +func (x *Encrypted) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Encrypted.ProtoReflect.Descriptor instead. +func (*Encrypted) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{9} +} + +func (x *Encrypted) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +type RegisterSubmarineRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + /// The pubkey to encrypt response data(`RegisterSubmarineReply`) + EncryptPubkey []byte `protobuf:"bytes,1,opt,name=encrypt_pubkey,json=encryptPubkey,proto3" json:"encrypt_pubkey,omitempty"` + /// THe payment_hash for swap script and LN invoice + PaymentHash []byte `protobuf:"bytes,2,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` + /// The repayment pubkey for swap script + RepayPubkey []byte `protobuf:"bytes,3,opt,name=repay_pubkey,json=repayPubkey,proto3" json:"repay_pubkey,omitempty"` + /// The payee LN node_id + Destination []byte `protobuf:"bytes,4,opt,name=destination,proto3" json:"destination,omitempty"` + /// Supported submarine Script version + SwapScriptVersion int32 `protobuf:"varint,5,opt,name=swap_script_version,json=swapScriptVersion,proto3" json:"swap_script_version,omitempty"` +} + +func (x *RegisterSubmarineRequest) Reset() { + *x = RegisterSubmarineRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegisterSubmarineRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterSubmarineRequest) ProtoMessage() {} + +func (x *RegisterSubmarineRequest) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RegisterSubmarineRequest.ProtoReflect.Descriptor instead. +func (*RegisterSubmarineRequest) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{10} +} + +func (x *RegisterSubmarineRequest) GetEncryptPubkey() []byte { + if x != nil { + return x.EncryptPubkey + } + return nil +} + +func (x *RegisterSubmarineRequest) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *RegisterSubmarineRequest) GetRepayPubkey() []byte { + if x != nil { + return x.RepayPubkey + } + return nil +} + +func (x *RegisterSubmarineRequest) GetDestination() []byte { + if x != nil { + return x.Destination + } + return nil +} + +func (x *RegisterSubmarineRequest) GetSwapScriptVersion() int32 { + if x != nil { + return x.SwapScriptVersion + } + return 0 +} + +type RegisterSubmarineReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + /// swap address + ScriptAddress string `protobuf:"bytes,1,opt,name=script_address,json=scriptAddress,proto3" json:"script_address,omitempty"` + /// The HTLC pubkey for swap script + HtlcPubkey []byte `protobuf:"bytes,2,opt,name=htlc_pubkey,json=htlcPubkey,proto3" json:"htlc_pubkey,omitempty"` +} + +func (x *RegisterSubmarineReply) Reset() { + *x = RegisterSubmarineReply{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegisterSubmarineReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterSubmarineReply) ProtoMessage() {} + +func (x *RegisterSubmarineReply) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RegisterSubmarineReply.ProtoReflect.Descriptor instead. +func (*RegisterSubmarineReply) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{11} +} + +func (x *RegisterSubmarineReply) GetScriptAddress() string { + if x != nil { + return x.ScriptAddress + } + return "" +} + +func (x *RegisterSubmarineReply) GetHtlcPubkey() []byte { + if x != nil { + return x.HtlcPubkey + } + return nil +} + +type ReceiveSubmarineRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + /// THe payment_hash to process Submarine Swap + PaymentHash []byte `protobuf:"bytes,1,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` + /// The LN invoice to send after open channel + Invoice string `protobuf:"bytes,2,opt,name=invoice,proto3" json:"invoice,omitempty"` +} + +func (x *ReceiveSubmarineRequest) Reset() { + *x = ReceiveSubmarineRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReceiveSubmarineRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReceiveSubmarineRequest) ProtoMessage() {} + +func (x *ReceiveSubmarineRequest) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReceiveSubmarineRequest.ProtoReflect.Descriptor instead. +func (*ReceiveSubmarineRequest) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{12} +} + +func (x *ReceiveSubmarineRequest) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *ReceiveSubmarineRequest) GetInvoice() string { + if x != nil { + return x.Invoice + } + return "" +} + +type ReceiveSubmarineReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ReceiveSubmarineReply) Reset() { + *x = ReceiveSubmarineReply{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReceiveSubmarineReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReceiveSubmarineReply) ProtoMessage() {} + +func (x *ReceiveSubmarineReply) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReceiveSubmarineReply.ProtoReflect.Descriptor instead. +func (*ReceiveSubmarineReply) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{13} +} + +type NodePair struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + From []byte `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"` + To []byte `protobuf:"bytes,2,opt,name=to,proto3" json:"to,omitempty"` +} + +func (x *NodePair) Reset() { + *x = NodePair{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodePair) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodePair) ProtoMessage() {} + +func (x *NodePair) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NodePair.ProtoReflect.Descriptor instead. +func (*NodePair) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{14} +} + +func (x *NodePair) GetFrom() []byte { + if x != nil { + return x.From + } + return nil +} + +func (x *NodePair) GetTo() []byte { + if x != nil { + return x.To + } + return nil +} + +type QueryRoutesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + /// The pubkey to encrypt response data(`QueryRouteReply`) + EncryptPubkey []byte `protobuf:"bytes,1,opt,name=encrypt_pubkey,json=encryptPubkey,proto3" json:"encrypt_pubkey,omitempty"` + /// The LN invoice to send after open channel + Invoice string `protobuf:"bytes,2,opt,name=invoice,proto3" json:"invoice,omitempty"` + /// The nodes to ignore routing + IgnoredNodes [][]byte `protobuf:"bytes,3,rep,name=ignored_nodes,json=ignoredNodes,proto3" json:"ignored_nodes,omitempty"` + /// The pairs to ignore routing + IgnoredPairs []*NodePair `protobuf:"bytes,4,rep,name=ignored_pairs,json=ignoredPairs,proto3" json:"ignored_pairs,omitempty"` + /// Specify amount if invoice not have amount(0: use `invoice` amount) + Amount int64 `protobuf:"varint,5,opt,name=amount,proto3" json:"amount,omitempty"` +} + +func (x *QueryRoutesRequest) Reset() { + *x = QueryRoutesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryRoutesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryRoutesRequest) ProtoMessage() {} + +func (x *QueryRoutesRequest) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QueryRoutesRequest.ProtoReflect.Descriptor instead. +func (*QueryRoutesRequest) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{15} +} + +func (x *QueryRoutesRequest) GetEncryptPubkey() []byte { + if x != nil { + return x.EncryptPubkey + } + return nil +} + +func (x *QueryRoutesRequest) GetInvoice() string { + if x != nil { + return x.Invoice + } + return "" +} + +func (x *QueryRoutesRequest) GetIgnoredNodes() [][]byte { + if x != nil { + return x.IgnoredNodes + } + return nil +} + +func (x *QueryRoutesRequest) GetIgnoredPairs() []*NodePair { + if x != nil { + return x.IgnoredPairs + } + return nil +} + +func (x *QueryRoutesRequest) GetAmount() int64 { + if x != nil { + return x.Amount + } + return 0 +} + +type GetTimeLockDeltaRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The ID to request channel time_lock_delta value. + ChanId uint64 `protobuf:"varint,1,opt,name=chan_id,json=chanId,proto3" json:"chan_id,omitempty"` +} + +func (x *GetTimeLockDeltaRequest) Reset() { + *x = GetTimeLockDeltaRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTimeLockDeltaRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTimeLockDeltaRequest) ProtoMessage() {} + +func (x *GetTimeLockDeltaRequest) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetTimeLockDeltaRequest.ProtoReflect.Descriptor instead. +func (*GetTimeLockDeltaRequest) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{16} +} + +func (x *GetTimeLockDeltaRequest) GetChanId() uint64 { + if x != nil { + return x.ChanId + } + return 0 +} + +type GetTimeLockDeltaReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // time_lock_delta value from hub routing policy + TimeLockDeltaHub uint32 `protobuf:"varint,1,opt,name=time_lock_delta_hub,json=timeLockDeltaHub,proto3" json:"time_lock_delta_hub,omitempty"` + // time_lock_delta value from another node routing policy + TimeLockDeltaAnother uint32 `protobuf:"varint,2,opt,name=time_lock_delta_another,json=timeLockDeltaAnother,proto3" json:"time_lock_delta_another,omitempty"` +} + +func (x *GetTimeLockDeltaReply) Reset() { + *x = GetTimeLockDeltaReply{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTimeLockDeltaReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTimeLockDeltaReply) ProtoMessage() {} + +func (x *GetTimeLockDeltaReply) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetTimeLockDeltaReply.ProtoReflect.Descriptor instead. +func (*GetTimeLockDeltaReply) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{17} +} + +func (x *GetTimeLockDeltaReply) GetTimeLockDeltaHub() uint32 { + if x != nil { + return x.TimeLockDeltaHub + } + return 0 +} + +func (x *GetTimeLockDeltaReply) GetTimeLockDeltaAnother() uint32 { + if x != nil { + return x.TimeLockDeltaAnother + } + return 0 +} + +type RegisterUserInfoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // mail address + MailAddress string `protobuf:"bytes,1,opt,name=mail_address,json=mailAddress,proto3" json:"mail_address,omitempty"` +} + +func (x *RegisterUserInfoRequest) Reset() { + *x = RegisterUserInfoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegisterUserInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterUserInfoRequest) ProtoMessage() {} + +func (x *RegisterUserInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RegisterUserInfoRequest.ProtoReflect.Descriptor instead. +func (*RegisterUserInfoRequest) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{18} +} + +func (x *RegisterUserInfoRequest) GetMailAddress() string { + if x != nil { + return x.MailAddress + } + return "" +} + +type RegisterUserInfoReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RegisterUserInfoReply) Reset() { + *x = RegisterUserInfoReply{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegisterUserInfoReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterUserInfoReply) ProtoMessage() {} + +func (x *RegisterUserInfoReply) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RegisterUserInfoReply.ProtoReflect.Descriptor instead. +func (*RegisterUserInfoReply) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{19} +} + +type ReportRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // category + Category string `protobuf:"bytes,1,opt,name=category,proto3" json:"category,omitempty"` + Level ReportRequest_ReportLevel `protobuf:"varint,2,opt,name=level,proto3,enum=lspd.ReportRequest_ReportLevel" json:"level,omitempty"` + // message + Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *ReportRequest) Reset() { + *x = ReportRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReportRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReportRequest) ProtoMessage() {} + +func (x *ReportRequest) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReportRequest.ProtoReflect.Descriptor instead. +func (*ReportRequest) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{20} +} + +func (x *ReportRequest) GetCategory() string { + if x != nil { + return x.Category + } + return "" +} + +func (x *ReportRequest) GetLevel() ReportRequest_ReportLevel { + if x != nil { + return x.Level + } + return ReportRequest_REPORTLEVEL_NORMAL +} + +func (x *ReportRequest) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +type ReportReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ReportReply) Reset() { + *x = ReportReply{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReportReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReportReply) ProtoMessage() {} + +func (x *ReportReply) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReportReply.ProtoReflect.Descriptor instead. +func (*ReportReply) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{21} +} + +type IntegrityNonceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + /// The pubkey to encrypt response data(`QueryRouteReply`) + EncryptPubkey []byte `protobuf:"bytes,1,opt,name=encrypt_pubkey,json=encryptPubkey,proto3" json:"encrypt_pubkey,omitempty"` + /// The identity pubkey of the Lightning node + Pubkey []byte `protobuf:"bytes,2,opt,name=pubkey,proto3" json:"pubkey,omitempty"` + /// The model -dependent ID + Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *IntegrityNonceRequest) Reset() { + *x = IntegrityNonceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IntegrityNonceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IntegrityNonceRequest) ProtoMessage() {} + +func (x *IntegrityNonceRequest) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IntegrityNonceRequest.ProtoReflect.Descriptor instead. +func (*IntegrityNonceRequest) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{22} +} + +func (x *IntegrityNonceRequest) GetEncryptPubkey() []byte { + if x != nil { + return x.EncryptPubkey + } + return nil +} + +func (x *IntegrityNonceRequest) GetPubkey() []byte { + if x != nil { + return x.Pubkey + } + return nil +} + +func (x *IntegrityNonceRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type IntegrityNonceReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + /// The nonce for Integrity API + Nonce string `protobuf:"bytes,1,opt,name=nonce,proto3" json:"nonce,omitempty"` +} + +func (x *IntegrityNonceReply) Reset() { + *x = IntegrityNonceReply{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IntegrityNonceReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IntegrityNonceReply) ProtoMessage() {} + +func (x *IntegrityNonceReply) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IntegrityNonceReply.ProtoReflect.Descriptor instead. +func (*IntegrityNonceReply) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{23} +} + +func (x *IntegrityNonceReply) GetNonce() string { + if x != nil { + return x.Nonce + } + return "" +} + +type IntegrityVerifyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + /// The identity pubkey of the Lightning node + Pubkey []byte `protobuf:"bytes,1,opt,name=pubkey,proto3" json:"pubkey,omitempty"` + // Integrity token(empty string: return previous result if exist) + Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` + /// The model -dependent ID + Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *IntegrityVerifyRequest) Reset() { + *x = IntegrityVerifyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IntegrityVerifyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IntegrityVerifyRequest) ProtoMessage() {} + +func (x *IntegrityVerifyRequest) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IntegrityVerifyRequest.ProtoReflect.Descriptor instead. +func (*IntegrityVerifyRequest) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{24} +} + +func (x *IntegrityVerifyRequest) GetPubkey() []byte { + if x != nil { + return x.Pubkey + } + return nil +} + +func (x *IntegrityVerifyRequest) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +func (x *IntegrityVerifyRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type IntegrityVerifyReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Result IntegrityResult `protobuf:"varint,1,opt,name=result,proto3,enum=lspd.IntegrityResult" json:"result,omitempty"` +} + +func (x *IntegrityVerifyReply) Reset() { + *x = IntegrityVerifyReply{} + if protoimpl.UnsafeEnabled { + mi := &file_lspd_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IntegrityVerifyReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IntegrityVerifyReply) ProtoMessage() {} + +func (x *IntegrityVerifyReply) ProtoReflect() protoreflect.Message { + mi := &file_lspd_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IntegrityVerifyReply.ProtoReflect.Descriptor instead. +func (*IntegrityVerifyReply) Descriptor() ([]byte, []int) { + return file_lspd_proto_rawDescGZIP(), []int{25} +} + +func (x *IntegrityVerifyReply) GetResult() IntegrityResult { + if x != nil { + return x.Result + } + return IntegrityResult_INTEGRITYRESULT_NONE +} + +var File_lspd_proto protoreflect.FileDescriptor + +var file_lspd_proto_rawDesc = []byte{ + 0x0a, 0x0a, 0x6c, 0x73, 0x70, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x6c, 0x73, + 0x70, 0x64, 0x22, 0x23, 0x0a, 0x0b, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x09, 0x50, 0x69, 0x6e, 0x67, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x19, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x22, + 0xcf, 0x03, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x62, + 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x6d, 0x73, 0x61, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x08, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, + 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x79, 0x72, 0x69, 0x61, 0x64, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x46, + 0x65, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x79, 0x72, 0x69, 0x61, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, + 0x73, 0x70, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x09, 0x6c, 0x73, 0x70, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x61, + 0x78, 0x5f, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x49, 0x6e, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, + 0x0a, 0x18, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x15, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x46, 0x65, 0x65, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, + 0x73, 0x77, 0x61, 0x70, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x22, 0x2c, 0x0a, 0x12, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x22, + 0x50, 0x0a, 0x10, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, + 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x22, 0x2c, 0x0a, 0x16, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x62, + 0x6c, 0x6f, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6c, 0x6f, 0x62, 0x22, + 0x16, 0x0a, 0x14, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0xe4, 0x01, 0x0a, 0x12, 0x50, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, + 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, + 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, + 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, + 0x6e, 0x67, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x30, 0x0a, 0x14, + 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x6d, 0x73, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6f, 0x75, 0x74, 0x67, + 0x6f, 0x69, 0x6e, 0x67, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x22, 0x1f, + 0x0a, 0x09, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0xd9, 0x01, 0x0a, 0x18, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x75, 0x62, 0x6d, + 0x61, 0x72, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, + 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x50, 0x75, 0x62, + 0x6b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x61, 0x79, 0x5f, + 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x72, 0x65, + 0x70, 0x61, 0x79, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x73, + 0x77, 0x61, 0x70, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x73, 0x77, 0x61, 0x70, 0x53, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x60, 0x0a, 0x16, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x75, 0x62, 0x6d, 0x61, 0x72, 0x69, 0x6e, 0x65, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, + 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0a, 0x68, 0x74, 0x6c, 0x63, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x22, 0x56, 0x0a, + 0x17, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x53, 0x75, 0x62, 0x6d, 0x61, 0x72, 0x69, 0x6e, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, + 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x69, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6e, + 0x76, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x17, 0x0a, 0x15, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x53, 0x75, 0x62, 0x6d, 0x61, 0x72, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x2e, + 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x61, 0x69, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, + 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, + 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x6f, 0x22, 0xc7, + 0x01, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x65, + 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, + 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, + 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x0d, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x73, 0x70, 0x64, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x61, + 0x69, 0x72, 0x52, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x50, 0x61, 0x69, 0x72, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x32, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x22, 0x7d, 0x0a, 0x15, + 0x47, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x6c, 0x74, 0x61, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2d, 0x0a, 0x13, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x68, 0x75, 0x62, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x6c, 0x74, + 0x61, 0x48, 0x75, 0x62, 0x12, 0x35, 0x0a, 0x17, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x61, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x74, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x44, + 0x65, 0x6c, 0x74, 0x61, 0x41, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x22, 0x3c, 0x0a, 0x17, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x61, + 0x69, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x17, 0x0a, 0x15, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x22, 0xd2, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x12, 0x35, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1f, 0x2e, 0x6c, 0x73, 0x70, 0x64, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x22, 0x54, 0x0a, 0x0b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x16, 0x0a, 0x12, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, + 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x45, 0x50, 0x4f, + 0x52, 0x54, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x10, 0x01, + 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, + 0x41, 0x4c, 0x45, 0x52, 0x54, 0x10, 0x02, 0x22, 0x0d, 0x0a, 0x0b, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x66, 0x0a, 0x15, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, + 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x2b, + 0x0a, 0x13, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x63, 0x65, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x16, 0x49, + 0x6e, 0x74, 0x65, 0x67, 0x72, 0x69, 0x74, 0x79, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x22, 0x45, 0x0a, 0x14, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x69, 0x74, 0x79, + 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2d, 0x0a, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6c, 0x73, + 0x70, 0x64, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2a, 0x5b, 0x0a, 0x0f, 0x49, 0x6e, + 0x74, 0x65, 0x67, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, + 0x14, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x49, 0x54, 0x59, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, + 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x4e, 0x54, 0x45, 0x47, + 0x52, 0x49, 0x54, 0x59, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x4f, 0x4b, 0x10, 0x01, 0x12, + 0x16, 0x0a, 0x12, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x49, 0x54, 0x59, 0x52, 0x45, 0x53, 0x55, + 0x4c, 0x54, 0x5f, 0x4e, 0x47, 0x10, 0x02, 0x32, 0x9f, 0x06, 0x0a, 0x10, 0x4c, 0x69, 0x67, 0x68, + 0x74, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x04, + 0x50, 0x69, 0x6e, 0x67, 0x12, 0x11, 0x2e, 0x6c, 0x73, 0x70, 0x64, 0x2e, 0x50, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x6c, 0x73, 0x70, 0x64, 0x2e, 0x50, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x12, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1f, 0x2e, 0x6c, 0x73, 0x70, 0x64, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1d, 0x2e, 0x6c, 0x73, 0x70, 0x64, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x12, 0x18, 0x2e, 0x6c, 0x73, 0x70, 0x64, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6c, 0x73, + 0x70, 0x64, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, + 0x72, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x2e, 0x6c, 0x73, 0x70, 0x64, 0x2e, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6c, 0x73, 0x70, 0x64, 0x2e, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x11, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x53, 0x75, 0x62, 0x6d, 0x61, 0x72, 0x69, 0x6e, 0x65, 0x12, 0x0f, 0x2e, 0x6c, 0x73, 0x70, 0x64, + 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x1a, 0x0f, 0x2e, 0x6c, 0x73, 0x70, + 0x64, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x22, 0x00, 0x12, 0x42, 0x0a, + 0x10, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x53, 0x75, 0x62, 0x6d, 0x61, 0x72, 0x69, 0x6e, + 0x65, 0x12, 0x0f, 0x2e, 0x6c, 0x73, 0x70, 0x64, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x65, 0x64, 0x1a, 0x1b, 0x2e, 0x6c, 0x73, 0x70, 0x64, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x53, 0x75, 0x62, 0x6d, 0x61, 0x72, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, + 0x00, 0x12, 0x31, 0x0a, 0x0b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, + 0x12, 0x0f, 0x2e, 0x6c, 0x73, 0x70, 0x64, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, + 0x64, 0x1a, 0x0f, 0x2e, 0x6c, 0x73, 0x70, 0x64, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x65, 0x64, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x4c, + 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x1d, 0x2e, 0x6c, 0x73, 0x70, 0x64, 0x2e, + 0x47, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x6c, 0x74, 0x61, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x73, 0x70, 0x64, 0x2e, 0x47, + 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x10, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0f, 0x2e, 0x6c, 0x73, 0x70, + 0x64, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x1a, 0x1b, 0x2e, 0x6c, 0x73, + 0x70, 0x64, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x0d, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0f, 0x2e, 0x6c, 0x73, + 0x70, 0x64, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x1a, 0x11, 0x2e, 0x6c, + 0x73, 0x70, 0x64, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, + 0x00, 0x12, 0x34, 0x0a, 0x0e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x69, 0x74, 0x79, 0x4e, 0x6f, + 0x6e, 0x63, 0x65, 0x12, 0x0f, 0x2e, 0x6c, 0x73, 0x70, 0x64, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, + 0x70, 0x74, 0x65, 0x64, 0x1a, 0x0f, 0x2e, 0x6c, 0x73, 0x70, 0x64, 0x2e, 0x45, 0x6e, 0x63, 0x72, + 0x79, 0x70, 0x74, 0x65, 0x64, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0f, 0x49, 0x6e, 0x74, 0x65, 0x67, + 0x72, 0x69, 0x74, 0x79, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x0f, 0x2e, 0x6c, 0x73, 0x70, + 0x64, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x1a, 0x1a, 0x2e, 0x6c, 0x73, + 0x70, 0x64, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x69, 0x74, 0x79, 0x56, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x42, 0x4c, 0x0a, 0x14, 0x69, 0x6f, 0x2e, + 0x67, 0x72, 0x70, 0x63, 0x2e, 0x6c, 0x73, 0x70, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x42, 0x09, 0x4c, 0x73, 0x70, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x27, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6e, 0x61, 0x79, 0x75, 0x74, + 0x61, 0x63, 0x6f, 0x2f, 0x4e, 0x61, 0x79, 0x75, 0x74, 0x61, 0x48, 0x75, 0x62, 0x32, 0x4c, 0x73, + 0x70, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_lspd_proto_rawDescOnce sync.Once + file_lspd_proto_rawDescData = file_lspd_proto_rawDesc +) + +func file_lspd_proto_rawDescGZIP() []byte { + file_lspd_proto_rawDescOnce.Do(func() { + file_lspd_proto_rawDescData = protoimpl.X.CompressGZIP(file_lspd_proto_rawDescData) + }) + return file_lspd_proto_rawDescData +} + +var file_lspd_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_lspd_proto_msgTypes = make([]protoimpl.MessageInfo, 26) +var file_lspd_proto_goTypes = []interface{}{ + (IntegrityResult)(0), // 0: lspd.IntegrityResult + (ReportRequest_ReportLevel)(0), // 1: lspd.ReportRequest.ReportLevel + (*PingRequest)(nil), // 2: lspd.PingRequest + (*PingReply)(nil), // 3: lspd.PingReply + (*ChannelInformationRequest)(nil), // 4: lspd.ChannelInformationRequest + (*ChannelInformationReply)(nil), // 5: lspd.ChannelInformationReply + (*OpenChannelRequest)(nil), // 6: lspd.OpenChannelRequest + (*OpenChannelReply)(nil), // 7: lspd.OpenChannelReply + (*RegisterPaymentRequest)(nil), // 8: lspd.RegisterPaymentRequest + (*RegisterPaymentReply)(nil), // 9: lspd.RegisterPaymentReply + (*PaymentInformation)(nil), // 10: lspd.PaymentInformation + (*Encrypted)(nil), // 11: lspd.Encrypted + (*RegisterSubmarineRequest)(nil), // 12: lspd.RegisterSubmarineRequest + (*RegisterSubmarineReply)(nil), // 13: lspd.RegisterSubmarineReply + (*ReceiveSubmarineRequest)(nil), // 14: lspd.ReceiveSubmarineRequest + (*ReceiveSubmarineReply)(nil), // 15: lspd.ReceiveSubmarineReply + (*NodePair)(nil), // 16: lspd.NodePair + (*QueryRoutesRequest)(nil), // 17: lspd.QueryRoutesRequest + (*GetTimeLockDeltaRequest)(nil), // 18: lspd.GetTimeLockDeltaRequest + (*GetTimeLockDeltaReply)(nil), // 19: lspd.GetTimeLockDeltaReply + (*RegisterUserInfoRequest)(nil), // 20: lspd.RegisterUserInfoRequest + (*RegisterUserInfoReply)(nil), // 21: lspd.RegisterUserInfoReply + (*ReportRequest)(nil), // 22: lspd.ReportRequest + (*ReportReply)(nil), // 23: lspd.ReportReply + (*IntegrityNonceRequest)(nil), // 24: lspd.IntegrityNonceRequest + (*IntegrityNonceReply)(nil), // 25: lspd.IntegrityNonceReply + (*IntegrityVerifyRequest)(nil), // 26: lspd.IntegrityVerifyRequest + (*IntegrityVerifyReply)(nil), // 27: lspd.IntegrityVerifyReply +} +var file_lspd_proto_depIdxs = []int32{ + 16, // 0: lspd.QueryRoutesRequest.ignored_pairs:type_name -> lspd.NodePair + 1, // 1: lspd.ReportRequest.level:type_name -> lspd.ReportRequest.ReportLevel + 0, // 2: lspd.IntegrityVerifyReply.result:type_name -> lspd.IntegrityResult + 2, // 3: lspd.LightningService.Ping:input_type -> lspd.PingRequest + 4, // 4: lspd.LightningService.ChannelInformation:input_type -> lspd.ChannelInformationRequest + 6, // 5: lspd.LightningService.OpenChannel:input_type -> lspd.OpenChannelRequest + 8, // 6: lspd.LightningService.RegisterPayment:input_type -> lspd.RegisterPaymentRequest + 11, // 7: lspd.LightningService.RegisterSubmarine:input_type -> lspd.Encrypted + 11, // 8: lspd.LightningService.ReceiveSubmarine:input_type -> lspd.Encrypted + 11, // 9: lspd.LightningService.QueryRoutes:input_type -> lspd.Encrypted + 18, // 10: lspd.LightningService.GetTimeLockDelta:input_type -> lspd.GetTimeLockDeltaRequest + 11, // 11: lspd.LightningService.RegisterUserInfo:input_type -> lspd.Encrypted + 11, // 12: lspd.LightningService.ReportMessage:input_type -> lspd.Encrypted + 11, // 13: lspd.LightningService.IntegrityNonce:input_type -> lspd.Encrypted + 11, // 14: lspd.LightningService.IntegrityVerify:input_type -> lspd.Encrypted + 3, // 15: lspd.LightningService.Ping:output_type -> lspd.PingReply + 5, // 16: lspd.LightningService.ChannelInformation:output_type -> lspd.ChannelInformationReply + 7, // 17: lspd.LightningService.OpenChannel:output_type -> lspd.OpenChannelReply + 9, // 18: lspd.LightningService.RegisterPayment:output_type -> lspd.RegisterPaymentReply + 11, // 19: lspd.LightningService.RegisterSubmarine:output_type -> lspd.Encrypted + 15, // 20: lspd.LightningService.ReceiveSubmarine:output_type -> lspd.ReceiveSubmarineReply + 11, // 21: lspd.LightningService.QueryRoutes:output_type -> lspd.Encrypted + 19, // 22: lspd.LightningService.GetTimeLockDelta:output_type -> lspd.GetTimeLockDeltaReply + 21, // 23: lspd.LightningService.RegisterUserInfo:output_type -> lspd.RegisterUserInfoReply + 23, // 24: lspd.LightningService.ReportMessage:output_type -> lspd.ReportReply + 11, // 25: lspd.LightningService.IntegrityNonce:output_type -> lspd.Encrypted + 27, // 26: lspd.LightningService.IntegrityVerify:output_type -> lspd.IntegrityVerifyReply + 15, // [15:27] is the sub-list for method output_type + 3, // [3:15] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_lspd_proto_init() } +func file_lspd_proto_init() { + if File_lspd_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_lspd_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PingRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PingReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelInformationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelInformationReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OpenChannelRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OpenChannelReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterPaymentRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterPaymentReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PaymentInformation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Encrypted); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterSubmarineRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterSubmarineReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReceiveSubmarineRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReceiveSubmarineReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NodePair); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryRoutesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTimeLockDeltaRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTimeLockDeltaReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterUserInfoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterUserInfoReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReportRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReportReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IntegrityNonceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IntegrityNonceReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IntegrityVerifyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_lspd_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IntegrityVerifyReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_lspd_proto_rawDesc, + NumEnums: 2, + NumMessages: 26, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_lspd_proto_goTypes, + DependencyIndexes: file_lspd_proto_depIdxs, + EnumInfos: file_lspd_proto_enumTypes, + MessageInfos: file_lspd_proto_msgTypes, + }.Build() + File_lspd_proto = out.File + file_lspd_proto_rawDesc = nil + file_lspd_proto_goTypes = nil + file_lspd_proto_depIdxs = nil +} diff --git a/lspd.proto b/lspd.proto new file mode 100644 index 0000000..a1d518e --- /dev/null +++ b/lspd.proto @@ -0,0 +1,255 @@ +syntax = "proto3"; + +option go_package="github.com/nayutaco/NayutaHub2LspdProto"; +option java_multiple_files = true; +option java_package = "io.grpc.lspd.service"; +option java_outer_classname = "LspdProto"; + +package lspd; + +service LightningService { + /// Ping/Pong + rpc Ping(PingRequest) returns (PingReply) {} + /// Get LSP information + rpc ChannelInformation(ChannelInformationRequest) returns (ChannelInformationReply) {} + + /// Open private zero-conf channel + rpc OpenChannel(OpenChannelRequest) returns (OpenChannelReply) {} + /// [on-the-fly]Register a on-the-fly channel creation information + rpc RegisterPayment(RegisterPaymentRequest) returns (RegisterPaymentReply) {} + + /// [submarine swap]Register a Submarine Swap information + rpc RegisterSubmarine(Encrypted) returns (Encrypted) {} + /// [submarine swap]Request starting Submarine Swap + rpc ReceiveSubmarine(Encrypted) returns (ReceiveSubmarineReply) {} + + /// Request query routes + rpc QueryRoutes(Encrypted) returns (Encrypted) {} + + // Request time_lock_delta obtained from GetChanInfo() result. + // (time_lock_delta is the same as cltv_expiry_delta in channel_update message.) + // If GetChanInfo() result doesn't contain hub's lnrpc.RoutingPolicy, return error. + // [GetChanInfo](https://lightning.engineering/api-docs/api/lnd/lightning/get-chan-info) + rpc GetTimeLockDelta(GetTimeLockDeltaRequest) returns (GetTimeLockDeltaReply) {} + + /// Register user mail address + rpc RegisterUserInfo(Encrypted) returns (RegisterUserInfoReply) {} + + /// Report message + rpc ReportMessage(Encrypted) returns (ReportReply) {} + + /// Integrity get nonce message + rpc IntegrityNonce(Encrypted) returns (Encrypted) {} + + /// Integrity Verify message + rpc IntegrityVerify(Encrypted) returns (IntegrityVerifyReply) {} +} + +message PingRequest { + int32 nonce = 1; +} +message PingReply { + int32 nonce = 1; +} + +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" ]; + + /// The feerate per 10000 sats(1/100 percent) + int64 channel_fee_permyriad = 10; + + /// LSP pubkey(not LN node_id). + /// It uses for encoding `Encrypted.data` from remote peer. + bytes lsp_pubkey = 11; + + /// The channel can be closed if not used this duration in seconds. + int64 max_inactive_duration = 12; + + /// The minimum fee msat for On-The-Fly channel creation and Submarine Swap(not routing fee). + int64 channel_minimum_fee_msat = 13; + + /// LSP version + string version = 14; + + /// Submarine Script version + int32 swap_script_version = 15; +} + +message OpenChannelRequest { + /// The identity pubkey of the Lightning node + string pubkey = 1 [ json_name = "pubkey" ]; +} + +message OpenChannelReply { + /// The transaction hash + string tx_hash = 1 [ json_name = "tx_hash" ]; + /// The output index + uint32 output_index = 2 [ json_name = "output_index"]; +} + +message RegisterPaymentRequest { + /// The encrypted `PaymentInformation` by LSP pubkey + bytes blob = 3; +} +message RegisterPaymentReply {} +message PaymentInformation { + /// The payment hash to intercept forwarding HTLC + bytes payment_hash = 1; + /// The payment address. + /// An optional payment addr to be included within the last hop of the route. + bytes payment_secret = 2; + /// The payee LND node_id + bytes destination = 3; + /// The incoming amount to LSP's LN node + int64 incoming_amount_msat = 4; + /// The outgoing amount from LSP's LN node to payee + int64 outgoing_amount_msat = 5; +} + +message Encrypted { + /// The encrypted data by LSP pubkey + bytes data = 1; +} + +message RegisterSubmarineRequest { + /// The pubkey to encrypt response data(`RegisterSubmarineReply`) + bytes encrypt_pubkey = 1; + /// THe payment_hash for swap script and LN invoice + bytes payment_hash = 2; + /// The repayment pubkey for swap script + bytes repay_pubkey = 3; + /// The payee LN node_id + bytes destination = 4; + /// Supported submarine Script version + int32 swap_script_version = 5; +} +message RegisterSubmarineReply { + /// swap address + string script_address = 1; + /// The HTLC pubkey for swap script + bytes htlc_pubkey = 2; +} + +message ReceiveSubmarineRequest { + /// THe payment_hash to process Submarine Swap + bytes payment_hash = 1; + /// The LN invoice to send after open channel + string invoice = 2; +} +message ReceiveSubmarineReply { +} + +message NodePair { + bytes from = 1; + bytes to = 2; +} +message QueryRoutesRequest { + /// The pubkey to encrypt response data(`QueryRouteReply`) + bytes encrypt_pubkey = 1; + /// The LN invoice to send after open channel + string invoice = 2; + /// The nodes to ignore routing + repeated bytes ignored_nodes = 3; + /// The pairs to ignore routing + repeated NodePair ignored_pairs = 4; + /// Specify amount if invoice not have amount(0: use `invoice` amount) + int64 amount = 5; +} + +message GetTimeLockDeltaRequest { + // The ID to request channel time_lock_delta value. + uint64 chan_id = 1; +} +message GetTimeLockDeltaReply { + // time_lock_delta value from hub routing policy + uint32 time_lock_delta_hub = 1; + // time_lock_delta value from another node routing policy + uint32 time_lock_delta_another = 2; +} + +message RegisterUserInfoRequest { + // mail address + string mail_address = 1; +} +message RegisterUserInfoReply { +} + +message ReportRequest { + // category + string category = 1; + // level + enum ReportLevel { + REPORTLEVEL_NORMAL = 0; + REPORTLEVEL_NOTIFY = 1; + REPORTLEVEL_ALERT = 2; + } + ReportLevel level = 2; + // message + string message = 3; +} +message ReportReply { +} + +enum IntegrityResult { + INTEGRITYRESULT_NONE = 0; + INTEGRITYRESULT_OK = 1; + INTEGRITYRESULT_NG = 2; +} +message IntegrityNonceRequest { + /// The pubkey to encrypt response data(`QueryRouteReply`) + bytes encrypt_pubkey = 1; + /// The identity pubkey of the Lightning node + bytes pubkey = 2; + /// The model -dependent ID + string id = 3; +} +message IntegrityNonceReply { + /// The nonce for Integrity API + string nonce = 1; +} + +message IntegrityVerifyRequest { + /// The identity pubkey of the Lightning node + bytes pubkey = 1; + // Integrity token(empty string: return previous result if exist) + string token = 2; + /// The model -dependent ID + string id = 3; +} +message IntegrityVerifyReply { + IntegrityResult result = 1; +} diff --git a/lspd_grpc.pb.go b/lspd_grpc.pb.go new file mode 100644 index 0000000..fbbb2fb --- /dev/null +++ b/lspd_grpc.pb.go @@ -0,0 +1,527 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. + +package NayutaHub2LspdProto + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// LightningServiceClient is the client API for LightningService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type LightningServiceClient interface { + /// Ping/Pong + Ping(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (*PingReply, error) + /// Get LSP information + ChannelInformation(ctx context.Context, in *ChannelInformationRequest, opts ...grpc.CallOption) (*ChannelInformationReply, error) + /// Open private zero-conf channel + OpenChannel(ctx context.Context, in *OpenChannelRequest, opts ...grpc.CallOption) (*OpenChannelReply, error) + /// [on-the-fly]Register a on-the-fly channel creation information + RegisterPayment(ctx context.Context, in *RegisterPaymentRequest, opts ...grpc.CallOption) (*RegisterPaymentReply, error) + /// [submarine swap]Register a Submarine Swap information + RegisterSubmarine(ctx context.Context, in *Encrypted, opts ...grpc.CallOption) (*Encrypted, error) + /// [submarine swap]Request starting Submarine Swap + ReceiveSubmarine(ctx context.Context, in *Encrypted, opts ...grpc.CallOption) (*ReceiveSubmarineReply, error) + /// Request query routes + QueryRoutes(ctx context.Context, in *Encrypted, opts ...grpc.CallOption) (*Encrypted, error) + // Request time_lock_delta obtained from GetChanInfo() result. + // (time_lock_delta is the same as cltv_expiry_delta in channel_update message.) + // If GetChanInfo() result doesn't contain hub's lnrpc.RoutingPolicy, return error. + // [GetChanInfo](https://lightning.engineering/api-docs/api/lnd/lightning/get-chan-info) + GetTimeLockDelta(ctx context.Context, in *GetTimeLockDeltaRequest, opts ...grpc.CallOption) (*GetTimeLockDeltaReply, error) + /// Register user mail address + RegisterUserInfo(ctx context.Context, in *Encrypted, opts ...grpc.CallOption) (*RegisterUserInfoReply, error) + /// Report message + ReportMessage(ctx context.Context, in *Encrypted, opts ...grpc.CallOption) (*ReportReply, error) + /// Integrity get nonce message + IntegrityNonce(ctx context.Context, in *Encrypted, opts ...grpc.CallOption) (*Encrypted, error) + /// Integrity Verify message + IntegrityVerify(ctx context.Context, in *Encrypted, opts ...grpc.CallOption) (*IntegrityVerifyReply, error) +} + +type lightningServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewLightningServiceClient(cc grpc.ClientConnInterface) LightningServiceClient { + return &lightningServiceClient{cc} +} + +func (c *lightningServiceClient) Ping(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (*PingReply, error) { + out := new(PingReply) + err := c.cc.Invoke(ctx, "/lspd.LightningService/Ping", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *lightningServiceClient) ChannelInformation(ctx context.Context, in *ChannelInformationRequest, opts ...grpc.CallOption) (*ChannelInformationReply, error) { + out := new(ChannelInformationReply) + err := c.cc.Invoke(ctx, "/lspd.LightningService/ChannelInformation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *lightningServiceClient) OpenChannel(ctx context.Context, in *OpenChannelRequest, opts ...grpc.CallOption) (*OpenChannelReply, error) { + out := new(OpenChannelReply) + err := c.cc.Invoke(ctx, "/lspd.LightningService/OpenChannel", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *lightningServiceClient) RegisterPayment(ctx context.Context, in *RegisterPaymentRequest, opts ...grpc.CallOption) (*RegisterPaymentReply, error) { + out := new(RegisterPaymentReply) + err := c.cc.Invoke(ctx, "/lspd.LightningService/RegisterPayment", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *lightningServiceClient) RegisterSubmarine(ctx context.Context, in *Encrypted, opts ...grpc.CallOption) (*Encrypted, error) { + out := new(Encrypted) + err := c.cc.Invoke(ctx, "/lspd.LightningService/RegisterSubmarine", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *lightningServiceClient) ReceiveSubmarine(ctx context.Context, in *Encrypted, opts ...grpc.CallOption) (*ReceiveSubmarineReply, error) { + out := new(ReceiveSubmarineReply) + err := c.cc.Invoke(ctx, "/lspd.LightningService/ReceiveSubmarine", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *lightningServiceClient) QueryRoutes(ctx context.Context, in *Encrypted, opts ...grpc.CallOption) (*Encrypted, error) { + out := new(Encrypted) + err := c.cc.Invoke(ctx, "/lspd.LightningService/QueryRoutes", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *lightningServiceClient) GetTimeLockDelta(ctx context.Context, in *GetTimeLockDeltaRequest, opts ...grpc.CallOption) (*GetTimeLockDeltaReply, error) { + out := new(GetTimeLockDeltaReply) + err := c.cc.Invoke(ctx, "/lspd.LightningService/GetTimeLockDelta", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *lightningServiceClient) RegisterUserInfo(ctx context.Context, in *Encrypted, opts ...grpc.CallOption) (*RegisterUserInfoReply, error) { + out := new(RegisterUserInfoReply) + err := c.cc.Invoke(ctx, "/lspd.LightningService/RegisterUserInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *lightningServiceClient) ReportMessage(ctx context.Context, in *Encrypted, opts ...grpc.CallOption) (*ReportReply, error) { + out := new(ReportReply) + err := c.cc.Invoke(ctx, "/lspd.LightningService/ReportMessage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *lightningServiceClient) IntegrityNonce(ctx context.Context, in *Encrypted, opts ...grpc.CallOption) (*Encrypted, error) { + out := new(Encrypted) + err := c.cc.Invoke(ctx, "/lspd.LightningService/IntegrityNonce", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *lightningServiceClient) IntegrityVerify(ctx context.Context, in *Encrypted, opts ...grpc.CallOption) (*IntegrityVerifyReply, error) { + out := new(IntegrityVerifyReply) + err := c.cc.Invoke(ctx, "/lspd.LightningService/IntegrityVerify", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// LightningServiceServer is the server API for LightningService service. +// All implementations must embed UnimplementedLightningServiceServer +// for forward compatibility +type LightningServiceServer interface { + /// Ping/Pong + Ping(context.Context, *PingRequest) (*PingReply, error) + /// Get LSP information + ChannelInformation(context.Context, *ChannelInformationRequest) (*ChannelInformationReply, error) + /// Open private zero-conf channel + OpenChannel(context.Context, *OpenChannelRequest) (*OpenChannelReply, error) + /// [on-the-fly]Register a on-the-fly channel creation information + RegisterPayment(context.Context, *RegisterPaymentRequest) (*RegisterPaymentReply, error) + /// [submarine swap]Register a Submarine Swap information + RegisterSubmarine(context.Context, *Encrypted) (*Encrypted, error) + /// [submarine swap]Request starting Submarine Swap + ReceiveSubmarine(context.Context, *Encrypted) (*ReceiveSubmarineReply, error) + /// Request query routes + QueryRoutes(context.Context, *Encrypted) (*Encrypted, error) + // Request time_lock_delta obtained from GetChanInfo() result. + // (time_lock_delta is the same as cltv_expiry_delta in channel_update message.) + // If GetChanInfo() result doesn't contain hub's lnrpc.RoutingPolicy, return error. + // [GetChanInfo](https://lightning.engineering/api-docs/api/lnd/lightning/get-chan-info) + GetTimeLockDelta(context.Context, *GetTimeLockDeltaRequest) (*GetTimeLockDeltaReply, error) + /// Register user mail address + RegisterUserInfo(context.Context, *Encrypted) (*RegisterUserInfoReply, error) + /// Report message + ReportMessage(context.Context, *Encrypted) (*ReportReply, error) + /// Integrity get nonce message + IntegrityNonce(context.Context, *Encrypted) (*Encrypted, error) + /// Integrity Verify message + IntegrityVerify(context.Context, *Encrypted) (*IntegrityVerifyReply, error) + mustEmbedUnimplementedLightningServiceServer() +} + +// UnimplementedLightningServiceServer must be embedded to have forward compatible implementations. +type UnimplementedLightningServiceServer struct { +} + +func (UnimplementedLightningServiceServer) Ping(context.Context, *PingRequest) (*PingReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Ping not implemented") +} +func (UnimplementedLightningServiceServer) ChannelInformation(context.Context, *ChannelInformationRequest) (*ChannelInformationReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method ChannelInformation not implemented") +} +func (UnimplementedLightningServiceServer) OpenChannel(context.Context, *OpenChannelRequest) (*OpenChannelReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method OpenChannel not implemented") +} +func (UnimplementedLightningServiceServer) RegisterPayment(context.Context, *RegisterPaymentRequest) (*RegisterPaymentReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method RegisterPayment not implemented") +} +func (UnimplementedLightningServiceServer) RegisterSubmarine(context.Context, *Encrypted) (*Encrypted, error) { + return nil, status.Errorf(codes.Unimplemented, "method RegisterSubmarine not implemented") +} +func (UnimplementedLightningServiceServer) ReceiveSubmarine(context.Context, *Encrypted) (*ReceiveSubmarineReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method ReceiveSubmarine not implemented") +} +func (UnimplementedLightningServiceServer) QueryRoutes(context.Context, *Encrypted) (*Encrypted, error) { + return nil, status.Errorf(codes.Unimplemented, "method QueryRoutes not implemented") +} +func (UnimplementedLightningServiceServer) GetTimeLockDelta(context.Context, *GetTimeLockDeltaRequest) (*GetTimeLockDeltaReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetTimeLockDelta not implemented") +} +func (UnimplementedLightningServiceServer) RegisterUserInfo(context.Context, *Encrypted) (*RegisterUserInfoReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method RegisterUserInfo not implemented") +} +func (UnimplementedLightningServiceServer) ReportMessage(context.Context, *Encrypted) (*ReportReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method ReportMessage not implemented") +} +func (UnimplementedLightningServiceServer) IntegrityNonce(context.Context, *Encrypted) (*Encrypted, error) { + return nil, status.Errorf(codes.Unimplemented, "method IntegrityNonce not implemented") +} +func (UnimplementedLightningServiceServer) IntegrityVerify(context.Context, *Encrypted) (*IntegrityVerifyReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method IntegrityVerify not implemented") +} +func (UnimplementedLightningServiceServer) mustEmbedUnimplementedLightningServiceServer() {} + +// UnsafeLightningServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to LightningServiceServer will +// result in compilation errors. +type UnsafeLightningServiceServer interface { + mustEmbedUnimplementedLightningServiceServer() +} + +func RegisterLightningServiceServer(s grpc.ServiceRegistrar, srv LightningServiceServer) { + s.RegisterService(&LightningService_ServiceDesc, srv) +} + +func _LightningService_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PingRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LightningServiceServer).Ping(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/lspd.LightningService/Ping", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LightningServiceServer).Ping(ctx, req.(*PingRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LightningService_ChannelInformation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ChannelInformationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LightningServiceServer).ChannelInformation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/lspd.LightningService/ChannelInformation", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LightningServiceServer).ChannelInformation(ctx, req.(*ChannelInformationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LightningService_OpenChannel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OpenChannelRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LightningServiceServer).OpenChannel(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/lspd.LightningService/OpenChannel", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LightningServiceServer).OpenChannel(ctx, req.(*OpenChannelRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LightningService_RegisterPayment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RegisterPaymentRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LightningServiceServer).RegisterPayment(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/lspd.LightningService/RegisterPayment", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LightningServiceServer).RegisterPayment(ctx, req.(*RegisterPaymentRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LightningService_RegisterSubmarine_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Encrypted) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LightningServiceServer).RegisterSubmarine(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/lspd.LightningService/RegisterSubmarine", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LightningServiceServer).RegisterSubmarine(ctx, req.(*Encrypted)) + } + return interceptor(ctx, in, info, handler) +} + +func _LightningService_ReceiveSubmarine_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Encrypted) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LightningServiceServer).ReceiveSubmarine(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/lspd.LightningService/ReceiveSubmarine", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LightningServiceServer).ReceiveSubmarine(ctx, req.(*Encrypted)) + } + return interceptor(ctx, in, info, handler) +} + +func _LightningService_QueryRoutes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Encrypted) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LightningServiceServer).QueryRoutes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/lspd.LightningService/QueryRoutes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LightningServiceServer).QueryRoutes(ctx, req.(*Encrypted)) + } + return interceptor(ctx, in, info, handler) +} + +func _LightningService_GetTimeLockDelta_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetTimeLockDeltaRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LightningServiceServer).GetTimeLockDelta(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/lspd.LightningService/GetTimeLockDelta", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LightningServiceServer).GetTimeLockDelta(ctx, req.(*GetTimeLockDeltaRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LightningService_RegisterUserInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Encrypted) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LightningServiceServer).RegisterUserInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/lspd.LightningService/RegisterUserInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LightningServiceServer).RegisterUserInfo(ctx, req.(*Encrypted)) + } + return interceptor(ctx, in, info, handler) +} + +func _LightningService_ReportMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Encrypted) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LightningServiceServer).ReportMessage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/lspd.LightningService/ReportMessage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LightningServiceServer).ReportMessage(ctx, req.(*Encrypted)) + } + return interceptor(ctx, in, info, handler) +} + +func _LightningService_IntegrityNonce_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Encrypted) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LightningServiceServer).IntegrityNonce(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/lspd.LightningService/IntegrityNonce", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LightningServiceServer).IntegrityNonce(ctx, req.(*Encrypted)) + } + return interceptor(ctx, in, info, handler) +} + +func _LightningService_IntegrityVerify_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Encrypted) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LightningServiceServer).IntegrityVerify(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/lspd.LightningService/IntegrityVerify", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LightningServiceServer).IntegrityVerify(ctx, req.(*Encrypted)) + } + return interceptor(ctx, in, info, handler) +} + +// LightningService_ServiceDesc is the grpc.ServiceDesc for LightningService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var LightningService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "lspd.LightningService", + HandlerType: (*LightningServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Ping", + Handler: _LightningService_Ping_Handler, + }, + { + MethodName: "ChannelInformation", + Handler: _LightningService_ChannelInformation_Handler, + }, + { + MethodName: "OpenChannel", + Handler: _LightningService_OpenChannel_Handler, + }, + { + MethodName: "RegisterPayment", + Handler: _LightningService_RegisterPayment_Handler, + }, + { + MethodName: "RegisterSubmarine", + Handler: _LightningService_RegisterSubmarine_Handler, + }, + { + MethodName: "ReceiveSubmarine", + Handler: _LightningService_ReceiveSubmarine_Handler, + }, + { + MethodName: "QueryRoutes", + Handler: _LightningService_QueryRoutes_Handler, + }, + { + MethodName: "GetTimeLockDelta", + Handler: _LightningService_GetTimeLockDelta_Handler, + }, + { + MethodName: "RegisterUserInfo", + Handler: _LightningService_RegisterUserInfo_Handler, + }, + { + MethodName: "ReportMessage", + Handler: _LightningService_ReportMessage_Handler, + }, + { + MethodName: "IntegrityNonce", + Handler: _LightningService_IntegrityNonce_Handler, + }, + { + MethodName: "IntegrityVerify", + Handler: _LightningService_IntegrityVerify_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "lspd.proto", +}