diff --git a/.gitignore b/.gitignore
index a1b7cbb3..0af635d4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,4 +13,6 @@ logs
.jwt_secret
data/
.wallet_secret
-.wallet_password
\ No newline at end of file
+.wallet_password
+.admin_enroll
+admin.npub
\ No newline at end of file
diff --git a/proto/autogenerated/client.md b/proto/autogenerated/client.md
index dde3509d..be3bc649 100644
--- a/proto/autogenerated/client.md
+++ b/proto/autogenerated/client.md
@@ -13,11 +13,51 @@ The nostr server will send back a message response, and inside the body there wi
## NOSTR Methods
### These are the nostr methods the client implements to communicate with the API via nostr
+- LndGetInfo
+ - auth type: __Admin__
+ - input: [LndGetInfoRequest](#LndGetInfoRequest)
+ - output: [LndGetInfoResponse](#LndGetInfoResponse)
+
+- AddApp
+ - auth type: __Admin__
+ - input: [AddAppRequest](#AddAppRequest)
+ - output: [AuthApp](#AuthApp)
+
+- AuthApp
+ - auth type: __Admin__
+ - input: [AuthAppRequest](#AuthAppRequest)
+ - output: [AuthApp](#AuthApp)
+
+- BanUser
+ - auth type: __Admin__
+ - input: [BanUserRequest](#BanUserRequest)
+ - output: [BanUserResponse](#BanUserResponse)
+
+- GetUsageMetrics
+ - auth type: __Metrics__
+ - This methods has an __empty__ __request__ body
+ - output: [UsageMetrics](#UsageMetrics)
+
+- GetAppsMetrics
+ - auth type: __Metrics__
+ - input: [AppsMetricsRequest](#AppsMetricsRequest)
+ - output: [AppsMetrics](#AppsMetrics)
+
+- GetLndMetrics
+ - auth type: __Metrics__
+ - input: [LndMetricsRequest](#LndMetricsRequest)
+ - output: [LndMetrics](#LndMetrics)
+
- LinkNPubThroughToken
- auth type: __User__
- input: [LinkNPubThroughTokenRequest](#LinkNPubThroughTokenRequest)
- This methods has an __empty__ __response__ body
+- EnrollAdminToken
+ - auth type: __User__
+ - input: [EnrollAdminTokenRequest](#EnrollAdminTokenRequest)
+ - This methods has an __empty__ __response__ body
+
- UserHealth
- auth type: __User__
- This methods has an __empty__ __request__ body
@@ -120,9 +160,9 @@ The nostr server will send back a message response, and inside the body there wi
- __User__:
- expected context content
+ - __user_id__: _string_
- __app_id__: _string_
- __app_user_id__: _string_
- - __user_id__: _string_
- __Admin__:
- expected context content
@@ -265,6 +305,13 @@ The nostr server will send back a message response, and inside the body there wi
- input: [LinkNPubThroughTokenRequest](#LinkNPubThroughTokenRequest)
- This methods has an __empty__ __response__ body
+- EnrollAdminToken
+ - auth type: __User__
+ - http method: __post__
+ - http route: __/api/guest/npub/enroll/admin__
+ - input: [EnrollAdminTokenRequest](#EnrollAdminTokenRequest)
+ - This methods has an __empty__ __response__ body
+
- GetApp
- auth type: __App__
- http method: __post__
@@ -482,47 +529,36 @@ The nostr server will send back a message response, and inside the body there wi
## Messages
### The content of requests and response from the methods
-### LnurlLinkResponse
- - __lnurl__: _string_
- - __k1__: _string_
+### Empty
-### RelaysMigration
- - __relays__: ARRAY of: _string_
-
-### RequestNPubLinkingTokenResponse
- - __token__: _string_
-
-### BannedAppUser
- - __app_name__: _string_
- - __app_id__: _string_
- - __user_identifier__: _string_
- - __nostr_pub__: _string_
-
-### Application
- - __name__: _string_
- - __id__: _string_
- - __balance__: _number_
- - __npub__: _string_
-
-### PayInvoiceResponse
- - __preimage__: _string_
- - __amount_paid__: _number_
- - __operation_id__: _string_
- - __service_fee__: _number_
- - __network_fee__: _number_
-
-### OpenChannelRequest
- - __destination__: _string_
- - __fundingAmount__: _number_
- - __pushAmount__: _number_
- - __closeAddress__: _string_
-
-### LndMetrics
- - __nodes__: ARRAY of: _[LndNodeMetrics](#LndNodeMetrics)_
+### LndMetricsRequest
+ - __from_unix__: _number_ *this field is optional
+ - __to_unix__: _number_ *this field is optional
### LndGetInfoResponse
- __alias__: _string_
+### PayAppUserInvoiceRequest
+ - __user_identifier__: _string_
+ - __invoice__: _string_
+ - __amount__: _number_
+
+### Product
+ - __id__: _string_
+ - __name__: _string_
+ - __price_sats__: _number_
+
+### LndGetInfoRequest
+ - __nodeId__: _number_
+
+### BanUserResponse
+ - __balance_sats__: _number_
+ - __banned_app_users__: ARRAY of: _[BannedAppUser](#BannedAppUser)_
+
+### AuthAppRequest
+ - __name__: _string_
+ - __allow_user_creation__: _boolean_ *this field is optional
+
### PayAddressRequest
- __address__: _string_
- __amoutSats__: _number_
@@ -533,69 +569,94 @@ The nostr server will send back a message response, and inside the body there wi
- __to_unix__: _number_ *this field is optional
- __include_operations__: _boolean_ *this field is optional
+### AppsMetrics
+ - __apps__: ARRAY of: _[AppMetrics](#AppMetrics)_
+
### RoutingEvent
+ - __timestamp_ns__: _number_
+ - __event_type__: _string_
+ - __settled__: _boolean_
+ - __offchain__: _boolean_
- __incoming_channel_id__: _number_
- __incoming_htlc_id__: _number_
- __outgoing_channel_id__: _number_
- __outgoing_htlc_id__: _number_
- - __timestamp_ns__: _number_
- - __event_type__: _string_
+ - __forward_fail_event__: _boolean_
- __incoming_amt_msat__: _number_
- __outgoing_amt_msat__: _number_
- __failure_string__: _string_
- - __settled__: _boolean_
- - __offchain__: _boolean_
- - __forward_fail_event__: _boolean_
-### ClosedChannel
- - __channel_id__: _string_
- - __capacity__: _number_
- - __closed_height__: _number_
+### BannedAppUser
+ - __app_name__: _string_
+ - __app_id__: _string_
+ - __user_identifier__: _string_
+ - __nostr_pub__: _string_
-### AddAppRequest
+### GetUserOperationsResponse
+ - __latestOutgoingTxOperations__: _[UserOperations](#UserOperations)_
+ - __latestIncomingTxOperations__: _[UserOperations](#UserOperations)_
+ - __latestOutgoingUserToUserPayemnts__: _[UserOperations](#UserOperations)_
+ - __latestIncomingUserToUserPayemnts__: _[UserOperations](#UserOperations)_
+ - __latestOutgoingInvoiceOperations__: _[UserOperations](#UserOperations)_
+ - __latestIncomingInvoiceOperations__: _[UserOperations](#UserOperations)_
+
+### RequestNPubLinkingTokenResponse
+ - __token__: _string_
+
+### UsageMetric
+ - __processed_at_ms__: _number_
+ - __auth_in_nano__: _number_
+ - __rpc_name__: _string_
+ - __nostr__: _boolean_
+ - __batch_size__: _number_
+ - __parsed_in_nano__: _number_
+ - __validate_in_nano__: _number_
+ - __handle_in_nano__: _number_
+ - __batch__: _boolean_
+
+### NewInvoiceRequest
+ - __amountSats__: _number_
+ - __memo__: _string_
+
+### OpenChannelRequest
+ - __destination__: _string_
+ - __fundingAmount__: _number_
+ - __pushAmount__: _number_
+ - __closeAddress__: _string_
+
+### ChainBalanceEvent
+ - __block_height__: _number_
+ - __confirmed_balance__: _number_
+ - __unconfirmed_balance__: _number_
+ - __total_balance__: _number_
+
+### GetAppUserRequest
+ - __user_identifier__: _string_
+
+### NewAddressResponse
+ - __address__: _string_
+
+### PayInvoiceResponse
+ - __preimage__: _string_
+ - __amount_paid__: _number_
+ - __operation_id__: _string_
+ - __service_fee__: _number_
+ - __network_fee__: _number_
+
+### AddProductRequest
- __name__: _string_
- - __allow_user_creation__: _boolean_
+ - __price_sats__: _number_
+
+### MigrationUpdate
+ - __closure__: _[ClosureMigration](#ClosureMigration)_ *this field is optional
+ - __relays__: _[RelaysMigration](#RelaysMigration)_ *this field is optional
### ClosureMigration
- __closes_at_unix__: _number_
-### BanUserResponse
- - __balance_sats__: _number_
- - __banned_app_users__: ARRAY of: _[BannedAppUser](#BannedAppUser)_
-
-### AddAppUserRequest
- - __identifier__: _string_
- - __fail_if_exists__: _boolean_
- - __balance__: _number_
-
-### SetMockAppUserBalanceRequest
- - __user_identifier__: _string_
- - __amount__: _number_
-
-### PayInvoiceRequest
- - __invoice__: _string_
- - __amount__: _number_
-
-### LnurlWithdrawInfoResponse
- - __tag__: _string_
- - __callback__: _string_
- - __k1__: _string_
- - __defaultDescription__: _string_
- - __minWithdrawable__: _number_
- - __maxWithdrawable__: _number_
- - __balanceCheck__: _string_
- - __payLink__: _string_
-
-### UsageMetric
- - __processed_at_ms__: _number_
- - __parsed_in_nano__: _number_
- - __auth_in_nano__: _number_
- - __validate_in_nano__: _number_
- - __handle_in_nano__: _number_
- - __rpc_name__: _string_
- - __batch__: _boolean_
- - __nostr__: _boolean_
- - __batch_size__: _number_
+### EncryptionExchangeRequest
+ - __publicKey__: _string_
+ - __deviceId__: _string_
### UsersInfo
- __total__: _number_
@@ -605,207 +666,70 @@ The nostr server will send back a message response, and inside the body there wi
- __balance_avg__: _number_
- __balance_median__: _number_
-### BanUserRequest
- - __user_id__: _string_
-
-### UserOperations
- - __fromIndex__: _number_
- - __toIndex__: _number_
- - __operations__: ARRAY of: _[UserOperation](#UserOperation)_
-
-### RequestNPubLinkingTokenRequest
- - __user_identifier__: _string_
-
-### UserOperation
- - __paidAtUnix__: _number_
- - __type__: _[UserOperationType](#UserOperationType)_
- - __inbound__: _boolean_
- - __amount__: _number_
- - __identifier__: _string_
- - __operationId__: _string_
- - __service_fee__: _number_
- - __network_fee__: _number_
- - __confirmed__: _boolean_
- - __tx_hash__: _string_
- - __internal__: _boolean_
-
-### Product
- - __id__: _string_
- - __name__: _string_
- - __price_sats__: _number_
-
-### LinkNPubThroughTokenRequest
- - __token__: _string_
- - __nostr_pub__: _string_
-
-### EncryptionExchangeRequest
- - __publicKey__: _string_
- - __deviceId__: _string_
-
-### PayAppUserInvoiceRequest
- - __user_identifier__: _string_
- - __invoice__: _string_
- - __amount__: _number_
-
-### SendAppUserToAppPaymentRequest
- - __from_user_identifier__: _string_
- - __amount__: _number_
-
-### SendAppUserToAppUserPaymentRequest
- - __from_user_identifier__: _string_
- - __to_user_identifier__: _string_
- - __amount__: _number_
-
-### NewInvoiceRequest
- - __amountSats__: _number_
- - __memo__: _string_
-
-### MigrationUpdate
- - __closure__: _[ClosureMigration](#ClosureMigration)_ *this field is optional
- - __relays__: _[RelaysMigration](#RelaysMigration)_ *this field is optional
-
-### GetUserOperationsResponse
- - __latestOutgoingInvoiceOperations__: _[UserOperations](#UserOperations)_
- - __latestIncomingInvoiceOperations__: _[UserOperations](#UserOperations)_
- - __latestOutgoingTxOperations__: _[UserOperations](#UserOperations)_
- - __latestIncomingTxOperations__: _[UserOperations](#UserOperations)_
- - __latestOutgoingUserToUserPayemnts__: _[UserOperations](#UserOperations)_
- - __latestIncomingUserToUserPayemnts__: _[UserOperations](#UserOperations)_
-
-### AddAppUserInvoiceRequest
- - __receiver_identifier__: _string_
- - __payer_identifier__: _string_
- - __http_callback_url__: _string_
- - __invoice_req__: _[NewInvoiceRequest](#NewInvoiceRequest)_
-
-### DecodeInvoiceRequest
- - __invoice__: _string_
-
-### UserInfo
- - __userId__: _string_
- - __balance__: _number_
- - __max_withdrawable__: _number_
- - __user_identifier__: _string_
- - __service_fee_bps__: _number_
- - __network_max_fee_bps__: _number_
- - __network_max_fee_fixed__: _number_
-
-### DecodeInvoiceResponse
- - __amount__: _number_
-
-### OpenChannelResponse
- - __channelId__: _string_
-
-### LiveUserOperation
- - __operation__: _[UserOperation](#UserOperation)_
-
-### UsageMetrics
- - __metrics__: ARRAY of: _[UsageMetric](#UsageMetric)_
-
-### AuthApp
- - __app__: _[Application](#Application)_
- - __auth_token__: _string_
-
-### AddAppInvoiceRequest
- - __payer_identifier__: _string_
- - __http_callback_url__: _string_
- - __invoice_req__: _[NewInvoiceRequest](#NewInvoiceRequest)_
-
-### HandleLnurlPayResponse
- - __pr__: _string_
- - __routes__: ARRAY of: _[Empty](#Empty)_
-
-### Empty
-
### ChannelBalanceEvent
- __block_height__: _number_
- __channel_id__: _string_
- __local_balance_sats__: _number_
- __remote_balance_sats__: _number_
-### GetAppUserRequest
- - __user_identifier__: _string_
+### ChannelRouting
+ - __receive_errors__: _number_
+ - __forward_errors_as_output__: _number_
+ - __missed_forward_fee_as_output__: _number_
+ - __events_number__: _number_
+ - __channel_id__: _string_
+ - __forward_errors_as_input__: _number_
+ - __missed_forward_fee_as_input__: _number_
+ - __forward_fee_as_input__: _number_
+ - __forward_fee_as_output__: _number_
+ - __send_errors__: _number_
-### AddProductRequest
- - __name__: _string_
- - __price_sats__: _number_
-
-### AppUser
- - __identifier__: _string_
- - __info__: _[UserInfo](#UserInfo)_
- - __max_withdrawable__: _number_
-
-### GetAppUserLNURLInfoRequest
- - __user_identifier__: _string_
- - __base_url_override__: _string_
+### SendAppUserToAppPaymentRequest
+ - __from_user_identifier__: _string_
+ - __amount__: _number_
### SetMockAppBalanceRequest
- __amount__: _number_
-### NewAddressRequest
- - __addressType__: _[AddressType](#AddressType)_
-
-### GetProductBuyLinkResponse
- - __link__: _string_
-
### HttpCreds
- __url__: _string_
- __token__: _string_
-### AppMetrics
- - __app__: _[Application](#Application)_
- - __users__: _[UsersInfo](#UsersInfo)_
- - __received__: _number_
- - __spent__: _number_
- - __available__: _number_
- - __fees__: _number_
- - __invoices__: _number_
- - __total_fees__: _number_
- - __operations__: ARRAY of: _[UserOperation](#UserOperation)_
+### ClosedChannel
+ - __channel_id__: _string_
+ - __capacity__: _number_
+ - __closed_height__: _number_
-### ChainBalanceEvent
- - __block_height__: _number_
- - __confirmed_balance__: _number_
- - __unconfirmed_balance__: _number_
- - __total_balance__: _number_
+### Application
+ - __id__: _string_
+ - __balance__: _number_
+ - __npub__: _string_
+ - __name__: _string_
-### SetMockInvoiceAsPaidRequest
- - __invoice__: _string_
+### AddAppUserRequest
+ - __balance__: _number_
+ - __identifier__: _string_
+ - __fail_if_exists__: _boolean_
+
+### SetMockAppUserBalanceRequest
+ - __user_identifier__: _string_
- __amount__: _number_
-### LndGetInfoRequest
- - __nodeId__: _number_
-
-### NewAddressResponse
- - __address__: _string_
-
### PayAddressResponse
- - __txId__: _string_
- __operation_id__: _string_
- __service_fee__: _number_
- __network_fee__: _number_
+ - __txId__: _string_
-### AppsMetrics
- - __apps__: ARRAY of: _[AppMetrics](#AppMetrics)_
+### NewInvoiceResponse
+ - __invoice__: _string_
-### LndNodeMetrics
- - __channels_balance_events__: ARRAY of: _[ChannelBalanceEvent](#ChannelBalanceEvent)_
- - __chain_balance_events__: ARRAY of: _[ChainBalanceEvent](#ChainBalanceEvent)_
- - __offline_channels__: _number_
- - __online_channels__: _number_
- - __pending_channels__: _number_
- - __closing_channels__: _number_
- - __open_channels__: ARRAY of: _[OpenChannel](#OpenChannel)_
- - __closed_channels__: ARRAY of: _[ClosedChannel](#ClosedChannel)_
- - __channel_routing__: ARRAY of: _[ChannelRouting](#ChannelRouting)_
+### RequestNPubLinkingTokenRequest
+ - __user_identifier__: _string_
-### AuthAppRequest
- - __name__: _string_
- - __allow_user_creation__: _boolean_ *this field is optional
-
-### LndMetricsRequest
- - __from_unix__: _number_ *this field is optional
- - __to_unix__: _number_ *this field is optional
+### LinkNPubThroughTokenRequest
+ - __token__: _string_
+ - __nostr_pub__: _string_
### OpenChannel
- __channel_id__: _string_
@@ -815,38 +739,164 @@ The nostr server will send back a message response, and inside the body there wi
- __local_balance__: _number_
- __remote_balance__: _number_
-### NewInvoiceResponse
+### SetMockInvoiceAsPaidRequest
+ - __invoice__: _string_
+ - __amount__: _number_
+
+### AddAppUserInvoiceRequest
+ - __receiver_identifier__: _string_
+ - __payer_identifier__: _string_
+ - __http_callback_url__: _string_
+ - __invoice_req__: _[NewInvoiceRequest](#NewInvoiceRequest)_
+
+### DecodeInvoiceResponse
+ - __amount__: _number_
+
+### OpenChannelResponse
+ - __channelId__: _string_
+
+### RelaysMigration
+ - __relays__: ARRAY of: _string_
+
+### LndMetrics
+ - __nodes__: ARRAY of: _[LndNodeMetrics](#LndNodeMetrics)_
+
+### AppUser
+ - __identifier__: _string_
+ - __info__: _[UserInfo](#UserInfo)_
+ - __max_withdrawable__: _number_
+
+### AddAppInvoiceRequest
+ - __payer_identifier__: _string_
+ - __http_callback_url__: _string_
+ - __invoice_req__: _[NewInvoiceRequest](#NewInvoiceRequest)_
+
+### UserOperations
+ - __fromIndex__: _number_
+ - __toIndex__: _number_
+ - __operations__: ARRAY of: _[UserOperation](#UserOperation)_
+
+### BanUserRequest
+ - __user_id__: _string_
+
+### NewAddressRequest
+ - __addressType__: _[AddressType](#AddressType)_
+
+### DecodeInvoiceRequest
- __invoice__: _string_
-### ChannelRouting
- - __channel_id__: _string_
- - __send_errors__: _number_
- - __receive_errors__: _number_
- - __forward_errors_as_input__: _number_
- - __forward_errors_as_output__: _number_
- - __missed_forward_fee_as_input__: _number_
- - __missed_forward_fee_as_output__: _number_
- - __forward_fee_as_input__: _number_
- - __forward_fee_as_output__: _number_
- - __events_number__: _number_
-
-### LnurlPayInfoResponse
- - __tag__: _string_
+### LnurlWithdrawInfoResponse
- __callback__: _string_
- - __maxSendable__: _number_
- - __minSendable__: _number_
- - __metadata__: _string_
- - __allowsNostr__: _boolean_
- - __nostrPubkey__: _string_
+ - __k1__: _string_
+ - __defaultDescription__: _string_
+ - __minWithdrawable__: _number_
+ - __maxWithdrawable__: _number_
+ - __balanceCheck__: _string_
+ - __payLink__: _string_
+ - __tag__: _string_
### GetUserOperationsRequest
- - __latestIncomingInvoice__: _number_
- __latestOutgoingInvoice__: _number_
- __latestIncomingTx__: _number_
- __latestOutgoingTx__: _number_
- __latestIncomingUserToUserPayment__: _number_
- __latestOutgoingUserToUserPayment__: _number_
- __max_size__: _number_
+ - __latestIncomingInvoice__: _number_
+
+### AppMetrics
+ - __spent__: _number_
+ - __available__: _number_
+ - __fees__: _number_
+ - __invoices__: _number_
+ - __total_fees__: _number_
+ - __app__: _[Application](#Application)_
+ - __users__: _[UsersInfo](#UsersInfo)_
+ - __received__: _number_
+ - __operations__: ARRAY of: _[UserOperation](#UserOperation)_
+
+### AddAppRequest
+ - __name__: _string_
+ - __allow_user_creation__: _boolean_
+
+### SendAppUserToAppUserPaymentRequest
+ - __amount__: _number_
+ - __from_user_identifier__: _string_
+ - __to_user_identifier__: _string_
+
+### LnurlPayInfoResponse
+ - __callback__: _string_
+ - __maxSendable__: _number_
+ - __minSendable__: _number_
+ - __metadata__: _string_
+ - __allowsNostr__: _boolean_
+ - __nostrPubkey__: _string_
+ - __tag__: _string_
+
+### HandleLnurlPayResponse
+ - __pr__: _string_
+ - __routes__: ARRAY of: _[Empty](#Empty)_
+
+### EnrollAdminTokenRequest
+ - __admin_token__: _string_
+
+### UsageMetrics
+ - __metrics__: ARRAY of: _[UsageMetric](#UsageMetric)_
+
+### LnurlLinkResponse
+ - __k1__: _string_
+ - __lnurl__: _string_
+
+### LiveUserOperation
+ - __operation__: _[UserOperation](#UserOperation)_
+
+### PayInvoiceRequest
+ - __invoice__: _string_
+ - __amount__: _number_
+
+### GetProductBuyLinkResponse
+ - __link__: _string_
+
+### LndNodeMetrics
+ - __chain_balance_events__: ARRAY of: _[ChainBalanceEvent](#ChainBalanceEvent)_
+ - __online_channels__: _number_
+ - __closing_channels__: _number_
+ - __channels_balance_events__: ARRAY of: _[ChannelBalanceEvent](#ChannelBalanceEvent)_
+ - __pending_channels__: _number_
+ - __open_channels__: ARRAY of: _[OpenChannel](#OpenChannel)_
+ - __closed_channels__: ARRAY of: _[ClosedChannel](#ClosedChannel)_
+ - __channel_routing__: ARRAY of: _[ChannelRouting](#ChannelRouting)_
+ - __offline_channels__: _number_
+
+### AuthApp
+ - __app__: _[Application](#Application)_
+ - __auth_token__: _string_
+
+### GetAppUserLNURLInfoRequest
+ - __user_identifier__: _string_
+ - __base_url_override__: _string_
+
+### UserInfo
+ - __network_max_fee_fixed__: _number_
+ - __userId__: _string_
+ - __balance__: _number_
+ - __max_withdrawable__: _number_
+ - __user_identifier__: _string_
+ - __service_fee_bps__: _number_
+ - __network_max_fee_bps__: _number_
+
+### UserOperation
+ - __paidAtUnix__: _number_
+ - __service_fee__: _number_
+ - __confirmed__: _boolean_
+ - __tx_hash__: _string_
+ - __internal__: _boolean_
+ - __network_fee__: _number_
+ - __type__: _[UserOperationType](#UserOperationType)_
+ - __inbound__: _boolean_
+ - __amount__: _number_
+ - __identifier__: _string_
+ - __operationId__: _string_
## Enums
### The enumerators used in the messages
diff --git a/proto/autogenerated/debug.txt b/proto/autogenerated/debug.txt
index e0434913..b6209372 100644
--- a/proto/autogenerated/debug.txt
+++ b/proto/autogenerated/debug.txt
@@ -1,5 +1,5 @@
-([]*main.Method) (len=46 cap=64) {
- (*main.Method)(0xc00026c910)({
+([]*main.Method) (len=47 cap=64) {
+ (*main.Method)(0xc00007a230)({
in: (main.MethodMessage) {
name: (string) (len=17) "LndGetInfoRequest",
hasZeroFields: (bool) false
@@ -9,8 +9,8 @@
name: (string) (len=18) "LndGetInfoResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc000089380)({
- authType: (*main.supportedAuth)(0xc0000b74a0)({
+ opts: (*main.methodOptions)(0xc000070f60)({
+ authType: (*main.supportedAuth)(0xc0005be600)({
id: (string) (len=5) "admin",
name: (string) (len=5) "Admin",
context: (map[string]string) (len=1) {
@@ -23,12 +23,12 @@
params: ([]string)
},
query: ([]string) ,
- nostr: (bool) false,
+ nostr: (bool) true,
batch: (bool) false
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026caa0)({
+ (*main.Method)(0xc00007a2d0)({
in: (main.MethodMessage) {
name: (string) (len=13) "AddAppRequest",
hasZeroFields: (bool) false
@@ -38,8 +38,8 @@
name: (string) (len=7) "AuthApp",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc0000b8000)({
- authType: (*main.supportedAuth)(0xc0000b7530)({
+ opts: (*main.methodOptions)(0xc000071140)({
+ authType: (*main.supportedAuth)(0xc0005be690)({
id: (string) (len=5) "admin",
name: (string) (len=5) "Admin",
context: (map[string]string) (len=1) {
@@ -52,12 +52,12 @@
params: ([]string)
},
query: ([]string) ,
- nostr: (bool) false,
+ nostr: (bool) true,
batch: (bool) false
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026cb40)({
+ (*main.Method)(0xc00007a370)({
in: (main.MethodMessage) {
name: (string) (len=14) "AuthAppRequest",
hasZeroFields: (bool) false
@@ -67,8 +67,8 @@
name: (string) (len=7) "AuthApp",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc0000b8180)({
- authType: (*main.supportedAuth)(0xc0000b75c0)({
+ opts: (*main.methodOptions)(0xc000071320)({
+ authType: (*main.supportedAuth)(0xc0005be720)({
id: (string) (len=5) "admin",
name: (string) (len=5) "Admin",
context: (map[string]string) (len=1) {
@@ -81,12 +81,12 @@
params: ([]string)
},
query: ([]string) ,
- nostr: (bool) false,
+ nostr: (bool) true,
batch: (bool) false
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026cbe0)({
+ (*main.Method)(0xc00007a410)({
in: (main.MethodMessage) {
name: (string) (len=14) "BanUserRequest",
hasZeroFields: (bool) false
@@ -96,8 +96,8 @@
name: (string) (len=15) "BanUserResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc0000b8300)({
- authType: (*main.supportedAuth)(0xc0000b7650)({
+ opts: (*main.methodOptions)(0xc000071500)({
+ authType: (*main.supportedAuth)(0xc0005be7b0)({
id: (string) (len=5) "admin",
name: (string) (len=5) "Admin",
context: (map[string]string) (len=1) {
@@ -110,12 +110,12 @@
params: ([]string)
},
query: ([]string) ,
- nostr: (bool) false,
+ nostr: (bool) true,
batch: (bool) false
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026cc30)({
+ (*main.Method)(0xc00007a460)({
in: (main.MethodMessage) {
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
@@ -125,8 +125,8 @@
name: (string) (len=12) "UsageMetrics",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc0000b8480)({
- authType: (*main.supportedAuth)(0xc0000b76e0)({
+ opts: (*main.methodOptions)(0xc0000716e0)({
+ authType: (*main.supportedAuth)(0xc0005be840)({
id: (string) (len=7) "metrics",
name: (string) (len=7) "Metrics",
context: (map[string]string) (len=1) {
@@ -139,12 +139,12 @@
params: ([]string)
},
query: ([]string) ,
- nostr: (bool) false,
+ nostr: (bool) true,
batch: (bool) false
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026cc80)({
+ (*main.Method)(0xc00007a4b0)({
in: (main.MethodMessage) {
name: (string) (len=18) "AppsMetricsRequest",
hasZeroFields: (bool) false
@@ -154,8 +154,8 @@
name: (string) (len=11) "AppsMetrics",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc0000b8600)({
- authType: (*main.supportedAuth)(0xc0000b7770)({
+ opts: (*main.methodOptions)(0xc0000718c0)({
+ authType: (*main.supportedAuth)(0xc0005be8d0)({
id: (string) (len=7) "metrics",
name: (string) (len=7) "Metrics",
context: (map[string]string) (len=1) {
@@ -168,12 +168,12 @@
params: ([]string)
},
query: ([]string) ,
- nostr: (bool) false,
+ nostr: (bool) true,
batch: (bool) false
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026ccd0)({
+ (*main.Method)(0xc00007a500)({
in: (main.MethodMessage) {
name: (string) (len=17) "LndMetricsRequest",
hasZeroFields: (bool) false
@@ -183,8 +183,8 @@
name: (string) (len=10) "LndMetrics",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc0000b8780)({
- authType: (*main.supportedAuth)(0xc0000b7800)({
+ opts: (*main.methodOptions)(0xc000071aa0)({
+ authType: (*main.supportedAuth)(0xc0005be960)({
id: (string) (len=7) "metrics",
name: (string) (len=7) "Metrics",
context: (map[string]string) (len=1) {
@@ -197,12 +197,12 @@
params: ([]string)
},
query: ([]string) ,
- nostr: (bool) false,
+ nostr: (bool) true,
batch: (bool) false
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026cd20)({
+ (*main.Method)(0xc00007a550)({
in: (main.MethodMessage) {
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
@@ -212,8 +212,8 @@
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
},
- opts: (*main.methodOptions)(0xc0000b8900)({
- authType: (*main.supportedAuth)(0xc0000b7890)({
+ opts: (*main.methodOptions)(0xc000071c20)({
+ authType: (*main.supportedAuth)(0xc0005be9f0)({
id: (string) (len=5) "guest",
name: (string) (len=5) "Guest",
context: (map[string]string) {
@@ -230,7 +230,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026cd70)({
+ (*main.Method)(0xc00007a5a0)({
in: (main.MethodMessage) {
name: (string) (len=25) "EncryptionExchangeRequest",
hasZeroFields: (bool) false
@@ -240,8 +240,8 @@
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
},
- opts: (*main.methodOptions)(0xc0000b8a80)({
- authType: (*main.supportedAuth)(0xc0000b7950)({
+ opts: (*main.methodOptions)(0xc000071da0)({
+ authType: (*main.supportedAuth)(0xc0005beab0)({
id: (string) (len=5) "guest",
name: (string) (len=5) "Guest",
context: (map[string]string) {
@@ -258,7 +258,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026cdc0)({
+ (*main.Method)(0xc00007a5f0)({
in: (main.MethodMessage) {
name: (string) (len=27) "SetMockInvoiceAsPaidRequest",
hasZeroFields: (bool) false
@@ -268,8 +268,8 @@
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
},
- opts: (*main.methodOptions)(0xc0000b8c60)({
- authType: (*main.supportedAuth)(0xc0000b79e0)({
+ opts: (*main.methodOptions)(0xc000071f80)({
+ authType: (*main.supportedAuth)(0xc0005beb40)({
id: (string) (len=5) "guest",
name: (string) (len=5) "Guest",
context: (map[string]string) {
@@ -286,7 +286,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026ce60)({
+ (*main.Method)(0xc00007a690)({
in: (main.MethodMessage) {
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
@@ -296,8 +296,8 @@
name: (string) (len=25) "LnurlWithdrawInfoResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc0000b8fc0)({
- authType: (*main.supportedAuth)(0xc0000b7b30)({
+ opts: (*main.methodOptions)(0xc0000ae7e0)({
+ authType: (*main.supportedAuth)(0xc0005bec90)({
id: (string) (len=5) "guest",
name: (string) (len=5) "Guest",
context: (map[string]string) {
@@ -316,7 +316,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026cf00)({
+ (*main.Method)(0xc00007a730)({
in: (main.MethodMessage) {
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
@@ -326,8 +326,8 @@
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
},
- opts: (*main.methodOptions)(0xc0000b9320)({
- authType: (*main.supportedAuth)(0xc0000b7c80)({
+ opts: (*main.methodOptions)(0xc0000aeb40)({
+ authType: (*main.supportedAuth)(0xc0005bede0)({
id: (string) (len=5) "guest",
name: (string) (len=5) "Guest",
context: (map[string]string) {
@@ -347,7 +347,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026cfa0)({
+ (*main.Method)(0xc00007a7d0)({
in: (main.MethodMessage) {
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
@@ -357,8 +357,8 @@
name: (string) (len=20) "LnurlPayInfoResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc0000b9680)({
- authType: (*main.supportedAuth)(0xc0000b7da0)({
+ opts: (*main.methodOptions)(0xc0000aeea0)({
+ authType: (*main.supportedAuth)(0xc0005bef00)({
id: (string) (len=5) "guest",
name: (string) (len=5) "Guest",
context: (map[string]string) {
@@ -377,7 +377,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026d040)({
+ (*main.Method)(0xc00007a870)({
in: (main.MethodMessage) {
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
@@ -387,8 +387,8 @@
name: (string) (len=22) "HandleLnurlPayResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc0000b9a40)({
- authType: (*main.supportedAuth)(0xc0000b7ef0)({
+ opts: (*main.methodOptions)(0xc0000af320)({
+ authType: (*main.supportedAuth)(0xc0005bf050)({
id: (string) (len=5) "guest",
name: (string) (len=5) "Guest",
context: (map[string]string) {
@@ -410,7 +410,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026d090)({
+ (*main.Method)(0xc00007a8c0)({
in: (main.MethodMessage) {
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
@@ -420,8 +420,8 @@
name: (string) (len=20) "LnurlPayInfoResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc0000b9bc0)({
- authType: (*main.supportedAuth)(0xc0000b7f80)({
+ opts: (*main.methodOptions)(0xc0005c4000)({
+ authType: (*main.supportedAuth)(0xc0005bf0e0)({
id: (string) (len=5) "guest",
name: (string) (len=5) "Guest",
context: (map[string]string) {
@@ -440,7 +440,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026d130)({
+ (*main.Method)(0xc00007a960)({
in: (main.MethodMessage) {
name: (string) (len=27) "LinkNPubThroughTokenRequest",
hasZeroFields: (bool) false
@@ -450,14 +450,14 @@
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
},
- opts: (*main.methodOptions)(0xc0000b9da0)({
- authType: (*main.supportedAuth)(0xc0000bc060)({
+ opts: (*main.methodOptions)(0xc0005c41e0)({
+ authType: (*main.supportedAuth)(0xc0005bf170)({
id: (string) (len=4) "user",
name: (string) (len=4) "User",
context: (map[string]string) (len=3) {
+ (string) (len=7) "user_id": (string) (len=6) "string",
(string) (len=6) "app_id": (string) (len=6) "string",
- (string) (len=11) "app_user_id": (string) (len=6) "string",
- (string) (len=7) "user_id": (string) (len=6) "string"
+ (string) (len=11) "app_user_id": (string) (len=6) "string"
}
}),
method: (string) (len=4) "post",
@@ -471,7 +471,38 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026d180)({
+ (*main.Method)(0xc00007a9b0)({
+ in: (main.MethodMessage) {
+ name: (string) (len=23) "EnrollAdminTokenRequest",
+ hasZeroFields: (bool) false
+ },
+ name: (string) (len=16) "EnrollAdminToken",
+ out: (main.MethodMessage) {
+ name: (string) (len=5) "Empty",
+ hasZeroFields: (bool) true
+ },
+ opts: (*main.methodOptions)(0xc0005c4420)({
+ authType: (*main.supportedAuth)(0xc0005bf200)({
+ id: (string) (len=4) "user",
+ name: (string) (len=4) "User",
+ context: (map[string]string) (len=3) {
+ (string) (len=7) "user_id": (string) (len=6) "string",
+ (string) (len=6) "app_id": (string) (len=6) "string",
+ (string) (len=11) "app_user_id": (string) (len=6) "string"
+ }
+ }),
+ method: (string) (len=4) "post",
+ route: (main.decodedRoute) {
+ route: (string) (len=28) "/api/guest/npub/enroll/admin",
+ params: ([]string)
+ },
+ query: ([]string) ,
+ nostr: (bool) true,
+ batch: (bool) false
+ }),
+ serverStream: (bool) false
+ }),
+ (*main.Method)(0xc00007aa00)({
in: (main.MethodMessage) {
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
@@ -481,8 +512,8 @@
name: (string) (len=11) "Application",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc0000b9f20)({
- authType: (*main.supportedAuth)(0xc0000bc0f0)({
+ opts: (*main.methodOptions)(0xc0005c45a0)({
+ authType: (*main.supportedAuth)(0xc0005bf290)({
id: (string) (len=3) "app",
name: (string) (len=3) "App",
context: (map[string]string) (len=1) {
@@ -500,7 +531,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026d220)({
+ (*main.Method)(0xc00007aaa0)({
in: (main.MethodMessage) {
name: (string) (len=17) "AddAppUserRequest",
hasZeroFields: (bool) false
@@ -510,8 +541,8 @@
name: (string) (len=7) "AppUser",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc0001420c0)({
- authType: (*main.supportedAuth)(0xc0000bc180)({
+ opts: (*main.methodOptions)(0xc0005c4720)({
+ authType: (*main.supportedAuth)(0xc0005bf320)({
id: (string) (len=3) "app",
name: (string) (len=3) "App",
context: (map[string]string) (len=1) {
@@ -529,7 +560,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026d2c0)({
+ (*main.Method)(0xc00007ab40)({
in: (main.MethodMessage) {
name: (string) (len=20) "AddAppInvoiceRequest",
hasZeroFields: (bool) false
@@ -539,8 +570,8 @@
name: (string) (len=18) "NewInvoiceResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc000142240)({
- authType: (*main.supportedAuth)(0xc0000bc210)({
+ opts: (*main.methodOptions)(0xc0005c48a0)({
+ authType: (*main.supportedAuth)(0xc0005bf3b0)({
id: (string) (len=3) "app",
name: (string) (len=3) "App",
context: (map[string]string) (len=1) {
@@ -558,7 +589,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026d310)({
+ (*main.Method)(0xc00007ab90)({
in: (main.MethodMessage) {
name: (string) (len=24) "AddAppUserInvoiceRequest",
hasZeroFields: (bool) false
@@ -568,8 +599,8 @@
name: (string) (len=18) "NewInvoiceResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc000142420)({
- authType: (*main.supportedAuth)(0xc0000bc2a0)({
+ opts: (*main.methodOptions)(0xc0005c4a80)({
+ authType: (*main.supportedAuth)(0xc0005bf440)({
id: (string) (len=3) "app",
name: (string) (len=3) "App",
context: (map[string]string) (len=1) {
@@ -587,7 +618,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026d3b0)({
+ (*main.Method)(0xc00007ac30)({
in: (main.MethodMessage) {
name: (string) (len=17) "GetAppUserRequest",
hasZeroFields: (bool) false
@@ -597,8 +628,8 @@
name: (string) (len=7) "AppUser",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc0001425a0)({
- authType: (*main.supportedAuth)(0xc0000bc330)({
+ opts: (*main.methodOptions)(0xc0005c4c00)({
+ authType: (*main.supportedAuth)(0xc0005bf4d0)({
id: (string) (len=3) "app",
name: (string) (len=3) "App",
context: (map[string]string) (len=1) {
@@ -616,7 +647,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026d450)({
+ (*main.Method)(0xc00007acd0)({
in: (main.MethodMessage) {
name: (string) (len=24) "PayAppUserInvoiceRequest",
hasZeroFields: (bool) false
@@ -626,8 +657,8 @@
name: (string) (len=18) "PayInvoiceResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc000142720)({
- authType: (*main.supportedAuth)(0xc0000bc3c0)({
+ opts: (*main.methodOptions)(0xc0005c4d80)({
+ authType: (*main.supportedAuth)(0xc0005bf560)({
id: (string) (len=3) "app",
name: (string) (len=3) "App",
context: (map[string]string) (len=1) {
@@ -645,7 +676,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026d4a0)({
+ (*main.Method)(0xc00007ad20)({
in: (main.MethodMessage) {
name: (string) (len=34) "SendAppUserToAppUserPaymentRequest",
hasZeroFields: (bool) false
@@ -655,8 +686,8 @@
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
},
- opts: (*main.methodOptions)(0xc000142900)({
- authType: (*main.supportedAuth)(0xc0000bc450)({
+ opts: (*main.methodOptions)(0xc0005c4f60)({
+ authType: (*main.supportedAuth)(0xc0005bf5f0)({
id: (string) (len=3) "app",
name: (string) (len=3) "App",
context: (map[string]string) (len=1) {
@@ -674,7 +705,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026d540)({
+ (*main.Method)(0xc00007adc0)({
in: (main.MethodMessage) {
name: (string) (len=30) "SendAppUserToAppPaymentRequest",
hasZeroFields: (bool) false
@@ -684,8 +715,8 @@
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
},
- opts: (*main.methodOptions)(0xc000142a80)({
- authType: (*main.supportedAuth)(0xc0000bc4e0)({
+ opts: (*main.methodOptions)(0xc0005c50e0)({
+ authType: (*main.supportedAuth)(0xc0005bf680)({
id: (string) (len=3) "app",
name: (string) (len=3) "App",
context: (map[string]string) (len=1) {
@@ -703,7 +734,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026d590)({
+ (*main.Method)(0xc00007ae10)({
in: (main.MethodMessage) {
name: (string) (len=26) "GetAppUserLNURLInfoRequest",
hasZeroFields: (bool) false
@@ -713,8 +744,8 @@
name: (string) (len=20) "LnurlPayInfoResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc000142c00)({
- authType: (*main.supportedAuth)(0xc0000bc570)({
+ opts: (*main.methodOptions)(0xc0005c5260)({
+ authType: (*main.supportedAuth)(0xc0005bf710)({
id: (string) (len=3) "app",
name: (string) (len=3) "App",
context: (map[string]string) (len=1) {
@@ -732,7 +763,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026d5e0)({
+ (*main.Method)(0xc00007ae60)({
in: (main.MethodMessage) {
name: (string) (len=28) "SetMockAppUserBalanceRequest",
hasZeroFields: (bool) false
@@ -742,8 +773,8 @@
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
},
- opts: (*main.methodOptions)(0xc000142d80)({
- authType: (*main.supportedAuth)(0xc0000bc600)({
+ opts: (*main.methodOptions)(0xc0005c53e0)({
+ authType: (*main.supportedAuth)(0xc0005bf7a0)({
id: (string) (len=3) "app",
name: (string) (len=3) "App",
context: (map[string]string) (len=1) {
@@ -761,7 +792,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026d630)({
+ (*main.Method)(0xc00007aeb0)({
in: (main.MethodMessage) {
name: (string) (len=24) "SetMockAppBalanceRequest",
hasZeroFields: (bool) false
@@ -771,8 +802,8 @@
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
},
- opts: (*main.methodOptions)(0xc000142f60)({
- authType: (*main.supportedAuth)(0xc0000bc690)({
+ opts: (*main.methodOptions)(0xc0005c55c0)({
+ authType: (*main.supportedAuth)(0xc0005bf830)({
id: (string) (len=3) "app",
name: (string) (len=3) "App",
context: (map[string]string) (len=1) {
@@ -790,7 +821,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026d680)({
+ (*main.Method)(0xc00007af00)({
in: (main.MethodMessage) {
name: (string) (len=30) "RequestNPubLinkingTokenRequest",
hasZeroFields: (bool) false
@@ -800,8 +831,8 @@
name: (string) (len=31) "RequestNPubLinkingTokenResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc000143140)({
- authType: (*main.supportedAuth)(0xc0000bc720)({
+ opts: (*main.methodOptions)(0xc0005c57a0)({
+ authType: (*main.supportedAuth)(0xc0005bf8c0)({
id: (string) (len=3) "app",
name: (string) (len=3) "App",
context: (map[string]string) (len=1) {
@@ -819,7 +850,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026d6d0)({
+ (*main.Method)(0xc00007af50)({
in: (main.MethodMessage) {
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
@@ -829,14 +860,14 @@
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
},
- opts: (*main.methodOptions)(0xc000143320)({
- authType: (*main.supportedAuth)(0xc0000bc7b0)({
+ opts: (*main.methodOptions)(0xc0005c5980)({
+ authType: (*main.supportedAuth)(0xc0005bf950)({
id: (string) (len=4) "user",
name: (string) (len=4) "User",
context: (map[string]string) (len=3) {
- (string) (len=11) "app_user_id": (string) (len=6) "string",
(string) (len=7) "user_id": (string) (len=6) "string",
- (string) (len=6) "app_id": (string) (len=6) "string"
+ (string) (len=6) "app_id": (string) (len=6) "string",
+ (string) (len=11) "app_user_id": (string) (len=6) "string"
}
}),
method: (string) (len=4) "post",
@@ -850,7 +881,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026d720)({
+ (*main.Method)(0xc00007afa0)({
in: (main.MethodMessage) {
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
@@ -860,14 +891,14 @@
name: (string) (len=8) "UserInfo",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc000143500)({
- authType: (*main.supportedAuth)(0xc0000bc840)({
+ opts: (*main.methodOptions)(0xc0005c5b60)({
+ authType: (*main.supportedAuth)(0xc0005bf9e0)({
id: (string) (len=4) "user",
name: (string) (len=4) "User",
context: (map[string]string) (len=3) {
+ (string) (len=6) "app_id": (string) (len=6) "string",
(string) (len=11) "app_user_id": (string) (len=6) "string",
- (string) (len=7) "user_id": (string) (len=6) "string",
- (string) (len=6) "app_id": (string) (len=6) "string"
+ (string) (len=7) "user_id": (string) (len=6) "string"
}
}),
method: (string) (len=4) "post",
@@ -881,7 +912,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026d7c0)({
+ (*main.Method)(0xc00007b040)({
in: (main.MethodMessage) {
name: (string) (len=17) "AddProductRequest",
hasZeroFields: (bool) false
@@ -891,14 +922,14 @@
name: (string) (len=7) "Product",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc0001436e0)({
- authType: (*main.supportedAuth)(0xc0000bc8d0)({
+ opts: (*main.methodOptions)(0xc0005c5d40)({
+ authType: (*main.supportedAuth)(0xc0005bfa70)({
id: (string) (len=4) "user",
name: (string) (len=4) "User",
context: (map[string]string) (len=3) {
+ (string) (len=7) "user_id": (string) (len=6) "string",
(string) (len=6) "app_id": (string) (len=6) "string",
- (string) (len=11) "app_user_id": (string) (len=6) "string",
- (string) (len=7) "user_id": (string) (len=6) "string"
+ (string) (len=11) "app_user_id": (string) (len=6) "string"
}
}),
method: (string) (len=4) "post",
@@ -912,7 +943,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026d810)({
+ (*main.Method)(0xc00007b090)({
in: (main.MethodMessage) {
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
@@ -922,14 +953,14 @@
name: (string) (len=18) "NewInvoiceResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc000143b60)({
- authType: (*main.supportedAuth)(0xc0000bc9f0)({
+ opts: (*main.methodOptions)(0xc0005ca1e0)({
+ authType: (*main.supportedAuth)(0xc0005bfb90)({
id: (string) (len=4) "user",
name: (string) (len=4) "User",
context: (map[string]string) (len=3) {
- (string) (len=11) "app_user_id": (string) (len=6) "string",
(string) (len=7) "user_id": (string) (len=6) "string",
- (string) (len=6) "app_id": (string) (len=6) "string"
+ (string) (len=6) "app_id": (string) (len=6) "string",
+ (string) (len=11) "app_user_id": (string) (len=6) "string"
}
}),
method: (string) (len=3) "get",
@@ -945,7 +976,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026d860)({
+ (*main.Method)(0xc00007b0e0)({
in: (main.MethodMessage) {
name: (string) (len=24) "GetUserOperationsRequest",
hasZeroFields: (bool) false
@@ -955,14 +986,14 @@
name: (string) (len=25) "GetUserOperationsResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc000143d40)({
- authType: (*main.supportedAuth)(0xc0000bca80)({
+ opts: (*main.methodOptions)(0xc0005ca3c0)({
+ authType: (*main.supportedAuth)(0xc0005bfc20)({
id: (string) (len=4) "user",
name: (string) (len=4) "User",
context: (map[string]string) (len=3) {
- (string) (len=11) "app_user_id": (string) (len=6) "string",
(string) (len=7) "user_id": (string) (len=6) "string",
- (string) (len=6) "app_id": (string) (len=6) "string"
+ (string) (len=6) "app_id": (string) (len=6) "string",
+ (string) (len=11) "app_user_id": (string) (len=6) "string"
}
}),
method: (string) (len=4) "post",
@@ -976,7 +1007,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026d900)({
+ (*main.Method)(0xc00007b180)({
in: (main.MethodMessage) {
name: (string) (len=17) "NewAddressRequest",
hasZeroFields: (bool) false
@@ -986,14 +1017,14 @@
name: (string) (len=18) "NewAddressResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc000143f20)({
- authType: (*main.supportedAuth)(0xc0000bcb10)({
+ opts: (*main.methodOptions)(0xc0005ca5a0)({
+ authType: (*main.supportedAuth)(0xc0005bfcb0)({
id: (string) (len=4) "user",
name: (string) (len=4) "User",
context: (map[string]string) (len=3) {
- (string) (len=11) "app_user_id": (string) (len=6) "string",
(string) (len=7) "user_id": (string) (len=6) "string",
- (string) (len=6) "app_id": (string) (len=6) "string"
+ (string) (len=6) "app_id": (string) (len=6) "string",
+ (string) (len=11) "app_user_id": (string) (len=6) "string"
}
}),
method: (string) (len=4) "post",
@@ -1007,7 +1038,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026d9a0)({
+ (*main.Method)(0xc00007b220)({
in: (main.MethodMessage) {
name: (string) (len=17) "PayAddressRequest",
hasZeroFields: (bool) false
@@ -1017,8 +1048,8 @@
name: (string) (len=18) "PayAddressResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc000146120)({
- authType: (*main.supportedAuth)(0xc0000bcba0)({
+ opts: (*main.methodOptions)(0xc0005ca780)({
+ authType: (*main.supportedAuth)(0xc0005bfd40)({
id: (string) (len=4) "user",
name: (string) (len=4) "User",
context: (map[string]string) (len=3) {
@@ -1038,7 +1069,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026da40)({
+ (*main.Method)(0xc00007b2c0)({
in: (main.MethodMessage) {
name: (string) (len=17) "NewInvoiceRequest",
hasZeroFields: (bool) false
@@ -1048,14 +1079,14 @@
name: (string) (len=18) "NewInvoiceResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc000146300)({
- authType: (*main.supportedAuth)(0xc0000bcc30)({
+ opts: (*main.methodOptions)(0xc0005ca960)({
+ authType: (*main.supportedAuth)(0xc0005bfdd0)({
id: (string) (len=4) "user",
name: (string) (len=4) "User",
context: (map[string]string) (len=3) {
- (string) (len=11) "app_user_id": (string) (len=6) "string",
(string) (len=7) "user_id": (string) (len=6) "string",
- (string) (len=6) "app_id": (string) (len=6) "string"
+ (string) (len=6) "app_id": (string) (len=6) "string",
+ (string) (len=11) "app_user_id": (string) (len=6) "string"
}
}),
method: (string) (len=4) "post",
@@ -1069,7 +1100,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026dae0)({
+ (*main.Method)(0xc00007b360)({
in: (main.MethodMessage) {
name: (string) (len=20) "DecodeInvoiceRequest",
hasZeroFields: (bool) false
@@ -1079,14 +1110,14 @@
name: (string) (len=21) "DecodeInvoiceResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc0001464e0)({
- authType: (*main.supportedAuth)(0xc0000bccc0)({
+ opts: (*main.methodOptions)(0xc0005cab40)({
+ authType: (*main.supportedAuth)(0xc0005bfe60)({
id: (string) (len=4) "user",
name: (string) (len=4) "User",
context: (map[string]string) (len=3) {
+ (string) (len=7) "user_id": (string) (len=6) "string",
(string) (len=6) "app_id": (string) (len=6) "string",
- (string) (len=11) "app_user_id": (string) (len=6) "string",
- (string) (len=7) "user_id": (string) (len=6) "string"
+ (string) (len=11) "app_user_id": (string) (len=6) "string"
}
}),
method: (string) (len=4) "post",
@@ -1100,7 +1131,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026db80)({
+ (*main.Method)(0xc00007b400)({
in: (main.MethodMessage) {
name: (string) (len=17) "PayInvoiceRequest",
hasZeroFields: (bool) false
@@ -1110,14 +1141,14 @@
name: (string) (len=18) "PayInvoiceResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc0001466c0)({
- authType: (*main.supportedAuth)(0xc0000bcd50)({
+ opts: (*main.methodOptions)(0xc0005cad20)({
+ authType: (*main.supportedAuth)(0xc0005bfef0)({
id: (string) (len=4) "user",
name: (string) (len=4) "User",
context: (map[string]string) (len=3) {
- (string) (len=11) "app_user_id": (string) (len=6) "string",
(string) (len=7) "user_id": (string) (len=6) "string",
- (string) (len=6) "app_id": (string) (len=6) "string"
+ (string) (len=6) "app_id": (string) (len=6) "string",
+ (string) (len=11) "app_user_id": (string) (len=6) "string"
}
}),
method: (string) (len=4) "post",
@@ -1131,7 +1162,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026dc20)({
+ (*main.Method)(0xc00007b4a0)({
in: (main.MethodMessage) {
name: (string) (len=18) "OpenChannelRequest",
hasZeroFields: (bool) false
@@ -1141,14 +1172,14 @@
name: (string) (len=19) "OpenChannelResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc0001468a0)({
- authType: (*main.supportedAuth)(0xc0000bcde0)({
+ opts: (*main.methodOptions)(0xc0005caf00)({
+ authType: (*main.supportedAuth)(0xc0005bff80)({
id: (string) (len=4) "user",
name: (string) (len=4) "User",
context: (map[string]string) (len=3) {
- (string) (len=11) "app_user_id": (string) (len=6) "string",
(string) (len=7) "user_id": (string) (len=6) "string",
- (string) (len=6) "app_id": (string) (len=6) "string"
+ (string) (len=6) "app_id": (string) (len=6) "string",
+ (string) (len=11) "app_user_id": (string) (len=6) "string"
}
}),
method: (string) (len=4) "post",
@@ -1162,7 +1193,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026dcc0)({
+ (*main.Method)(0xc00007b540)({
in: (main.MethodMessage) {
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
@@ -1172,14 +1203,14 @@
name: (string) (len=17) "LnurlLinkResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc000146a80)({
- authType: (*main.supportedAuth)(0xc0000bce70)({
+ opts: (*main.methodOptions)(0xc0005cb0e0)({
+ authType: (*main.supportedAuth)(0xc0005ce030)({
id: (string) (len=4) "user",
name: (string) (len=4) "User",
context: (map[string]string) (len=3) {
- (string) (len=11) "app_user_id": (string) (len=6) "string",
(string) (len=7) "user_id": (string) (len=6) "string",
- (string) (len=6) "app_id": (string) (len=6) "string"
+ (string) (len=6) "app_id": (string) (len=6) "string",
+ (string) (len=11) "app_user_id": (string) (len=6) "string"
}
}),
method: (string) (len=3) "get",
@@ -1193,7 +1224,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026dd60)({
+ (*main.Method)(0xc00007b5e0)({
in: (main.MethodMessage) {
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
@@ -1203,14 +1234,14 @@
name: (string) (len=17) "LnurlLinkResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc000146c60)({
- authType: (*main.supportedAuth)(0xc0000bcf00)({
+ opts: (*main.methodOptions)(0xc0005cb2c0)({
+ authType: (*main.supportedAuth)(0xc0005ce0c0)({
id: (string) (len=4) "user",
name: (string) (len=4) "User",
context: (map[string]string) (len=3) {
- (string) (len=11) "app_user_id": (string) (len=6) "string",
(string) (len=7) "user_id": (string) (len=6) "string",
- (string) (len=6) "app_id": (string) (len=6) "string"
+ (string) (len=6) "app_id": (string) (len=6) "string",
+ (string) (len=11) "app_user_id": (string) (len=6) "string"
}
}),
method: (string) (len=3) "get",
@@ -1224,7 +1255,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026de00)({
+ (*main.Method)(0xc00007b680)({
in: (main.MethodMessage) {
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
@@ -1234,14 +1265,14 @@
name: (string) (len=17) "LnurlLinkResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc000146e40)({
- authType: (*main.supportedAuth)(0xc0000bcf90)({
+ opts: (*main.methodOptions)(0xc0005cb4a0)({
+ authType: (*main.supportedAuth)(0xc0005ce150)({
id: (string) (len=4) "user",
name: (string) (len=4) "User",
context: (map[string]string) (len=3) {
- (string) (len=11) "app_user_id": (string) (len=6) "string",
(string) (len=7) "user_id": (string) (len=6) "string",
- (string) (len=6) "app_id": (string) (len=6) "string"
+ (string) (len=6) "app_id": (string) (len=6) "string",
+ (string) (len=11) "app_user_id": (string) (len=6) "string"
}
}),
method: (string) (len=4) "post",
@@ -1255,7 +1286,7 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc00026dea0)({
+ (*main.Method)(0xc00007b720)({
in: (main.MethodMessage) {
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
@@ -1265,14 +1296,14 @@
name: (string) (len=17) "LiveUserOperation",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc000147020)({
- authType: (*main.supportedAuth)(0xc0000bd020)({
+ opts: (*main.methodOptions)(0xc0005cb680)({
+ authType: (*main.supportedAuth)(0xc0005ce1e0)({
id: (string) (len=4) "user",
name: (string) (len=4) "User",
context: (map[string]string) (len=3) {
- (string) (len=11) "app_user_id": (string) (len=6) "string",
(string) (len=7) "user_id": (string) (len=6) "string",
- (string) (len=6) "app_id": (string) (len=6) "string"
+ (string) (len=6) "app_id": (string) (len=6) "string",
+ (string) (len=11) "app_user_id": (string) (len=6) "string"
}
}),
method: (string) (len=4) "post",
@@ -1286,7 +1317,7 @@
}),
serverStream: (bool) true
}),
- (*main.Method)(0xc00026df40)({
+ (*main.Method)(0xc00007b7c0)({
in: (main.MethodMessage) {
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
@@ -1296,14 +1327,14 @@
name: (string) (len=15) "MigrationUpdate",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc000147200)({
- authType: (*main.supportedAuth)(0xc0000bd0b0)({
+ opts: (*main.methodOptions)(0xc0005cb860)({
+ authType: (*main.supportedAuth)(0xc0005ce270)({
id: (string) (len=4) "user",
name: (string) (len=4) "User",
context: (map[string]string) (len=3) {
+ (string) (len=6) "app_id": (string) (len=6) "string",
(string) (len=11) "app_user_id": (string) (len=6) "string",
- (string) (len=7) "user_id": (string) (len=6) "string",
- (string) (len=6) "app_id": (string) (len=6) "string"
+ (string) (len=7) "user_id": (string) (len=6) "string"
}
}),
method: (string) (len=4) "post",
@@ -1317,7 +1348,7 @@
}),
serverStream: (bool) true
}),
- (*main.Method)(0xc00026df90)({
+ (*main.Method)(0xc00007b810)({
in: (main.MethodMessage) {
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
@@ -1327,14 +1358,14 @@
name: (string) (len=9) "HttpCreds",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc0001473e0)({
- authType: (*main.supportedAuth)(0xc0000bd140)({
+ opts: (*main.methodOptions)(0xc0005cba40)({
+ authType: (*main.supportedAuth)(0xc0005ce300)({
id: (string) (len=4) "user",
name: (string) (len=4) "User",
context: (map[string]string) (len=3) {
- (string) (len=11) "app_user_id": (string) (len=6) "string",
(string) (len=7) "user_id": (string) (len=6) "string",
- (string) (len=6) "app_id": (string) (len=6) "string"
+ (string) (len=6) "app_id": (string) (len=6) "string",
+ (string) (len=11) "app_user_id": (string) (len=6) "string"
}
}),
method: (string) (len=4) "post",
@@ -1348,7 +1379,7 @@
}),
serverStream: (bool) true
}),
- (*main.Method)(0xc00008a050)({
+ (*main.Method)(0xc00007b860)({
in: (main.MethodMessage) {
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
@@ -1358,14 +1389,14 @@
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
},
- opts: (*main.methodOptions)(0xc000147620)({
- authType: (*main.supportedAuth)(0xc0000bd200)({
+ opts: (*main.methodOptions)(0xc0005cbc80)({
+ authType: (*main.supportedAuth)(0xc0005ce3c0)({
id: (string) (len=4) "user",
name: (string) (len=4) "User",
context: (map[string]string) (len=3) {
- (string) (len=11) "app_user_id": (string) (len=6) "string",
(string) (len=7) "user_id": (string) (len=6) "string",
- (string) (len=6) "app_id": (string) (len=6) "string"
+ (string) (len=6) "app_id": (string) (len=6) "string",
+ (string) (len=11) "app_user_id": (string) (len=6) "string"
}
}),
method: (string) (len=4) "post",
@@ -1382,7 +1413,7 @@
}
([]*main.Enum) (len=2 cap=2) {
- (*main.Enum)(0xc0000b6b70)({
+ (*main.Enum)(0xc0003ffd70)({
name: (string) (len=11) "AddressType",
values: ([]main.EnumValue) (len=3 cap=4) {
(main.EnumValue) {
@@ -1399,7 +1430,7 @@
}
}
}),
- (*main.Enum)(0xc0000b6bd0)({
+ (*main.Enum)(0xc0003ffdd0)({
name: (string) (len=17) "UserOperationType",
values: ([]main.EnumValue) (len=6 cap=8) {
(main.EnumValue) {
@@ -1430,2463 +1461,2711 @@
})
}
-(map[string]*main.Message) (len=70) {
- (string) (len=24) "SetMockAppBalanceRequest": (*main.Message)(0xc000461080)({
- fullName: (string) (len=24) "SetMockAppBalanceRequest",
- name: (string) (len=24) "SetMockAppBalanceRequest",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0001db9b0)({
- name: (string) (len=6) "amount",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=17) "AddProductRequest": (*main.Message)(0xc0004617c0)({
- fullName: (string) (len=17) "AddProductRequest",
- name: (string) (len=17) "AddProductRequest",
- fields: ([]*main.Field) (len=2 cap=2) {
- (*main.Field)(0xc0000b6810)({
- name: (string) (len=4) "name",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6840)({
- name: (string) (len=10) "price_sats",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=7) "AppUser": (*main.Message)(0xc000460e40)({
- fullName: (string) (len=7) "AppUser",
- name: (string) (len=7) "AppUser",
- fields: ([]*main.Field) (len=3 cap=4) {
- (*main.Field)(0xc0001db560)({
- name: (string) (len=10) "identifier",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001db590)({
- name: (string) (len=4) "info",
- kind: (string) (len=8) "UserInfo",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001db5c0)({
- name: (string) (len=16) "max_withdrawable",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=26) "GetAppUserLNURLInfoRequest": (*main.Message)(0xc000461000)({
- fullName: (string) (len=26) "GetAppUserLNURLInfoRequest",
- name: (string) (len=26) "GetAppUserLNURLInfoRequest",
- fields: ([]*main.Field) (len=2 cap=2) {
- (*main.Field)(0xc0001db8f0)({
- name: (string) (len=15) "user_identifier",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001db920)({
- name: (string) (len=17) "base_url_override",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=27) "SetMockInvoiceAsPaidRequest": (*main.Message)(0xc000460bc0)({
- fullName: (string) (len=27) "SetMockInvoiceAsPaidRequest",
- name: (string) (len=27) "SetMockInvoiceAsPaidRequest",
- fields: ([]*main.Field) (len=2 cap=2) {
- (*main.Field)(0xc0003d3c80)({
- name: (string) (len=7) "invoice",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3cb0)({
- name: (string) (len=6) "amount",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=17) "NewAddressRequest": (*main.Message)(0xc0004610c0)({
- fullName: (string) (len=17) "NewAddressRequest",
- name: (string) (len=17) "NewAddressRequest",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0001db9e0)({
- name: (string) (len=11) "addressType",
- kind: (string) (len=11) "AddressType",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) true,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=25) "GetProductBuyLinkResponse": (*main.Message)(0xc000461840)({
- fullName: (string) (len=25) "GetProductBuyLinkResponse",
- name: (string) (len=25) "GetProductBuyLinkResponse",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0000b6900)({
- name: (string) (len=4) "link",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=9) "HttpCreds": (*main.Message)(0xc000461a40)({
- fullName: (string) (len=9) "HttpCreds",
- name: (string) (len=9) "HttpCreds",
- fields: ([]*main.Field) (len=2 cap=2) {
- (*main.Field)(0xc0000b6ae0)({
- name: (string) (len=3) "url",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6b10)({
- name: (string) (len=5) "token",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=10) "AppMetrics": (*main.Message)(0xc0004607c0)({
- fullName: (string) (len=10) "AppMetrics",
- name: (string) (len=10) "AppMetrics",
- fields: ([]*main.Field) (len=9 cap=16) {
- (*main.Field)(0xc0003d30e0)({
- name: (string) (len=3) "app",
- kind: (string) (len=11) "Application",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3110)({
- name: (string) (len=5) "users",
- kind: (string) (len=9) "UsersInfo",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3140)({
- name: (string) (len=8) "received",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3170)({
- name: (string) (len=5) "spent",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d31a0)({
- name: (string) (len=9) "available",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d31d0)({
- name: (string) (len=4) "fees",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3200)({
- name: (string) (len=8) "invoices",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3230)({
- name: (string) (len=10) "total_fees",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3260)({
- name: (string) (len=10) "operations",
- kind: (string) (len=13) "UserOperation",
- isMap: (bool) false,
- isArray: (bool) true,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=17) "ChainBalanceEvent": (*main.Message)(0xc000460940)({
- fullName: (string) (len=17) "ChainBalanceEvent",
- name: (string) (len=17) "ChainBalanceEvent",
- fields: ([]*main.Field) (len=4 cap=4) {
- (*main.Field)(0xc0003d3620)({
- name: (string) (len=12) "block_height",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3650)({
- name: (string) (len=17) "confirmed_balance",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3680)({
- name: (string) (len=19) "unconfirmed_balance",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d36b0)({
- name: (string) (len=13) "total_balance",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=17) "LndGetInfoRequest": (*main.Message)(0xc000460b80)({
- fullName: (string) (len=17) "LndGetInfoRequest",
- name: (string) (len=17) "LndGetInfoRequest",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0003d3c50)({
- name: (string) (len=6) "nodeId",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=18) "NewAddressResponse": (*main.Message)(0xc000461100)({
- fullName: (string) (len=18) "NewAddressResponse",
- name: (string) (len=18) "NewAddressResponse",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0001dba10)({
- name: (string) (len=7) "address",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=14) "AuthAppRequest": (*main.Message)(0xc000460d40)({
- fullName: (string) (len=14) "AuthAppRequest",
- name: (string) (len=14) "AuthAppRequest",
- fields: ([]*main.Field) (len=2 cap=2) {
- (*main.Field)(0xc0003d3ec0)({
- name: (string) (len=4) "name",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3ef0)({
- name: (string) (len=19) "allow_user_creation",
- kind: (string) (len=4) "bool",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) true
- })
- }
- }),
- (string) (len=18) "PayAddressResponse": (*main.Message)(0xc000461180)({
- fullName: (string) (len=18) "PayAddressResponse",
- name: (string) (len=18) "PayAddressResponse",
- fields: ([]*main.Field) (len=4 cap=4) {
- (*main.Field)(0xc0001dbad0)({
- name: (string) (len=4) "txId",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001dbb00)({
- name: (string) (len=12) "operation_id",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001dbb30)({
- name: (string) (len=11) "service_fee",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001dbb60)({
- name: (string) (len=11) "network_fee",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=11) "AppsMetrics": (*main.Message)(0xc000460800)({
- fullName: (string) (len=11) "AppsMetrics",
- name: (string) (len=11) "AppsMetrics",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0003d3290)({
- name: (string) (len=4) "apps",
- kind: (string) (len=10) "AppMetrics",
- isMap: (bool) false,
- isArray: (bool) true,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=14) "LndNodeMetrics": (*main.Message)(0xc000460b00)({
- fullName: (string) (len=14) "LndNodeMetrics",
- name: (string) (len=14) "LndNodeMetrics",
- fields: ([]*main.Field) (len=9 cap=16) {
- (*main.Field)(0xc0003d3a70)({
- name: (string) (len=23) "channels_balance_events",
- kind: (string) (len=19) "ChannelBalanceEvent",
- isMap: (bool) false,
- isArray: (bool) true,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3aa0)({
- name: (string) (len=20) "chain_balance_events",
- kind: (string) (len=17) "ChainBalanceEvent",
- isMap: (bool) false,
- isArray: (bool) true,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3ad0)({
- name: (string) (len=16) "offline_channels",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3b00)({
- name: (string) (len=15) "online_channels",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3b30)({
- name: (string) (len=16) "pending_channels",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3b60)({
- name: (string) (len=16) "closing_channels",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3b90)({
- name: (string) (len=13) "open_channels",
- kind: (string) (len=11) "OpenChannel",
- isMap: (bool) false,
- isArray: (bool) true,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3bc0)({
- name: (string) (len=15) "closed_channels",
- kind: (string) (len=13) "ClosedChannel",
- isMap: (bool) false,
- isArray: (bool) true,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3bf0)({
- name: (string) (len=15) "channel_routing",
- kind: (string) (len=14) "ChannelRouting",
- isMap: (bool) false,
- isArray: (bool) true,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=18) "NewInvoiceResponse": (*main.Message)(0xc000461200)({
- fullName: (string) (len=18) "NewInvoiceResponse",
- name: (string) (len=18) "NewInvoiceResponse",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0001dbbf0)({
- name: (string) (len=7) "invoice",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=17) "LndMetricsRequest": (*main.Message)(0xc000460840)({
- fullName: (string) (len=17) "LndMetricsRequest",
- name: (string) (len=17) "LndMetricsRequest",
- fields: ([]*main.Field) (len=2 cap=2) {
- (*main.Field)(0xc0003d32c0)({
- name: (string) (len=9) "from_unix",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) true
- }),
- (*main.Field)(0xc0003d32f0)({
- name: (string) (len=7) "to_unix",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) true
- })
- }
- }),
- (string) (len=11) "OpenChannel": (*main.Message)(0xc0004609c0)({
+(map[string]*main.Message) (len=71) {
+ (string) (len=11) "OpenChannel": (*main.Message)(0xc0003fe750)({
fullName: (string) (len=11) "OpenChannel",
name: (string) (len=11) "OpenChannel",
- fields: ([]*main.Field) (len=6 cap=8) {
- (*main.Field)(0xc0003d36e0)({
- name: (string) (len=10) "channel_id",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3710)({
- name: (string) (len=8) "capacity",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3740)({
+ fields: (map[string]*main.Field) (len=6) {
+ (string) (len=6) "active": (*main.Field)(0xc00031f740)({
name: (string) (len=6) "active",
kind: (string) (len=4) "bool",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
}),
- (*main.Field)(0xc0003d3770)({
+ (string) (len=8) "lifetime": (*main.Field)(0xc00031f780)({
name: (string) (len=8) "lifetime",
kind: (string) (len=5) "int64",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
}),
- (*main.Field)(0xc0003d37a0)({
+ (string) (len=13) "local_balance": (*main.Field)(0xc00031f7c0)({
name: (string) (len=13) "local_balance",
kind: (string) (len=5) "int64",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
}),
- (*main.Field)(0xc0003d37d0)({
+ (string) (len=14) "remote_balance": (*main.Field)(0xc00031f800)({
name: (string) (len=14) "remote_balance",
kind: (string) (len=5) "int64",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=24) "GetUserOperationsRequest": (*main.Message)(0xc000461640)({
- fullName: (string) (len=24) "GetUserOperationsRequest",
- name: (string) (len=24) "GetUserOperationsRequest",
- fields: ([]*main.Field) (len=7 cap=8) {
- (*main.Field)(0xc0000b6300)({
- name: (string) (len=21) "latestIncomingInvoice",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
}),
- (*main.Field)(0xc0000b6330)({
- name: (string) (len=21) "latestOutgoingInvoice",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6360)({
- name: (string) (len=16) "latestIncomingTx",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6390)({
- name: (string) (len=16) "latestOutgoingTx",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b63c0)({
- name: (string) (len=31) "latestIncomingUserToUserPayment",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b63f0)({
- name: (string) (len=31) "latestOutgoingUserToUserPayment",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6420)({
- name: (string) (len=8) "max_size",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=14) "ChannelRouting": (*main.Message)(0xc000460a80)({
- fullName: (string) (len=14) "ChannelRouting",
- name: (string) (len=14) "ChannelRouting",
- fields: ([]*main.Field) (len=10 cap=16) {
- (*main.Field)(0xc0003d3890)({
+ (string) (len=10) "channel_id": (*main.Field)(0xc00031f6c0)({
name: (string) (len=10) "channel_id",
kind: (string) (len=6) "string",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
}),
- (*main.Field)(0xc0003d38c0)({
- name: (string) (len=11) "send_errors",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d38f0)({
- name: (string) (len=14) "receive_errors",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3920)({
- name: (string) (len=23) "forward_errors_as_input",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3950)({
- name: (string) (len=24) "forward_errors_as_output",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3980)({
- name: (string) (len=27) "missed_forward_fee_as_input",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d39b0)({
- name: (string) (len=28) "missed_forward_fee_as_output",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d39e0)({
- name: (string) (len=20) "forward_fee_as_input",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3a10)({
- name: (string) (len=21) "forward_fee_as_output",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3a40)({
- name: (string) (len=13) "events_number",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=20) "LnurlPayInfoResponse": (*main.Message)(0xc000461500)({
- fullName: (string) (len=20) "LnurlPayInfoResponse",
- name: (string) (len=20) "LnurlPayInfoResponse",
- fields: ([]*main.Field) (len=7 cap=8) {
- (*main.Field)(0xc0000b6000)({
- name: (string) (len=3) "tag",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6030)({
- name: (string) (len=8) "callback",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6060)({
- name: (string) (len=11) "maxSendable",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6090)({
- name: (string) (len=11) "minSendable",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b60c0)({
- name: (string) (len=8) "metadata",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b60f0)({
- name: (string) (len=11) "allowsNostr",
- kind: (string) (len=4) "bool",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6120)({
- name: (string) (len=11) "nostrPubkey",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=18) "PayInvoiceResponse": (*main.Message)(0xc000461340)({
- fullName: (string) (len=18) "PayInvoiceResponse",
- name: (string) (len=18) "PayInvoiceResponse",
- fields: ([]*main.Field) (len=5 cap=8) {
- (*main.Field)(0xc0001dbce0)({
- name: (string) (len=8) "preimage",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001dbd10)({
- name: (string) (len=11) "amount_paid",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001dbd40)({
- name: (string) (len=12) "operation_id",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001dbd70)({
- name: (string) (len=11) "service_fee",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001dbda0)({
- name: (string) (len=11) "network_fee",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=17) "LnurlLinkResponse": (*main.Message)(0xc000461400)({
- fullName: (string) (len=17) "LnurlLinkResponse",
- name: (string) (len=17) "LnurlLinkResponse",
- fields: ([]*main.Field) (len=2 cap=2) {
- (*main.Field)(0xc0001dbec0)({
- name: (string) (len=5) "lnurl",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001dbef0)({
- name: (string) (len=2) "k1",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=15) "RelaysMigration": (*main.Message)(0xc000461940)({
- fullName: (string) (len=15) "RelaysMigration",
- name: (string) (len=15) "RelaysMigration",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0000b69f0)({
- name: (string) (len=6) "relays",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) true,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=31) "RequestNPubLinkingTokenResponse": (*main.Message)(0xc0004619c0)({
- fullName: (string) (len=31) "RequestNPubLinkingTokenResponse",
- name: (string) (len=31) "RequestNPubLinkingTokenResponse",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0000b6a50)({
- name: (string) (len=5) "token",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=13) "BannedAppUser": (*main.Message)(0xc000460c80)({
- fullName: (string) (len=13) "BannedAppUser",
- name: (string) (len=13) "BannedAppUser",
- fields: ([]*main.Field) (len=4 cap=4) {
- (*main.Field)(0xc0003d3d40)({
- name: (string) (len=8) "app_name",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3d70)({
- name: (string) (len=6) "app_id",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3da0)({
- name: (string) (len=15) "user_identifier",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3dd0)({
- name: (string) (len=9) "nostr_pub",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=11) "Application": (*main.Message)(0xc000460d80)({
- fullName: (string) (len=11) "Application",
- name: (string) (len=11) "Application",
- fields: ([]*main.Field) (len=4 cap=4) {
- (*main.Field)(0xc0003d3f20)({
- name: (string) (len=4) "name",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3f50)({
- name: (string) (len=2) "id",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3f80)({
- name: (string) (len=7) "balance",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3fb0)({
- name: (string) (len=4) "npub",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=17) "PayAddressRequest": (*main.Message)(0xc000461140)({
- fullName: (string) (len=17) "PayAddressRequest",
- name: (string) (len=17) "PayAddressRequest",
- fields: ([]*main.Field) (len=3 cap=4) {
- (*main.Field)(0xc0001dba40)({
- name: (string) (len=7) "address",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001dba70)({
- name: (string) (len=9) "amoutSats",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001dbaa0)({
- name: (string) (len=12) "satsPerVByte",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=18) "OpenChannelRequest": (*main.Message)(0xc000461380)({
- fullName: (string) (len=18) "OpenChannelRequest",
- name: (string) (len=18) "OpenChannelRequest",
- fields: ([]*main.Field) (len=4 cap=4) {
- (*main.Field)(0xc0001dbdd0)({
- name: (string) (len=11) "destination",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001dbe00)({
- name: (string) (len=13) "fundingAmount",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001dbe30)({
- name: (string) (len=10) "pushAmount",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001dbe60)({
- name: (string) (len=12) "closeAddress",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=10) "LndMetrics": (*main.Message)(0xc000460b40)({
- fullName: (string) (len=10) "LndMetrics",
- name: (string) (len=10) "LndMetrics",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0003d3c20)({
- name: (string) (len=5) "nodes",
- kind: (string) (len=14) "LndNodeMetrics",
- isMap: (bool) false,
- isArray: (bool) true,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=18) "LndGetInfoResponse": (*main.Message)(0xc000460c00)({
- fullName: (string) (len=18) "LndGetInfoResponse",
- name: (string) (len=18) "LndGetInfoResponse",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0003d3ce0)({
- name: (string) (len=5) "alias",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=18) "AppsMetricsRequest": (*main.Message)(0xc0004606c0)({
- fullName: (string) (len=18) "AppsMetricsRequest",
- name: (string) (len=18) "AppsMetricsRequest",
- fields: ([]*main.Field) (len=3 cap=4) {
- (*main.Field)(0xc0003d2f30)({
- name: (string) (len=9) "from_unix",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) true
- }),
- (*main.Field)(0xc0003d2f60)({
- name: (string) (len=7) "to_unix",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) true
- }),
- (*main.Field)(0xc0003d2f90)({
- name: (string) (len=18) "include_operations",
- kind: (string) (len=4) "bool",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) true
- })
- }
- }),
- (string) (len=12) "RoutingEvent": (*main.Message)(0xc0004608c0)({
- fullName: (string) (len=12) "RoutingEvent",
- name: (string) (len=12) "RoutingEvent",
- fields: ([]*main.Field) (len=12 cap=16) {
- (*main.Field)(0xc0003d3320)({
- name: (string) (len=19) "incoming_channel_id",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3350)({
- name: (string) (len=16) "incoming_htlc_id",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3380)({
- name: (string) (len=19) "outgoing_channel_id",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d33b0)({
- name: (string) (len=16) "outgoing_htlc_id",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d33e0)({
- name: (string) (len=12) "timestamp_ns",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3410)({
- name: (string) (len=10) "event_type",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3440)({
- name: (string) (len=17) "incoming_amt_msat",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3470)({
- name: (string) (len=17) "outgoing_amt_msat",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d34a0)({
- name: (string) (len=14) "failure_string",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d34d0)({
- name: (string) (len=7) "settled",
- kind: (string) (len=4) "bool",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3500)({
- name: (string) (len=8) "offchain",
- kind: (string) (len=4) "bool",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3530)({
- name: (string) (len=18) "forward_fail_event",
- kind: (string) (len=4) "bool",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=16) "ClosureMigration": (*main.Message)(0xc000461900)({
- fullName: (string) (len=16) "ClosureMigration",
- name: (string) (len=16) "ClosureMigration",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0000b69c0)({
- name: (string) (len=14) "closes_at_unix",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=13) "ClosedChannel": (*main.Message)(0xc000460a00)({
- fullName: (string) (len=13) "ClosedChannel",
- name: (string) (len=13) "ClosedChannel",
- fields: ([]*main.Field) (len=3 cap=4) {
- (*main.Field)(0xc0003d3800)({
- name: (string) (len=10) "channel_id",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3830)({
+ (string) (len=8) "capacity": (*main.Field)(0xc00031f700)({
name: (string) (len=8) "capacity",
kind: (string) (len=5) "int64",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3860)({
- name: (string) (len=13) "closed_height",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
})
}
}),
- (string) (len=13) "AddAppRequest": (*main.Message)(0xc000460d00)({
- fullName: (string) (len=13) "AddAppRequest",
- name: (string) (len=13) "AddAppRequest",
- fields: ([]*main.Field) (len=2 cap=2) {
- (*main.Field)(0xc0003d3e60)({
- name: (string) (len=4) "name",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3e90)({
- name: (string) (len=19) "allow_user_creation",
- kind: (string) (len=4) "bool",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=14) "BanUserRequest": (*main.Message)(0xc000460c40)({
- fullName: (string) (len=14) "BanUserRequest",
- name: (string) (len=14) "BanUserRequest",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0003d3d10)({
- name: (string) (len=7) "user_id",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=15) "BanUserResponse": (*main.Message)(0xc000460cc0)({
- fullName: (string) (len=15) "BanUserResponse",
- name: (string) (len=15) "BanUserResponse",
- fields: ([]*main.Field) (len=2 cap=2) {
- (*main.Field)(0xc0003d3e00)({
- name: (string) (len=12) "balance_sats",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3e30)({
- name: (string) (len=16) "banned_app_users",
- kind: (string) (len=13) "BannedAppUser",
- isMap: (bool) false,
- isArray: (bool) true,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=17) "AddAppUserRequest": (*main.Message)(0xc000460e00)({
- fullName: (string) (len=17) "AddAppUserRequest",
- name: (string) (len=17) "AddAppUserRequest",
- fields: ([]*main.Field) (len=3 cap=4) {
- (*main.Field)(0xc0001db4d0)({
- name: (string) (len=10) "identifier",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001db500)({
- name: (string) (len=14) "fail_if_exists",
- kind: (string) (len=4) "bool",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001db530)({
- name: (string) (len=7) "balance",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=28) "SetMockAppUserBalanceRequest": (*main.Message)(0xc000461040)({
- fullName: (string) (len=28) "SetMockAppUserBalanceRequest",
- name: (string) (len=28) "SetMockAppUserBalanceRequest",
- fields: ([]*main.Field) (len=2 cap=2) {
- (*main.Field)(0xc0001db950)({
- name: (string) (len=15) "user_identifier",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001db980)({
- name: (string) (len=6) "amount",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=17) "PayInvoiceRequest": (*main.Message)(0xc0004612c0)({
- fullName: (string) (len=17) "PayInvoiceRequest",
- name: (string) (len=17) "PayInvoiceRequest",
- fields: ([]*main.Field) (len=2 cap=2) {
- (*main.Field)(0xc0001dbc80)({
+ (string) (len=27) "SetMockInvoiceAsPaidRequest": (*main.Message)(0xc0003fe990)({
+ fullName: (string) (len=27) "SetMockInvoiceAsPaidRequest",
+ name: (string) (len=27) "SetMockInvoiceAsPaidRequest",
+ fields: (map[string]*main.Field) (len=2) {
+ (string) (len=7) "invoice": (*main.Field)(0xc00031fe40)({
name: (string) (len=7) "invoice",
kind: (string) (len=6) "string",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
}),
- (*main.Field)(0xc0001dbcb0)({
+ (string) (len=6) "amount": (*main.Field)(0xc00031fe80)({
name: (string) (len=6) "amount",
kind: (string) (len=5) "int64",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
})
}
}),
- (string) (len=25) "LnurlWithdrawInfoResponse": (*main.Message)(0xc000461480)({
- fullName: (string) (len=25) "LnurlWithdrawInfoResponse",
- name: (string) (len=25) "LnurlWithdrawInfoResponse",
- fields: ([]*main.Field) (len=8 cap=8) {
- (*main.Field)(0xc0001dbf20)({
- name: (string) (len=3) "tag",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001dbf50)({
- name: (string) (len=8) "callback",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001dbf80)({
- name: (string) (len=2) "k1",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001dbfb0)({
- name: (string) (len=18) "defaultDescription",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc000348ff0)({
- name: (string) (len=15) "minWithdrawable",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc00007e000)({
- name: (string) (len=15) "maxWithdrawable",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc00007f200)({
- name: (string) (len=12) "balanceCheck",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc00007f230)({
- name: (string) (len=7) "payLink",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=11) "UsageMetric": (*main.Message)(0xc000460640)({
- fullName: (string) (len=11) "UsageMetric",
- name: (string) (len=11) "UsageMetric",
- fields: ([]*main.Field) (len=9 cap=16) {
- (*main.Field)(0xc0003d2d50)({
- name: (string) (len=15) "processed_at_ms",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d2d80)({
- name: (string) (len=14) "parsed_in_nano",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d2db0)({
- name: (string) (len=12) "auth_in_nano",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d2de0)({
- name: (string) (len=16) "validate_in_nano",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d2e10)({
- name: (string) (len=14) "handle_in_nano",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d2e40)({
- name: (string) (len=8) "rpc_name",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d2e70)({
- name: (string) (len=5) "batch",
- kind: (string) (len=4) "bool",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d2ea0)({
- name: (string) (len=5) "nostr",
- kind: (string) (len=4) "bool",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d2ed0)({
- name: (string) (len=10) "batch_size",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=9) "UsersInfo": (*main.Message)(0xc000460740)({
- fullName: (string) (len=9) "UsersInfo",
- name: (string) (len=9) "UsersInfo",
- fields: ([]*main.Field) (len=6 cap=8) {
- (*main.Field)(0xc0003d2fc0)({
- name: (string) (len=5) "total",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d2ff0)({
- name: (string) (len=10) "no_balance",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3020)({
- name: (string) (len=16) "negative_balance",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3050)({
- name: (string) (len=20) "always_been_inactive",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d3080)({
- name: (string) (len=11) "balance_avg",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d30b0)({
- name: (string) (len=14) "balance_median",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=14) "UserOperations": (*main.Message)(0xc000461700)({
- fullName: (string) (len=14) "UserOperations",
- name: (string) (len=14) "UserOperations",
- fields: ([]*main.Field) (len=3 cap=4) {
- (*main.Field)(0xc0000b6660)({
- name: (string) (len=9) "fromIndex",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6690)({
- name: (string) (len=7) "toIndex",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b66c0)({
- name: (string) (len=10) "operations",
- kind: (string) (len=13) "UserOperation",
- isMap: (bool) false,
- isArray: (bool) true,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=30) "RequestNPubLinkingTokenRequest": (*main.Message)(0xc000461980)({
- fullName: (string) (len=30) "RequestNPubLinkingTokenRequest",
- name: (string) (len=30) "RequestNPubLinkingTokenRequest",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0000b6a20)({
- name: (string) (len=15) "user_identifier",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=30) "SendAppUserToAppPaymentRequest": (*main.Message)(0xc000460fc0)({
- fullName: (string) (len=30) "SendAppUserToAppPaymentRequest",
- name: (string) (len=30) "SendAppUserToAppPaymentRequest",
- fields: ([]*main.Field) (len=2 cap=2) {
- (*main.Field)(0xc0001db890)({
- name: (string) (len=20) "from_user_identifier",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001db8c0)({
- name: (string) (len=6) "amount",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=13) "UserOperation": (*main.Message)(0xc0004616c0)({
- fullName: (string) (len=13) "UserOperation",
- name: (string) (len=13) "UserOperation",
- fields: ([]*main.Field) (len=11 cap=16) {
- (*main.Field)(0xc0000b6450)({
- name: (string) (len=10) "paidAtUnix",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6480)({
- name: (string) (len=4) "type",
- kind: (string) (len=17) "UserOperationType",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) true,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b64b0)({
- name: (string) (len=7) "inbound",
- kind: (string) (len=4) "bool",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b64e0)({
- name: (string) (len=6) "amount",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6510)({
- name: (string) (len=10) "identifier",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6540)({
- name: (string) (len=11) "operationId",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6570)({
- name: (string) (len=11) "service_fee",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b65a0)({
- name: (string) (len=11) "network_fee",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b65d0)({
- name: (string) (len=9) "confirmed",
- kind: (string) (len=4) "bool",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6600)({
- name: (string) (len=7) "tx_hash",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6630)({
- name: (string) (len=8) "internal",
- kind: (string) (len=4) "bool",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=7) "Product": (*main.Message)(0xc000461800)({
- fullName: (string) (len=7) "Product",
- name: (string) (len=7) "Product",
- fields: ([]*main.Field) (len=3 cap=4) {
- (*main.Field)(0xc0000b6870)({
- name: (string) (len=2) "id",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b68a0)({
- name: (string) (len=4) "name",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b68d0)({
- name: (string) (len=10) "price_sats",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=27) "LinkNPubThroughTokenRequest": (*main.Message)(0xc000461a00)({
- fullName: (string) (len=27) "LinkNPubThroughTokenRequest",
- name: (string) (len=27) "LinkNPubThroughTokenRequest",
- fields: ([]*main.Field) (len=2 cap=2) {
- (*main.Field)(0xc0000b6a80)({
- name: (string) (len=5) "token",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6ab0)({
- name: (string) (len=9) "nostr_pub",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=25) "EncryptionExchangeRequest": (*main.Message)(0xc0004605c0)({
- fullName: (string) (len=25) "EncryptionExchangeRequest",
- name: (string) (len=25) "EncryptionExchangeRequest",
- fields: ([]*main.Field) (len=2 cap=2) {
- (*main.Field)(0xc0003d2cf0)({
- name: (string) (len=9) "publicKey",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003d2d20)({
- name: (string) (len=8) "deviceId",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=24) "PayAppUserInvoiceRequest": (*main.Message)(0xc000460f40)({
- fullName: (string) (len=24) "PayAppUserInvoiceRequest",
- name: (string) (len=24) "PayAppUserInvoiceRequest",
- fields: ([]*main.Field) (len=3 cap=4) {
- (*main.Field)(0xc0001db770)({
- name: (string) (len=15) "user_identifier",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001db7a0)({
- name: (string) (len=7) "invoice",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001db7d0)({
- name: (string) (len=6) "amount",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=15) "MigrationUpdate": (*main.Message)(0xc0004618c0)({
- fullName: (string) (len=15) "MigrationUpdate",
- name: (string) (len=15) "MigrationUpdate",
- fields: ([]*main.Field) (len=2 cap=2) {
- (*main.Field)(0xc0000b6960)({
- name: (string) (len=7) "closure",
- kind: (string) (len=16) "ClosureMigration",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) true
- }),
- (*main.Field)(0xc0000b6990)({
- name: (string) (len=6) "relays",
- kind: (string) (len=15) "RelaysMigration",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) true
- })
- }
- }),
- (string) (len=34) "SendAppUserToAppUserPaymentRequest": (*main.Message)(0xc000460f80)({
- fullName: (string) (len=34) "SendAppUserToAppUserPaymentRequest",
- name: (string) (len=34) "SendAppUserToAppUserPaymentRequest",
- fields: ([]*main.Field) (len=3 cap=4) {
- (*main.Field)(0xc0001db800)({
- name: (string) (len=20) "from_user_identifier",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001db830)({
- name: (string) (len=18) "to_user_identifier",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001db860)({
- name: (string) (len=6) "amount",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=17) "NewInvoiceRequest": (*main.Message)(0xc0004611c0)({
- fullName: (string) (len=17) "NewInvoiceRequest",
- name: (string) (len=17) "NewInvoiceRequest",
- fields: ([]*main.Field) (len=2 cap=2) {
- (*main.Field)(0xc0001dbb90)({
- name: (string) (len=10) "amountSats",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001dbbc0)({
- name: (string) (len=4) "memo",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=8) "UserInfo": (*main.Message)(0xc0004615c0)({
- fullName: (string) (len=8) "UserInfo",
- name: (string) (len=8) "UserInfo",
- fields: ([]*main.Field) (len=7 cap=8) {
- (*main.Field)(0xc0000b61b0)({
- name: (string) (len=6) "userId",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b61e0)({
- name: (string) (len=7) "balance",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6210)({
- name: (string) (len=16) "max_withdrawable",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6240)({
- name: (string) (len=15) "user_identifier",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6270)({
- name: (string) (len=15) "service_fee_bps",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b62a0)({
- name: (string) (len=19) "network_max_fee_bps",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b62d0)({
- name: (string) (len=21) "network_max_fee_fixed",
- kind: (string) (len=5) "int64",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=25) "GetUserOperationsResponse": (*main.Message)(0xc000461780)({
- fullName: (string) (len=25) "GetUserOperationsResponse",
- name: (string) (len=25) "GetUserOperationsResponse",
- fields: ([]*main.Field) (len=6 cap=8) {
- (*main.Field)(0xc0000b66f0)({
- name: (string) (len=31) "latestOutgoingInvoiceOperations",
- kind: (string) (len=14) "UserOperations",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6720)({
- name: (string) (len=31) "latestIncomingInvoiceOperations",
- kind: (string) (len=14) "UserOperations",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6750)({
- name: (string) (len=26) "latestOutgoingTxOperations",
- kind: (string) (len=14) "UserOperations",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b6780)({
- name: (string) (len=26) "latestIncomingTxOperations",
- kind: (string) (len=14) "UserOperations",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b67b0)({
- name: (string) (len=32) "latestOutgoingUserToUserPayemnts",
- kind: (string) (len=14) "UserOperations",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0000b67e0)({
- name: (string) (len=32) "latestIncomingUserToUserPayemnts",
- kind: (string) (len=14) "UserOperations",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=24) "AddAppUserInvoiceRequest": (*main.Message)(0xc000460ec0)({
+ (string) (len=24) "AddAppUserInvoiceRequest": (*main.Message)(0xc0003fee10)({
fullName: (string) (len=24) "AddAppUserInvoiceRequest",
name: (string) (len=24) "AddAppUserInvoiceRequest",
- fields: ([]*main.Field) (len=4 cap=4) {
- (*main.Field)(0xc0001db680)({
+ fields: (map[string]*main.Field) (len=4) {
+ (string) (len=19) "receiver_identifier": (*main.Field)(0xc0004625c0)({
name: (string) (len=19) "receiver_identifier",
kind: (string) (len=6) "string",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
}),
- (*main.Field)(0xc0001db6b0)({
+ (string) (len=16) "payer_identifier": (*main.Field)(0xc000462600)({
name: (string) (len=16) "payer_identifier",
kind: (string) (len=6) "string",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
}),
- (*main.Field)(0xc0001db6e0)({
+ (string) (len=17) "http_callback_url": (*main.Field)(0xc000462640)({
name: (string) (len=17) "http_callback_url",
kind: (string) (len=6) "string",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
}),
- (*main.Field)(0xc0001db710)({
+ (string) (len=11) "invoice_req": (*main.Field)(0xc000462680)({
name: (string) (len=11) "invoice_req",
kind: (string) (len=17) "NewInvoiceRequest",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) true,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
})
}
}),
- (string) (len=20) "DecodeInvoiceRequest": (*main.Message)(0xc000461240)({
- fullName: (string) (len=20) "DecodeInvoiceRequest",
- name: (string) (len=20) "DecodeInvoiceRequest",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0001dbc20)({
- name: (string) (len=7) "invoice",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=20) "AddAppInvoiceRequest": (*main.Message)(0xc000460e80)({
- fullName: (string) (len=20) "AddAppInvoiceRequest",
- name: (string) (len=20) "AddAppInvoiceRequest",
- fields: ([]*main.Field) (len=3 cap=4) {
- (*main.Field)(0xc0001db5f0)({
- name: (string) (len=16) "payer_identifier",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001db620)({
- name: (string) (len=17) "http_callback_url",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001db650)({
- name: (string) (len=11) "invoice_req",
- kind: (string) (len=17) "NewInvoiceRequest",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=21) "DecodeInvoiceResponse": (*main.Message)(0xc000461280)({
+ (string) (len=21) "DecodeInvoiceResponse": (*main.Message)(0xc0003ff3b0)({
fullName: (string) (len=21) "DecodeInvoiceResponse",
name: (string) (len=21) "DecodeInvoiceResponse",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0001dbc50)({
+ fields: (map[string]*main.Field) (len=1) {
+ (string) (len=6) "amount": (*main.Field)(0xc000462d80)({
name: (string) (len=6) "amount",
kind: (string) (len=5) "int64",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
})
}
}),
- (string) (len=19) "OpenChannelResponse": (*main.Message)(0xc0004613c0)({
+ (string) (len=19) "OpenChannelResponse": (*main.Message)(0xc0003ff530)({
fullName: (string) (len=19) "OpenChannelResponse",
name: (string) (len=19) "OpenChannelResponse",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0001dbe90)({
+ fields: (map[string]*main.Field) (len=1) {
+ (string) (len=9) "channelId": (*main.Field)(0xc000463080)({
name: (string) (len=9) "channelId",
kind: (string) (len=6) "string",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
})
}
}),
- (string) (len=17) "LiveUserOperation": (*main.Message)(0xc000461880)({
- fullName: (string) (len=17) "LiveUserOperation",
- name: (string) (len=17) "LiveUserOperation",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0000b6930)({
- name: (string) (len=9) "operation",
- kind: (string) (len=13) "UserOperation",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=12) "UsageMetrics": (*main.Message)(0xc000460680)({
- fullName: (string) (len=12) "UsageMetrics",
- name: (string) (len=12) "UsageMetrics",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0003d2f00)({
- name: (string) (len=7) "metrics",
- kind: (string) (len=11) "UsageMetric",
+ (string) (len=15) "RelaysMigration": (*main.Message)(0xc0003ffb30)({
+ fullName: (string) (len=15) "RelaysMigration",
+ name: (string) (len=15) "RelaysMigration",
+ fields: (map[string]*main.Field) (len=1) {
+ (string) (len=6) "relays": (*main.Field)(0xc0000b0080)({
+ name: (string) (len=6) "relays",
+ kind: (string) (len=6) "string",
isMap: (bool) false,
isArray: (bool) true,
isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=7) "AuthApp": (*main.Message)(0xc000460dc0)({
- fullName: (string) (len=7) "AuthApp",
- name: (string) (len=7) "AuthApp",
- fields: ([]*main.Field) (len=2 cap=2) {
- (*main.Field)(0xc0001db470)({
- name: (string) (len=3) "app",
- kind: (string) (len=11) "Application",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) true,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0001db4a0)({
- name: (string) (len=10) "auth_token",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
})
}
}),
- (string) (len=17) "GetAppUserRequest": (*main.Message)(0xc000460f00)({
- fullName: (string) (len=17) "GetAppUserRequest",
- name: (string) (len=17) "GetAppUserRequest",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0001db740)({
+ (string) (len=30) "RequestNPubLinkingTokenRequest": (*main.Message)(0xc0003ffb90)({
+ fullName: (string) (len=30) "RequestNPubLinkingTokenRequest",
+ name: (string) (len=30) "RequestNPubLinkingTokenRequest",
+ fields: (map[string]*main.Field) (len=1) {
+ (string) (len=15) "user_identifier": (*main.Field)(0xc0000b0180)({
name: (string) (len=15) "user_identifier",
kind: (string) (len=6) "string",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
})
}
}),
- (string) (len=22) "HandleLnurlPayResponse": (*main.Message)(0xc000461540)({
+ (string) (len=27) "LinkNPubThroughTokenRequest": (*main.Message)(0xc0003ffc50)({
+ fullName: (string) (len=27) "LinkNPubThroughTokenRequest",
+ name: (string) (len=27) "LinkNPubThroughTokenRequest",
+ fields: (map[string]*main.Field) (len=2) {
+ (string) (len=5) "token": (*main.Field)(0xc0000b0640)({
+ name: (string) (len=5) "token",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=9) "nostr_pub": (*main.Field)(0xc0000b0680)({
+ name: (string) (len=9) "nostr_pub",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=10) "LndMetrics": (*main.Message)(0xc0003fe8d0)({
+ fullName: (string) (len=10) "LndMetrics",
+ name: (string) (len=10) "LndMetrics",
+ fields: (map[string]*main.Field) (len=1) {
+ (string) (len=5) "nodes": (*main.Field)(0xc00031fdc0)({
+ name: (string) (len=5) "nodes",
+ kind: (string) (len=14) "LndNodeMetrics",
+ isMap: (bool) false,
+ isArray: (bool) true,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=7) "AppUser": (*main.Message)(0xc0003fed50)({
+ fullName: (string) (len=7) "AppUser",
+ name: (string) (len=7) "AppUser",
+ fields: (map[string]*main.Field) (len=3) {
+ (string) (len=10) "identifier": (*main.Field)(0xc000462440)({
+ name: (string) (len=10) "identifier",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=4) "info": (*main.Field)(0xc000462480)({
+ name: (string) (len=4) "info",
+ kind: (string) (len=8) "UserInfo",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=16) "max_withdrawable": (*main.Field)(0xc0004624c0)({
+ name: (string) (len=16) "max_withdrawable",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=20) "AddAppInvoiceRequest": (*main.Message)(0xc0003fedb0)({
+ fullName: (string) (len=20) "AddAppInvoiceRequest",
+ name: (string) (len=20) "AddAppInvoiceRequest",
+ fields: (map[string]*main.Field) (len=3) {
+ (string) (len=16) "payer_identifier": (*main.Field)(0xc000462500)({
+ name: (string) (len=16) "payer_identifier",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=17) "http_callback_url": (*main.Field)(0xc000462540)({
+ name: (string) (len=17) "http_callback_url",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=11) "invoice_req": (*main.Field)(0xc000462580)({
+ name: (string) (len=11) "invoice_req",
+ kind: (string) (len=17) "NewInvoiceRequest",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=14) "UserOperations": (*main.Message)(0xc0003ff830)({
+ fullName: (string) (len=14) "UserOperations",
+ name: (string) (len=14) "UserOperations",
+ fields: (map[string]*main.Field) (len=3) {
+ (string) (len=9) "fromIndex": (*main.Field)(0xc000463bc0)({
+ name: (string) (len=9) "fromIndex",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=7) "toIndex": (*main.Field)(0xc000463c00)({
+ name: (string) (len=7) "toIndex",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=10) "operations": (*main.Field)(0xc000463c40)({
+ name: (string) (len=10) "operations",
+ kind: (string) (len=13) "UserOperation",
+ isMap: (bool) false,
+ isArray: (bool) true,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=14) "BanUserRequest": (*main.Message)(0xc0003fea50)({
+ fullName: (string) (len=14) "BanUserRequest",
+ name: (string) (len=14) "BanUserRequest",
+ fields: (map[string]*main.Field) (len=1) {
+ (string) (len=7) "user_id": (*main.Field)(0xc00031ff00)({
+ name: (string) (len=7) "user_id",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=17) "NewAddressRequest": (*main.Message)(0xc0003ff110)({
+ fullName: (string) (len=17) "NewAddressRequest",
+ name: (string) (len=17) "NewAddressRequest",
+ fields: (map[string]*main.Field) (len=1) {
+ (string) (len=11) "addressType": (*main.Field)(0xc000462a40)({
+ name: (string) (len=11) "addressType",
+ kind: (string) (len=11) "AddressType",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) true,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=20) "DecodeInvoiceRequest": (*main.Message)(0xc0003ff350)({
+ fullName: (string) (len=20) "DecodeInvoiceRequest",
+ name: (string) (len=20) "DecodeInvoiceRequest",
+ fields: (map[string]*main.Field) (len=1) {
+ (string) (len=7) "invoice": (*main.Field)(0xc000462d40)({
+ name: (string) (len=7) "invoice",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=25) "LnurlWithdrawInfoResponse": (*main.Message)(0xc0003ff5f0)({
+ fullName: (string) (len=25) "LnurlWithdrawInfoResponse",
+ name: (string) (len=25) "LnurlWithdrawInfoResponse",
+ fields: (map[string]*main.Field) (len=8) {
+ (string) (len=8) "callback": (*main.Field)(0xc000463180)({
+ name: (string) (len=8) "callback",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=2) "k1": (*main.Field)(0xc0004631c0)({
+ name: (string) (len=2) "k1",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=18) "defaultDescription": (*main.Field)(0xc000463200)({
+ name: (string) (len=18) "defaultDescription",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=15) "minWithdrawable": (*main.Field)(0xc000463240)({
+ name: (string) (len=15) "minWithdrawable",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=15) "maxWithdrawable": (*main.Field)(0xc000463280)({
+ name: (string) (len=15) "maxWithdrawable",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=12) "balanceCheck": (*main.Field)(0xc0004632c0)({
+ name: (string) (len=12) "balanceCheck",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=7) "payLink": (*main.Field)(0xc000463300)({
+ name: (string) (len=7) "payLink",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=3) "tag": (*main.Field)(0xc000463140)({
+ name: (string) (len=3) "tag",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=24) "GetUserOperationsRequest": (*main.Message)(0xc0003ff770)({
+ fullName: (string) (len=24) "GetUserOperationsRequest",
+ name: (string) (len=24) "GetUserOperationsRequest",
+ fields: (map[string]*main.Field) (len=7) {
+ (string) (len=21) "latestIncomingInvoice": (*main.Field)(0xc000463740)({
+ name: (string) (len=21) "latestIncomingInvoice",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=21) "latestOutgoingInvoice": (*main.Field)(0xc000463780)({
+ name: (string) (len=21) "latestOutgoingInvoice",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=16) "latestIncomingTx": (*main.Field)(0xc0004637c0)({
+ name: (string) (len=16) "latestIncomingTx",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=16) "latestOutgoingTx": (*main.Field)(0xc000463800)({
+ name: (string) (len=16) "latestOutgoingTx",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=31) "latestIncomingUserToUserPayment": (*main.Field)(0xc000463840)({
+ name: (string) (len=31) "latestIncomingUserToUserPayment",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=31) "latestOutgoingUserToUserPayment": (*main.Field)(0xc000463880)({
+ name: (string) (len=31) "latestOutgoingUserToUserPayment",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=8) "max_size": (*main.Field)(0xc0004638c0)({
+ name: (string) (len=8) "max_size",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=10) "AppMetrics": (*main.Message)(0xc0003fe510)({
+ fullName: (string) (len=10) "AppMetrics",
+ name: (string) (len=10) "AppMetrics",
+ fields: (map[string]*main.Field) (len=9) {
+ (string) (len=8) "received": (*main.Field)(0xc00031ef40)({
+ name: (string) (len=8) "received",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=10) "operations": (*main.Field)(0xc00031f0c0)({
+ name: (string) (len=10) "operations",
+ kind: (string) (len=13) "UserOperation",
+ isMap: (bool) false,
+ isArray: (bool) true,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=3) "app": (*main.Field)(0xc00031eec0)({
+ name: (string) (len=3) "app",
+ kind: (string) (len=11) "Application",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=5) "users": (*main.Field)(0xc00031ef00)({
+ name: (string) (len=5) "users",
+ kind: (string) (len=9) "UsersInfo",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=5) "spent": (*main.Field)(0xc00031ef80)({
+ name: (string) (len=5) "spent",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=9) "available": (*main.Field)(0xc00031efc0)({
+ name: (string) (len=9) "available",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=4) "fees": (*main.Field)(0xc00031f000)({
+ name: (string) (len=4) "fees",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=8) "invoices": (*main.Field)(0xc00031f040)({
+ name: (string) (len=8) "invoices",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=10) "total_fees": (*main.Field)(0xc00031f080)({
+ name: (string) (len=10) "total_fees",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=13) "AddAppRequest": (*main.Message)(0xc0003feb70)({
+ fullName: (string) (len=13) "AddAppRequest",
+ name: (string) (len=13) "AddAppRequest",
+ fields: (map[string]*main.Field) (len=2) {
+ (string) (len=4) "name": (*main.Field)(0xc000462100)({
+ name: (string) (len=4) "name",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=19) "allow_user_creation": (*main.Field)(0xc000462140)({
+ name: (string) (len=19) "allow_user_creation",
+ kind: (string) (len=4) "bool",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=34) "SendAppUserToAppUserPaymentRequest": (*main.Message)(0xc0003fef30)({
+ fullName: (string) (len=34) "SendAppUserToAppUserPaymentRequest",
+ name: (string) (len=34) "SendAppUserToAppUserPaymentRequest",
+ fields: (map[string]*main.Field) (len=3) {
+ (string) (len=20) "from_user_identifier": (*main.Field)(0xc0004627c0)({
+ name: (string) (len=20) "from_user_identifier",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=18) "to_user_identifier": (*main.Field)(0xc000462800)({
+ name: (string) (len=18) "to_user_identifier",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=6) "amount": (*main.Field)(0xc000462840)({
+ name: (string) (len=6) "amount",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=20) "LnurlPayInfoResponse": (*main.Message)(0xc0003ff650)({
+ fullName: (string) (len=20) "LnurlPayInfoResponse",
+ name: (string) (len=20) "LnurlPayInfoResponse",
+ fields: (map[string]*main.Field) (len=7) {
+ (string) (len=11) "allowsNostr": (*main.Field)(0xc000463480)({
+ name: (string) (len=11) "allowsNostr",
+ kind: (string) (len=4) "bool",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=11) "nostrPubkey": (*main.Field)(0xc0004634c0)({
+ name: (string) (len=11) "nostrPubkey",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=3) "tag": (*main.Field)(0xc000463340)({
+ name: (string) (len=3) "tag",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=8) "callback": (*main.Field)(0xc000463380)({
+ name: (string) (len=8) "callback",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=11) "maxSendable": (*main.Field)(0xc0004633c0)({
+ name: (string) (len=11) "maxSendable",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=11) "minSendable": (*main.Field)(0xc000463400)({
+ name: (string) (len=11) "minSendable",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=8) "metadata": (*main.Field)(0xc000463440)({
+ name: (string) (len=8) "metadata",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=22) "HandleLnurlPayResponse": (*main.Message)(0xc0003ff6b0)({
fullName: (string) (len=22) "HandleLnurlPayResponse",
name: (string) (len=22) "HandleLnurlPayResponse",
- fields: ([]*main.Field) (len=2 cap=2) {
- (*main.Field)(0xc0000b6150)({
+ fields: (map[string]*main.Field) (len=2) {
+ (string) (len=2) "pr": (*main.Field)(0xc000463500)({
name: (string) (len=2) "pr",
kind: (string) (len=6) "string",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
}),
- (*main.Field)(0xc0000b6180)({
+ (string) (len=6) "routes": (*main.Field)(0xc000463540)({
name: (string) (len=6) "routes",
kind: (string) (len=5) "Empty",
isMap: (bool) false,
isArray: (bool) true,
isEnum: (bool) false,
isMessage: (bool) true,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
})
}
}),
- (string) (len=5) "Empty": (*main.Message)(0xc000460580)({
+ (string) (len=23) "EnrollAdminTokenRequest": (*main.Message)(0xc0003ffd10)({
+ fullName: (string) (len=23) "EnrollAdminTokenRequest",
+ name: (string) (len=23) "EnrollAdminTokenRequest",
+ fields: (map[string]*main.Field) (len=1) {
+ (string) (len=11) "admin_token": (*main.Field)(0xc0000b07c0)({
+ name: (string) (len=11) "admin_token",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=12) "UsageMetrics": (*main.Message)(0xc0003fe3f0)({
+ fullName: (string) (len=12) "UsageMetrics",
+ name: (string) (len=12) "UsageMetrics",
+ fields: (map[string]*main.Field) (len=1) {
+ (string) (len=7) "metrics": (*main.Field)(0xc00031ec00)({
+ name: (string) (len=7) "metrics",
+ kind: (string) (len=11) "UsageMetric",
+ isMap: (bool) false,
+ isArray: (bool) true,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=17) "LnurlLinkResponse": (*main.Message)(0xc0003ff590)({
+ fullName: (string) (len=17) "LnurlLinkResponse",
+ name: (string) (len=17) "LnurlLinkResponse",
+ fields: (map[string]*main.Field) (len=2) {
+ (string) (len=5) "lnurl": (*main.Field)(0xc0004630c0)({
+ name: (string) (len=5) "lnurl",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=2) "k1": (*main.Field)(0xc000463100)({
+ name: (string) (len=2) "k1",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=17) "LiveUserOperation": (*main.Message)(0xc0003ffa10)({
+ fullName: (string) (len=17) "LiveUserOperation",
+ name: (string) (len=17) "LiveUserOperation",
+ fields: (map[string]*main.Field) (len=1) {
+ (string) (len=9) "operation": (*main.Field)(0xc000463f80)({
+ name: (string) (len=9) "operation",
+ kind: (string) (len=13) "UserOperation",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=17) "PayInvoiceRequest": (*main.Message)(0xc0003ff410)({
+ fullName: (string) (len=17) "PayInvoiceRequest",
+ name: (string) (len=17) "PayInvoiceRequest",
+ fields: (map[string]*main.Field) (len=2) {
+ (string) (len=7) "invoice": (*main.Field)(0xc000462dc0)({
+ name: (string) (len=7) "invoice",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=6) "amount": (*main.Field)(0xc000462e00)({
+ name: (string) (len=6) "amount",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=25) "GetProductBuyLinkResponse": (*main.Message)(0xc0003ff9b0)({
+ fullName: (string) (len=25) "GetProductBuyLinkResponse",
+ name: (string) (len=25) "GetProductBuyLinkResponse",
+ fields: (map[string]*main.Field) (len=1) {
+ (string) (len=4) "link": (*main.Field)(0xc000463f40)({
+ name: (string) (len=4) "link",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=14) "LndNodeMetrics": (*main.Message)(0xc0003fe870)({
+ fullName: (string) (len=14) "LndNodeMetrics",
+ name: (string) (len=14) "LndNodeMetrics",
+ fields: (map[string]*main.Field) (len=9) {
+ (string) (len=23) "channels_balance_events": (*main.Field)(0xc00031fb80)({
+ name: (string) (len=23) "channels_balance_events",
+ kind: (string) (len=19) "ChannelBalanceEvent",
+ isMap: (bool) false,
+ isArray: (bool) true,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=20) "chain_balance_events": (*main.Field)(0xc00031fbc0)({
+ name: (string) (len=20) "chain_balance_events",
+ kind: (string) (len=17) "ChainBalanceEvent",
+ isMap: (bool) false,
+ isArray: (bool) true,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=15) "online_channels": (*main.Field)(0xc00031fc40)({
+ name: (string) (len=15) "online_channels",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=16) "closing_channels": (*main.Field)(0xc00031fcc0)({
+ name: (string) (len=16) "closing_channels",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=16) "offline_channels": (*main.Field)(0xc00031fc00)({
+ name: (string) (len=16) "offline_channels",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=16) "pending_channels": (*main.Field)(0xc00031fc80)({
+ name: (string) (len=16) "pending_channels",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=13) "open_channels": (*main.Field)(0xc00031fd00)({
+ name: (string) (len=13) "open_channels",
+ kind: (string) (len=11) "OpenChannel",
+ isMap: (bool) false,
+ isArray: (bool) true,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=15) "closed_channels": (*main.Field)(0xc00031fd40)({
+ name: (string) (len=15) "closed_channels",
+ kind: (string) (len=13) "ClosedChannel",
+ isMap: (bool) false,
+ isArray: (bool) true,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=15) "channel_routing": (*main.Field)(0xc00031fd80)({
+ name: (string) (len=15) "channel_routing",
+ kind: (string) (len=14) "ChannelRouting",
+ isMap: (bool) false,
+ isArray: (bool) true,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=7) "AuthApp": (*main.Message)(0xc0003fec90)({
+ fullName: (string) (len=7) "AuthApp",
+ name: (string) (len=7) "AuthApp",
+ fields: (map[string]*main.Field) (len=2) {
+ (string) (len=3) "app": (*main.Field)(0xc000462300)({
+ name: (string) (len=3) "app",
+ kind: (string) (len=11) "Application",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=10) "auth_token": (*main.Field)(0xc000462340)({
+ name: (string) (len=10) "auth_token",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=26) "GetAppUserLNURLInfoRequest": (*main.Message)(0xc0003feff0)({
+ fullName: (string) (len=26) "GetAppUserLNURLInfoRequest",
+ name: (string) (len=26) "GetAppUserLNURLInfoRequest",
+ fields: (map[string]*main.Field) (len=2) {
+ (string) (len=15) "user_identifier": (*main.Field)(0xc000462900)({
+ name: (string) (len=15) "user_identifier",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=17) "base_url_override": (*main.Field)(0xc000462940)({
+ name: (string) (len=17) "base_url_override",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=8) "UserInfo": (*main.Message)(0xc0003ff710)({
+ fullName: (string) (len=8) "UserInfo",
+ name: (string) (len=8) "UserInfo",
+ fields: (map[string]*main.Field) (len=7) {
+ (string) (len=6) "userId": (*main.Field)(0xc000463580)({
+ name: (string) (len=6) "userId",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=7) "balance": (*main.Field)(0xc0004635c0)({
+ name: (string) (len=7) "balance",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=16) "max_withdrawable": (*main.Field)(0xc000463600)({
+ name: (string) (len=16) "max_withdrawable",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=15) "user_identifier": (*main.Field)(0xc000463640)({
+ name: (string) (len=15) "user_identifier",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=15) "service_fee_bps": (*main.Field)(0xc000463680)({
+ name: (string) (len=15) "service_fee_bps",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=19) "network_max_fee_bps": (*main.Field)(0xc0004636c0)({
+ name: (string) (len=19) "network_max_fee_bps",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=21) "network_max_fee_fixed": (*main.Field)(0xc000463700)({
+ name: (string) (len=21) "network_max_fee_fixed",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=13) "UserOperation": (*main.Message)(0xc0003ff7d0)({
+ fullName: (string) (len=13) "UserOperation",
+ name: (string) (len=13) "UserOperation",
+ fields: (map[string]*main.Field) (len=11) {
+ (string) (len=7) "inbound": (*main.Field)(0xc000463980)({
+ name: (string) (len=7) "inbound",
+ kind: (string) (len=4) "bool",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=6) "amount": (*main.Field)(0xc0004639c0)({
+ name: (string) (len=6) "amount",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=10) "identifier": (*main.Field)(0xc000463a00)({
+ name: (string) (len=10) "identifier",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=11) "operationId": (*main.Field)(0xc000463a40)({
+ name: (string) (len=11) "operationId",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=11) "network_fee": (*main.Field)(0xc000463ac0)({
+ name: (string) (len=11) "network_fee",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=4) "type": (*main.Field)(0xc000463940)({
+ name: (string) (len=4) "type",
+ kind: (string) (len=17) "UserOperationType",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) true,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=11) "service_fee": (*main.Field)(0xc000463a80)({
+ name: (string) (len=11) "service_fee",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=9) "confirmed": (*main.Field)(0xc000463b00)({
+ name: (string) (len=9) "confirmed",
+ kind: (string) (len=4) "bool",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=7) "tx_hash": (*main.Field)(0xc000463b40)({
+ name: (string) (len=7) "tx_hash",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=8) "internal": (*main.Field)(0xc000463b80)({
+ name: (string) (len=8) "internal",
+ kind: (string) (len=4) "bool",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=10) "paidAtUnix": (*main.Field)(0xc000463900)({
+ name: (string) (len=10) "paidAtUnix",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=5) "Empty": (*main.Message)(0xc0003fe2d0)({
fullName: (string) (len=5) "Empty",
name: (string) (len=5) "Empty",
- fields: ([]*main.Field)
+ fields: (map[string]*main.Field) {
+ }
}),
- (string) (len=19) "ChannelBalanceEvent": (*main.Message)(0xc000460900)({
- fullName: (string) (len=19) "ChannelBalanceEvent",
- name: (string) (len=19) "ChannelBalanceEvent",
- fields: ([]*main.Field) (len=4 cap=4) {
- (*main.Field)(0xc0003d3560)({
+ (string) (len=17) "LndMetricsRequest": (*main.Message)(0xc0003fe5d0)({
+ fullName: (string) (len=17) "LndMetricsRequest",
+ name: (string) (len=17) "LndMetricsRequest",
+ fields: (map[string]*main.Field) (len=2) {
+ (string) (len=9) "from_unix": (*main.Field)(0xc00031f140)({
+ name: (string) (len=9) "from_unix",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) true,
+ oneOfName: (string) ""
+ }),
+ (string) (len=7) "to_unix": (*main.Field)(0xc00031f180)({
+ name: (string) (len=7) "to_unix",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) true,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=18) "LndGetInfoResponse": (*main.Message)(0xc0003fe9f0)({
+ fullName: (string) (len=18) "LndGetInfoResponse",
+ name: (string) (len=18) "LndGetInfoResponse",
+ fields: (map[string]*main.Field) (len=1) {
+ (string) (len=5) "alias": (*main.Field)(0xc00031fec0)({
+ name: (string) (len=5) "alias",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=24) "PayAppUserInvoiceRequest": (*main.Message)(0xc0003feed0)({
+ fullName: (string) (len=24) "PayAppUserInvoiceRequest",
+ name: (string) (len=24) "PayAppUserInvoiceRequest",
+ fields: (map[string]*main.Field) (len=3) {
+ (string) (len=15) "user_identifier": (*main.Field)(0xc000462700)({
+ name: (string) (len=15) "user_identifier",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=7) "invoice": (*main.Field)(0xc000462740)({
+ name: (string) (len=7) "invoice",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=6) "amount": (*main.Field)(0xc000462780)({
+ name: (string) (len=6) "amount",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=7) "Product": (*main.Message)(0xc0003ff950)({
+ fullName: (string) (len=7) "Product",
+ name: (string) (len=7) "Product",
+ fields: (map[string]*main.Field) (len=3) {
+ (string) (len=4) "name": (*main.Field)(0xc000463ec0)({
+ name: (string) (len=4) "name",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=10) "price_sats": (*main.Field)(0xc000463f00)({
+ name: (string) (len=10) "price_sats",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=2) "id": (*main.Field)(0xc000463e80)({
+ name: (string) (len=2) "id",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=17) "LndGetInfoRequest": (*main.Message)(0xc0003fe930)({
+ fullName: (string) (len=17) "LndGetInfoRequest",
+ name: (string) (len=17) "LndGetInfoRequest",
+ fields: (map[string]*main.Field) (len=1) {
+ (string) (len=6) "nodeId": (*main.Field)(0xc00031fe00)({
+ name: (string) (len=6) "nodeId",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=15) "BanUserResponse": (*main.Message)(0xc0003feb10)({
+ fullName: (string) (len=15) "BanUserResponse",
+ name: (string) (len=15) "BanUserResponse",
+ fields: (map[string]*main.Field) (len=2) {
+ (string) (len=12) "balance_sats": (*main.Field)(0xc000462080)({
+ name: (string) (len=12) "balance_sats",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=16) "banned_app_users": (*main.Field)(0xc0004620c0)({
+ name: (string) (len=16) "banned_app_users",
+ kind: (string) (len=13) "BannedAppUser",
+ isMap: (bool) false,
+ isArray: (bool) true,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=14) "AuthAppRequest": (*main.Message)(0xc0003febd0)({
+ fullName: (string) (len=14) "AuthAppRequest",
+ name: (string) (len=14) "AuthAppRequest",
+ fields: (map[string]*main.Field) (len=2) {
+ (string) (len=4) "name": (*main.Field)(0xc000462180)({
+ name: (string) (len=4) "name",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=19) "allow_user_creation": (*main.Field)(0xc0004621c0)({
+ name: (string) (len=19) "allow_user_creation",
+ kind: (string) (len=4) "bool",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) true,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=17) "PayAddressRequest": (*main.Message)(0xc0003ff1d0)({
+ fullName: (string) (len=17) "PayAddressRequest",
+ name: (string) (len=17) "PayAddressRequest",
+ fields: (map[string]*main.Field) (len=3) {
+ (string) (len=7) "address": (*main.Field)(0xc000462ac0)({
+ name: (string) (len=7) "address",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=9) "amoutSats": (*main.Field)(0xc000462b00)({
+ name: (string) (len=9) "amoutSats",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=12) "satsPerVByte": (*main.Field)(0xc000462b40)({
+ name: (string) (len=12) "satsPerVByte",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=18) "AppsMetricsRequest": (*main.Message)(0xc0003fe450)({
+ fullName: (string) (len=18) "AppsMetricsRequest",
+ name: (string) (len=18) "AppsMetricsRequest",
+ fields: (map[string]*main.Field) (len=3) {
+ (string) (len=18) "include_operations": (*main.Field)(0xc00031ed00)({
+ name: (string) (len=18) "include_operations",
+ kind: (string) (len=4) "bool",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) true,
+ oneOfName: (string) ""
+ }),
+ (string) (len=9) "from_unix": (*main.Field)(0xc00031ec80)({
+ name: (string) (len=9) "from_unix",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) true,
+ oneOfName: (string) ""
+ }),
+ (string) (len=7) "to_unix": (*main.Field)(0xc00031ecc0)({
+ name: (string) (len=7) "to_unix",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) true,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=11) "AppsMetrics": (*main.Message)(0xc0003fe570)({
+ fullName: (string) (len=11) "AppsMetrics",
+ name: (string) (len=11) "AppsMetrics",
+ fields: (map[string]*main.Field) (len=1) {
+ (string) (len=4) "apps": (*main.Field)(0xc00031f100)({
+ name: (string) (len=4) "apps",
+ kind: (string) (len=10) "AppMetrics",
+ isMap: (bool) false,
+ isArray: (bool) true,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=12) "RoutingEvent": (*main.Message)(0xc0003fe630)({
+ fullName: (string) (len=12) "RoutingEvent",
+ name: (string) (len=12) "RoutingEvent",
+ fields: (map[string]*main.Field) (len=12) {
+ (string) (len=17) "incoming_amt_msat": (*main.Field)(0xc00031f340)({
+ name: (string) (len=17) "incoming_amt_msat",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=17) "outgoing_amt_msat": (*main.Field)(0xc00031f380)({
+ name: (string) (len=17) "outgoing_amt_msat",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=14) "failure_string": (*main.Field)(0xc00031f3c0)({
+ name: (string) (len=14) "failure_string",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=19) "incoming_channel_id": (*main.Field)(0xc00031f1c0)({
+ name: (string) (len=19) "incoming_channel_id",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=16) "incoming_htlc_id": (*main.Field)(0xc00031f200)({
+ name: (string) (len=16) "incoming_htlc_id",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=19) "outgoing_channel_id": (*main.Field)(0xc00031f240)({
+ name: (string) (len=19) "outgoing_channel_id",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=16) "outgoing_htlc_id": (*main.Field)(0xc00031f280)({
+ name: (string) (len=16) "outgoing_htlc_id",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=12) "timestamp_ns": (*main.Field)(0xc00031f2c0)({
+ name: (string) (len=12) "timestamp_ns",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=10) "event_type": (*main.Field)(0xc00031f300)({
+ name: (string) (len=10) "event_type",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=7) "settled": (*main.Field)(0xc00031f400)({
+ name: (string) (len=7) "settled",
+ kind: (string) (len=4) "bool",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=8) "offchain": (*main.Field)(0xc00031f440)({
+ name: (string) (len=8) "offchain",
+ kind: (string) (len=4) "bool",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=18) "forward_fail_event": (*main.Field)(0xc00031f480)({
+ name: (string) (len=18) "forward_fail_event",
+ kind: (string) (len=4) "bool",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=13) "BannedAppUser": (*main.Message)(0xc0003feab0)({
+ fullName: (string) (len=13) "BannedAppUser",
+ name: (string) (len=13) "BannedAppUser",
+ fields: (map[string]*main.Field) (len=4) {
+ (string) (len=6) "app_id": (*main.Field)(0xc00031ff80)({
+ name: (string) (len=6) "app_id",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=15) "user_identifier": (*main.Field)(0xc00031ffc0)({
+ name: (string) (len=15) "user_identifier",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=9) "nostr_pub": (*main.Field)(0xc000462040)({
+ name: (string) (len=9) "nostr_pub",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=8) "app_name": (*main.Field)(0xc00031ff40)({
+ name: (string) (len=8) "app_name",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=25) "GetUserOperationsResponse": (*main.Message)(0xc0003ff890)({
+ fullName: (string) (len=25) "GetUserOperationsResponse",
+ name: (string) (len=25) "GetUserOperationsResponse",
+ fields: (map[string]*main.Field) (len=6) {
+ (string) (len=26) "latestIncomingTxOperations": (*main.Field)(0xc000463d40)({
+ name: (string) (len=26) "latestIncomingTxOperations",
+ kind: (string) (len=14) "UserOperations",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=32) "latestOutgoingUserToUserPayemnts": (*main.Field)(0xc000463d80)({
+ name: (string) (len=32) "latestOutgoingUserToUserPayemnts",
+ kind: (string) (len=14) "UserOperations",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=32) "latestIncomingUserToUserPayemnts": (*main.Field)(0xc000463dc0)({
+ name: (string) (len=32) "latestIncomingUserToUserPayemnts",
+ kind: (string) (len=14) "UserOperations",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=31) "latestOutgoingInvoiceOperations": (*main.Field)(0xc000463c80)({
+ name: (string) (len=31) "latestOutgoingInvoiceOperations",
+ kind: (string) (len=14) "UserOperations",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=31) "latestIncomingInvoiceOperations": (*main.Field)(0xc000463cc0)({
+ name: (string) (len=31) "latestIncomingInvoiceOperations",
+ kind: (string) (len=14) "UserOperations",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=26) "latestOutgoingTxOperations": (*main.Field)(0xc000463d00)({
+ name: (string) (len=26) "latestOutgoingTxOperations",
+ kind: (string) (len=14) "UserOperations",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=31) "RequestNPubLinkingTokenResponse": (*main.Message)(0xc0003ffbf0)({
+ fullName: (string) (len=31) "RequestNPubLinkingTokenResponse",
+ name: (string) (len=31) "RequestNPubLinkingTokenResponse",
+ fields: (map[string]*main.Field) (len=1) {
+ (string) (len=5) "token": (*main.Field)(0xc0000b03c0)({
+ name: (string) (len=5) "token",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=11) "UsageMetric": (*main.Message)(0xc0003fe390)({
+ fullName: (string) (len=11) "UsageMetric",
+ name: (string) (len=11) "UsageMetric",
+ fields: (map[string]*main.Field) (len=9) {
+ (string) (len=14) "parsed_in_nano": (*main.Field)(0xc00031e640)({
+ name: (string) (len=14) "parsed_in_nano",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=16) "validate_in_nano": (*main.Field)(0xc00031e8c0)({
+ name: (string) (len=16) "validate_in_nano",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=14) "handle_in_nano": (*main.Field)(0xc00031e900)({
+ name: (string) (len=14) "handle_in_nano",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=5) "batch": (*main.Field)(0xc00031e9c0)({
+ name: (string) (len=5) "batch",
+ kind: (string) (len=4) "bool",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=10) "batch_size": (*main.Field)(0xc00031ea80)({
+ name: (string) (len=10) "batch_size",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=15) "processed_at_ms": (*main.Field)(0xc00031e5c0)({
+ name: (string) (len=15) "processed_at_ms",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=12) "auth_in_nano": (*main.Field)(0xc00031e680)({
+ name: (string) (len=12) "auth_in_nano",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=8) "rpc_name": (*main.Field)(0xc00031e980)({
+ name: (string) (len=8) "rpc_name",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=5) "nostr": (*main.Field)(0xc00031ea40)({
+ name: (string) (len=5) "nostr",
+ kind: (string) (len=4) "bool",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=17) "NewInvoiceRequest": (*main.Message)(0xc0003ff290)({
+ fullName: (string) (len=17) "NewInvoiceRequest",
+ name: (string) (len=17) "NewInvoiceRequest",
+ fields: (map[string]*main.Field) (len=2) {
+ (string) (len=10) "amountSats": (*main.Field)(0xc000462c80)({
+ name: (string) (len=10) "amountSats",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=4) "memo": (*main.Field)(0xc000462cc0)({
+ name: (string) (len=4) "memo",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=18) "OpenChannelRequest": (*main.Message)(0xc0003ff4d0)({
+ fullName: (string) (len=18) "OpenChannelRequest",
+ name: (string) (len=18) "OpenChannelRequest",
+ fields: (map[string]*main.Field) (len=4) {
+ (string) (len=10) "pushAmount": (*main.Field)(0xc000463000)({
+ name: (string) (len=10) "pushAmount",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=12) "closeAddress": (*main.Field)(0xc000463040)({
+ name: (string) (len=12) "closeAddress",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=11) "destination": (*main.Field)(0xc000462f80)({
+ name: (string) (len=11) "destination",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=13) "fundingAmount": (*main.Field)(0xc000462fc0)({
+ name: (string) (len=13) "fundingAmount",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=17) "ChainBalanceEvent": (*main.Message)(0xc0003fe6f0)({
+ fullName: (string) (len=17) "ChainBalanceEvent",
+ name: (string) (len=17) "ChainBalanceEvent",
+ fields: (map[string]*main.Field) (len=4) {
+ (string) (len=19) "unconfirmed_balance": (*main.Field)(0xc00031f640)({
+ name: (string) (len=19) "unconfirmed_balance",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=13) "total_balance": (*main.Field)(0xc00031f680)({
+ name: (string) (len=13) "total_balance",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=12) "block_height": (*main.Field)(0xc00031f5c0)({
name: (string) (len=12) "block_height",
kind: (string) (len=5) "int64",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
}),
- (*main.Field)(0xc0003d3590)({
+ (string) (len=17) "confirmed_balance": (*main.Field)(0xc00031f600)({
+ name: (string) (len=17) "confirmed_balance",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=17) "GetAppUserRequest": (*main.Message)(0xc0003fee70)({
+ fullName: (string) (len=17) "GetAppUserRequest",
+ name: (string) (len=17) "GetAppUserRequest",
+ fields: (map[string]*main.Field) (len=1) {
+ (string) (len=15) "user_identifier": (*main.Field)(0xc0004626c0)({
+ name: (string) (len=15) "user_identifier",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=18) "NewAddressResponse": (*main.Message)(0xc0003ff170)({
+ fullName: (string) (len=18) "NewAddressResponse",
+ name: (string) (len=18) "NewAddressResponse",
+ fields: (map[string]*main.Field) (len=1) {
+ (string) (len=7) "address": (*main.Field)(0xc000462a80)({
+ name: (string) (len=7) "address",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=18) "PayInvoiceResponse": (*main.Message)(0xc0003ff470)({
+ fullName: (string) (len=18) "PayInvoiceResponse",
+ name: (string) (len=18) "PayInvoiceResponse",
+ fields: (map[string]*main.Field) (len=5) {
+ (string) (len=8) "preimage": (*main.Field)(0xc000462e40)({
+ name: (string) (len=8) "preimage",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=11) "amount_paid": (*main.Field)(0xc000462e80)({
+ name: (string) (len=11) "amount_paid",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=12) "operation_id": (*main.Field)(0xc000462ec0)({
+ name: (string) (len=12) "operation_id",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=11) "service_fee": (*main.Field)(0xc000462f00)({
+ name: (string) (len=11) "service_fee",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=11) "network_fee": (*main.Field)(0xc000462f40)({
+ name: (string) (len=11) "network_fee",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=17) "AddProductRequest": (*main.Message)(0xc0003ff8f0)({
+ fullName: (string) (len=17) "AddProductRequest",
+ name: (string) (len=17) "AddProductRequest",
+ fields: (map[string]*main.Field) (len=2) {
+ (string) (len=4) "name": (*main.Field)(0xc000463e00)({
+ name: (string) (len=4) "name",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=10) "price_sats": (*main.Field)(0xc000463e40)({
+ name: (string) (len=10) "price_sats",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=25) "EncryptionExchangeRequest": (*main.Message)(0xc0003fe330)({
+ fullName: (string) (len=25) "EncryptionExchangeRequest",
+ name: (string) (len=25) "EncryptionExchangeRequest",
+ fields: (map[string]*main.Field) (len=2) {
+ (string) (len=9) "publicKey": (*main.Field)(0xc00031e300)({
+ name: (string) (len=9) "publicKey",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=8) "deviceId": (*main.Field)(0xc00031e400)({
+ name: (string) (len=8) "deviceId",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=9) "UsersInfo": (*main.Message)(0xc0003fe4b0)({
+ fullName: (string) (len=9) "UsersInfo",
+ name: (string) (len=9) "UsersInfo",
+ fields: (map[string]*main.Field) (len=6) {
+ (string) (len=10) "no_balance": (*main.Field)(0xc00031ed80)({
+ name: (string) (len=10) "no_balance",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=16) "negative_balance": (*main.Field)(0xc00031edc0)({
+ name: (string) (len=16) "negative_balance",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=20) "always_been_inactive": (*main.Field)(0xc00031ee00)({
+ name: (string) (len=20) "always_been_inactive",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=11) "balance_avg": (*main.Field)(0xc00031ee40)({
+ name: (string) (len=11) "balance_avg",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=14) "balance_median": (*main.Field)(0xc00031ee80)({
+ name: (string) (len=14) "balance_median",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=5) "total": (*main.Field)(0xc00031ed40)({
+ name: (string) (len=5) "total",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=19) "ChannelBalanceEvent": (*main.Message)(0xc0003fe690)({
+ fullName: (string) (len=19) "ChannelBalanceEvent",
+ name: (string) (len=19) "ChannelBalanceEvent",
+ fields: (map[string]*main.Field) (len=4) {
+ (string) (len=12) "block_height": (*main.Field)(0xc00031f4c0)({
+ name: (string) (len=12) "block_height",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=10) "channel_id": (*main.Field)(0xc00031f500)({
name: (string) (len=10) "channel_id",
kind: (string) (len=6) "string",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
}),
- (*main.Field)(0xc0003d35c0)({
+ (string) (len=18) "local_balance_sats": (*main.Field)(0xc00031f540)({
name: (string) (len=18) "local_balance_sats",
kind: (string) (len=5) "int64",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
}),
- (*main.Field)(0xc0003d35f0)({
+ (string) (len=19) "remote_balance_sats": (*main.Field)(0xc00031f580)({
name: (string) (len=19) "remote_balance_sats",
kind: (string) (len=5) "int64",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=14) "ChannelRouting": (*main.Message)(0xc0003fe810)({
+ fullName: (string) (len=14) "ChannelRouting",
+ name: (string) (len=14) "ChannelRouting",
+ fields: (map[string]*main.Field) (len=10) {
+ (string) (len=21) "forward_fee_as_output": (*main.Field)(0xc00031fb00)({
+ name: (string) (len=21) "forward_fee_as_output",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=11) "send_errors": (*main.Field)(0xc00031f940)({
+ name: (string) (len=11) "send_errors",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=23) "forward_errors_as_input": (*main.Field)(0xc00031f9c0)({
+ name: (string) (len=23) "forward_errors_as_input",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=27) "missed_forward_fee_as_input": (*main.Field)(0xc00031fa40)({
+ name: (string) (len=27) "missed_forward_fee_as_input",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=20) "forward_fee_as_input": (*main.Field)(0xc00031fac0)({
+ name: (string) (len=20) "forward_fee_as_input",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=13) "events_number": (*main.Field)(0xc00031fb40)({
+ name: (string) (len=13) "events_number",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=10) "channel_id": (*main.Field)(0xc00031f900)({
+ name: (string) (len=10) "channel_id",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=14) "receive_errors": (*main.Field)(0xc00031f980)({
+ name: (string) (len=14) "receive_errors",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=24) "forward_errors_as_output": (*main.Field)(0xc00031fa00)({
+ name: (string) (len=24) "forward_errors_as_output",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=28) "missed_forward_fee_as_output": (*main.Field)(0xc00031fa80)({
+ name: (string) (len=28) "missed_forward_fee_as_output",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=30) "SendAppUserToAppPaymentRequest": (*main.Message)(0xc0003fef90)({
+ fullName: (string) (len=30) "SendAppUserToAppPaymentRequest",
+ name: (string) (len=30) "SendAppUserToAppPaymentRequest",
+ fields: (map[string]*main.Field) (len=2) {
+ (string) (len=20) "from_user_identifier": (*main.Field)(0xc000462880)({
+ name: (string) (len=20) "from_user_identifier",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=6) "amount": (*main.Field)(0xc0004628c0)({
+ name: (string) (len=6) "amount",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=24) "SetMockAppBalanceRequest": (*main.Message)(0xc0003ff0b0)({
+ fullName: (string) (len=24) "SetMockAppBalanceRequest",
+ name: (string) (len=24) "SetMockAppBalanceRequest",
+ fields: (map[string]*main.Field) (len=1) {
+ (string) (len=6) "amount": (*main.Field)(0xc000462a00)({
+ name: (string) (len=6) "amount",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=15) "MigrationUpdate": (*main.Message)(0xc0003ffa70)({
+ fullName: (string) (len=15) "MigrationUpdate",
+ name: (string) (len=15) "MigrationUpdate",
+ fields: (map[string]*main.Field) (len=2) {
+ (string) (len=7) "closure": (*main.Field)(0xc000463fc0)({
+ name: (string) (len=7) "closure",
+ kind: (string) (len=16) "ClosureMigration",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) true,
+ oneOfName: (string) ""
+ }),
+ (string) (len=6) "relays": (*main.Field)(0xc0000b0000)({
+ name: (string) (len=6) "relays",
+ kind: (string) (len=15) "RelaysMigration",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) true,
+ isOptional: (bool) true,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=16) "ClosureMigration": (*main.Message)(0xc0003ffad0)({
+ fullName: (string) (len=16) "ClosureMigration",
+ name: (string) (len=16) "ClosureMigration",
+ fields: (map[string]*main.Field) (len=1) {
+ (string) (len=14) "closes_at_unix": (*main.Field)(0xc0000b0040)({
+ name: (string) (len=14) "closes_at_unix",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=13) "ClosedChannel": (*main.Message)(0xc0003fe7b0)({
+ fullName: (string) (len=13) "ClosedChannel",
+ name: (string) (len=13) "ClosedChannel",
+ fields: (map[string]*main.Field) (len=3) {
+ (string) (len=10) "channel_id": (*main.Field)(0xc00031f840)({
+ name: (string) (len=10) "channel_id",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=8) "capacity": (*main.Field)(0xc00031f880)({
+ name: (string) (len=8) "capacity",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=13) "closed_height": (*main.Field)(0xc00031f8c0)({
+ name: (string) (len=13) "closed_height",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=11) "Application": (*main.Message)(0xc0003fec30)({
+ fullName: (string) (len=11) "Application",
+ name: (string) (len=11) "Application",
+ fields: (map[string]*main.Field) (len=4) {
+ (string) (len=4) "name": (*main.Field)(0xc000462200)({
+ name: (string) (len=4) "name",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=2) "id": (*main.Field)(0xc000462240)({
+ name: (string) (len=2) "id",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=7) "balance": (*main.Field)(0xc000462280)({
+ name: (string) (len=7) "balance",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=4) "npub": (*main.Field)(0xc0004622c0)({
+ name: (string) (len=4) "npub",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=17) "AddAppUserRequest": (*main.Message)(0xc0003fecf0)({
+ fullName: (string) (len=17) "AddAppUserRequest",
+ name: (string) (len=17) "AddAppUserRequest",
+ fields: (map[string]*main.Field) (len=3) {
+ (string) (len=10) "identifier": (*main.Field)(0xc000462380)({
+ name: (string) (len=10) "identifier",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=14) "fail_if_exists": (*main.Field)(0xc0004623c0)({
+ name: (string) (len=14) "fail_if_exists",
+ kind: (string) (len=4) "bool",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=7) "balance": (*main.Field)(0xc000462400)({
+ name: (string) (len=7) "balance",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=28) "SetMockAppUserBalanceRequest": (*main.Message)(0xc0003ff050)({
+ fullName: (string) (len=28) "SetMockAppUserBalanceRequest",
+ name: (string) (len=28) "SetMockAppUserBalanceRequest",
+ fields: (map[string]*main.Field) (len=2) {
+ (string) (len=15) "user_identifier": (*main.Field)(0xc000462980)({
+ name: (string) (len=15) "user_identifier",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=6) "amount": (*main.Field)(0xc0004629c0)({
+ name: (string) (len=6) "amount",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=18) "PayAddressResponse": (*main.Message)(0xc0003ff230)({
+ fullName: (string) (len=18) "PayAddressResponse",
+ name: (string) (len=18) "PayAddressResponse",
+ fields: (map[string]*main.Field) (len=4) {
+ (string) (len=4) "txId": (*main.Field)(0xc000462b80)({
+ name: (string) (len=4) "txId",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=12) "operation_id": (*main.Field)(0xc000462bc0)({
+ name: (string) (len=12) "operation_id",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=11) "service_fee": (*main.Field)(0xc000462c00)({
+ name: (string) (len=11) "service_fee",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=11) "network_fee": (*main.Field)(0xc000462c40)({
+ name: (string) (len=11) "network_fee",
+ kind: (string) (len=5) "int64",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=18) "NewInvoiceResponse": (*main.Message)(0xc0003ff2f0)({
+ fullName: (string) (len=18) "NewInvoiceResponse",
+ name: (string) (len=18) "NewInvoiceResponse",
+ fields: (map[string]*main.Field) (len=1) {
+ (string) (len=7) "invoice": (*main.Field)(0xc000462d00)({
+ name: (string) (len=7) "invoice",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=9) "HttpCreds": (*main.Message)(0xc0003ffcb0)({
+ fullName: (string) (len=9) "HttpCreds",
+ name: (string) (len=9) "HttpCreds",
+ fields: (map[string]*main.Field) (len=2) {
+ (string) (len=3) "url": (*main.Field)(0xc0000b06c0)({
+ name: (string) (len=3) "url",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=5) "token": (*main.Field)(0xc0000b0700)({
+ name: (string) (len=5) "token",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
})
}
})
}
-parsing file: structs 70
+(map[string][]*main.Field) {
+}
+
+parsing file: structs 71
parsing file: methods 2
-> [{guest Guest map[]} {user User map[app_id:string app_user_id:string user_id:string]} {admin Admin map[admin_id:string]} {metrics Metrics map[operator_id:string]} {app App map[app_id:string]}]
+([]interface {})
+
diff --git a/proto/autogenerated/ts/express_server.ts b/proto/autogenerated/ts/express_server.ts
index 908c1ed2..f041058a 100644
--- a/proto/autogenerated/ts/express_server.ts
+++ b/proto/autogenerated/ts/express_server.ts
@@ -364,6 +364,28 @@ export default (methods: Types.ServerMethods, opts: ServerOptions) => {
opts.metricsCallback([{ ...info, ...stats, ...authContext }])
} catch (ex) { const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger, { ...info, ...stats, ...authCtx }, opts.metricsCallback); if (opts.throwErrors) throw e }
})
+ if (!opts.allowNotImplementedMethods && !methods.EnrollAdminToken) throw new Error('method: EnrollAdminToken is not implemented')
+ app.post('/api/guest/npub/enroll/admin', async (req, res) => {
+ const info: Types.RequestInfo = { rpcName: 'EnrollAdminToken', batch: false, nostr: false, batchSize: 0}
+ const stats: Types.RequestStats = { startMs:req.startTimeMs || 0, start:req.startTime || 0n, parse: process.hrtime.bigint(), guard: 0n, validate: 0n, handle: 0n }
+ let authCtx: Types.AuthContext = {}
+ try {
+ if (!methods.EnrollAdminToken) throw new Error('method: EnrollAdminToken is not implemented')
+ const authContext = await opts.UserAuthGuard(req.headers['authorization'])
+ authCtx = authContext
+ stats.guard = process.hrtime.bigint()
+ const request = req.body
+ const error = Types.EnrollAdminTokenRequestValidate(request)
+ stats.validate = process.hrtime.bigint()
+ if (error !== null) return logErrorAndReturnResponse(error, 'invalid request body', res, logger, { ...info, ...stats, ...authContext }, opts.metricsCallback)
+ const query = req.query
+ const params = req.params
+ await methods.EnrollAdminToken({rpcName:'EnrollAdminToken', ctx:authContext , req: request})
+ stats.handle = process.hrtime.bigint()
+ res.json({status: 'OK'})
+ opts.metricsCallback([{ ...info, ...stats, ...authContext }])
+ } catch (ex) { const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger, { ...info, ...stats, ...authCtx }, opts.metricsCallback); if (opts.throwErrors) throw e }
+ })
if (!opts.allowNotImplementedMethods && !methods.GetApp) throw new Error('method: GetApp is not implemented')
app.post('/api/app/get', async (req, res) => {
const info: Types.RequestInfo = { rpcName: 'GetApp', batch: false, nostr: false, batchSize: 0}
@@ -948,6 +970,18 @@ export default (methods: Types.ServerMethods, opts: ServerOptions) => {
callsMetrics.push({ ...opInfo, ...opStats, ...ctx })
}
break
+ case 'EnrollAdminToken':
+ if (!methods.EnrollAdminToken) {
+ throw new Error('method EnrollAdminToken not found' )
+ } else {
+ const error = Types.EnrollAdminTokenRequestValidate(operation.req)
+ opStats.validate = process.hrtime.bigint()
+ if (error !== null) throw error
+ await methods.EnrollAdminToken({...operation, ctx}); responses.push({ status: 'OK' })
+ opStats.handle = process.hrtime.bigint()
+ callsMetrics.push({ ...opInfo, ...opStats, ...ctx })
+ }
+ break
case 'UserHealth':
if (!methods.UserHealth) {
throw new Error('method UserHealth not found' )
@@ -1121,6 +1155,6 @@ export default (methods: Types.ServerMethods, opts: ServerOptions) => {
var server: { close: () => void } | undefined
return {
Close: () => { if (!server) { throw new Error('tried closing server before starting') } else server.close() },
- Listen: (port: number) => { server = app.listen(port, () => logger.log('Example app listening on port ' + port)) }
+ Listen: (port: number) => { server = app.listen(port, () => logger.log('LightningPub listening on port ' + port)) }
}
}
diff --git a/proto/autogenerated/ts/http_client.ts b/proto/autogenerated/ts/http_client.ts
index cdaec8d5..1865e08a 100644
--- a/proto/autogenerated/ts/http_client.ts
+++ b/proto/autogenerated/ts/http_client.ts
@@ -234,6 +234,17 @@ export default (params: ClientParams) => ({
}
return { status: 'ERROR', reason: 'invalid response' }
},
+ EnrollAdminToken: async (request: Types.EnrollAdminTokenRequest): Promise => {
+ const auth = await params.retrieveUserAuth()
+ if (auth === null) throw new Error('retrieveUserAuth() returned null')
+ let finalRoute = '/api/guest/npub/enroll/admin'
+ const { data } = await axios.post(params.baseUrl + finalRoute, request, { headers: { 'authorization': auth } })
+ if (data.status === 'ERROR' && typeof data.reason === 'string') return data
+ if (data.status === 'OK') {
+ return data
+ }
+ return { status: 'ERROR', reason: 'invalid response' }
+ },
GetApp: async (): Promise => {
const auth = await params.retrieveAppAuth()
if (auth === null) throw new Error('retrieveAppAuth() returned null')
diff --git a/proto/autogenerated/ts/nostr_client.ts b/proto/autogenerated/ts/nostr_client.ts
index 2c07d5ae..ba7ec6b5 100644
--- a/proto/autogenerated/ts/nostr_client.ts
+++ b/proto/autogenerated/ts/nostr_client.ts
@@ -5,10 +5,116 @@ export type ResultError = { status: 'ERROR', reason: string }
export type NostrClientParams = {
pubDestination: string
+ retrieveNostrAdminAuth: () => Promise
+ retrieveNostrMetricsAuth: () => Promise
retrieveNostrUserAuth: () => Promise
checkResult?: true
}
export default (params: NostrClientParams, send: (to:string, message: NostrRequest) => Promise, subscribe: (to:string, message: NostrRequest, cb:(res:any)=> void) => void) => ({
+ LndGetInfo: async (request: Types.LndGetInfoRequest): Promise => {
+ const auth = await params.retrieveNostrAdminAuth()
+ if (auth === null) throw new Error('retrieveNostrAdminAuth() returned null')
+ const nostrRequest: NostrRequest = {}
+ nostrRequest.body = request
+ const data = await send(params.pubDestination, {rpcName:'LndGetInfo',authIdentifier:auth, ...nostrRequest })
+ if (data.status === 'ERROR' && typeof data.reason === 'string') return data
+ if (data.status === 'OK') {
+ const result = data
+ if(!params.checkResult) return { status: 'OK', ...result }
+ const error = Types.LndGetInfoResponseValidate(result)
+ if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message }
+ }
+ return { status: 'ERROR', reason: 'invalid response' }
+ },
+ AddApp: async (request: Types.AddAppRequest): Promise => {
+ const auth = await params.retrieveNostrAdminAuth()
+ if (auth === null) throw new Error('retrieveNostrAdminAuth() returned null')
+ const nostrRequest: NostrRequest = {}
+ nostrRequest.body = request
+ const data = await send(params.pubDestination, {rpcName:'AddApp',authIdentifier:auth, ...nostrRequest })
+ if (data.status === 'ERROR' && typeof data.reason === 'string') return data
+ if (data.status === 'OK') {
+ const result = data
+ if(!params.checkResult) return { status: 'OK', ...result }
+ const error = Types.AuthAppValidate(result)
+ if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message }
+ }
+ return { status: 'ERROR', reason: 'invalid response' }
+ },
+ AuthApp: async (request: Types.AuthAppRequest): Promise => {
+ const auth = await params.retrieveNostrAdminAuth()
+ if (auth === null) throw new Error('retrieveNostrAdminAuth() returned null')
+ const nostrRequest: NostrRequest = {}
+ nostrRequest.body = request
+ const data = await send(params.pubDestination, {rpcName:'AuthApp',authIdentifier:auth, ...nostrRequest })
+ if (data.status === 'ERROR' && typeof data.reason === 'string') return data
+ if (data.status === 'OK') {
+ const result = data
+ if(!params.checkResult) return { status: 'OK', ...result }
+ const error = Types.AuthAppValidate(result)
+ if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message }
+ }
+ return { status: 'ERROR', reason: 'invalid response' }
+ },
+ BanUser: async (request: Types.BanUserRequest): Promise => {
+ const auth = await params.retrieveNostrAdminAuth()
+ if (auth === null) throw new Error('retrieveNostrAdminAuth() returned null')
+ const nostrRequest: NostrRequest = {}
+ nostrRequest.body = request
+ const data = await send(params.pubDestination, {rpcName:'BanUser',authIdentifier:auth, ...nostrRequest })
+ if (data.status === 'ERROR' && typeof data.reason === 'string') return data
+ if (data.status === 'OK') {
+ const result = data
+ if(!params.checkResult) return { status: 'OK', ...result }
+ const error = Types.BanUserResponseValidate(result)
+ if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message }
+ }
+ return { status: 'ERROR', reason: 'invalid response' }
+ },
+ GetUsageMetrics: async (): Promise => {
+ const auth = await params.retrieveNostrMetricsAuth()
+ if (auth === null) throw new Error('retrieveNostrMetricsAuth() returned null')
+ const nostrRequest: NostrRequest = {}
+ const data = await send(params.pubDestination, {rpcName:'GetUsageMetrics',authIdentifier:auth, ...nostrRequest })
+ if (data.status === 'ERROR' && typeof data.reason === 'string') return data
+ if (data.status === 'OK') {
+ const result = data
+ if(!params.checkResult) return { status: 'OK', ...result }
+ const error = Types.UsageMetricsValidate(result)
+ if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message }
+ }
+ return { status: 'ERROR', reason: 'invalid response' }
+ },
+ GetAppsMetrics: async (request: Types.AppsMetricsRequest): Promise => {
+ const auth = await params.retrieveNostrMetricsAuth()
+ if (auth === null) throw new Error('retrieveNostrMetricsAuth() returned null')
+ const nostrRequest: NostrRequest = {}
+ nostrRequest.body = request
+ const data = await send(params.pubDestination, {rpcName:'GetAppsMetrics',authIdentifier:auth, ...nostrRequest })
+ if (data.status === 'ERROR' && typeof data.reason === 'string') return data
+ if (data.status === 'OK') {
+ const result = data
+ if(!params.checkResult) return { status: 'OK', ...result }
+ const error = Types.AppsMetricsValidate(result)
+ if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message }
+ }
+ return { status: 'ERROR', reason: 'invalid response' }
+ },
+ GetLndMetrics: async (request: Types.LndMetricsRequest): Promise => {
+ const auth = await params.retrieveNostrMetricsAuth()
+ if (auth === null) throw new Error('retrieveNostrMetricsAuth() returned null')
+ const nostrRequest: NostrRequest = {}
+ nostrRequest.body = request
+ const data = await send(params.pubDestination, {rpcName:'GetLndMetrics',authIdentifier:auth, ...nostrRequest })
+ if (data.status === 'ERROR' && typeof data.reason === 'string') return data
+ if (data.status === 'OK') {
+ const result = data
+ if(!params.checkResult) return { status: 'OK', ...result }
+ const error = Types.LndMetricsValidate(result)
+ if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message }
+ }
+ return { status: 'ERROR', reason: 'invalid response' }
+ },
LinkNPubThroughToken: async (request: Types.LinkNPubThroughTokenRequest): Promise => {
const auth = await params.retrieveNostrUserAuth()
if (auth === null) throw new Error('retrieveNostrUserAuth() returned null')
@@ -21,6 +127,18 @@ export default (params: NostrClientParams, send: (to:string, message: NostrRequ
}
return { status: 'ERROR', reason: 'invalid response' }
},
+ EnrollAdminToken: async (request: Types.EnrollAdminTokenRequest): Promise => {
+ const auth = await params.retrieveNostrUserAuth()
+ if (auth === null) throw new Error('retrieveNostrUserAuth() returned null')
+ const nostrRequest: NostrRequest = {}
+ nostrRequest.body = request
+ const data = await send(params.pubDestination, {rpcName:'EnrollAdminToken',authIdentifier:auth, ...nostrRequest })
+ if (data.status === 'ERROR' && typeof data.reason === 'string') return data
+ if (data.status === 'OK') {
+ return data
+ }
+ return { status: 'ERROR', reason: 'invalid response' }
+ },
UserHealth: async (): Promise => {
const auth = await params.retrieveNostrUserAuth()
if (auth === null) throw new Error('retrieveNostrUserAuth() returned null')
diff --git a/proto/autogenerated/ts/nostr_transport.ts b/proto/autogenerated/ts/nostr_transport.ts
index a3267396..c73cd74d 100644
--- a/proto/autogenerated/ts/nostr_transport.ts
+++ b/proto/autogenerated/ts/nostr_transport.ts
@@ -16,6 +16,8 @@ export type NostrOptions = {
logger?: Logger
throwErrors?: true
metricsCallback: (metrics: Types.RequestMetric[]) => void
+ NostrAdminAuthGuard: (appId?:string, identifier?: string) => Promise
+ NostrMetricsAuthGuard: (appId?:string, identifier?: string) => Promise
NostrUserAuthGuard: (appId?:string, identifier?: string) => Promise
}
const logErrorAndReturnResponse = (error: Error, response: string, res: NostrResponse, logger: Logger, metric: Types.RequestMetric, metricsCallback: (metrics: Types.RequestMetric[]) => void) => {
@@ -29,6 +31,115 @@ export default (methods: Types.ServerMethods, opts: NostrOptions) => {
const stats: Types.RequestStats = { startMs, start: startTime, parse: process.hrtime.bigint(), guard: 0n, validate: 0n, handle: 0n }
let authCtx: Types.AuthContext = {}
switch (req.rpcName) {
+ case 'LndGetInfo':
+ try {
+ if (!methods.LndGetInfo) throw new Error('method: LndGetInfo is not implemented')
+ const authContext = await opts.NostrAdminAuthGuard(req.appId, req.authIdentifier)
+ stats.guard = process.hrtime.bigint()
+ authCtx = authContext
+ const request = req.body
+ const error = Types.LndGetInfoRequestValidate(request)
+ stats.validate = process.hrtime.bigint()
+ if (error !== null) return logErrorAndReturnResponse(error, 'invalid request body', res, logger, { ...info, ...stats, ...authCtx }, opts.metricsCallback)
+ const response = await methods.LndGetInfo({rpcName:'LndGetInfo', ctx:authContext , req: request})
+ stats.handle = process.hrtime.bigint()
+ res({status: 'OK', ...response})
+ opts.metricsCallback([{ ...info, ...stats, ...authContext }])
+ }catch(ex){ const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger, { ...info, ...stats, ...authCtx }, opts.metricsCallback); if (opts.throwErrors) throw e }
+ break
+ case 'AddApp':
+ try {
+ if (!methods.AddApp) throw new Error('method: AddApp is not implemented')
+ const authContext = await opts.NostrAdminAuthGuard(req.appId, req.authIdentifier)
+ stats.guard = process.hrtime.bigint()
+ authCtx = authContext
+ const request = req.body
+ const error = Types.AddAppRequestValidate(request)
+ stats.validate = process.hrtime.bigint()
+ if (error !== null) return logErrorAndReturnResponse(error, 'invalid request body', res, logger, { ...info, ...stats, ...authCtx }, opts.metricsCallback)
+ const response = await methods.AddApp({rpcName:'AddApp', ctx:authContext , req: request})
+ stats.handle = process.hrtime.bigint()
+ res({status: 'OK', ...response})
+ opts.metricsCallback([{ ...info, ...stats, ...authContext }])
+ }catch(ex){ const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger, { ...info, ...stats, ...authCtx }, opts.metricsCallback); if (opts.throwErrors) throw e }
+ break
+ case 'AuthApp':
+ try {
+ if (!methods.AuthApp) throw new Error('method: AuthApp is not implemented')
+ const authContext = await opts.NostrAdminAuthGuard(req.appId, req.authIdentifier)
+ stats.guard = process.hrtime.bigint()
+ authCtx = authContext
+ const request = req.body
+ const error = Types.AuthAppRequestValidate(request)
+ stats.validate = process.hrtime.bigint()
+ if (error !== null) return logErrorAndReturnResponse(error, 'invalid request body', res, logger, { ...info, ...stats, ...authCtx }, opts.metricsCallback)
+ const response = await methods.AuthApp({rpcName:'AuthApp', ctx:authContext , req: request})
+ stats.handle = process.hrtime.bigint()
+ res({status: 'OK', ...response})
+ opts.metricsCallback([{ ...info, ...stats, ...authContext }])
+ }catch(ex){ const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger, { ...info, ...stats, ...authCtx }, opts.metricsCallback); if (opts.throwErrors) throw e }
+ break
+ case 'BanUser':
+ try {
+ if (!methods.BanUser) throw new Error('method: BanUser is not implemented')
+ const authContext = await opts.NostrAdminAuthGuard(req.appId, req.authIdentifier)
+ stats.guard = process.hrtime.bigint()
+ authCtx = authContext
+ const request = req.body
+ const error = Types.BanUserRequestValidate(request)
+ stats.validate = process.hrtime.bigint()
+ if (error !== null) return logErrorAndReturnResponse(error, 'invalid request body', res, logger, { ...info, ...stats, ...authCtx }, opts.metricsCallback)
+ const response = await methods.BanUser({rpcName:'BanUser', ctx:authContext , req: request})
+ stats.handle = process.hrtime.bigint()
+ res({status: 'OK', ...response})
+ opts.metricsCallback([{ ...info, ...stats, ...authContext }])
+ }catch(ex){ const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger, { ...info, ...stats, ...authCtx }, opts.metricsCallback); if (opts.throwErrors) throw e }
+ break
+ case 'GetUsageMetrics':
+ try {
+ if (!methods.GetUsageMetrics) throw new Error('method: GetUsageMetrics is not implemented')
+ const authContext = await opts.NostrMetricsAuthGuard(req.appId, req.authIdentifier)
+ stats.guard = process.hrtime.bigint()
+ authCtx = authContext
+ stats.validate = stats.guard
+ const response = await methods.GetUsageMetrics({rpcName:'GetUsageMetrics', ctx:authContext })
+ stats.handle = process.hrtime.bigint()
+ res({status: 'OK', ...response})
+ opts.metricsCallback([{ ...info, ...stats, ...authContext }])
+ }catch(ex){ const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger, { ...info, ...stats, ...authCtx }, opts.metricsCallback); if (opts.throwErrors) throw e }
+ break
+ case 'GetAppsMetrics':
+ try {
+ if (!methods.GetAppsMetrics) throw new Error('method: GetAppsMetrics is not implemented')
+ const authContext = await opts.NostrMetricsAuthGuard(req.appId, req.authIdentifier)
+ stats.guard = process.hrtime.bigint()
+ authCtx = authContext
+ const request = req.body
+ const error = Types.AppsMetricsRequestValidate(request)
+ stats.validate = process.hrtime.bigint()
+ if (error !== null) return logErrorAndReturnResponse(error, 'invalid request body', res, logger, { ...info, ...stats, ...authCtx }, opts.metricsCallback)
+ const response = await methods.GetAppsMetrics({rpcName:'GetAppsMetrics', ctx:authContext , req: request})
+ stats.handle = process.hrtime.bigint()
+ res({status: 'OK', ...response})
+ opts.metricsCallback([{ ...info, ...stats, ...authContext }])
+ }catch(ex){ const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger, { ...info, ...stats, ...authCtx }, opts.metricsCallback); if (opts.throwErrors) throw e }
+ break
+ case 'GetLndMetrics':
+ try {
+ if (!methods.GetLndMetrics) throw new Error('method: GetLndMetrics is not implemented')
+ const authContext = await opts.NostrMetricsAuthGuard(req.appId, req.authIdentifier)
+ stats.guard = process.hrtime.bigint()
+ authCtx = authContext
+ const request = req.body
+ const error = Types.LndMetricsRequestValidate(request)
+ stats.validate = process.hrtime.bigint()
+ if (error !== null) return logErrorAndReturnResponse(error, 'invalid request body', res, logger, { ...info, ...stats, ...authCtx }, opts.metricsCallback)
+ const response = await methods.GetLndMetrics({rpcName:'GetLndMetrics', ctx:authContext , req: request})
+ stats.handle = process.hrtime.bigint()
+ res({status: 'OK', ...response})
+ opts.metricsCallback([{ ...info, ...stats, ...authContext }])
+ }catch(ex){ const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger, { ...info, ...stats, ...authCtx }, opts.metricsCallback); if (opts.throwErrors) throw e }
+ break
case 'LinkNPubThroughToken':
try {
if (!methods.LinkNPubThroughToken) throw new Error('method: LinkNPubThroughToken is not implemented')
@@ -45,6 +156,22 @@ export default (methods: Types.ServerMethods, opts: NostrOptions) => {
opts.metricsCallback([{ ...info, ...stats, ...authContext }])
}catch(ex){ const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger, { ...info, ...stats, ...authCtx }, opts.metricsCallback); if (opts.throwErrors) throw e }
break
+ case 'EnrollAdminToken':
+ try {
+ if (!methods.EnrollAdminToken) throw new Error('method: EnrollAdminToken is not implemented')
+ const authContext = await opts.NostrUserAuthGuard(req.appId, req.authIdentifier)
+ stats.guard = process.hrtime.bigint()
+ authCtx = authContext
+ const request = req.body
+ const error = Types.EnrollAdminTokenRequestValidate(request)
+ stats.validate = process.hrtime.bigint()
+ if (error !== null) return logErrorAndReturnResponse(error, 'invalid request body', res, logger, { ...info, ...stats, ...authCtx }, opts.metricsCallback)
+ await methods.EnrollAdminToken({rpcName:'EnrollAdminToken', ctx:authContext , req: request})
+ stats.handle = process.hrtime.bigint()
+ res({status: 'OK'})
+ opts.metricsCallback([{ ...info, ...stats, ...authContext }])
+ }catch(ex){ const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger, { ...info, ...stats, ...authCtx }, opts.metricsCallback); if (opts.throwErrors) throw e }
+ break
case 'UserHealth':
try {
if (!methods.UserHealth) throw new Error('method: UserHealth is not implemented')
@@ -321,6 +448,18 @@ export default (methods: Types.ServerMethods, opts: NostrOptions) => {
callsMetrics.push({ ...opInfo, ...opStats, ...ctx })
}
break
+ case 'EnrollAdminToken':
+ if (!methods.EnrollAdminToken) {
+ throw new Error('method not defined: EnrollAdminToken')
+ } else {
+ const error = Types.EnrollAdminTokenRequestValidate(operation.req)
+ opStats.validate = process.hrtime.bigint()
+ if (error !== null) throw error
+ await methods.EnrollAdminToken({...operation, ctx}); responses.push({ status: 'OK' })
+ opStats.handle = process.hrtime.bigint()
+ callsMetrics.push({ ...opInfo, ...opStats, ...ctx })
+ }
+ break
case 'UserHealth':
if (!methods.UserHealth) {
throw new Error('method not defined: UserHealth')
diff --git a/proto/autogenerated/ts/types.ts b/proto/autogenerated/ts/types.ts
index bb1ab5f8..691dfcf6 100644
--- a/proto/autogenerated/ts/types.ts
+++ b/proto/autogenerated/ts/types.ts
@@ -13,8 +13,8 @@ export type UserContext = {
user_id: string
app_id: string
}
-export type UserMethodInputs = LinkNPubThroughToken_Input | UserHealth_Input | GetUserInfo_Input | AddProduct_Input | NewProductInvoice_Input | GetUserOperations_Input | NewAddress_Input | PayAddress_Input | NewInvoice_Input | DecodeInvoice_Input | PayInvoice_Input | OpenChannel_Input | GetLnurlWithdrawLink_Input | GetLnurlPayLink_Input | GetLNURLChannelLink_Input
-export type UserMethodOutputs = LinkNPubThroughToken_Output | UserHealth_Output | GetUserInfo_Output | AddProduct_Output | NewProductInvoice_Output | GetUserOperations_Output | NewAddress_Output | PayAddress_Output | NewInvoice_Output | DecodeInvoice_Output | PayInvoice_Output | OpenChannel_Output | GetLnurlWithdrawLink_Output | GetLnurlPayLink_Output | GetLNURLChannelLink_Output
+export type UserMethodInputs = LinkNPubThroughToken_Input | EnrollAdminToken_Input | UserHealth_Input | GetUserInfo_Input | AddProduct_Input | NewProductInvoice_Input | GetUserOperations_Input | NewAddress_Input | PayAddress_Input | NewInvoice_Input | DecodeInvoice_Input | PayInvoice_Input | OpenChannel_Input | GetLnurlWithdrawLink_Input | GetLnurlPayLink_Input | GetLNURLChannelLink_Input
+export type UserMethodOutputs = LinkNPubThroughToken_Output | EnrollAdminToken_Output | UserHealth_Output | GetUserInfo_Output | AddProduct_Output | NewProductInvoice_Output | GetUserOperations_Output | NewAddress_Output | PayAddress_Output | NewInvoice_Output | DecodeInvoice_Output | PayInvoice_Output | OpenChannel_Output | GetLnurlWithdrawLink_Output | GetLnurlPayLink_Output | GetLNURLChannelLink_Output
export type AdminContext = {
admin_id: string
}
@@ -99,6 +99,9 @@ export type HandleLnurlAddress_Output = ResultError | ({ status: 'OK' } & LnurlP
export type LinkNPubThroughToken_Input = {rpcName:'LinkNPubThroughToken', req: LinkNPubThroughTokenRequest}
export type LinkNPubThroughToken_Output = ResultError | { status: 'OK' }
+export type EnrollAdminToken_Input = {rpcName:'EnrollAdminToken', req: EnrollAdminTokenRequest}
+export type EnrollAdminToken_Output = ResultError | { status: 'OK' }
+
export type GetApp_Input = {rpcName:'GetApp'}
export type GetApp_Output = ResultError | ({ status: 'OK' } & Application)
@@ -209,6 +212,7 @@ export type ServerMethods = {
HandleLnurlPay?: (req: HandleLnurlPay_Input & {ctx: GuestContext }) => Promise
HandleLnurlAddress?: (req: HandleLnurlAddress_Input & {ctx: GuestContext }) => Promise
LinkNPubThroughToken?: (req: LinkNPubThroughToken_Input & {ctx: UserContext }) => Promise
+ EnrollAdminToken?: (req: EnrollAdminToken_Input & {ctx: UserContext }) => Promise
GetApp?: (req: GetApp_Input & {ctx: AppContext }) => Promise
AddAppUser?: (req: AddAppUser_Input & {ctx: AppContext }) => Promise
AddAppInvoice?: (req: AddAppInvoice_Input & {ctx: AppContext }) => Promise
@@ -245,7 +249,7 @@ export enum AddressType {
NESTED_PUBKEY_HASH = 'NESTED_PUBKEY_HASH',
TAPROOT_PUBKEY = 'TAPROOT_PUBKEY',
}
-const enumCheckAddressType = (e?: AddressType): boolean => {
+export const enumCheckAddressType = (e?: AddressType): boolean => {
for (const v in AddressType) if (e === v) return true
return false
}
@@ -257,7 +261,7 @@ export enum UserOperationType {
OUTGOING_USER_TO_USER = 'OUTGOING_USER_TO_USER',
INCOMING_USER_TO_USER = 'INCOMING_USER_TO_USER',
}
-const enumCheckUserOperationType = (e?: UserOperationType): boolean => {
+export const enumCheckUserOperationType = (e?: UserOperationType): boolean => {
for (const v in UserOperationType) if (e === v) return true
return false
}
@@ -266,50 +270,115 @@ export type OptionsBaseMessage = {
allOptionalsAreSet?: true
}
-export type AddAppUserRequest = {
- identifier: string
- fail_if_exists: boolean
- balance: number
+export type AppMetrics = {
+ fees: number
+ invoices: number
+ total_fees: number
+ app: Application
+ users: UsersInfo
+ spent: number
+ available: number
+ received: number
+ operations: UserOperation[]
}
-export const AddAppUserRequestOptionalFields: [] = []
-export type AddAppUserRequestOptions = OptionsBaseMessage & {
+export const AppMetricsOptionalFields: [] = []
+export type AppMetricsOptions = OptionsBaseMessage & {
checkOptionalsAreSet?: []
- identifier_CustomCheck?: (v: string) => boolean
- fail_if_exists_CustomCheck?: (v: boolean) => boolean
- balance_CustomCheck?: (v: number) => boolean
+ received_CustomCheck?: (v: number) => boolean
+ operations_ItemOptions?: UserOperationOptions
+ operations_CustomCheck?: (v: UserOperation[]) => boolean
+ total_fees_CustomCheck?: (v: number) => boolean
+ app_Options?: ApplicationOptions
+ users_Options?: UsersInfoOptions
+ spent_CustomCheck?: (v: number) => boolean
+ available_CustomCheck?: (v: number) => boolean
+ fees_CustomCheck?: (v: number) => boolean
+ invoices_CustomCheck?: (v: number) => boolean
}
-export const AddAppUserRequestValidate = (o?: AddAppUserRequest, opts: AddAppUserRequestOptions = {}, path: string = 'AddAppUserRequest::root.'): Error | null => {
+export const AppMetricsValidate = (o?: AppMetrics, opts: AppMetricsOptions = {}, path: string = 'AppMetrics::root.'): Error | null => {
if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
- if (typeof o.identifier !== 'string') return new Error(`${path}.identifier: is not a string`)
- if (opts.identifier_CustomCheck && !opts.identifier_CustomCheck(o.identifier)) return new Error(`${path}.identifier: custom check failed`)
+ if (typeof o.received !== 'number') return new Error(`${path}.received: is not a number`)
+ if (opts.received_CustomCheck && !opts.received_CustomCheck(o.received)) return new Error(`${path}.received: custom check failed`)
- if (typeof o.fail_if_exists !== 'boolean') return new Error(`${path}.fail_if_exists: is not a boolean`)
- if (opts.fail_if_exists_CustomCheck && !opts.fail_if_exists_CustomCheck(o.fail_if_exists)) return new Error(`${path}.fail_if_exists: custom check failed`)
+ if (!Array.isArray(o.operations)) return new Error(`${path}.operations: is not an array`)
+ for (let index = 0; index < o.operations.length; index++) {
+ const operationsErr = UserOperationValidate(o.operations[index], opts.operations_ItemOptions, `${path}.operations[${index}]`)
+ if (operationsErr !== null) return operationsErr
+ }
+ if (opts.operations_CustomCheck && !opts.operations_CustomCheck(o.operations)) return new Error(`${path}.operations: custom check failed`)
- if (typeof o.balance !== 'number') return new Error(`${path}.balance: is not a number`)
- if (opts.balance_CustomCheck && !opts.balance_CustomCheck(o.balance)) return new Error(`${path}.balance: custom check failed`)
+ if (typeof o.total_fees !== 'number') return new Error(`${path}.total_fees: is not a number`)
+ if (opts.total_fees_CustomCheck && !opts.total_fees_CustomCheck(o.total_fees)) return new Error(`${path}.total_fees: custom check failed`)
+
+ const appErr = ApplicationValidate(o.app, opts.app_Options, `${path}.app`)
+ if (appErr !== null) return appErr
+
+
+ const usersErr = UsersInfoValidate(o.users, opts.users_Options, `${path}.users`)
+ if (usersErr !== null) return usersErr
+
+
+ if (typeof o.spent !== 'number') return new Error(`${path}.spent: is not a number`)
+ if (opts.spent_CustomCheck && !opts.spent_CustomCheck(o.spent)) return new Error(`${path}.spent: custom check failed`)
+
+ if (typeof o.available !== 'number') return new Error(`${path}.available: is not a number`)
+ if (opts.available_CustomCheck && !opts.available_CustomCheck(o.available)) return new Error(`${path}.available: custom check failed`)
+
+ if (typeof o.fees !== 'number') return new Error(`${path}.fees: is not a number`)
+ if (opts.fees_CustomCheck && !opts.fees_CustomCheck(o.fees)) return new Error(`${path}.fees: custom check failed`)
+
+ if (typeof o.invoices !== 'number') return new Error(`${path}.invoices: is not a number`)
+ if (opts.invoices_CustomCheck && !opts.invoices_CustomCheck(o.invoices)) return new Error(`${path}.invoices: custom check failed`)
return null
}
-export type SetMockAppUserBalanceRequest = {
- user_identifier: string
- amount: number
+export type AddAppRequest = {
+ name: string
+ allow_user_creation: boolean
}
-export const SetMockAppUserBalanceRequestOptionalFields: [] = []
-export type SetMockAppUserBalanceRequestOptions = OptionsBaseMessage & {
+export const AddAppRequestOptionalFields: [] = []
+export type AddAppRequestOptions = OptionsBaseMessage & {
checkOptionalsAreSet?: []
- user_identifier_CustomCheck?: (v: string) => boolean
- amount_CustomCheck?: (v: number) => boolean
+ name_CustomCheck?: (v: string) => boolean
+ allow_user_creation_CustomCheck?: (v: boolean) => boolean
}
-export const SetMockAppUserBalanceRequestValidate = (o?: SetMockAppUserBalanceRequest, opts: SetMockAppUserBalanceRequestOptions = {}, path: string = 'SetMockAppUserBalanceRequest::root.'): Error | null => {
+export const AddAppRequestValidate = (o?: AddAppRequest, opts: AddAppRequestOptions = {}, path: string = 'AddAppRequest::root.'): Error | null => {
if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
- if (typeof o.user_identifier !== 'string') return new Error(`${path}.user_identifier: is not a string`)
- if (opts.user_identifier_CustomCheck && !opts.user_identifier_CustomCheck(o.user_identifier)) return new Error(`${path}.user_identifier: custom check failed`)
+ if (typeof o.name !== 'string') return new Error(`${path}.name: is not a string`)
+ if (opts.name_CustomCheck && !opts.name_CustomCheck(o.name)) return new Error(`${path}.name: custom check failed`)
+
+ if (typeof o.allow_user_creation !== 'boolean') return new Error(`${path}.allow_user_creation: is not a boolean`)
+ if (opts.allow_user_creation_CustomCheck && !opts.allow_user_creation_CustomCheck(o.allow_user_creation)) return new Error(`${path}.allow_user_creation: custom check failed`)
+
+ return null
+}
+
+export type SendAppUserToAppUserPaymentRequest = {
+ from_user_identifier: string
+ to_user_identifier: string
+ amount: number
+}
+export const SendAppUserToAppUserPaymentRequestOptionalFields: [] = []
+export type SendAppUserToAppUserPaymentRequestOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ amount_CustomCheck?: (v: number) => boolean
+ from_user_identifier_CustomCheck?: (v: string) => boolean
+ to_user_identifier_CustomCheck?: (v: string) => boolean
+}
+export const SendAppUserToAppUserPaymentRequestValidate = (o?: SendAppUserToAppUserPaymentRequest, opts: SendAppUserToAppUserPaymentRequestOptions = {}, path: string = 'SendAppUserToAppUserPaymentRequest::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.from_user_identifier !== 'string') return new Error(`${path}.from_user_identifier: is not a string`)
+ if (opts.from_user_identifier_CustomCheck && !opts.from_user_identifier_CustomCheck(o.from_user_identifier)) return new Error(`${path}.from_user_identifier: custom check failed`)
+
+ if (typeof o.to_user_identifier !== 'string') return new Error(`${path}.to_user_identifier: is not a string`)
+ if (opts.to_user_identifier_CustomCheck && !opts.to_user_identifier_CustomCheck(o.to_user_identifier)) return new Error(`${path}.to_user_identifier: custom check failed`)
if (typeof o.amount !== 'number') return new Error(`${path}.amount: is not a number`)
if (opts.amount_CustomCheck && !opts.amount_CustomCheck(o.amount)) return new Error(`${path}.amount: custom check failed`)
@@ -317,6 +386,165 @@ export const SetMockAppUserBalanceRequestValidate = (o?: SetMockAppUserBalanceRe
return null
}
+export type LnurlPayInfoResponse = {
+ nostrPubkey: string
+ tag: string
+ callback: string
+ maxSendable: number
+ minSendable: number
+ metadata: string
+ allowsNostr: boolean
+}
+export const LnurlPayInfoResponseOptionalFields: [] = []
+export type LnurlPayInfoResponseOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ nostrPubkey_CustomCheck?: (v: string) => boolean
+ tag_CustomCheck?: (v: string) => boolean
+ callback_CustomCheck?: (v: string) => boolean
+ maxSendable_CustomCheck?: (v: number) => boolean
+ minSendable_CustomCheck?: (v: number) => boolean
+ metadata_CustomCheck?: (v: string) => boolean
+ allowsNostr_CustomCheck?: (v: boolean) => boolean
+}
+export const LnurlPayInfoResponseValidate = (o?: LnurlPayInfoResponse, opts: LnurlPayInfoResponseOptions = {}, path: string = 'LnurlPayInfoResponse::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.tag !== 'string') return new Error(`${path}.tag: is not a string`)
+ if (opts.tag_CustomCheck && !opts.tag_CustomCheck(o.tag)) return new Error(`${path}.tag: custom check failed`)
+
+ if (typeof o.callback !== 'string') return new Error(`${path}.callback: is not a string`)
+ if (opts.callback_CustomCheck && !opts.callback_CustomCheck(o.callback)) return new Error(`${path}.callback: custom check failed`)
+
+ if (typeof o.maxSendable !== 'number') return new Error(`${path}.maxSendable: is not a number`)
+ if (opts.maxSendable_CustomCheck && !opts.maxSendable_CustomCheck(o.maxSendable)) return new Error(`${path}.maxSendable: custom check failed`)
+
+ if (typeof o.minSendable !== 'number') return new Error(`${path}.minSendable: is not a number`)
+ if (opts.minSendable_CustomCheck && !opts.minSendable_CustomCheck(o.minSendable)) return new Error(`${path}.minSendable: custom check failed`)
+
+ if (typeof o.metadata !== 'string') return new Error(`${path}.metadata: is not a string`)
+ if (opts.metadata_CustomCheck && !opts.metadata_CustomCheck(o.metadata)) return new Error(`${path}.metadata: custom check failed`)
+
+ if (typeof o.allowsNostr !== 'boolean') return new Error(`${path}.allowsNostr: is not a boolean`)
+ if (opts.allowsNostr_CustomCheck && !opts.allowsNostr_CustomCheck(o.allowsNostr)) return new Error(`${path}.allowsNostr: custom check failed`)
+
+ if (typeof o.nostrPubkey !== 'string') return new Error(`${path}.nostrPubkey: is not a string`)
+ if (opts.nostrPubkey_CustomCheck && !opts.nostrPubkey_CustomCheck(o.nostrPubkey)) return new Error(`${path}.nostrPubkey: custom check failed`)
+
+ return null
+}
+
+export type HandleLnurlPayResponse = {
+ pr: string
+ routes: Empty[]
+}
+export const HandleLnurlPayResponseOptionalFields: [] = []
+export type HandleLnurlPayResponseOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ pr_CustomCheck?: (v: string) => boolean
+ routes_ItemOptions?: EmptyOptions
+ routes_CustomCheck?: (v: Empty[]) => boolean
+}
+export const HandleLnurlPayResponseValidate = (o?: HandleLnurlPayResponse, opts: HandleLnurlPayResponseOptions = {}, path: string = 'HandleLnurlPayResponse::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.pr !== 'string') return new Error(`${path}.pr: is not a string`)
+ if (opts.pr_CustomCheck && !opts.pr_CustomCheck(o.pr)) return new Error(`${path}.pr: custom check failed`)
+
+ if (!Array.isArray(o.routes)) return new Error(`${path}.routes: is not an array`)
+ for (let index = 0; index < o.routes.length; index++) {
+ const routesErr = EmptyValidate(o.routes[index], opts.routes_ItemOptions, `${path}.routes[${index}]`)
+ if (routesErr !== null) return routesErr
+ }
+ if (opts.routes_CustomCheck && !opts.routes_CustomCheck(o.routes)) return new Error(`${path}.routes: custom check failed`)
+
+ return null
+}
+
+export type EnrollAdminTokenRequest = {
+ admin_token: string
+}
+export const EnrollAdminTokenRequestOptionalFields: [] = []
+export type EnrollAdminTokenRequestOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ admin_token_CustomCheck?: (v: string) => boolean
+}
+export const EnrollAdminTokenRequestValidate = (o?: EnrollAdminTokenRequest, opts: EnrollAdminTokenRequestOptions = {}, path: string = 'EnrollAdminTokenRequest::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.admin_token !== 'string') return new Error(`${path}.admin_token: is not a string`)
+ if (opts.admin_token_CustomCheck && !opts.admin_token_CustomCheck(o.admin_token)) return new Error(`${path}.admin_token: custom check failed`)
+
+ return null
+}
+
+export type UsageMetrics = {
+ metrics: UsageMetric[]
+}
+export const UsageMetricsOptionalFields: [] = []
+export type UsageMetricsOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ metrics_ItemOptions?: UsageMetricOptions
+ metrics_CustomCheck?: (v: UsageMetric[]) => boolean
+}
+export const UsageMetricsValidate = (o?: UsageMetrics, opts: UsageMetricsOptions = {}, path: string = 'UsageMetrics::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (!Array.isArray(o.metrics)) return new Error(`${path}.metrics: is not an array`)
+ for (let index = 0; index < o.metrics.length; index++) {
+ const metricsErr = UsageMetricValidate(o.metrics[index], opts.metrics_ItemOptions, `${path}.metrics[${index}]`)
+ if (metricsErr !== null) return metricsErr
+ }
+ if (opts.metrics_CustomCheck && !opts.metrics_CustomCheck(o.metrics)) return new Error(`${path}.metrics: custom check failed`)
+
+ return null
+}
+
+export type LnurlLinkResponse = {
+ lnurl: string
+ k1: string
+}
+export const LnurlLinkResponseOptionalFields: [] = []
+export type LnurlLinkResponseOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ lnurl_CustomCheck?: (v: string) => boolean
+ k1_CustomCheck?: (v: string) => boolean
+}
+export const LnurlLinkResponseValidate = (o?: LnurlLinkResponse, opts: LnurlLinkResponseOptions = {}, path: string = 'LnurlLinkResponse::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.lnurl !== 'string') return new Error(`${path}.lnurl: is not a string`)
+ if (opts.lnurl_CustomCheck && !opts.lnurl_CustomCheck(o.lnurl)) return new Error(`${path}.lnurl: custom check failed`)
+
+ if (typeof o.k1 !== 'string') return new Error(`${path}.k1: is not a string`)
+ if (opts.k1_CustomCheck && !opts.k1_CustomCheck(o.k1)) return new Error(`${path}.k1: custom check failed`)
+
+ return null
+}
+
+export type LiveUserOperation = {
+ operation: UserOperation
+}
+export const LiveUserOperationOptionalFields: [] = []
+export type LiveUserOperationOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ operation_Options?: UserOperationOptions
+}
+export const LiveUserOperationValidate = (o?: LiveUserOperation, opts: LiveUserOperationOptions = {}, path: string = 'LiveUserOperation::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ const operationErr = UserOperationValidate(o.operation, opts.operation_Options, `${path}.operation`)
+ if (operationErr !== null) return operationErr
+
+
+ return null
+}
+
export type PayInvoiceRequest = {
invoice: string
amount: number
@@ -340,254 +568,350 @@ export const PayInvoiceRequestValidate = (o?: PayInvoiceRequest, opts: PayInvoic
return null
}
-export type LnurlWithdrawInfoResponse = {
- tag: string
- callback: string
- k1: string
- defaultDescription: string
- minWithdrawable: number
- maxWithdrawable: number
- balanceCheck: string
- payLink: string
+export type GetProductBuyLinkResponse = {
+ link: string
}
-export const LnurlWithdrawInfoResponseOptionalFields: [] = []
-export type LnurlWithdrawInfoResponseOptions = OptionsBaseMessage & {
+export const GetProductBuyLinkResponseOptionalFields: [] = []
+export type GetProductBuyLinkResponseOptions = OptionsBaseMessage & {
checkOptionalsAreSet?: []
- tag_CustomCheck?: (v: string) => boolean
- callback_CustomCheck?: (v: string) => boolean
- k1_CustomCheck?: (v: string) => boolean
- defaultDescription_CustomCheck?: (v: string) => boolean
- minWithdrawable_CustomCheck?: (v: number) => boolean
- maxWithdrawable_CustomCheck?: (v: number) => boolean
- balanceCheck_CustomCheck?: (v: string) => boolean
- payLink_CustomCheck?: (v: string) => boolean
+ link_CustomCheck?: (v: string) => boolean
}
-export const LnurlWithdrawInfoResponseValidate = (o?: LnurlWithdrawInfoResponse, opts: LnurlWithdrawInfoResponseOptions = {}, path: string = 'LnurlWithdrawInfoResponse::root.'): Error | null => {
+export const GetProductBuyLinkResponseValidate = (o?: GetProductBuyLinkResponse, opts: GetProductBuyLinkResponseOptions = {}, path: string = 'GetProductBuyLinkResponse::root.'): Error | null => {
if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
- if (typeof o.tag !== 'string') return new Error(`${path}.tag: is not a string`)
- if (opts.tag_CustomCheck && !opts.tag_CustomCheck(o.tag)) return new Error(`${path}.tag: custom check failed`)
-
- if (typeof o.callback !== 'string') return new Error(`${path}.callback: is not a string`)
- if (opts.callback_CustomCheck && !opts.callback_CustomCheck(o.callback)) return new Error(`${path}.callback: custom check failed`)
-
- if (typeof o.k1 !== 'string') return new Error(`${path}.k1: is not a string`)
- if (opts.k1_CustomCheck && !opts.k1_CustomCheck(o.k1)) return new Error(`${path}.k1: custom check failed`)
-
- if (typeof o.defaultDescription !== 'string') return new Error(`${path}.defaultDescription: is not a string`)
- if (opts.defaultDescription_CustomCheck && !opts.defaultDescription_CustomCheck(o.defaultDescription)) return new Error(`${path}.defaultDescription: custom check failed`)
-
- if (typeof o.minWithdrawable !== 'number') return new Error(`${path}.minWithdrawable: is not a number`)
- if (opts.minWithdrawable_CustomCheck && !opts.minWithdrawable_CustomCheck(o.minWithdrawable)) return new Error(`${path}.minWithdrawable: custom check failed`)
-
- if (typeof o.maxWithdrawable !== 'number') return new Error(`${path}.maxWithdrawable: is not a number`)
- if (opts.maxWithdrawable_CustomCheck && !opts.maxWithdrawable_CustomCheck(o.maxWithdrawable)) return new Error(`${path}.maxWithdrawable: custom check failed`)
-
- if (typeof o.balanceCheck !== 'string') return new Error(`${path}.balanceCheck: is not a string`)
- if (opts.balanceCheck_CustomCheck && !opts.balanceCheck_CustomCheck(o.balanceCheck)) return new Error(`${path}.balanceCheck: custom check failed`)
-
- if (typeof o.payLink !== 'string') return new Error(`${path}.payLink: is not a string`)
- if (opts.payLink_CustomCheck && !opts.payLink_CustomCheck(o.payLink)) return new Error(`${path}.payLink: custom check failed`)
+ if (typeof o.link !== 'string') return new Error(`${path}.link: is not a string`)
+ if (opts.link_CustomCheck && !opts.link_CustomCheck(o.link)) return new Error(`${path}.link: custom check failed`)
return null
}
-export type UsageMetric = {
- processed_at_ms: number
- parsed_in_nano: number
- auth_in_nano: number
- validate_in_nano: number
- handle_in_nano: number
- rpc_name: string
- batch: boolean
- nostr: boolean
- batch_size: number
+export type LndNodeMetrics = {
+ channel_routing: ChannelRouting[]
+ offline_channels: number
+ pending_channels: number
+ open_channels: OpenChannel[]
+ closed_channels: ClosedChannel[]
+ channels_balance_events: ChannelBalanceEvent[]
+ chain_balance_events: ChainBalanceEvent[]
+ online_channels: number
+ closing_channels: number
}
-export const UsageMetricOptionalFields: [] = []
-export type UsageMetricOptions = OptionsBaseMessage & {
+export const LndNodeMetricsOptionalFields: [] = []
+export type LndNodeMetricsOptions = OptionsBaseMessage & {
checkOptionalsAreSet?: []
- processed_at_ms_CustomCheck?: (v: number) => boolean
- parsed_in_nano_CustomCheck?: (v: number) => boolean
- auth_in_nano_CustomCheck?: (v: number) => boolean
- validate_in_nano_CustomCheck?: (v: number) => boolean
- handle_in_nano_CustomCheck?: (v: number) => boolean
- rpc_name_CustomCheck?: (v: string) => boolean
- batch_CustomCheck?: (v: boolean) => boolean
- nostr_CustomCheck?: (v: boolean) => boolean
- batch_size_CustomCheck?: (v: number) => boolean
+ channels_balance_events_ItemOptions?: ChannelBalanceEventOptions
+ channels_balance_events_CustomCheck?: (v: ChannelBalanceEvent[]) => boolean
+ chain_balance_events_ItemOptions?: ChainBalanceEventOptions
+ chain_balance_events_CustomCheck?: (v: ChainBalanceEvent[]) => boolean
+ online_channels_CustomCheck?: (v: number) => boolean
+ closing_channels_CustomCheck?: (v: number) => boolean
+ channel_routing_ItemOptions?: ChannelRoutingOptions
+ channel_routing_CustomCheck?: (v: ChannelRouting[]) => boolean
+ offline_channels_CustomCheck?: (v: number) => boolean
+ pending_channels_CustomCheck?: (v: number) => boolean
+ open_channels_ItemOptions?: OpenChannelOptions
+ open_channels_CustomCheck?: (v: OpenChannel[]) => boolean
+ closed_channels_ItemOptions?: ClosedChannelOptions
+ closed_channels_CustomCheck?: (v: ClosedChannel[]) => boolean
}
-export const UsageMetricValidate = (o?: UsageMetric, opts: UsageMetricOptions = {}, path: string = 'UsageMetric::root.'): Error | null => {
+export const LndNodeMetricsValidate = (o?: LndNodeMetrics, opts: LndNodeMetricsOptions = {}, path: string = 'LndNodeMetrics::root.'): Error | null => {
if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
- if (typeof o.processed_at_ms !== 'number') return new Error(`${path}.processed_at_ms: is not a number`)
- if (opts.processed_at_ms_CustomCheck && !opts.processed_at_ms_CustomCheck(o.processed_at_ms)) return new Error(`${path}.processed_at_ms: custom check failed`)
-
- if (typeof o.parsed_in_nano !== 'number') return new Error(`${path}.parsed_in_nano: is not a number`)
- if (opts.parsed_in_nano_CustomCheck && !opts.parsed_in_nano_CustomCheck(o.parsed_in_nano)) return new Error(`${path}.parsed_in_nano: custom check failed`)
-
- if (typeof o.auth_in_nano !== 'number') return new Error(`${path}.auth_in_nano: is not a number`)
- if (opts.auth_in_nano_CustomCheck && !opts.auth_in_nano_CustomCheck(o.auth_in_nano)) return new Error(`${path}.auth_in_nano: custom check failed`)
-
- if (typeof o.validate_in_nano !== 'number') return new Error(`${path}.validate_in_nano: is not a number`)
- if (opts.validate_in_nano_CustomCheck && !opts.validate_in_nano_CustomCheck(o.validate_in_nano)) return new Error(`${path}.validate_in_nano: custom check failed`)
-
- if (typeof o.handle_in_nano !== 'number') return new Error(`${path}.handle_in_nano: is not a number`)
- if (opts.handle_in_nano_CustomCheck && !opts.handle_in_nano_CustomCheck(o.handle_in_nano)) return new Error(`${path}.handle_in_nano: custom check failed`)
-
- if (typeof o.rpc_name !== 'string') return new Error(`${path}.rpc_name: is not a string`)
- if (opts.rpc_name_CustomCheck && !opts.rpc_name_CustomCheck(o.rpc_name)) return new Error(`${path}.rpc_name: custom check failed`)
-
- if (typeof o.batch !== 'boolean') return new Error(`${path}.batch: is not a boolean`)
- if (opts.batch_CustomCheck && !opts.batch_CustomCheck(o.batch)) return new Error(`${path}.batch: custom check failed`)
-
- if (typeof o.nostr !== 'boolean') return new Error(`${path}.nostr: is not a boolean`)
- if (opts.nostr_CustomCheck && !opts.nostr_CustomCheck(o.nostr)) return new Error(`${path}.nostr: custom check failed`)
-
- if (typeof o.batch_size !== 'number') return new Error(`${path}.batch_size: is not a number`)
- if (opts.batch_size_CustomCheck && !opts.batch_size_CustomCheck(o.batch_size)) return new Error(`${path}.batch_size: custom check failed`)
-
- return null
-}
-
-export type UsersInfo = {
- total: number
- no_balance: number
- negative_balance: number
- always_been_inactive: number
- balance_avg: number
- balance_median: number
-}
-export const UsersInfoOptionalFields: [] = []
-export type UsersInfoOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- total_CustomCheck?: (v: number) => boolean
- no_balance_CustomCheck?: (v: number) => boolean
- negative_balance_CustomCheck?: (v: number) => boolean
- always_been_inactive_CustomCheck?: (v: number) => boolean
- balance_avg_CustomCheck?: (v: number) => boolean
- balance_median_CustomCheck?: (v: number) => boolean
-}
-export const UsersInfoValidate = (o?: UsersInfo, opts: UsersInfoOptions = {}, path: string = 'UsersInfo::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.total !== 'number') return new Error(`${path}.total: is not a number`)
- if (opts.total_CustomCheck && !opts.total_CustomCheck(o.total)) return new Error(`${path}.total: custom check failed`)
-
- if (typeof o.no_balance !== 'number') return new Error(`${path}.no_balance: is not a number`)
- if (opts.no_balance_CustomCheck && !opts.no_balance_CustomCheck(o.no_balance)) return new Error(`${path}.no_balance: custom check failed`)
-
- if (typeof o.negative_balance !== 'number') return new Error(`${path}.negative_balance: is not a number`)
- if (opts.negative_balance_CustomCheck && !opts.negative_balance_CustomCheck(o.negative_balance)) return new Error(`${path}.negative_balance: custom check failed`)
-
- if (typeof o.always_been_inactive !== 'number') return new Error(`${path}.always_been_inactive: is not a number`)
- if (opts.always_been_inactive_CustomCheck && !opts.always_been_inactive_CustomCheck(o.always_been_inactive)) return new Error(`${path}.always_been_inactive: custom check failed`)
-
- if (typeof o.balance_avg !== 'number') return new Error(`${path}.balance_avg: is not a number`)
- if (opts.balance_avg_CustomCheck && !opts.balance_avg_CustomCheck(o.balance_avg)) return new Error(`${path}.balance_avg: custom check failed`)
-
- if (typeof o.balance_median !== 'number') return new Error(`${path}.balance_median: is not a number`)
- if (opts.balance_median_CustomCheck && !opts.balance_median_CustomCheck(o.balance_median)) return new Error(`${path}.balance_median: custom check failed`)
-
- return null
-}
-
-export type BanUserRequest = {
- user_id: string
-}
-export const BanUserRequestOptionalFields: [] = []
-export type BanUserRequestOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- user_id_CustomCheck?: (v: string) => boolean
-}
-export const BanUserRequestValidate = (o?: BanUserRequest, opts: BanUserRequestOptions = {}, path: string = 'BanUserRequest::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.user_id !== 'string') return new Error(`${path}.user_id: is not a string`)
- if (opts.user_id_CustomCheck && !opts.user_id_CustomCheck(o.user_id)) return new Error(`${path}.user_id: custom check failed`)
-
- return null
-}
-
-export type BanUserResponse = {
- balance_sats: number
- banned_app_users: BannedAppUser[]
-}
-export const BanUserResponseOptionalFields: [] = []
-export type BanUserResponseOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- balance_sats_CustomCheck?: (v: number) => boolean
- banned_app_users_ItemOptions?: BannedAppUserOptions
- banned_app_users_CustomCheck?: (v: BannedAppUser[]) => boolean
-}
-export const BanUserResponseValidate = (o?: BanUserResponse, opts: BanUserResponseOptions = {}, path: string = 'BanUserResponse::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.balance_sats !== 'number') return new Error(`${path}.balance_sats: is not a number`)
- if (opts.balance_sats_CustomCheck && !opts.balance_sats_CustomCheck(o.balance_sats)) return new Error(`${path}.balance_sats: custom check failed`)
-
- if (!Array.isArray(o.banned_app_users)) return new Error(`${path}.banned_app_users: is not an array`)
- for (let index = 0; index < o.banned_app_users.length; index++) {
- const banned_app_usersErr = BannedAppUserValidate(o.banned_app_users[index], opts.banned_app_users_ItemOptions, `${path}.banned_app_users[${index}]`)
- if (banned_app_usersErr !== null) return banned_app_usersErr
+ if (!Array.isArray(o.channels_balance_events)) return new Error(`${path}.channels_balance_events: is not an array`)
+ for (let index = 0; index < o.channels_balance_events.length; index++) {
+ const channels_balance_eventsErr = ChannelBalanceEventValidate(o.channels_balance_events[index], opts.channels_balance_events_ItemOptions, `${path}.channels_balance_events[${index}]`)
+ if (channels_balance_eventsErr !== null) return channels_balance_eventsErr
}
- if (opts.banned_app_users_CustomCheck && !opts.banned_app_users_CustomCheck(o.banned_app_users)) return new Error(`${path}.banned_app_users: custom check failed`)
+ if (opts.channels_balance_events_CustomCheck && !opts.channels_balance_events_CustomCheck(o.channels_balance_events)) return new Error(`${path}.channels_balance_events: custom check failed`)
+
+ if (!Array.isArray(o.chain_balance_events)) return new Error(`${path}.chain_balance_events: is not an array`)
+ for (let index = 0; index < o.chain_balance_events.length; index++) {
+ const chain_balance_eventsErr = ChainBalanceEventValidate(o.chain_balance_events[index], opts.chain_balance_events_ItemOptions, `${path}.chain_balance_events[${index}]`)
+ if (chain_balance_eventsErr !== null) return chain_balance_eventsErr
+ }
+ if (opts.chain_balance_events_CustomCheck && !opts.chain_balance_events_CustomCheck(o.chain_balance_events)) return new Error(`${path}.chain_balance_events: custom check failed`)
+
+ if (typeof o.online_channels !== 'number') return new Error(`${path}.online_channels: is not a number`)
+ if (opts.online_channels_CustomCheck && !opts.online_channels_CustomCheck(o.online_channels)) return new Error(`${path}.online_channels: custom check failed`)
+
+ if (typeof o.closing_channels !== 'number') return new Error(`${path}.closing_channels: is not a number`)
+ if (opts.closing_channels_CustomCheck && !opts.closing_channels_CustomCheck(o.closing_channels)) return new Error(`${path}.closing_channels: custom check failed`)
+
+ if (typeof o.offline_channels !== 'number') return new Error(`${path}.offline_channels: is not a number`)
+ if (opts.offline_channels_CustomCheck && !opts.offline_channels_CustomCheck(o.offline_channels)) return new Error(`${path}.offline_channels: custom check failed`)
+
+ if (typeof o.pending_channels !== 'number') return new Error(`${path}.pending_channels: is not a number`)
+ if (opts.pending_channels_CustomCheck && !opts.pending_channels_CustomCheck(o.pending_channels)) return new Error(`${path}.pending_channels: custom check failed`)
+
+ if (!Array.isArray(o.open_channels)) return new Error(`${path}.open_channels: is not an array`)
+ for (let index = 0; index < o.open_channels.length; index++) {
+ const open_channelsErr = OpenChannelValidate(o.open_channels[index], opts.open_channels_ItemOptions, `${path}.open_channels[${index}]`)
+ if (open_channelsErr !== null) return open_channelsErr
+ }
+ if (opts.open_channels_CustomCheck && !opts.open_channels_CustomCheck(o.open_channels)) return new Error(`${path}.open_channels: custom check failed`)
+
+ if (!Array.isArray(o.closed_channels)) return new Error(`${path}.closed_channels: is not an array`)
+ for (let index = 0; index < o.closed_channels.length; index++) {
+ const closed_channelsErr = ClosedChannelValidate(o.closed_channels[index], opts.closed_channels_ItemOptions, `${path}.closed_channels[${index}]`)
+ if (closed_channelsErr !== null) return closed_channelsErr
+ }
+ if (opts.closed_channels_CustomCheck && !opts.closed_channels_CustomCheck(o.closed_channels)) return new Error(`${path}.closed_channels: custom check failed`)
+
+ if (!Array.isArray(o.channel_routing)) return new Error(`${path}.channel_routing: is not an array`)
+ for (let index = 0; index < o.channel_routing.length; index++) {
+ const channel_routingErr = ChannelRoutingValidate(o.channel_routing[index], opts.channel_routing_ItemOptions, `${path}.channel_routing[${index}]`)
+ if (channel_routingErr !== null) return channel_routingErr
+ }
+ if (opts.channel_routing_CustomCheck && !opts.channel_routing_CustomCheck(o.channel_routing)) return new Error(`${path}.channel_routing: custom check failed`)
return null
}
-export type UserOperations = {
- fromIndex: number
- toIndex: number
- operations: UserOperation[]
+export type AuthApp = {
+ app: Application
+ auth_token: string
}
-export const UserOperationsOptionalFields: [] = []
-export type UserOperationsOptions = OptionsBaseMessage & {
+export const AuthAppOptionalFields: [] = []
+export type AuthAppOptions = OptionsBaseMessage & {
checkOptionalsAreSet?: []
- fromIndex_CustomCheck?: (v: number) => boolean
- toIndex_CustomCheck?: (v: number) => boolean
- operations_ItemOptions?: UserOperationOptions
- operations_CustomCheck?: (v: UserOperation[]) => boolean
+ app_Options?: ApplicationOptions
+ auth_token_CustomCheck?: (v: string) => boolean
}
-export const UserOperationsValidate = (o?: UserOperations, opts: UserOperationsOptions = {}, path: string = 'UserOperations::root.'): Error | null => {
+export const AuthAppValidate = (o?: AuthApp, opts: AuthAppOptions = {}, path: string = 'AuthApp::root.'): Error | null => {
if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
- if (typeof o.fromIndex !== 'number') return new Error(`${path}.fromIndex: is not a number`)
- if (opts.fromIndex_CustomCheck && !opts.fromIndex_CustomCheck(o.fromIndex)) return new Error(`${path}.fromIndex: custom check failed`)
+ const appErr = ApplicationValidate(o.app, opts.app_Options, `${path}.app`)
+ if (appErr !== null) return appErr
+
- if (typeof o.toIndex !== 'number') return new Error(`${path}.toIndex: is not a number`)
- if (opts.toIndex_CustomCheck && !opts.toIndex_CustomCheck(o.toIndex)) return new Error(`${path}.toIndex: custom check failed`)
-
- if (!Array.isArray(o.operations)) return new Error(`${path}.operations: is not an array`)
- for (let index = 0; index < o.operations.length; index++) {
- const operationsErr = UserOperationValidate(o.operations[index], opts.operations_ItemOptions, `${path}.operations[${index}]`)
- if (operationsErr !== null) return operationsErr
- }
- if (opts.operations_CustomCheck && !opts.operations_CustomCheck(o.operations)) return new Error(`${path}.operations: custom check failed`)
+ if (typeof o.auth_token !== 'string') return new Error(`${path}.auth_token: is not a string`)
+ if (opts.auth_token_CustomCheck && !opts.auth_token_CustomCheck(o.auth_token)) return new Error(`${path}.auth_token: custom check failed`)
return null
}
-export type RequestNPubLinkingTokenRequest = {
+export type GetAppUserLNURLInfoRequest = {
user_identifier: string
+ base_url_override: string
}
-export const RequestNPubLinkingTokenRequestOptionalFields: [] = []
-export type RequestNPubLinkingTokenRequestOptions = OptionsBaseMessage & {
+export const GetAppUserLNURLInfoRequestOptionalFields: [] = []
+export type GetAppUserLNURLInfoRequestOptions = OptionsBaseMessage & {
checkOptionalsAreSet?: []
user_identifier_CustomCheck?: (v: string) => boolean
+ base_url_override_CustomCheck?: (v: string) => boolean
}
-export const RequestNPubLinkingTokenRequestValidate = (o?: RequestNPubLinkingTokenRequest, opts: RequestNPubLinkingTokenRequestOptions = {}, path: string = 'RequestNPubLinkingTokenRequest::root.'): Error | null => {
+export const GetAppUserLNURLInfoRequestValidate = (o?: GetAppUserLNURLInfoRequest, opts: GetAppUserLNURLInfoRequestOptions = {}, path: string = 'GetAppUserLNURLInfoRequest::root.'): Error | null => {
if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
if (typeof o.user_identifier !== 'string') return new Error(`${path}.user_identifier: is not a string`)
if (opts.user_identifier_CustomCheck && !opts.user_identifier_CustomCheck(o.user_identifier)) return new Error(`${path}.user_identifier: custom check failed`)
+ if (typeof o.base_url_override !== 'string') return new Error(`${path}.base_url_override: is not a string`)
+ if (opts.base_url_override_CustomCheck && !opts.base_url_override_CustomCheck(o.base_url_override)) return new Error(`${path}.base_url_override: custom check failed`)
+
+ return null
+}
+
+export type UserInfo = {
+ service_fee_bps: number
+ network_max_fee_bps: number
+ network_max_fee_fixed: number
+ userId: string
+ balance: number
+ max_withdrawable: number
+ user_identifier: string
+}
+export const UserInfoOptionalFields: [] = []
+export type UserInfoOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ userId_CustomCheck?: (v: string) => boolean
+ balance_CustomCheck?: (v: number) => boolean
+ max_withdrawable_CustomCheck?: (v: number) => boolean
+ user_identifier_CustomCheck?: (v: string) => boolean
+ service_fee_bps_CustomCheck?: (v: number) => boolean
+ network_max_fee_bps_CustomCheck?: (v: number) => boolean
+ network_max_fee_fixed_CustomCheck?: (v: number) => boolean
+}
+export const UserInfoValidate = (o?: UserInfo, opts: UserInfoOptions = {}, path: string = 'UserInfo::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.network_max_fee_bps !== 'number') return new Error(`${path}.network_max_fee_bps: is not a number`)
+ if (opts.network_max_fee_bps_CustomCheck && !opts.network_max_fee_bps_CustomCheck(o.network_max_fee_bps)) return new Error(`${path}.network_max_fee_bps: custom check failed`)
+
+ if (typeof o.network_max_fee_fixed !== 'number') return new Error(`${path}.network_max_fee_fixed: is not a number`)
+ if (opts.network_max_fee_fixed_CustomCheck && !opts.network_max_fee_fixed_CustomCheck(o.network_max_fee_fixed)) return new Error(`${path}.network_max_fee_fixed: custom check failed`)
+
+ if (typeof o.userId !== 'string') return new Error(`${path}.userId: is not a string`)
+ if (opts.userId_CustomCheck && !opts.userId_CustomCheck(o.userId)) return new Error(`${path}.userId: custom check failed`)
+
+ if (typeof o.balance !== 'number') return new Error(`${path}.balance: is not a number`)
+ if (opts.balance_CustomCheck && !opts.balance_CustomCheck(o.balance)) return new Error(`${path}.balance: custom check failed`)
+
+ if (typeof o.max_withdrawable !== 'number') return new Error(`${path}.max_withdrawable: is not a number`)
+ if (opts.max_withdrawable_CustomCheck && !opts.max_withdrawable_CustomCheck(o.max_withdrawable)) return new Error(`${path}.max_withdrawable: custom check failed`)
+
+ if (typeof o.user_identifier !== 'string') return new Error(`${path}.user_identifier: is not a string`)
+ if (opts.user_identifier_CustomCheck && !opts.user_identifier_CustomCheck(o.user_identifier)) return new Error(`${path}.user_identifier: custom check failed`)
+
+ if (typeof o.service_fee_bps !== 'number') return new Error(`${path}.service_fee_bps: is not a number`)
+ if (opts.service_fee_bps_CustomCheck && !opts.service_fee_bps_CustomCheck(o.service_fee_bps)) return new Error(`${path}.service_fee_bps: custom check failed`)
+
+ return null
+}
+
+export type UserOperation = {
+ confirmed: boolean
+ tx_hash: string
+ internal: boolean
+ paidAtUnix: number
+ service_fee: number
+ amount: number
+ identifier: string
+ operationId: string
+ network_fee: number
+ type: UserOperationType
+ inbound: boolean
+}
+export const UserOperationOptionalFields: [] = []
+export type UserOperationOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ amount_CustomCheck?: (v: number) => boolean
+ identifier_CustomCheck?: (v: string) => boolean
+ operationId_CustomCheck?: (v: string) => boolean
+ network_fee_CustomCheck?: (v: number) => boolean
+ type_CustomCheck?: (v: UserOperationType) => boolean
+ inbound_CustomCheck?: (v: boolean) => boolean
+ confirmed_CustomCheck?: (v: boolean) => boolean
+ tx_hash_CustomCheck?: (v: string) => boolean
+ internal_CustomCheck?: (v: boolean) => boolean
+ paidAtUnix_CustomCheck?: (v: number) => boolean
+ service_fee_CustomCheck?: (v: number) => boolean
+}
+export const UserOperationValidate = (o?: UserOperation, opts: UserOperationOptions = {}, path: string = 'UserOperation::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (!enumCheckUserOperationType(o.type)) return new Error(`${path}.type: is not a valid UserOperationType`)
+ if (opts.type_CustomCheck && !opts.type_CustomCheck(o.type)) return new Error(`${path}.type: custom check failed`)
+
+ if (typeof o.inbound !== 'boolean') return new Error(`${path}.inbound: is not a boolean`)
+ if (opts.inbound_CustomCheck && !opts.inbound_CustomCheck(o.inbound)) return new Error(`${path}.inbound: custom check failed`)
+
+ if (typeof o.amount !== 'number') return new Error(`${path}.amount: is not a number`)
+ if (opts.amount_CustomCheck && !opts.amount_CustomCheck(o.amount)) return new Error(`${path}.amount: custom check failed`)
+
+ if (typeof o.identifier !== 'string') return new Error(`${path}.identifier: is not a string`)
+ if (opts.identifier_CustomCheck && !opts.identifier_CustomCheck(o.identifier)) return new Error(`${path}.identifier: custom check failed`)
+
+ if (typeof o.operationId !== 'string') return new Error(`${path}.operationId: is not a string`)
+ if (opts.operationId_CustomCheck && !opts.operationId_CustomCheck(o.operationId)) return new Error(`${path}.operationId: custom check failed`)
+
+ if (typeof o.network_fee !== 'number') return new Error(`${path}.network_fee: is not a number`)
+ if (opts.network_fee_CustomCheck && !opts.network_fee_CustomCheck(o.network_fee)) return new Error(`${path}.network_fee: custom check failed`)
+
+ if (typeof o.paidAtUnix !== 'number') return new Error(`${path}.paidAtUnix: is not a number`)
+ if (opts.paidAtUnix_CustomCheck && !opts.paidAtUnix_CustomCheck(o.paidAtUnix)) return new Error(`${path}.paidAtUnix: custom check failed`)
+
+ if (typeof o.service_fee !== 'number') return new Error(`${path}.service_fee: is not a number`)
+ if (opts.service_fee_CustomCheck && !opts.service_fee_CustomCheck(o.service_fee)) return new Error(`${path}.service_fee: custom check failed`)
+
+ if (typeof o.confirmed !== 'boolean') return new Error(`${path}.confirmed: is not a boolean`)
+ if (opts.confirmed_CustomCheck && !opts.confirmed_CustomCheck(o.confirmed)) return new Error(`${path}.confirmed: custom check failed`)
+
+ if (typeof o.tx_hash !== 'string') return new Error(`${path}.tx_hash: is not a string`)
+ if (opts.tx_hash_CustomCheck && !opts.tx_hash_CustomCheck(o.tx_hash)) return new Error(`${path}.tx_hash: custom check failed`)
+
+ if (typeof o.internal !== 'boolean') return new Error(`${path}.internal: is not a boolean`)
+ if (opts.internal_CustomCheck && !opts.internal_CustomCheck(o.internal)) return new Error(`${path}.internal: custom check failed`)
+
+ return null
+}
+
+export type Empty = {
+}
+export const EmptyOptionalFields: [] = []
+export type EmptyOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+}
+export const EmptyValidate = (o?: Empty, opts: EmptyOptions = {}, path: string = 'Empty::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ return null
+}
+
+export type LndMetricsRequest = {
+ from_unix?: number
+ to_unix?: number
+}
+export type LndMetricsRequestOptionalField = 'from_unix' | 'to_unix'
+export const LndMetricsRequestOptionalFields: LndMetricsRequestOptionalField[] = ['from_unix', 'to_unix']
+export type LndMetricsRequestOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: LndMetricsRequestOptionalField[]
+ from_unix_CustomCheck?: (v?: number) => boolean
+ to_unix_CustomCheck?: (v?: number) => boolean
+}
+export const LndMetricsRequestValidate = (o?: LndMetricsRequest, opts: LndMetricsRequestOptions = {}, path: string = 'LndMetricsRequest::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if ((o.from_unix || opts.allOptionalsAreSet || opts.checkOptionalsAreSet?.includes('from_unix')) && typeof o.from_unix !== 'number') return new Error(`${path}.from_unix: is not a number`)
+ if (opts.from_unix_CustomCheck && !opts.from_unix_CustomCheck(o.from_unix)) return new Error(`${path}.from_unix: custom check failed`)
+
+ if ((o.to_unix || opts.allOptionalsAreSet || opts.checkOptionalsAreSet?.includes('to_unix')) && typeof o.to_unix !== 'number') return new Error(`${path}.to_unix: is not a number`)
+ if (opts.to_unix_CustomCheck && !opts.to_unix_CustomCheck(o.to_unix)) return new Error(`${path}.to_unix: custom check failed`)
+
+ return null
+}
+
+export type LndGetInfoResponse = {
+ alias: string
+}
+export const LndGetInfoResponseOptionalFields: [] = []
+export type LndGetInfoResponseOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ alias_CustomCheck?: (v: string) => boolean
+}
+export const LndGetInfoResponseValidate = (o?: LndGetInfoResponse, opts: LndGetInfoResponseOptions = {}, path: string = 'LndGetInfoResponse::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.alias !== 'string') return new Error(`${path}.alias: is not a string`)
+ if (opts.alias_CustomCheck && !opts.alias_CustomCheck(o.alias)) return new Error(`${path}.alias: custom check failed`)
+
+ return null
+}
+
+export type PayAppUserInvoiceRequest = {
+ amount: number
+ user_identifier: string
+ invoice: string
+}
+export const PayAppUserInvoiceRequestOptionalFields: [] = []
+export type PayAppUserInvoiceRequestOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ invoice_CustomCheck?: (v: string) => boolean
+ amount_CustomCheck?: (v: number) => boolean
+ user_identifier_CustomCheck?: (v: string) => boolean
+}
+export const PayAppUserInvoiceRequestValidate = (o?: PayAppUserInvoiceRequest, opts: PayAppUserInvoiceRequestOptions = {}, path: string = 'PayAppUserInvoiceRequest::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.user_identifier !== 'string') return new Error(`${path}.user_identifier: is not a string`)
+ if (opts.user_identifier_CustomCheck && !opts.user_identifier_CustomCheck(o.user_identifier)) return new Error(`${path}.user_identifier: custom check failed`)
+
+ if (typeof o.invoice !== 'string') return new Error(`${path}.invoice: is not a string`)
+ if (opts.invoice_CustomCheck && !opts.invoice_CustomCheck(o.invoice)) return new Error(`${path}.invoice: custom check failed`)
+
+ if (typeof o.amount !== 'number') return new Error(`${path}.amount: is not a number`)
+ if (opts.amount_CustomCheck && !opts.amount_CustomCheck(o.amount)) return new Error(`${path}.amount: custom check failed`)
+
return null
}
@@ -619,359 +943,269 @@ export const ProductValidate = (o?: Product, opts: ProductOptions = {}, path: st
return null
}
-export type LinkNPubThroughTokenRequest = {
- token: string
- nostr_pub: string
+export type LndGetInfoRequest = {
+ nodeId: number
}
-export const LinkNPubThroughTokenRequestOptionalFields: [] = []
-export type LinkNPubThroughTokenRequestOptions = OptionsBaseMessage & {
+export const LndGetInfoRequestOptionalFields: [] = []
+export type LndGetInfoRequestOptions = OptionsBaseMessage & {
checkOptionalsAreSet?: []
- token_CustomCheck?: (v: string) => boolean
- nostr_pub_CustomCheck?: (v: string) => boolean
+ nodeId_CustomCheck?: (v: number) => boolean
}
-export const LinkNPubThroughTokenRequestValidate = (o?: LinkNPubThroughTokenRequest, opts: LinkNPubThroughTokenRequestOptions = {}, path: string = 'LinkNPubThroughTokenRequest::root.'): Error | null => {
+export const LndGetInfoRequestValidate = (o?: LndGetInfoRequest, opts: LndGetInfoRequestOptions = {}, path: string = 'LndGetInfoRequest::root.'): Error | null => {
if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
- if (typeof o.token !== 'string') return new Error(`${path}.token: is not a string`)
- if (opts.token_CustomCheck && !opts.token_CustomCheck(o.token)) return new Error(`${path}.token: custom check failed`)
+ if (typeof o.nodeId !== 'number') return new Error(`${path}.nodeId: is not a number`)
+ if (opts.nodeId_CustomCheck && !opts.nodeId_CustomCheck(o.nodeId)) return new Error(`${path}.nodeId: custom check failed`)
+
+ return null
+}
+
+export type BanUserResponse = {
+ balance_sats: number
+ banned_app_users: BannedAppUser[]
+}
+export const BanUserResponseOptionalFields: [] = []
+export type BanUserResponseOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ balance_sats_CustomCheck?: (v: number) => boolean
+ banned_app_users_ItemOptions?: BannedAppUserOptions
+ banned_app_users_CustomCheck?: (v: BannedAppUser[]) => boolean
+}
+export const BanUserResponseValidate = (o?: BanUserResponse, opts: BanUserResponseOptions = {}, path: string = 'BanUserResponse::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.balance_sats !== 'number') return new Error(`${path}.balance_sats: is not a number`)
+ if (opts.balance_sats_CustomCheck && !opts.balance_sats_CustomCheck(o.balance_sats)) return new Error(`${path}.balance_sats: custom check failed`)
+
+ if (!Array.isArray(o.banned_app_users)) return new Error(`${path}.banned_app_users: is not an array`)
+ for (let index = 0; index < o.banned_app_users.length; index++) {
+ const banned_app_usersErr = BannedAppUserValidate(o.banned_app_users[index], opts.banned_app_users_ItemOptions, `${path}.banned_app_users[${index}]`)
+ if (banned_app_usersErr !== null) return banned_app_usersErr
+ }
+ if (opts.banned_app_users_CustomCheck && !opts.banned_app_users_CustomCheck(o.banned_app_users)) return new Error(`${path}.banned_app_users: custom check failed`)
+
+ return null
+}
+
+export type AuthAppRequest = {
+ name: string
+ allow_user_creation?: boolean
+}
+export type AuthAppRequestOptionalField = 'allow_user_creation'
+export const AuthAppRequestOptionalFields: AuthAppRequestOptionalField[] = ['allow_user_creation']
+export type AuthAppRequestOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: AuthAppRequestOptionalField[]
+ allow_user_creation_CustomCheck?: (v?: boolean) => boolean
+ name_CustomCheck?: (v: string) => boolean
+}
+export const AuthAppRequestValidate = (o?: AuthAppRequest, opts: AuthAppRequestOptions = {}, path: string = 'AuthAppRequest::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.name !== 'string') return new Error(`${path}.name: is not a string`)
+ if (opts.name_CustomCheck && !opts.name_CustomCheck(o.name)) return new Error(`${path}.name: custom check failed`)
+
+ if ((o.allow_user_creation || opts.allOptionalsAreSet || opts.checkOptionalsAreSet?.includes('allow_user_creation')) && typeof o.allow_user_creation !== 'boolean') return new Error(`${path}.allow_user_creation: is not a boolean`)
+ if (opts.allow_user_creation_CustomCheck && !opts.allow_user_creation_CustomCheck(o.allow_user_creation)) return new Error(`${path}.allow_user_creation: custom check failed`)
+
+ return null
+}
+
+export type PayAddressRequest = {
+ amoutSats: number
+ satsPerVByte: number
+ address: string
+}
+export const PayAddressRequestOptionalFields: [] = []
+export type PayAddressRequestOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ address_CustomCheck?: (v: string) => boolean
+ amoutSats_CustomCheck?: (v: number) => boolean
+ satsPerVByte_CustomCheck?: (v: number) => boolean
+}
+export const PayAddressRequestValidate = (o?: PayAddressRequest, opts: PayAddressRequestOptions = {}, path: string = 'PayAddressRequest::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.address !== 'string') return new Error(`${path}.address: is not a string`)
+ if (opts.address_CustomCheck && !opts.address_CustomCheck(o.address)) return new Error(`${path}.address: custom check failed`)
+
+ if (typeof o.amoutSats !== 'number') return new Error(`${path}.amoutSats: is not a number`)
+ if (opts.amoutSats_CustomCheck && !opts.amoutSats_CustomCheck(o.amoutSats)) return new Error(`${path}.amoutSats: custom check failed`)
+
+ if (typeof o.satsPerVByte !== 'number') return new Error(`${path}.satsPerVByte: is not a number`)
+ if (opts.satsPerVByte_CustomCheck && !opts.satsPerVByte_CustomCheck(o.satsPerVByte)) return new Error(`${path}.satsPerVByte: custom check failed`)
+
+ return null
+}
+
+export type AppsMetricsRequest = {
+ from_unix?: number
+ to_unix?: number
+ include_operations?: boolean
+}
+export type AppsMetricsRequestOptionalField = 'from_unix' | 'to_unix' | 'include_operations'
+export const AppsMetricsRequestOptionalFields: AppsMetricsRequestOptionalField[] = ['from_unix', 'to_unix', 'include_operations']
+export type AppsMetricsRequestOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: AppsMetricsRequestOptionalField[]
+ to_unix_CustomCheck?: (v?: number) => boolean
+ include_operations_CustomCheck?: (v?: boolean) => boolean
+ from_unix_CustomCheck?: (v?: number) => boolean
+}
+export const AppsMetricsRequestValidate = (o?: AppsMetricsRequest, opts: AppsMetricsRequestOptions = {}, path: string = 'AppsMetricsRequest::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if ((o.from_unix || opts.allOptionalsAreSet || opts.checkOptionalsAreSet?.includes('from_unix')) && typeof o.from_unix !== 'number') return new Error(`${path}.from_unix: is not a number`)
+ if (opts.from_unix_CustomCheck && !opts.from_unix_CustomCheck(o.from_unix)) return new Error(`${path}.from_unix: custom check failed`)
+
+ if ((o.to_unix || opts.allOptionalsAreSet || opts.checkOptionalsAreSet?.includes('to_unix')) && typeof o.to_unix !== 'number') return new Error(`${path}.to_unix: is not a number`)
+ if (opts.to_unix_CustomCheck && !opts.to_unix_CustomCheck(o.to_unix)) return new Error(`${path}.to_unix: custom check failed`)
+
+ if ((o.include_operations || opts.allOptionalsAreSet || opts.checkOptionalsAreSet?.includes('include_operations')) && typeof o.include_operations !== 'boolean') return new Error(`${path}.include_operations: is not a boolean`)
+ if (opts.include_operations_CustomCheck && !opts.include_operations_CustomCheck(o.include_operations)) return new Error(`${path}.include_operations: custom check failed`)
+
+ return null
+}
+
+export type AppsMetrics = {
+ apps: AppMetrics[]
+}
+export const AppsMetricsOptionalFields: [] = []
+export type AppsMetricsOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ apps_ItemOptions?: AppMetricsOptions
+ apps_CustomCheck?: (v: AppMetrics[]) => boolean
+}
+export const AppsMetricsValidate = (o?: AppsMetrics, opts: AppsMetricsOptions = {}, path: string = 'AppsMetrics::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (!Array.isArray(o.apps)) return new Error(`${path}.apps: is not an array`)
+ for (let index = 0; index < o.apps.length; index++) {
+ const appsErr = AppMetricsValidate(o.apps[index], opts.apps_ItemOptions, `${path}.apps[${index}]`)
+ if (appsErr !== null) return appsErr
+ }
+ if (opts.apps_CustomCheck && !opts.apps_CustomCheck(o.apps)) return new Error(`${path}.apps: custom check failed`)
+
+ return null
+}
+
+export type RoutingEvent = {
+ incoming_htlc_id: number
+ outgoing_channel_id: number
+ outgoing_htlc_id: number
+ timestamp_ns: number
+ event_type: string
+ settled: boolean
+ offchain: boolean
+ incoming_channel_id: number
+ forward_fail_event: boolean
+ outgoing_amt_msat: number
+ failure_string: string
+ incoming_amt_msat: number
+}
+export const RoutingEventOptionalFields: [] = []
+export type RoutingEventOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ incoming_amt_msat_CustomCheck?: (v: number) => boolean
+ outgoing_amt_msat_CustomCheck?: (v: number) => boolean
+ failure_string_CustomCheck?: (v: string) => boolean
+ incoming_channel_id_CustomCheck?: (v: number) => boolean
+ incoming_htlc_id_CustomCheck?: (v: number) => boolean
+ outgoing_channel_id_CustomCheck?: (v: number) => boolean
+ outgoing_htlc_id_CustomCheck?: (v: number) => boolean
+ timestamp_ns_CustomCheck?: (v: number) => boolean
+ event_type_CustomCheck?: (v: string) => boolean
+ settled_CustomCheck?: (v: boolean) => boolean
+ offchain_CustomCheck?: (v: boolean) => boolean
+ forward_fail_event_CustomCheck?: (v: boolean) => boolean
+}
+export const RoutingEventValidate = (o?: RoutingEvent, opts: RoutingEventOptions = {}, path: string = 'RoutingEvent::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.incoming_htlc_id !== 'number') return new Error(`${path}.incoming_htlc_id: is not a number`)
+ if (opts.incoming_htlc_id_CustomCheck && !opts.incoming_htlc_id_CustomCheck(o.incoming_htlc_id)) return new Error(`${path}.incoming_htlc_id: custom check failed`)
+
+ if (typeof o.outgoing_channel_id !== 'number') return new Error(`${path}.outgoing_channel_id: is not a number`)
+ if (opts.outgoing_channel_id_CustomCheck && !opts.outgoing_channel_id_CustomCheck(o.outgoing_channel_id)) return new Error(`${path}.outgoing_channel_id: custom check failed`)
+
+ if (typeof o.outgoing_htlc_id !== 'number') return new Error(`${path}.outgoing_htlc_id: is not a number`)
+ if (opts.outgoing_htlc_id_CustomCheck && !opts.outgoing_htlc_id_CustomCheck(o.outgoing_htlc_id)) return new Error(`${path}.outgoing_htlc_id: custom check failed`)
+
+ if (typeof o.timestamp_ns !== 'number') return new Error(`${path}.timestamp_ns: is not a number`)
+ if (opts.timestamp_ns_CustomCheck && !opts.timestamp_ns_CustomCheck(o.timestamp_ns)) return new Error(`${path}.timestamp_ns: custom check failed`)
+
+ if (typeof o.event_type !== 'string') return new Error(`${path}.event_type: is not a string`)
+ if (opts.event_type_CustomCheck && !opts.event_type_CustomCheck(o.event_type)) return new Error(`${path}.event_type: custom check failed`)
+
+ if (typeof o.settled !== 'boolean') return new Error(`${path}.settled: is not a boolean`)
+ if (opts.settled_CustomCheck && !opts.settled_CustomCheck(o.settled)) return new Error(`${path}.settled: custom check failed`)
+
+ if (typeof o.offchain !== 'boolean') return new Error(`${path}.offchain: is not a boolean`)
+ if (opts.offchain_CustomCheck && !opts.offchain_CustomCheck(o.offchain)) return new Error(`${path}.offchain: custom check failed`)
+
+ if (typeof o.incoming_channel_id !== 'number') return new Error(`${path}.incoming_channel_id: is not a number`)
+ if (opts.incoming_channel_id_CustomCheck && !opts.incoming_channel_id_CustomCheck(o.incoming_channel_id)) return new Error(`${path}.incoming_channel_id: custom check failed`)
+
+ if (typeof o.forward_fail_event !== 'boolean') return new Error(`${path}.forward_fail_event: is not a boolean`)
+ if (opts.forward_fail_event_CustomCheck && !opts.forward_fail_event_CustomCheck(o.forward_fail_event)) return new Error(`${path}.forward_fail_event: custom check failed`)
+
+ if (typeof o.outgoing_amt_msat !== 'number') return new Error(`${path}.outgoing_amt_msat: is not a number`)
+ if (opts.outgoing_amt_msat_CustomCheck && !opts.outgoing_amt_msat_CustomCheck(o.outgoing_amt_msat)) return new Error(`${path}.outgoing_amt_msat: custom check failed`)
+
+ if (typeof o.failure_string !== 'string') return new Error(`${path}.failure_string: is not a string`)
+ if (opts.failure_string_CustomCheck && !opts.failure_string_CustomCheck(o.failure_string)) return new Error(`${path}.failure_string: custom check failed`)
+
+ if (typeof o.incoming_amt_msat !== 'number') return new Error(`${path}.incoming_amt_msat: is not a number`)
+ if (opts.incoming_amt_msat_CustomCheck && !opts.incoming_amt_msat_CustomCheck(o.incoming_amt_msat)) return new Error(`${path}.incoming_amt_msat: custom check failed`)
+
+ return null
+}
+
+export type BannedAppUser = {
+ app_name: string
+ app_id: string
+ user_identifier: string
+ nostr_pub: string
+}
+export const BannedAppUserOptionalFields: [] = []
+export type BannedAppUserOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ app_name_CustomCheck?: (v: string) => boolean
+ app_id_CustomCheck?: (v: string) => boolean
+ user_identifier_CustomCheck?: (v: string) => boolean
+ nostr_pub_CustomCheck?: (v: string) => boolean
+}
+export const BannedAppUserValidate = (o?: BannedAppUser, opts: BannedAppUserOptions = {}, path: string = 'BannedAppUser::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.app_id !== 'string') return new Error(`${path}.app_id: is not a string`)
+ if (opts.app_id_CustomCheck && !opts.app_id_CustomCheck(o.app_id)) return new Error(`${path}.app_id: custom check failed`)
+
+ if (typeof o.user_identifier !== 'string') return new Error(`${path}.user_identifier: is not a string`)
+ if (opts.user_identifier_CustomCheck && !opts.user_identifier_CustomCheck(o.user_identifier)) return new Error(`${path}.user_identifier: custom check failed`)
if (typeof o.nostr_pub !== 'string') return new Error(`${path}.nostr_pub: is not a string`)
if (opts.nostr_pub_CustomCheck && !opts.nostr_pub_CustomCheck(o.nostr_pub)) return new Error(`${path}.nostr_pub: custom check failed`)
- return null
-}
-
-export type EncryptionExchangeRequest = {
- publicKey: string
- deviceId: string
-}
-export const EncryptionExchangeRequestOptionalFields: [] = []
-export type EncryptionExchangeRequestOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- publicKey_CustomCheck?: (v: string) => boolean
- deviceId_CustomCheck?: (v: string) => boolean
-}
-export const EncryptionExchangeRequestValidate = (o?: EncryptionExchangeRequest, opts: EncryptionExchangeRequestOptions = {}, path: string = 'EncryptionExchangeRequest::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.publicKey !== 'string') return new Error(`${path}.publicKey: is not a string`)
- if (opts.publicKey_CustomCheck && !opts.publicKey_CustomCheck(o.publicKey)) return new Error(`${path}.publicKey: custom check failed`)
-
- if (typeof o.deviceId !== 'string') return new Error(`${path}.deviceId: is not a string`)
- if (opts.deviceId_CustomCheck && !opts.deviceId_CustomCheck(o.deviceId)) return new Error(`${path}.deviceId: custom check failed`)
-
- return null
-}
-
-export type PayAppUserInvoiceRequest = {
- user_identifier: string
- invoice: string
- amount: number
-}
-export const PayAppUserInvoiceRequestOptionalFields: [] = []
-export type PayAppUserInvoiceRequestOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- user_identifier_CustomCheck?: (v: string) => boolean
- invoice_CustomCheck?: (v: string) => boolean
- amount_CustomCheck?: (v: number) => boolean
-}
-export const PayAppUserInvoiceRequestValidate = (o?: PayAppUserInvoiceRequest, opts: PayAppUserInvoiceRequestOptions = {}, path: string = 'PayAppUserInvoiceRequest::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.user_identifier !== 'string') return new Error(`${path}.user_identifier: is not a string`)
- if (opts.user_identifier_CustomCheck && !opts.user_identifier_CustomCheck(o.user_identifier)) return new Error(`${path}.user_identifier: custom check failed`)
-
- if (typeof o.invoice !== 'string') return new Error(`${path}.invoice: is not a string`)
- if (opts.invoice_CustomCheck && !opts.invoice_CustomCheck(o.invoice)) return new Error(`${path}.invoice: custom check failed`)
-
- if (typeof o.amount !== 'number') return new Error(`${path}.amount: is not a number`)
- if (opts.amount_CustomCheck && !opts.amount_CustomCheck(o.amount)) return new Error(`${path}.amount: custom check failed`)
-
- return null
-}
-
-export type SendAppUserToAppPaymentRequest = {
- from_user_identifier: string
- amount: number
-}
-export const SendAppUserToAppPaymentRequestOptionalFields: [] = []
-export type SendAppUserToAppPaymentRequestOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- from_user_identifier_CustomCheck?: (v: string) => boolean
- amount_CustomCheck?: (v: number) => boolean
-}
-export const SendAppUserToAppPaymentRequestValidate = (o?: SendAppUserToAppPaymentRequest, opts: SendAppUserToAppPaymentRequestOptions = {}, path: string = 'SendAppUserToAppPaymentRequest::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.from_user_identifier !== 'string') return new Error(`${path}.from_user_identifier: is not a string`)
- if (opts.from_user_identifier_CustomCheck && !opts.from_user_identifier_CustomCheck(o.from_user_identifier)) return new Error(`${path}.from_user_identifier: custom check failed`)
-
- if (typeof o.amount !== 'number') return new Error(`${path}.amount: is not a number`)
- if (opts.amount_CustomCheck && !opts.amount_CustomCheck(o.amount)) return new Error(`${path}.amount: custom check failed`)
-
- return null
-}
-
-export type UserOperation = {
- paidAtUnix: number
- type: UserOperationType
- inbound: boolean
- amount: number
- identifier: string
- operationId: string
- service_fee: number
- network_fee: number
- confirmed: boolean
- tx_hash: string
- internal: boolean
-}
-export const UserOperationOptionalFields: [] = []
-export type UserOperationOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- paidAtUnix_CustomCheck?: (v: number) => boolean
- type_CustomCheck?: (v: UserOperationType) => boolean
- inbound_CustomCheck?: (v: boolean) => boolean
- amount_CustomCheck?: (v: number) => boolean
- identifier_CustomCheck?: (v: string) => boolean
- operationId_CustomCheck?: (v: string) => boolean
- service_fee_CustomCheck?: (v: number) => boolean
- network_fee_CustomCheck?: (v: number) => boolean
- confirmed_CustomCheck?: (v: boolean) => boolean
- tx_hash_CustomCheck?: (v: string) => boolean
- internal_CustomCheck?: (v: boolean) => boolean
-}
-export const UserOperationValidate = (o?: UserOperation, opts: UserOperationOptions = {}, path: string = 'UserOperation::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.paidAtUnix !== 'number') return new Error(`${path}.paidAtUnix: is not a number`)
- if (opts.paidAtUnix_CustomCheck && !opts.paidAtUnix_CustomCheck(o.paidAtUnix)) return new Error(`${path}.paidAtUnix: custom check failed`)
-
- if (!enumCheckUserOperationType(o.type)) return new Error(`${path}.type: is not a valid UserOperationType`)
- if (opts.type_CustomCheck && !opts.type_CustomCheck(o.type)) return new Error(`${path}.type: custom check failed`)
-
- if (typeof o.inbound !== 'boolean') return new Error(`${path}.inbound: is not a boolean`)
- if (opts.inbound_CustomCheck && !opts.inbound_CustomCheck(o.inbound)) return new Error(`${path}.inbound: custom check failed`)
-
- if (typeof o.amount !== 'number') return new Error(`${path}.amount: is not a number`)
- if (opts.amount_CustomCheck && !opts.amount_CustomCheck(o.amount)) return new Error(`${path}.amount: custom check failed`)
-
- if (typeof o.identifier !== 'string') return new Error(`${path}.identifier: is not a string`)
- if (opts.identifier_CustomCheck && !opts.identifier_CustomCheck(o.identifier)) return new Error(`${path}.identifier: custom check failed`)
-
- if (typeof o.operationId !== 'string') return new Error(`${path}.operationId: is not a string`)
- if (opts.operationId_CustomCheck && !opts.operationId_CustomCheck(o.operationId)) return new Error(`${path}.operationId: custom check failed`)
-
- if (typeof o.service_fee !== 'number') return new Error(`${path}.service_fee: is not a number`)
- if (opts.service_fee_CustomCheck && !opts.service_fee_CustomCheck(o.service_fee)) return new Error(`${path}.service_fee: custom check failed`)
-
- if (typeof o.network_fee !== 'number') return new Error(`${path}.network_fee: is not a number`)
- if (opts.network_fee_CustomCheck && !opts.network_fee_CustomCheck(o.network_fee)) return new Error(`${path}.network_fee: custom check failed`)
-
- if (typeof o.confirmed !== 'boolean') return new Error(`${path}.confirmed: is not a boolean`)
- if (opts.confirmed_CustomCheck && !opts.confirmed_CustomCheck(o.confirmed)) return new Error(`${path}.confirmed: custom check failed`)
-
- if (typeof o.tx_hash !== 'string') return new Error(`${path}.tx_hash: is not a string`)
- if (opts.tx_hash_CustomCheck && !opts.tx_hash_CustomCheck(o.tx_hash)) return new Error(`${path}.tx_hash: custom check failed`)
-
- if (typeof o.internal !== 'boolean') return new Error(`${path}.internal: is not a boolean`)
- if (opts.internal_CustomCheck && !opts.internal_CustomCheck(o.internal)) return new Error(`${path}.internal: custom check failed`)
-
- return null
-}
-
-export type SendAppUserToAppUserPaymentRequest = {
- from_user_identifier: string
- to_user_identifier: string
- amount: number
-}
-export const SendAppUserToAppUserPaymentRequestOptionalFields: [] = []
-export type SendAppUserToAppUserPaymentRequestOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- from_user_identifier_CustomCheck?: (v: string) => boolean
- to_user_identifier_CustomCheck?: (v: string) => boolean
- amount_CustomCheck?: (v: number) => boolean
-}
-export const SendAppUserToAppUserPaymentRequestValidate = (o?: SendAppUserToAppUserPaymentRequest, opts: SendAppUserToAppUserPaymentRequestOptions = {}, path: string = 'SendAppUserToAppUserPaymentRequest::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.from_user_identifier !== 'string') return new Error(`${path}.from_user_identifier: is not a string`)
- if (opts.from_user_identifier_CustomCheck && !opts.from_user_identifier_CustomCheck(o.from_user_identifier)) return new Error(`${path}.from_user_identifier: custom check failed`)
-
- if (typeof o.to_user_identifier !== 'string') return new Error(`${path}.to_user_identifier: is not a string`)
- if (opts.to_user_identifier_CustomCheck && !opts.to_user_identifier_CustomCheck(o.to_user_identifier)) return new Error(`${path}.to_user_identifier: custom check failed`)
-
- if (typeof o.amount !== 'number') return new Error(`${path}.amount: is not a number`)
- if (opts.amount_CustomCheck && !opts.amount_CustomCheck(o.amount)) return new Error(`${path}.amount: custom check failed`)
-
- return null
-}
-
-export type NewInvoiceRequest = {
- amountSats: number
- memo: string
-}
-export const NewInvoiceRequestOptionalFields: [] = []
-export type NewInvoiceRequestOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- amountSats_CustomCheck?: (v: number) => boolean
- memo_CustomCheck?: (v: string) => boolean
-}
-export const NewInvoiceRequestValidate = (o?: NewInvoiceRequest, opts: NewInvoiceRequestOptions = {}, path: string = 'NewInvoiceRequest::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.amountSats !== 'number') return new Error(`${path}.amountSats: is not a number`)
- if (opts.amountSats_CustomCheck && !opts.amountSats_CustomCheck(o.amountSats)) return new Error(`${path}.amountSats: custom check failed`)
-
- if (typeof o.memo !== 'string') return new Error(`${path}.memo: is not a string`)
- if (opts.memo_CustomCheck && !opts.memo_CustomCheck(o.memo)) return new Error(`${path}.memo: custom check failed`)
-
- return null
-}
-
-export type MigrationUpdate = {
- closure?: ClosureMigration
- relays?: RelaysMigration
-}
-export type MigrationUpdateOptionalField = 'closure' | 'relays'
-export const MigrationUpdateOptionalFields: MigrationUpdateOptionalField[] = ['closure', 'relays']
-export type MigrationUpdateOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: MigrationUpdateOptionalField[]
- closure_Options?: ClosureMigrationOptions
- relays_Options?: RelaysMigrationOptions
-}
-export const MigrationUpdateValidate = (o?: MigrationUpdate, opts: MigrationUpdateOptions = {}, path: string = 'MigrationUpdate::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.closure === 'object' || opts.allOptionalsAreSet || opts.checkOptionalsAreSet?.includes('closure')) {
- const closureErr = ClosureMigrationValidate(o.closure, opts.closure_Options, `${path}.closure`)
- if (closureErr !== null) return closureErr
- }
-
-
- if (typeof o.relays === 'object' || opts.allOptionalsAreSet || opts.checkOptionalsAreSet?.includes('relays')) {
- const relaysErr = RelaysMigrationValidate(o.relays, opts.relays_Options, `${path}.relays`)
- if (relaysErr !== null) return relaysErr
- }
-
-
- return null
-}
-
-export type AddAppUserInvoiceRequest = {
- receiver_identifier: string
- payer_identifier: string
- http_callback_url: string
- invoice_req: NewInvoiceRequest
-}
-export const AddAppUserInvoiceRequestOptionalFields: [] = []
-export type AddAppUserInvoiceRequestOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- receiver_identifier_CustomCheck?: (v: string) => boolean
- payer_identifier_CustomCheck?: (v: string) => boolean
- http_callback_url_CustomCheck?: (v: string) => boolean
- invoice_req_Options?: NewInvoiceRequestOptions
-}
-export const AddAppUserInvoiceRequestValidate = (o?: AddAppUserInvoiceRequest, opts: AddAppUserInvoiceRequestOptions = {}, path: string = 'AddAppUserInvoiceRequest::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.receiver_identifier !== 'string') return new Error(`${path}.receiver_identifier: is not a string`)
- if (opts.receiver_identifier_CustomCheck && !opts.receiver_identifier_CustomCheck(o.receiver_identifier)) return new Error(`${path}.receiver_identifier: custom check failed`)
-
- if (typeof o.payer_identifier !== 'string') return new Error(`${path}.payer_identifier: is not a string`)
- if (opts.payer_identifier_CustomCheck && !opts.payer_identifier_CustomCheck(o.payer_identifier)) return new Error(`${path}.payer_identifier: custom check failed`)
-
- if (typeof o.http_callback_url !== 'string') return new Error(`${path}.http_callback_url: is not a string`)
- if (opts.http_callback_url_CustomCheck && !opts.http_callback_url_CustomCheck(o.http_callback_url)) return new Error(`${path}.http_callback_url: custom check failed`)
-
- const invoice_reqErr = NewInvoiceRequestValidate(o.invoice_req, opts.invoice_req_Options, `${path}.invoice_req`)
- if (invoice_reqErr !== null) return invoice_reqErr
-
-
- return null
-}
-
-export type DecodeInvoiceRequest = {
- invoice: string
-}
-export const DecodeInvoiceRequestOptionalFields: [] = []
-export type DecodeInvoiceRequestOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- invoice_CustomCheck?: (v: string) => boolean
-}
-export const DecodeInvoiceRequestValidate = (o?: DecodeInvoiceRequest, opts: DecodeInvoiceRequestOptions = {}, path: string = 'DecodeInvoiceRequest::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.invoice !== 'string') return new Error(`${path}.invoice: is not a string`)
- if (opts.invoice_CustomCheck && !opts.invoice_CustomCheck(o.invoice)) return new Error(`${path}.invoice: custom check failed`)
-
- return null
-}
-
-export type UserInfo = {
- userId: string
- balance: number
- max_withdrawable: number
- user_identifier: string
- service_fee_bps: number
- network_max_fee_bps: number
- network_max_fee_fixed: number
-}
-export const UserInfoOptionalFields: [] = []
-export type UserInfoOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- userId_CustomCheck?: (v: string) => boolean
- balance_CustomCheck?: (v: number) => boolean
- max_withdrawable_CustomCheck?: (v: number) => boolean
- user_identifier_CustomCheck?: (v: string) => boolean
- service_fee_bps_CustomCheck?: (v: number) => boolean
- network_max_fee_bps_CustomCheck?: (v: number) => boolean
- network_max_fee_fixed_CustomCheck?: (v: number) => boolean
-}
-export const UserInfoValidate = (o?: UserInfo, opts: UserInfoOptions = {}, path: string = 'UserInfo::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.userId !== 'string') return new Error(`${path}.userId: is not a string`)
- if (opts.userId_CustomCheck && !opts.userId_CustomCheck(o.userId)) return new Error(`${path}.userId: custom check failed`)
-
- if (typeof o.balance !== 'number') return new Error(`${path}.balance: is not a number`)
- if (opts.balance_CustomCheck && !opts.balance_CustomCheck(o.balance)) return new Error(`${path}.balance: custom check failed`)
-
- if (typeof o.max_withdrawable !== 'number') return new Error(`${path}.max_withdrawable: is not a number`)
- if (opts.max_withdrawable_CustomCheck && !opts.max_withdrawable_CustomCheck(o.max_withdrawable)) return new Error(`${path}.max_withdrawable: custom check failed`)
-
- if (typeof o.user_identifier !== 'string') return new Error(`${path}.user_identifier: is not a string`)
- if (opts.user_identifier_CustomCheck && !opts.user_identifier_CustomCheck(o.user_identifier)) return new Error(`${path}.user_identifier: custom check failed`)
-
- if (typeof o.service_fee_bps !== 'number') return new Error(`${path}.service_fee_bps: is not a number`)
- if (opts.service_fee_bps_CustomCheck && !opts.service_fee_bps_CustomCheck(o.service_fee_bps)) return new Error(`${path}.service_fee_bps: custom check failed`)
-
- if (typeof o.network_max_fee_bps !== 'number') return new Error(`${path}.network_max_fee_bps: is not a number`)
- if (opts.network_max_fee_bps_CustomCheck && !opts.network_max_fee_bps_CustomCheck(o.network_max_fee_bps)) return new Error(`${path}.network_max_fee_bps: custom check failed`)
-
- if (typeof o.network_max_fee_fixed !== 'number') return new Error(`${path}.network_max_fee_fixed: is not a number`)
- if (opts.network_max_fee_fixed_CustomCheck && !opts.network_max_fee_fixed_CustomCheck(o.network_max_fee_fixed)) return new Error(`${path}.network_max_fee_fixed: custom check failed`)
+ if (typeof o.app_name !== 'string') return new Error(`${path}.app_name: is not a string`)
+ if (opts.app_name_CustomCheck && !opts.app_name_CustomCheck(o.app_name)) return new Error(`${path}.app_name: custom check failed`)
return null
}
export type GetUserOperationsResponse = {
- latestOutgoingInvoiceOperations: UserOperations
latestIncomingInvoiceOperations: UserOperations
latestOutgoingTxOperations: UserOperations
latestIncomingTxOperations: UserOperations
latestOutgoingUserToUserPayemnts: UserOperations
latestIncomingUserToUserPayemnts: UserOperations
+ latestOutgoingInvoiceOperations: UserOperations
}
export const GetUserOperationsResponseOptionalFields: [] = []
export type GetUserOperationsResponseOptions = OptionsBaseMessage & {
@@ -1014,6 +1248,823 @@ export const GetUserOperationsResponseValidate = (o?: GetUserOperationsResponse,
return null
}
+export type RequestNPubLinkingTokenResponse = {
+ token: string
+}
+export const RequestNPubLinkingTokenResponseOptionalFields: [] = []
+export type RequestNPubLinkingTokenResponseOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ token_CustomCheck?: (v: string) => boolean
+}
+export const RequestNPubLinkingTokenResponseValidate = (o?: RequestNPubLinkingTokenResponse, opts: RequestNPubLinkingTokenResponseOptions = {}, path: string = 'RequestNPubLinkingTokenResponse::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.token !== 'string') return new Error(`${path}.token: is not a string`)
+ if (opts.token_CustomCheck && !opts.token_CustomCheck(o.token)) return new Error(`${path}.token: custom check failed`)
+
+ return null
+}
+
+export type UsageMetric = {
+ handle_in_nano: number
+ batch: boolean
+ batch_size: number
+ parsed_in_nano: number
+ validate_in_nano: number
+ rpc_name: string
+ nostr: boolean
+ processed_at_ms: number
+ auth_in_nano: number
+}
+export const UsageMetricOptionalFields: [] = []
+export type UsageMetricOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ handle_in_nano_CustomCheck?: (v: number) => boolean
+ batch_CustomCheck?: (v: boolean) => boolean
+ batch_size_CustomCheck?: (v: number) => boolean
+ parsed_in_nano_CustomCheck?: (v: number) => boolean
+ validate_in_nano_CustomCheck?: (v: number) => boolean
+ rpc_name_CustomCheck?: (v: string) => boolean
+ nostr_CustomCheck?: (v: boolean) => boolean
+ processed_at_ms_CustomCheck?: (v: number) => boolean
+ auth_in_nano_CustomCheck?: (v: number) => boolean
+}
+export const UsageMetricValidate = (o?: UsageMetric, opts: UsageMetricOptions = {}, path: string = 'UsageMetric::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.handle_in_nano !== 'number') return new Error(`${path}.handle_in_nano: is not a number`)
+ if (opts.handle_in_nano_CustomCheck && !opts.handle_in_nano_CustomCheck(o.handle_in_nano)) return new Error(`${path}.handle_in_nano: custom check failed`)
+
+ if (typeof o.batch !== 'boolean') return new Error(`${path}.batch: is not a boolean`)
+ if (opts.batch_CustomCheck && !opts.batch_CustomCheck(o.batch)) return new Error(`${path}.batch: custom check failed`)
+
+ if (typeof o.batch_size !== 'number') return new Error(`${path}.batch_size: is not a number`)
+ if (opts.batch_size_CustomCheck && !opts.batch_size_CustomCheck(o.batch_size)) return new Error(`${path}.batch_size: custom check failed`)
+
+ if (typeof o.parsed_in_nano !== 'number') return new Error(`${path}.parsed_in_nano: is not a number`)
+ if (opts.parsed_in_nano_CustomCheck && !opts.parsed_in_nano_CustomCheck(o.parsed_in_nano)) return new Error(`${path}.parsed_in_nano: custom check failed`)
+
+ if (typeof o.validate_in_nano !== 'number') return new Error(`${path}.validate_in_nano: is not a number`)
+ if (opts.validate_in_nano_CustomCheck && !opts.validate_in_nano_CustomCheck(o.validate_in_nano)) return new Error(`${path}.validate_in_nano: custom check failed`)
+
+ if (typeof o.rpc_name !== 'string') return new Error(`${path}.rpc_name: is not a string`)
+ if (opts.rpc_name_CustomCheck && !opts.rpc_name_CustomCheck(o.rpc_name)) return new Error(`${path}.rpc_name: custom check failed`)
+
+ if (typeof o.nostr !== 'boolean') return new Error(`${path}.nostr: is not a boolean`)
+ if (opts.nostr_CustomCheck && !opts.nostr_CustomCheck(o.nostr)) return new Error(`${path}.nostr: custom check failed`)
+
+ if (typeof o.processed_at_ms !== 'number') return new Error(`${path}.processed_at_ms: is not a number`)
+ if (opts.processed_at_ms_CustomCheck && !opts.processed_at_ms_CustomCheck(o.processed_at_ms)) return new Error(`${path}.processed_at_ms: custom check failed`)
+
+ if (typeof o.auth_in_nano !== 'number') return new Error(`${path}.auth_in_nano: is not a number`)
+ if (opts.auth_in_nano_CustomCheck && !opts.auth_in_nano_CustomCheck(o.auth_in_nano)) return new Error(`${path}.auth_in_nano: custom check failed`)
+
+ return null
+}
+
+export type NewInvoiceRequest = {
+ amountSats: number
+ memo: string
+}
+export const NewInvoiceRequestOptionalFields: [] = []
+export type NewInvoiceRequestOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ memo_CustomCheck?: (v: string) => boolean
+ amountSats_CustomCheck?: (v: number) => boolean
+}
+export const NewInvoiceRequestValidate = (o?: NewInvoiceRequest, opts: NewInvoiceRequestOptions = {}, path: string = 'NewInvoiceRequest::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.amountSats !== 'number') return new Error(`${path}.amountSats: is not a number`)
+ if (opts.amountSats_CustomCheck && !opts.amountSats_CustomCheck(o.amountSats)) return new Error(`${path}.amountSats: custom check failed`)
+
+ if (typeof o.memo !== 'string') return new Error(`${path}.memo: is not a string`)
+ if (opts.memo_CustomCheck && !opts.memo_CustomCheck(o.memo)) return new Error(`${path}.memo: custom check failed`)
+
+ return null
+}
+
+export type OpenChannelRequest = {
+ closeAddress: string
+ destination: string
+ fundingAmount: number
+ pushAmount: number
+}
+export const OpenChannelRequestOptionalFields: [] = []
+export type OpenChannelRequestOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ destination_CustomCheck?: (v: string) => boolean
+ fundingAmount_CustomCheck?: (v: number) => boolean
+ pushAmount_CustomCheck?: (v: number) => boolean
+ closeAddress_CustomCheck?: (v: string) => boolean
+}
+export const OpenChannelRequestValidate = (o?: OpenChannelRequest, opts: OpenChannelRequestOptions = {}, path: string = 'OpenChannelRequest::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.destination !== 'string') return new Error(`${path}.destination: is not a string`)
+ if (opts.destination_CustomCheck && !opts.destination_CustomCheck(o.destination)) return new Error(`${path}.destination: custom check failed`)
+
+ if (typeof o.fundingAmount !== 'number') return new Error(`${path}.fundingAmount: is not a number`)
+ if (opts.fundingAmount_CustomCheck && !opts.fundingAmount_CustomCheck(o.fundingAmount)) return new Error(`${path}.fundingAmount: custom check failed`)
+
+ if (typeof o.pushAmount !== 'number') return new Error(`${path}.pushAmount: is not a number`)
+ if (opts.pushAmount_CustomCheck && !opts.pushAmount_CustomCheck(o.pushAmount)) return new Error(`${path}.pushAmount: custom check failed`)
+
+ if (typeof o.closeAddress !== 'string') return new Error(`${path}.closeAddress: is not a string`)
+ if (opts.closeAddress_CustomCheck && !opts.closeAddress_CustomCheck(o.closeAddress)) return new Error(`${path}.closeAddress: custom check failed`)
+
+ return null
+}
+
+export type ChainBalanceEvent = {
+ total_balance: number
+ block_height: number
+ confirmed_balance: number
+ unconfirmed_balance: number
+}
+export const ChainBalanceEventOptionalFields: [] = []
+export type ChainBalanceEventOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ block_height_CustomCheck?: (v: number) => boolean
+ confirmed_balance_CustomCheck?: (v: number) => boolean
+ unconfirmed_balance_CustomCheck?: (v: number) => boolean
+ total_balance_CustomCheck?: (v: number) => boolean
+}
+export const ChainBalanceEventValidate = (o?: ChainBalanceEvent, opts: ChainBalanceEventOptions = {}, path: string = 'ChainBalanceEvent::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.confirmed_balance !== 'number') return new Error(`${path}.confirmed_balance: is not a number`)
+ if (opts.confirmed_balance_CustomCheck && !opts.confirmed_balance_CustomCheck(o.confirmed_balance)) return new Error(`${path}.confirmed_balance: custom check failed`)
+
+ if (typeof o.unconfirmed_balance !== 'number') return new Error(`${path}.unconfirmed_balance: is not a number`)
+ if (opts.unconfirmed_balance_CustomCheck && !opts.unconfirmed_balance_CustomCheck(o.unconfirmed_balance)) return new Error(`${path}.unconfirmed_balance: custom check failed`)
+
+ if (typeof o.total_balance !== 'number') return new Error(`${path}.total_balance: is not a number`)
+ if (opts.total_balance_CustomCheck && !opts.total_balance_CustomCheck(o.total_balance)) return new Error(`${path}.total_balance: custom check failed`)
+
+ if (typeof o.block_height !== 'number') return new Error(`${path}.block_height: is not a number`)
+ if (opts.block_height_CustomCheck && !opts.block_height_CustomCheck(o.block_height)) return new Error(`${path}.block_height: custom check failed`)
+
+ return null
+}
+
+export type GetAppUserRequest = {
+ user_identifier: string
+}
+export const GetAppUserRequestOptionalFields: [] = []
+export type GetAppUserRequestOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ user_identifier_CustomCheck?: (v: string) => boolean
+}
+export const GetAppUserRequestValidate = (o?: GetAppUserRequest, opts: GetAppUserRequestOptions = {}, path: string = 'GetAppUserRequest::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.user_identifier !== 'string') return new Error(`${path}.user_identifier: is not a string`)
+ if (opts.user_identifier_CustomCheck && !opts.user_identifier_CustomCheck(o.user_identifier)) return new Error(`${path}.user_identifier: custom check failed`)
+
+ return null
+}
+
+export type NewAddressResponse = {
+ address: string
+}
+export const NewAddressResponseOptionalFields: [] = []
+export type NewAddressResponseOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ address_CustomCheck?: (v: string) => boolean
+}
+export const NewAddressResponseValidate = (o?: NewAddressResponse, opts: NewAddressResponseOptions = {}, path: string = 'NewAddressResponse::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.address !== 'string') return new Error(`${path}.address: is not a string`)
+ if (opts.address_CustomCheck && !opts.address_CustomCheck(o.address)) return new Error(`${path}.address: custom check failed`)
+
+ return null
+}
+
+export type PayInvoiceResponse = {
+ network_fee: number
+ preimage: string
+ amount_paid: number
+ operation_id: string
+ service_fee: number
+}
+export const PayInvoiceResponseOptionalFields: [] = []
+export type PayInvoiceResponseOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ network_fee_CustomCheck?: (v: number) => boolean
+ preimage_CustomCheck?: (v: string) => boolean
+ amount_paid_CustomCheck?: (v: number) => boolean
+ operation_id_CustomCheck?: (v: string) => boolean
+ service_fee_CustomCheck?: (v: number) => boolean
+}
+export const PayInvoiceResponseValidate = (o?: PayInvoiceResponse, opts: PayInvoiceResponseOptions = {}, path: string = 'PayInvoiceResponse::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.network_fee !== 'number') return new Error(`${path}.network_fee: is not a number`)
+ if (opts.network_fee_CustomCheck && !opts.network_fee_CustomCheck(o.network_fee)) return new Error(`${path}.network_fee: custom check failed`)
+
+ if (typeof o.preimage !== 'string') return new Error(`${path}.preimage: is not a string`)
+ if (opts.preimage_CustomCheck && !opts.preimage_CustomCheck(o.preimage)) return new Error(`${path}.preimage: custom check failed`)
+
+ if (typeof o.amount_paid !== 'number') return new Error(`${path}.amount_paid: is not a number`)
+ if (opts.amount_paid_CustomCheck && !opts.amount_paid_CustomCheck(o.amount_paid)) return new Error(`${path}.amount_paid: custom check failed`)
+
+ if (typeof o.operation_id !== 'string') return new Error(`${path}.operation_id: is not a string`)
+ if (opts.operation_id_CustomCheck && !opts.operation_id_CustomCheck(o.operation_id)) return new Error(`${path}.operation_id: custom check failed`)
+
+ if (typeof o.service_fee !== 'number') return new Error(`${path}.service_fee: is not a number`)
+ if (opts.service_fee_CustomCheck && !opts.service_fee_CustomCheck(o.service_fee)) return new Error(`${path}.service_fee: custom check failed`)
+
+ return null
+}
+
+export type AddProductRequest = {
+ name: string
+ price_sats: number
+}
+export const AddProductRequestOptionalFields: [] = []
+export type AddProductRequestOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ name_CustomCheck?: (v: string) => boolean
+ price_sats_CustomCheck?: (v: number) => boolean
+}
+export const AddProductRequestValidate = (o?: AddProductRequest, opts: AddProductRequestOptions = {}, path: string = 'AddProductRequest::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.name !== 'string') return new Error(`${path}.name: is not a string`)
+ if (opts.name_CustomCheck && !opts.name_CustomCheck(o.name)) return new Error(`${path}.name: custom check failed`)
+
+ if (typeof o.price_sats !== 'number') return new Error(`${path}.price_sats: is not a number`)
+ if (opts.price_sats_CustomCheck && !opts.price_sats_CustomCheck(o.price_sats)) return new Error(`${path}.price_sats: custom check failed`)
+
+ return null
+}
+
+export type EncryptionExchangeRequest = {
+ deviceId: string
+ publicKey: string
+}
+export const EncryptionExchangeRequestOptionalFields: [] = []
+export type EncryptionExchangeRequestOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ publicKey_CustomCheck?: (v: string) => boolean
+ deviceId_CustomCheck?: (v: string) => boolean
+}
+export const EncryptionExchangeRequestValidate = (o?: EncryptionExchangeRequest, opts: EncryptionExchangeRequestOptions = {}, path: string = 'EncryptionExchangeRequest::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.publicKey !== 'string') return new Error(`${path}.publicKey: is not a string`)
+ if (opts.publicKey_CustomCheck && !opts.publicKey_CustomCheck(o.publicKey)) return new Error(`${path}.publicKey: custom check failed`)
+
+ if (typeof o.deviceId !== 'string') return new Error(`${path}.deviceId: is not a string`)
+ if (opts.deviceId_CustomCheck && !opts.deviceId_CustomCheck(o.deviceId)) return new Error(`${path}.deviceId: custom check failed`)
+
+ return null
+}
+
+export type UsersInfo = {
+ negative_balance: number
+ always_been_inactive: number
+ balance_avg: number
+ balance_median: number
+ total: number
+ no_balance: number
+}
+export const UsersInfoOptionalFields: [] = []
+export type UsersInfoOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ no_balance_CustomCheck?: (v: number) => boolean
+ negative_balance_CustomCheck?: (v: number) => boolean
+ always_been_inactive_CustomCheck?: (v: number) => boolean
+ balance_avg_CustomCheck?: (v: number) => boolean
+ balance_median_CustomCheck?: (v: number) => boolean
+ total_CustomCheck?: (v: number) => boolean
+}
+export const UsersInfoValidate = (o?: UsersInfo, opts: UsersInfoOptions = {}, path: string = 'UsersInfo::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.total !== 'number') return new Error(`${path}.total: is not a number`)
+ if (opts.total_CustomCheck && !opts.total_CustomCheck(o.total)) return new Error(`${path}.total: custom check failed`)
+
+ if (typeof o.no_balance !== 'number') return new Error(`${path}.no_balance: is not a number`)
+ if (opts.no_balance_CustomCheck && !opts.no_balance_CustomCheck(o.no_balance)) return new Error(`${path}.no_balance: custom check failed`)
+
+ if (typeof o.negative_balance !== 'number') return new Error(`${path}.negative_balance: is not a number`)
+ if (opts.negative_balance_CustomCheck && !opts.negative_balance_CustomCheck(o.negative_balance)) return new Error(`${path}.negative_balance: custom check failed`)
+
+ if (typeof o.always_been_inactive !== 'number') return new Error(`${path}.always_been_inactive: is not a number`)
+ if (opts.always_been_inactive_CustomCheck && !opts.always_been_inactive_CustomCheck(o.always_been_inactive)) return new Error(`${path}.always_been_inactive: custom check failed`)
+
+ if (typeof o.balance_avg !== 'number') return new Error(`${path}.balance_avg: is not a number`)
+ if (opts.balance_avg_CustomCheck && !opts.balance_avg_CustomCheck(o.balance_avg)) return new Error(`${path}.balance_avg: custom check failed`)
+
+ if (typeof o.balance_median !== 'number') return new Error(`${path}.balance_median: is not a number`)
+ if (opts.balance_median_CustomCheck && !opts.balance_median_CustomCheck(o.balance_median)) return new Error(`${path}.balance_median: custom check failed`)
+
+ return null
+}
+
+export type ChannelBalanceEvent = {
+ block_height: number
+ channel_id: string
+ local_balance_sats: number
+ remote_balance_sats: number
+}
+export const ChannelBalanceEventOptionalFields: [] = []
+export type ChannelBalanceEventOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ block_height_CustomCheck?: (v: number) => boolean
+ channel_id_CustomCheck?: (v: string) => boolean
+ local_balance_sats_CustomCheck?: (v: number) => boolean
+ remote_balance_sats_CustomCheck?: (v: number) => boolean
+}
+export const ChannelBalanceEventValidate = (o?: ChannelBalanceEvent, opts: ChannelBalanceEventOptions = {}, path: string = 'ChannelBalanceEvent::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.local_balance_sats !== 'number') return new Error(`${path}.local_balance_sats: is not a number`)
+ if (opts.local_balance_sats_CustomCheck && !opts.local_balance_sats_CustomCheck(o.local_balance_sats)) return new Error(`${path}.local_balance_sats: custom check failed`)
+
+ if (typeof o.remote_balance_sats !== 'number') return new Error(`${path}.remote_balance_sats: is not a number`)
+ if (opts.remote_balance_sats_CustomCheck && !opts.remote_balance_sats_CustomCheck(o.remote_balance_sats)) return new Error(`${path}.remote_balance_sats: custom check failed`)
+
+ if (typeof o.block_height !== 'number') return new Error(`${path}.block_height: is not a number`)
+ if (opts.block_height_CustomCheck && !opts.block_height_CustomCheck(o.block_height)) return new Error(`${path}.block_height: custom check failed`)
+
+ if (typeof o.channel_id !== 'string') return new Error(`${path}.channel_id: is not a string`)
+ if (opts.channel_id_CustomCheck && !opts.channel_id_CustomCheck(o.channel_id)) return new Error(`${path}.channel_id: custom check failed`)
+
+ return null
+}
+
+export type ChannelRouting = {
+ channel_id: string
+ receive_errors: number
+ forward_errors_as_output: number
+ missed_forward_fee_as_output: number
+ events_number: number
+ send_errors: number
+ forward_errors_as_input: number
+ missed_forward_fee_as_input: number
+ forward_fee_as_input: number
+ forward_fee_as_output: number
+}
+export const ChannelRoutingOptionalFields: [] = []
+export type ChannelRoutingOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ channel_id_CustomCheck?: (v: string) => boolean
+ receive_errors_CustomCheck?: (v: number) => boolean
+ forward_errors_as_output_CustomCheck?: (v: number) => boolean
+ missed_forward_fee_as_output_CustomCheck?: (v: number) => boolean
+ events_number_CustomCheck?: (v: number) => boolean
+ send_errors_CustomCheck?: (v: number) => boolean
+ forward_errors_as_input_CustomCheck?: (v: number) => boolean
+ missed_forward_fee_as_input_CustomCheck?: (v: number) => boolean
+ forward_fee_as_input_CustomCheck?: (v: number) => boolean
+ forward_fee_as_output_CustomCheck?: (v: number) => boolean
+}
+export const ChannelRoutingValidate = (o?: ChannelRouting, opts: ChannelRoutingOptions = {}, path: string = 'ChannelRouting::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.send_errors !== 'number') return new Error(`${path}.send_errors: is not a number`)
+ if (opts.send_errors_CustomCheck && !opts.send_errors_CustomCheck(o.send_errors)) return new Error(`${path}.send_errors: custom check failed`)
+
+ if (typeof o.forward_errors_as_input !== 'number') return new Error(`${path}.forward_errors_as_input: is not a number`)
+ if (opts.forward_errors_as_input_CustomCheck && !opts.forward_errors_as_input_CustomCheck(o.forward_errors_as_input)) return new Error(`${path}.forward_errors_as_input: custom check failed`)
+
+ if (typeof o.missed_forward_fee_as_input !== 'number') return new Error(`${path}.missed_forward_fee_as_input: is not a number`)
+ if (opts.missed_forward_fee_as_input_CustomCheck && !opts.missed_forward_fee_as_input_CustomCheck(o.missed_forward_fee_as_input)) return new Error(`${path}.missed_forward_fee_as_input: custom check failed`)
+
+ if (typeof o.forward_fee_as_input !== 'number') return new Error(`${path}.forward_fee_as_input: is not a number`)
+ if (opts.forward_fee_as_input_CustomCheck && !opts.forward_fee_as_input_CustomCheck(o.forward_fee_as_input)) return new Error(`${path}.forward_fee_as_input: custom check failed`)
+
+ if (typeof o.forward_fee_as_output !== 'number') return new Error(`${path}.forward_fee_as_output: is not a number`)
+ if (opts.forward_fee_as_output_CustomCheck && !opts.forward_fee_as_output_CustomCheck(o.forward_fee_as_output)) return new Error(`${path}.forward_fee_as_output: custom check failed`)
+
+ if (typeof o.channel_id !== 'string') return new Error(`${path}.channel_id: is not a string`)
+ if (opts.channel_id_CustomCheck && !opts.channel_id_CustomCheck(o.channel_id)) return new Error(`${path}.channel_id: custom check failed`)
+
+ if (typeof o.receive_errors !== 'number') return new Error(`${path}.receive_errors: is not a number`)
+ if (opts.receive_errors_CustomCheck && !opts.receive_errors_CustomCheck(o.receive_errors)) return new Error(`${path}.receive_errors: custom check failed`)
+
+ if (typeof o.forward_errors_as_output !== 'number') return new Error(`${path}.forward_errors_as_output: is not a number`)
+ if (opts.forward_errors_as_output_CustomCheck && !opts.forward_errors_as_output_CustomCheck(o.forward_errors_as_output)) return new Error(`${path}.forward_errors_as_output: custom check failed`)
+
+ if (typeof o.missed_forward_fee_as_output !== 'number') return new Error(`${path}.missed_forward_fee_as_output: is not a number`)
+ if (opts.missed_forward_fee_as_output_CustomCheck && !opts.missed_forward_fee_as_output_CustomCheck(o.missed_forward_fee_as_output)) return new Error(`${path}.missed_forward_fee_as_output: custom check failed`)
+
+ if (typeof o.events_number !== 'number') return new Error(`${path}.events_number: is not a number`)
+ if (opts.events_number_CustomCheck && !opts.events_number_CustomCheck(o.events_number)) return new Error(`${path}.events_number: custom check failed`)
+
+ return null
+}
+
+export type SendAppUserToAppPaymentRequest = {
+ from_user_identifier: string
+ amount: number
+}
+export const SendAppUserToAppPaymentRequestOptionalFields: [] = []
+export type SendAppUserToAppPaymentRequestOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ from_user_identifier_CustomCheck?: (v: string) => boolean
+ amount_CustomCheck?: (v: number) => boolean
+}
+export const SendAppUserToAppPaymentRequestValidate = (o?: SendAppUserToAppPaymentRequest, opts: SendAppUserToAppPaymentRequestOptions = {}, path: string = 'SendAppUserToAppPaymentRequest::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.from_user_identifier !== 'string') return new Error(`${path}.from_user_identifier: is not a string`)
+ if (opts.from_user_identifier_CustomCheck && !opts.from_user_identifier_CustomCheck(o.from_user_identifier)) return new Error(`${path}.from_user_identifier: custom check failed`)
+
+ if (typeof o.amount !== 'number') return new Error(`${path}.amount: is not a number`)
+ if (opts.amount_CustomCheck && !opts.amount_CustomCheck(o.amount)) return new Error(`${path}.amount: custom check failed`)
+
+ return null
+}
+
+export type SetMockAppBalanceRequest = {
+ amount: number
+}
+export const SetMockAppBalanceRequestOptionalFields: [] = []
+export type SetMockAppBalanceRequestOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ amount_CustomCheck?: (v: number) => boolean
+}
+export const SetMockAppBalanceRequestValidate = (o?: SetMockAppBalanceRequest, opts: SetMockAppBalanceRequestOptions = {}, path: string = 'SetMockAppBalanceRequest::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.amount !== 'number') return new Error(`${path}.amount: is not a number`)
+ if (opts.amount_CustomCheck && !opts.amount_CustomCheck(o.amount)) return new Error(`${path}.amount: custom check failed`)
+
+ return null
+}
+
+export type MigrationUpdate = {
+ closure?: ClosureMigration
+ relays?: RelaysMigration
+}
+export type MigrationUpdateOptionalField = 'closure' | 'relays'
+export const MigrationUpdateOptionalFields: MigrationUpdateOptionalField[] = ['closure', 'relays']
+export type MigrationUpdateOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: MigrationUpdateOptionalField[]
+ relays_Options?: RelaysMigrationOptions
+ closure_Options?: ClosureMigrationOptions
+}
+export const MigrationUpdateValidate = (o?: MigrationUpdate, opts: MigrationUpdateOptions = {}, path: string = 'MigrationUpdate::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.closure === 'object' || opts.allOptionalsAreSet || opts.checkOptionalsAreSet?.includes('closure')) {
+ const closureErr = ClosureMigrationValidate(o.closure, opts.closure_Options, `${path}.closure`)
+ if (closureErr !== null) return closureErr
+ }
+
+
+ if (typeof o.relays === 'object' || opts.allOptionalsAreSet || opts.checkOptionalsAreSet?.includes('relays')) {
+ const relaysErr = RelaysMigrationValidate(o.relays, opts.relays_Options, `${path}.relays`)
+ if (relaysErr !== null) return relaysErr
+ }
+
+
+ return null
+}
+
+export type ClosureMigration = {
+ closes_at_unix: number
+}
+export const ClosureMigrationOptionalFields: [] = []
+export type ClosureMigrationOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ closes_at_unix_CustomCheck?: (v: number) => boolean
+}
+export const ClosureMigrationValidate = (o?: ClosureMigration, opts: ClosureMigrationOptions = {}, path: string = 'ClosureMigration::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.closes_at_unix !== 'number') return new Error(`${path}.closes_at_unix: is not a number`)
+ if (opts.closes_at_unix_CustomCheck && !opts.closes_at_unix_CustomCheck(o.closes_at_unix)) return new Error(`${path}.closes_at_unix: custom check failed`)
+
+ return null
+}
+
+export type ClosedChannel = {
+ channel_id: string
+ capacity: number
+ closed_height: number
+}
+export const ClosedChannelOptionalFields: [] = []
+export type ClosedChannelOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ channel_id_CustomCheck?: (v: string) => boolean
+ capacity_CustomCheck?: (v: number) => boolean
+ closed_height_CustomCheck?: (v: number) => boolean
+}
+export const ClosedChannelValidate = (o?: ClosedChannel, opts: ClosedChannelOptions = {}, path: string = 'ClosedChannel::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.channel_id !== 'string') return new Error(`${path}.channel_id: is not a string`)
+ if (opts.channel_id_CustomCheck && !opts.channel_id_CustomCheck(o.channel_id)) return new Error(`${path}.channel_id: custom check failed`)
+
+ if (typeof o.capacity !== 'number') return new Error(`${path}.capacity: is not a number`)
+ if (opts.capacity_CustomCheck && !opts.capacity_CustomCheck(o.capacity)) return new Error(`${path}.capacity: custom check failed`)
+
+ if (typeof o.closed_height !== 'number') return new Error(`${path}.closed_height: is not a number`)
+ if (opts.closed_height_CustomCheck && !opts.closed_height_CustomCheck(o.closed_height)) return new Error(`${path}.closed_height: custom check failed`)
+
+ return null
+}
+
+export type Application = {
+ npub: string
+ name: string
+ id: string
+ balance: number
+}
+export const ApplicationOptionalFields: [] = []
+export type ApplicationOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ balance_CustomCheck?: (v: number) => boolean
+ npub_CustomCheck?: (v: string) => boolean
+ name_CustomCheck?: (v: string) => boolean
+ id_CustomCheck?: (v: string) => boolean
+}
+export const ApplicationValidate = (o?: Application, opts: ApplicationOptions = {}, path: string = 'Application::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.name !== 'string') return new Error(`${path}.name: is not a string`)
+ if (opts.name_CustomCheck && !opts.name_CustomCheck(o.name)) return new Error(`${path}.name: custom check failed`)
+
+ if (typeof o.id !== 'string') return new Error(`${path}.id: is not a string`)
+ if (opts.id_CustomCheck && !opts.id_CustomCheck(o.id)) return new Error(`${path}.id: custom check failed`)
+
+ if (typeof o.balance !== 'number') return new Error(`${path}.balance: is not a number`)
+ if (opts.balance_CustomCheck && !opts.balance_CustomCheck(o.balance)) return new Error(`${path}.balance: custom check failed`)
+
+ if (typeof o.npub !== 'string') return new Error(`${path}.npub: is not a string`)
+ if (opts.npub_CustomCheck && !opts.npub_CustomCheck(o.npub)) return new Error(`${path}.npub: custom check failed`)
+
+ return null
+}
+
+export type AddAppUserRequest = {
+ identifier: string
+ fail_if_exists: boolean
+ balance: number
+}
+export const AddAppUserRequestOptionalFields: [] = []
+export type AddAppUserRequestOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ fail_if_exists_CustomCheck?: (v: boolean) => boolean
+ balance_CustomCheck?: (v: number) => boolean
+ identifier_CustomCheck?: (v: string) => boolean
+}
+export const AddAppUserRequestValidate = (o?: AddAppUserRequest, opts: AddAppUserRequestOptions = {}, path: string = 'AddAppUserRequest::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.identifier !== 'string') return new Error(`${path}.identifier: is not a string`)
+ if (opts.identifier_CustomCheck && !opts.identifier_CustomCheck(o.identifier)) return new Error(`${path}.identifier: custom check failed`)
+
+ if (typeof o.fail_if_exists !== 'boolean') return new Error(`${path}.fail_if_exists: is not a boolean`)
+ if (opts.fail_if_exists_CustomCheck && !opts.fail_if_exists_CustomCheck(o.fail_if_exists)) return new Error(`${path}.fail_if_exists: custom check failed`)
+
+ if (typeof o.balance !== 'number') return new Error(`${path}.balance: is not a number`)
+ if (opts.balance_CustomCheck && !opts.balance_CustomCheck(o.balance)) return new Error(`${path}.balance: custom check failed`)
+
+ return null
+}
+
+export type SetMockAppUserBalanceRequest = {
+ user_identifier: string
+ amount: number
+}
+export const SetMockAppUserBalanceRequestOptionalFields: [] = []
+export type SetMockAppUserBalanceRequestOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ user_identifier_CustomCheck?: (v: string) => boolean
+ amount_CustomCheck?: (v: number) => boolean
+}
+export const SetMockAppUserBalanceRequestValidate = (o?: SetMockAppUserBalanceRequest, opts: SetMockAppUserBalanceRequestOptions = {}, path: string = 'SetMockAppUserBalanceRequest::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.amount !== 'number') return new Error(`${path}.amount: is not a number`)
+ if (opts.amount_CustomCheck && !opts.amount_CustomCheck(o.amount)) return new Error(`${path}.amount: custom check failed`)
+
+ if (typeof o.user_identifier !== 'string') return new Error(`${path}.user_identifier: is not a string`)
+ if (opts.user_identifier_CustomCheck && !opts.user_identifier_CustomCheck(o.user_identifier)) return new Error(`${path}.user_identifier: custom check failed`)
+
+ return null
+}
+
+export type PayAddressResponse = {
+ network_fee: number
+ txId: string
+ operation_id: string
+ service_fee: number
+}
+export const PayAddressResponseOptionalFields: [] = []
+export type PayAddressResponseOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ txId_CustomCheck?: (v: string) => boolean
+ operation_id_CustomCheck?: (v: string) => boolean
+ service_fee_CustomCheck?: (v: number) => boolean
+ network_fee_CustomCheck?: (v: number) => boolean
+}
+export const PayAddressResponseValidate = (o?: PayAddressResponse, opts: PayAddressResponseOptions = {}, path: string = 'PayAddressResponse::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.txId !== 'string') return new Error(`${path}.txId: is not a string`)
+ if (opts.txId_CustomCheck && !opts.txId_CustomCheck(o.txId)) return new Error(`${path}.txId: custom check failed`)
+
+ if (typeof o.operation_id !== 'string') return new Error(`${path}.operation_id: is not a string`)
+ if (opts.operation_id_CustomCheck && !opts.operation_id_CustomCheck(o.operation_id)) return new Error(`${path}.operation_id: custom check failed`)
+
+ if (typeof o.service_fee !== 'number') return new Error(`${path}.service_fee: is not a number`)
+ if (opts.service_fee_CustomCheck && !opts.service_fee_CustomCheck(o.service_fee)) return new Error(`${path}.service_fee: custom check failed`)
+
+ if (typeof o.network_fee !== 'number') return new Error(`${path}.network_fee: is not a number`)
+ if (opts.network_fee_CustomCheck && !opts.network_fee_CustomCheck(o.network_fee)) return new Error(`${path}.network_fee: custom check failed`)
+
+ return null
+}
+
+export type NewInvoiceResponse = {
+ invoice: string
+}
+export const NewInvoiceResponseOptionalFields: [] = []
+export type NewInvoiceResponseOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ invoice_CustomCheck?: (v: string) => boolean
+}
+export const NewInvoiceResponseValidate = (o?: NewInvoiceResponse, opts: NewInvoiceResponseOptions = {}, path: string = 'NewInvoiceResponse::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.invoice !== 'string') return new Error(`${path}.invoice: is not a string`)
+ if (opts.invoice_CustomCheck && !opts.invoice_CustomCheck(o.invoice)) return new Error(`${path}.invoice: custom check failed`)
+
+ return null
+}
+
+export type HttpCreds = {
+ url: string
+ token: string
+}
+export const HttpCredsOptionalFields: [] = []
+export type HttpCredsOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ url_CustomCheck?: (v: string) => boolean
+ token_CustomCheck?: (v: string) => boolean
+}
+export const HttpCredsValidate = (o?: HttpCreds, opts: HttpCredsOptions = {}, path: string = 'HttpCreds::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.url !== 'string') return new Error(`${path}.url: is not a string`)
+ if (opts.url_CustomCheck && !opts.url_CustomCheck(o.url)) return new Error(`${path}.url: custom check failed`)
+
+ if (typeof o.token !== 'string') return new Error(`${path}.token: is not a string`)
+ if (opts.token_CustomCheck && !opts.token_CustomCheck(o.token)) return new Error(`${path}.token: custom check failed`)
+
+ return null
+}
+
+export type OpenChannel = {
+ lifetime: number
+ local_balance: number
+ remote_balance: number
+ channel_id: string
+ capacity: number
+ active: boolean
+}
+export const OpenChannelOptionalFields: [] = []
+export type OpenChannelOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ remote_balance_CustomCheck?: (v: number) => boolean
+ channel_id_CustomCheck?: (v: string) => boolean
+ capacity_CustomCheck?: (v: number) => boolean
+ active_CustomCheck?: (v: boolean) => boolean
+ lifetime_CustomCheck?: (v: number) => boolean
+ local_balance_CustomCheck?: (v: number) => boolean
+}
+export const OpenChannelValidate = (o?: OpenChannel, opts: OpenChannelOptions = {}, path: string = 'OpenChannel::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.channel_id !== 'string') return new Error(`${path}.channel_id: is not a string`)
+ if (opts.channel_id_CustomCheck && !opts.channel_id_CustomCheck(o.channel_id)) return new Error(`${path}.channel_id: custom check failed`)
+
+ if (typeof o.capacity !== 'number') return new Error(`${path}.capacity: is not a number`)
+ if (opts.capacity_CustomCheck && !opts.capacity_CustomCheck(o.capacity)) return new Error(`${path}.capacity: custom check failed`)
+
+ if (typeof o.active !== 'boolean') return new Error(`${path}.active: is not a boolean`)
+ if (opts.active_CustomCheck && !opts.active_CustomCheck(o.active)) return new Error(`${path}.active: custom check failed`)
+
+ if (typeof o.lifetime !== 'number') return new Error(`${path}.lifetime: is not a number`)
+ if (opts.lifetime_CustomCheck && !opts.lifetime_CustomCheck(o.lifetime)) return new Error(`${path}.lifetime: custom check failed`)
+
+ if (typeof o.local_balance !== 'number') return new Error(`${path}.local_balance: is not a number`)
+ if (opts.local_balance_CustomCheck && !opts.local_balance_CustomCheck(o.local_balance)) return new Error(`${path}.local_balance: custom check failed`)
+
+ if (typeof o.remote_balance !== 'number') return new Error(`${path}.remote_balance: is not a number`)
+ if (opts.remote_balance_CustomCheck && !opts.remote_balance_CustomCheck(o.remote_balance)) return new Error(`${path}.remote_balance: custom check failed`)
+
+ return null
+}
+
+export type SetMockInvoiceAsPaidRequest = {
+ invoice: string
+ amount: number
+}
+export const SetMockInvoiceAsPaidRequestOptionalFields: [] = []
+export type SetMockInvoiceAsPaidRequestOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ invoice_CustomCheck?: (v: string) => boolean
+ amount_CustomCheck?: (v: number) => boolean
+}
+export const SetMockInvoiceAsPaidRequestValidate = (o?: SetMockInvoiceAsPaidRequest, opts: SetMockInvoiceAsPaidRequestOptions = {}, path: string = 'SetMockInvoiceAsPaidRequest::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.amount !== 'number') return new Error(`${path}.amount: is not a number`)
+ if (opts.amount_CustomCheck && !opts.amount_CustomCheck(o.amount)) return new Error(`${path}.amount: custom check failed`)
+
+ if (typeof o.invoice !== 'string') return new Error(`${path}.invoice: is not a string`)
+ if (opts.invoice_CustomCheck && !opts.invoice_CustomCheck(o.invoice)) return new Error(`${path}.invoice: custom check failed`)
+
+ return null
+}
+
+export type AddAppUserInvoiceRequest = {
+ receiver_identifier: string
+ payer_identifier: string
+ http_callback_url: string
+ invoice_req: NewInvoiceRequest
+}
+export const AddAppUserInvoiceRequestOptionalFields: [] = []
+export type AddAppUserInvoiceRequestOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ receiver_identifier_CustomCheck?: (v: string) => boolean
+ payer_identifier_CustomCheck?: (v: string) => boolean
+ http_callback_url_CustomCheck?: (v: string) => boolean
+ invoice_req_Options?: NewInvoiceRequestOptions
+}
+export const AddAppUserInvoiceRequestValidate = (o?: AddAppUserInvoiceRequest, opts: AddAppUserInvoiceRequestOptions = {}, path: string = 'AddAppUserInvoiceRequest::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.receiver_identifier !== 'string') return new Error(`${path}.receiver_identifier: is not a string`)
+ if (opts.receiver_identifier_CustomCheck && !opts.receiver_identifier_CustomCheck(o.receiver_identifier)) return new Error(`${path}.receiver_identifier: custom check failed`)
+
+ if (typeof o.payer_identifier !== 'string') return new Error(`${path}.payer_identifier: is not a string`)
+ if (opts.payer_identifier_CustomCheck && !opts.payer_identifier_CustomCheck(o.payer_identifier)) return new Error(`${path}.payer_identifier: custom check failed`)
+
+ if (typeof o.http_callback_url !== 'string') return new Error(`${path}.http_callback_url: is not a string`)
+ if (opts.http_callback_url_CustomCheck && !opts.http_callback_url_CustomCheck(o.http_callback_url)) return new Error(`${path}.http_callback_url: custom check failed`)
+
+ const invoice_reqErr = NewInvoiceRequestValidate(o.invoice_req, opts.invoice_req_Options, `${path}.invoice_req`)
+ if (invoice_reqErr !== null) return invoice_reqErr
+
+
+ return null
+}
+
+export type DecodeInvoiceResponse = {
+ amount: number
+}
+export const DecodeInvoiceResponseOptionalFields: [] = []
+export type DecodeInvoiceResponseOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ amount_CustomCheck?: (v: number) => boolean
+}
+export const DecodeInvoiceResponseValidate = (o?: DecodeInvoiceResponse, opts: DecodeInvoiceResponseOptions = {}, path: string = 'DecodeInvoiceResponse::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.amount !== 'number') return new Error(`${path}.amount: is not a number`)
+ if (opts.amount_CustomCheck && !opts.amount_CustomCheck(o.amount)) return new Error(`${path}.amount: custom check failed`)
+
+ return null
+}
+
export type OpenChannelResponse = {
channelId: string
}
@@ -1032,68 +2083,116 @@ export const OpenChannelResponseValidate = (o?: OpenChannelResponse, opts: OpenC
return null
}
-export type LiveUserOperation = {
- operation: UserOperation
+export type RelaysMigration = {
+ relays: string[]
}
-export const LiveUserOperationOptionalFields: [] = []
-export type LiveUserOperationOptions = OptionsBaseMessage & {
+export const RelaysMigrationOptionalFields: [] = []
+export type RelaysMigrationOptions = OptionsBaseMessage & {
checkOptionalsAreSet?: []
- operation_Options?: UserOperationOptions
+ relays_CustomCheck?: (v: string[]) => boolean
}
-export const LiveUserOperationValidate = (o?: LiveUserOperation, opts: LiveUserOperationOptions = {}, path: string = 'LiveUserOperation::root.'): Error | null => {
+export const RelaysMigrationValidate = (o?: RelaysMigration, opts: RelaysMigrationOptions = {}, path: string = 'RelaysMigration::root.'): Error | null => {
if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
- const operationErr = UserOperationValidate(o.operation, opts.operation_Options, `${path}.operation`)
- if (operationErr !== null) return operationErr
-
-
- return null
-}
-
-export type UsageMetrics = {
- metrics: UsageMetric[]
-}
-export const UsageMetricsOptionalFields: [] = []
-export type UsageMetricsOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- metrics_ItemOptions?: UsageMetricOptions
- metrics_CustomCheck?: (v: UsageMetric[]) => boolean
-}
-export const UsageMetricsValidate = (o?: UsageMetrics, opts: UsageMetricsOptions = {}, path: string = 'UsageMetrics::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (!Array.isArray(o.metrics)) return new Error(`${path}.metrics: is not an array`)
- for (let index = 0; index < o.metrics.length; index++) {
- const metricsErr = UsageMetricValidate(o.metrics[index], opts.metrics_ItemOptions, `${path}.metrics[${index}]`)
- if (metricsErr !== null) return metricsErr
+ if (!Array.isArray(o.relays)) return new Error(`${path}.relays: is not an array`)
+ for (let index = 0; index < o.relays.length; index++) {
+ if (typeof o.relays[index] !== 'string') return new Error(`${path}.relays[${index}]: is not a string`)
}
- if (opts.metrics_CustomCheck && !opts.metrics_CustomCheck(o.metrics)) return new Error(`${path}.metrics: custom check failed`)
+ if (opts.relays_CustomCheck && !opts.relays_CustomCheck(o.relays)) return new Error(`${path}.relays: custom check failed`)
return null
}
-export type AuthApp = {
- app: Application
- auth_token: string
+export type RequestNPubLinkingTokenRequest = {
+ user_identifier: string
}
-export const AuthAppOptionalFields: [] = []
-export type AuthAppOptions = OptionsBaseMessage & {
+export const RequestNPubLinkingTokenRequestOptionalFields: [] = []
+export type RequestNPubLinkingTokenRequestOptions = OptionsBaseMessage & {
checkOptionalsAreSet?: []
- app_Options?: ApplicationOptions
- auth_token_CustomCheck?: (v: string) => boolean
+ user_identifier_CustomCheck?: (v: string) => boolean
}
-export const AuthAppValidate = (o?: AuthApp, opts: AuthAppOptions = {}, path: string = 'AuthApp::root.'): Error | null => {
+export const RequestNPubLinkingTokenRequestValidate = (o?: RequestNPubLinkingTokenRequest, opts: RequestNPubLinkingTokenRequestOptions = {}, path: string = 'RequestNPubLinkingTokenRequest::root.'): Error | null => {
if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
- const appErr = ApplicationValidate(o.app, opts.app_Options, `${path}.app`)
- if (appErr !== null) return appErr
+ if (typeof o.user_identifier !== 'string') return new Error(`${path}.user_identifier: is not a string`)
+ if (opts.user_identifier_CustomCheck && !opts.user_identifier_CustomCheck(o.user_identifier)) return new Error(`${path}.user_identifier: custom check failed`)
+
+ return null
+}
+
+export type LinkNPubThroughTokenRequest = {
+ token: string
+ nostr_pub: string
+}
+export const LinkNPubThroughTokenRequestOptionalFields: [] = []
+export type LinkNPubThroughTokenRequestOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ nostr_pub_CustomCheck?: (v: string) => boolean
+ token_CustomCheck?: (v: string) => boolean
+}
+export const LinkNPubThroughTokenRequestValidate = (o?: LinkNPubThroughTokenRequest, opts: LinkNPubThroughTokenRequestOptions = {}, path: string = 'LinkNPubThroughTokenRequest::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.token !== 'string') return new Error(`${path}.token: is not a string`)
+ if (opts.token_CustomCheck && !opts.token_CustomCheck(o.token)) return new Error(`${path}.token: custom check failed`)
+
+ if (typeof o.nostr_pub !== 'string') return new Error(`${path}.nostr_pub: is not a string`)
+ if (opts.nostr_pub_CustomCheck && !opts.nostr_pub_CustomCheck(o.nostr_pub)) return new Error(`${path}.nostr_pub: custom check failed`)
+
+ return null
+}
+
+export type LndMetrics = {
+ nodes: LndNodeMetrics[]
+}
+export const LndMetricsOptionalFields: [] = []
+export type LndMetricsOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ nodes_ItemOptions?: LndNodeMetricsOptions
+ nodes_CustomCheck?: (v: LndNodeMetrics[]) => boolean
+}
+export const LndMetricsValidate = (o?: LndMetrics, opts: LndMetricsOptions = {}, path: string = 'LndMetrics::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (!Array.isArray(o.nodes)) return new Error(`${path}.nodes: is not an array`)
+ for (let index = 0; index < o.nodes.length; index++) {
+ const nodesErr = LndNodeMetricsValidate(o.nodes[index], opts.nodes_ItemOptions, `${path}.nodes[${index}]`)
+ if (nodesErr !== null) return nodesErr
+ }
+ if (opts.nodes_CustomCheck && !opts.nodes_CustomCheck(o.nodes)) return new Error(`${path}.nodes: custom check failed`)
+
+ return null
+}
+
+export type AppUser = {
+ info: UserInfo
+ max_withdrawable: number
+ identifier: string
+}
+export const AppUserOptionalFields: [] = []
+export type AppUserOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ identifier_CustomCheck?: (v: string) => boolean
+ info_Options?: UserInfoOptions
+ max_withdrawable_CustomCheck?: (v: number) => boolean
+}
+export const AppUserValidate = (o?: AppUser, opts: AppUserOptions = {}, path: string = 'AppUser::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.identifier !== 'string') return new Error(`${path}.identifier: is not a string`)
+ if (opts.identifier_CustomCheck && !opts.identifier_CustomCheck(o.identifier)) return new Error(`${path}.identifier: custom check failed`)
+
+ const infoErr = UserInfoValidate(o.info, opts.info_Options, `${path}.info`)
+ if (infoErr !== null) return infoErr
- if (typeof o.auth_token !== 'string') return new Error(`${path}.auth_token: is not a string`)
- if (opts.auth_token_CustomCheck && !opts.auth_token_CustomCheck(o.auth_token)) return new Error(`${path}.auth_token: custom check failed`)
+ if (typeof o.max_withdrawable !== 'number') return new Error(`${path}.max_withdrawable: is not a number`)
+ if (opts.max_withdrawable_CustomCheck && !opts.max_withdrawable_CustomCheck(o.max_withdrawable)) return new Error(`${path}.max_withdrawable: custom check failed`)
return null
}
@@ -1127,304 +2226,28 @@ export const AddAppInvoiceRequestValidate = (o?: AddAppInvoiceRequest, opts: Add
return null
}
-export type DecodeInvoiceResponse = {
- amount: number
-}
-export const DecodeInvoiceResponseOptionalFields: [] = []
-export type DecodeInvoiceResponseOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- amount_CustomCheck?: (v: number) => boolean
-}
-export const DecodeInvoiceResponseValidate = (o?: DecodeInvoiceResponse, opts: DecodeInvoiceResponseOptions = {}, path: string = 'DecodeInvoiceResponse::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.amount !== 'number') return new Error(`${path}.amount: is not a number`)
- if (opts.amount_CustomCheck && !opts.amount_CustomCheck(o.amount)) return new Error(`${path}.amount: custom check failed`)
-
- return null
-}
-
-export type Empty = {
-}
-export const EmptyOptionalFields: [] = []
-export type EmptyOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
-}
-export const EmptyValidate = (o?: Empty, opts: EmptyOptions = {}, path: string = 'Empty::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- return null
-}
-
-export type ChannelBalanceEvent = {
- block_height: number
- channel_id: string
- local_balance_sats: number
- remote_balance_sats: number
-}
-export const ChannelBalanceEventOptionalFields: [] = []
-export type ChannelBalanceEventOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- block_height_CustomCheck?: (v: number) => boolean
- channel_id_CustomCheck?: (v: string) => boolean
- local_balance_sats_CustomCheck?: (v: number) => boolean
- remote_balance_sats_CustomCheck?: (v: number) => boolean
-}
-export const ChannelBalanceEventValidate = (o?: ChannelBalanceEvent, opts: ChannelBalanceEventOptions = {}, path: string = 'ChannelBalanceEvent::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.block_height !== 'number') return new Error(`${path}.block_height: is not a number`)
- if (opts.block_height_CustomCheck && !opts.block_height_CustomCheck(o.block_height)) return new Error(`${path}.block_height: custom check failed`)
-
- if (typeof o.channel_id !== 'string') return new Error(`${path}.channel_id: is not a string`)
- if (opts.channel_id_CustomCheck && !opts.channel_id_CustomCheck(o.channel_id)) return new Error(`${path}.channel_id: custom check failed`)
-
- if (typeof o.local_balance_sats !== 'number') return new Error(`${path}.local_balance_sats: is not a number`)
- if (opts.local_balance_sats_CustomCheck && !opts.local_balance_sats_CustomCheck(o.local_balance_sats)) return new Error(`${path}.local_balance_sats: custom check failed`)
-
- if (typeof o.remote_balance_sats !== 'number') return new Error(`${path}.remote_balance_sats: is not a number`)
- if (opts.remote_balance_sats_CustomCheck && !opts.remote_balance_sats_CustomCheck(o.remote_balance_sats)) return new Error(`${path}.remote_balance_sats: custom check failed`)
-
- return null
-}
-
-export type GetAppUserRequest = {
- user_identifier: string
-}
-export const GetAppUserRequestOptionalFields: [] = []
-export type GetAppUserRequestOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- user_identifier_CustomCheck?: (v: string) => boolean
-}
-export const GetAppUserRequestValidate = (o?: GetAppUserRequest, opts: GetAppUserRequestOptions = {}, path: string = 'GetAppUserRequest::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.user_identifier !== 'string') return new Error(`${path}.user_identifier: is not a string`)
- if (opts.user_identifier_CustomCheck && !opts.user_identifier_CustomCheck(o.user_identifier)) return new Error(`${path}.user_identifier: custom check failed`)
-
- return null
-}
-
-export type HandleLnurlPayResponse = {
- pr: string
- routes: Empty[]
-}
-export const HandleLnurlPayResponseOptionalFields: [] = []
-export type HandleLnurlPayResponseOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- pr_CustomCheck?: (v: string) => boolean
- routes_ItemOptions?: EmptyOptions
- routes_CustomCheck?: (v: Empty[]) => boolean
-}
-export const HandleLnurlPayResponseValidate = (o?: HandleLnurlPayResponse, opts: HandleLnurlPayResponseOptions = {}, path: string = 'HandleLnurlPayResponse::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.pr !== 'string') return new Error(`${path}.pr: is not a string`)
- if (opts.pr_CustomCheck && !opts.pr_CustomCheck(o.pr)) return new Error(`${path}.pr: custom check failed`)
-
- if (!Array.isArray(o.routes)) return new Error(`${path}.routes: is not an array`)
- for (let index = 0; index < o.routes.length; index++) {
- const routesErr = EmptyValidate(o.routes[index], opts.routes_ItemOptions, `${path}.routes[${index}]`)
- if (routesErr !== null) return routesErr
- }
- if (opts.routes_CustomCheck && !opts.routes_CustomCheck(o.routes)) return new Error(`${path}.routes: custom check failed`)
-
- return null
-}
-
-export type AppUser = {
- identifier: string
- info: UserInfo
- max_withdrawable: number
-}
-export const AppUserOptionalFields: [] = []
-export type AppUserOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- identifier_CustomCheck?: (v: string) => boolean
- info_Options?: UserInfoOptions
- max_withdrawable_CustomCheck?: (v: number) => boolean
-}
-export const AppUserValidate = (o?: AppUser, opts: AppUserOptions = {}, path: string = 'AppUser::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.identifier !== 'string') return new Error(`${path}.identifier: is not a string`)
- if (opts.identifier_CustomCheck && !opts.identifier_CustomCheck(o.identifier)) return new Error(`${path}.identifier: custom check failed`)
-
- const infoErr = UserInfoValidate(o.info, opts.info_Options, `${path}.info`)
- if (infoErr !== null) return infoErr
-
-
- if (typeof o.max_withdrawable !== 'number') return new Error(`${path}.max_withdrawable: is not a number`)
- if (opts.max_withdrawable_CustomCheck && !opts.max_withdrawable_CustomCheck(o.max_withdrawable)) return new Error(`${path}.max_withdrawable: custom check failed`)
-
- return null
-}
-
-export type GetAppUserLNURLInfoRequest = {
- user_identifier: string
- base_url_override: string
-}
-export const GetAppUserLNURLInfoRequestOptionalFields: [] = []
-export type GetAppUserLNURLInfoRequestOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- user_identifier_CustomCheck?: (v: string) => boolean
- base_url_override_CustomCheck?: (v: string) => boolean
-}
-export const GetAppUserLNURLInfoRequestValidate = (o?: GetAppUserLNURLInfoRequest, opts: GetAppUserLNURLInfoRequestOptions = {}, path: string = 'GetAppUserLNURLInfoRequest::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.user_identifier !== 'string') return new Error(`${path}.user_identifier: is not a string`)
- if (opts.user_identifier_CustomCheck && !opts.user_identifier_CustomCheck(o.user_identifier)) return new Error(`${path}.user_identifier: custom check failed`)
-
- if (typeof o.base_url_override !== 'string') return new Error(`${path}.base_url_override: is not a string`)
- if (opts.base_url_override_CustomCheck && !opts.base_url_override_CustomCheck(o.base_url_override)) return new Error(`${path}.base_url_override: custom check failed`)
-
- return null
-}
-
-export type SetMockAppBalanceRequest = {
- amount: number
-}
-export const SetMockAppBalanceRequestOptionalFields: [] = []
-export type SetMockAppBalanceRequestOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- amount_CustomCheck?: (v: number) => boolean
-}
-export const SetMockAppBalanceRequestValidate = (o?: SetMockAppBalanceRequest, opts: SetMockAppBalanceRequestOptions = {}, path: string = 'SetMockAppBalanceRequest::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.amount !== 'number') return new Error(`${path}.amount: is not a number`)
- if (opts.amount_CustomCheck && !opts.amount_CustomCheck(o.amount)) return new Error(`${path}.amount: custom check failed`)
-
- return null
-}
-
-export type AddProductRequest = {
- name: string
- price_sats: number
-}
-export const AddProductRequestOptionalFields: [] = []
-export type AddProductRequestOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- name_CustomCheck?: (v: string) => boolean
- price_sats_CustomCheck?: (v: number) => boolean
-}
-export const AddProductRequestValidate = (o?: AddProductRequest, opts: AddProductRequestOptions = {}, path: string = 'AddProductRequest::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.name !== 'string') return new Error(`${path}.name: is not a string`)
- if (opts.name_CustomCheck && !opts.name_CustomCheck(o.name)) return new Error(`${path}.name: custom check failed`)
-
- if (typeof o.price_sats !== 'number') return new Error(`${path}.price_sats: is not a number`)
- if (opts.price_sats_CustomCheck && !opts.price_sats_CustomCheck(o.price_sats)) return new Error(`${path}.price_sats: custom check failed`)
-
- return null
-}
-
-export type GetProductBuyLinkResponse = {
- link: string
-}
-export const GetProductBuyLinkResponseOptionalFields: [] = []
-export type GetProductBuyLinkResponseOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- link_CustomCheck?: (v: string) => boolean
-}
-export const GetProductBuyLinkResponseValidate = (o?: GetProductBuyLinkResponse, opts: GetProductBuyLinkResponseOptions = {}, path: string = 'GetProductBuyLinkResponse::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.link !== 'string') return new Error(`${path}.link: is not a string`)
- if (opts.link_CustomCheck && !opts.link_CustomCheck(o.link)) return new Error(`${path}.link: custom check failed`)
-
- return null
-}
-
-export type HttpCreds = {
- url: string
- token: string
-}
-export const HttpCredsOptionalFields: [] = []
-export type HttpCredsOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- url_CustomCheck?: (v: string) => boolean
- token_CustomCheck?: (v: string) => boolean
-}
-export const HttpCredsValidate = (o?: HttpCreds, opts: HttpCredsOptions = {}, path: string = 'HttpCreds::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.url !== 'string') return new Error(`${path}.url: is not a string`)
- if (opts.url_CustomCheck && !opts.url_CustomCheck(o.url)) return new Error(`${path}.url: custom check failed`)
-
- if (typeof o.token !== 'string') return new Error(`${path}.token: is not a string`)
- if (opts.token_CustomCheck && !opts.token_CustomCheck(o.token)) return new Error(`${path}.token: custom check failed`)
-
- return null
-}
-
-export type AppMetrics = {
- app: Application
- users: UsersInfo
- received: number
- spent: number
- available: number
- fees: number
- invoices: number
- total_fees: number
+export type UserOperations = {
+ toIndex: number
operations: UserOperation[]
+ fromIndex: number
}
-export const AppMetricsOptionalFields: [] = []
-export type AppMetricsOptions = OptionsBaseMessage & {
+export const UserOperationsOptionalFields: [] = []
+export type UserOperationsOptions = OptionsBaseMessage & {
checkOptionalsAreSet?: []
- app_Options?: ApplicationOptions
- users_Options?: UsersInfoOptions
- received_CustomCheck?: (v: number) => boolean
- spent_CustomCheck?: (v: number) => boolean
- available_CustomCheck?: (v: number) => boolean
- fees_CustomCheck?: (v: number) => boolean
- invoices_CustomCheck?: (v: number) => boolean
- total_fees_CustomCheck?: (v: number) => boolean
+ fromIndex_CustomCheck?: (v: number) => boolean
+ toIndex_CustomCheck?: (v: number) => boolean
operations_ItemOptions?: UserOperationOptions
operations_CustomCheck?: (v: UserOperation[]) => boolean
}
-export const AppMetricsValidate = (o?: AppMetrics, opts: AppMetricsOptions = {}, path: string = 'AppMetrics::root.'): Error | null => {
+export const UserOperationsValidate = (o?: UserOperations, opts: UserOperationsOptions = {}, path: string = 'UserOperations::root.'): Error | null => {
if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
- const appErr = ApplicationValidate(o.app, opts.app_Options, `${path}.app`)
- if (appErr !== null) return appErr
-
+ if (typeof o.fromIndex !== 'number') return new Error(`${path}.fromIndex: is not a number`)
+ if (opts.fromIndex_CustomCheck && !opts.fromIndex_CustomCheck(o.fromIndex)) return new Error(`${path}.fromIndex: custom check failed`)
- const usersErr = UsersInfoValidate(o.users, opts.users_Options, `${path}.users`)
- if (usersErr !== null) return usersErr
-
-
- if (typeof o.received !== 'number') return new Error(`${path}.received: is not a number`)
- if (opts.received_CustomCheck && !opts.received_CustomCheck(o.received)) return new Error(`${path}.received: custom check failed`)
-
- if (typeof o.spent !== 'number') return new Error(`${path}.spent: is not a number`)
- if (opts.spent_CustomCheck && !opts.spent_CustomCheck(o.spent)) return new Error(`${path}.spent: custom check failed`)
-
- if (typeof o.available !== 'number') return new Error(`${path}.available: is not a number`)
- if (opts.available_CustomCheck && !opts.available_CustomCheck(o.available)) return new Error(`${path}.available: custom check failed`)
-
- if (typeof o.fees !== 'number') return new Error(`${path}.fees: is not a number`)
- if (opts.fees_CustomCheck && !opts.fees_CustomCheck(o.fees)) return new Error(`${path}.fees: custom check failed`)
-
- if (typeof o.invoices !== 'number') return new Error(`${path}.invoices: is not a number`)
- if (opts.invoices_CustomCheck && !opts.invoices_CustomCheck(o.invoices)) return new Error(`${path}.invoices: custom check failed`)
-
- if (typeof o.total_fees !== 'number') return new Error(`${path}.total_fees: is not a number`)
- if (opts.total_fees_CustomCheck && !opts.total_fees_CustomCheck(o.total_fees)) return new Error(`${path}.total_fees: custom check failed`)
+ if (typeof o.toIndex !== 'number') return new Error(`${path}.toIndex: is not a number`)
+ if (opts.toIndex_CustomCheck && !opts.toIndex_CustomCheck(o.toIndex)) return new Error(`${path}.toIndex: custom check failed`)
if (!Array.isArray(o.operations)) return new Error(`${path}.operations: is not an array`)
for (let index = 0; index < o.operations.length; index++) {
@@ -1436,58 +2259,20 @@ export const AppMetricsValidate = (o?: AppMetrics, opts: AppMetricsOptions = {},
return null
}
-export type ChainBalanceEvent = {
- block_height: number
- confirmed_balance: number
- unconfirmed_balance: number
- total_balance: number
+export type BanUserRequest = {
+ user_id: string
}
-export const ChainBalanceEventOptionalFields: [] = []
-export type ChainBalanceEventOptions = OptionsBaseMessage & {
+export const BanUserRequestOptionalFields: [] = []
+export type BanUserRequestOptions = OptionsBaseMessage & {
checkOptionalsAreSet?: []
- block_height_CustomCheck?: (v: number) => boolean
- confirmed_balance_CustomCheck?: (v: number) => boolean
- unconfirmed_balance_CustomCheck?: (v: number) => boolean
- total_balance_CustomCheck?: (v: number) => boolean
+ user_id_CustomCheck?: (v: string) => boolean
}
-export const ChainBalanceEventValidate = (o?: ChainBalanceEvent, opts: ChainBalanceEventOptions = {}, path: string = 'ChainBalanceEvent::root.'): Error | null => {
+export const BanUserRequestValidate = (o?: BanUserRequest, opts: BanUserRequestOptions = {}, path: string = 'BanUserRequest::root.'): Error | null => {
if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
- if (typeof o.block_height !== 'number') return new Error(`${path}.block_height: is not a number`)
- if (opts.block_height_CustomCheck && !opts.block_height_CustomCheck(o.block_height)) return new Error(`${path}.block_height: custom check failed`)
-
- if (typeof o.confirmed_balance !== 'number') return new Error(`${path}.confirmed_balance: is not a number`)
- if (opts.confirmed_balance_CustomCheck && !opts.confirmed_balance_CustomCheck(o.confirmed_balance)) return new Error(`${path}.confirmed_balance: custom check failed`)
-
- if (typeof o.unconfirmed_balance !== 'number') return new Error(`${path}.unconfirmed_balance: is not a number`)
- if (opts.unconfirmed_balance_CustomCheck && !opts.unconfirmed_balance_CustomCheck(o.unconfirmed_balance)) return new Error(`${path}.unconfirmed_balance: custom check failed`)
-
- if (typeof o.total_balance !== 'number') return new Error(`${path}.total_balance: is not a number`)
- if (opts.total_balance_CustomCheck && !opts.total_balance_CustomCheck(o.total_balance)) return new Error(`${path}.total_balance: custom check failed`)
-
- return null
-}
-
-export type SetMockInvoiceAsPaidRequest = {
- invoice: string
- amount: number
-}
-export const SetMockInvoiceAsPaidRequestOptionalFields: [] = []
-export type SetMockInvoiceAsPaidRequestOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- invoice_CustomCheck?: (v: string) => boolean
- amount_CustomCheck?: (v: number) => boolean
-}
-export const SetMockInvoiceAsPaidRequestValidate = (o?: SetMockInvoiceAsPaidRequest, opts: SetMockInvoiceAsPaidRequestOptions = {}, path: string = 'SetMockInvoiceAsPaidRequest::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.invoice !== 'string') return new Error(`${path}.invoice: is not a string`)
- if (opts.invoice_CustomCheck && !opts.invoice_CustomCheck(o.invoice)) return new Error(`${path}.invoice: custom check failed`)
-
- if (typeof o.amount !== 'number') return new Error(`${path}.amount: is not a number`)
- if (opts.amount_CustomCheck && !opts.amount_CustomCheck(o.amount)) return new Error(`${path}.amount: custom check failed`)
+ if (typeof o.user_id !== 'string') return new Error(`${path}.user_id: is not a string`)
+ if (opts.user_id_CustomCheck && !opts.user_id_CustomCheck(o.user_id)) return new Error(`${path}.user_id: custom check failed`)
return null
}
@@ -1510,281 +2295,15 @@ export const NewAddressRequestValidate = (o?: NewAddressRequest, opts: NewAddres
return null
}
-export type LndGetInfoRequest = {
- nodeId: number
-}
-export const LndGetInfoRequestOptionalFields: [] = []
-export type LndGetInfoRequestOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- nodeId_CustomCheck?: (v: number) => boolean
-}
-export const LndGetInfoRequestValidate = (o?: LndGetInfoRequest, opts: LndGetInfoRequestOptions = {}, path: string = 'LndGetInfoRequest::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.nodeId !== 'number') return new Error(`${path}.nodeId: is not a number`)
- if (opts.nodeId_CustomCheck && !opts.nodeId_CustomCheck(o.nodeId)) return new Error(`${path}.nodeId: custom check failed`)
-
- return null
-}
-
-export type NewAddressResponse = {
- address: string
-}
-export const NewAddressResponseOptionalFields: [] = []
-export type NewAddressResponseOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- address_CustomCheck?: (v: string) => boolean
-}
-export const NewAddressResponseValidate = (o?: NewAddressResponse, opts: NewAddressResponseOptions = {}, path: string = 'NewAddressResponse::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.address !== 'string') return new Error(`${path}.address: is not a string`)
- if (opts.address_CustomCheck && !opts.address_CustomCheck(o.address)) return new Error(`${path}.address: custom check failed`)
-
- return null
-}
-
-export type AppsMetrics = {
- apps: AppMetrics[]
-}
-export const AppsMetricsOptionalFields: [] = []
-export type AppsMetricsOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- apps_ItemOptions?: AppMetricsOptions
- apps_CustomCheck?: (v: AppMetrics[]) => boolean
-}
-export const AppsMetricsValidate = (o?: AppsMetrics, opts: AppsMetricsOptions = {}, path: string = 'AppsMetrics::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (!Array.isArray(o.apps)) return new Error(`${path}.apps: is not an array`)
- for (let index = 0; index < o.apps.length; index++) {
- const appsErr = AppMetricsValidate(o.apps[index], opts.apps_ItemOptions, `${path}.apps[${index}]`)
- if (appsErr !== null) return appsErr
- }
- if (opts.apps_CustomCheck && !opts.apps_CustomCheck(o.apps)) return new Error(`${path}.apps: custom check failed`)
-
- return null
-}
-
-export type LndNodeMetrics = {
- channels_balance_events: ChannelBalanceEvent[]
- chain_balance_events: ChainBalanceEvent[]
- offline_channels: number
- online_channels: number
- pending_channels: number
- closing_channels: number
- open_channels: OpenChannel[]
- closed_channels: ClosedChannel[]
- channel_routing: ChannelRouting[]
-}
-export const LndNodeMetricsOptionalFields: [] = []
-export type LndNodeMetricsOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- channels_balance_events_ItemOptions?: ChannelBalanceEventOptions
- channels_balance_events_CustomCheck?: (v: ChannelBalanceEvent[]) => boolean
- chain_balance_events_ItemOptions?: ChainBalanceEventOptions
- chain_balance_events_CustomCheck?: (v: ChainBalanceEvent[]) => boolean
- offline_channels_CustomCheck?: (v: number) => boolean
- online_channels_CustomCheck?: (v: number) => boolean
- pending_channels_CustomCheck?: (v: number) => boolean
- closing_channels_CustomCheck?: (v: number) => boolean
- open_channels_ItemOptions?: OpenChannelOptions
- open_channels_CustomCheck?: (v: OpenChannel[]) => boolean
- closed_channels_ItemOptions?: ClosedChannelOptions
- closed_channels_CustomCheck?: (v: ClosedChannel[]) => boolean
- channel_routing_ItemOptions?: ChannelRoutingOptions
- channel_routing_CustomCheck?: (v: ChannelRouting[]) => boolean
-}
-export const LndNodeMetricsValidate = (o?: LndNodeMetrics, opts: LndNodeMetricsOptions = {}, path: string = 'LndNodeMetrics::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (!Array.isArray(o.channels_balance_events)) return new Error(`${path}.channels_balance_events: is not an array`)
- for (let index = 0; index < o.channels_balance_events.length; index++) {
- const channels_balance_eventsErr = ChannelBalanceEventValidate(o.channels_balance_events[index], opts.channels_balance_events_ItemOptions, `${path}.channels_balance_events[${index}]`)
- if (channels_balance_eventsErr !== null) return channels_balance_eventsErr
- }
- if (opts.channels_balance_events_CustomCheck && !opts.channels_balance_events_CustomCheck(o.channels_balance_events)) return new Error(`${path}.channels_balance_events: custom check failed`)
-
- if (!Array.isArray(o.chain_balance_events)) return new Error(`${path}.chain_balance_events: is not an array`)
- for (let index = 0; index < o.chain_balance_events.length; index++) {
- const chain_balance_eventsErr = ChainBalanceEventValidate(o.chain_balance_events[index], opts.chain_balance_events_ItemOptions, `${path}.chain_balance_events[${index}]`)
- if (chain_balance_eventsErr !== null) return chain_balance_eventsErr
- }
- if (opts.chain_balance_events_CustomCheck && !opts.chain_balance_events_CustomCheck(o.chain_balance_events)) return new Error(`${path}.chain_balance_events: custom check failed`)
-
- if (typeof o.offline_channels !== 'number') return new Error(`${path}.offline_channels: is not a number`)
- if (opts.offline_channels_CustomCheck && !opts.offline_channels_CustomCheck(o.offline_channels)) return new Error(`${path}.offline_channels: custom check failed`)
-
- if (typeof o.online_channels !== 'number') return new Error(`${path}.online_channels: is not a number`)
- if (opts.online_channels_CustomCheck && !opts.online_channels_CustomCheck(o.online_channels)) return new Error(`${path}.online_channels: custom check failed`)
-
- if (typeof o.pending_channels !== 'number') return new Error(`${path}.pending_channels: is not a number`)
- if (opts.pending_channels_CustomCheck && !opts.pending_channels_CustomCheck(o.pending_channels)) return new Error(`${path}.pending_channels: custom check failed`)
-
- if (typeof o.closing_channels !== 'number') return new Error(`${path}.closing_channels: is not a number`)
- if (opts.closing_channels_CustomCheck && !opts.closing_channels_CustomCheck(o.closing_channels)) return new Error(`${path}.closing_channels: custom check failed`)
-
- if (!Array.isArray(o.open_channels)) return new Error(`${path}.open_channels: is not an array`)
- for (let index = 0; index < o.open_channels.length; index++) {
- const open_channelsErr = OpenChannelValidate(o.open_channels[index], opts.open_channels_ItemOptions, `${path}.open_channels[${index}]`)
- if (open_channelsErr !== null) return open_channelsErr
- }
- if (opts.open_channels_CustomCheck && !opts.open_channels_CustomCheck(o.open_channels)) return new Error(`${path}.open_channels: custom check failed`)
-
- if (!Array.isArray(o.closed_channels)) return new Error(`${path}.closed_channels: is not an array`)
- for (let index = 0; index < o.closed_channels.length; index++) {
- const closed_channelsErr = ClosedChannelValidate(o.closed_channels[index], opts.closed_channels_ItemOptions, `${path}.closed_channels[${index}]`)
- if (closed_channelsErr !== null) return closed_channelsErr
- }
- if (opts.closed_channels_CustomCheck && !opts.closed_channels_CustomCheck(o.closed_channels)) return new Error(`${path}.closed_channels: custom check failed`)
-
- if (!Array.isArray(o.channel_routing)) return new Error(`${path}.channel_routing: is not an array`)
- for (let index = 0; index < o.channel_routing.length; index++) {
- const channel_routingErr = ChannelRoutingValidate(o.channel_routing[index], opts.channel_routing_ItemOptions, `${path}.channel_routing[${index}]`)
- if (channel_routingErr !== null) return channel_routingErr
- }
- if (opts.channel_routing_CustomCheck && !opts.channel_routing_CustomCheck(o.channel_routing)) return new Error(`${path}.channel_routing: custom check failed`)
-
- return null
-}
-
-export type AuthAppRequest = {
- name: string
- allow_user_creation?: boolean
-}
-export type AuthAppRequestOptionalField = 'allow_user_creation'
-export const AuthAppRequestOptionalFields: AuthAppRequestOptionalField[] = ['allow_user_creation']
-export type AuthAppRequestOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: AuthAppRequestOptionalField[]
- name_CustomCheck?: (v: string) => boolean
- allow_user_creation_CustomCheck?: (v?: boolean) => boolean
-}
-export const AuthAppRequestValidate = (o?: AuthAppRequest, opts: AuthAppRequestOptions = {}, path: string = 'AuthAppRequest::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.name !== 'string') return new Error(`${path}.name: is not a string`)
- if (opts.name_CustomCheck && !opts.name_CustomCheck(o.name)) return new Error(`${path}.name: custom check failed`)
-
- if ((o.allow_user_creation || opts.allOptionalsAreSet || opts.checkOptionalsAreSet?.includes('allow_user_creation')) && typeof o.allow_user_creation !== 'boolean') return new Error(`${path}.allow_user_creation: is not a boolean`)
- if (opts.allow_user_creation_CustomCheck && !opts.allow_user_creation_CustomCheck(o.allow_user_creation)) return new Error(`${path}.allow_user_creation: custom check failed`)
-
- return null
-}
-
-export type PayAddressResponse = {
- txId: string
- operation_id: string
- service_fee: number
- network_fee: number
-}
-export const PayAddressResponseOptionalFields: [] = []
-export type PayAddressResponseOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- txId_CustomCheck?: (v: string) => boolean
- operation_id_CustomCheck?: (v: string) => boolean
- service_fee_CustomCheck?: (v: number) => boolean
- network_fee_CustomCheck?: (v: number) => boolean
-}
-export const PayAddressResponseValidate = (o?: PayAddressResponse, opts: PayAddressResponseOptions = {}, path: string = 'PayAddressResponse::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.txId !== 'string') return new Error(`${path}.txId: is not a string`)
- if (opts.txId_CustomCheck && !opts.txId_CustomCheck(o.txId)) return new Error(`${path}.txId: custom check failed`)
-
- if (typeof o.operation_id !== 'string') return new Error(`${path}.operation_id: is not a string`)
- if (opts.operation_id_CustomCheck && !opts.operation_id_CustomCheck(o.operation_id)) return new Error(`${path}.operation_id: custom check failed`)
-
- if (typeof o.service_fee !== 'number') return new Error(`${path}.service_fee: is not a number`)
- if (opts.service_fee_CustomCheck && !opts.service_fee_CustomCheck(o.service_fee)) return new Error(`${path}.service_fee: custom check failed`)
-
- if (typeof o.network_fee !== 'number') return new Error(`${path}.network_fee: is not a number`)
- if (opts.network_fee_CustomCheck && !opts.network_fee_CustomCheck(o.network_fee)) return new Error(`${path}.network_fee: custom check failed`)
-
- return null
-}
-
-export type LndMetricsRequest = {
- from_unix?: number
- to_unix?: number
-}
-export type LndMetricsRequestOptionalField = 'from_unix' | 'to_unix'
-export const LndMetricsRequestOptionalFields: LndMetricsRequestOptionalField[] = ['from_unix', 'to_unix']
-export type LndMetricsRequestOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: LndMetricsRequestOptionalField[]
- from_unix_CustomCheck?: (v?: number) => boolean
- to_unix_CustomCheck?: (v?: number) => boolean
-}
-export const LndMetricsRequestValidate = (o?: LndMetricsRequest, opts: LndMetricsRequestOptions = {}, path: string = 'LndMetricsRequest::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if ((o.from_unix || opts.allOptionalsAreSet || opts.checkOptionalsAreSet?.includes('from_unix')) && typeof o.from_unix !== 'number') return new Error(`${path}.from_unix: is not a number`)
- if (opts.from_unix_CustomCheck && !opts.from_unix_CustomCheck(o.from_unix)) return new Error(`${path}.from_unix: custom check failed`)
-
- if ((o.to_unix || opts.allOptionalsAreSet || opts.checkOptionalsAreSet?.includes('to_unix')) && typeof o.to_unix !== 'number') return new Error(`${path}.to_unix: is not a number`)
- if (opts.to_unix_CustomCheck && !opts.to_unix_CustomCheck(o.to_unix)) return new Error(`${path}.to_unix: custom check failed`)
-
- return null
-}
-
-export type OpenChannel = {
- channel_id: string
- capacity: number
- active: boolean
- lifetime: number
- local_balance: number
- remote_balance: number
-}
-export const OpenChannelOptionalFields: [] = []
-export type OpenChannelOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- channel_id_CustomCheck?: (v: string) => boolean
- capacity_CustomCheck?: (v: number) => boolean
- active_CustomCheck?: (v: boolean) => boolean
- lifetime_CustomCheck?: (v: number) => boolean
- local_balance_CustomCheck?: (v: number) => boolean
- remote_balance_CustomCheck?: (v: number) => boolean
-}
-export const OpenChannelValidate = (o?: OpenChannel, opts: OpenChannelOptions = {}, path: string = 'OpenChannel::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.channel_id !== 'string') return new Error(`${path}.channel_id: is not a string`)
- if (opts.channel_id_CustomCheck && !opts.channel_id_CustomCheck(o.channel_id)) return new Error(`${path}.channel_id: custom check failed`)
-
- if (typeof o.capacity !== 'number') return new Error(`${path}.capacity: is not a number`)
- if (opts.capacity_CustomCheck && !opts.capacity_CustomCheck(o.capacity)) return new Error(`${path}.capacity: custom check failed`)
-
- if (typeof o.active !== 'boolean') return new Error(`${path}.active: is not a boolean`)
- if (opts.active_CustomCheck && !opts.active_CustomCheck(o.active)) return new Error(`${path}.active: custom check failed`)
-
- if (typeof o.lifetime !== 'number') return new Error(`${path}.lifetime: is not a number`)
- if (opts.lifetime_CustomCheck && !opts.lifetime_CustomCheck(o.lifetime)) return new Error(`${path}.lifetime: custom check failed`)
-
- if (typeof o.local_balance !== 'number') return new Error(`${path}.local_balance: is not a number`)
- if (opts.local_balance_CustomCheck && !opts.local_balance_CustomCheck(o.local_balance)) return new Error(`${path}.local_balance: custom check failed`)
-
- if (typeof o.remote_balance !== 'number') return new Error(`${path}.remote_balance: is not a number`)
- if (opts.remote_balance_CustomCheck && !opts.remote_balance_CustomCheck(o.remote_balance)) return new Error(`${path}.remote_balance: custom check failed`)
-
- return null
-}
-
-export type NewInvoiceResponse = {
+export type DecodeInvoiceRequest = {
invoice: string
}
-export const NewInvoiceResponseOptionalFields: [] = []
-export type NewInvoiceResponseOptions = OptionsBaseMessage & {
+export const DecodeInvoiceRequestOptionalFields: [] = []
+export type DecodeInvoiceRequestOptions = OptionsBaseMessage & {
checkOptionalsAreSet?: []
invoice_CustomCheck?: (v: string) => boolean
}
-export const NewInvoiceResponseValidate = (o?: NewInvoiceResponse, opts: NewInvoiceResponseOptions = {}, path: string = 'NewInvoiceResponse::root.'): Error | null => {
+export const DecodeInvoiceRequestValidate = (o?: DecodeInvoiceRequest, opts: DecodeInvoiceRequestOptions = {}, path: string = 'DecodeInvoiceRequest::root.'): Error | null => {
if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
@@ -1794,141 +2313,86 @@ export const NewInvoiceResponseValidate = (o?: NewInvoiceResponse, opts: NewInvo
return null
}
-export type ChannelRouting = {
- channel_id: string
- send_errors: number
- receive_errors: number
- forward_errors_as_input: number
- forward_errors_as_output: number
- missed_forward_fee_as_input: number
- missed_forward_fee_as_output: number
- forward_fee_as_input: number
- forward_fee_as_output: number
- events_number: number
-}
-export const ChannelRoutingOptionalFields: [] = []
-export type ChannelRoutingOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- channel_id_CustomCheck?: (v: string) => boolean
- send_errors_CustomCheck?: (v: number) => boolean
- receive_errors_CustomCheck?: (v: number) => boolean
- forward_errors_as_input_CustomCheck?: (v: number) => boolean
- forward_errors_as_output_CustomCheck?: (v: number) => boolean
- missed_forward_fee_as_input_CustomCheck?: (v: number) => boolean
- missed_forward_fee_as_output_CustomCheck?: (v: number) => boolean
- forward_fee_as_input_CustomCheck?: (v: number) => boolean
- forward_fee_as_output_CustomCheck?: (v: number) => boolean
- events_number_CustomCheck?: (v: number) => boolean
-}
-export const ChannelRoutingValidate = (o?: ChannelRouting, opts: ChannelRoutingOptions = {}, path: string = 'ChannelRouting::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.channel_id !== 'string') return new Error(`${path}.channel_id: is not a string`)
- if (opts.channel_id_CustomCheck && !opts.channel_id_CustomCheck(o.channel_id)) return new Error(`${path}.channel_id: custom check failed`)
-
- if (typeof o.send_errors !== 'number') return new Error(`${path}.send_errors: is not a number`)
- if (opts.send_errors_CustomCheck && !opts.send_errors_CustomCheck(o.send_errors)) return new Error(`${path}.send_errors: custom check failed`)
-
- if (typeof o.receive_errors !== 'number') return new Error(`${path}.receive_errors: is not a number`)
- if (opts.receive_errors_CustomCheck && !opts.receive_errors_CustomCheck(o.receive_errors)) return new Error(`${path}.receive_errors: custom check failed`)
-
- if (typeof o.forward_errors_as_input !== 'number') return new Error(`${path}.forward_errors_as_input: is not a number`)
- if (opts.forward_errors_as_input_CustomCheck && !opts.forward_errors_as_input_CustomCheck(o.forward_errors_as_input)) return new Error(`${path}.forward_errors_as_input: custom check failed`)
-
- if (typeof o.forward_errors_as_output !== 'number') return new Error(`${path}.forward_errors_as_output: is not a number`)
- if (opts.forward_errors_as_output_CustomCheck && !opts.forward_errors_as_output_CustomCheck(o.forward_errors_as_output)) return new Error(`${path}.forward_errors_as_output: custom check failed`)
-
- if (typeof o.missed_forward_fee_as_input !== 'number') return new Error(`${path}.missed_forward_fee_as_input: is not a number`)
- if (opts.missed_forward_fee_as_input_CustomCheck && !opts.missed_forward_fee_as_input_CustomCheck(o.missed_forward_fee_as_input)) return new Error(`${path}.missed_forward_fee_as_input: custom check failed`)
-
- if (typeof o.missed_forward_fee_as_output !== 'number') return new Error(`${path}.missed_forward_fee_as_output: is not a number`)
- if (opts.missed_forward_fee_as_output_CustomCheck && !opts.missed_forward_fee_as_output_CustomCheck(o.missed_forward_fee_as_output)) return new Error(`${path}.missed_forward_fee_as_output: custom check failed`)
-
- if (typeof o.forward_fee_as_input !== 'number') return new Error(`${path}.forward_fee_as_input: is not a number`)
- if (opts.forward_fee_as_input_CustomCheck && !opts.forward_fee_as_input_CustomCheck(o.forward_fee_as_input)) return new Error(`${path}.forward_fee_as_input: custom check failed`)
-
- if (typeof o.forward_fee_as_output !== 'number') return new Error(`${path}.forward_fee_as_output: is not a number`)
- if (opts.forward_fee_as_output_CustomCheck && !opts.forward_fee_as_output_CustomCheck(o.forward_fee_as_output)) return new Error(`${path}.forward_fee_as_output: custom check failed`)
-
- if (typeof o.events_number !== 'number') return new Error(`${path}.events_number: is not a number`)
- if (opts.events_number_CustomCheck && !opts.events_number_CustomCheck(o.events_number)) return new Error(`${path}.events_number: custom check failed`)
-
- return null
-}
-
-export type LnurlPayInfoResponse = {
+export type LnurlWithdrawInfoResponse = {
+ balanceCheck: string
+ payLink: string
tag: string
callback: string
- maxSendable: number
- minSendable: number
- metadata: string
- allowsNostr: boolean
- nostrPubkey: string
+ k1: string
+ defaultDescription: string
+ minWithdrawable: number
+ maxWithdrawable: number
}
-export const LnurlPayInfoResponseOptionalFields: [] = []
-export type LnurlPayInfoResponseOptions = OptionsBaseMessage & {
+export const LnurlWithdrawInfoResponseOptionalFields: [] = []
+export type LnurlWithdrawInfoResponseOptions = OptionsBaseMessage & {
checkOptionalsAreSet?: []
+ maxWithdrawable_CustomCheck?: (v: number) => boolean
+ balanceCheck_CustomCheck?: (v: string) => boolean
+ payLink_CustomCheck?: (v: string) => boolean
tag_CustomCheck?: (v: string) => boolean
callback_CustomCheck?: (v: string) => boolean
- maxSendable_CustomCheck?: (v: number) => boolean
- minSendable_CustomCheck?: (v: number) => boolean
- metadata_CustomCheck?: (v: string) => boolean
- allowsNostr_CustomCheck?: (v: boolean) => boolean
- nostrPubkey_CustomCheck?: (v: string) => boolean
+ k1_CustomCheck?: (v: string) => boolean
+ defaultDescription_CustomCheck?: (v: string) => boolean
+ minWithdrawable_CustomCheck?: (v: number) => boolean
}
-export const LnurlPayInfoResponseValidate = (o?: LnurlPayInfoResponse, opts: LnurlPayInfoResponseOptions = {}, path: string = 'LnurlPayInfoResponse::root.'): Error | null => {
+export const LnurlWithdrawInfoResponseValidate = (o?: LnurlWithdrawInfoResponse, opts: LnurlWithdrawInfoResponseOptions = {}, path: string = 'LnurlWithdrawInfoResponse::root.'): Error | null => {
if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+ if (typeof o.k1 !== 'string') return new Error(`${path}.k1: is not a string`)
+ if (opts.k1_CustomCheck && !opts.k1_CustomCheck(o.k1)) return new Error(`${path}.k1: custom check failed`)
+
+ if (typeof o.defaultDescription !== 'string') return new Error(`${path}.defaultDescription: is not a string`)
+ if (opts.defaultDescription_CustomCheck && !opts.defaultDescription_CustomCheck(o.defaultDescription)) return new Error(`${path}.defaultDescription: custom check failed`)
+
+ if (typeof o.minWithdrawable !== 'number') return new Error(`${path}.minWithdrawable: is not a number`)
+ if (opts.minWithdrawable_CustomCheck && !opts.minWithdrawable_CustomCheck(o.minWithdrawable)) return new Error(`${path}.minWithdrawable: custom check failed`)
+
+ if (typeof o.maxWithdrawable !== 'number') return new Error(`${path}.maxWithdrawable: is not a number`)
+ if (opts.maxWithdrawable_CustomCheck && !opts.maxWithdrawable_CustomCheck(o.maxWithdrawable)) return new Error(`${path}.maxWithdrawable: custom check failed`)
+
+ if (typeof o.balanceCheck !== 'string') return new Error(`${path}.balanceCheck: is not a string`)
+ if (opts.balanceCheck_CustomCheck && !opts.balanceCheck_CustomCheck(o.balanceCheck)) return new Error(`${path}.balanceCheck: custom check failed`)
+
+ if (typeof o.payLink !== 'string') return new Error(`${path}.payLink: is not a string`)
+ if (opts.payLink_CustomCheck && !opts.payLink_CustomCheck(o.payLink)) return new Error(`${path}.payLink: custom check failed`)
+
if (typeof o.tag !== 'string') return new Error(`${path}.tag: is not a string`)
if (opts.tag_CustomCheck && !opts.tag_CustomCheck(o.tag)) return new Error(`${path}.tag: custom check failed`)
if (typeof o.callback !== 'string') return new Error(`${path}.callback: is not a string`)
if (opts.callback_CustomCheck && !opts.callback_CustomCheck(o.callback)) return new Error(`${path}.callback: custom check failed`)
- if (typeof o.maxSendable !== 'number') return new Error(`${path}.maxSendable: is not a number`)
- if (opts.maxSendable_CustomCheck && !opts.maxSendable_CustomCheck(o.maxSendable)) return new Error(`${path}.maxSendable: custom check failed`)
-
- if (typeof o.minSendable !== 'number') return new Error(`${path}.minSendable: is not a number`)
- if (opts.minSendable_CustomCheck && !opts.minSendable_CustomCheck(o.minSendable)) return new Error(`${path}.minSendable: custom check failed`)
-
- if (typeof o.metadata !== 'string') return new Error(`${path}.metadata: is not a string`)
- if (opts.metadata_CustomCheck && !opts.metadata_CustomCheck(o.metadata)) return new Error(`${path}.metadata: custom check failed`)
-
- if (typeof o.allowsNostr !== 'boolean') return new Error(`${path}.allowsNostr: is not a boolean`)
- if (opts.allowsNostr_CustomCheck && !opts.allowsNostr_CustomCheck(o.allowsNostr)) return new Error(`${path}.allowsNostr: custom check failed`)
-
- if (typeof o.nostrPubkey !== 'string') return new Error(`${path}.nostrPubkey: is not a string`)
- if (opts.nostrPubkey_CustomCheck && !opts.nostrPubkey_CustomCheck(o.nostrPubkey)) return new Error(`${path}.nostrPubkey: custom check failed`)
-
return null
}
export type GetUserOperationsRequest = {
+ latestIncomingUserToUserPayment: number
+ latestOutgoingUserToUserPayment: number
+ max_size: number
latestIncomingInvoice: number
latestOutgoingInvoice: number
latestIncomingTx: number
latestOutgoingTx: number
- latestIncomingUserToUserPayment: number
- latestOutgoingUserToUserPayment: number
- max_size: number
}
export const GetUserOperationsRequestOptionalFields: [] = []
export type GetUserOperationsRequestOptions = OptionsBaseMessage & {
checkOptionalsAreSet?: []
+ latestIncomingUserToUserPayment_CustomCheck?: (v: number) => boolean
+ latestOutgoingUserToUserPayment_CustomCheck?: (v: number) => boolean
+ max_size_CustomCheck?: (v: number) => boolean
latestIncomingInvoice_CustomCheck?: (v: number) => boolean
latestOutgoingInvoice_CustomCheck?: (v: number) => boolean
latestIncomingTx_CustomCheck?: (v: number) => boolean
latestOutgoingTx_CustomCheck?: (v: number) => boolean
- latestIncomingUserToUserPayment_CustomCheck?: (v: number) => boolean
- latestOutgoingUserToUserPayment_CustomCheck?: (v: number) => boolean
- max_size_CustomCheck?: (v: number) => boolean
}
export const GetUserOperationsRequestValidate = (o?: GetUserOperationsRequest, opts: GetUserOperationsRequestOptions = {}, path: string = 'GetUserOperationsRequest::root.'): Error | null => {
if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+ if (typeof o.max_size !== 'number') return new Error(`${path}.max_size: is not a number`)
+ if (opts.max_size_CustomCheck && !opts.max_size_CustomCheck(o.max_size)) return new Error(`${path}.max_size: custom check failed`)
+
if (typeof o.latestIncomingInvoice !== 'number') return new Error(`${path}.latestIncomingInvoice: is not a number`)
if (opts.latestIncomingInvoice_CustomCheck && !opts.latestIncomingInvoice_CustomCheck(o.latestIncomingInvoice)) return new Error(`${path}.latestIncomingInvoice: custom check failed`)
@@ -1947,448 +2411,6 @@ export const GetUserOperationsRequestValidate = (o?: GetUserOperationsRequest, o
if (typeof o.latestOutgoingUserToUserPayment !== 'number') return new Error(`${path}.latestOutgoingUserToUserPayment: is not a number`)
if (opts.latestOutgoingUserToUserPayment_CustomCheck && !opts.latestOutgoingUserToUserPayment_CustomCheck(o.latestOutgoingUserToUserPayment)) return new Error(`${path}.latestOutgoingUserToUserPayment: custom check failed`)
- if (typeof o.max_size !== 'number') return new Error(`${path}.max_size: is not a number`)
- if (opts.max_size_CustomCheck && !opts.max_size_CustomCheck(o.max_size)) return new Error(`${path}.max_size: custom check failed`)
-
- return null
-}
-
-export type RelaysMigration = {
- relays: string[]
-}
-export const RelaysMigrationOptionalFields: [] = []
-export type RelaysMigrationOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- relays_CustomCheck?: (v: string[]) => boolean
-}
-export const RelaysMigrationValidate = (o?: RelaysMigration, opts: RelaysMigrationOptions = {}, path: string = 'RelaysMigration::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (!Array.isArray(o.relays)) return new Error(`${path}.relays: is not an array`)
- for (let index = 0; index < o.relays.length; index++) {
- if (typeof o.relays[index] !== 'string') return new Error(`${path}.relays[${index}]: is not a string`)
- }
- if (opts.relays_CustomCheck && !opts.relays_CustomCheck(o.relays)) return new Error(`${path}.relays: custom check failed`)
-
- return null
-}
-
-export type RequestNPubLinkingTokenResponse = {
- token: string
-}
-export const RequestNPubLinkingTokenResponseOptionalFields: [] = []
-export type RequestNPubLinkingTokenResponseOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- token_CustomCheck?: (v: string) => boolean
-}
-export const RequestNPubLinkingTokenResponseValidate = (o?: RequestNPubLinkingTokenResponse, opts: RequestNPubLinkingTokenResponseOptions = {}, path: string = 'RequestNPubLinkingTokenResponse::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.token !== 'string') return new Error(`${path}.token: is not a string`)
- if (opts.token_CustomCheck && !opts.token_CustomCheck(o.token)) return new Error(`${path}.token: custom check failed`)
-
- return null
-}
-
-export type BannedAppUser = {
- app_name: string
- app_id: string
- user_identifier: string
- nostr_pub: string
-}
-export const BannedAppUserOptionalFields: [] = []
-export type BannedAppUserOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- app_name_CustomCheck?: (v: string) => boolean
- app_id_CustomCheck?: (v: string) => boolean
- user_identifier_CustomCheck?: (v: string) => boolean
- nostr_pub_CustomCheck?: (v: string) => boolean
-}
-export const BannedAppUserValidate = (o?: BannedAppUser, opts: BannedAppUserOptions = {}, path: string = 'BannedAppUser::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.app_name !== 'string') return new Error(`${path}.app_name: is not a string`)
- if (opts.app_name_CustomCheck && !opts.app_name_CustomCheck(o.app_name)) return new Error(`${path}.app_name: custom check failed`)
-
- if (typeof o.app_id !== 'string') return new Error(`${path}.app_id: is not a string`)
- if (opts.app_id_CustomCheck && !opts.app_id_CustomCheck(o.app_id)) return new Error(`${path}.app_id: custom check failed`)
-
- if (typeof o.user_identifier !== 'string') return new Error(`${path}.user_identifier: is not a string`)
- if (opts.user_identifier_CustomCheck && !opts.user_identifier_CustomCheck(o.user_identifier)) return new Error(`${path}.user_identifier: custom check failed`)
-
- if (typeof o.nostr_pub !== 'string') return new Error(`${path}.nostr_pub: is not a string`)
- if (opts.nostr_pub_CustomCheck && !opts.nostr_pub_CustomCheck(o.nostr_pub)) return new Error(`${path}.nostr_pub: custom check failed`)
-
- return null
-}
-
-export type Application = {
- name: string
- id: string
- balance: number
- npub: string
-}
-export const ApplicationOptionalFields: [] = []
-export type ApplicationOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- name_CustomCheck?: (v: string) => boolean
- id_CustomCheck?: (v: string) => boolean
- balance_CustomCheck?: (v: number) => boolean
- npub_CustomCheck?: (v: string) => boolean
-}
-export const ApplicationValidate = (o?: Application, opts: ApplicationOptions = {}, path: string = 'Application::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.name !== 'string') return new Error(`${path}.name: is not a string`)
- if (opts.name_CustomCheck && !opts.name_CustomCheck(o.name)) return new Error(`${path}.name: custom check failed`)
-
- if (typeof o.id !== 'string') return new Error(`${path}.id: is not a string`)
- if (opts.id_CustomCheck && !opts.id_CustomCheck(o.id)) return new Error(`${path}.id: custom check failed`)
-
- if (typeof o.balance !== 'number') return new Error(`${path}.balance: is not a number`)
- if (opts.balance_CustomCheck && !opts.balance_CustomCheck(o.balance)) return new Error(`${path}.balance: custom check failed`)
-
- if (typeof o.npub !== 'string') return new Error(`${path}.npub: is not a string`)
- if (opts.npub_CustomCheck && !opts.npub_CustomCheck(o.npub)) return new Error(`${path}.npub: custom check failed`)
-
- return null
-}
-
-export type PayInvoiceResponse = {
- preimage: string
- amount_paid: number
- operation_id: string
- service_fee: number
- network_fee: number
-}
-export const PayInvoiceResponseOptionalFields: [] = []
-export type PayInvoiceResponseOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- preimage_CustomCheck?: (v: string) => boolean
- amount_paid_CustomCheck?: (v: number) => boolean
- operation_id_CustomCheck?: (v: string) => boolean
- service_fee_CustomCheck?: (v: number) => boolean
- network_fee_CustomCheck?: (v: number) => boolean
-}
-export const PayInvoiceResponseValidate = (o?: PayInvoiceResponse, opts: PayInvoiceResponseOptions = {}, path: string = 'PayInvoiceResponse::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.preimage !== 'string') return new Error(`${path}.preimage: is not a string`)
- if (opts.preimage_CustomCheck && !opts.preimage_CustomCheck(o.preimage)) return new Error(`${path}.preimage: custom check failed`)
-
- if (typeof o.amount_paid !== 'number') return new Error(`${path}.amount_paid: is not a number`)
- if (opts.amount_paid_CustomCheck && !opts.amount_paid_CustomCheck(o.amount_paid)) return new Error(`${path}.amount_paid: custom check failed`)
-
- if (typeof o.operation_id !== 'string') return new Error(`${path}.operation_id: is not a string`)
- if (opts.operation_id_CustomCheck && !opts.operation_id_CustomCheck(o.operation_id)) return new Error(`${path}.operation_id: custom check failed`)
-
- if (typeof o.service_fee !== 'number') return new Error(`${path}.service_fee: is not a number`)
- if (opts.service_fee_CustomCheck && !opts.service_fee_CustomCheck(o.service_fee)) return new Error(`${path}.service_fee: custom check failed`)
-
- if (typeof o.network_fee !== 'number') return new Error(`${path}.network_fee: is not a number`)
- if (opts.network_fee_CustomCheck && !opts.network_fee_CustomCheck(o.network_fee)) return new Error(`${path}.network_fee: custom check failed`)
-
- return null
-}
-
-export type LnurlLinkResponse = {
- lnurl: string
- k1: string
-}
-export const LnurlLinkResponseOptionalFields: [] = []
-export type LnurlLinkResponseOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- lnurl_CustomCheck?: (v: string) => boolean
- k1_CustomCheck?: (v: string) => boolean
-}
-export const LnurlLinkResponseValidate = (o?: LnurlLinkResponse, opts: LnurlLinkResponseOptions = {}, path: string = 'LnurlLinkResponse::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.lnurl !== 'string') return new Error(`${path}.lnurl: is not a string`)
- if (opts.lnurl_CustomCheck && !opts.lnurl_CustomCheck(o.lnurl)) return new Error(`${path}.lnurl: custom check failed`)
-
- if (typeof o.k1 !== 'string') return new Error(`${path}.k1: is not a string`)
- if (opts.k1_CustomCheck && !opts.k1_CustomCheck(o.k1)) return new Error(`${path}.k1: custom check failed`)
-
- return null
-}
-
-export type LndMetrics = {
- nodes: LndNodeMetrics[]
-}
-export const LndMetricsOptionalFields: [] = []
-export type LndMetricsOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- nodes_ItemOptions?: LndNodeMetricsOptions
- nodes_CustomCheck?: (v: LndNodeMetrics[]) => boolean
-}
-export const LndMetricsValidate = (o?: LndMetrics, opts: LndMetricsOptions = {}, path: string = 'LndMetrics::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (!Array.isArray(o.nodes)) return new Error(`${path}.nodes: is not an array`)
- for (let index = 0; index < o.nodes.length; index++) {
- const nodesErr = LndNodeMetricsValidate(o.nodes[index], opts.nodes_ItemOptions, `${path}.nodes[${index}]`)
- if (nodesErr !== null) return nodesErr
- }
- if (opts.nodes_CustomCheck && !opts.nodes_CustomCheck(o.nodes)) return new Error(`${path}.nodes: custom check failed`)
-
- return null
-}
-
-export type LndGetInfoResponse = {
- alias: string
-}
-export const LndGetInfoResponseOptionalFields: [] = []
-export type LndGetInfoResponseOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- alias_CustomCheck?: (v: string) => boolean
-}
-export const LndGetInfoResponseValidate = (o?: LndGetInfoResponse, opts: LndGetInfoResponseOptions = {}, path: string = 'LndGetInfoResponse::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.alias !== 'string') return new Error(`${path}.alias: is not a string`)
- if (opts.alias_CustomCheck && !opts.alias_CustomCheck(o.alias)) return new Error(`${path}.alias: custom check failed`)
-
- return null
-}
-
-export type PayAddressRequest = {
- address: string
- amoutSats: number
- satsPerVByte: number
-}
-export const PayAddressRequestOptionalFields: [] = []
-export type PayAddressRequestOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- address_CustomCheck?: (v: string) => boolean
- amoutSats_CustomCheck?: (v: number) => boolean
- satsPerVByte_CustomCheck?: (v: number) => boolean
-}
-export const PayAddressRequestValidate = (o?: PayAddressRequest, opts: PayAddressRequestOptions = {}, path: string = 'PayAddressRequest::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.address !== 'string') return new Error(`${path}.address: is not a string`)
- if (opts.address_CustomCheck && !opts.address_CustomCheck(o.address)) return new Error(`${path}.address: custom check failed`)
-
- if (typeof o.amoutSats !== 'number') return new Error(`${path}.amoutSats: is not a number`)
- if (opts.amoutSats_CustomCheck && !opts.amoutSats_CustomCheck(o.amoutSats)) return new Error(`${path}.amoutSats: custom check failed`)
-
- if (typeof o.satsPerVByte !== 'number') return new Error(`${path}.satsPerVByte: is not a number`)
- if (opts.satsPerVByte_CustomCheck && !opts.satsPerVByte_CustomCheck(o.satsPerVByte)) return new Error(`${path}.satsPerVByte: custom check failed`)
-
- return null
-}
-
-export type OpenChannelRequest = {
- destination: string
- fundingAmount: number
- pushAmount: number
- closeAddress: string
-}
-export const OpenChannelRequestOptionalFields: [] = []
-export type OpenChannelRequestOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- destination_CustomCheck?: (v: string) => boolean
- fundingAmount_CustomCheck?: (v: number) => boolean
- pushAmount_CustomCheck?: (v: number) => boolean
- closeAddress_CustomCheck?: (v: string) => boolean
-}
-export const OpenChannelRequestValidate = (o?: OpenChannelRequest, opts: OpenChannelRequestOptions = {}, path: string = 'OpenChannelRequest::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.destination !== 'string') return new Error(`${path}.destination: is not a string`)
- if (opts.destination_CustomCheck && !opts.destination_CustomCheck(o.destination)) return new Error(`${path}.destination: custom check failed`)
-
- if (typeof o.fundingAmount !== 'number') return new Error(`${path}.fundingAmount: is not a number`)
- if (opts.fundingAmount_CustomCheck && !opts.fundingAmount_CustomCheck(o.fundingAmount)) return new Error(`${path}.fundingAmount: custom check failed`)
-
- if (typeof o.pushAmount !== 'number') return new Error(`${path}.pushAmount: is not a number`)
- if (opts.pushAmount_CustomCheck && !opts.pushAmount_CustomCheck(o.pushAmount)) return new Error(`${path}.pushAmount: custom check failed`)
-
- if (typeof o.closeAddress !== 'string') return new Error(`${path}.closeAddress: is not a string`)
- if (opts.closeAddress_CustomCheck && !opts.closeAddress_CustomCheck(o.closeAddress)) return new Error(`${path}.closeAddress: custom check failed`)
-
- return null
-}
-
-export type AppsMetricsRequest = {
- from_unix?: number
- to_unix?: number
- include_operations?: boolean
-}
-export type AppsMetricsRequestOptionalField = 'from_unix' | 'to_unix' | 'include_operations'
-export const AppsMetricsRequestOptionalFields: AppsMetricsRequestOptionalField[] = ['from_unix', 'to_unix', 'include_operations']
-export type AppsMetricsRequestOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: AppsMetricsRequestOptionalField[]
- from_unix_CustomCheck?: (v?: number) => boolean
- to_unix_CustomCheck?: (v?: number) => boolean
- include_operations_CustomCheck?: (v?: boolean) => boolean
-}
-export const AppsMetricsRequestValidate = (o?: AppsMetricsRequest, opts: AppsMetricsRequestOptions = {}, path: string = 'AppsMetricsRequest::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if ((o.from_unix || opts.allOptionalsAreSet || opts.checkOptionalsAreSet?.includes('from_unix')) && typeof o.from_unix !== 'number') return new Error(`${path}.from_unix: is not a number`)
- if (opts.from_unix_CustomCheck && !opts.from_unix_CustomCheck(o.from_unix)) return new Error(`${path}.from_unix: custom check failed`)
-
- if ((o.to_unix || opts.allOptionalsAreSet || opts.checkOptionalsAreSet?.includes('to_unix')) && typeof o.to_unix !== 'number') return new Error(`${path}.to_unix: is not a number`)
- if (opts.to_unix_CustomCheck && !opts.to_unix_CustomCheck(o.to_unix)) return new Error(`${path}.to_unix: custom check failed`)
-
- if ((o.include_operations || opts.allOptionalsAreSet || opts.checkOptionalsAreSet?.includes('include_operations')) && typeof o.include_operations !== 'boolean') return new Error(`${path}.include_operations: is not a boolean`)
- if (opts.include_operations_CustomCheck && !opts.include_operations_CustomCheck(o.include_operations)) return new Error(`${path}.include_operations: custom check failed`)
-
- return null
-}
-
-export type RoutingEvent = {
- incoming_channel_id: number
- incoming_htlc_id: number
- outgoing_channel_id: number
- outgoing_htlc_id: number
- timestamp_ns: number
- event_type: string
- incoming_amt_msat: number
- outgoing_amt_msat: number
- failure_string: string
- settled: boolean
- offchain: boolean
- forward_fail_event: boolean
-}
-export const RoutingEventOptionalFields: [] = []
-export type RoutingEventOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- incoming_channel_id_CustomCheck?: (v: number) => boolean
- incoming_htlc_id_CustomCheck?: (v: number) => boolean
- outgoing_channel_id_CustomCheck?: (v: number) => boolean
- outgoing_htlc_id_CustomCheck?: (v: number) => boolean
- timestamp_ns_CustomCheck?: (v: number) => boolean
- event_type_CustomCheck?: (v: string) => boolean
- incoming_amt_msat_CustomCheck?: (v: number) => boolean
- outgoing_amt_msat_CustomCheck?: (v: number) => boolean
- failure_string_CustomCheck?: (v: string) => boolean
- settled_CustomCheck?: (v: boolean) => boolean
- offchain_CustomCheck?: (v: boolean) => boolean
- forward_fail_event_CustomCheck?: (v: boolean) => boolean
-}
-export const RoutingEventValidate = (o?: RoutingEvent, opts: RoutingEventOptions = {}, path: string = 'RoutingEvent::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.incoming_channel_id !== 'number') return new Error(`${path}.incoming_channel_id: is not a number`)
- if (opts.incoming_channel_id_CustomCheck && !opts.incoming_channel_id_CustomCheck(o.incoming_channel_id)) return new Error(`${path}.incoming_channel_id: custom check failed`)
-
- if (typeof o.incoming_htlc_id !== 'number') return new Error(`${path}.incoming_htlc_id: is not a number`)
- if (opts.incoming_htlc_id_CustomCheck && !opts.incoming_htlc_id_CustomCheck(o.incoming_htlc_id)) return new Error(`${path}.incoming_htlc_id: custom check failed`)
-
- if (typeof o.outgoing_channel_id !== 'number') return new Error(`${path}.outgoing_channel_id: is not a number`)
- if (opts.outgoing_channel_id_CustomCheck && !opts.outgoing_channel_id_CustomCheck(o.outgoing_channel_id)) return new Error(`${path}.outgoing_channel_id: custom check failed`)
-
- if (typeof o.outgoing_htlc_id !== 'number') return new Error(`${path}.outgoing_htlc_id: is not a number`)
- if (opts.outgoing_htlc_id_CustomCheck && !opts.outgoing_htlc_id_CustomCheck(o.outgoing_htlc_id)) return new Error(`${path}.outgoing_htlc_id: custom check failed`)
-
- if (typeof o.timestamp_ns !== 'number') return new Error(`${path}.timestamp_ns: is not a number`)
- if (opts.timestamp_ns_CustomCheck && !opts.timestamp_ns_CustomCheck(o.timestamp_ns)) return new Error(`${path}.timestamp_ns: custom check failed`)
-
- if (typeof o.event_type !== 'string') return new Error(`${path}.event_type: is not a string`)
- if (opts.event_type_CustomCheck && !opts.event_type_CustomCheck(o.event_type)) return new Error(`${path}.event_type: custom check failed`)
-
- if (typeof o.incoming_amt_msat !== 'number') return new Error(`${path}.incoming_amt_msat: is not a number`)
- if (opts.incoming_amt_msat_CustomCheck && !opts.incoming_amt_msat_CustomCheck(o.incoming_amt_msat)) return new Error(`${path}.incoming_amt_msat: custom check failed`)
-
- if (typeof o.outgoing_amt_msat !== 'number') return new Error(`${path}.outgoing_amt_msat: is not a number`)
- if (opts.outgoing_amt_msat_CustomCheck && !opts.outgoing_amt_msat_CustomCheck(o.outgoing_amt_msat)) return new Error(`${path}.outgoing_amt_msat: custom check failed`)
-
- if (typeof o.failure_string !== 'string') return new Error(`${path}.failure_string: is not a string`)
- if (opts.failure_string_CustomCheck && !opts.failure_string_CustomCheck(o.failure_string)) return new Error(`${path}.failure_string: custom check failed`)
-
- if (typeof o.settled !== 'boolean') return new Error(`${path}.settled: is not a boolean`)
- if (opts.settled_CustomCheck && !opts.settled_CustomCheck(o.settled)) return new Error(`${path}.settled: custom check failed`)
-
- if (typeof o.offchain !== 'boolean') return new Error(`${path}.offchain: is not a boolean`)
- if (opts.offchain_CustomCheck && !opts.offchain_CustomCheck(o.offchain)) return new Error(`${path}.offchain: custom check failed`)
-
- if (typeof o.forward_fail_event !== 'boolean') return new Error(`${path}.forward_fail_event: is not a boolean`)
- if (opts.forward_fail_event_CustomCheck && !opts.forward_fail_event_CustomCheck(o.forward_fail_event)) return new Error(`${path}.forward_fail_event: custom check failed`)
-
- return null
-}
-
-export type ClosedChannel = {
- channel_id: string
- capacity: number
- closed_height: number
-}
-export const ClosedChannelOptionalFields: [] = []
-export type ClosedChannelOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- channel_id_CustomCheck?: (v: string) => boolean
- capacity_CustomCheck?: (v: number) => boolean
- closed_height_CustomCheck?: (v: number) => boolean
-}
-export const ClosedChannelValidate = (o?: ClosedChannel, opts: ClosedChannelOptions = {}, path: string = 'ClosedChannel::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.channel_id !== 'string') return new Error(`${path}.channel_id: is not a string`)
- if (opts.channel_id_CustomCheck && !opts.channel_id_CustomCheck(o.channel_id)) return new Error(`${path}.channel_id: custom check failed`)
-
- if (typeof o.capacity !== 'number') return new Error(`${path}.capacity: is not a number`)
- if (opts.capacity_CustomCheck && !opts.capacity_CustomCheck(o.capacity)) return new Error(`${path}.capacity: custom check failed`)
-
- if (typeof o.closed_height !== 'number') return new Error(`${path}.closed_height: is not a number`)
- if (opts.closed_height_CustomCheck && !opts.closed_height_CustomCheck(o.closed_height)) return new Error(`${path}.closed_height: custom check failed`)
-
- return null
-}
-
-export type AddAppRequest = {
- name: string
- allow_user_creation: boolean
-}
-export const AddAppRequestOptionalFields: [] = []
-export type AddAppRequestOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- name_CustomCheck?: (v: string) => boolean
- allow_user_creation_CustomCheck?: (v: boolean) => boolean
-}
-export const AddAppRequestValidate = (o?: AddAppRequest, opts: AddAppRequestOptions = {}, path: string = 'AddAppRequest::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.name !== 'string') return new Error(`${path}.name: is not a string`)
- if (opts.name_CustomCheck && !opts.name_CustomCheck(o.name)) return new Error(`${path}.name: custom check failed`)
-
- if (typeof o.allow_user_creation !== 'boolean') return new Error(`${path}.allow_user_creation: is not a boolean`)
- if (opts.allow_user_creation_CustomCheck && !opts.allow_user_creation_CustomCheck(o.allow_user_creation)) return new Error(`${path}.allow_user_creation: custom check failed`)
-
- return null
-}
-
-export type ClosureMigration = {
- closes_at_unix: number
-}
-export const ClosureMigrationOptionalFields: [] = []
-export type ClosureMigrationOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- closes_at_unix_CustomCheck?: (v: number) => boolean
-}
-export const ClosureMigrationValidate = (o?: ClosureMigration, opts: ClosureMigrationOptions = {}, path: string = 'ClosureMigration::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.closes_at_unix !== 'number') return new Error(`${path}.closes_at_unix: is not a number`)
- if (opts.closes_at_unix_CustomCheck && !opts.closes_at_unix_CustomCheck(o.closes_at_unix)) return new Error(`${path}.closes_at_unix: custom check failed`)
-
return null
}
diff --git a/proto/protoc-gen-pub b/proto/protoc-gen-pub
index a725f736..8d3c6d2b 100755
Binary files a/proto/protoc-gen-pub and b/proto/protoc-gen-pub differ
diff --git a/proto/protoc-gen-pub_old b/proto/protoc-gen-pub_old
new file mode 100755
index 00000000..a725f736
Binary files /dev/null and b/proto/protoc-gen-pub_old differ
diff --git a/proto/service/methods.proto b/proto/service/methods.proto
index 9260c4cd..ec186018 100644
--- a/proto/service/methods.proto
+++ b/proto/service/methods.proto
@@ -92,42 +92,49 @@ service LightningPub {
option (auth_type) = "Admin";
option (http_method) = "post";
option (http_route) = "/api/admin/lnd/getinfo";
+ option (nostr) = true;
};
rpc AddApp(structs.AddAppRequest) returns (structs.AuthApp) {
option (auth_type) = "Admin";
option (http_method) = "post";
option (http_route) = "/api/admin/app/add";
+ option (nostr) = true;
};
rpc AuthApp(structs.AuthAppRequest) returns (structs.AuthApp) {
option (auth_type) = "Admin";
option (http_method) = "post";
option (http_route) = "/api/admin/app/auth";
+ option (nostr) = true;
}
rpc BanUser(structs.BanUserRequest) returns (structs.BanUserResponse) {
option (auth_type) = "Admin";
option (http_method) = "post";
option (http_route) = "/api/admin/user/ban";
+ option (nostr) = true;
}
rpc GetUsageMetrics(structs.Empty) returns (structs.UsageMetrics) {
option (auth_type) = "Metrics";
option (http_method) = "post";
option (http_route) = "/api/reports/usage";
+ option (nostr) = true;
}
rpc GetAppsMetrics(structs.AppsMetricsRequest) returns (structs.AppsMetrics) {
option (auth_type) = "Metrics";
option (http_method) = "post";
option (http_route) = "/api/reports/apps";
+ option (nostr) = true;
}
rpc GetLndMetrics(structs.LndMetricsRequest) returns (structs.LndMetrics) {
option (auth_type) = "Metrics";
option (http_method) = "post";
option (http_route) = "/api/reports/lnd";
+ option (nostr) = true;
}
@@ -182,10 +189,16 @@ service LightningPub {
rpc LinkNPubThroughToken(structs.LinkNPubThroughTokenRequest) returns (structs.Empty) {
option (auth_type) = "User";
- option(http_method) = "post";
+ option (http_method) = "post";
option (http_route) = "/api/guest/npub/link";
option (nostr) = true;
}
+ rpc EnrollAdminToken(structs.EnrollAdminTokenRequest) returns (structs.Empty) {
+ option (auth_type) = "User";
+ option (http_method) = "post";
+ option (http_route) = "/api/guest/npub/enroll/admin";
+ option (nostr) = true;
+ }
//
//
diff --git a/proto/service/structs.proto b/proto/service/structs.proto
index 2fe866cb..52c80cb2 100644
--- a/proto/service/structs.proto
+++ b/proto/service/structs.proto
@@ -449,4 +449,8 @@ message LinkNPubThroughTokenRequest {
message HttpCreds {
string url = 1;
string token = 2;
+}
+
+message EnrollAdminTokenRequest {
+ string admin_token = 1;
}
\ No newline at end of file
diff --git a/proto/wizard/wizard_methods.proto b/proto/wizard/wizard_methods.proto
index 329f2b5b..9b6a560f 100644
--- a/proto/wizard/wizard_methods.proto
+++ b/proto/wizard/wizard_methods.proto
@@ -51,15 +51,20 @@ service Wizard {
option (http_method) = "get";
option (http_route) = "/wizard/state";
};
- rpc WizardConfig(wizard_structs.ConfigRequest) returns (wizard_structs.ConfigResponse){
+ rpc WizardConfig(wizard_structs.ConfigRequest) returns (wizard_structs.Empty){
option (auth_type) = "Guest";
option (http_method) = "post";
option (http_route) = "/wizard/config";
};
- rpc WizardConfirm(wizard_structs.ConfirmRequest) returns (wizard_structs.ConfirmResponse){
+ rpc GetAdminConnectInfo(wizard_structs.Empty) returns (wizard_structs.AdminConnectInfoResponse){
option (auth_type) = "Guest";
- option (http_method) = "post";
- option (http_route) = "/wizard/confirm";
+ option (http_method) = "get";
+ option (http_route) = "/wizard/admin_connect_info";
+ };
+ rpc GetServiceState(wizard_structs.Empty) returns (wizard_structs.ServiceStateResponse){
+ option (auth_type) = "Guest";
+ option (http_method) = "get";
+ option (http_route) = "/wizard/service_state";
};
//
}
\ No newline at end of file
diff --git a/proto/wizard/wizard_structs.proto b/proto/wizard/wizard_structs.proto
index 6e4c9a4a..e997a1b8 100644
--- a/proto/wizard/wizard_structs.proto
+++ b/proto/wizard/wizard_structs.proto
@@ -7,7 +7,8 @@ option go_package = "github.com/shocknet/lightning.pub";
message Empty {}
message StateResponse {
- bool already_initialized = 1;
+ bool config_sent = 1;
+ bool admin_linked = 2;
}
message ConfigRequest {
string source_name = 1;
@@ -15,18 +16,25 @@ message ConfigRequest {
bool automate_liquidity = 3;
bool push_backups_to_nostr = 4;
}
-
-
-message ConfigResponse {
- bool already_initialized = 1;
- repeated string seed = 2;
- string confirmation_id = 3;
+message AdminConnectInfoResponse {
+ string nprofile = 1;
+ oneof connect_info {
+ string admin_token = 2;
+ string enrolled_npub = 3;
+ }
}
-
-message ConfirmRequest {
- string confirmation_id = 1;
-}
-
-message ConfirmResponse {
- string admin_key = 1;
+enum LndState {
+ OFFLINE = 0;
+ SYNCING = 1;
+ ONLINE = 2;
}
+message ServiceStateResponse {
+ string provider_name = 1;
+ repeated string relays = 2;
+ string admin_npub = 3;
+ bool relay_connected = 4;
+ LndState lnd_state = 5;
+ bool watchdog_ok = 6;
+ string http_url = 7;
+ string nprofile = 8;
+}
\ No newline at end of file
diff --git a/proto/wizard_service/autogenerated/client.md b/proto/wizard_service/autogenerated/client.md
index 6d805bb0..69596785 100644
--- a/proto/wizard_service/autogenerated/client.md
+++ b/proto/wizard_service/autogenerated/client.md
@@ -36,27 +36,30 @@ The nostr server will send back a message response, and inside the body there wi
- http method: __post__
- http route: __/wizard/config__
- input: [ConfigRequest](#ConfigRequest)
- - output: [ConfigResponse](#ConfigResponse)
+ - This methods has an __empty__ __response__ body
-- WizardConfirm
+- GetAdminConnectInfo
- auth type: __Guest__
- - http method: __post__
- - http route: __/wizard/confirm__
- - input: [ConfirmRequest](#ConfirmRequest)
- - output: [ConfirmResponse](#ConfirmResponse)
+ - http method: __get__
+ - http route: __/wizard/admin_connect_info__
+ - This methods has an __empty__ __request__ body
+ - output: [AdminConnectInfoResponse](#AdminConnectInfoResponse)
+
+- GetServiceState
+ - auth type: __Guest__
+ - http method: __get__
+ - http route: __/wizard/service_state__
+ - This methods has an __empty__ __request__ body
+ - output: [ServiceStateResponse](#ServiceStateResponse)
# INPUTS AND OUTPUTS
## Messages
### The content of requests and response from the methods
-### ConfirmResponse
- - __admin_key__: _string_
-
-### Empty
-
### StateResponse
- - __already_initialized__: _boolean_
+ - __config_sent__: _boolean_
+ - __admin_linked__: _boolean_
### ConfigRequest
- __source_name__: _string_
@@ -64,12 +67,25 @@ The nostr server will send back a message response, and inside the body there wi
- __automate_liquidity__: _boolean_
- __push_backups_to_nostr__: _boolean_
-### ConfigResponse
- - __already_initialized__: _boolean_
- - __seed__: ARRAY of: _string_
- - __confirmation_id__: _string_
+### AdminConnectInfoResponse
+ - __nprofile__: _string_
+ - __connect_info__: _AdminConnectInfoResponse_connect_info_
-### ConfirmRequest
- - __confirmation_id__: _string_
+### ServiceStateResponse
+ - __http_url__: _string_
+ - __nprofile__: _string_
+ - __provider_name__: _string_
+ - __relays__: ARRAY of: _string_
+ - __admin_npub__: _string_
+ - __relay_connected__: _boolean_
+ - __lnd_state__: _[LndState](#LndState)_
+ - __watchdog_ok__: _boolean_
+
+### Empty
## Enums
### The enumerators used in the messages
+
+### LndState
+ - __OFFLINE__
+ - __SYNCING__
+ - __ONLINE__
diff --git a/proto/wizard_service/autogenerated/debug.txt b/proto/wizard_service/autogenerated/debug.txt
index 972e6bcd..fd00e738 100644
--- a/proto/wizard_service/autogenerated/debug.txt
+++ b/proto/wizard_service/autogenerated/debug.txt
@@ -1,5 +1,5 @@
-([]*main.Method) (len=3 cap=4) {
- (*main.Method)(0xc0002221e0)({
+([]*main.Method) (len=4 cap=4) {
+ (*main.Method)(0xc00022a280)({
in: (main.MethodMessage) {
name: (string) (len=5) "Empty",
hasZeroFields: (bool) true
@@ -9,8 +9,8 @@
name: (string) (len=13) "StateResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc00009e6c0)({
- authType: (*main.supportedAuth)(0xc0003bd290)({
+ opts: (*main.methodOptions)(0xc00009a9c0)({
+ authType: (*main.supportedAuth)(0xc0003c9aa0)({
id: (string) (len=5) "guest",
name: (string) (len=5) "Guest",
context: (map[string]string) {
@@ -27,18 +27,18 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc000222230)({
+ (*main.Method)(0xc00022a2d0)({
in: (main.MethodMessage) {
name: (string) (len=13) "ConfigRequest",
hasZeroFields: (bool) false
},
name: (string) (len=12) "WizardConfig",
out: (main.MethodMessage) {
- name: (string) (len=14) "ConfigResponse",
- hasZeroFields: (bool) false
+ name: (string) (len=5) "Empty",
+ hasZeroFields: (bool) true
},
- opts: (*main.methodOptions)(0xc00009e840)({
- authType: (*main.supportedAuth)(0xc0003bd350)({
+ opts: (*main.methodOptions)(0xc00009ab40)({
+ authType: (*main.supportedAuth)(0xc0003c9b60)({
id: (string) (len=5) "guest",
name: (string) (len=5) "Guest",
context: (map[string]string) {
@@ -55,26 +55,54 @@
}),
serverStream: (bool) false
}),
- (*main.Method)(0xc0002225a0)({
+ (*main.Method)(0xc00022a640)({
in: (main.MethodMessage) {
- name: (string) (len=14) "ConfirmRequest",
- hasZeroFields: (bool) false
+ name: (string) (len=5) "Empty",
+ hasZeroFields: (bool) true
},
- name: (string) (len=13) "WizardConfirm",
+ name: (string) (len=19) "GetAdminConnectInfo",
out: (main.MethodMessage) {
- name: (string) (len=15) "ConfirmResponse",
+ name: (string) (len=24) "AdminConnectInfoResponse",
hasZeroFields: (bool) false
},
- opts: (*main.methodOptions)(0xc00009e9c0)({
- authType: (*main.supportedAuth)(0xc0003bd410)({
+ opts: (*main.methodOptions)(0xc00009acc0)({
+ authType: (*main.supportedAuth)(0xc0003c9c20)({
id: (string) (len=5) "guest",
name: (string) (len=5) "Guest",
context: (map[string]string) {
}
}),
- method: (string) (len=4) "post",
+ method: (string) (len=3) "get",
route: (main.decodedRoute) {
- route: (string) (len=15) "/wizard/confirm",
+ route: (string) (len=26) "/wizard/admin_connect_info",
+ params: ([]string)
+ },
+ query: ([]string) ,
+ nostr: (bool) false,
+ batch: (bool) false
+ }),
+ serverStream: (bool) false
+ }),
+ (*main.Method)(0xc00022a690)({
+ in: (main.MethodMessage) {
+ name: (string) (len=5) "Empty",
+ hasZeroFields: (bool) true
+ },
+ name: (string) (len=15) "GetServiceState",
+ out: (main.MethodMessage) {
+ name: (string) (len=20) "ServiceStateResponse",
+ hasZeroFields: (bool) false
+ },
+ opts: (*main.methodOptions)(0xc00009ae40)({
+ authType: (*main.supportedAuth)(0xc0003c9ce0)({
+ id: (string) (len=5) "guest",
+ name: (string) (len=5) "Guest",
+ context: (map[string]string) {
+ }
+ }),
+ method: (string) (len=3) "get",
+ route: (main.decodedRoute) {
+ route: (string) (len=21) "/wizard/service_state",
params: ([]string)
},
query: ([]string) ,
@@ -85,137 +113,247 @@
})
}
-([]*main.Enum)
+([]*main.Enum) (len=1 cap=1) {
+ (*main.Enum)(0xc0003c9680)({
+ name: (string) (len=8) "LndState",
+ values: ([]main.EnumValue) (len=3 cap=4) {
+ (main.EnumValue) {
+ number: (int64) 0,
+ name: (string) (len=7) "OFFLINE"
+ },
+ (main.EnumValue) {
+ number: (int64) 1,
+ name: (string) (len=7) "SYNCING"
+ },
+ (main.EnumValue) {
+ number: (int64) 2,
+ name: (string) (len=6) "ONLINE"
+ }
+ }
+ })
+}
-(map[string]*main.Message) (len=6) {
- (string) (len=13) "StateResponse": (*main.Message)(0xc0003ee1c0)({
+(map[string]*main.Message) (len=5) {
+ (string) (len=5) "Empty": (*main.Message)(0xc0003c94a0)({
+ fullName: (string) (len=5) "Empty",
+ name: (string) (len=5) "Empty",
+ fields: (map[string]*main.Field) {
+ }
+ }),
+ (string) (len=13) "StateResponse": (*main.Message)(0xc0003c9500)({
fullName: (string) (len=13) "StateResponse",
name: (string) (len=13) "StateResponse",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0003bccc0)({
- name: (string) (len=19) "already_initialized",
+ fields: (map[string]*main.Field) (len=2) {
+ (string) (len=11) "config_sent": (*main.Field)(0xc0003ee440)({
+ name: (string) (len=11) "config_sent",
kind: (string) (len=4) "bool",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=13) "ConfigRequest": (*main.Message)(0xc0003ee200)({
- fullName: (string) (len=13) "ConfigRequest",
- name: (string) (len=13) "ConfigRequest",
- fields: ([]*main.Field) (len=4 cap=4) {
- (*main.Field)(0xc0003bccf0)({
- name: (string) (len=11) "source_name",
- kind: (string) (len=6) "string",
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=12) "admin_linked": (*main.Field)(0xc0003ee480)({
+ name: (string) (len=12) "admin_linked",
+ kind: (string) (len=4) "bool",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003bcd20)({
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ })
+ }
+ }),
+ (string) (len=13) "ConfigRequest": (*main.Message)(0xc0003c9560)({
+ fullName: (string) (len=13) "ConfigRequest",
+ name: (string) (len=13) "ConfigRequest",
+ fields: (map[string]*main.Field) (len=4) {
+ (string) (len=9) "relay_url": (*main.Field)(0xc0003ee500)({
name: (string) (len=9) "relay_url",
kind: (string) (len=6) "string",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
}),
- (*main.Field)(0xc0003bcd50)({
+ (string) (len=18) "automate_liquidity": (*main.Field)(0xc0003ee540)({
name: (string) (len=18) "automate_liquidity",
kind: (string) (len=4) "bool",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
}),
- (*main.Field)(0xc0003bcd80)({
+ (string) (len=21) "push_backups_to_nostr": (*main.Field)(0xc0003ee580)({
name: (string) (len=21) "push_backups_to_nostr",
kind: (string) (len=4) "bool",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=11) "source_name": (*main.Field)(0xc0003ee4c0)({
+ name: (string) (len=11) "source_name",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
})
}
}),
- (string) (len=14) "ConfigResponse": (*main.Message)(0xc0003ee240)({
- fullName: (string) (len=14) "ConfigResponse",
- name: (string) (len=14) "ConfigResponse",
- fields: ([]*main.Field) (len=3 cap=4) {
- (*main.Field)(0xc0003bcdb0)({
- name: (string) (len=19) "already_initialized",
+ (string) (len=24) "AdminConnectInfoResponse": (*main.Message)(0xc0003c95c0)({
+ fullName: (string) (len=24) "AdminConnectInfoResponse",
+ name: (string) (len=24) "AdminConnectInfoResponse",
+ fields: (map[string]*main.Field) (len=2) {
+ (string) (len=8) "nprofile": (*main.Field)(0xc0003ee5c0)({
+ name: (string) (len=8) "nprofile",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=37) "AdminConnectInfoResponse_connect_info": (*main.Field)(0xc0003eea80)({
+ name: (string) (len=12) "connect_info",
+ kind: (string) (len=37) "AdminConnectInfoResponse_connect_info",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) (len=12) "connect_info"
+ })
+ }
+ }),
+ (string) (len=20) "ServiceStateResponse": (*main.Message)(0xc0003c9620)({
+ fullName: (string) (len=20) "ServiceStateResponse",
+ name: (string) (len=20) "ServiceStateResponse",
+ fields: (map[string]*main.Field) (len=8) {
+ (string) (len=10) "admin_npub": (*main.Field)(0xc0003ee700)({
+ name: (string) (len=10) "admin_npub",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=15) "relay_connected": (*main.Field)(0xc0003ee740)({
+ name: (string) (len=15) "relay_connected",
kind: (string) (len=4) "bool",
isMap: (bool) false,
isArray: (bool) false,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
}),
- (*main.Field)(0xc0003bcde0)({
- name: (string) (len=4) "seed",
+ (string) (len=9) "lnd_state": (*main.Field)(0xc0003ee780)({
+ name: (string) (len=9) "lnd_state",
+ kind: (string) (len=8) "LndState",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) true,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=11) "watchdog_ok": (*main.Field)(0xc0003ee7c0)({
+ name: (string) (len=11) "watchdog_ok",
+ kind: (string) (len=4) "bool",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=8) "http_url": (*main.Field)(0xc0003ee800)({
+ name: (string) (len=8) "http_url",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=8) "nprofile": (*main.Field)(0xc0003ee840)({
+ name: (string) (len=8) "nprofile",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=13) "provider_name": (*main.Field)(0xc0003ee680)({
+ name: (string) (len=13) "provider_name",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) ""
+ }),
+ (string) (len=6) "relays": (*main.Field)(0xc0003ee6c0)({
+ name: (string) (len=6) "relays",
kind: (string) (len=6) "string",
isMap: (bool) false,
isArray: (bool) true,
isEnum: (bool) false,
isMessage: (bool) false,
- isOptional: (bool) false
- }),
- (*main.Field)(0xc0003bce10)({
- name: (string) (len=15) "confirmation_id",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
+ isOptional: (bool) false,
+ oneOfName: (string) ""
})
}
- }),
- (string) (len=14) "ConfirmRequest": (*main.Message)(0xc0003ee280)({
- fullName: (string) (len=14) "ConfirmRequest",
- name: (string) (len=14) "ConfirmRequest",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0003bce40)({
- name: (string) (len=15) "confirmation_id",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=15) "ConfirmResponse": (*main.Message)(0xc0003ee2c0)({
- fullName: (string) (len=15) "ConfirmResponse",
- name: (string) (len=15) "ConfirmResponse",
- fields: ([]*main.Field) (len=1 cap=1) {
- (*main.Field)(0xc0003bce70)({
- name: (string) (len=9) "admin_key",
- kind: (string) (len=6) "string",
- isMap: (bool) false,
- isArray: (bool) false,
- isEnum: (bool) false,
- isMessage: (bool) false,
- isOptional: (bool) false
- })
- }
- }),
- (string) (len=5) "Empty": (*main.Message)(0xc0003ee080)({
- fullName: (string) (len=5) "Empty",
- name: (string) (len=5) "Empty",
- fields: ([]*main.Field)
})
}
-parsing file: wizard_structs 6
+(map[string][]*main.Field) (len=1) {
+ (string) (len=37) "AdminConnectInfoResponse_connect_info": ([]*main.Field) (len=2 cap=2) {
+ (*main.Field)(0xc0003ee600)({
+ name: (string) (len=11) "admin_token",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) (len=12) "connect_info"
+ }),
+ (*main.Field)(0xc0003ee640)({
+ name: (string) (len=13) "enrolled_npub",
+ kind: (string) (len=6) "string",
+ isMap: (bool) false,
+ isArray: (bool) false,
+ isEnum: (bool) false,
+ isMessage: (bool) false,
+ isOptional: (bool) false,
+ oneOfName: (string) (len=12) "connect_info"
+ })
+ }
+}
+
+parsing file: wizard_structs 5
parsing file: wizard_methods 2
-> [{guest Guest map[]}]
+([]interface {})
+
diff --git a/proto/wizard_service/autogenerated/ts/express_server.ts b/proto/wizard_service/autogenerated/ts/express_server.ts
index c6f311f5..7dd26057 100644
--- a/proto/wizard_service/autogenerated/ts/express_server.ts
+++ b/proto/wizard_service/autogenerated/ts/express_server.ts
@@ -64,29 +64,45 @@ export default (methods: Types.ServerMethods, opts: ServerOptions) => {
if (error !== null) return logErrorAndReturnResponse(error, 'invalid request body', res, logger, { ...info, ...stats, ...authContext }, opts.metricsCallback)
const query = req.query
const params = req.params
- const response = await methods.WizardConfig({rpcName:'WizardConfig', ctx:authContext , req: request})
+ await methods.WizardConfig({rpcName:'WizardConfig', ctx:authContext , req: request})
+ stats.handle = process.hrtime.bigint()
+ res.json({status: 'OK'})
+ opts.metricsCallback([{ ...info, ...stats, ...authContext }])
+ } catch (ex) { const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger, { ...info, ...stats, ...authCtx }, opts.metricsCallback); if (opts.throwErrors) throw e }
+ })
+ if (!opts.allowNotImplementedMethods && !methods.GetAdminConnectInfo) throw new Error('method: GetAdminConnectInfo is not implemented')
+ app.get('/wizard/admin_connect_info', async (req, res) => {
+ const info: Types.RequestInfo = { rpcName: 'GetAdminConnectInfo', batch: false, nostr: false, batchSize: 0}
+ const stats: Types.RequestStats = { startMs:req.startTimeMs || 0, start:req.startTime || 0n, parse: process.hrtime.bigint(), guard: 0n, validate: 0n, handle: 0n }
+ let authCtx: Types.AuthContext = {}
+ try {
+ if (!methods.GetAdminConnectInfo) throw new Error('method: GetAdminConnectInfo is not implemented')
+ const authContext = await opts.GuestAuthGuard(req.headers['authorization'])
+ authCtx = authContext
+ stats.guard = process.hrtime.bigint()
+ stats.validate = stats.guard
+ const query = req.query
+ const params = req.params
+ const response = await methods.GetAdminConnectInfo({rpcName:'GetAdminConnectInfo', ctx:authContext })
stats.handle = process.hrtime.bigint()
res.json({status: 'OK', ...response})
opts.metricsCallback([{ ...info, ...stats, ...authContext }])
} catch (ex) { const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger, { ...info, ...stats, ...authCtx }, opts.metricsCallback); if (opts.throwErrors) throw e }
})
- if (!opts.allowNotImplementedMethods && !methods.WizardConfirm) throw new Error('method: WizardConfirm is not implemented')
- app.post('/wizard/confirm', async (req, res) => {
- const info: Types.RequestInfo = { rpcName: 'WizardConfirm', batch: false, nostr: false, batchSize: 0}
+ if (!opts.allowNotImplementedMethods && !methods.GetServiceState) throw new Error('method: GetServiceState is not implemented')
+ app.get('/wizard/service_state', async (req, res) => {
+ const info: Types.RequestInfo = { rpcName: 'GetServiceState', batch: false, nostr: false, batchSize: 0}
const stats: Types.RequestStats = { startMs:req.startTimeMs || 0, start:req.startTime || 0n, parse: process.hrtime.bigint(), guard: 0n, validate: 0n, handle: 0n }
let authCtx: Types.AuthContext = {}
try {
- if (!methods.WizardConfirm) throw new Error('method: WizardConfirm is not implemented')
+ if (!methods.GetServiceState) throw new Error('method: GetServiceState is not implemented')
const authContext = await opts.GuestAuthGuard(req.headers['authorization'])
authCtx = authContext
stats.guard = process.hrtime.bigint()
- const request = req.body
- const error = Types.ConfirmRequestValidate(request)
- stats.validate = process.hrtime.bigint()
- if (error !== null) return logErrorAndReturnResponse(error, 'invalid request body', res, logger, { ...info, ...stats, ...authContext }, opts.metricsCallback)
+ stats.validate = stats.guard
const query = req.query
const params = req.params
- const response = await methods.WizardConfirm({rpcName:'WizardConfirm', ctx:authContext , req: request})
+ const response = await methods.GetServiceState({rpcName:'GetServiceState', ctx:authContext })
stats.handle = process.hrtime.bigint()
res.json({status: 'OK', ...response})
opts.metricsCallback([{ ...info, ...stats, ...authContext }])
@@ -99,6 +115,6 @@ export default (methods: Types.ServerMethods, opts: ServerOptions) => {
var server: { close: () => void } | undefined
return {
Close: () => { if (!server) { throw new Error('tried closing server before starting') } else server.close() },
- Listen: (port: number) => { server = app.listen(port, () => logger.log('Example app listening on port ' + port)) }
+ Listen: (port: number) => { server = app.listen(port, () => logger.log('Wizard listening on port ' + port)) }
}
}
diff --git a/proto/wizard_service/autogenerated/ts/http_client.ts b/proto/wizard_service/autogenerated/ts/http_client.ts
index e173a8ca..8d949b84 100644
--- a/proto/wizard_service/autogenerated/ts/http_client.ts
+++ b/proto/wizard_service/autogenerated/ts/http_client.ts
@@ -26,30 +26,41 @@ export default (params: ClientParams) => ({
}
return { status: 'ERROR', reason: 'invalid response' }
},
- WizardConfig: async (request: Types.ConfigRequest): Promise => {
+ WizardConfig: async (request: Types.ConfigRequest): Promise => {
const auth = await params.retrieveGuestAuth()
if (auth === null) throw new Error('retrieveGuestAuth() returned null')
let finalRoute = '/wizard/config'
const { data } = await axios.post(params.baseUrl + finalRoute, request, { headers: { 'authorization': auth } })
if (data.status === 'ERROR' && typeof data.reason === 'string') return data
if (data.status === 'OK') {
- const result = data
- if(!params.checkResult) return { status: 'OK', ...result }
- const error = Types.ConfigResponseValidate(result)
- if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message }
+ return data
}
return { status: 'ERROR', reason: 'invalid response' }
},
- WizardConfirm: async (request: Types.ConfirmRequest): Promise => {
+ GetAdminConnectInfo: async (): Promise => {
const auth = await params.retrieveGuestAuth()
if (auth === null) throw new Error('retrieveGuestAuth() returned null')
- let finalRoute = '/wizard/confirm'
- const { data } = await axios.post(params.baseUrl + finalRoute, request, { headers: { 'authorization': auth } })
+ let finalRoute = '/wizard/admin_connect_info'
+ const { data } = await axios.get(params.baseUrl + finalRoute, { headers: { 'authorization': auth } })
if (data.status === 'ERROR' && typeof data.reason === 'string') return data
if (data.status === 'OK') {
const result = data
if(!params.checkResult) return { status: 'OK', ...result }
- const error = Types.ConfirmResponseValidate(result)
+ const error = Types.AdminConnectInfoResponseValidate(result)
+ if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message }
+ }
+ return { status: 'ERROR', reason: 'invalid response' }
+ },
+ GetServiceState: async (): Promise => {
+ const auth = await params.retrieveGuestAuth()
+ if (auth === null) throw new Error('retrieveGuestAuth() returned null')
+ let finalRoute = '/wizard/service_state'
+ const { data } = await axios.get(params.baseUrl + finalRoute, { headers: { 'authorization': auth } })
+ if (data.status === 'ERROR' && typeof data.reason === 'string') return data
+ if (data.status === 'OK') {
+ const result = data
+ if(!params.checkResult) return { status: 'OK', ...result }
+ const error = Types.ServiceStateResponseValidate(result)
if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message }
}
return { status: 'ERROR', reason: 'invalid response' }
diff --git a/proto/wizard_service/autogenerated/ts/types.ts b/proto/wizard_service/autogenerated/ts/types.ts
index 0b7be5ec..43927811 100644
--- a/proto/wizard_service/autogenerated/ts/types.ts
+++ b/proto/wizard_service/autogenerated/ts/types.ts
@@ -6,97 +6,43 @@ export type RequestStats = { startMs:number, start:bigint, parse: bigint, guard:
export type RequestMetric = AuthContext & RequestInfo & RequestStats & { error?: string }
export type GuestContext = {
}
-export type GuestMethodInputs = WizardState_Input | WizardConfig_Input | WizardConfirm_Input
-export type GuestMethodOutputs = WizardState_Output | WizardConfig_Output | WizardConfirm_Output
+export type GuestMethodInputs = WizardState_Input | WizardConfig_Input | GetAdminConnectInfo_Input | GetServiceState_Input
+export type GuestMethodOutputs = WizardState_Output | WizardConfig_Output | GetAdminConnectInfo_Output | GetServiceState_Output
export type AuthContext = GuestContext
export type WizardState_Input = {rpcName:'WizardState'}
export type WizardState_Output = ResultError | ({ status: 'OK' } & StateResponse)
export type WizardConfig_Input = {rpcName:'WizardConfig', req: ConfigRequest}
-export type WizardConfig_Output = ResultError | ({ status: 'OK' } & ConfigResponse)
+export type WizardConfig_Output = ResultError | { status: 'OK' }
-export type WizardConfirm_Input = {rpcName:'WizardConfirm', req: ConfirmRequest}
-export type WizardConfirm_Output = ResultError | ({ status: 'OK' } & ConfirmResponse)
+export type GetAdminConnectInfo_Input = {rpcName:'GetAdminConnectInfo'}
+export type GetAdminConnectInfo_Output = ResultError | ({ status: 'OK' } & AdminConnectInfoResponse)
+
+export type GetServiceState_Input = {rpcName:'GetServiceState'}
+export type GetServiceState_Output = ResultError | ({ status: 'OK' } & ServiceStateResponse)
export type ServerMethods = {
WizardState?: (req: WizardState_Input & {ctx: GuestContext }) => Promise
- WizardConfig?: (req: WizardConfig_Input & {ctx: GuestContext }) => Promise
- WizardConfirm?: (req: WizardConfirm_Input & {ctx: GuestContext }) => Promise
+ WizardConfig?: (req: WizardConfig_Input & {ctx: GuestContext }) => Promise
+ GetAdminConnectInfo?: (req: GetAdminConnectInfo_Input & {ctx: GuestContext }) => Promise
+ GetServiceState?: (req: GetServiceState_Input & {ctx: GuestContext }) => Promise
}
+export enum LndState {
+ OFFLINE = 'OFFLINE',
+ SYNCING = 'SYNCING',
+ ONLINE = 'ONLINE',
+}
+export const enumCheckLndState = (e?: LndState): boolean => {
+ for (const v in LndState) if (e === v) return true
+ return false
+}
export type OptionsBaseMessage = {
allOptionalsAreSet?: true
}
-export type ConfigResponse = {
- already_initialized: boolean
- seed: string[]
- confirmation_id: string
-}
-export const ConfigResponseOptionalFields: [] = []
-export type ConfigResponseOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- already_initialized_CustomCheck?: (v: boolean) => boolean
- seed_CustomCheck?: (v: string[]) => boolean
- confirmation_id_CustomCheck?: (v: string) => boolean
-}
-export const ConfigResponseValidate = (o?: ConfigResponse, opts: ConfigResponseOptions = {}, path: string = 'ConfigResponse::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.already_initialized !== 'boolean') return new Error(`${path}.already_initialized: is not a boolean`)
- if (opts.already_initialized_CustomCheck && !opts.already_initialized_CustomCheck(o.already_initialized)) return new Error(`${path}.already_initialized: custom check failed`)
-
- if (!Array.isArray(o.seed)) return new Error(`${path}.seed: is not an array`)
- for (let index = 0; index < o.seed.length; index++) {
- if (typeof o.seed[index] !== 'string') return new Error(`${path}.seed[${index}]: is not a string`)
- }
- if (opts.seed_CustomCheck && !opts.seed_CustomCheck(o.seed)) return new Error(`${path}.seed: custom check failed`)
-
- if (typeof o.confirmation_id !== 'string') return new Error(`${path}.confirmation_id: is not a string`)
- if (opts.confirmation_id_CustomCheck && !opts.confirmation_id_CustomCheck(o.confirmation_id)) return new Error(`${path}.confirmation_id: custom check failed`)
-
- return null
-}
-
-export type ConfirmRequest = {
- confirmation_id: string
-}
-export const ConfirmRequestOptionalFields: [] = []
-export type ConfirmRequestOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- confirmation_id_CustomCheck?: (v: string) => boolean
-}
-export const ConfirmRequestValidate = (o?: ConfirmRequest, opts: ConfirmRequestOptions = {}, path: string = 'ConfirmRequest::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.confirmation_id !== 'string') return new Error(`${path}.confirmation_id: is not a string`)
- if (opts.confirmation_id_CustomCheck && !opts.confirmation_id_CustomCheck(o.confirmation_id)) return new Error(`${path}.confirmation_id: custom check failed`)
-
- return null
-}
-
-export type ConfirmResponse = {
- admin_key: string
-}
-export const ConfirmResponseOptionalFields: [] = []
-export type ConfirmResponseOptions = OptionsBaseMessage & {
- checkOptionalsAreSet?: []
- admin_key_CustomCheck?: (v: string) => boolean
-}
-export const ConfirmResponseValidate = (o?: ConfirmResponse, opts: ConfirmResponseOptions = {}, path: string = 'ConfirmResponse::root.'): Error | null => {
- if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
- if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
-
- if (typeof o.admin_key !== 'string') return new Error(`${path}.admin_key: is not a string`)
- if (opts.admin_key_CustomCheck && !opts.admin_key_CustomCheck(o.admin_key)) return new Error(`${path}.admin_key: custom check failed`)
-
- return null
-}
-
export type Empty = {
}
export const EmptyOptionalFields: [] = []
@@ -111,19 +57,24 @@ export const EmptyValidate = (o?: Empty, opts: EmptyOptions = {}, path: string =
}
export type StateResponse = {
- already_initialized: boolean
+ config_sent: boolean
+ admin_linked: boolean
}
export const StateResponseOptionalFields: [] = []
export type StateResponseOptions = OptionsBaseMessage & {
checkOptionalsAreSet?: []
- already_initialized_CustomCheck?: (v: boolean) => boolean
+ config_sent_CustomCheck?: (v: boolean) => boolean
+ admin_linked_CustomCheck?: (v: boolean) => boolean
}
export const StateResponseValidate = (o?: StateResponse, opts: StateResponseOptions = {}, path: string = 'StateResponse::root.'): Error | null => {
if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
- if (typeof o.already_initialized !== 'boolean') return new Error(`${path}.already_initialized: is not a boolean`)
- if (opts.already_initialized_CustomCheck && !opts.already_initialized_CustomCheck(o.already_initialized)) return new Error(`${path}.already_initialized: custom check failed`)
+ if (typeof o.config_sent !== 'boolean') return new Error(`${path}.config_sent: is not a boolean`)
+ if (opts.config_sent_CustomCheck && !opts.config_sent_CustomCheck(o.config_sent)) return new Error(`${path}.config_sent: custom check failed`)
+
+ if (typeof o.admin_linked !== 'boolean') return new Error(`${path}.admin_linked: is not a boolean`)
+ if (opts.admin_linked_CustomCheck && !opts.admin_linked_CustomCheck(o.admin_linked)) return new Error(`${path}.admin_linked: custom check failed`)
return null
}
@@ -137,10 +88,10 @@ export type ConfigRequest = {
export const ConfigRequestOptionalFields: [] = []
export type ConfigRequestOptions = OptionsBaseMessage & {
checkOptionalsAreSet?: []
+ push_backups_to_nostr_CustomCheck?: (v: boolean) => boolean
source_name_CustomCheck?: (v: string) => boolean
relay_url_CustomCheck?: (v: string) => boolean
automate_liquidity_CustomCheck?: (v: boolean) => boolean
- push_backups_to_nostr_CustomCheck?: (v: boolean) => boolean
}
export const ConfigRequestValidate = (o?: ConfigRequest, opts: ConfigRequestOptions = {}, path: string = 'ConfigRequest::root.'): Error | null => {
if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
@@ -161,3 +112,103 @@ export const ConfigRequestValidate = (o?: ConfigRequest, opts: ConfigRequestOpti
return null
}
+export type AdminConnectInfoResponse = {
+ nprofile: string
+ connect_info: AdminConnectInfoResponse_connect_info
+}
+export const AdminConnectInfoResponseOptionalFields: [] = []
+export type AdminConnectInfoResponseOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ nprofile_CustomCheck?: (v: string) => boolean
+ connect_info_CustomCheck?: (v: AdminConnectInfoResponse_connect_info) => boolean
+}
+export const AdminConnectInfoResponseValidate = (o?: AdminConnectInfoResponse, opts: AdminConnectInfoResponseOptions = {}, path: string = 'AdminConnectInfoResponse::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (typeof o.nprofile !== 'string') return new Error(`${path}.nprofile: is not a string`)
+ if (opts.nprofile_CustomCheck && !opts.nprofile_CustomCheck(o.nprofile)) return new Error(`${path}.nprofile: custom check failed`)
+
+ const connect_infoErr = AdminConnectInfoResponse_connect_infoValidate(o.connect_info,{}, `${path}.connect_info`)
+ if (connect_infoErr !== null) return connect_infoErr
+
+
+ return null
+}
+
+export type ServiceStateResponse = {
+ http_url: string
+ nprofile: string
+ provider_name: string
+ relays: string[]
+ admin_npub: string
+ relay_connected: boolean
+ lnd_state: LndState
+ watchdog_ok: boolean
+}
+export const ServiceStateResponseOptionalFields: [] = []
+export type ServiceStateResponseOptions = OptionsBaseMessage & {
+ checkOptionalsAreSet?: []
+ http_url_CustomCheck?: (v: string) => boolean
+ nprofile_CustomCheck?: (v: string) => boolean
+ provider_name_CustomCheck?: (v: string) => boolean
+ relays_CustomCheck?: (v: string[]) => boolean
+ admin_npub_CustomCheck?: (v: string) => boolean
+ relay_connected_CustomCheck?: (v: boolean) => boolean
+ lnd_state_CustomCheck?: (v: LndState) => boolean
+ watchdog_ok_CustomCheck?: (v: boolean) => boolean
+}
+export const ServiceStateResponseValidate = (o?: ServiceStateResponse, opts: ServiceStateResponseOptions = {}, path: string = 'ServiceStateResponse::root.'): Error | null => {
+ if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message')
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+
+ if (!Array.isArray(o.relays)) return new Error(`${path}.relays: is not an array`)
+ for (let index = 0; index < o.relays.length; index++) {
+ if (typeof o.relays[index] !== 'string') return new Error(`${path}.relays[${index}]: is not a string`)
+ }
+ if (opts.relays_CustomCheck && !opts.relays_CustomCheck(o.relays)) return new Error(`${path}.relays: custom check failed`)
+
+ if (typeof o.admin_npub !== 'string') return new Error(`${path}.admin_npub: is not a string`)
+ if (opts.admin_npub_CustomCheck && !opts.admin_npub_CustomCheck(o.admin_npub)) return new Error(`${path}.admin_npub: custom check failed`)
+
+ if (typeof o.relay_connected !== 'boolean') return new Error(`${path}.relay_connected: is not a boolean`)
+ if (opts.relay_connected_CustomCheck && !opts.relay_connected_CustomCheck(o.relay_connected)) return new Error(`${path}.relay_connected: custom check failed`)
+
+ if (!enumCheckLndState(o.lnd_state)) return new Error(`${path}.lnd_state: is not a valid LndState`)
+ if (opts.lnd_state_CustomCheck && !opts.lnd_state_CustomCheck(o.lnd_state)) return new Error(`${path}.lnd_state: custom check failed`)
+
+ if (typeof o.watchdog_ok !== 'boolean') return new Error(`${path}.watchdog_ok: is not a boolean`)
+ if (opts.watchdog_ok_CustomCheck && !opts.watchdog_ok_CustomCheck(o.watchdog_ok)) return new Error(`${path}.watchdog_ok: custom check failed`)
+
+ if (typeof o.http_url !== 'string') return new Error(`${path}.http_url: is not a string`)
+ if (opts.http_url_CustomCheck && !opts.http_url_CustomCheck(o.http_url)) return new Error(`${path}.http_url: custom check failed`)
+
+ if (typeof o.nprofile !== 'string') return new Error(`${path}.nprofile: is not a string`)
+ if (opts.nprofile_CustomCheck && !opts.nprofile_CustomCheck(o.nprofile)) return new Error(`${path}.nprofile: custom check failed`)
+
+ if (typeof o.provider_name !== 'string') return new Error(`${path}.provider_name: is not a string`)
+ if (opts.provider_name_CustomCheck && !opts.provider_name_CustomCheck(o.provider_name)) return new Error(`${path}.provider_name: custom check failed`)
+
+ return null
+}
+
+export enum AdminConnectInfoResponse_connect_info_type {
+ ADMIN_TOKEN = 'admin_token',
+ ENROLLED_NPUB = 'enrolled_npub',
+}
+export type AdminConnectInfoResponse_connect_info =
+ {type:AdminConnectInfoResponse_connect_info_type.ADMIN_TOKEN, admin_token:string}|
+ {type:AdminConnectInfoResponse_connect_info_type.ENROLLED_NPUB, enrolled_npub:string}
+
+export const AdminConnectInfoResponse_connect_infoValidate = (o?: AdminConnectInfoResponse_connect_info, opts = {}, path: string = 'AdminConnectInfoResponse_connect_info::root.'): Error | null => {
+ if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null')
+ switch (o.type) {
+ case 'admin_token':
+ if (typeof o.admin_token !== 'string') return new Error(`${path}.admin_token: is not a string`)
+ break
+ case 'enrolled_npub':
+ if (typeof o.enrolled_npub !== 'string') return new Error(`${path}.enrolled_npub: is not a string`)
+ break
+ }
+ return new Error(path + ': unknown type'+ o.type)
+}
diff --git a/src/index.ts b/src/index.ts
index f0e3d4f5..d5f30bdb 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -7,6 +7,7 @@ import nostrMiddleware from './nostrMiddleware.js'
import { getLogger } from './services/helpers/logger.js';
import { initMainHandler } from './services/main/init.js';
import { LoadMainSettingsFromEnv } from './services/main/settings.js';
+import { encodeNprofile } from './custom-nip19.js';
const start = async () => {
const log = getLogger({})
@@ -16,7 +17,7 @@ const start = async () => {
log("manual process ended")
return
}
- const { apps, mainHandler, liquidityProviderInfo } = keepOn
+ const { apps, mainHandler, liquidityProviderInfo, wizard } = keepOn
const serverMethods = GetServerMethods(mainHandler)
const nostrSettings = LoadNosrtSettingsFromEnv()
log("initializing nostr middleware")
@@ -27,6 +28,9 @@ const start = async () => {
log("starting server")
mainHandler.attachNostrSend(Send)
mainHandler.StartBeacons()
+ if (wizard) {
+ wizard.AddConnectInfo(encodeNprofile({ pubkey: liquidityProviderInfo.publicKey, relays: nostrSettings.relays }), nostrSettings.relays)
+ }
const Server = NewServer(serverMethods, serverOptions(mainHandler))
Server.Listen(mainSettings.servicePort)
}
diff --git a/src/nostrMiddleware.ts b/src/nostrMiddleware.ts
index 9d4f4834..021266ef 100644
--- a/src/nostrMiddleware.ts
+++ b/src/nostrMiddleware.ts
@@ -13,6 +13,20 @@ export default (serverMethods: Types.ServerMethods, mainHandler: Main, nostrSett
const nostrUser = await mainHandler.storage.applicationStorage.GetOrCreateNostrAppUser(app, pub || "")
return { user_id: nostrUser.user.user_id, app_user_id: nostrUser.identifier, app_id: appId || "" }
},
+ NostrAdminAuthGuard: async (appId, pub) => {
+ const adminNpub = mainHandler.adminManager.GetAdminNpub()
+ if (!adminNpub) { throw new Error("admin access not configured") }
+ if (pub !== adminNpub) { throw new Error("admin access denied") }
+ log("admin access from", pub)
+ return { admin_id: pub }
+ },
+ NostrMetricsAuthGuard: async (appId, pub) => {
+ const adminNpub = mainHandler.adminManager.GetAdminNpub()
+ if (!adminNpub) { throw new Error("admin access not configured") }
+ if (pub !== adminNpub) { throw new Error("admin access denied") }
+ log("operator access from", pub)
+ return { operator_id: pub }
+ },
metricsCallback: metrics => mainHandler.settings.recordPerformance ? mainHandler.metricsManager.AddMetrics(metrics) : null,
logger: { log: console.log, error: err => log(ERROR, err) }
})
diff --git a/src/services/main/adminManager.ts b/src/services/main/adminManager.ts
new file mode 100644
index 00000000..906c652f
--- /dev/null
+++ b/src/services/main/adminManager.ts
@@ -0,0 +1,97 @@
+import fs, { watchFile } from "fs";
+import crypto from 'crypto'
+import { getLogger } from "../helpers/logger.js";
+import { MainSettings, getDataPath } from "./settings.js";
+import Storage from "../storage/index.js";
+export class AdminManager {
+ storage: Storage
+ log = getLogger({ component: "adminManager" })
+ adminNpub = ""
+ dataDir: string
+ adminNpubPath: string
+ adminEnrollTokenPath: string
+ interval: NodeJS.Timer
+ constructor(mainSettings: MainSettings, storage: Storage) {
+ this.storage = storage
+ this.dataDir = mainSettings.storageSettings.dataDir
+ this.adminNpubPath = getDataPath(this.dataDir, 'admin.npub')
+ this.adminEnrollTokenPath = getDataPath(this.dataDir, '.admin_enroll')
+ this.start()
+ }
+ Stop = () => {
+ clearInterval(this.interval)
+ }
+
+ GenerateAdminEnrollToken = async () => {
+ const token = crypto.randomBytes(32).toString('hex')
+ fs.writeFileSync(this.adminEnrollTokenPath, token)
+ return token
+ }
+
+ start = () => {
+ const adminNpub = this.ReadAdminNpub()
+ if (adminNpub) {
+ this.adminNpub = adminNpub
+ } else if (!fs.existsSync(this.adminEnrollTokenPath)) {
+ this.GenerateAdminEnrollToken()
+ }
+ this.interval = setInterval(() => {
+ if (!this.adminNpub) {
+ return
+ }
+ const deleted = !fs.existsSync(this.adminNpubPath)
+ if (deleted) {
+ this.adminNpub = ""
+ this.log("admin npub file deleted")
+ this.GenerateAdminEnrollToken()
+ }
+ })
+ }
+
+ ReadAdminEnrollToken = () => {
+ try {
+ return fs.readFileSync(this.adminEnrollTokenPath, 'utf8').trim()
+ } catch (err: any) {
+ return ""
+ }
+ }
+
+ ReadAdminNpub = () => {
+ try {
+ return fs.readFileSync(this.adminNpubPath, 'utf8').trim()
+ } catch (err: any) {
+ return ""
+ }
+ }
+
+ GetAdminNpub = () => {
+ return this.adminNpub
+ }
+
+ ClearExistingAdmin = () => {
+ try {
+ fs.unlinkSync(this.adminNpubPath)
+ } catch (err: any) { }
+ }
+
+ PromoteUserToAdmin = async (appId: string, appUserId: string, token: string) => {
+ const app = await this.storage.applicationStorage.GetApplication(appId)
+ const appUser = await this.storage.applicationStorage.GetApplicationUser(app, appUserId)
+ const npub = appUser.nostr_public_key
+ if (!npub) {
+ throw new Error("no npub found for user")
+ }
+ let actualToken
+ try {
+ actualToken = fs.readFileSync(this.adminEnrollTokenPath, 'utf8').trim()
+ } catch (err: any) {
+ throw new Error("invalid enroll token")
+ }
+ if (token !== actualToken) {
+ throw new Error("invalid enroll token")
+ }
+ fs.writeFileSync(this.adminNpubPath, npub)
+ fs.unlinkSync(this.adminEnrollTokenPath)
+ this.adminNpub = npub
+ }
+}
\ No newline at end of file
diff --git a/src/services/main/index.ts b/src/services/main/index.ts
index 11c9b75e..c6bb8d68 100644
--- a/src/services/main/index.ts
+++ b/src/services/main/index.ts
@@ -19,6 +19,7 @@ import { LiquidityProvider } from "./liquidityProvider.js"
import { LiquidityManager } from "./liquidityManager.js"
import { Utils } from "../helpers/utilsWrapper.js"
import { RugPullTracker } from "./rugPullTracker.js"
+import { AdminManager } from "./adminManager.js"
type UserOperationsSub = {
id: string
@@ -33,21 +34,23 @@ export default class {
lnd: LND
settings: MainSettings
userOperationsSub: UserOperationsSub | null = null
+ adminManager: AdminManager
productManager: ProductManager
applicationManager: ApplicationManager
appUserManager: AppUserManager
paymentManager: PaymentManager
paymentSubs: Record void) | null> = {}
metricsManager: MetricsManager
- liquidityProvider: LiquidityProvider
liquidityManager: LiquidityManager
+ liquidityProvider: LiquidityProvider
utils: Utils
rugPullTracker: RugPullTracker
nostrSend: NostrSend = () => { getLogger({})("nostr send not initialized yet") }
- constructor(settings: MainSettings, storage: Storage, utils: Utils) {
+ constructor(settings: MainSettings, storage: Storage, adminManager: AdminManager, utils: Utils) {
this.settings = settings
this.storage = storage
this.utils = utils
+ this.adminManager = adminManager
const updateProviderBalance = (b: number) => this.storage.liquidityStorage.IncrementTrackedProviderBalance('lnPub', settings.liquiditySettings.liquidityProviderPub, b)
this.liquidityProvider = new LiquidityProvider(settings.liquiditySettings.liquidityProviderPub, this.utils, this.invoicePaidCb, updateProviderBalance)
this.rugPullTracker = new RugPullTracker(this.storage, this.liquidityProvider)
diff --git a/src/services/main/init.ts b/src/services/main/init.ts
index 2e8b7748..b0e99f9f 100644
--- a/src/services/main/init.ts
+++ b/src/services/main/init.ts
@@ -8,6 +8,8 @@ import SanityChecker from "./sanityChecker.js"
import { LoadMainSettingsFromEnv, MainSettings } from "./settings.js"
import { Utils } from "../helpers/utilsWrapper.js"
import { Wizard } from "../wizard/index.js"
+import { AdminManager } from "./adminManager.js"
+import { encodeNprofile } from "../../custom-nip19.js"
export type AppData = {
privateKey: string;
publicKey: string;
@@ -21,19 +23,20 @@ export const initMainHandler = async (log: PubLogger, mainSettings: MainSettings
if (manualMigration) {
return
}
+ const unlocker = new Unlocker(mainSettings, storageManager)
+ await unlocker.Unlock()
+ const adminManager = new AdminManager(mainSettings, storageManager)
let reloadedSettings = mainSettings
+ let wizard: Wizard | null = null
if (mainSettings.wizard) {
- const wizard = new Wizard(mainSettings, storageManager)
- const reload = await wizard.WaitUntilConfigured()
+ wizard = new Wizard(mainSettings, storageManager, adminManager)
+ const reload = await wizard.Configure()
if (reload) {
reloadedSettings = LoadMainSettingsFromEnv()
}
- } else {
- const unlocker = new Unlocker(mainSettings, storageManager)
- await unlocker.Unlock()
}
- const mainHandler = new Main(reloadedSettings, storageManager, utils)
+ const mainHandler = new Main(reloadedSettings, storageManager, adminManager, utils)
await mainHandler.lnd.Warmup()
if (!reloadedSettings.skipSanityCheck) {
const sanityChecker = new SanityChecker(storageManager, mainHandler.lnd)
@@ -70,7 +73,7 @@ export const initMainHandler = async (log: PubLogger, mainSettings: MainSettings
return
}
mainHandler.paymentManager.watchDog.Start()
- return { mainHandler, apps, liquidityProviderInfo, liquidityProviderApp }
+ return { mainHandler, apps, liquidityProviderInfo, liquidityProviderApp, wizard }
}
const processArgs = async (mainHandler: Main) => {
diff --git a/src/services/main/liquidityManager.ts b/src/services/main/liquidityManager.ts
index 0067ee41..71fd87b7 100644
--- a/src/services/main/liquidityManager.ts
+++ b/src/services/main/liquidityManager.ts
@@ -50,7 +50,11 @@ export class LiquidityManager {
}
onNewBlock = async () => {
- await this.shouldDrainProvider()
+ try {
+ await this.shouldDrainProvider()
+ } catch (err: any) {
+ this.log("error in onNewBlock", err.message || err)
+ }
}
beforeInvoiceCreation = async (amount: number): Promise<'lnd' | 'provider'> => {
diff --git a/src/services/main/liquidityProvider.ts b/src/services/main/liquidityProvider.ts
index 6fc6d7f5..47f44b17 100644
--- a/src/services/main/liquidityProvider.ts
+++ b/src/services/main/liquidityProvider.ts
@@ -43,6 +43,8 @@ export class LiquidityProvider {
this.client = newNostrClient({
pubDestination: this.pubDestination,
retrieveNostrUserAuth: async () => this.myPub,
+ retrieveNostrAdminAuth: async () => this.myPub,
+ retrieveNostrMetricsAuth: async () => this.myPub,
}, this.clientSend, this.clientSub)
this.configuredInterval = setInterval(() => {
diff --git a/src/services/main/settings.ts b/src/services/main/settings.ts
index 503e7d78..9b50ae67 100644
--- a/src/services/main/settings.ts
+++ b/src/services/main/settings.ts
@@ -7,6 +7,7 @@ import { getLogger } from '../helpers/logger.js'
import fs from 'fs'
import crypto from 'crypto';
import { LiquiditySettings, LoadLiquiditySettingsFromEnv } from './liquidityManager.js'
+
export type MainSettings = {
storageSettings: StorageSettings,
lndSettings: LndSettings,
@@ -44,6 +45,7 @@ export type TestSettings = MainSettings & { lndSettings: { otherNode: NodeSettin
export const LoadMainSettingsFromEnv = (): MainSettings => {
const storageSettings = LoadStorageSettingsFromEnv()
const outgoingAppUserInvoiceFeeBps = EnvCanBeInteger("OUTGOING_INVOICE_FEE_USER_BPS", 0)
+
return {
watchDogSettings: LoadWatchdogSettingsFromEnv(),
lndSettings: LoadLndSettingsFromEnv(),
diff --git a/src/services/main/unlocker.ts b/src/services/main/unlocker.ts
index 3d86dcd5..6dbe0ecc 100644
--- a/src/services/main/unlocker.ts
+++ b/src/services/main/unlocker.ts
@@ -15,7 +15,7 @@ export class Unlocker {
settings: MainSettings
storage: Storage
abortController = new AbortController()
- pendingSeed: Record = {}
+ subbedToBackups = false
log = getLogger({ component: "unlocker" })
constructor(settings: MainSettings, storage: Storage) {
this.settings = settings
@@ -46,55 +46,29 @@ export class Unlocker {
return { lndCert, macaroon }
}
- IsInitialized = async () => {
- const { macaroon } = await this.getCreds()
+ IsInitialized = () => {
+ const { macaroon } = this.getCreds()
return macaroon !== ''
}
- InitInteractive = async (): Promise<{ alreadyInitizialized: true } | { alreadyInitizialized: false, seed: string[], confirmationId: string }> => {
- const { lndCert, macaroon } = await this.getCreds()
- if (macaroon !== '') {
- const { ln, pub } = await this.UnlockFlow(lndCert, macaroon)
+ Unlock = async (): Promise<'created' | 'unlocked' | 'noaction'> => {
+ const { lndCert, macaroon } = this.getCreds()
+ if (macaroon === "") {
+ const { ln, pub } = await this.InitFlow(lndCert)
this.subscribeToBackups(ln, pub)
- return { alreadyInitizialized: true }
+ return 'created'
}
- const unlocker = this.GetUnlockerClient(lndCert)
- const seed = await this.genSeed(unlocker)
- const confirmationId = crypto.randomBytes(32).toString('hex')
- this.pendingSeed[confirmationId] = seed.encryptedSeed
- return { alreadyInitizialized: false, seed: seed.plaintextSeed, confirmationId }
- }
-
- ConfirmInitInteractive = async (confirmationId: string) => {
- const { lndCert, macaroon } = await this.getCreds()
- if (macaroon !== '') {
- const { ln, pub } = await this.UnlockFlow(lndCert, macaroon)
- this.subscribeToBackups(ln, pub)
- return { alreadyInitizialized: true }
- }
- const seed = this.pendingSeed[confirmationId]
- if (!seed) {
- throw new Error("seed not found")
- }
- delete this.pendingSeed[confirmationId]
- const plaintextSeed = this.DecryptWalletSeed(seed)
- const unlocker = this.GetUnlockerClient(lndCert)
- const { ln, pub } = await this.initWallet(lndCert, unlocker, { plaintextSeed, encryptedSeed: seed })
+ const { ln, pub, action } = await this.UnlockFlow(lndCert, macaroon)
this.subscribeToBackups(ln, pub)
+ return action
}
- Unlock = async () => {
- const { lndCert, macaroon } = await this.getCreds()
- const { ln, pub } = macaroon === "" ? await this.InitFlow(lndCert) : await this.UnlockFlow(lndCert, macaroon)
- this.subscribeToBackups(ln, pub)
- }
-
- UnlockFlow = async (lndCert: Buffer, macaroon: string) => {
+ UnlockFlow = async (lndCert: Buffer, macaroon: string): Promise<{ ln: LightningClient, pub: string, action: 'unlocked' | 'noaction' }> => {
const ln = this.GetLightningClient(lndCert, macaroon)
const info = await this.GetLndInfo(ln)
if (info.ok) {
this.log("the wallet is already unlocked with pub:", info.pub)
- return { ln, pub: info.pub }
+ return { ln, pub: info.pub, action: 'noaction' }
}
if (info.failure !== 'locked') {
throw new Error("failed to get lnd info for reason: " + info.failure)
@@ -108,7 +82,7 @@ export class Unlocker {
throw new Error("failed to unlock lnd wallet " + infoAfter.failure)
}
this.log("unlocked wallet with pub:", infoAfter.pub)
- return { ln, pub: infoAfter.pub }
+ return { ln, pub: infoAfter.pub, action: 'unlocked' }
}
InitFlow = async (lndCert: Buffer) => {
@@ -254,6 +228,10 @@ export class Unlocker {
}
subscribeToBackups = async (ln: LightningClient, pub: string) => {
+ if (this.subbedToBackups) {
+ return
+ }
+ this.subbedToBackups = true
this.log("subscribing to channel backups for: ", pub)
const stream = ln.subscribeChannelBackups({}, { abort: this.abortController.signal })
stream.responses.onMessage(async (msg) => {
diff --git a/src/services/nostr/handler.ts b/src/services/nostr/handler.ts
index dbcf7a9b..e3fcdf59 100644
--- a/src/services/nostr/handler.ts
+++ b/src/services/nostr/handler.ts
@@ -194,6 +194,7 @@ export default class Handler {
await p
sent = true
} catch (e: any) {
+ console.log(e)
log(e)
}
}))
diff --git a/src/services/serverMethods/index.ts b/src/services/serverMethods/index.ts
index 7e8a1363..0f385ce1 100644
--- a/src/services/serverMethods/index.ts
+++ b/src/services/serverMethods/index.ts
@@ -214,6 +214,13 @@ export default (mainHandler: Main): Types.ServerMethods => {
})
if (err != null) throw new Error(err.message)
return mainHandler.applicationManager.LinkNpubThroughToken(ctx, req)
- }
+ },
+ EnrollAdminToken: async ({ ctx, req }) => {
+ const err = Types.EnrollAdminTokenRequestValidate(req, {
+ admin_token_CustomCheck: token => token !== ''
+ })
+ if (err != null) throw new Error(err.message)
+ return mainHandler.adminManager.PromoteUserToAdmin(ctx.app_id, ctx.app_user_id, req.admin_token)
+ },
}
}
\ No newline at end of file
diff --git a/src/services/wizard/index.ts b/src/services/wizard/index.ts
index a9f280f5..00558384 100644
--- a/src/services/wizard/index.ts
+++ b/src/services/wizard/index.ts
@@ -7,6 +7,7 @@ import * as WizardTypes from "../../../proto/wizard_service/autogenerated/ts/typ
import { MainSettings } from "../main/settings.js"
import Storage from '../storage/index.js'
import { Unlocker } from "../main/unlocker.js"
+import { AdminManager } from '../main/adminManager.js';
export type WizardSettings = {
sourceName: string
relayUrl: string
@@ -17,31 +18,92 @@ const defaultProviderPub = ""
export class Wizard {
log = getLogger({ component: "wizard" })
settings: MainSettings
- unlocker: Unlocker
- initialized = false
+ adminManager: AdminManager
+ storage: Storage
configQueue: { res: (reload: boolean) => void }[] = []
pendingConfig: WizardSettings | null = null
- constructor(mainSettings: MainSettings, storage: Storage) {
+ awaitingNprofile: { res: (nprofile: string) => void }[] = []
+ nprofile = ""
+ relays: string[] = []
+ constructor(mainSettings: MainSettings, storage: Storage, adminManager: AdminManager) {
this.settings = mainSettings
+ this.adminManager = adminManager
+ this.storage = storage
this.log('Starting wizard...')
- this.unlocker = new Unlocker(mainSettings, storage)
const wizardServer = NewWizardServer({
- WizardState: async () => { return { already_initialized: await this.IsInitialized() } },
+ WizardState: async () => { return this.WizardState() },
WizardConfig: async ({ req }) => { return this.wizardConfig(req) },
- WizardConfirm: async ({ req }) => { return this.wizardConfirm(req) },
+ GetAdminConnectInfo: async () => { return this.GetAdminConnectInfo() },
+ GetServiceState: async () => { return this.GetServiceState() }
}, { GuestAuthGuard: async () => "", metricsCallback: () => { }, staticFiles: 'static' })
wizardServer.Listen(mainSettings.servicePort + 1)
}
- IsInitialized = () => {
- if (this.initialized) {
- return true
+ GetServiceState = async (): Promise => {
+ const apps = await this.storage.applicationStorage.GetApplications()
+ const appNamesList = apps.map(app => app.name).join(', ')
+ return {
+ admin_npub: this.adminManager.GetAdminNpub(),
+ http_url: this.settings.serviceUrl,
+ lnd_state: WizardTypes.LndState.OFFLINE,
+ nprofile: this.nprofile,
+ provider_name: appNamesList,
+ relay_connected: false,
+ relays: this.relays,
+ watchdog_ok: false
}
- return this.unlocker.IsInitialized()
+ }
+ WizardState = async (): Promise => {
+ return {
+ config_sent: this.pendingConfig !== null,
+ admin_linked: this.adminManager.GetAdminNpub() !== "",
+ }
+ }
+ IsInitialized = () => {
+ return !!this.adminManager.GetAdminNpub()
}
- WaitUntilConfigured = async (): Promise => {
- if (this.initialized) {
+ GetAdminConnectInfo = async (): Promise => {
+ const nprofile = await this.getNprofile()
+ const enrolledAdmin = this.adminManager.GetAdminNpub()
+ if (enrolledAdmin !== "") {
+ return {
+ nprofile, connect_info: {
+ type: WizardTypes.AdminConnectInfoResponse_connect_info_type.ENROLLED_NPUB,
+ enrolled_npub: enrolledAdmin
+ }
+ }
+ }
+ const adminEnroll = this.adminManager.ReadAdminEnrollToken()
+ if (adminEnroll !== "") {
+ return {
+ nprofile, connect_info: {
+ type: WizardTypes.AdminConnectInfoResponse_connect_info_type.ADMIN_TOKEN,
+ admin_token: adminEnroll
+ }
+ }
+ }
+ throw new Error("something went wrong initializing admin creds")
+ }
+
+ getNprofile = async (): Promise => {
+ if (this.nprofile !== "") {
+ return this.nprofile
+ }
+ console.log("waiting for nprofile")
+ return new Promise((res) => {
+ this.awaitingNprofile.push({ res })
+ })
+ }
+
+ AddConnectInfo = (nprofile: string, relays: string[]) => {
+ this.nprofile = nprofile
+ this.awaitingNprofile.forEach(q => q.res(nprofile))
+ this.awaitingNprofile = []
+ }
+
+ Configure = async (): Promise => {
+ if (this.IsInitialized() || this.pendingConfig !== null) {
return false
}
return new Promise((res) => {
@@ -49,80 +111,58 @@ export class Wizard {
})
}
- wizardConfig = async (req: WizardTypes.ConfigRequest): Promise => {
+ wizardConfig = async (req: WizardTypes.ConfigRequest): Promise => {
const err = WizardTypes.ConfigRequestValidate(req, {
source_name_CustomCheck: source => source !== '',
relay_url_CustomCheck: relay => relay !== '',
})
if (err != null) { throw new Error(err.message) }
-
- const res = await this.unlocker.InitInteractive()
- if (res.alreadyInitizialized) {
- this.initialized = true
- this.configQueue.forEach(q => q.res(false))
- return { already_initialized: true, confirmation_id: "", seed: [] }
+ if (this.IsInitialized() || this.pendingConfig !== null) {
+ throw new Error("already initialized")
}
- this.pendingConfig = { sourceName: req.source_name, relayUrl: req.relay_url, automateLiquidity: req.automate_liquidity, pushBackupsToNostr: req.push_backups_to_nostr }
- return { already_initialized: false, confirmation_id: res.confirmationId, seed: res.seed }
-
- }
-
- wizardConfirm = async (req: WizardTypes.ConfirmRequest): Promise => {
- const err = WizardTypes.ConfirmRequestValidate(req, {
- confirmation_id_CustomCheck: conf => conf !== '',
- })
- if (err != null) { throw new Error(err.message) }
-
- const res = await this.unlocker.ConfirmInitInteractive(req.confirmation_id)
- if (res?.alreadyInitizialized) {
- this.initialized = true
- this.configQueue.forEach(q => q.res(false))
- return { admin_key: "" }
- }
- this.initialized = true
- this.updateEnvFile()
+ const pendingConfig = { sourceName: req.source_name, relayUrl: req.relay_url, automateLiquidity: req.automate_liquidity, pushBackupsToNostr: req.push_backups_to_nostr }
+ this.updateEnvFile(pendingConfig)
this.configQueue.forEach(q => q.res(true))
- return { admin_key: process.env.ADMIN_TOKEN || "" }
+ this.configQueue = []
+ return
}
- updateEnvFile = () => {
- if (!this.pendingConfig) {
- return
- }
+ updateEnvFile = (pendingConfig: WizardSettings) => {
let envFileContent: string[] = []
try {
envFileContent = fs.readFileSync('.env', 'utf-8').split('\n')
} catch (err: any) {
if (err.code !== 'ENOENT') {
+ throw err
}
}
const toMerge: string[] = []
const sourceNameIndex = envFileContent.findIndex(line => line.startsWith('DEFAULT_APP_NAME'))
if (sourceNameIndex === -1) {
- toMerge.push(`DEFAULT_APP_NAME=${this.pendingConfig.sourceName}`)
+ toMerge.push(`DEFAULT_APP_NAME=${pendingConfig.sourceName}`)
} else {
- envFileContent[sourceNameIndex] = `DEFAULT_APP_NAME=${this.pendingConfig.sourceName}`
+ envFileContent[sourceNameIndex] = `DEFAULT_APP_NAME=${pendingConfig.sourceName}`
}
const relayUrlIndex = envFileContent.findIndex(line => line.startsWith('RELAY_URL'))
if (relayUrlIndex === -1) {
- toMerge.push(`RELAY_URL=${this.pendingConfig.relayUrl}`)
+ toMerge.push(`RELAY_URL=${pendingConfig.relayUrl}`)
} else {
- envFileContent[relayUrlIndex] = `RELAY_URL=${this.pendingConfig.relayUrl}`
+ envFileContent[relayUrlIndex] = `RELAY_URL=${pendingConfig.relayUrl}`
}
const automateLiquidityIndex = envFileContent.findIndex(line => line.startsWith('LIQUIDITY_PROVIDER_PUB'))
if (automateLiquidityIndex === -1) {
- toMerge.push(`LIQUIDITY_PROVIDER_PUB=${this.pendingConfig.automateLiquidity ? defaultProviderPub : ""}`)
+ toMerge.push(`LIQUIDITY_PROVIDER_PUB=${pendingConfig.automateLiquidity ? defaultProviderPub : ""}`)
} else {
envFileContent[automateLiquidityIndex] = `LIQUIDITY_PROVIDER_PUB=`
}
const pushBackupsToNostrIndex = envFileContent.findIndex(line => line.startsWith('PUSH_BACKUPS_TO_NOSTR'))
if (pushBackupsToNostrIndex === -1) {
- toMerge.push(`PUSH_BACKUPS_TO_NOSTR=${this.pendingConfig.pushBackupsToNostr ? 'true' : 'false'}`)
+ toMerge.push(`PUSH_BACKUPS_TO_NOSTR=${pendingConfig.pushBackupsToNostr ? 'true' : 'false'}`)
} else {
- envFileContent[pushBackupsToNostrIndex] = `PUSH_BACKUPS_TO_NOSTR=${this.pendingConfig.pushBackupsToNostr ? 'true' : 'false'}`
+ envFileContent[pushBackupsToNostrIndex] = `PUSH_BACKUPS_TO_NOSTR=${pendingConfig.pushBackupsToNostr ? 'true' : 'false'}`
}
const merged = [...envFileContent, ...toMerge].join('\n')
fs.writeFileSync('.env', merged)
diff --git a/static/backup.html b/static/backup.html
index f060dc92..ac27dee4 100644
--- a/static/backup.html
+++ b/static/backup.html
@@ -93,6 +93,31 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ Lightning.Pub
+
+
+
-
+
+
+
+
+
-
- For dashboard access, use
ShockWallet and tap the logo 3 times.
- Scan the QR or Copy-Paste the string to establish the connection.
-
-
-
-
Code contains a one-time pairing secret
-
Click to reveal
-
-
-
-
npub123abcdefghhhhhhhhhhhhhhh
-
relay.lightning.pub
-
+
+
+
+
+
+
+ For dashboard access, use
ShockWallet and tap the logo 3 times.
+ Scan the QR or Copy-Paste the string to establish the connection.
+
+
+
+
+
Code contains a one-time pairing secret
+
Click to reveal
+
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
-
diff --git a/static/connect.html b/static/connect.html
index 64a792ed..2bd2381e 100644
--- a/static/connect.html
+++ b/static/connect.html
@@ -1,80 +1,116 @@
-