Ver código fonte

远程控制是否使用 moralis

DevYK 2 anos atrás
pai
commit
85a53277b8

+ 38 - 0
model/db/collect_coins_db.js

@@ -83,6 +83,43 @@ async function query_collect_hash(hash) {
     })
 }
 
+
+
+/**
+ * 查询归集的hash
+ */
+ async function query_collect_hash_list() {
+    var sql = 'select * from collect_coins_manage WHERE gas_trx_hash!=?'
+    var param = ['']
+    // sql = 'select * from collect_coins_manage'
+    // param=[]
+    return new Promise((resolve) => {
+        mysql.getMySqlInstance().getConnection(function (err, connection) {
+            if (err) {
+                logger.error('query_collect_hash_list', err)
+                logger.error('query_collect_hash_list', sql)
+                resolve(null);
+                return;
+            }
+            connection.query(
+                sql, param,
+                function selectCb(error, results) {
+                    if (error) {
+                        logger.error('query_collect_hash_list', error, sql, param)
+                        resolve(null);
+                        return;
+                    }
+                    logger.log('query_collect_hash_list ret=', error, results);
+                    //用完当前连接需要释放,归还给连接池
+                    connection.release();
+                    resolve(results
+                    );
+                }
+            );
+        })
+    })
+}
+
 /**
  * 创建一个归集任务
  * @param {*} opts 
@@ -224,4 +261,5 @@ module.exports = {
     update_collect_coins_task,
     query_collect_total_fee,
     query_collect_hash,
+    query_collect_hash_list,
 }

+ 38 - 0
model/db/remote_config_db.js

@@ -41,6 +41,43 @@ async function isPause(type) {
     })
 }
 
+/**
+ * 是否使用 moralis sdk 
+ */
+async function isUseMoralisSDK() {
+    var sql = 'select * from remote_config WHERE type=? '
+    var par = ['use_moralis_sdk']
+    logger.info('isUseMoralisSDK', sql, par)
+    return new Promise((resolve) => {
+        mysql.getMySqlInstance().getConnection(function (err, connection) {
+            if (err) {
+                logger.error('isUseMoralisSDK', err)
+                logger.error('isUseMoralisSDK', sql)
+                resolve(null);
+                return;
+            }
+            connection.query(
+                sql, par,
+                function selectCb(error, results) {
+                    if (error) {
+                        logger.error('isUseMoralisSDK', error, sql, par)
+                        resolve(1);
+                        return;
+                    }
+                    logger.log('isUseMoralisSDK ret=', error, results);
+                    //用完当前连接需要释放,归还给连接池
+                    connection.release();
+                    if (results && Array.isArray(results) && results.length > 0) {
+                        resolve(results[0].pause == 0);
+                    } else {
+                        resolve(true);
+                    }
+                }
+            );
+        })
+    })
+}
+
 
 /**
  * 是否暂停归集动作
@@ -147,5 +184,6 @@ async function isBlackList(type, chain, address) {
 module.exports = {
     isPause,
     isBlackList,
+    isUseMoralisSDK,
     tokenCollectCoinsBlacklistExist,
 }

+ 12 - 8
model/moralis_sdk.js

@@ -248,14 +248,15 @@ async function getAccountBalances(options) {
         chain: options.chain
     }
     logger.log('getAccountBalances :', options, balance_opts)
+    var use_moralis_sdk = await remote_config_db.isUseMoralisSDK()
     do {
         try {
             if (options.type == 'native') {
                 // result = await Moralis.Web3API.account.getNativeBalance(balance_opts);
-                result = await getBalances(balance_opts, 'native', 0)
+                result = await getBalances(balance_opts, 'native', use_moralis_sdk)
                 logger.log('getNativeBalance=', result);
             } else {
-                result = await getBalances(balance_opts, 'token', 0)
+                result = await getBalances(balance_opts, 'token', use_moralis_sdk)
                 // result = await Moralis.Web3API.account.getTokenBalances(balance_opts);
                 logger.log('getTokenBalances=', result);
             }
@@ -1406,11 +1407,13 @@ async function getTokenTransfersV2(opt) {
         var tryCount = 4;
         var delay = 1000
         var interval = 500
+
+        var use_moralis_sdk = await remote_config_db.isUseMoralisSDK()
         do {
             //主流币
             try {
                 logger.log('getTokenTransfersV2 account getTransactions>>>>>', options);
-                t_1 = await getTransferRecord(options, 'native', 0);
+                t_1 = await getTransferRecord(options, 'native', use_moralis_sdk);
                 logger.log('getTokenTransfersV2 native ret -->>> t_1', t_1);
                 break
             } catch (error) {
@@ -1443,7 +1446,7 @@ async function getTokenTransfersV2(opt) {
                     options.to_block = '10000000000'
                 }
                 logger.log('getTokenTransfersV2 account getTokenTransfers>>>>>', options);
-                t_2 = await getTransferRecord(options, 'token', 0);
+                t_2 = await getTransferRecord(options, 'token', use_moralis_sdk);
                 logger.log('getTokenTransfersV2 token ret -->>> t_2', t_2);
                 break
             } catch (error) {
@@ -1501,7 +1504,7 @@ async function getTokenTransfersV2(opt) {
         do {
             try {
                 logger.log('getTokenTransfersV2 getTransaction options-->>> ', options);
-                const transaction = await getTransferRecord(options, 'hash', 0);
+                const transaction = await getTransferRecord(options, 'hash', use_moralis_sdk);
                 logger.log('getTokenTransfersV2 getTransaction ret-->>> ', transaction);
                 return transaction;
             } catch (error) {
@@ -1530,6 +1533,7 @@ function convertChain(chain) {
         case utils.CHAIN_NAME.bsc_testnet:
             return 'bsc'
     }
+    return chain
 }
 
 /**
@@ -1537,12 +1541,12 @@ function convertChain(chain) {
  * @param {} opts 
  */
 async function getTransferRecord(opts, type, use_moralis_sdk_) {
-    logger.info('getTransferRecord>>>>>>>>', opts, type)
+    logger.info('getTransferRecord>>>>>>>>', opts, type,use_moralis_sdk_)
     //是否使用 moralis sdk 进行查询
     var use_moralis_sdk = use_moralis_sdk_
     var temp_opts = { ...opts }
 
-    if (temp_opts.chain != utils.CHAIN_NAME.bsc_mainnet || temp_opts.chain != utils.CHAIN_NAME.bsc_testnet) {
+    if (temp_opts.chain != utils.CHAIN_NAME.bsc_mainnet && temp_opts.chain != utils.CHAIN_NAME.bsc_testnet) {
         use_moralis_sdk = 0;
     } else if (use_moralis_sdk == 0) {
         temp_opts.chain = convertChain(temp_opts.chain)
@@ -1639,7 +1643,7 @@ async function getBalances(opts, type, use_moralis_sdk_) {
     var use_moralis_sdk = use_moralis_sdk_
     var temp_opts = { ...opts }
 
-    if (temp_opts.chain != utils.CHAIN_NAME.bsc_mainnet || temp_opts.chain != utils.CHAIN_NAME.bsc_testnet) {
+    if (temp_opts.chain != utils.CHAIN_NAME.bsc_mainnet && temp_opts.chain != utils.CHAIN_NAME.bsc_testnet) {
         use_moralis_sdk = 0;
     } else if (use_moralis_sdk == 0) {
         temp_opts.chain = convertChain(temp_opts.chain)

+ 2 - 2
model/server_data_statistics.js

@@ -82,8 +82,8 @@ function getBscEnv() {
     switch (process.env.NODE_ENV) {
         case 'dev':
         case 'test':
-            // bsc_env = 'bsc_testnet'
-            bsc_env = 'bsc_mainnet'
+            bsc_env = 'bsc_testnet'
+            // bsc_env = 'bsc_mainnet'
             break
         case 'prd':
             bsc_env = 'bsc_mainnet'

+ 25 - 10
routes/sdk.js

@@ -100,6 +100,18 @@ async function getCollectCoinsHash(trx_hash) {
     return ' '
 }
 
+function isExistHash(trx_hash, arrs) {
+    if (arrs && Array.isArray(arrs) && arrs.length > 0) {
+        var ret = arrs.filter(element => {
+           return element.gas_trx_hash == trx_hash
+        })
+        logger.info('isExistHash',trx_hash,ret)
+        return ret == null ? false : ret.length > 0
+    } else {
+        return false
+    }
+}
+
 
 async function filterTransfers(result) {
     try {
@@ -107,12 +119,15 @@ async function filterTransfers(result) {
             var ret = JSON.parse(result)
             if (ret.code == 0 && ret.data.total > 0) {
                 var new_ret = []
+                var filter_list = await collect_coins_db.query_collect_hash_list()
                 for (let index = 0; index < ret.data.results.length; index++) {
                     const element = ret.data.results[index];
-                    if (element.trx_hash == await getCollectCoinsHash(element.trx_hash)) {
+                    // if (element.trx_hash == await getCollectCoinsHash(element.trx_hash)) {
+                    if (isExistHash(element.trx_hash,filter_list)) {
                         logger.debug('element.trx_hash == await getCollectCoinsHash(element.trx_hash)', element)
                     } else {
                         new_ret.push(element)
+                        logger.debug('element.trx_hash != await getCollectCoinsHash(element.trx_hash)', new_ret.length)
                     }
                 }
                 return {
@@ -404,7 +419,7 @@ async function withdraw_task() {
                         logger.error('withdraw_task exectransaction err', error.toString());
                     }
                     if (tryCount < 0) {
-                        logger.error('withdraw_task getTokenTransfersV2 警告交易未更新:', JSON.stringify(options));
+                        logger.error('withdraw_task getTokenTransfersV2 40s内 警告交易未更新:', JSON.stringify(options));
                     }
                 } while (tryCount >= 0);
             }
@@ -835,16 +850,16 @@ router.post('/getAllTokenWithdrawInfoLists', getAllTokenWithdrawInfoLists)
 // 定时任务 提币+归集
 withdraw_task();
 collect_conis_task();
-//czz 504 检查
-check_czz_withdraw_task();
-// bsc 监控
-bsc_log_monitoring()
+// //czz 504 检查
+// check_czz_withdraw_task();
+// // bsc 监控
+// bsc_log_monitoring()
 
 if (process.env.NODE_ENV == 'dev' || process.env.NODE_ENV == 'test') {
-    timer_transfer_bsc_task()
-    timer_transfer_czz_task()
-    timer_collect_conis_bsc_task()
-    timer_collect_conis_czz_task()
+    // timer_transfer_bsc_task()
+    // timer_transfer_czz_task()
+    // timer_collect_conis_bsc_task()
+    // timer_collect_conis_czz_task()
 }
 
 module.exports = router