Web3 и MetaMask, получение события из блокчейна

Эй, ребята, я ужасно застрял с выводом событий на интерфейс. Я использую МетаМаск. что мне не хватает?

Событие солидности:

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

И Веб3:

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);
    });

Спасибо!

{dateOfTransaction: userAddr}кажется подозрительным. Вы уверены, что ваш фильтр правильный? Вы имели в виду {address: userAddr}вместо этого?

Ответы (1)

В настоящее время есть некоторые проблемы с тем, как MetaMask обрабатывает события. Всегда было трудно поддерживать API, потому что, в отличие от любого другого метода, он имеет состояние.

К сожалению, пока это внутреннее поведение не будет стабилизировано, я должен порекомендовать инициализировать второго провайдера, если вы хотите использовать события, и либо указать его на серверную часть, которой вы управляете, либо использовать web3-provider-engine для полифилла события. поведение (метамаска находится в процессе удаления движка провайдера, отсюда и текущая нестабильность).