|
@@ -170,21 +170,33 @@ async function getAccountBalances(options) {
|
|
|
options.chain = utils.getChainName(options.chain)
|
|
|
}
|
|
|
logger.log('getAccountBalances :', options)
|
|
|
- try {
|
|
|
- if (options.type == 'native') {
|
|
|
- var opt_ret = await Moralis.Web3API.account.getNativeBalance(options);
|
|
|
- logger.log('getNativeBalance=', opt_ret);
|
|
|
- return opt_ret
|
|
|
- } else {
|
|
|
- var aar = await Moralis.Web3API.account.getTokenBalances(options);
|
|
|
- logger.log('getTokenBalances=', aar);
|
|
|
- return aar;
|
|
|
- }
|
|
|
- } catch (error) {
|
|
|
- logger.error('getBalances error:', error.toString(), JSON.stringify(options))
|
|
|
- return null
|
|
|
- }
|
|
|
|
|
|
+
|
|
|
+ //做 1次 重试
|
|
|
+ //Error: Request failed with status code 524
|
|
|
+ //Error: Request failed with status code 500
|
|
|
+ var tryCount = 2;
|
|
|
+ var result;
|
|
|
+ do {
|
|
|
+ try {
|
|
|
+ if (options.type == 'native') {
|
|
|
+ result = await Moralis.Web3API.account.getNativeBalance(options);
|
|
|
+ logger.log('getNativeBalance=', result);
|
|
|
+ } else {
|
|
|
+ result = await Moralis.Web3API.account.getTokenBalances(options);
|
|
|
+ logger.log('getTokenBalances=', result);
|
|
|
+ }
|
|
|
+ break
|
|
|
+ } catch (error) {
|
|
|
+ if (tryCount == 1) {
|
|
|
+ logger.error('getBalances error:', error.toString(), JSON.stringify(options))
|
|
|
+ result = null;
|
|
|
+ }
|
|
|
+ tryCount -= 1;
|
|
|
+ await utils.sleep(1000)
|
|
|
+ }
|
|
|
+ } while (tryCount >= 1);
|
|
|
+ return result
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -897,31 +909,53 @@ async function getTokenTransfers(opt) {
|
|
|
|
|
|
var t_1
|
|
|
var t_2
|
|
|
- //主流币
|
|
|
- try {
|
|
|
- logger.log('getTokenTransfers account getTransactions>>>>>', options);
|
|
|
- t_1 = await Moralis.Web3API.account.getTransactions(options);
|
|
|
- logger.log('getTokenTransfers native ret -->>> t_1', t_1);
|
|
|
- setTransfersDataType('native', t_1.result)
|
|
|
- } catch (error) {
|
|
|
- logger.error("getTransactions error:", '主流币:', error.toString(), JSON.stringify(options))
|
|
|
- return toJson(ERROR_CODE_001, null, error.toString());
|
|
|
- }
|
|
|
|
|
|
- //20币
|
|
|
- try {
|
|
|
- //token 获取交易记录如果没有时间有些地址会失败
|
|
|
- if (!options.to_block) {
|
|
|
- options.to_block = '10000000000'
|
|
|
+
|
|
|
+ // Error: Request failed with status code 524
|
|
|
+ // 做一次重试
|
|
|
+ var tryCount = 2
|
|
|
+ do {
|
|
|
+ //主流币
|
|
|
+ try {
|
|
|
+ logger.log('getTokenTransfers account getTransactions>>>>>', options);
|
|
|
+ t_1 = await Moralis.Web3API.account.getTransactions(options);
|
|
|
+ logger.log('getTokenTransfers native ret -->>> t_1', t_1);
|
|
|
+ setTransfersDataType('native', t_1.result)
|
|
|
+ break
|
|
|
+ } catch (error) {
|
|
|
+ if (tryCount == 1) {
|
|
|
+ logger.error("getTransactions error:", '主流币:', error.toString(), JSON.stringify(options))
|
|
|
+ return toJson(ERROR_CODE_001, null, error.toString());
|
|
|
+ }
|
|
|
+ tryCount -= 1;
|
|
|
+ await utils.sleep(1000)
|
|
|
}
|
|
|
- logger.log('getTokenTransfers account getTokenTransfers>>>>>', options);
|
|
|
- t_2 = await Moralis.Web3API.account.getTokenTransfers(options);
|
|
|
- logger.log('getTokenTransfers token ret -->>> t_2', t_2);
|
|
|
- setTransfersDataType('token', t_2.result)
|
|
|
- } catch (error) {
|
|
|
- logger.error("getTransactions error:", 'token币:', error.toString(), JSON.stringify(options))
|
|
|
- return toJson(ERROR_CODE_001, null, error.toString());
|
|
|
- }
|
|
|
+ } while (tryCount >= 1);
|
|
|
+
|
|
|
+
|
|
|
+ // Error: Request failed with status code 524
|
|
|
+ tryCount = 2
|
|
|
+ do {
|
|
|
+ //20币
|
|
|
+ try {
|
|
|
+ //token 获取交易记录如果没有时间有些地址会失败
|
|
|
+ if (!options.to_block) {
|
|
|
+ options.to_block = '10000000000'
|
|
|
+ }
|
|
|
+ logger.log('getTokenTransfers account getTokenTransfers>>>>>', options);
|
|
|
+ t_2 = await Moralis.Web3API.account.getTokenTransfers(options);
|
|
|
+ logger.log('getTokenTransfers token ret -->>> t_2', t_2);
|
|
|
+ setTransfersDataType('token', t_2.result)
|
|
|
+ break
|
|
|
+ } catch (error) {
|
|
|
+ if (tryCount == 1) {
|
|
|
+ logger.error("getTransactions error:", 'token币:', error.toString(), JSON.stringify(options))
|
|
|
+ return toJson(ERROR_CODE_001, null, error.toString());
|
|
|
+ }
|
|
|
+ tryCount -= 1;
|
|
|
+ await utils.sleep(1000)
|
|
|
+ }
|
|
|
+ } while (tryCount >= 1);
|
|
|
|
|
|
//异常
|
|
|
if (t_2 && t_2.total > 0 && Array.isArray(t_2.result) && t_2.result.length <= 0) {
|
|
@@ -955,20 +989,26 @@ async function getTokenTransfers(opt) {
|
|
|
return toJson(ERROR_CODE_001, null, error.toString());
|
|
|
}
|
|
|
} else if (options.type == 'transaction_hash') {//根据哈希查询
|
|
|
- try {
|
|
|
- logger.log('transaction_hash getTransaction options-->>> ', options);
|
|
|
- //native
|
|
|
- const transaction = await Moralis.Web3API.native.getTransaction(options);
|
|
|
- var arr = [];
|
|
|
- if (transaction)
|
|
|
- arr.push(transaction)
|
|
|
- var obj = { result: arr }
|
|
|
- logger.log('transaction_hash getTransaction ret-->>> ', transaction, obj);
|
|
|
- return toJson(SUCCEED_CODE, obj, null);
|
|
|
- } catch (error) {
|
|
|
- logger.error("native getTransaction error:", error.toString(), JSON.stringify(options))
|
|
|
- return toJson(ERROR_CODE_001, null, error.toString());
|
|
|
- }
|
|
|
+ var tryCount = 2
|
|
|
+ do {
|
|
|
+ try {
|
|
|
+ logger.log('transaction_hash getTransaction options-->>> ', options);
|
|
|
+ //native
|
|
|
+ const transaction = await Moralis.Web3API.native.getTransaction(options);
|
|
|
+ var arr = [];
|
|
|
+ if (transaction)
|
|
|
+ arr.push(transaction)
|
|
|
+ var obj = { result: arr }
|
|
|
+ logger.log('transaction_hash getTransaction ret-->>> ', transaction, obj);
|
|
|
+ return toJson(SUCCEED_CODE, obj, null);
|
|
|
+ } catch (error) {
|
|
|
+ if (tryCount == 1) {
|
|
|
+ logger.error("native getTransaction error:", error.toString(), JSON.stringify(options))
|
|
|
+ return toJson(ERROR_CODE_001, null, error.toString());
|
|
|
+ }
|
|
|
+ tryCount -= 1;
|
|
|
+ }
|
|
|
+ } while (tryCount >= 1);
|
|
|
} else {
|
|
|
return toJson(ERROR_CODE_001, null, "This type is not supported.");;
|
|
|
}
|