Node JS Взаимодействие с Ethereum Smart Contract - PullRequest
0 голосов
/ 21 января 2020

У меня частичный успех с написанным мной Node.js сценарием, который взаимодействует с одним из моих Ethereum Smart Contracts.

Вот что работает: -Я могу вызывать методы в Smart Contract из my Node.js script -Я могу записывать и отображать результаты, возвращенные этими вызовами функций, используя мой Node.js скрипт

Проблема, с которой я сталкиваюсь, связана с захватом EVENTS, которые выдаются по контракту.

Мой код не запускается, потому что я сохраняю следующую ошибку:

TypeError: theContract.saleTXReceivedEvent is not a function

Странно, что код, который я использую в моем файле Node.js, это точно такой же код, который я использовал в моих обычных JS файлах на стороне клиента (которые встроены в мои HTML файлы) - которые прекрасно работают.

Вот код:

var capturedEvent = theContract.saleTXReceivedEvent();
capturedEvent.watch(function(error, result) {
  if(!error) {
    console.log("Sale was successful!");
    console.log("Results are as follows: ", result);
  }
  else {
    console.log("ERROR!!!! Details: ", error);
  }
});

Опять же, этот код прекрасно работает в моих клиентских веб-файлах, но выдает ошибку, когда в моем файле node.js:

TypeError: theContract.saleTXReceivedEvent is not a function

Конечно, верно, что saleTXReceivedEvent это не a Function - это EVENT, но с точки зрения синтаксиса, как иначе я должен ссылаться на это? Почему он нормально работает в моих обычных JS файлах, но не работает в моих NodeJS файлах?

Что здесь происходит?

1 Ответ

1 голос
/ 23 января 2020

Я думаю, что вы забыли events - попробуйте это

var capturedEvent = theContract.events.saleTXReceivedEvent();
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...