@@ -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' ) ;
@@ -216,7 +222,7 @@ function getAccount(container, seriesCb) {
216
222
}
217
223
} ) ;
218
224
}
219
- if ( ledgerAccounts . length ) {
225
+ if ( ledgerSupported && ledgerAccounts . length ) {
220
226
var message = 'We have found the following Ledgers: \n' ;
221
227
ledgerAccounts . forEach ( function ( ledger , index ) {
222
228
var balance = network . config . symbol + ( ledger . data . accountData . balance / 100000000 ) ;
@@ -248,7 +254,7 @@ function getAccount(container, seriesCb) {
248
254
}
249
255
250
256
async function populateLedgerAccounts ( ) {
251
- if ( ! ledgerBridge ) {
257
+ if ( ! ledgerSupported || ! ledgerBridge ) {
252
258
return ;
253
259
}
254
260
ledgerAccounts = [ ] ;
@@ -309,7 +315,7 @@ async function populateLedgerAccounts() {
309
315
}
310
316
311
317
async function ledgerSignTransaction ( seriesCb , transaction , account , callback ) {
312
- if ( ! account . publicKey || ! account . path ) {
318
+ if ( ! ledgerSupported || ! account . publicKey || ! account . path ) {
313
319
return callback ( transaction ) ;
314
320
}
315
321
@@ -338,23 +344,25 @@ async function ledgerSignTransaction(seriesCb, transaction, account, callback) {
338
344
callback ( transaction ) ;
339
345
}
340
346
341
- ledgerWorker . on ( 'message' , function ( message ) {
342
- if ( message . connected && network && ( ! ledgerComm || ! ledgerAccounts . length ) ) {
343
- ledger . comm_node . create_async ( ) . then ( ( comm ) => {
344
- ledgerComm = comm ;
345
- ledgerBridge = new LedgerArk ( ledgerComm ) ;
346
- populateLedgerAccounts ( ) ;
347
- } ) . fail ( ( error ) => {
348
- //console.log('ledger error: ', error);
349
- } ) ;
350
- } else if ( ! message . connected && ledgerComm ) {
351
- vorpal . log ( 'Ledger App Disconnected' ) ;
352
- ledgerComm . close_async ( ) ;
353
- ledgerComm = null ;
354
- ledgerBridge = null ;
355
- ledgerAccounts = [ ] ;
356
- } ;
357
- } ) ;
347
+ if ( ledgerSupported ) {
348
+ ledgerWorker . on ( 'message' , function ( message ) {
349
+ if ( message . connected && network && ( ! ledgerComm || ! ledgerAccounts . length ) ) {
350
+ ledger . comm_node . create_async ( ) . then ( ( comm ) => {
351
+ ledgerComm = comm ;
352
+ ledgerBridge = new LedgerArk ( ledgerComm ) ;
353
+ populateLedgerAccounts ( ) ;
354
+ } ) . fail ( ( error ) => {
355
+ //console.log('ledger error: ', error);
356
+ } ) ;
357
+ } else if ( ! message . connected && ledgerComm ) {
358
+ vorpal . log ( 'Ledger App Disconnected' ) ;
359
+ ledgerComm . close_async ( ) ;
360
+ ledgerComm = null ;
361
+ ledgerBridge = null ;
362
+ ledgerAccounts = [ ] ;
363
+ } ;
364
+ } ) ;
365
+ }
358
366
359
367
vorpal
360
368
. command ( 'connect <network>' , 'Connect to network. Network is devnet or mainnet' )
0 commit comments