This library is still heavily under construction; expect frequent breaking API changes until v1.0.0
The Firefly Connector provides high-level JavaScript API to interact with the Firefly Hardware Wallet.
/home/ricmoo> npm install firefly
Due to the platform and environment-dependent nature of the hardware serial port, the transport needs to be established in a variety of ways.
In the browser, the Serial API in Chrome can be used. When connecting, a pop-up dialog box is shown, from which you can select your Firefly.
In node on macOS/linux, you will need to know the name of
the port in the /dev/
folder.
// Browser
import { DeviceEsp32c3 } from "firefly";
import { SerialPort } from "firefly/browser";
const serialPort = SerialPort.connect();
const device = new DeviceEsp32c3(serialPort)
// Node
import { DeviceEsp32c3 } from "firefly";
import { SerialPort } from "firefly/node";
const serialPort = SerialPort.connect("/dev/cu.usbmodem101");
const device = new DeviceEsp32c3(serialPort)
Once connected, you can use the various commands to operate against the firefly:
// Get the device info
await device.getDeviceInfo()
{
packageVersion: 0,
revision: 3,
description: 'ESP32-C3 (revision: 3)'
}
// Update the firmware (coming soon...)
// This will require you enter you password
//await device.updateFirmware(payload, progressCallback)
// Test the REPL service (comming soon...)
//await device.send("echo: foobar")
// "foobar"
# Get Device Info
/home/ricmoo> npx firefly info
packageVersion: 0,
revision: 3,
description: 'ESP32-C3 (revision: 3)'
# Update the firmware (coming soon...)
/home/ricmoo> npx firefly update-firmware firmware.bin
# Enter the REPL mode (coming soon...)
/home/ricmoo> npx firefly repl
echo foobar
foobar
MIT License.