From 25b8c194b4a718d9c4d98c3c98a70c1a6606f63d Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Sat, 28 Feb 2026 09:46:41 +0100 Subject: [PATCH 1/6] feat: add Raiffeisen as full bank asset (EUR + CHF) Add RAIFFEISEN to Blockchain enum, wire up blockchainToBankName mapping, extend pendingInputAmount, create Raiffeisen/EUR and Raiffeisen/CHF seed assets (IDs 410/411), and fix bank entries 12/13 from misnamed "Maerki Baumann" to "Raiffeisen" with correct asset references. --- migration/seed/asset.csv | 2 ++ migration/seed/bank.csv | 4 ++-- src/integration/blockchain/shared/enums/blockchain.enum.ts | 1 + src/integration/blockchain/shared/util/blockchain.util.ts | 2 ++ src/integration/exchange/services/__tests__/exchange.test.ts | 1 + src/integration/exchange/services/binance.service.ts | 1 + src/integration/exchange/services/bitstamp.service.ts | 1 + src/integration/exchange/services/kraken.service.ts | 1 + src/integration/exchange/services/kucoin.service.ts | 1 + src/integration/exchange/services/mexc.service.ts | 1 + src/integration/exchange/services/xt.service.ts | 1 + .../core/referral/reward/services/ref-reward.service.ts | 1 + .../supporting/bank-tx/bank-tx/entities/bank-tx.entity.ts | 1 + src/subdomains/supporting/bank/bank/bank.service.ts | 2 ++ 14 files changed, 18 insertions(+), 2 deletions(-) diff --git a/migration/seed/asset.csv b/migration/seed/asset.csv index f7b2f3168e..9cf78446bf 100644 --- a/migration/seed/asset.csv +++ b/migration/seed/asset.csv @@ -225,4 +225,6 @@ id,name,type,buyable,sellable,chainId,sellCommand,dexName,category,blockchain,un 113,BTC,Coin,TRUE,TRUE,,,BTC,Public,Bitcoin,Bitcoin/BTC,Bitcoin,FALSE,,87278.97353,FALSE,11,68819.65463,FALSE,FALSE,FALSE,FALSE,BTC,,TRUE,0,0,74099.1069,TRUE 112,BNB,Coin,TRUE,TRUE,0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c,,BNB,Public,BinanceSmartChain,BinanceSmartChain/BNB,Binance Coin,FALSE,601,833.1583387,FALSE,36,656.9471065,FALSE,FALSE,FALSE,FALSE,Other,18,FALSE,0,0,707.34435,TRUE 111,ETH,Coin,TRUE,TRUE,0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2,,ETH,Public,Ethereum,Ethereum/ETH,Ether,FALSE,1,2922.079246,FALSE,6,2304.065646,FALSE,FALSE,FALSE,FALSE,Other,18,TRUE,0,0,2480.82045,TRUE +410,EUR,Custody,FALSE,FALSE,,,EUR,Private,Raiffeisen,Raiffeisen/EUR,,FALSE,,1.17786809,FALSE,39,0.9287514723,FALSE,FALSE,FALSE,FALSE,EUR,,FALSE,0,0,1,TRUE +411,CHF,Custody,FALSE,FALSE,,,CHF,Private,Raiffeisen,Raiffeisen/CHF,,FALSE,,1.268227427,FALSE,37,1,FALSE,FALSE,FALSE,FALSE,CHF,,FALSE,0,0,1.076714309,TRUE 409,FIRO,Coin,TRUE,TRUE,,,FIRO,Public,Firo,Firo/FIRO,,FALSE,,1.5,FALSE,,1.35,FALSE,FALSE,FALSE,FALSE,Other,8,FALSE,0,0,1.4,TRUE diff --git a/migration/seed/bank.csv b/migration/seed/bank.csv index 64aa9f4d28..ebb3da38b2 100644 --- a/migration/seed/bank.csv +++ b/migration/seed/bank.csv @@ -2,6 +2,6 @@ id,updated,created,name,iban,bic,currency,receive,send,sctInst,amlEnabled,assetI 16,2025-12-05 14:27:39,2025-12-05 14:27:39,Yapeal,CH6783019DFXEUR000002,YAPECHZ2,EUR,TRUE,TRUE,FALSE,TRUE,405 15,2025-12-05 14:27:39,2025-12-05 14:27:39,Yapeal,CH5283019DFXCHF000001,YAPECHZ2,CHF,TRUE,TRUE,FALSE,TRUE,404 14,2025-09-10 23:30:56,2025-09-10 23:30:56,Maerki Baumann,LU116060002000005040,OLKILUL1,EUR,FALSE,FALSE,FALSE,TRUE, -13,2025-09-10 23:30:07,2025-09-10 23:30:07,Maerki Baumann,CH4880808002186504370,RAIFCH22,CHF,FALSE,FALSE,FALSE,TRUE, -12,2025-09-10 23:30:07,2025-09-10 23:30:07,Maerki Baumann,CH7780808002608614092,RAIFCH22,EUR,FALSE,FALSE,FALSE,TRUE, +13,2025-09-10 23:30:07,2025-09-10 23:30:07,Raiffeisen,CH4880808002186504370,RAIFCH22,CHF,FALSE,FALSE,FALSE,TRUE,411 +12,2025-09-10 23:30:07,2025-09-10 23:30:07,Raiffeisen,CH7780808002608614092,RAIFCH22,EUR,FALSE,FALSE,FALSE,TRUE,410 8,2025-09-10 23:30:06,2025-09-10 23:30:06,Maerki Baumann,CH3808573109968202333,MAEBCHZZ,USD,FALSE,FALSE,FALSE,TRUE, \ No newline at end of file diff --git a/src/integration/blockchain/shared/enums/blockchain.enum.ts b/src/integration/blockchain/shared/enums/blockchain.enum.ts index a164357234..f7f5db3060 100644 --- a/src/integration/blockchain/shared/enums/blockchain.enum.ts +++ b/src/integration/blockchain/shared/enums/blockchain.enum.ts @@ -41,4 +41,5 @@ export enum Blockchain { CHECKOUT = 'Checkout', SUMIXX = 'Sumixx', YAPEAL = 'Yapeal', + RAIFFEISEN = 'Raiffeisen', } diff --git a/src/integration/blockchain/shared/util/blockchain.util.ts b/src/integration/blockchain/shared/util/blockchain.util.ts index e5ab5482e3..2e537f7578 100644 --- a/src/integration/blockchain/shared/util/blockchain.util.ts +++ b/src/integration/blockchain/shared/util/blockchain.util.ts @@ -101,6 +101,7 @@ const BlockchainExplorerUrls: { [b in Blockchain]: string } = { [Blockchain.CHECKOUT]: undefined, [Blockchain.SUMIXX]: undefined, [Blockchain.YAPEAL]: undefined, + [Blockchain.RAIFFEISEN]: undefined, }; const TxPaths: { [b in Blockchain]: string } = { @@ -140,6 +141,7 @@ const TxPaths: { [b in Blockchain]: string } = { [Blockchain.CHECKOUT]: undefined, [Blockchain.SUMIXX]: undefined, [Blockchain.YAPEAL]: undefined, + [Blockchain.RAIFFEISEN]: undefined, }; function assetPaths(asset: Asset): string | undefined { diff --git a/src/integration/exchange/services/__tests__/exchange.test.ts b/src/integration/exchange/services/__tests__/exchange.test.ts index 4be13c59aa..d51dc99c4f 100644 --- a/src/integration/exchange/services/__tests__/exchange.test.ts +++ b/src/integration/exchange/services/__tests__/exchange.test.ts @@ -49,5 +49,6 @@ export class TestExchangeService extends ExchangeService { Checkout: undefined, Sumixx: undefined, Yapeal: undefined, + Raiffeisen: undefined, }; } diff --git a/src/integration/exchange/services/binance.service.ts b/src/integration/exchange/services/binance.service.ts index 53adfe7946..197f5fc989 100644 --- a/src/integration/exchange/services/binance.service.ts +++ b/src/integration/exchange/services/binance.service.ts @@ -46,6 +46,7 @@ export class BinanceService extends ExchangeService { Checkout: undefined, Sumixx: undefined, Yapeal: undefined, + Raiffeisen: undefined, }; constructor() { diff --git a/src/integration/exchange/services/bitstamp.service.ts b/src/integration/exchange/services/bitstamp.service.ts index f5d393a772..c35e2c79df 100644 --- a/src/integration/exchange/services/bitstamp.service.ts +++ b/src/integration/exchange/services/bitstamp.service.ts @@ -46,6 +46,7 @@ export class BitstampService extends ExchangeService { Checkout: undefined, Sumixx: undefined, Yapeal: undefined, + Raiffeisen: undefined, }; constructor() { diff --git a/src/integration/exchange/services/kraken.service.ts b/src/integration/exchange/services/kraken.service.ts index d8c57139f0..c7126cde29 100644 --- a/src/integration/exchange/services/kraken.service.ts +++ b/src/integration/exchange/services/kraken.service.ts @@ -53,6 +53,7 @@ export class KrakenService extends ExchangeService { Checkout: undefined, Sumixx: undefined, Yapeal: undefined, + Raiffeisen: undefined, }; @Inject() private readonly settingService: SettingService; diff --git a/src/integration/exchange/services/kucoin.service.ts b/src/integration/exchange/services/kucoin.service.ts index 1191f72943..fa2e83c291 100644 --- a/src/integration/exchange/services/kucoin.service.ts +++ b/src/integration/exchange/services/kucoin.service.ts @@ -46,6 +46,7 @@ export class KucoinService extends ExchangeService { Checkout: undefined, Sumixx: undefined, Yapeal: undefined, + Raiffeisen: undefined, }; constructor() { diff --git a/src/integration/exchange/services/mexc.service.ts b/src/integration/exchange/services/mexc.service.ts index d4a7e19a38..f9defdd579 100644 --- a/src/integration/exchange/services/mexc.service.ts +++ b/src/integration/exchange/services/mexc.service.ts @@ -62,6 +62,7 @@ export class MexcService extends ExchangeService { Checkout: undefined, Sumixx: undefined, Yapeal: undefined, + Raiffeisen: undefined, }; constructor(private readonly http: HttpService) { diff --git a/src/integration/exchange/services/xt.service.ts b/src/integration/exchange/services/xt.service.ts index 3a83c805a7..f54f168a12 100644 --- a/src/integration/exchange/services/xt.service.ts +++ b/src/integration/exchange/services/xt.service.ts @@ -46,6 +46,7 @@ export class XtService extends ExchangeService { Checkout: undefined, Sumixx: undefined, Yapeal: undefined, + Raiffeisen: undefined, }; constructor() { diff --git a/src/subdomains/core/referral/reward/services/ref-reward.service.ts b/src/subdomains/core/referral/reward/services/ref-reward.service.ts index 9a9be6fcad..0b2fb30f11 100644 --- a/src/subdomains/core/referral/reward/services/ref-reward.service.ts +++ b/src/subdomains/core/referral/reward/services/ref-reward.service.ts @@ -58,6 +58,7 @@ const PayoutLimits: { [k in Blockchain]: number } = { [Blockchain.CHECKOUT]: undefined, [Blockchain.SUMIXX]: undefined, [Blockchain.YAPEAL]: undefined, + [Blockchain.RAIFFEISEN]: undefined, }; @Injectable() diff --git a/src/subdomains/supporting/bank-tx/bank-tx/entities/bank-tx.entity.ts b/src/subdomains/supporting/bank-tx/bank-tx/entities/bank-tx.entity.ts index e2a31ac705..739e77621a 100644 --- a/src/subdomains/supporting/bank-tx/bank-tx/entities/bank-tx.entity.ts +++ b/src/subdomains/supporting/bank-tx/bank-tx/entities/bank-tx.entity.ts @@ -371,6 +371,7 @@ export class BankTx extends IEntity { case Blockchain.MAERKI_BAUMANN: case Blockchain.OLKYPAY: case Blockchain.YAPEAL: + case Blockchain.RAIFFEISEN: return BankService.isBankMatching(asset, this.accountIban) ? this.amount : 0; default: diff --git a/src/subdomains/supporting/bank/bank/bank.service.ts b/src/subdomains/supporting/bank/bank/bank.service.ts index 47460d8bca..3503619682 100644 --- a/src/subdomains/supporting/bank/bank/bank.service.ts +++ b/src/subdomains/supporting/bank/bank/bank.service.ts @@ -116,6 +116,8 @@ export class BankService implements OnModuleInit { return IbanBankName.OLKY; case Blockchain.YAPEAL: return IbanBankName.YAPEAL; + case Blockchain.RAIFFEISEN: + return IbanBankName.RAIFFEISEN; default: return undefined; } From 414b951e830fd9089cc14400b3cf02d9dd5593ce Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Sat, 28 Feb 2026 09:50:37 +0100 Subject: [PATCH 2/6] fix: correct bank 14 name from "Maerki Baumann" to "Olkypay" BIC OLKILUL1 and IBAN LU11... belong to Olkypay, not Maerki Baumann. Link to existing Olkypay/EUR asset (ID 269). --- migration/seed/bank.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/migration/seed/bank.csv b/migration/seed/bank.csv index ebb3da38b2..575500c3b3 100644 --- a/migration/seed/bank.csv +++ b/migration/seed/bank.csv @@ -1,7 +1,7 @@ id,updated,created,name,iban,bic,currency,receive,send,sctInst,amlEnabled,assetId 16,2025-12-05 14:27:39,2025-12-05 14:27:39,Yapeal,CH6783019DFXEUR000002,YAPECHZ2,EUR,TRUE,TRUE,FALSE,TRUE,405 15,2025-12-05 14:27:39,2025-12-05 14:27:39,Yapeal,CH5283019DFXCHF000001,YAPECHZ2,CHF,TRUE,TRUE,FALSE,TRUE,404 -14,2025-09-10 23:30:56,2025-09-10 23:30:56,Maerki Baumann,LU116060002000005040,OLKILUL1,EUR,FALSE,FALSE,FALSE,TRUE, +14,2025-09-10 23:30:56,2025-09-10 23:30:56,Olkypay,LU116060002000005040,OLKILUL1,EUR,FALSE,FALSE,FALSE,TRUE,269 13,2025-09-10 23:30:07,2025-09-10 23:30:07,Raiffeisen,CH4880808002186504370,RAIFCH22,CHF,FALSE,FALSE,FALSE,TRUE,411 12,2025-09-10 23:30:07,2025-09-10 23:30:07,Raiffeisen,CH7780808002608614092,RAIFCH22,EUR,FALSE,FALSE,FALSE,TRUE,410 8,2025-09-10 23:30:06,2025-09-10 23:30:06,Maerki Baumann,CH3808573109968202333,MAEBCHZZ,USD,FALSE,FALSE,FALSE,TRUE, \ No newline at end of file From 38231fd347a8d9df8a677640df8f4aae72c2bedd Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Sat, 28 Feb 2026 10:34:33 +0100 Subject: [PATCH 3/6] fix: add Raiffeisen to BuyCrypto.pendingInputAmount switch Raiffeisen bank transactions were not matched in the pending input amount calculation, causing buyCrypto inputs via Raiffeisen to be invisible in the FinancialDataLog. This led to a double-negative balance impact when outputAmount was set (buyCryptoPass liability added without corresponding input offset). Affected: 3 transactions totaling 416,500 EUR since Feb 11. --- .../core/buy-crypto/process/entities/buy-crypto.entity.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/subdomains/core/buy-crypto/process/entities/buy-crypto.entity.ts b/src/subdomains/core/buy-crypto/process/entities/buy-crypto.entity.ts index 0990d473ed..40a1ac1434 100644 --- a/src/subdomains/core/buy-crypto/process/entities/buy-crypto.entity.ts +++ b/src/subdomains/core/buy-crypto/process/entities/buy-crypto.entity.ts @@ -729,6 +729,7 @@ export class BuyCrypto extends IEntity { case Blockchain.MAERKI_BAUMANN: case Blockchain.OLKYPAY: case Blockchain.YAPEAL: + case Blockchain.RAIFFEISEN: return BankService.isBankMatching(asset, this.bankTx?.accountIban) ? this.inputReferenceAmount : 0; case Blockchain.CHECKOUT: From 33990e54f193d77c791cc0af09e791e652dcd97b Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Sat, 28 Feb 2026 19:31:47 +0100 Subject: [PATCH 4/6] fix: add Raiffeisen to BankTxRepeat/BankTxReturn + migration + fix seed IDs - Add Blockchain.RAIFFEISEN to pendingInputAmount in BankTxRepeat and BankTxReturn entities (same issue as BuyCrypto) - Add migration to create Raiffeisen EUR/CHF assets (IDs 420/421) and link them to bank records 12/13 - Fix seed CSVs: asset IDs 410/411 were already taken (Citrea), use 420/421 instead --- .../1772303358000-AddRaiffeisenBankAssets.js | 37 +++++++++++++++++++ migration/seed/asset.csv | 4 +- migration/seed/bank.csv | 4 +- .../bank-tx-repeat/bank-tx-repeat.entity.ts | 1 + .../bank-tx-return/bank-tx-return.entity.ts | 1 + 5 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 migration/1772303358000-AddRaiffeisenBankAssets.js diff --git a/migration/1772303358000-AddRaiffeisenBankAssets.js b/migration/1772303358000-AddRaiffeisenBankAssets.js new file mode 100644 index 0000000000..4cedf844d4 --- /dev/null +++ b/migration/1772303358000-AddRaiffeisenBankAssets.js @@ -0,0 +1,37 @@ +const { MigrationInterface, QueryRunner } = require("typeorm"); + +module.exports = class AddRaiffeisenBankAssets1772303358000 { + name = 'AddRaiffeisenBankAssets1772303358000' + + async up(queryRunner) { + // Insert Raiffeisen EUR asset + await queryRunner.query(` + SET IDENTITY_INSERT "dbo"."asset" ON; + INSERT INTO "dbo"."asset" ("id", "name", "type", "buyable", "sellable", "dexName", "category", "blockchain", "uniqueName", "comingSoon", "ikna", "cardBuyable", "cardSellable", "instantBuyable", "instantSellable", "financialType", "paymentEnabled", "amlRuleFrom", "amlRuleTo", "refundEnabled", "refEnabled") + VALUES (420, 'EUR', 'Custody', 0, 0, 'EUR', 'Private', 'Raiffeisen', 'Raiffeisen/EUR', 0, 0, 0, 0, 0, 0, 'EUR', 0, 0, 0, 1, 0); + SET IDENTITY_INSERT "dbo"."asset" OFF; + `); + + // Insert Raiffeisen CHF asset + await queryRunner.query(` + SET IDENTITY_INSERT "dbo"."asset" ON; + INSERT INTO "dbo"."asset" ("id", "name", "type", "buyable", "sellable", "dexName", "category", "blockchain", "uniqueName", "comingSoon", "ikna", "cardBuyable", "cardSellable", "instantBuyable", "instantSellable", "financialType", "paymentEnabled", "amlRuleFrom", "amlRuleTo", "refundEnabled", "refEnabled") + VALUES (421, 'CHF', 'Custody', 0, 0, 'CHF', 'Private', 'Raiffeisen', 'Raiffeisen/CHF', 0, 0, 0, 0, 0, 0, 'CHF', 0, 0, 0, 1, 0); + SET IDENTITY_INSERT "dbo"."asset" OFF; + `); + + // Link bank 12 (Raiffeisen EUR) to asset 420 + await queryRunner.query(`UPDATE "dbo"."bank" SET "assetId" = 420 WHERE "id" = 12`); + + // Link bank 13 (Raiffeisen CHF) to asset 421 + await queryRunner.query(`UPDATE "dbo"."bank" SET "assetId" = 421 WHERE "id" = 13`); + } + + async down(queryRunner) { + // Unlink banks + await queryRunner.query(`UPDATE "dbo"."bank" SET "assetId" = NULL WHERE "id" IN (12, 13)`); + + // Remove Raiffeisen assets + await queryRunner.query(`DELETE FROM "dbo"."asset" WHERE "id" IN (420, 421)`); + } +} diff --git a/migration/seed/asset.csv b/migration/seed/asset.csv index 9cf78446bf..324b28f21c 100644 --- a/migration/seed/asset.csv +++ b/migration/seed/asset.csv @@ -225,6 +225,6 @@ id,name,type,buyable,sellable,chainId,sellCommand,dexName,category,blockchain,un 113,BTC,Coin,TRUE,TRUE,,,BTC,Public,Bitcoin,Bitcoin/BTC,Bitcoin,FALSE,,87278.97353,FALSE,11,68819.65463,FALSE,FALSE,FALSE,FALSE,BTC,,TRUE,0,0,74099.1069,TRUE 112,BNB,Coin,TRUE,TRUE,0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c,,BNB,Public,BinanceSmartChain,BinanceSmartChain/BNB,Binance Coin,FALSE,601,833.1583387,FALSE,36,656.9471065,FALSE,FALSE,FALSE,FALSE,Other,18,FALSE,0,0,707.34435,TRUE 111,ETH,Coin,TRUE,TRUE,0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2,,ETH,Public,Ethereum,Ethereum/ETH,Ether,FALSE,1,2922.079246,FALSE,6,2304.065646,FALSE,FALSE,FALSE,FALSE,Other,18,TRUE,0,0,2480.82045,TRUE -410,EUR,Custody,FALSE,FALSE,,,EUR,Private,Raiffeisen,Raiffeisen/EUR,,FALSE,,1.17786809,FALSE,39,0.9287514723,FALSE,FALSE,FALSE,FALSE,EUR,,FALSE,0,0,1,TRUE -411,CHF,Custody,FALSE,FALSE,,,CHF,Private,Raiffeisen,Raiffeisen/CHF,,FALSE,,1.268227427,FALSE,37,1,FALSE,FALSE,FALSE,FALSE,CHF,,FALSE,0,0,1.076714309,TRUE +420,EUR,Custody,FALSE,FALSE,,,EUR,Private,Raiffeisen,Raiffeisen/EUR,,FALSE,,1.17786809,FALSE,39,0.9287514723,FALSE,FALSE,FALSE,FALSE,EUR,,FALSE,0,0,1,TRUE +421,CHF,Custody,FALSE,FALSE,,,CHF,Private,Raiffeisen,Raiffeisen/CHF,,FALSE,,1.268227427,FALSE,37,1,FALSE,FALSE,FALSE,FALSE,CHF,,FALSE,0,0,1.076714309,TRUE 409,FIRO,Coin,TRUE,TRUE,,,FIRO,Public,Firo,Firo/FIRO,,FALSE,,1.5,FALSE,,1.35,FALSE,FALSE,FALSE,FALSE,Other,8,FALSE,0,0,1.4,TRUE diff --git a/migration/seed/bank.csv b/migration/seed/bank.csv index 575500c3b3..20eea4e17e 100644 --- a/migration/seed/bank.csv +++ b/migration/seed/bank.csv @@ -2,6 +2,6 @@ id,updated,created,name,iban,bic,currency,receive,send,sctInst,amlEnabled,assetI 16,2025-12-05 14:27:39,2025-12-05 14:27:39,Yapeal,CH6783019DFXEUR000002,YAPECHZ2,EUR,TRUE,TRUE,FALSE,TRUE,405 15,2025-12-05 14:27:39,2025-12-05 14:27:39,Yapeal,CH5283019DFXCHF000001,YAPECHZ2,CHF,TRUE,TRUE,FALSE,TRUE,404 14,2025-09-10 23:30:56,2025-09-10 23:30:56,Olkypay,LU116060002000005040,OLKILUL1,EUR,FALSE,FALSE,FALSE,TRUE,269 -13,2025-09-10 23:30:07,2025-09-10 23:30:07,Raiffeisen,CH4880808002186504370,RAIFCH22,CHF,FALSE,FALSE,FALSE,TRUE,411 -12,2025-09-10 23:30:07,2025-09-10 23:30:07,Raiffeisen,CH7780808002608614092,RAIFCH22,EUR,FALSE,FALSE,FALSE,TRUE,410 +13,2025-09-10 23:30:07,2025-09-10 23:30:07,Raiffeisen,CH4880808002186504370,RAIFCH22,CHF,FALSE,FALSE,FALSE,TRUE,421 +12,2025-09-10 23:30:07,2025-09-10 23:30:07,Raiffeisen,CH7780808002608614092,RAIFCH22,EUR,FALSE,FALSE,FALSE,TRUE,420 8,2025-09-10 23:30:06,2025-09-10 23:30:06,Maerki Baumann,CH3808573109968202333,MAEBCHZZ,USD,FALSE,FALSE,FALSE,TRUE, \ No newline at end of file diff --git a/src/subdomains/supporting/bank-tx/bank-tx-repeat/bank-tx-repeat.entity.ts b/src/subdomains/supporting/bank-tx/bank-tx-repeat/bank-tx-repeat.entity.ts index db60eb8bbd..9430bf0283 100644 --- a/src/subdomains/supporting/bank-tx/bank-tx-repeat/bank-tx-repeat.entity.ts +++ b/src/subdomains/supporting/bank-tx/bank-tx-repeat/bank-tx-repeat.entity.ts @@ -73,6 +73,7 @@ export class BankTxRepeat extends IEntity { case Blockchain.MAERKI_BAUMANN: case Blockchain.OLKYPAY: case Blockchain.YAPEAL: + case Blockchain.RAIFFEISEN: return BankService.isBankMatching(asset, this.bankTx.accountIban) ? this.bankTx.amount : 0; default: diff --git a/src/subdomains/supporting/bank-tx/bank-tx-return/bank-tx-return.entity.ts b/src/subdomains/supporting/bank-tx/bank-tx-return/bank-tx-return.entity.ts index b771d1705c..eb9b1317ab 100644 --- a/src/subdomains/supporting/bank-tx/bank-tx-return/bank-tx-return.entity.ts +++ b/src/subdomains/supporting/bank-tx/bank-tx-return/bank-tx-return.entity.ts @@ -152,6 +152,7 @@ export class BankTxReturn extends IEntity { case Blockchain.MAERKI_BAUMANN: case Blockchain.OLKYPAY: case Blockchain.YAPEAL: + case Blockchain.RAIFFEISEN: return BankService.isBankMatching(asset, this.bankTx.accountIban) ? this.bankTx.amount : 0; default: From 32b8a343f182189092f0138af21c6931ca8ba4f7 Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Sat, 28 Feb 2026 19:45:33 +0100 Subject: [PATCH 5/6] chore: remove defunct bank 14 from seed Bank 14 does not exist in the production database and is a duplicate of bank 4 (same Olkypay IBAN LU116060002000005040). --- migration/seed/bank.csv | 1 - 1 file changed, 1 deletion(-) diff --git a/migration/seed/bank.csv b/migration/seed/bank.csv index 20eea4e17e..8496102035 100644 --- a/migration/seed/bank.csv +++ b/migration/seed/bank.csv @@ -1,7 +1,6 @@ id,updated,created,name,iban,bic,currency,receive,send,sctInst,amlEnabled,assetId 16,2025-12-05 14:27:39,2025-12-05 14:27:39,Yapeal,CH6783019DFXEUR000002,YAPECHZ2,EUR,TRUE,TRUE,FALSE,TRUE,405 15,2025-12-05 14:27:39,2025-12-05 14:27:39,Yapeal,CH5283019DFXCHF000001,YAPECHZ2,CHF,TRUE,TRUE,FALSE,TRUE,404 -14,2025-09-10 23:30:56,2025-09-10 23:30:56,Olkypay,LU116060002000005040,OLKILUL1,EUR,FALSE,FALSE,FALSE,TRUE,269 13,2025-09-10 23:30:07,2025-09-10 23:30:07,Raiffeisen,CH4880808002186504370,RAIFCH22,CHF,FALSE,FALSE,FALSE,TRUE,421 12,2025-09-10 23:30:07,2025-09-10 23:30:07,Raiffeisen,CH7780808002608614092,RAIFCH22,EUR,FALSE,FALSE,FALSE,TRUE,420 8,2025-09-10 23:30:06,2025-09-10 23:30:06,Maerki Baumann,CH3808573109968202333,MAEBCHZZ,USD,FALSE,FALSE,FALSE,TRUE, \ No newline at end of file From 9f15a6d529772216acbba07090a505da6aea806f Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Wed, 4 Mar 2026 20:38:14 +0100 Subject: [PATCH 6/6] fix: remove unused typeorm import from Raiffeisen migration --- .../1772303358000-AddRaiffeisenBankAssets.js | 38 +++++++++---------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/migration/1772303358000-AddRaiffeisenBankAssets.js b/migration/1772303358000-AddRaiffeisenBankAssets.js index 4cedf844d4..d2d529496c 100644 --- a/migration/1772303358000-AddRaiffeisenBankAssets.js +++ b/migration/1772303358000-AddRaiffeisenBankAssets.js @@ -1,37 +1,35 @@ -const { MigrationInterface, QueryRunner } = require("typeorm"); - module.exports = class AddRaiffeisenBankAssets1772303358000 { - name = 'AddRaiffeisenBankAssets1772303358000' + name = 'AddRaiffeisenBankAssets1772303358000'; - async up(queryRunner) { - // Insert Raiffeisen EUR asset - await queryRunner.query(` + async up(queryRunner) { + // Insert Raiffeisen EUR asset + await queryRunner.query(` SET IDENTITY_INSERT "dbo"."asset" ON; INSERT INTO "dbo"."asset" ("id", "name", "type", "buyable", "sellable", "dexName", "category", "blockchain", "uniqueName", "comingSoon", "ikna", "cardBuyable", "cardSellable", "instantBuyable", "instantSellable", "financialType", "paymentEnabled", "amlRuleFrom", "amlRuleTo", "refundEnabled", "refEnabled") VALUES (420, 'EUR', 'Custody', 0, 0, 'EUR', 'Private', 'Raiffeisen', 'Raiffeisen/EUR', 0, 0, 0, 0, 0, 0, 'EUR', 0, 0, 0, 1, 0); SET IDENTITY_INSERT "dbo"."asset" OFF; `); - // Insert Raiffeisen CHF asset - await queryRunner.query(` + // Insert Raiffeisen CHF asset + await queryRunner.query(` SET IDENTITY_INSERT "dbo"."asset" ON; INSERT INTO "dbo"."asset" ("id", "name", "type", "buyable", "sellable", "dexName", "category", "blockchain", "uniqueName", "comingSoon", "ikna", "cardBuyable", "cardSellable", "instantBuyable", "instantSellable", "financialType", "paymentEnabled", "amlRuleFrom", "amlRuleTo", "refundEnabled", "refEnabled") VALUES (421, 'CHF', 'Custody', 0, 0, 'CHF', 'Private', 'Raiffeisen', 'Raiffeisen/CHF', 0, 0, 0, 0, 0, 0, 'CHF', 0, 0, 0, 1, 0); SET IDENTITY_INSERT "dbo"."asset" OFF; `); - // Link bank 12 (Raiffeisen EUR) to asset 420 - await queryRunner.query(`UPDATE "dbo"."bank" SET "assetId" = 420 WHERE "id" = 12`); + // Link bank 12 (Raiffeisen EUR) to asset 420 + await queryRunner.query(`UPDATE "dbo"."bank" SET "assetId" = 420 WHERE "id" = 12`); - // Link bank 13 (Raiffeisen CHF) to asset 421 - await queryRunner.query(`UPDATE "dbo"."bank" SET "assetId" = 421 WHERE "id" = 13`); - } + // Link bank 13 (Raiffeisen CHF) to asset 421 + await queryRunner.query(`UPDATE "dbo"."bank" SET "assetId" = 421 WHERE "id" = 13`); + } - async down(queryRunner) { - // Unlink banks - await queryRunner.query(`UPDATE "dbo"."bank" SET "assetId" = NULL WHERE "id" IN (12, 13)`); + async down(queryRunner) { + // Unlink banks + await queryRunner.query(`UPDATE "dbo"."bank" SET "assetId" = NULL WHERE "id" IN (12, 13)`); - // Remove Raiffeisen assets - await queryRunner.query(`DELETE FROM "dbo"."asset" WHERE "id" IN (420, 421)`); - } -} + // Remove Raiffeisen assets + await queryRunner.query(`DELETE FROM "dbo"."asset" WHERE "id" IN (420, 421)`); + } +};