|
@@ -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,
|