Перечисление всех транзакций по счету за день с web3.js
У меня проблема с перечислением всех транзакций, совершенных аккаунтом за 24 часа. Я могу напечатать все транзакции за 24 часа, и я думаю, что у меня есть правильный код, но я не могу вернуть этот список из функции (вероятно, из-за недостатка знаний о обратных вызовах / обещаниях / ожиданиях), поэтому мне нужна помощь здесь!
Этот код печатает все транзакции учетных записей на консоли, и я хотел бы сохранить эту информацию в списке, а затем вернуть список.
getTransactions: () => {
var tra = [];
web3.eth.getBlockNumber((error, latestBlock) => {
for(var i = 0; i <= latestBlock; i++){
web3.eth.getBlock(i, true, (error, block) => {
if(block != null && block.transactions != null) {
block.transactions.forEach((transaction) => {
var transactionTime = new Date(block.timestamp * 1000);
var sub = Date.now() - transactionTime;
// 86400000ms is one day
if (account == transaction.from
&& (Date.now() - transactionTime) < 86400000) {
tra.push(transaction);
console.log("from: " + transaction.from + "\n"
+ "to: " + transaction.to + "\n"
+ "time: " + transactionTime + "\n"
+ "sub (epoch): " + sub + "\n");
}
});
}
});
}
});
}
Я пытался сделать какой-то список, но все, что я получаю, это список, полный обещаний, и данные находятся в rejectionhandler0. Что я делаю не так? Что мне нужно сделать, чтобы получить данные от rejectionhandler0?
getBlocks: () => {
return web3.eth.getBlockNumber()
.then((x) => {
var txs = [];
for(var i = 0; i < x; i++) {
txs.push(web3.eth.getBlock(i));
}
return txs;
})
.catch((error) => {
console.log(error);
});
}