From 83221f3550991a1ea8b22df06f283fb1e2d08cd3 Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Thu, 19 Feb 2026 16:49:40 +0100 Subject: [PATCH] Fix EUR Scrypt filter to include Olkypay bank account (#3224) * Fix EUR Scrypt filter to include Olkypay bank account The FinancialDataLog EUR Scrypt transaction filters only matched the Yapeal EUR IBAN, missing all Scrypt transactions on the Olkypay EUR account. This caused ~645k EUR in Scrypt transfers to be excluded from the pending balance calculation, resulting in a negative total balance. Add olkyBank.iban as an alternative match for both the sender (DEBIT) and receiver (CREDIT) Scrypt EUR bank transaction filters. * Refactor EUR Scrypt filters to use eurBankIbans array Extract EUR bank IBANs into a shared array for maintainability and update comments to reflect that both Yapeal and Olky accounts are included in the EUR Scrypt transaction filters. * Update remaining Scrypt pairing comments to reflect Bank --- src/subdomains/supporting/log/log-job.service.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/subdomains/supporting/log/log-job.service.ts b/src/subdomains/supporting/log/log-job.service.ts index 0c1d6e46d0..8f68d6f111 100644 --- a/src/subdomains/supporting/log/log-job.service.ts +++ b/src/subdomains/supporting/log/log-job.service.ts @@ -246,6 +246,7 @@ export class LogJobService { const olkyBank = await this.bankService.getBankInternal(IbanBankName.OLKY, 'EUR'); const yapealEurBank = await this.bankService.getBankInternal(IbanBankName.YAPEAL, 'EUR'); const yapealChfBank = await this.bankService.getBankInternal(IbanBankName.YAPEAL, 'CHF'); + const eurBankIbans = [yapealEurBank.iban, olkyBank.iban]; // pending balances const pendingOrders = await this.liquidityManagementPipelineService.getPendingTx(); @@ -384,9 +385,9 @@ export class LogJobService { eurReceiverExchangeTx, ); - // EUR: Yapeal -> Scrypt + // EUR: Bank -> Scrypt const eurSenderScryptBankTx = recentScryptBankTx.filter( - (b) => b.accountIban === yapealEurBank.iban && b.creditDebitIndicator === BankTxIndicator.DEBIT, + (b) => eurBankIbans.includes(b.accountIban) && b.creditDebitIndicator === BankTxIndicator.DEBIT, ); const eurReceiverScryptExchangeTx = recentScryptExchangeTx.filter( (k) => k.type === ExchangeTxType.DEPOSIT && k.status === 'ok' && k.currency === 'EUR', @@ -400,15 +401,15 @@ export class LogJobService { (b) => b.accountIban === yapealChfBank.iban && b.creditDebitIndicator === BankTxIndicator.CREDIT, ); - // EUR: Scrypt -> Yapeal + // EUR: Scrypt -> Bank const eurSenderScryptExchangeTx = recentScryptExchangeTx.filter( (k) => k.type === ExchangeTxType.WITHDRAWAL && k.status === 'ok' && k.currency === 'EUR', ); const eurReceiverScryptBankTx = recentScryptBankTx.filter( - (b) => b.accountIban === yapealEurBank.iban && b.creditDebitIndicator === BankTxIndicator.CREDIT, + (b) => eurBankIbans.includes(b.accountIban) && b.creditDebitIndicator === BankTxIndicator.CREDIT, ); - // sender and receiver data for Yapeal -> Scrypt + // sender and receiver data for Bank -> Scrypt const { sender: recentChfYapealScryptTx, receiver: recentChfBankTxScrypt } = this.filterSenderPendingList( chfSenderScryptBankTx, chfReceiverScryptExchangeTx, @@ -418,7 +419,7 @@ export class LogJobService { eurReceiverScryptExchangeTx, ); - // sender and receiver data for Scrypt -> Yapeal + // sender and receiver data for Scrypt -> Bank const { sender: recentChfScryptYapealTx, receiver: recentChfScryptBankTx } = this.filterSenderPendingList( chfSenderScryptExchangeTx, chfReceiverScryptBankTx,