|
@@ -11,6 +11,7 @@ const BigNumber = require('bignumber.js')
|
|
|
const czz = require('../model/czz')
|
|
|
var remote_config_db = require("../model/db/remote_config_db");
|
|
|
const account_mysql = require("../model/db/account_info_db") //导入 db.js
|
|
|
+var collect_coins_db = require("../model/db/collect_coins_db");
|
|
|
/**
|
|
|
* 获取代币价格
|
|
|
* @param {*} ctx
|
|
@@ -91,6 +92,47 @@ async function getTransfers(ctx) {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+async function getCollectCoinsHash(trx_hash) {
|
|
|
+ var ret = await collect_coins_db.query_collect_hash(trx_hash);
|
|
|
+ if (ret && Array.isArray(ret) && ret.length > 0) {
|
|
|
+ return trx_hash
|
|
|
+ }
|
|
|
+ return ' '
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+async function filterTransfers(result) {
|
|
|
+ try {
|
|
|
+ if (typeof result === 'string') {
|
|
|
+ var ret = JSON.parse(result)
|
|
|
+ if (ret.code == 0 && ret.data.total > 0) {
|
|
|
+ var new_ret = []
|
|
|
+ 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)) {
|
|
|
+ logger.debug('element.trx_hash == await getCollectCoinsHash(element.trx_hash)', element)
|
|
|
+ } else {
|
|
|
+ new_ret.push(element)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return {
|
|
|
+ code: ret.code,
|
|
|
+ data: {
|
|
|
+ total: new_ret.length,
|
|
|
+ results: new_ret,
|
|
|
+ errMsg: ''
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return result
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ logger.error('filterTransfers', JSON.parse(error))
|
|
|
+ return result
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
/**
|
|
|
* 获取交易记录
|
|
|
* @param {*} ctx
|
|
@@ -103,45 +145,47 @@ async function getTransfersV2(ctx) {
|
|
|
var temp_obj = { ...obj }
|
|
|
var index = 0
|
|
|
|
|
|
- await moralis.getTokenTransfersV2(obj).then((result) => {
|
|
|
- logger.log('getTokenTransfersV2 response', 'index=' + index, result)
|
|
|
- ctx.body = result;
|
|
|
- if (result) {
|
|
|
- //提交归集任务 native 能获取到 gas 、token 无法获取到 gas 费
|
|
|
- try {
|
|
|
- if (temp_obj.address && moralis.isTransferSucceed(result)) {
|
|
|
- var log_obj = { ...obj }
|
|
|
- log_obj.results = result
|
|
|
- log_obj.type = report.REPORT_TYPE.transfer_record
|
|
|
- //埋点日志上报-入金检查
|
|
|
- report.logReport(log_obj)
|
|
|
+ var result = await moralis.getTokenTransfersV2(obj)
|
|
|
|
|
|
- var json_obj = JSON.parse(result);
|
|
|
+ // await moralis.getTokenTransfersV2(obj).then((result) => {
|
|
|
+ logger.log('getTokenTransfersV2 response', 'index=' + index, result)
|
|
|
+ ctx.body = await filterTransfers(result);
|
|
|
+ if (result) {
|
|
|
+ //提交归集任务 native 能获取到 gas 、token 无法获取到 gas 费
|
|
|
+ try {
|
|
|
+ if (temp_obj.address && moralis.isTransferSucceed(result)) {
|
|
|
+ var log_obj = { ...obj }
|
|
|
+ log_obj.results = result
|
|
|
+ log_obj.type = report.REPORT_TYPE.transfer_record
|
|
|
+ //埋点日志上报-入金检查
|
|
|
+ report.logReport(log_obj)
|
|
|
|
|
|
- //缓存当前交易的 gas 费用
|
|
|
- var tr = moralis.getTransferRecordGasFree('native', json_obj, temp_obj.address)
|
|
|
- logger.log('getTransferRecordGasFree:', tr, temp_obj.address)
|
|
|
- if (tr && tr.totalGasFree > 0) {
|
|
|
- logger.log('getTransferRecordGasFree redis_set LAST_TOTAL_BNB_FREE:', tr)
|
|
|
- // redis.redis_set(reids_token_config.LAST_BNB_PRICE, tr.gas_price.toString());
|
|
|
- // redis.redis_set(reids_token_config.LAST_TOKEN_PRICE, tr.gas_price.toString().toString());
|
|
|
- redis.writeAppendRedis(reids_token_config.LAST_BNB_PRICE, temp_obj.chain, '', tr.gas_price.toString());
|
|
|
- redis.writeAppendRedis(reids_token_config.LAST_TOKEN_PRICE, temp_obj.chain, '', tr.gas_price.toString());
|
|
|
- }
|
|
|
+ var json_obj = JSON.parse(result);
|
|
|
|
|
|
- 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))
|
|
|
- }
|
|
|
+ //缓存当前交易的 gas 费用
|
|
|
+ var tr = moralis.getTransferRecordGasFree('native', json_obj, temp_obj.address)
|
|
|
+ logger.log('getTransferRecordGasFree:', tr, temp_obj.address)
|
|
|
+ if (tr && tr.totalGasFree > 0) {
|
|
|
+ logger.log('getTransferRecordGasFree redis_set LAST_TOTAL_BNB_FREE:', tr)
|
|
|
+ // redis.redis_set(reids_token_config.LAST_BNB_PRICE, tr.gas_price.toString());
|
|
|
+ // redis.redis_set(reids_token_config.LAST_TOKEN_PRICE, tr.gas_price.toString().toString());
|
|
|
+ redis.writeAppendRedis(reids_token_config.LAST_BNB_PRICE, temp_obj.chain, '', tr.gas_price.toString());
|
|
|
+ redis.writeAppendRedis(reids_token_config.LAST_TOKEN_PRICE, temp_obj.chain, '', tr.gas_price.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) {
|
|
|
- console.error('pushCollectConisObj error=', error)
|
|
|
}
|
|
|
+ } catch (error) {
|
|
|
+ console.error('pushCollectConisObj error=', error)
|
|
|
}
|
|
|
- })
|
|
|
+ }
|
|
|
+ // })
|
|
|
}
|
|
|
|
|
|
|
|
@@ -467,7 +511,6 @@ async function withdrawV3(ctx) {
|
|
|
}
|
|
|
const obj = ctx.request.body;
|
|
|
|
|
|
- // for (let index = 0; index < 10; index++) {
|
|
|
var log_obj = { ...obj }
|
|
|
logger.log('withdrawV3', log_obj)
|
|
|
var obj_ = decrypt_withdraw_content(log_obj.content)
|
|
@@ -491,7 +534,6 @@ async function withdrawV3(ctx) {
|
|
|
} else {
|
|
|
return utils.toJson(-2, null, ' withdraw_id not empty.')
|
|
|
}
|
|
|
- // }
|
|
|
}
|
|
|
|
|
|
async function withdrawV3Test(ctx) {
|