From 85e97d94d69d5155b2b0e5bdc1f46e4f16e0f064 Mon Sep 17 00:00:00 2001 From: pory-gone Date: Thu, 30 Oct 2025 20:51:33 +0100 Subject: [PATCH 1/3] remove lifpay wallet --- .../migration.sql | 43 +++++++++++++++++++ prisma/schema.prisma | 1 - wallets/lib/wallets.json | 6 --- 3 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 prisma/migrations/20251030191911_migrate_lifpay_to_lnaddr/migration.sql diff --git a/prisma/migrations/20251030191911_migrate_lifpay_to_lnaddr/migration.sql b/prisma/migrations/20251030191911_migrate_lifpay_to_lnaddr/migration.sql new file mode 100644 index 0000000000..1226437524 --- /dev/null +++ b/prisma/migrations/20251030191911_migrate_lifpay_to_lnaddr/migration.sql @@ -0,0 +1,43 @@ +/* + Warnings: + + - The values [LIFPAY] on the enum `WalletName` will be removed. If these variants are still used in the database, this will fail. + +*/ + +-- Data migration: move LIFPAY users to Custom Lightning Address (LN_ADDR) +WITH lifpay_with_addr AS ( + SELECT DISTINCT w.id + FROM "Wallet" w + JOIN "WalletProtocol" p + ON p."walletId" = w.id + AND p."send" = false + AND p."name" = 'LN_ADDR' + JOIN "WalletRecvLightningAddress" la + ON la."protocolId" = p.id + WHERE w."templateName" = 'LIFPAY' + AND la."address" IS NOT NULL + AND btrim(la."address") <> '' +) +UPDATE "Wallet" w + SET "templateName" = 'LN_ADDR' + FROM lifpay_with_addr l + WHERE w.id = l.id; +DELETE FROM "Wallet" w + WHERE w."templateName" = 'LIFPAY'; +DELETE FROM "WalletTemplate" WHERE "name" = 'LIFPAY'; +ALTER TABLE "Wallet" DROP CONSTRAINT IF EXISTS "Wallet_templateName_fkey"; +BEGIN; +CREATE TYPE "WalletName_new" AS ENUM ('ALBY', 'BLINK', 'BLIXT', 'CASHU_ME', 'CLN', 'COINOS', 'FOUNTAIN', 'LNBITS', 'LND', 'MINIBITS', 'NPUB_CASH', 'PHOENIXD', 'PRIMAL', 'RIZFUL', 'SHOCKWALLET', 'SPEED', 'STRIKE', 'VOLTAGE', 'WALLET_OF_SATOSHI', 'ZBD', 'ZEUS', 'NWC', 'LN_ADDR', 'CASH_APP', 'BLITZ'); +ALTER TABLE "WalletTemplate" ALTER COLUMN "name" TYPE "WalletName_new" USING ("name"::text::"WalletName_new"); +ALTER TABLE "Wallet" ALTER COLUMN "templateName" TYPE "WalletName_new" USING ("templateName"::text::"WalletName_new"); +ALTER TYPE "WalletName" RENAME TO "WalletName_old"; +ALTER TYPE "WalletName_new" RENAME TO "WalletName"; +DROP TYPE "WalletName_old"; +COMMIT; +ALTER TABLE "Wallet" + ADD CONSTRAINT "Wallet_templateName_fkey" + FOREIGN KEY ("templateName") + REFERENCES "WalletTemplate"("name") + ON DELETE CASCADE + ON UPDATE CASCADE; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 88e141e023..bff7026986 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -1254,7 +1254,6 @@ enum WalletName { CLN COINOS FOUNTAIN - LIFPAY LNBITS LND MINIBITS diff --git a/wallets/lib/wallets.json b/wallets/lib/wallets.json index 1975a9d26b..8b14c72dc1 100644 --- a/wallets/lib/wallets.json +++ b/wallets/lib/wallets.json @@ -105,12 +105,6 @@ "image": "/wallets/fountain.png", "url": "https://fountain.fm/" }, - { - "name": "LIFPAY", - "displayName": "Lifpay", - "image": "/wallets/lifpay.png", - "url": "https://lifpay.me/" - }, { "name": "SHOCKWALLET", "displayName": "Shockwallet", From df6d4bf3397d2a3f3225571df0f76c809e91e4cc Mon Sep 17 00:00:00 2001 From: pory-gone Date: Fri, 31 Oct 2025 13:26:41 +0100 Subject: [PATCH 2/3] simpler implementation --- .../migration.sql | 21 +++++++++++++++++++ prisma/schema.prisma | 1 + 2 files changed, 22 insertions(+) create mode 100644 prisma/migrations/20251031121927_migrate_lifpay_to_lnaddr/migration.sql diff --git a/prisma/migrations/20251031121927_migrate_lifpay_to_lnaddr/migration.sql b/prisma/migrations/20251031121927_migrate_lifpay_to_lnaddr/migration.sql new file mode 100644 index 0000000000..dd480f3c9b --- /dev/null +++ b/prisma/migrations/20251031121927_migrate_lifpay_to_lnaddr/migration.sql @@ -0,0 +1,21 @@ +-- Migrate LIFPAY users with lightning address to Custom Lightning Address (LN_ADDR) +WITH lifpay_with_addr AS ( + SELECT DISTINCT w.id + FROM "Wallet" w + JOIN "WalletProtocol" p + ON p."walletId" = w.id + AND p."send" = false + AND p."name" = 'LN_ADDR' + JOIN "WalletRecvLightningAddress" la + ON la."protocolId" = p.id + WHERE w."templateName" = 'LIFPAY' + AND la."address" IS NOT NULL + AND btrim(la."address") <> '' +) +UPDATE "Wallet" w + SET "templateName" = 'LN_ADDR' + FROM lifpay_with_addr l + WHERE w.id = l.id; +DELETE FROM "Wallet" w + WHERE w."templateName" = 'LIFPAY'; +DELETE FROM "WalletTemplate" WHERE "name" = 'LIFPAY'; \ No newline at end of file diff --git a/prisma/schema.prisma b/prisma/schema.prisma index bff7026986..88e141e023 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -1254,6 +1254,7 @@ enum WalletName { CLN COINOS FOUNTAIN + LIFPAY LNBITS LND MINIBITS From 206c5c4c37e34e82d8c98621d3f74cb6878f6efe Mon Sep 17 00:00:00 2001 From: pory-gone Date: Fri, 31 Oct 2025 16:05:21 +0100 Subject: [PATCH 3/3] remove old migration file --- .../migration.sql | 43 ------------------- 1 file changed, 43 deletions(-) delete mode 100644 prisma/migrations/20251030191911_migrate_lifpay_to_lnaddr/migration.sql diff --git a/prisma/migrations/20251030191911_migrate_lifpay_to_lnaddr/migration.sql b/prisma/migrations/20251030191911_migrate_lifpay_to_lnaddr/migration.sql deleted file mode 100644 index 1226437524..0000000000 --- a/prisma/migrations/20251030191911_migrate_lifpay_to_lnaddr/migration.sql +++ /dev/null @@ -1,43 +0,0 @@ -/* - Warnings: - - - The values [LIFPAY] on the enum `WalletName` will be removed. If these variants are still used in the database, this will fail. - -*/ - --- Data migration: move LIFPAY users to Custom Lightning Address (LN_ADDR) -WITH lifpay_with_addr AS ( - SELECT DISTINCT w.id - FROM "Wallet" w - JOIN "WalletProtocol" p - ON p."walletId" = w.id - AND p."send" = false - AND p."name" = 'LN_ADDR' - JOIN "WalletRecvLightningAddress" la - ON la."protocolId" = p.id - WHERE w."templateName" = 'LIFPAY' - AND la."address" IS NOT NULL - AND btrim(la."address") <> '' -) -UPDATE "Wallet" w - SET "templateName" = 'LN_ADDR' - FROM lifpay_with_addr l - WHERE w.id = l.id; -DELETE FROM "Wallet" w - WHERE w."templateName" = 'LIFPAY'; -DELETE FROM "WalletTemplate" WHERE "name" = 'LIFPAY'; -ALTER TABLE "Wallet" DROP CONSTRAINT IF EXISTS "Wallet_templateName_fkey"; -BEGIN; -CREATE TYPE "WalletName_new" AS ENUM ('ALBY', 'BLINK', 'BLIXT', 'CASHU_ME', 'CLN', 'COINOS', 'FOUNTAIN', 'LNBITS', 'LND', 'MINIBITS', 'NPUB_CASH', 'PHOENIXD', 'PRIMAL', 'RIZFUL', 'SHOCKWALLET', 'SPEED', 'STRIKE', 'VOLTAGE', 'WALLET_OF_SATOSHI', 'ZBD', 'ZEUS', 'NWC', 'LN_ADDR', 'CASH_APP', 'BLITZ'); -ALTER TABLE "WalletTemplate" ALTER COLUMN "name" TYPE "WalletName_new" USING ("name"::text::"WalletName_new"); -ALTER TABLE "Wallet" ALTER COLUMN "templateName" TYPE "WalletName_new" USING ("templateName"::text::"WalletName_new"); -ALTER TYPE "WalletName" RENAME TO "WalletName_old"; -ALTER TYPE "WalletName_new" RENAME TO "WalletName"; -DROP TYPE "WalletName_old"; -COMMIT; -ALTER TABLE "Wallet" - ADD CONSTRAINT "Wallet_templateName_fkey" - FOREIGN KEY ("templateName") - REFERENCES "WalletTemplate"("name") - ON DELETE CASCADE - ON UPDATE CASCADE;