New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@machinomy/hdwallet-provider

Package Overview
Dependencies
Maintainers
2
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@machinomy/hdwallet-provider

HD Wallet-enabled Web3 provider

  • 2.0.8
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
12
increased by140%
Maintainers
2
Weekly downloads
 
Created
Source

hdwallet-provider

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.

Install

$ yarn install @machinomy/hdwallet-provider

Usage

You can use this provider wherever a Web3 provider is needed.

Mnemonic

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:

ArgumentTypeDescription
mnemonicstring12 word mnemonic which addresses are created from
rpcstringURI of Ethereum client to send all other non-transaction-related Web3 requests
pathstringOptional. HD derivation path, default is m/44'/60'/0'/0
numberOfAccountsstringOptional. Number of accounts to manage, default is 1

Ledger via USB HID

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:

ArgumentTypeDescription
rpcstringURI of Ethereum client to send all other non-transaction-related Web3 requests
pathstringOptional. HD derivation path, default is m/44'/60'/0'/0
numberOfAccountsstringOptional. Number of accounts to manage, default is 1
accountsOffsetstringOptional. Offset of derivation path index, defaults to 0
askConfirmstringOptional. Ask for confirmation on Ledger, default is false

Ledger via BLE (for Ledger Nano X)

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:

ArgumentTypeDescription
rpcstringURI of Ethereum client to send all other non-transaction-related Web3 requests
pathstringOptional. HD derivation path, default is m/44'/60'/0'/0
numberOfAccountsstringOptional. Number of accounts to manage, default is 1
accountsOffsetstringOptional. Offset of derivation path index, defaults to 0
askConfirmstringOptional. Ask for confirmation on Ledger, default is false

Development

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.

Keywords

FAQs

Package last updated on 12 Oct 2020

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc