我正在制作一个dApp,为了登录目的,我访问用户登录到的元询问帐户。我还有一个后端服务器,它侦听由智能契约发出的事件,它更新离链数据库中的数据。
现在,我计划将我的dApp部署到Rinkeby网络,以便进行更高级别的测试。要收听Rinkeby网络上的事件,我将使用Infura websockets:
var web3 = new Web3("wss://rinkeby.infura.io/_ws");但这给我带来了麻烦。在上述web3设置下,dApp无法检测元and (是否锁定)和登录的用户帐户。
我被困在这里,因为我想访问登录在Metamask中的用户帐户,也希望使用Infura来侦听事件。但看起来我只能将它们中的任何一个设置为web3提供程序。
请建议我怎样才能避开这个问题。
发布于 2018-08-30 15:35:02
我过去使用过的一种方法就是实例化两个Web3s。例如:
const web3 = new Web3(web3.currentProvider); // MetaMask
const web3EventReader = new Web3("wss://rinkeby.infura.io/ws");然后将web3用于典型的MetaMask内容,并使用web3EventReader来侦听事件。
(附带注意:我将/_ws改为/ws,因为我认为这是正确的URL。)
https://ethereum.stackexchange.com/questions/57752
复制相似问题