import Transport from "@ledgerhq/hw-transport"; // Returns null if getBitcoinLikeInfo is not supported. there are breaking changes in the version after firmware 1.2 const getBitcoinLikeInfo = ( transport: Transport, ): Promise< | { P2PKH: number; P2SH: number; message: Buffer; short: Buffer; } | null | undefined > => transport.send(0xe0, 0x16, 0x00, 0x00).then(res => { const P2PKH = res.readUInt16BE(0); const P2SH = res.readUInt16BE(2); try { const message = res.slice(5, res.readUInt8(4)); const short = res.slice(5 + message.length + 1, res.readUInt8(5 + message.length)); return { P2PKH, P2SH, message, short, }; } catch { // in such case, we are in an old firmware we no longer support return null; } }); export default getBitcoinLikeInfo;