与 Websockets 一起使用的 TruffleHDWalletProvider 替代方案

Lui*_*sta 5 websocket node.js truffle web3js

我目前正在开发一个需要后端和事件监听的 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
}
Run Code Online (Sandbox Code Playgroud)

以前,我使用 HDWalletProvider 来设置 web3 对象,但由于这不适用于 HTTP(我尝试分叉该包,无法让它工作),我不得不切换到使用常规websocket 构造函数。

如何配置 web3 以使用与助记词关联的帐户?是否有一个包可以执行与 truffle-hdwallet-provider 类似的功能,但可以与 websockets 一起使用?