Skip to content
This repository was archived by the owner on Oct 8, 2019. It is now read-only.

Commit 01d336b

Browse files
committed
Added fix for USB init error on machines without USB port
1 parent 1fb0a8f commit 01d336b

File tree

1 file changed

+31
-23
lines changed

1 file changed

+31
-23
lines changed

index.js

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,15 @@ var cluster = require('cluster');
1717
var child_process = require('child_process');
1818
var Path = require('path');
1919

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+
}
2329

2430
var blessed = require('blessed');
2531
var contrib = require('blessed-contrib');
@@ -216,7 +222,7 @@ function getAccount(container, seriesCb) {
216222
}
217223
});
218224
}
219-
if (ledgerAccounts.length) {
225+
if (ledgerSupported && ledgerAccounts.length) {
220226
var message = 'We have found the following Ledgers: \n';
221227
ledgerAccounts.forEach(function(ledger, index) {
222228
var balance = network.config.symbol + (ledger.data.accountData.balance / 100000000);
@@ -248,7 +254,7 @@ function getAccount(container, seriesCb) {
248254
}
249255

250256
async function populateLedgerAccounts() {
251-
if (!ledgerBridge) {
257+
if (!ledgerSupported || !ledgerBridge) {
252258
return;
253259
}
254260
ledgerAccounts = [];
@@ -309,7 +315,7 @@ async function populateLedgerAccounts() {
309315
}
310316

311317
async function ledgerSignTransaction(seriesCb, transaction, account, callback) {
312-
if (!account.publicKey || !account.path) {
318+
if (!ledgerSupported || !account.publicKey || !account.path) {
313319
return callback(transaction);
314320
}
315321

@@ -338,23 +344,25 @@ async function ledgerSignTransaction(seriesCb, transaction, account, callback) {
338344
callback(transaction);
339345
}
340346

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+
}
358366

359367
vorpal
360368
.command('connect <network>', 'Connect to network. Network is devnet or mainnet')

0 commit comments

Comments
 (0)