forked from chpiatt/truffle-ledger-provider
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
33 lines (26 loc) · 929 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
'use strict'
/**
* Module dependencies.
*/
const FiltersSubprovider = require('web3-provider-engine/subproviders/filters.js')
const ProviderEngine = require('web3-provider-engine')
const ProviderSubprovider = require('web3-provider-engine/subproviders/provider.js')
const TransportU2F = require('@ledgerhq/hw-transport-node-hid').default
const Web3 = require('web3')
const createLedgerSubprovider = require('@ledgerhq/web3-subprovider').default
/**
* Exports.
*/
module.exports = class LedgerProvider extends ProviderEngine {
constructor(options, url, debug) {
super()
this.addProvider(createLedgerSubprovider(async () => {
const transport = await TransportU2F.create()
transport.setDebugMode(!!debug)
return transport
}, options))
this.addProvider(new FiltersSubprovider())
this.addProvider(new ProviderSubprovider(new Web3.providers.HttpProvider(url)))
this.start()
}
}