Это мой код:
function send() {
Web3.providers.HttpProvider.prototype.sendAsync = Web3.providers.HttpProvider.prototype.send;
var web3 = new Web3("http://localhost:8545");
var data = web3.eth.getHashrate();
alert(data);
}
когда я запускаю функцию send(), я получаю эту ошибку: " TypeError: this.provider.sendAsync is not a function
"
Порт веб-сокета по умолчанию — 8546.
Вы могли бы попробовать
var web3 = new Web3("ws://localhost:8546");
Или подключение к HTTP JSON RPC
var web3 = new Web3("http://localhost:8545");
Я думаю, что здесь есть похожая проблема на github https://github.com/ethereum/web3.js/issues/1119
идея в том, чтобы использовать
Web3.providers.HttpProvider.prototype.sendAsync = Web3.providers.HttpProvider.prototype.send
перед созданием нового экземпляра. Кроме того, как заметил @cleanunicorn, вы должны установить порт ws по умолчанию 8546, если вы не определили его по-другому при запуске geth.
Эта ошибка может быть вызвана проблемой подключения, поэтому запустите geth со следующими параметрами.
--ws --wsport 8546 --wsaddr "0.0.0.0" --wsorigins="*"
Харен Сарма