@@ -17,9 +17,15 @@ var cluster = require('cluster');
17
17
var child_process = require ( 'child_process' ) ;
18
18
var Path = require ( 'path' ) ;
19
19
20
- var ledger = require ( 'ledgerco' )
21
- var LedgerArk = require ( './src/LedgerArk.js' ) ;
22
- var ledgerWorker = child_process . fork ( Path . resolve ( __dirname , './ledger-worker' ) ) ;
20
+ var ledgerSupported = true ;
21
+ try {
22
+ var ledger = require ( 'ledgerco' ) ;
23
+ var LedgerArk = require ( './src/LedgerArk.js' ) ;
24
+ var ledgerWorker = child_process . fork ( Path . resolve ( __dirname , './ledger-worker' ) ) ;
25
+ } catch ( USBError ) {
26
+ ledgerSupported = false ;
27
+ vorpal . log ( colors . yellow ( "Warning: Ark-Client is running on a server or virtual machine: No Ledger support available." ) ) ;
28
+ }
23
29
24
30
var blessed = require ( 'blessed' ) ;
25
31
var contrib = require ( 'blessed-contrib' ) ;
@@ -222,7 +228,7 @@ function getAccount(container, seriesCb) {
222
228
}
223
229
} ) ;
224
230
}
225
- if ( ledgerAccounts . length ) {
231
+ if ( ledgerSupported && ledgerAccounts . length ) {
226
232
var message = 'We have found the following Ledgers: \n' ;
227
233
ledgerAccounts . forEach ( function ( ledger , index ) {
228
234
var balance = network . config . symbol + ( ledger . data . accountData . balance / 100000000 ) ;
@@ -263,7 +269,7 @@ function resetLedger() {
263
269
}
264
270
265
271
async function populateLedgerAccounts ( ) {
266
- if ( ! ledgerBridge ) {
272
+ if ( ! ledgerSupported || ! ledgerBridge ) {
267
273
return ;
268
274
}
269
275
ledgerAccounts = [ ] ;
@@ -335,7 +341,7 @@ async function populateLedgerAccounts() {
335
341
}
336
342
337
343
async function ledgerSignTransaction ( seriesCb , transaction , account , callback ) {
338
- if ( ! account . publicKey || ! account . path ) {
344
+ if ( ! ledgerSupported || ! account . publicKey || ! account . path ) {
339
345
return callback ( transaction ) ;
340
346
}
341
347
@@ -364,6 +370,7 @@ async function ledgerSignTransaction(seriesCb, transaction, account, callback) {
364
370
callback ( transaction ) ;
365
371
}
366
372
373
+ if ( ledgerSupported ) {
367
374
ledgerWorker . on ( 'message' , function ( message ) {
368
375
if ( message . connected && network && ( ! ledgerComm || ! ledgerAccounts . length ) ) {
369
376
ledger . comm_node . create_async ( ) . then ( ( comm ) => {
@@ -378,6 +385,7 @@ ledgerWorker.on('message', function (message) {
378
385
resetLedger ( ) ;
379
386
} ;
380
387
} ) ;
388
+ }
381
389
382
390
vorpal
383
391
. command ( 'connect <network>' , 'Connect to network. Network is devnet or mainnet' )
0 commit comments