From c686ecc2aaf7bfc330e9e7ab902889b9494ad548 Mon Sep 17 00:00:00 2001 From: Cesar <26280794+csrapr@users.noreply.github.com> Date: Wed, 30 Dec 2020 17:58:21 +0000 Subject: [PATCH] Fix: adds created_by_operator constraint for duplicate checking --- lib/blacklist.js | 2 +- ...46970940-alter-blacklist-unique-constraint.js | 16 ++++++++++++++++ .../src/pages/Blacklist/BlacklistModal.js | 3 +++ 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 migrations/1609346970940-alter-blacklist-unique-constraint.js diff --git a/lib/blacklist.js b/lib/blacklist.js index 2459d8fb..5e59107c 100644 --- a/lib/blacklist.js +++ b/lib/blacklist.js @@ -14,7 +14,7 @@ const getBlacklist = () => { // Delete row from blacklist table by crypto code and address const deleteFromBlacklist = (cryptoCode, address) => { return db.none( - 'delete from blacklist where crypto_code = $1 and address = $2;', + `DELETE FROM blacklist WHERE created_by_operator = 't' AND crypto_code = $1 AND address = $2`, [cryptoCode, address] ) } diff --git a/migrations/1609346970940-alter-blacklist-unique-constraint.js b/migrations/1609346970940-alter-blacklist-unique-constraint.js new file mode 100644 index 00000000..132eb123 --- /dev/null +++ b/migrations/1609346970940-alter-blacklist-unique-constraint.js @@ -0,0 +1,16 @@ +var db = require('./db') + +exports.up = function (next) { + var sql = [ + `ALTER TABLE blacklist DROP CONSTRAINT blacklist_crypto_code_address_key`, + `ALTER TABLE blacklist ADD CONSTRAINT blacklist_crypto_code_address_created_by_operator_key UNIQUE (crypto_code, address, created_by_operator)`, + `CREATE INDEX ON blacklist (created_by_operator)`, + `REINDEX TABLE blacklist` + ] + + db.multi(sql, next) +} + +exports.down = function (next) { + next() +} diff --git a/new-lamassu-admin/src/pages/Blacklist/BlacklistModal.js b/new-lamassu-admin/src/pages/Blacklist/BlacklistModal.js index 9a6858b2..55e0f6a6 100644 --- a/new-lamassu-admin/src/pages/Blacklist/BlacklistModal.js +++ b/new-lamassu-admin/src/pages/Blacklist/BlacklistModal.js @@ -20,6 +20,9 @@ const BlackListModal = ({ }) => { const classes = useStyles() const handleAddToBlacklist = address => { + if (selectedCoin.code === 'BCH' && !address.startsWith('bitcoincash:')) { + address = 'bitcoincash:' + address + } addToBlacklist(selectedCoin.code, address) } const placeholderAddress = {