我使用wss://rpc-mainnet.maticvigil.com/v1/MY-APP-ID作为我的多边形dApp提供程序,但是我不能在newBlockHeaders事件上订阅以下错误:
Error: The current provider doesn't support subscriptions: HDWalletProvider
at Timeout._onTimeout (...\node_modules\web3-core-subscriptions\lib\subscription.js:174:24)
at listOnTimeout (internal/timers.js:554:17)
at processTimers (internal/timers.js:497:7) null我已经看到了这链接,但这对我的情况没有意义(因为我已经使用了websocket提供程序)。
发布于 2021-07-16 14:38:47
HDWalletProvider中有一个问题,您可以在其中附加一个ws提供程序,但它不相信它允许事件订阅。见1。
由于mikec在该问题页上,以下解决办法起作用:
const nodeIP = 'ws://192.168.1.xxx:xxxx';
const wsProvider = new Web3.providers.WebsocketProvider(nodeIP);
HDWalletProvider.prototype.on = wsProvider.on.bind(wsProvider);
let provider = new HDWalletProvider({privateKeys: [privateKey], providerOrUrl: wsProvider});
const web3 = new Web3(provider);但是,目前还没有任何官方解决办法。
https://ethereum.stackexchange.com/questions/103301
复制相似问题