@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
48 lines • 1.65 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.LedgerTrxWebHid = void 0;
const hw_app_trx_1 = __importDefault(require("@ledgerhq/hw-app-trx"));
const hw_transport_webhid_1 = __importDefault(require("@ledgerhq/hw-transport-webhid"));
const ledger_1 = require("../../base_wallet/ledger");
const TronWallet_1 = require("../TronWallet");
class LedgerTrxWebHid extends ledger_1.LedgerWebHid {
_transport;
_app;
getWallet() {
return new TronWallet_1.TronWallet();
}
async signTransaction(transaction, path) {
try {
const app = await this.makeApp();
const response = await app.signTransaction(path, transaction.hex, transaction.info);
return response;
}
finally {
await this.cleanUp();
}
}
async signTransactionHash(path, rawTxHashHex) {
try {
const app = await this.makeApp();
const response = await app.signTransactionHash(path, rawTxHashHex);
return response;
}
finally {
await this.cleanUp();
}
}
async makeApp() {
this._transport = await hw_transport_webhid_1.default.create();
this._app = new hw_app_trx_1.default(this._transport);
return this._app;
}
async cleanUp() {
this._app = undefined;
await this._transport?.close();
}
}
exports.LedgerTrxWebHid = LedgerTrxWebHid;
//# sourceMappingURL=LedgerTrxWebHid.js.map