
Security News
High Salaries No Longer Enough to Attract Top Cybersecurity Talent
A survey of 500 cybersecurity pros reveals high pay isn't enough—lack of growth and flexibility is driving attrition and risking organizational security.
@machinomy/hdwallet-provider
Advanced tools
HD Wallet-enabled Web3 provider. Use it to sign transactions, and messages for addresses derived from a 12-word mnemonic, or Ledger.
For Ledger it supports both USB and BLE (Ledger Nano X) transports.
$ yarn install @machinomy/hdwallet-provider
You can use this provider wherever a Web3 provider is needed.
import HDWalletProvider from '@machinomy/hdwallet-provider'
import * as Web3 from 'web3'
const mnemonic = "opinion destroy betray ..." // 12 word mnemonic
const provider = HDWalletProvider.mnemonic({
mnemonic: mnemonic, // mandatory
rpc: 'http://localhost:8545', // mandatory
path: "m/44'/60'/0'/0", // optional
numberOfAccounts: 1 // optional
})
const web3 = new Web3(provider)
Parameters:
Argument | Type | Description |
---|---|---|
mnemonic | string | 12 word mnemonic which addresses are created from |
rpc | string | URI of Ethereum client to send all other non-transaction-related Web3 requests |
path | string | Optional. HD derivation path, default is m/44'/60'/0'/0 |
numberOfAccounts | string | Optional. Number of accounts to manage, default is 1 |
In addition to a mnemonic, you might use Ledger to manage a private key. We support connecting to Ledger in Node setting only. You can not use the provider to connect to Ledger on a web browser. The following enables connecting to Ledger via USB HID transport.
As Ledger connection is optional, Ledger-related providers are built via Promise-based interface.
Factory HDWalletProvider.ledgerHID
returns a Promise<HDWalletProvider>
.
It makes requiring USB-related packages on demand.
import HDWalletProvider from '@machinomy/hdwallet-provider'
import * as Web3 from 'web3'
// ...
const provider = await HDWalletProvider.ledgerHID({
rpc: 'http://localhost:8545', // mandatory
path: "m/44'/60'/0'/0", // optional
numberOfAccounts: 1, // optional
accountsOffset: 0, // optional
askConfirm: false // optional
})
const web3 = new Web3(provider)
Parameters:
Argument | Type | Description |
---|---|---|
rpc | string | URI of Ethereum client to send all other non-transaction-related Web3 requests |
path | string | Optional. HD derivation path, default is m/44'/60'/0'/0 |
numberOfAccounts | string | Optional. Number of accounts to manage, default is 1 |
accountsOffset | string | Optional. Offset of derivation path index, defaults to 0 |
askConfirm | string | Optional. Ask for confirmation on Ledger, default is false |
In addition to a mnemonic, you might use Ledger to manage a private key. We support connecting to Ledger in Node setting only. You can not use the provider to connect to Ledger on a web browser. The following enables connecting to Ledger via BLE transport. You might then use your Ledger Nano X wirelessly.
As Ledger connection is optional, Ledger-related providers are built via Promise-based interface.
Factory HDWalletProvider.ledgerBLE
returns a Promise<HDWalletProvider>
.
It makes requiring BLE-related packages on demand.
import HDWalletProvider from '@machinomy/hdwallet-provider'
import * as Web3 from 'web3'
// ...
const provider = await HDWalletProvider.ledgerBLE({
rpc: 'http://localhost:8545', // mandatory
path: "m/44'/60'/0'/0", // optional
numberOfAccounts: 1, // optional
accountsOffset: 0, // optional
askConfirm: false // optional
})
const web3 = new Web3(provider)
Parameters:
Argument | Type | Description |
---|---|---|
rpc | string | URI of Ethereum client to send all other non-transaction-related Web3 requests |
path | string | Optional. HD derivation path, default is m/44'/60'/0'/0 |
numberOfAccounts | string | Optional. Number of accounts to manage, default is 1 |
accountsOffset | string | Optional. Offset of derivation path index, defaults to 0 |
askConfirm | string | Optional. Ask for confirmation on Ledger, default is false |
First, install dependencies:
yarn install --pure-lockfile
Then pass some tests:
yarn test
It tests only basic things for mnemonic providers. To test against USB or BLE Ledger use src/script/try-ledger-hid.ts
and src/script/try-ledger-ble.ts
scripts correspondingly.
FAQs
HD Wallet-enabled Web3 provider
The npm package @machinomy/hdwallet-provider receives a total of 26 weekly downloads. As such, @machinomy/hdwallet-provider popularity was classified as not popular.
We found that @machinomy/hdwallet-provider demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A survey of 500 cybersecurity pros reveals high pay isn't enough—lack of growth and flexibility is driving attrition and risking organizational security.
Product
Socket, the leader in open source security, is now available on Google Cloud Marketplace for simplified procurement and enhanced protection against supply chain attacks.
Security News
Corepack will be phased out from future Node.js releases following a TSC vote.