Package Exports
- @deconet/truffle-ledger-provider
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@deconet/truffle-ledger-provider) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Fork
This is a fork of https://github.com/hussy-io/truffle-ledger-provider that actually works. Now works with web3 1.0 and truffle 5! Probably won't work for older web3 versions, but commit https://github.com/deconet/truffle-ledger-provider/commit/b184bcb55dfaf4bf372490af5268f31190d4b136 may work with older web3 versions.
truffle-ledger-provider
Ledger Wallet-enabled Web3 provider. Use it to sign transactions with Ledger Nano S or Ledger Blue.
Install
$ npm i truffle-ledger-provider -SGeneral Usage
You can use this provider wherever a Web3 provider is needed, not just in Truffle. For Truffle-specific usage, see next section.
Before using Ledger Wallet-enabled Web3 provider, you must change your Ledger App configuration as follows:
- Contract data: Yes
- Browser Support: No
const LedgerWalletProvider = require('truffle-ledger-provider');
const ledgerOptions = {
networkId: 1, // mainnet
path: "44'/60'/0'/0", // ledger default derivation path
askConfirm: false,
accountsLength: 1,
accountsOffset: 0,
};
const provider = new LedgerWalletProvider(ledgerOptions, 'http://localhost:8545');Parameters:
network:number. Ethereum network ID. 1-mainnet, 3-ropsten, etc.path:string. HD derivation path.askConfirm:boolean. If true, deployment of each contract must be confirmed.accountsLength:number. Number of accounts to derivate.accountsOffset:number. Offset index to use to start derivating the accounts.
Truffle Usage
You can easily use this within a Truffle configuration. For instance:
truffle.js
const LedgerWalletProvider = require('truffle-ledger-provider');
const INFURA_APIKEY = '...'; // set your Infura API key
const ledgerOptions = {}; // use default options
module.exports = {
networks: {
development: {
host: 'localhost',
port: 8545,
network_id: '*', // Match any network id
},
ropsten: {
provider: new LedgerWalletProvider(ledgerOptions, `https://ropsten.infura.io/${INFURA_APIKEY}`),
network_id: 3,
gas: 4600000,
},
},
};