Web3.js: web3.currentProvider.sendAsync is undefined

Created on 16 Oct 2017  ·  13Comments  ·  Source: ChainSafe/web3.js

Hey guys, getting a weird bug here.

I'm setting up my web3 like this

var web3 = new Web3(new Web3.providers.HttpProvider(BLOCKCHAIN_ADDR));

But I'm getting an error with web3.currentProvider.sendAsync is undefined, but web3.currentProvider.send is defined. Anyone know what's up?

0.x.x

Most helpful comment

try to add before create new instance:
Web3.providers.HttpProvider.prototype.sendAsync = Web3.providers.HttpProvider.prototype.send

All 13 comments

try to add before create new instance:
Web3.providers.HttpProvider.prototype.sendAsync = Web3.providers.HttpProvider.prototype.send

@dkchv thanks, could you tell me where you get this? which version of web3.js?

I tried to use web3 v1, but out app also use truffle-contract, which use web3 0.20. So then I setProvider to web3 v1, I also set this provider to truffle-contract. And finally truflle-contract tried to invoke sendAsync throw web3 0.20 interface.
Line above fix this difference for httpProvider bettween v1 and v0.20.

Hey folks, another potential fix for this could be to make sure you import Web3 before you import any artifacts -- even if you define networks later.

I have the same issue, strangely, this happen only on specific iphone models.
The workaround doesn't seem to work.

"web3": "^0.20.6",
"web3-provider-engine": "13.6.0"

This issue should probably be reopened

web3.providers.HttpProvider.prototype.sendAsync = web3.providers.HttpProvider.prototype.send; fixes it for me, I think it's because truffle-contract uses the 0.2x version of web3 while I'm using the v1.0.0

@devzl it doesn't work client side with Infura nodes. Particularly with American iPhones.

Following my previous comment. I couldn't find any way to solve this client side, so I ended up only signing the transaction in the mobile client and broadcasting it server side. If you are interested in a microservice to do that you can find the Tx-broadcaster Repository by DEXlab.io here.

Not sure why this has been closed ¯_(ツ)_/¯

Oops sorry.. 🙈

Hey guys, getting a weird bug here.

I'm setting up my web3 like this

var web3 = new Web3(new Web3.providers.HttpProvider(BLOCKCHAIN_ADDR));

But I'm getting an error with web3.currentProvider.sendAsync is undefined, but web3.currentProvider.send is defined. Anyone know what's up?

您好,我想知道如何创建自己的web3,来实现链上支付,如果您知道,还请您多多帮助一下

Version 0.20.x got his last maintenance release with v0.20.7. Please update your code to the latest 1.0 version of Web3.js. Further details about the current project state are explained in the release announcement of version 1.0.0-beta.38.

Was this page helpful?
0 / 5 - 0 ratings