No parece posible actualizar dinámicamente las opciones en web3.eth.filter(), así que, ¿cómo se puede observar una transacción que involucre una cuenta en particular que aparece en el último bloque número 12?
Respondiendo a la propia pregunta.
const Web3 = require('web3')
let web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"))
let account = '0x05430f5201585c2601bb75d9658007202864c993'
let filter = web3.eth.filter('latest')
filter.watch(function(error, result) {
if (!error) {
let confirmedBlock = web3.eth.getBlock(web3.eth.blockNumber - 11)
if (confirmedBlock.transactions.length > 0) {
confirmedBlock.transactions.forEach(function(txId) {
let transaction = web3.eth.getTransaction(txId)
if (transaction.to == account) {
// Do something useful.
}
})
}
}
})
web3.eth.getTransactionReceipt(txId)
). Es posible solo cuando fue extraído. En respuesta, debe encontrar el número de bloque. Haga la diferencia blockNumber-txBlock
si es mayor que 12 definitivamente confirmado :) Por cierto, he leído en alguna parte que esperar 8 bloques debería ser suficiente.geth
los clientes de Parity y el 24 de noviembre de 2016 donde "se extrajeron ~ 165 bloques en la cadena ahora abandonada". Ver blog.ethereum.org/2016/11/25/… .web3.eth.filter
ha sido reemplazado por web3.eth.subscribe
.
Guénole de Cadoudal
Fooboo
Guénole de Cadoudal
Fooboo
Guénole de Cadoudal