Ledger Hardware Wallet Bluetooth BLE transport for Ionic.
yarn add @oasisprotocol/ionic-ledger-hw-transport-ble
-
Install and link library
@capacitor-community/bluetooth-le
+ configure your app for Bluetooth permissions (Open the link for documentation) -
global.Buffer available. Typically
global.Buffer = require("buffer").Buffer;
that can be placed in apolyfill.js
and imported withimport "./polyfill";
at first line of the main JavaScript entry file.
@oasisprotocol/ionic-ledger-hw-transport-ble
works like any of @ledgerhq/hw-transport
libraries.
The difference here is that the list() is costy and you likely don't want to always scan for devices, you would better save a selected device as "known" to suggest it to user later.
Important: you will also have to deal with specifics of Bluetooth BLE, for instance, you need to request the LOCATION permission on Android!
Here is a gist of the most important parts required.
import BleTransport from "@oasisprotocol/ionic-ledger-hw-transport-ble";
// Check if @capacitor-community/bluetooth-le is setup
BleTransport.isSupported()
// Check for bluetooth status
BleTransport.isEnabled()
const scannedDevices = BleTransport.list()
const [scannedDevice] = scannedDevices
const transport = await BleTransport.open(scannedDevice)
and now we can just use the transport like any other Ledger transport!