我目前正在开发一个需要后端和事件监听的dapp。我已经在rinkeby网络上用一个infura websocket设置了web3js,但是我很难设置我的帐户(使用助记符)到web3js中。
因此,现在可以监听事件了,但是我无法通过肺炎签署交易,而使用truffle-hdwallet-provider则相反。
这是我定义web3js对象的文件
const Web3 = require('web3')
require('dotenv').config()
let web3
// const HDWalletProvider = require('truffle-hdwallet-provider')
// const mnemonic = process.env.mneumonic
// const api_key = process.env.infurakey
// const RinkbeyProvider = new HDWalletProvider(mnemonic, 'https://rinkeby.infura.io/'+api_key)
console.log('Using Rinkbey Provider')
web3 = new Web3(new Web3.providers.WebsocketProvider('wss://rinkeby.infura.io/ws'))
// web3 = new Web3(RinkbeyProvider)
module.exports = {
web3
}
以前,我使用HDWalletProvider来设置web3对象,但是由于该方法不适用于http(我尝试分叉该软件包,因此无法使其正常工作),我不得不切换到使用常规的websocket构造函数。
我的问题是:如何配置web3以使其与助记符关联的帐户一起使用?是否有执行与truffle-hdwallet-provider类似功能但可与websockets一起使用的软件包?
谢谢。