From 830b8132d0a2f122285a3bb85454bff6eadb900e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Salgado?= Date: Mon, 28 Jun 2021 18:47:56 +0100 Subject: [PATCH] fix: remove createdByOperator from blacklist type fix: check for reused address --- lib/cash-in/cash-in-tx.js | 16 +++++++++------- lib/new-admin/graphql/types/blacklist.type.js | 1 - 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/cash-in/cash-in-tx.js b/lib/cash-in/cash-in-tx.js index ce6e8445..55962757 100644 --- a/lib/cash-in/cash-in-tx.js +++ b/lib/cash-in/cash-in-tx.js @@ -34,14 +34,14 @@ function post (machineTx, pi) { let blacklisted = false let addressReuse = false - return Promise.all([settingsLoader.loadLatest(), checkForBlacklisted(updatedTx), getAddresses()]) - .then(([{ config }, blacklistItems, addresses]) => { + return Promise.all([settingsLoader.loadLatest(), checkForBlacklisted(updatedTx), doesTxReuseAddress(updatedTx)]) + .then(([{ config }, blacklistItems, isReusedAddress]) => { const rejectAddressReuse = configManager.getCompliance(config).rejectAddressReuse if (_.some(it => it.address === updatedTx.toAddress)(blacklistItems)) { blacklisted = true notifier.notifyIfActive('compliance', 'blacklistNotify', r.tx, false) - } else if (_.some(it => it === updatedTx.toAddress)(addresses) && rejectAddressReuse) { + } else if (isReusedAddress && rejectAddressReuse) { notifier.notifyIfActive('compliance', 'blacklistNotify', r.tx, true) addressReuse = true } @@ -139,10 +139,12 @@ function postProcess (r, pi, isBlacklisted, addressReuse) { }) } -function getAddresses () { - const sql = `SELECT DISTINCT to_address FROM cash_in_txs` - - return db.any(sql).then(res => res.map(it => it.to_address)) +function doesTxReuseAddress (tx) { + if (!tx.fiat || tx.fiat.isZero()) { + const sql = `SELECT EXISTS (SELECT DISTINCT to_address FROM cash_in_txs WHERE to_address = $1)` + return db.any(sql, [tx.toAddress]) + } + return Promise.resolve(false) } function monitorPending (settings) { diff --git a/lib/new-admin/graphql/types/blacklist.type.js b/lib/new-admin/graphql/types/blacklist.type.js index 08f2648f..3cd1bfa1 100644 --- a/lib/new-admin/graphql/types/blacklist.type.js +++ b/lib/new-admin/graphql/types/blacklist.type.js @@ -2,7 +2,6 @@ const { gql } = require('apollo-server-express') const typeDef = gql` type Blacklist { - createdByOperator: Boolean! cryptoCode: String! address: String! }