From c272a49ac977a8529a776a97e786b23a81f5ab43 Mon Sep 17 00:00:00 2001 From: ekzyis Date: Thu, 9 Jan 2025 02:54:05 +0100 Subject: [PATCH] Add cashu wallet * cashu wallet def exports new property 'components' to render balance and buttons for deposit and withdraw * new context CashuContext is included in pages/_app.js * CashuContext includes hooks to read/write proofs and show balance --- components/use-indexeddb.js | 4 +- docker-compose.yml | 31 +++- lib/validate.js | 4 + package-lock.json | 170 +++++++++++++++++- package.json | 1 + pages/_app.js | 43 ++--- pages/wallets/[wallet].js | 17 +- pages/withdraw.js | 2 +- .../20250109022428_wallet_cashu/migration.sql | 23 +++ prisma/schema.prisma | 11 ++ public/wallets/cashu-dark.png | Bin 0 -> 86076 bytes public/wallets/cashu.png | Bin 0 -> 84613 bytes wallets/cashu/client.js | 49 +++++ wallets/cashu/components/balance.js | 11 ++ wallets/cashu/components/context.js | 52 ++++++ wallets/cashu/components/deposit.js | 66 +++++++ wallets/cashu/components/qr.js | 47 +++++ wallets/cashu/components/withdraw.js | 97 ++++++++++ wallets/cashu/index.js | 24 +++ wallets/client.js | 3 +- wallets/payment.js | 12 +- 21 files changed, 632 insertions(+), 35 deletions(-) create mode 100644 prisma/migrations/20250109022428_wallet_cashu/migration.sql create mode 100644 public/wallets/cashu-dark.png create mode 100644 public/wallets/cashu.png create mode 100644 wallets/cashu/client.js create mode 100644 wallets/cashu/components/balance.js create mode 100644 wallets/cashu/components/context.js create mode 100644 wallets/cashu/components/deposit.js create mode 100644 wallets/cashu/components/qr.js create mode 100644 wallets/cashu/components/withdraw.js create mode 100644 wallets/cashu/index.js diff --git a/components/use-indexeddb.js b/components/use-indexeddb.js index 0afeeeeb5..e43bb3166 100644 --- a/components/use-indexeddb.js +++ b/components/use-indexeddb.js @@ -1,4 +1,4 @@ -import { useState, useEffect, useCallback, useRef } from 'react' +import { useState, useEffect, useCallback, useRef, useMemo } from 'react' export function getDbName (userId, name) { return `app:storage:${userId ?? ''}${name ? `:${name}` : ''}` @@ -294,7 +294,7 @@ function useIndexedDB ({ dbName, storeName, options = DEFAULT_OPTIONS, indices = }) }, [queueOperation, storeName]) - return { add, get, getAll, set, remove, clear, getByIndex, getAllByIndex, getPage, error, notSupported } + return useMemo(() => ({ add, get, getAll, set, remove, clear, getByIndex, getAllByIndex, getPage, error, notSupported }), [add, get, getAll, set, remove, clear, getByIndex, getAllByIndex, getPage, error, notSupported]) } export default useIndexedDB diff --git a/docker-compose.yml b/docker-compose.yml index 31825444e..0f47ad104 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -821,6 +821,34 @@ services: CONNECT: "localhost:${LNBITS_WEB_PORT}" TORDIR: "/app/.tor" cpu_shares: "${CPU_SHARES_LOW}" + cashu: + image: cashubtc/nutshell:0.16.4 + container_name: cashu + profiles: + - wallets + restart: unless-stopped + ports: + - "3338:3338" + depends_on: + lnd: + condition: service_healthy + restart: true + environment: + - MINT_LISTEN_HOST=0.0.0.0 + - MINT_LISTEN_PORT=3338 + - MINT_INFO_NAME="SN Cashu Test Mint" + - MINT_PRIVATE_KEY=TEST_PRIVATE_KEY + - MINT_BACKEND_BOLT11_SAT=LndRPCWallet + - MINT_LND_RPC_ENDPOINT=lnd:10009 + - MINT_LND_RPC_CERT=/app/.lnd/tls.cert + - MINT_LND_RPC_MACAROON=/app/.lnd/data/chain/bitcoin/regtest/admin.macaroon + command: ["poetry", "run", "mint"] + volumes: + - lnd:/app/.lnd + - cashu:/app/.cashu + labels: + CONNECT: "localhost:3338" + cpu_shares: "${CPU_SHARES_LOW}" volumes: db: os: @@ -833,4 +861,5 @@ volumes: nwc_send: nwc_recv: tordata: - eclair: \ No newline at end of file + eclair: + cashu: \ No newline at end of file diff --git a/lib/validate.js b/lib/validate.js index 12bce77a8..6b235f183 100644 --- a/lib/validate.js +++ b/lib/validate.js @@ -515,3 +515,7 @@ export const deviceSyncSchema = object().shape({ return true }) }) + +export const mintQuoteSchema = object({ + amount: intValidator.required('required').positive('must be positive') +}) diff --git a/package-lock.json b/package-lock.json index d373b8eb0..139b52739 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@apollo/server": "^4.11.0", "@as-integrations/next": "^3.1.0", "@auth/prisma-adapter": "^2.7.0", + "@cashu/cashu-ts": "^2.1.0", "@graphql-tools/schema": "^10.0.6", "@lightninglabs/lnc-web": "^0.3.2-alpha", "@noble/curves": "^1.6.0", @@ -2429,6 +2430,115 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "node_modules/@cashu/cashu-ts": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@cashu/cashu-ts/-/cashu-ts-2.1.0.tgz", + "integrity": "sha512-qFfFz1dx9keJxumjk5FyTvI1j0Yp/P5LXDy0cGO4Xlp3WYKOI1nykNOTPd+bTY9vSkvIM+xuXRer9BtQxqHtwA==", + "license": "MIT", + "dependencies": { + "@cashu/crypto": "^0.3.4", + "@noble/curves": "^1.3.0", + "@noble/hashes": "^1.3.3", + "@scure/bip32": "^1.3.3", + "buffer": "^6.0.3" + } + }, + "node_modules/@cashu/cashu-ts/node_modules/@noble/hashes": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz", + "integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@cashu/cashu-ts/node_modules/@scure/base": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.1.tgz", + "integrity": "sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@cashu/cashu-ts/node_modules/@scure/bip32": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.1.tgz", + "integrity": "sha512-jSO+5Ud1E588Y+LFo8TaB8JVPNAZw/lGGao+1SepHDeTs2dFLurdNIAgUuDlwezqEjRjElkCJajVrtrZaBxvaQ==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.8.0", + "@noble/hashes": "~1.7.0", + "@scure/base": "~1.2.1" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@cashu/crypto": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@cashu/crypto/-/crypto-0.3.4.tgz", + "integrity": "sha512-mfv1Pj4iL1PXzUj9NKIJbmncCLMqYfnEDqh/OPxAX0nNBt6BOnVJJLjLWFlQeYxlnEfWABSNkrqPje1t5zcyhA==", + "license": "MIT", + "dependencies": { + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "buffer": "^6.0.3" + } + }, + "node_modules/@cashu/crypto/node_modules/@noble/hashes": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz", + "integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@cashu/crypto/node_modules/@scure/base": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.1.tgz", + "integrity": "sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@cashu/crypto/node_modules/@scure/bip32": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.1.tgz", + "integrity": "sha512-jSO+5Ud1E588Y+LFo8TaB8JVPNAZw/lGGao+1SepHDeTs2dFLurdNIAgUuDlwezqEjRjElkCJajVrtrZaBxvaQ==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.8.0", + "@noble/hashes": "~1.7.0", + "@scure/base": "~1.2.1" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@cashu/crypto/node_modules/@scure/bip39": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.1.tgz", + "integrity": "sha512-GnlufVSP9UdAo/H2Patfv22VTtpNTyfi+I3qCKpvuB5l1KWzEYx+l2TNpBy9Ksh4xTs3Rn06tBlpWCi/1Vz8gw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.7.0", + "@scure/base": "~1.2.1" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.23.1", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", @@ -4337,11 +4447,12 @@ } }, "node_modules/@noble/curves": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz", - "integrity": "sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.0.tgz", + "integrity": "sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ==", + "license": "MIT", "dependencies": { - "@noble/hashes": "1.5.0" + "@noble/hashes": "1.7.0" }, "engines": { "node": "^14.21.3 || >=16" @@ -4351,9 +4462,10 @@ } }, "node_modules/@noble/curves/node_modules/@noble/hashes": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", - "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz", + "integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==", + "license": "MIT", "engines": { "node": "^14.21.3 || >=16" }, @@ -7340,6 +7452,30 @@ "node-int64": "^0.4.0" } }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/buffer-compare": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-compare/-/buffer-compare-1.1.1.tgz", @@ -11175,6 +11311,26 @@ "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", diff --git a/package.json b/package.json index f4e7f2c5a..86915722b 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "@apollo/server": "^4.11.0", "@as-integrations/next": "^3.1.0", "@auth/prisma-adapter": "^2.7.0", + "@cashu/cashu-ts": "^2.1.0", "@graphql-tools/schema": "^10.0.6", "@lightninglabs/lnc-web": "^0.3.2-alpha", "@noble/curves": "^1.6.0", diff --git a/pages/_app.js b/pages/_app.js index 9c540d557..38b8a7c8a 100644 --- a/pages/_app.js +++ b/pages/_app.js @@ -23,6 +23,7 @@ import { HasNewNotesProvider } from '@/components/use-has-new-notes' import { WebLnProvider } from '@/wallets/webln/client' import { AccountProvider } from '@/components/account' import { WalletsProvider } from '@/wallets/index' +import { CashuProvider } from '@/wallets/cashu/client' const PWAPrompt = dynamic(() => import('react-ios-pwa-prompt'), { ssr: false }) @@ -117,26 +118,28 @@ export default function MyApp ({ Component, pageProps: { ...props } }) { - - - - - - - - - - - {!router?.query?.disablePrompt && } - - - - - - - - - + + + + + + + + + + + + {!router?.query?.disablePrompt && } + + + + + + + + + + diff --git a/pages/wallets/[wallet].js b/pages/wallets/[wallet].js index ff5830a6d..2bced2b5b 100644 --- a/pages/wallets/[wallet].js +++ b/pages/wallets/[wallet].js @@ -13,7 +13,7 @@ import { canReceive, canSend, isConfigured } from '@/wallets/common' import { SSR } from '@/lib/constants' import WalletButtonBar from '@/components/wallet-buttonbar' import { useWalletConfigurator } from '@/wallets/config' -import { useCallback, useMemo } from 'react' +import { Fragment, useCallback, useMemo } from 'react' import { useMe } from '@/components/me' import validateWallet from '@/wallets/validate' import { ValidationError } from 'yup' @@ -101,6 +101,7 @@ export default function WalletSettings () { > {wallet && } + {wallet && } + { + wallet.def.components?.map((Component, i) => { + return () + }) + } + + ) +} diff --git a/pages/withdraw.js b/pages/withdraw.js index 1a39386e3..614b63932 100644 --- a/pages/withdraw.js +++ b/pages/withdraw.js @@ -149,7 +149,7 @@ export function InvWithdrawal () { ) } -function InvoiceScanner ({ fieldName }) { +export function InvoiceScanner ({ fieldName }) { const showModal = useShowModal() const [,, helpers] = useField(fieldName) const toaster = useToast() diff --git a/prisma/migrations/20250109022428_wallet_cashu/migration.sql b/prisma/migrations/20250109022428_wallet_cashu/migration.sql new file mode 100644 index 000000000..52cd6e9b5 --- /dev/null +++ b/prisma/migrations/20250109022428_wallet_cashu/migration.sql @@ -0,0 +1,23 @@ +-- AlterEnum +ALTER TYPE "WalletType" ADD VALUE 'CASHU'; + +-- CreateTable +CREATE TABLE "WalletCashu" ( + "id" SERIAL NOT NULL, + "walletId" INTEGER NOT NULL, + "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "mintUrl" TEXT NOT NULL, + + CONSTRAINT "WalletCashu_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "WalletCashu_walletId_key" ON "WalletCashu"("walletId"); + +-- AddForeignKey +ALTER TABLE "WalletCashu" ADD CONSTRAINT "WalletCashu_walletId_fkey" FOREIGN KEY ("walletId") REFERENCES "Wallet"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +CREATE TRIGGER wallet_cashu_as_jsonb +AFTER INSERT OR UPDATE ON "WalletCashu" +FOR EACH ROW EXECUTE PROCEDURE wallet_wallet_type_as_jsonb(); \ No newline at end of file diff --git a/prisma/schema.prisma b/prisma/schema.prisma index dcdb3b938..923acd493 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -193,6 +193,7 @@ enum WalletType { BLINK LNC WEBLN + CASHU } model Wallet { @@ -220,6 +221,7 @@ model Wallet { walletNWC WalletNWC? walletPhoenixd WalletPhoenixd? walletBlink WalletBlink? + walletCashu WalletCashu? vaultEntries VaultEntry[] @relation("VaultEntries") withdrawals Withdrawl[] @@ -329,6 +331,15 @@ model WalletPhoenixd { secondaryPassword String? } +model WalletCashu { + id Int @id @default(autoincrement()) + walletId Int @unique + wallet Wallet @relation(fields: [walletId], references: [id], onDelete: Cascade) + createdAt DateTime @default(now()) @map("created_at") + updatedAt DateTime @default(now()) @updatedAt @map("updated_at") + mintUrl String +} + model Mute { muterId Int mutedId Int diff --git a/public/wallets/cashu-dark.png b/public/wallets/cashu-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..c36680148695de02528dcb71b69baf734b824109 GIT binary patch literal 86076 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
bpBH!$YTN*T1*yhubK4OUUER`n}JqjxR@F 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

F`CCyj*ngCGEMrC?KL_@VKPWxtPkcGt0R%bP-bG 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 z�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 GuZRbSuaQ^z*rDe5d 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�_ffs6(xw77B7x*Fb`JDf0HJ`q6~0Sxqq`;B95 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 literal 0 HcmV?d00001 diff --git a/wallets/cashu/client.js b/wallets/cashu/client.js new file mode 100644 index 000000000..0c5822dcc --- /dev/null +++ b/wallets/cashu/client.js @@ -0,0 +1,49 @@ +import { CashuMint, CashuWallet } from '@cashu/cashu-ts' +import dynamic from 'next/dynamic' +import { Mutex } from 'async-mutex' + +const mutex = new Mutex() +const Balance = dynamic(() => import('@/wallets/cashu/components/balance')) +const Deposit = dynamic(() => import('@/wallets/cashu/components/deposit')) +const Withdraw = dynamic(() => import('@/wallets/cashu/components/withdraw')) +const CashuProvider = dynamic(() => import('@/wallets/cashu/components/context').then(mod => mod.CashuProvider)) + +export * from '@/wallets/cashu/index' + +export async function testSendPayment ({ mintUrl }, { logger, signal }) { + const mint = new CashuMint(mintUrl) + const wallet = new CashuWallet(mint) + try { + await wallet.loadMint() + } catch (err) { + throw new Error('failed to load mint info: ' + err.message) + } + const info = await mint.getInfo() + logger.info(`connected to ${info.name} running ${info.version}`) +} + +export async function sendPayment (bolt11, config, { cashu: { proofs, setProofs }, logger, signal }) { + const { mintUrl } = config + const mint = new CashuMint(mintUrl) + const wallet = new CashuWallet(mint) + await wallet.loadMint() + + // run this in a mutex such that multiple in-flight payments + // don't overwrite each other's call to store the new set of proofs + return mutex.runExclusive(async () => { + const quote = await wallet.createMeltQuote(bolt11) + + const amountToSend = quote.amount + quote.fee_reserve + const { keep, send } = await wallet.send(amountToSend, proofs.current, { includeFees: true }) + const meltProof = await wallet.meltProofs(quote, send) + + const newProofs = [...keep, ...meltProof.change] + await setProofs(newProofs) + + return meltProof.quote.payment_preimage + }) +} + +export const components = [Balance, Deposit, Withdraw] + +export { CashuProvider } diff --git a/wallets/cashu/components/balance.js b/wallets/cashu/components/balance.js new file mode 100644 index 000000000..963fcedac --- /dev/null +++ b/wallets/cashu/components/balance.js @@ -0,0 +1,11 @@ +import { numWithUnits } from '@/lib/format' +import { useCashuBalance } from '@/wallets/cashu/components/context' + +export default function Balance (wallet, { showModal }) { + const balance = useCashuBalance() + return ( +

+ ) +} diff --git a/wallets/cashu/components/context.js b/wallets/cashu/components/context.js new file mode 100644 index 000000000..a954ef47e --- /dev/null +++ b/wallets/cashu/components/context.js @@ -0,0 +1,52 @@ +import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react' +import useIndexedDB, { getDbName } from '@/components/use-indexeddb' +import { useMe } from '@/components/me' + +function useCashuDb () { + const { me } = useMe() + const idbConfig = useMemo(() => ({ dbName: getDbName(me?.id, 'cashu'), storeName: 'cashu', options: {} }), [me?.id]) + return useIndexedDB(idbConfig) +} + +const CashuContext = createContext({}) + +export function CashuProvider ({ children }) { + const { get, set } = useCashuDb() + const proofs = useRef([]) + const [balance, setBalance] = useState(0) + + useEffect(() => { + (async () => { + const initialProofs = await get('proofs') ?? [] + proofs.current = initialProofs + setBalance(initialProofs.reduce((acc, proof) => acc + proof.amount, 0)) + })() + }, []) + + const setProofs = useCallback(async (newProofs) => { + proofs.current = newProofs + await set('proofs', newProofs) + setBalance(newProofs.reduce((acc, proof) => acc + proof.amount, 0)) + }, [set]) + + const addProofs = useCallback(async (newProofs) => { + await setProofs([...proofs.current, ...newProofs]) + }, [setProofs]) + + const value = useMemo(() => ({ balance, proofs, setProofs, addProofs }), [balance, setProofs, addProofs]) + return ( + + {children} + + ) +} + +export function useCashuBalance () { + const { balance } = useContext(CashuContext) + return balance +} + +export function useCashuProofs () { + const { proofs, addProofs, setProofs } = useContext(CashuContext) + return { proofs, addProofs, setProofs } +} diff --git a/wallets/cashu/components/deposit.js b/wallets/cashu/components/deposit.js new file mode 100644 index 000000000..03a2813b9 --- /dev/null +++ b/wallets/cashu/components/deposit.js @@ -0,0 +1,66 @@ +import { useState, useCallback, useEffect } from 'react' +import { useShowModal } from '@/components/modal' +import { CashuMint, CashuWallet } from '@cashu/cashu-ts' +import { mintQuoteSchema } from '@/lib/validate' +import { Button, InputGroup } from 'react-bootstrap' + +import dynamic from 'next/dynamic' +import { useWalletLogger } from '@/wallets/logger' +import { numWithUnits } from '@/lib/format' +const Form = dynamic(() => import('@/components/form').then(mod => mod.Form)) +const Input = dynamic(() => import('@/components/form').then(mod => mod.Input)) +const SubmitButton = dynamic(() => import('@/components/form').then(mod => mod.SubmitButton)) +const CashuQr = dynamic(() => import('@/wallets/cashu/components/qr'), { ssr: false }) + +export default function Deposit ({ wallet }) { + const logger = useWalletLogger(wallet) + const showModal = useShowModal() + const { mintUrl } = wallet.config + const [mint] = useState(new CashuMint(mintUrl)) + const [cashuWallet] = useState(new CashuWallet(mint)) + + useEffect(() => { + cashuWallet.loadMint() + }, [cashuWallet]) + + const onSubmit = useCallback(async ({ amount }) => { + const mintQuote = await cashuWallet.createMintQuote(amount) + logger.info(`created mint invoice for ${numWithUnits(amount, { abbreviate: false })}`, { quote: mintQuote.quote, request: mintQuote.request }) + showModal(onClose => { + return ( + + ) + }) + }, [logger, cashuWallet]) + + const onClick = () => showModal(onClose => { + return ( +
+ sats} + /> +
+ + confirm + +
+
+ ) + }) + + return ( + + ) +} diff --git a/wallets/cashu/components/qr.js b/wallets/cashu/components/qr.js new file mode 100644 index 000000000..ce92c8668 --- /dev/null +++ b/wallets/cashu/components/qr.js @@ -0,0 +1,47 @@ +import { useEffect, useState } from 'react' +import { useWalletLogger } from '@/wallets/logger' +import { numWithUnits } from '@/lib/format' +import { CompactLongCountdown } from '@/components/countdown' +import Qr from '@/components/qr' +import { useCashuProofs } from '@/wallets/cashu/components/context' + +export default function CashuQr ({ wallet, cashu, mintQuote, amount, onClose }) { + const logger = useWalletLogger(wallet) + const [paid, setPaid] = useState(false) + const { addProofs } = useCashuProofs() + + const amt = numWithUnits(amount, { abbreviate: false }) + const expiresAt = new Date(mintQuote.expiry * 1000).toISOString() + + useEffect(() => { + const interval = setInterval(async () => { + const { paid } = await cashu.checkMintQuote(mintQuote.quote) + setPaid(paid) + if (paid) { + const newProofs = await cashu.mintProofs(amount, mintQuote.quote) + await addProofs(newProofs) + logger.ok(`minted ${amt} of tokens`, { quote: mintQuote.quote, request: mintQuote.request }) + clearInterval(interval) + onClose() + } + }, 1000) + return () => clearInterval(interval) + }, [mintQuote.id, addProofs, logger]) + + let statusVariant = 'pending' + let status = + + if (paid) { + statusVariant = 'confirmed' + status = <>{amt} received + } + + return ( + + ) +} diff --git a/wallets/cashu/components/withdraw.js b/wallets/cashu/components/withdraw.js new file mode 100644 index 000000000..99c610f79 --- /dev/null +++ b/wallets/cashu/components/withdraw.js @@ -0,0 +1,97 @@ +import { Form, Input, SubmitButton } from '@/components/form' +import { useMe } from '@/components/me' +import { useShowModal } from '@/components/modal' +import { withdrawlSchema } from '@/lib/validate' +import { InvoiceScanner } from '@/pages/withdraw' +import { useWalletLogger } from '@/wallets/logger' +import { CashuMint, CashuWallet } from '@cashu/cashu-ts' +import { useCallback, useState } from 'react' +import { Button, InputGroup } from 'react-bootstrap' +import { useCashuProofs } from './context' +import { numWithUnits } from '@/lib/format' +import { useToast } from '@/components/toast' + +export default function Withdraw ({ wallet }) { + const logger = useWalletLogger(wallet) + const showModal = useShowModal() + const { mintUrl } = wallet.config + const [mint] = useState(new CashuMint(mintUrl)) + const [cashu] = useState(new CashuWallet(mint)) + const { me } = useMe() + const maxFeeDefault = me?.privates?.withdrawMaxFeeDefault + const { proofs, setProofs } = useCashuProofs() + const toaster = useToast() + + const onSubmit = useCallback(async ({ invoice, maxFee, onClose }) => { + let meltQuote + try { + await cashu.loadMint() + + meltQuote = await cashu.createMeltQuote(invoice) + if (maxFee < meltQuote.fee_reserve) { + throw new Error(`max fee must be at least ${numWithUnits(meltQuote.fee_reserve, { abbreviate: false })}`) + } + const amt = numWithUnits(meltQuote.amount, { abbreviate: false }) + logger.info(`created melt invoice for ${amt}`, { + quote: meltQuote.quote, + fee_reserve: numWithUnits(meltQuote.fee_reserve, { abbreviate: false }), + max_fee: numWithUnits(maxFee, { abbreviate: false }) + }) + + const amountToSend = meltQuote.amount + maxFee + const { keep, send } = await cashu.send(amountToSend, proofs.current, { includeFees: true }) + const meltProof = await cashu.meltProofs(meltQuote, send) + + const fees = maxFee - meltProof.change.reduce((acc, change) => acc + change.amount, 0) + logger.ok(`melted ${amt} of tokens`, { quote: meltQuote.quote, fee: numWithUnits(fees, { abbreviate: false }) }) + + const newProofs = [...keep, ...meltProof.change] + await setProofs(newProofs) + + onClose() + return meltProof.quote.payment_preimage + } catch (err) { + logger.error('withdrawal failed: ' + err.message, meltQuote) + toaster.danger('withdrawal failed') + } + }, [logger, cashu, setProofs, toaster]) + + // TODO: also support withdrawing to lightning address + const onClick = () => showModal(onClose => { + return ( +
{ + await onSubmit({ invoice, maxFee, onClose }) + }} + > + } + /> + sats} + /> +
+ withdraw +
+
+ ) + }) + + return ( + + ) +} diff --git a/wallets/cashu/index.js b/wallets/cashu/index.js new file mode 100644 index 000000000..0beeaafb6 --- /dev/null +++ b/wallets/cashu/index.js @@ -0,0 +1,24 @@ +import { string } from 'yup' + +export const name = 'cashu' +export const walletType = 'CASHU' +export const walletField = 'walletCashu' + +export const fields = [ + { + name: 'mintUrl', + label: 'mint url', + clientOnly: true, + type: 'text', + // TODO: add mint suggestions + validate: process.env.NODE_ENV === 'development' + ? string().url().required('required').trim() + : string().https().required('required').trim() + } +] + +export const card = { + title: 'Cashu', + subtitle: 'use [Cashu](https://cashu.space) for payments', + image: { src: '/wallets/cashu.png' } +} diff --git a/wallets/client.js b/wallets/client.js index 8bd44698f..897d13e40 100644 --- a/wallets/client.js +++ b/wallets/client.js @@ -7,5 +7,6 @@ import * as lnd from '@/wallets/lnd/client' import * as webln from '@/wallets/webln/client' import * as blink from '@/wallets/blink/client' import * as phoenixd from '@/wallets/phoenixd/client' +import * as cashu from '@/wallets/cashu/client' -export default [nwc, lnbits, lnc, lnAddr, cln, lnd, webln, blink, phoenixd] +export default [nwc, lnbits, lnc, lnAddr, cln, lnd, webln, blink, phoenixd, cashu] diff --git a/wallets/payment.js b/wallets/payment.js index 043d57f89..6d07b8b06 100644 --- a/wallets/payment.js +++ b/wallets/payment.js @@ -10,6 +10,7 @@ import { import { canSend } from './common' import { useWalletLoggerFactory } from './logger' import { timeoutSignal, withTimeout } from '@/lib/time' +import { useCashuProofs } from '@/wallets/cashu/components/context' export function useWalletPayment () { const wallets = useSendWallets() @@ -140,6 +141,9 @@ function invoiceController (inv, isInvoice) { } function useSendPayment () { + // TODO: refactor this in a generic way to provide specific wallet context + const { proofs, setProofs } = useCashuProofs() + return useCallback(async (wallet, logger, invoice) => { if (!wallet.config.enabled) { throw new WalletNotEnabledError(wallet.def.name) @@ -156,7 +160,11 @@ function useSendPayment () { const preimage = await withTimeout( wallet.def.sendPayment(bolt11, wallet.config, { logger, - signal: timeoutSignal(WALLET_SEND_PAYMENT_TIMEOUT_MS) + signal: timeoutSignal(WALLET_SEND_PAYMENT_TIMEOUT_MS), + cashu: { + proofs, + setProofs + } }), WALLET_SEND_PAYMENT_TIMEOUT_MS) logger.ok(`↗ payment sent: ${formatSats(satsRequested)}`, { bolt11, preimage }) @@ -165,5 +173,5 @@ function useSendPayment () { const message = err.message || err.toString?.() throw new WalletSenderError(wallet.def.name, invoice, message) } - }, []) + }, [proofs]) }