Browse Source

增加归集和提币黑名单列表

DevYK 2 years ago
parent
commit
279dffbf36
4 changed files with 78 additions and 15 deletions
  1. 46 5
      model/db/remote_config_db.js
  2. 28 2
      routes/sdk.js
  3. 2 0
      test/db_test.js
  4. 2 8
      test/sample.js

+ 46 - 5
model/db/remote_config_db.js

@@ -23,8 +23,8 @@ async function isPause(type) {
                 sql, par,
                 function selectCb(error, results) {
                     if (error) {
-                        logger.error('isPause', error, create_withdraw_sql, create_withdraw_params)
-                        resolve(null);
+                        logger.error('isPause', error, sql, par)
+                        resolve(1);
                         return;
                     }
                     logger.log('isPause ret=', error, results);
@@ -43,9 +43,50 @@ async function isPause(type) {
 
 /**
  * 过滤某些地址归集
+ * collect_coins
  */
-async function getFilterLists(type) {
-
+async function isBlackList(type, chain, address) {
+    var sql = 'select * from blacklist WHERE type=? AND address=? AND status=1 AND chain=? '
+    switch (chain) {
+        case 'bsc_testnet':
+        case 'bsc_mainnet':
+            chain = 'bsc'
+            break
+        case 'czz':
+        case 'CZZ':
+            chain = 'czz'
+            break
+    }
+    var par = [type, address, chain]
+    logger.info('isBlackList', sql, par)
+    return new Promise((resolve) => {
+        mysql.getMySqlInstance().getConnection(function (err, connection) {
+            if (err) {
+                logger.error('isBlackList', err)
+                logger.error('isBlackList', sql)
+                resolve(null);
+                return;
+            }
+            connection.query(
+                sql, par,
+                function selectCb(error, results) {
+                    if (error) {
+                        logger.error('isBlackList', error, sql, par)
+                        resolve(null);
+                        return;
+                    }
+                    logger.log('isBlackList ret=', error, results);
+                    //用完当前连接需要释放,归还给连接池
+                    connection.release();
+                    if (results && Array.isArray(results) && results.length > 0) {
+                        resolve(1);
+                    } else {
+                        resolve(0);
+                    }
+                }
+            );
+        })
+    })
 }
 
 
@@ -55,5 +96,5 @@ async function getFilterLists(type) {
 
 module.exports = {
     isPause,
-    getFilterLists,
+    isBlackList,
 }

+ 28 - 2
routes/sdk.js

@@ -220,6 +220,8 @@ async function collect_conis_task() {
         }
 
 
+
+
         var start_time = utils.getTimestamp()
         var exec_obj = await redis.redis_pop(reids_token_config.COLLECT_CONIS_QUEUE_KEY)
         if (!exec_obj) {
@@ -230,6 +232,18 @@ async function collect_conis_task() {
         try {
             exec_obj = JSON.parse(exec_obj)
             logger.log('collect_conis_task exec item>>>>', exec_obj);
+
+            try {
+                //是否是黑名单
+                var isBlackList = await remote_config_db.isBlackList('collect_coins', exec_obj.chain, exec_obj.address)
+                if (isBlackList) {
+                    logger.error('collect_conis_task isBlackList', JSON.stringify(exec_obj));
+                    continue
+                }
+            } catch (error) {
+                logger.error('collect_conis_task isBlackList error', JSON.stringify(exec_obj));
+            }
+
             //开始收集用户地址里面的币到归集地址
             var ret = await moralis.collectCoins(exec_obj)
             logger.log('collect_conis_task ret =', exec_obj, ret)
@@ -277,10 +291,22 @@ async function withdraw_task() {
         try {
             exec_obj = JSON.parse(exec_obj)
         } catch (error) {
-            logger.error('item parse error', error);
-            break
+            logger.error('withdraw_task item parse error', error);
+            continue
+        }
+
+        try {
+            //是否是黑名单
+            var isBlackList = await remote_config_db.isBlackList('withdraw', exec_obj.chain, exec_obj.receiver)
+            if (isBlackList) {
+                logger.error('collect_conis_task isBlackList', JSON.stringify(exec_obj));
+                continue
+            }
+        } catch (error) {
+            logger.error('collect_conis_task isBlackList error', JSON.stringify(exec_obj));
         }
 
+
         var temp_obj = { ...exec_obj }
         if (utils.getTimestamp() - last_time < 60000) {
             //有可能上一个区块还未更新,这里做一个尝试限制

+ 2 - 0
test/db_test.js

@@ -59,6 +59,8 @@ router.post('/queryUserPrivateKey', async (ctx) => {
 async function query() {
     console.log('collect_coins', await remote_config_db.isPause('collect_coins'))
     console.log('withdraw', await remote_config_db.isPause('withdraw'))
+
+    console.log('isBlackList', await remote_config_db.isBlackList('collect_coins', 'bsc', '0x003D33E1eD599a92aaacF9a710E10fC62143B9e0'))
 }
 
 query()

+ 2 - 8
test/sample.js

@@ -1,11 +1,7 @@
 var CryptoJS = require("crypto-js");
 
 function decryptPrivityKey(message) {
-
-    // var encrypted = 'Zc4v3uJgPY+BVg/IrDLA4aIk9ko/UrgjAtBTLqymdMAvmqdp1GttRjkBgNNNTyxA+3ThbIGlM0INeeHGicYVbLea4ymkty8gd30rZXQ4yYQ='; //python is base64 ECB
-    // var key = '0IPmaec1o9FQCqGN'//key used in Python
-    // var iv = 'Zh4A7bOY2ksp9oIn'
-    var encrypted = message; //python is base64 ECB
+    var encrypted = message; 
     var key = process.env.DENET_CRYPT_KEY 
     var iv = process.env.DENET_CRYPT_IV
     if (!key || !iv) {
@@ -13,8 +9,6 @@ function decryptPrivityKey(message) {
         return null;
     }
     console.log('encrypted=', encrypted);
-    console.log('decryptPrivityKey key= iv=', key, iv);
-
     key = CryptoJS.enc.Utf8.parse(key);
     iv = CryptoJS.enc.Utf8.parse(iv)
     var decrypted = CryptoJS.AES.decrypt(encrypted
@@ -27,6 +21,6 @@ function decryptPrivityKey(message) {
     return de_pk
 }
 
-// decryptPrivityKey('bnUvrSKmU3l7zONP+hIH1BOMhNVfIBUgEziWb2tGiUgn63FZVdzXC9E1DT+Mx3B+nqrzUAqd60I/8rLobYYl+0TSR3Ri1o0iX/hcxqs/0yg=')
+decryptPrivityKey('bnUvrSKmU3l7zONP+hIH1BOMhNVfIBUgEziWb2tGiUgn63FZVdzXC9E1DT+Mx3B+nqrzUAqd60I/8rLobYYl+0TSR3Ri1o0iX/hcxqs/0yg=')