@tronlink/core
Version:
The library serves as a core module within TronLink Extension, which provides low-level wallet functionality for both Tron and Ethereum networks, primary features includes account generation and transaction signing
44 lines • 1.77 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.LedgerEthHidStatusChecker = void 0;
const hw_app_eth_1 = __importDefault(require("@ledgerhq/hw-app-eth"));
const hw_transport_webhid_1 = __importDefault(require("@ledgerhq/hw-transport-webhid"));
const ledger_1 = require("../../base_wallet/ledger");
const EvmWallet_1 = require("../EvmWallet");
class LedgerEthHidStatusChecker extends ledger_1.LedgerHidStatusChecker {
async getStatus() {
let deviceType = '';
let deviceStatus = ledger_1.DeviceStatusType.LOCKED;
let transport;
try {
const path = new EvmWallet_1.EvmWallet().derivePath({ accountIndex: 0, addressIndex: 0 });
transport = await hw_transport_webhid_1.default.create(3000, 5000);
const app = new hw_app_eth_1.default(transport);
if (transport && transport.deviceModel) {
deviceType = transport.deviceModel.id;
}
await app.getAddress(path, false);
deviceStatus = ledger_1.DeviceStatusType.AUTHORIZED;
}
catch (e) {
if (transport && transport.deviceModel) {
deviceStatus = ledger_1.DeviceStatusType.UNAUTHORIZED;
}
else {
deviceStatus = ledger_1.DeviceStatusType.LOCKED;
}
}
finally {
await transport?.close();
}
return {
deviceType,
deviceStatus,
};
}
}
exports.LedgerEthHidStatusChecker = LedgerEthHidStatusChecker;
//# sourceMappingURL=LedgerEthHidStatusChecker.js.map