Ошибка при подписке на ERC-20 (BAT, т.е. Basic Attention Token)

Я пытаюсь подписаться на событие «Передача» токена BAT (Basic Attention Token) ERC-20, чтобы обнаружить любую транзакцию, совершенную на мой адрес ethereum с использованием web3 в nodejs. Я использую узел четности (Parity/v1.10.6-stable-bc0d134-20180605/x86_64-linux-gnu/rustc1.26.1), работающий на той же локальной машине -

четность --jsonrpc-hosts все --jsonrpc-apis все --ws-apis все --ws-hosts все --ws-origins все --ws-interface все

Вот код, который я использовал для подписки -

const Web3 = require('web3');
const abi = require('human-standard-token-abi');

var contract = '0x0D8775F648430679A709E98d2b0Cb6250d2887EF'; //BAT contract address

var web3Socket = new Web3(new Web3.providers.WebsocketProvider('ws://localhost:8546'));

function tokenEventListener = (address) => {
        let token = new web3Socket.eth.Contract(abi, address);

        console.log(address);
        let subscription = token.events.Transfer({
            fromBlock: 0
        })
            .on('data', (event) => {
                 // do something
             })
            .on('error', console.error);
}

tokenEventListener(contract);

Я получаю сообщение об ошибке при запуске кода - Ошибка: ОШИБКА ПОДКЛЮЧЕНИЯ: Не удалось подключиться к узлу на WS


person dkpaul91    schedule 26.07.2018    source источник


Ответы (1)


Это означает, что ваш узел не настроен должным образом. Сдача:

var web3Socket = new Web3(new Web3.providers.WebsocketProvider('ws://localhost:8546'));

to

var web3Socket = new Web3(new Web3.providers.WebsocketProvider('wss://mainnet.infura.io/ws'));

Это подключится к узлу Infura, который не требует от вас его размещения.

person James    schedule 02.08.2018
comment
@ dkpaul91 dkpaul91, если этот ответ был правильным, отметьте его как правильный, чтобы будущие читатели знали, что проблема решена. - person James; 03.08.2018