@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
49 lines • 1.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LedgerWebHid = void 0;
class LedgerWebHid {
async getAddressByDefinePath(params) {
try {
const { path } = params;
const app = await this.makeApp();
const { address } = await app.getAddress(path);
return address;
}
finally {
await this.cleanUp();
}
}
async getAvailableAddress(params) {
let index = 0;
let address;
let path = '';
const wallet = this.getWallet();
const { addresses } = params;
// eslint-disable-next-line no-constant-condition
while (true) {
path = wallet.derivePath({ accountIndex: index, addressIndex: 0 });
address = await this.getAddressByDefinePath({ path });
if (!addresses.includes(address)) {
break;
}
index++;
}
return {
index,
address,
path,
};
}
async signPersonalMessage(transaction, path) {
try {
const app = await this.makeApp();
const response = await app.signPersonalMessage(path, transaction);
return response;
}
finally {
await this.cleanUp();
}
}
}
exports.LedgerWebHid = LedgerWebHid;
//# sourceMappingURL=LedgerWebHid.js.map