Merge branch 'master' into debits

This commit is contained in:
boufni95 2024-09-27 16:39:23 +00:00
commit b4e24eb964
8 changed files with 21 additions and 5 deletions

View file

@ -25,6 +25,9 @@
#PORT=1776 #PORT=1776
#JWT_SECRET= #JWT_SECRET=
#Lightning Address Bridge
#BRIDGE_URL=https://shockwallet.app
#LIGHTNING #LIGHTNING
# Maximum amount in network fees passed to LND when it pays an external invoice # Maximum amount in network fees passed to LND when it pays an external invoice
# BPS are basis points, 100 BPS = 1% # BPS are basis points, 100 BPS = 1%

View file

@ -1070,6 +1070,7 @@ The nostr server will send back a message response, and inside the body there wi
### UserInfo ### UserInfo
- __balance__: _number_ - __balance__: _number_
- __bridge_url__: _string_
- __callback_url__: _string_ - __callback_url__: _string_
- __max_withdrawable__: _number_ - __max_withdrawable__: _number_
- __ndebit__: _string_ - __ndebit__: _string_

View file

@ -460,6 +460,7 @@ type UseInviteLinkRequest struct {
} }
type UserInfo struct { type UserInfo struct {
Balance int64 `json:"balance"` Balance int64 `json:"balance"`
Bridge_url string `json:"bridge_url"`
Callback_url string `json:"callback_url"` Callback_url string `json:"callback_url"`
Max_withdrawable int64 `json:"max_withdrawable"` Max_withdrawable int64 `json:"max_withdrawable"`
Ndebit string `json:"ndebit"` Ndebit string `json:"ndebit"`

View file

@ -2612,6 +2612,7 @@ export const UseInviteLinkRequestValidate = (o?: UseInviteLinkRequest, opts: Use
export type UserInfo = { export type UserInfo = {
balance: number balance: number
bridge_url: string
callback_url: string callback_url: string
max_withdrawable: number max_withdrawable: number
ndebit: string ndebit: string
@ -2626,6 +2627,7 @@ export const UserInfoOptionalFields: [] = []
export type UserInfoOptions = OptionsBaseMessage & { export type UserInfoOptions = OptionsBaseMessage & {
checkOptionalsAreSet?: [] checkOptionalsAreSet?: []
balance_CustomCheck?: (v: number) => boolean balance_CustomCheck?: (v: number) => boolean
bridge_url_CustomCheck?: (v: string) => boolean
callback_url_CustomCheck?: (v: string) => boolean callback_url_CustomCheck?: (v: string) => boolean
max_withdrawable_CustomCheck?: (v: number) => boolean max_withdrawable_CustomCheck?: (v: number) => boolean
ndebit_CustomCheck?: (v: string) => boolean ndebit_CustomCheck?: (v: string) => boolean
@ -2643,6 +2645,9 @@ export const UserInfoValidate = (o?: UserInfo, opts: UserInfoOptions = {}, path:
if (typeof o.balance !== 'number') return new Error(`${path}.balance: is not a number`) 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 (opts.balance_CustomCheck && !opts.balance_CustomCheck(o.balance)) return new Error(`${path}.balance: custom check failed`)
if (typeof o.bridge_url !== 'string') return new Error(`${path}.bridge_url: is not a string`)
if (opts.bridge_url_CustomCheck && !opts.bridge_url_CustomCheck(o.bridge_url)) return new Error(`${path}.bridge_url: custom check failed`)
if (typeof o.callback_url !== 'string') return new Error(`${path}.callback_url: is not a string`) if (typeof o.callback_url !== 'string') return new Error(`${path}.callback_url: is not a string`)
if (opts.callback_url_CustomCheck && !opts.callback_url_CustomCheck(o.callback_url)) return new Error(`${path}.callback_url: custom check failed`) if (opts.callback_url_CustomCheck && !opts.callback_url_CustomCheck(o.callback_url)) return new Error(`${path}.callback_url: custom check failed`)

View file

@ -362,6 +362,7 @@ message UserInfo{
string noffer = 8; string noffer = 8;
string ndebit = 9; string ndebit = 9;
string callback_url = 10; string callback_url = 10;
string bridge_url = 11;
} }
message GetUserOperationsRequest{ message GetUserOperationsRequest{
int64 latestIncomingInvoice = 1; int64 latestIncomingInvoice = 1;

View file

@ -69,7 +69,8 @@ export default class {
service_fee_bps: this.settings.outgoingAppUserInvoiceFeeBps, service_fee_bps: this.settings.outgoingAppUserInvoiceFeeBps,
noffer: nofferEncode({ pubkey: app.nostr_public_key!, offer: appUser.identifier, priceType: OfferPriceType.Spontaneous, relay: nostrSettings.relays[0] }), noffer: nofferEncode({ pubkey: app.nostr_public_key!, offer: appUser.identifier, priceType: OfferPriceType.Spontaneous, relay: nostrSettings.relays[0] }),
ndebit: ndebitEncode({ pubkey: app.nostr_public_key!, pointerId: appUser.identifier, relay: nostrSettings.relays[0] }), ndebit: ndebitEncode({ pubkey: app.nostr_public_key!, pointerId: appUser.identifier, relay: nostrSettings.relays[0] }),
callback_url: appUser.callback_url callback_url: appUser.callback_url,
bridge_url: this.settings.bridgeUrl
} }
} }

View file

@ -164,7 +164,8 @@ export default class {
service_fee_bps: this.settings.outgoingAppUserInvoiceFeeBps, service_fee_bps: this.settings.outgoingAppUserInvoiceFeeBps,
noffer: nofferEncode({ pubkey: app.nostr_public_key!, offer: u.identifier, priceType: OfferPriceType.Spontaneous, relay: nostrSettings.relays[0] }), noffer: nofferEncode({ pubkey: app.nostr_public_key!, offer: u.identifier, priceType: OfferPriceType.Spontaneous, relay: nostrSettings.relays[0] }),
ndebit: ndebitEncode({ pubkey: app.nostr_public_key!, pointerId: u.identifier, relay: nostrSettings.relays[0] }), ndebit: ndebitEncode({ pubkey: app.nostr_public_key!, pointerId: u.identifier, relay: nostrSettings.relays[0] }),
callback_url: u.callback_url callback_url: u.callback_url,
bridge_url: this.settings.bridgeUrl
}, },
max_withdrawable: this.paymentManager.GetMaxPayableInvoice(u.user.balance_sats, true) max_withdrawable: this.paymentManager.GetMaxPayableInvoice(u.user.balance_sats, true)
@ -208,7 +209,8 @@ export default class {
service_fee_bps: this.settings.outgoingAppUserInvoiceFeeBps, service_fee_bps: this.settings.outgoingAppUserInvoiceFeeBps,
noffer: nofferEncode({ pubkey: app.nostr_public_key!, offer: user.identifier, priceType: OfferPriceType.Spontaneous, relay: nostrSettings.relays[0] }), noffer: nofferEncode({ pubkey: app.nostr_public_key!, offer: user.identifier, priceType: OfferPriceType.Spontaneous, relay: nostrSettings.relays[0] }),
ndebit: ndebitEncode({ pubkey: app.nostr_public_key!, pointerId: user.identifier, relay: nostrSettings.relays[0] }), ndebit: ndebitEncode({ pubkey: app.nostr_public_key!, pointerId: user.identifier, relay: nostrSettings.relays[0] }),
callback_url: user.callback_url callback_url: user.callback_url,
bridge_url: this.settings.bridgeUrl
}, },
} }
} }

View file

@ -33,7 +33,8 @@ export type MainSettings = {
wizard: boolean wizard: boolean
defaultAppName: string defaultAppName: string
pushBackupsToNostr: boolean pushBackupsToNostr: boolean
lnurlMetaText: string lnurlMetaText: string,
bridgeUrl: string
} }
export type BitcoinCoreSettings = { export type BitcoinCoreSettings = {
@ -72,7 +73,8 @@ export const LoadMainSettingsFromEnv = (): MainSettings => {
wizard: process.env.WIZARD === 'true' || false, wizard: process.env.WIZARD === 'true' || false,
defaultAppName: process.env.DEFAULT_APP_NAME || "wallet", defaultAppName: process.env.DEFAULT_APP_NAME || "wallet",
pushBackupsToNostr: process.env.PUSH_BACKUPS_TO_NOSTR === 'true' || false, pushBackupsToNostr: process.env.PUSH_BACKUPS_TO_NOSTR === 'true' || false,
lnurlMetaText: process.env.LNURL_META_TEXT || "LNURL via Lightning.pub" lnurlMetaText: process.env.LNURL_META_TEXT || "LNURL via Lightning.pub",
bridgeUrl: process.env.BRIDGE_URL || "https://shockwallet.app"
} }
} }