Explorar el Código

封装查询接口

DevYK hace 2 años
padre
commit
f63e93fae9
Se han modificado 2 ficheros con 72 adiciones y 14 borrados
  1. 63 7
      model/moralis_sdk.js
  2. 9 7
      routes/sdk.js

+ 63 - 7
model/moralis_sdk.js

@@ -232,10 +232,12 @@ async function getAccountBalances(options) {
     do {
     do {
         try {
         try {
             if (options.type == 'native') {
             if (options.type == 'native') {
-                result = await Moralis.Web3API.account.getNativeBalance(balance_opts);
+                // result = await Moralis.Web3API.account.getNativeBalance(balance_opts);
+                result = await getBalances(balance_opts,'native')
                 logger.log('getNativeBalance=', result);
                 logger.log('getNativeBalance=', result);
             } else {
             } else {
-                result = await Moralis.Web3API.account.getTokenBalances(balance_opts);
+                result = await getBalances(balance_opts,'token')
+                // result = await Moralis.Web3API.account.getTokenBalances(balance_opts);
                 logger.log('getTokenBalances=', result);
                 logger.log('getTokenBalances=', result);
             }
             }
             if (tryCount < 4) {
             if (tryCount < 4) {
@@ -471,10 +473,15 @@ async function updateNativeBalance(nativeBalance, obj) {
         temp.chain = utils.getChainName(temp.chain)
         temp.chain = utils.getChainName(temp.chain)
     }
     }
     console.log('updateNativeBalance after', temp, nativeBalance)
     console.log('updateNativeBalance after', temp, nativeBalance)
+    var balance_opts = {
+        address: temp.address,
+        chain: temp.chain
+    }
     try {
     try {
         do {
         do {
             //上面转账完 BNB 会减去,这里再获取一次
             //上面转账完 BNB 会减去,这里再获取一次
-            var native_ret = await Moralis.Web3API.account.getNativeBalance(temp);
+            // var native_ret = await Moralis.Web3API.account.getNativeBalance(temp);
+            var native_ret = await getBalances(balance_opts,'native');
             logger.log('更新余额 :', nativeBalance, native_ret, retryCount)
             logger.log('更新余额 :', nativeBalance, native_ret, retryCount)
             if (nativeBalance != native_ret.balance && BigInt(nativeBalance) < BigInt(native_ret.balance)) {
             if (nativeBalance != native_ret.balance && BigInt(nativeBalance) < BigInt(native_ret.balance)) {
                 return native_ret.balance;
                 return native_ret.balance;
@@ -1034,6 +1041,7 @@ async function getTokenTransfers(opt) {
             try {
             try {
                 logger.log('getTokenTransfers account getTransactions>>>>>', options);
                 logger.log('getTokenTransfers account getTransactions>>>>>', options);
                 t_1 = await Moralis.Web3API.account.getTransactions(options);
                 t_1 = await Moralis.Web3API.account.getTransactions(options);
+                // t_1 = await getTransferRecord(options, 'native');
                 logger.log('getTokenTransfers native ret -->>> t_1', t_1);
                 logger.log('getTokenTransfers native ret -->>> t_1', t_1);
                 setTransfersDataType('native', t_1.result)
                 setTransfersDataType('native', t_1.result)
                 break
                 break
@@ -1061,7 +1069,8 @@ async function getTokenTransfers(opt) {
                     options.to_block = '10000000000'
                     options.to_block = '10000000000'
                 }
                 }
                 logger.log('getTokenTransfers account getTokenTransfers>>>>>', options);
                 logger.log('getTokenTransfers account getTokenTransfers>>>>>', options);
-                t_2 = await Moralis.Web3API.account.getTokenTransfers(options);
+                // t_2 = await Moralis.Web3API.account.getTokenTransfers(options);
+                t_2 = await getTransferRecord(options, 'token');
                 logger.log('getTokenTransfers token ret -->>> t_2', t_2);
                 logger.log('getTokenTransfers token ret -->>> t_2', t_2);
                 setTransfersDataType('token', t_2.result)
                 setTransfersDataType('token', t_2.result)
                 break
                 break
@@ -1089,9 +1098,10 @@ async function getTokenTransfers(opt) {
             if (Array.isArray(arr1) && Array.isArray(arr)) {
             if (Array.isArray(arr1) && Array.isArray(arr)) {
                 let arr2 = arr.concat(arr1);
                 let arr2 = arr.concat(arr1);
                 t_1.result = arr2;
                 t_1.result = arr2;
-                logger.log('getTokenTransfers-->>> concat t_1', t_1);
-                if (t_1.total) {
+                logger.log('getTokenTransfers-->>>concat t_1', t_1,t_1.result.length);
+                if (t_1.total != null) {
                     t_1.total = t_1.result.length
                     t_1.total = t_1.result.length
+                    logger.log('getTokenTransfers-->>>concat total', t_1.total);
                 }
                 }
             }
             }
 
 
@@ -1113,7 +1123,8 @@ async function getTokenTransfers(opt) {
             try {
             try {
                 logger.log('transaction_hash getTransaction options-->>> ', options);
                 logger.log('transaction_hash getTransaction options-->>> ', options);
                 //native
                 //native
-                const transaction = await Moralis.Web3API.native.getTransaction(options);
+                // const transaction = await Moralis.Web3API.native.getTransaction(options);
+                const transaction = await getTransferRecord(options, 'hash');
                 var arr = [];
                 var arr = [];
                 if (transaction)
                 if (transaction)
                     arr.push(transaction)
                     arr.push(transaction)
@@ -1133,6 +1144,51 @@ async function getTokenTransfers(opt) {
     }
     }
 }
 }
 
 
+
+
+/**
+ * 获取交易记录 token,native 
+ * @param {} opts 
+ */
+async function getTransferRecord(opts, type) {
+    logger.info('getTransferRecord>>>>>>>>',opts,type)
+    //是否使用 moralis sdk 进行查询
+    var use_moralis_sdk = 1
+    var temp_opts = { ...opts }
+    if (use_moralis_sdk) {
+        if (type == 'native') {
+            return await Moralis.Web3API.account.getTransactions(temp_opts)
+        } else if (type == 'token') {
+            return await Moralis.Web3API.account.getTokenTransfers(temp_opts);
+        } else if (type == 'hash') {
+            return await Moralis.Web3API.native.getTransaction(temp_opts);
+        }
+    } else { //使用自建节点缓存 mysql 查询
+
+    }
+}
+
+/**
+ * 获取 token or native 余额
+ * @param {*} opts 
+ */
+async function getBalances(opts, type) {
+    logger.info('getBalances>>>>>>>>',opts,type)
+    //是否使用 moralis sdk 进行查询
+    var use_moralis_sdk = 1
+    var temp_opts = { ...opts }
+    if (use_moralis_sdk) {
+        if (type == 'native') {
+            return await Moralis.Web3API.account.getNativeBalance(temp_opts);
+        } else if (type == 'token') {
+            return await Moralis.Web3API.account.getTokenBalances(temp_opts);
+        }
+    } else {
+
+    }
+}
+
+
 module.exports = {
 module.exports = {
     transfer,
     transfer,
     getTokenTransfers,
     getTokenTransfers,

+ 9 - 7
routes/sdk.js

@@ -32,11 +32,7 @@ async function getTransfers(ctx) {
         obj.chain = 'bsc_mainnet'
         obj.chain = 'bsc_mainnet'
     var temp_obj = { ...obj }
     var temp_obj = { ...obj }
     var index = 0
     var index = 0
-    //提交归集任务
-    if (temp_obj.address) {
-        logger.log('pushCollectConisObj>>>', temp_obj.address)
-        redis.redis_push(reids_token_config.COLLECT_CONIS_QUEUE_KEY, JSON.stringify(temp_obj))
-    }
+
     // for (let index = 0; index < 30; index++) {
     // for (let index = 0; index < 30; index++) {
     await moralis.getTokenTransfers(obj).then((result) => {
     await moralis.getTokenTransfers(obj).then((result) => {
         logger.log('getTransfers response', 'index=' + index, result)
         logger.log('getTransfers response', 'index=' + index, result)
@@ -62,7 +58,13 @@ async function getTransfers(ctx) {
                         redis.redis_set(reids_token_config.LAST_TOTAL_TOKEN_FREE, (parseInt(tr.gas_price) * parseInt(account_config.TOKEN_GAS_LIMIT)).toString());
                         redis.redis_set(reids_token_config.LAST_TOTAL_TOKEN_FREE, (parseInt(tr.gas_price) * parseInt(account_config.TOKEN_GAS_LIMIT)).toString());
                     }
                     }
 
 
-
+                    if (json_obj.data.total > 0) {
+                        //提交归集任务
+                        if (temp_obj.address) {
+                            logger.log('pushCollectConisObj>>>', temp_obj.address)
+                            redis.redis_push(reids_token_config.COLLECT_CONIS_QUEUE_KEY, JSON.stringify(temp_obj))
+                        }
+                    }
                 }
                 }
             } catch (error) {
             } catch (error) {
                 console.error('pushCollectConisObj error=', error)
                 console.error('pushCollectConisObj error=', error)
@@ -363,7 +365,7 @@ async function withdraw_(obj) {
     console.log("withdraw_", obj);
     console.log("withdraw_", obj);
     var log_obj = { ...obj }
     var log_obj = { ...obj }
     var info = await moralis.queryCompanyInfoFromId(0);
     var info = await moralis.queryCompanyInfoFromId(0);
-    log_obj.company_address_total_balance_before = await moralis.queryCollectBalance(info.user_address, obj.chain)
+    // log_obj.company_address_total_balance_before = await moralis.queryCollectBalance(info.user_address, obj.chain)
     log_obj.company_public_key = info.user_address
     log_obj.company_public_key = info.user_address
     logger.log('withdraw log', log_obj);
     logger.log('withdraw log', log_obj);
     return new Promise((resolve) => {
     return new Promise((resolve) => {