Web3 y MetaMask, recibiendo evento de blockchain

Hola chicos, estoy terriblemente atascado con los eventos para la interfaz. Estoy usando MetaMask. ¿Qué me estoy perdiendo?

Evento de solidez:

event enrolled(address payoutAddress, address sender, uint dateOfTransaction);

Y Web3:

MyContract = web3.eth.contract(abi);
    myContractInstance = MyContract.at(contractAddress);
    var depositEventAll = myContractInstance.enrolled({dateOfTransaction: userAddr}, {fromBlock: 4400000, toBlock: 'latest'});
    depositEventAll.watch(function (err, result) {
        if (err) {
            console.log(err);
            return;
        }
        console.log(result);
    });

¡Gracias!

{dateOfTransaction: userAddr}parece sospechoso. ¿Estás seguro de que tu filtro es correcto? ¿Quiso decir {address: userAddr}en su lugar?

Respuestas (1)

Actualmente hay algunos problemas con la forma en que MetaMask maneja los eventos. Siempre ha sido una API difícil de admitir porque, a diferencia de cualquier otro método, tiene estado.

Lamento decir que hasta que se estabilice este comportamiento interno, debo recomendar inicializar un segundo proveedor si desea usar eventos, y apuntarlo a un backend que controle, o usar web3-provider-engine para polillenar el evento. comportamiento (metamask está en el proceso de mudarse del proveedor-motor, de ahí la inestabilidad actual).