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



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

奇偶校验--jsonrpc主机全部--jsonrpcapi全部--ws-api全部--ws主机全部--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-上的节点

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

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节点,该节点不需要承载一个。

最新更新