Cómo usar web3.filter para verificar si la transacción se procesa

Estoy tratando de enviar ether a una cuenta y luego implementar un contrato con esa cuenta. Entonces, necesito configurar un observador que se active cuando la transacción se complete o se extraiga, para que pueda implementar el contrato. el observador que usa 'pendiente' y 'más reciente' no se activa en la transacción que se extrae. Así que intenté poner un observador para la dirección, pero no se activa.

Código: "Configurando el observador para esa cuenta"

web3.eth.filter({address: "0x7480e208a68aae46d96cad5341ae111a2a86dcf6"}, function(error, result){
  if (error){
    return console.log(error)
    }
    console.log("----filter-----")
    console.log(JSON.stringify(web3.eth.getBalance("0x7480e208a68bae46d06cad5341ae111a2a86dcf6")))
    console.log(result);
    console.log("----filter-----")
});

Ahora haciendo la transacción.

web3.eth.sendTransaction({ from: web3.eth.coinbase, to: "0x7480e208a68bae46d06cad5341ae111a2a86dcf6", value: 10000000000*4 })

Muy nuevo en esto, por favor hágame saber cuál sería la forma correcta de hacer esto.

No debería necesitar especificar una dirección con filtro para bloquear notificaciones. Prueba sin.
Sí, estaba equivocado. Necesidad de proporcionar "más reciente" o "pendiente". En mi caso "último".

Respuestas (1)

El método web3.eth.filter solo escucha registros (es decir, eventos activados por un contrato), pero no transacciones normales hacia/desde una cuenta en particular (fuente: https://github.com/ethereum/wiki/wiki/JavaScript -API#web3ethfilter )

Puede configurar un filtro con el argumento "más reciente" para obtener nuevos bloques y consultar las transacciones de ese bloque. Aquí hay un fragmento que he usado para hacer lo mismo:

var filter = web3.eth.filter("latest",function(error, blockHash) {
    if (!error) {
        var block = web3.eth.getBlock(blockHash, true);        
        if (block.transactions.length > 0) {
            console.log("found " + block.transactions.length + " transactions in block " + blockHash);
            console.log(JSON.stringify(block.transactions));
        } else {
            console.log("no transaction in block: " + blockHash);
        }
    }
});
Listo Maestro!!!!!