订阅ERC-20(BAT,即基本注意令牌)时出错

时间:2018-07-26 14:57:37

标签: ethereum web3js erc20

我试图订阅BAT(基本注意令牌)ERC-20令牌“ Transfer”事件,以检测使用nodejs中的web3对我的以太坊地址进行的任何交易。我正在同一台本地计算机上运行的奇偶校验(Parity / v1.10.6-stable-bc0d134-20180605 / x86_64-linux-gnu / rustc1.26.1)节点上-

奇偶校验--jsonrpc-hosts全部--jsonrpc-apis all --ws-apis all --ws-hosts全部--ws-origins all --ws-interface all

这是我用来订阅的代码-

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上的节点

1 个答案:

答案 0 :(得分:0)

这意味着您的节点设置不正确。更改:

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

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

这将连接到Infura节点,该节点不需要您托管一个。