From ce62cafd59c8a3ad4ea5daa3c6650074bd77266f Mon Sep 17 00:00:00 2001 From: triesap Date: Tue, 17 Feb 2026 19:54:16 +0000 Subject: [PATCH] Replace lightning toolkit with wallet adapter --- package.json | 8 +- pnpm-lock.yaml | 32 +- src/app/components/WalletConnect.svelte | 12 +- src/app/components/WalletPay.svelte | 2 +- src/app/components/WalletReceive.svelte | 2 +- src/app/core/commands.ts | 96 ++--- src/lib/lightning/bolt11/Invoice.test.ts | 36 ++ src/lib/lightning/bolt11/Invoice.ts | 86 +++++ src/lib/lightning/bolt11/amount.test.ts | 16 + src/lib/lightning/bolt11/amount.ts | 63 +++ src/lib/lightning/bolt11/bech32.test.ts | 22 ++ src/lib/lightning/bolt11/bech32.ts | 108 ++++++ src/lib/lightning/bolt11/decoder.test.ts | 19 + src/lib/lightning/bolt11/decoder.ts | 92 +++++ src/lib/lightning/bolt11/index.ts | 1 + src/lib/lightning/bolt11/types.ts | 17 + src/lib/lightning/index.ts | 3 + src/lib/lightning/nwc/NWCClient.test.ts | 67 ++++ src/lib/lightning/nwc/NWCClient.ts | 380 +++++++++++++++++++ src/lib/lightning/nwc/index.ts | 1 + src/lib/lightning/nwc/types.ts | 77 ++++ src/lib/lightning/test/helpers.ts | 22 ++ src/lib/lightning/test/setup.ts | 11 + src/lib/lightning/test/smoke.test.ts | 18 + src/lib/lightning/wallet/IWallet.ts | 16 + src/lib/lightning/wallet/NWCWallet.ts | 50 +++ src/lib/lightning/wallet/WebLNWallet.test.ts | 35 ++ src/lib/lightning/wallet/WebLNWallet.ts | 96 +++++ src/lib/lightning/wallet/factory.test.ts | 44 +++ src/lib/lightning/wallet/factory.ts | 16 + src/lib/lightning/wallet/index.ts | 5 + src/routes/settings/wallet/+page.svelte | 21 +- vitest.config.ts | 10 + 33 files changed, 1364 insertions(+), 120 deletions(-) create mode 100644 src/lib/lightning/bolt11/Invoice.test.ts create mode 100644 src/lib/lightning/bolt11/Invoice.ts create mode 100644 src/lib/lightning/bolt11/amount.test.ts create mode 100644 src/lib/lightning/bolt11/amount.ts create mode 100644 src/lib/lightning/bolt11/bech32.test.ts create mode 100644 src/lib/lightning/bolt11/bech32.ts create mode 100644 src/lib/lightning/bolt11/decoder.test.ts create mode 100644 src/lib/lightning/bolt11/decoder.ts create mode 100644 src/lib/lightning/bolt11/index.ts create mode 100644 src/lib/lightning/bolt11/types.ts create mode 100644 src/lib/lightning/index.ts create mode 100644 src/lib/lightning/nwc/NWCClient.test.ts create mode 100644 src/lib/lightning/nwc/NWCClient.ts create mode 100644 src/lib/lightning/nwc/index.ts create mode 100644 src/lib/lightning/nwc/types.ts create mode 100644 src/lib/lightning/test/helpers.ts create mode 100644 src/lib/lightning/test/setup.ts create mode 100644 src/lib/lightning/test/smoke.test.ts create mode 100644 src/lib/lightning/wallet/IWallet.ts create mode 100644 src/lib/lightning/wallet/NWCWallet.ts create mode 100644 src/lib/lightning/wallet/WebLNWallet.test.ts create mode 100644 src/lib/lightning/wallet/WebLNWallet.ts create mode 100644 src/lib/lightning/wallet/factory.test.ts create mode 100644 src/lib/lightning/wallet/factory.ts create mode 100644 src/lib/lightning/wallet/index.ts create mode 100644 vitest.config.ts diff --git a/package.json b/package.json index 49243051..49cda9fb 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "lint": "prettier --check src && eslint src", "format": "git diff head --name-only --diff-filter d | grep -E '(js|ts|svelte|css)$' | xargs -r prettier --write", "format:all": "prettier --write src", + "test": "vitest run", "prepare": "husky" }, "devDependencies": { @@ -25,6 +26,7 @@ "eslint-config-prettier": "^9.1.2", "eslint-plugin-svelte": "^2.46.1", "globals": "^15.15.0", + "jsdom": "^24.0.0", "postcss": "^8.5.6", "prettier": "^3.8.1", "prettier-plugin-svelte": "^3.4.1", @@ -33,7 +35,8 @@ "tailwindcss": "^3.4.19", "typescript": "^5.9.3", "typescript-eslint": "^8.53.1", - "vite": "^5.4.21" + "vite": "^5.4.21", + "vitest": "^1.6.0" }, "type": "module", "dependencies": { @@ -49,9 +52,8 @@ "@capacitor/push-notifications": "^8.0.0", "@capawesome/capacitor-android-dark-mode-support": "^8.0.0", "@capawesome/capacitor-badge": "^8.0.0", - "@getalby/lightning-tools": "^6.1.0", - "@getalby/sdk": "^5.1.2", "@noble/curves": "^1.9.7", + "@noble/hashes": "^2.0.1", "@pomade/core": "^0.0.12", "@poppanator/sveltekit-svg": "^4.2.1", "@sveltejs/adapter-static": "^3.0.10", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6658938e..5f53968c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,15 +47,12 @@ importers: '@capawesome/capacitor-badge': specifier: ^8.0.0 version: 8.0.0(@capacitor/core@8.0.1) - '@getalby/lightning-tools': - specifier: ^6.1.0 - version: 6.1.0 - '@getalby/sdk': - specifier: ^5.1.2 - version: 5.1.2(typescript@5.9.3) '@noble/curves': specifier: ^1.9.7 version: 1.9.7 + '@noble/hashes': + specifier: ^2.0.1 + version: 2.0.1 '@pomade/core': specifier: ^0.0.12 version: 0.0.12(@frostr/bifrost@1.0.7(typescript@5.9.3))(@noble/hashes@2.0.1)(@welshman/lib@0.8.4)(@welshman/net@0.8.4(@welshman/lib@0.8.4)(@welshman/util@0.8.4(@noble/curves@1.9.7)(@welshman/lib@0.8.4)(nostr-tools@2.20.0(typescript@5.9.3)))(ws@8.18.3))(@welshman/signer@0.8.4(@noble/curves@1.9.7)(@noble/hashes@2.0.1)(@welshman/lib@0.8.4)(@welshman/net@0.8.4(@welshman/lib@0.8.4)(@welshman/util@0.8.4(@noble/curves@1.9.7)(@welshman/lib@0.8.4)(nostr-tools@2.20.0(typescript@5.9.3)))(ws@8.18.3))(@welshman/util@0.8.4(@noble/curves@1.9.7)(@welshman/lib@0.8.4)(nostr-tools@2.20.0(typescript@5.9.3)))(nostr-signer-capacitor-plugin@0.0.4(@capacitor/core@8.0.1))(nostr-tools@2.20.0(typescript@5.9.3)))(@welshman/util@0.8.4(@noble/curves@1.9.7)(@welshman/lib@0.8.4)(nostr-tools@2.20.0(typescript@5.9.3)))(nostr-tools@2.20.0(typescript@5.9.3)) @@ -999,18 +996,6 @@ packages: '@frostr/bifrost@1.0.7': resolution: {integrity: sha512-9PO8s8ra7Cf94HqsF0sArRkLLFYqDyGfRKUOflTWMGgaDvSWIksNA8PckcXvy5/G6u4RtAkTAqki47+ga+7yow==} - '@getalby/lightning-tools@5.2.1': - resolution: {integrity: sha512-dxOmJLJAh6qJ8rsbA5/Bwj7MSI9X3RkxxqmCedl5rfP+yKwNSdfu8i4EiCZN/tk2hNBJb8GHSCcPRNZfwfmEHg==} - engines: {node: '>=14'} - - '@getalby/lightning-tools@6.1.0': - resolution: {integrity: sha512-rGurar9X4Gm+9xwoNYS8s9YLK7ZYqvbqv4KbHLYV0LEeB0HxZHRgmxblGqg+fYfp6iiYHx+edIgUpt9rS3VwFw==} - engines: {node: '>=14'} - - '@getalby/sdk@5.1.2': - resolution: {integrity: sha512-yUF9LhuvdIFOwjV1aG0ryzfwDiGBFk/CRLkRvrrM9dsE38SUjKsf1FDga5jxsKMu80nWcPZR9TiGGASWedoYPA==} - engines: {node: '>=14'} - '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -5793,17 +5778,6 @@ snapshots: transitivePeerDependencies: - typescript - '@getalby/lightning-tools@5.2.1': {} - - '@getalby/lightning-tools@6.1.0': {} - - '@getalby/sdk@5.1.2(typescript@5.9.3)': - dependencies: - '@getalby/lightning-tools': 5.2.1 - nostr-tools: 2.15.0(typescript@5.9.3) - transitivePeerDependencies: - - typescript - '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.7': diff --git a/src/app/components/WalletConnect.svelte b/src/app/components/WalletConnect.svelte index 99c87201..7b19599a 100644 --- a/src/app/components/WalletConnect.svelte +++ b/src/app/components/WalletConnect.svelte @@ -1,6 +1,6 @@