From 9f763c09f853c17cb10a7844b15e60e1b092e531 Mon Sep 17 00:00:00 2001 From: Kieran Date: Thu, 2 Mar 2023 21:56:25 +0000 Subject: [PATCH] bug: lndhub path --- packages/app/src/Pages/WalletPage.tsx | 21 ++++++++++++--------- packages/app/src/Wallet/LNCWallet.ts | 6 +++++- packages/app/src/Wallet/LNDHub.ts | 11 ++++++----- packages/app/src/index.css | 4 ++++ 4 files changed, 27 insertions(+), 15 deletions(-) diff --git a/packages/app/src/Pages/WalletPage.tsx b/packages/app/src/Pages/WalletPage.tsx index 93011886..56701d8c 100644 --- a/packages/app/src/Pages/WalletPage.tsx +++ b/packages/app/src/Pages/WalletPage.tsx @@ -146,7 +146,7 @@ export default function WalletPage() {
{(a.memo ?? "").length === 0 ? <>  : a.memo}
{ + className={`nowrap ${(() => { switch (a.state) { case WalletInvoiceState.Paid: return "success"; @@ -157,7 +157,7 @@ export default function WalletPage() { default: return "pending"; } - })()}> + })()}`}> {stateIcon(a.state)} + , }} /> - + ); } @@ -190,17 +190,16 @@ export default function WalletPage() { if (!wallet?.isReady()) return null; return ( <> -

{info?.alias}

- {walletBalance()} +
+

{info?.alias}

+ {walletBalance()} +
{/*
*/} {walletHistory()} - ); } @@ -211,6 +210,10 @@ export default function WalletPage() { {walletList()} {unlockWallet()} {walletInfo()} + +
); } diff --git a/packages/app/src/Wallet/LNCWallet.ts b/packages/app/src/Wallet/LNCWallet.ts index b00dd987..da5c3ac2 100644 --- a/packages/app/src/Wallet/LNCWallet.ts +++ b/packages/app/src/Wallet/LNCWallet.ts @@ -131,14 +131,18 @@ export class LNCWallet implements LNWallet { reversed: true, }); + console.debug(invoices); return invoices.payments.map(a => { const parsedInvoice = prToWalletInvoice(a.paymentRequest); + if (!parsedInvoice) { + throw new WalletError(WalletErrorCode.InvalidInvoice, `Could not parse ${a.paymentRequest}`); + } return { ...parsedInvoice, state: (() => { switch (a.status) { case Payment_PaymentStatus.SUCCEEDED: - return; + return WalletInvoiceState.Paid; case Payment_PaymentStatus.FAILED: return WalletInvoiceState.Failed; default: diff --git a/packages/app/src/Wallet/LNDHub.ts b/packages/app/src/Wallet/LNDHub.ts index a649866d..a7d75da8 100644 --- a/packages/app/src/Wallet/LNDHub.ts +++ b/packages/app/src/Wallet/LNDHub.ts @@ -18,7 +18,7 @@ const defaultHeaders = { export default class LNDHubWallet implements LNWallet { type: "lndhub" | "snort"; - url: string; + url: URL; user: string; password: string; auth?: AuthResponse; @@ -32,13 +32,13 @@ export default class LNDHubWallet implements LNWallet { if (!parsedUrl || parsedUrl.length !== 4) { throw new Error("Invalid LNDHUB config"); } - this.url = new URL(parsedUrl[3]).toString(); + this.url = new URL(parsedUrl[3]); this.user = parsedUrl[1]; this.password = parsedUrl[2]; this.type = "lndhub"; } else if (url.startsWith("snort://")) { const u = new URL(url); - this.url = `https://${u.host}${u.pathname}`; + this.url = new URL(`https://${u.host}${u.pathname}`); this.user = ""; this.password = ""; this.type = "snort"; @@ -125,10 +125,11 @@ export default class LNDHubWallet implements LNWallet { private async getJson(method: "GET" | "POST", path: string, body?: unknown): Promise { let auth = `Bearer ${this.auth?.access_token}`; if (this.type === "snort") { - const ev = await this.publisher?.generic(`${new URL(this.url).pathname}${path}`, 30_000); + const ev = await this.publisher?.generic(`${this.url.pathname}${path}`, 30_000); auth = JSON.stringify(ev?.ToObject()); } - const rsp = await fetch(`${this.url}${path}`, { + const url = `${this.url.pathname === "/" ? this.url.toString().slice(0, -1) : this.url.toString()}${path}`; + const rsp = await fetch(url, { method: method, body: body ? JSON.stringify(body) : undefined, headers: { diff --git a/packages/app/src/index.css b/packages/app/src/index.css index a7baf00a..d7ea2e3e 100644 --- a/packages/app/src/index.css +++ b/packages/app/src/index.css @@ -535,6 +535,10 @@ body.scroll-lock { font-weight: 700; } +.nowrap { + white-space: nowrap; +} + .main-content h2 { font-weight: 600; font-size: 32px;