UNPKG

@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
"use strict"; 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