Вероятно, мне не хватает некоторых концепций обратных вызовов и обещаний, но я не могу найти способ, чтобы мой код работал.
Вот оно:
var tx;
web3.eth.getBlock(6339515, function(err, result){
for(var i = 0; i <= result.transactions.length; i++){
tx = result.transactions[i];
getInputTransaction(tx)
.then(function() {} )
.catch(function(error) {
console.log('error: \n' + error);
});
}
})
async function getInputTransaction(tx) {
web3.eth.getTransaction(tx, function(err, cb){
console.log('got here');
let decodeInput = web3.utils.hexToAscii(cb.input);
decodeInput = decodeInput.split("_").pop();
if(!err){
console.log(cb);
console.log('\nInput decoded: ' + '\u001b[1;32m' + decodeInput + '\u001b[0m');
}else{
console.log('error: ' + error);
}}
)
}
По сути, я хочу получить обратный вызов результата первого метода, чтобы получить каждое значение индекса при передаче его второму методу для сканирования этого значения, в данном случае это транзакция ethereum для получения входного значения. Проблема в том, что обратный вызов с именем «cb» не запускается.
Соответствующая документация:
getBlock getTransaction
Что мне здесь не хватает?