JSPM

@coinflect/hw-app-coinflect

1.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2
  • Score
    100M100P100Q20602F
  • License MIT

Ledger Hardware Wallet Coinflect API

Package Exports

  • @coinflect/hw-app-coinflect
  • @coinflect/hw-app-coinflect/lib/Coinflect.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@coinflect/hw-app-coinflect) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Github, Ledger Devs Slack

@coinflect/hw-app-coinflect

Ledger Hardware Wallet JavaScript bindings for Coinflect, based on LedgerJS.

Using LedgerJS for Coinflect

Here is a sample app for Node:

const Transport = require("@ledgerhq/hw-transport-node-hid").default;
const Coinflect = require("@coinflect/hw-app-coinflect").default;

const getWalletId = async () => {
  const coinflect = new Coinflect(await Transport.create());
  return await coinflect.getWalletId();
};

const signHash = async () => {
  const transport = await Transport.create();
  const coinflect = new Coinflect(await Transport.create());
  return await coinflect.signHash(
    "44'/9000'/0'/0/0",
    "0000000000000000000000000000000000000000000000000000000000000000"
  );
};

const getVersion = async () => {
  const coinflect = new Coinflect(await Transport.create());
  return await coinflect.getAppConfiguration();
};

const getAddress = async () => {
  const coinflect = new Coinflect(await Transport.create());
  return await coinflect.getWalletPublicKey("44'/9000'/0'/1/0");
};

const doAll = async () => {
  console.log(await getWalletId());
  console.log(await getVersion());
  console.log(await getAddress());
  console.log(await signHash());
};

doAll().catch((err) => console.log(err));

API

Table of Contents

Coinflect

Coinflect API for Ledger

Parameters

  • transport Transport<any>
  • scrambleKey string (optional, default "Coinflect")

Examples

import Coinflect from "@coinflect/hw-app-coinflect";
const coinflect = new Coinflect(transport);

getWalletPublicKey

Get Coinflect address for a given BIP-32 path.

Parameters
  • path string a path in BIP-32 format
Examples
const publicKey = await coinflect.getWalletPublicKey("44'/9000'/0'/0/0");

Returns Promise<string> an object with a public key.

signHash

Sign a 32-byte hash of transaction with a given BIP-32 path

Parameters
  • path string a path in BIP-32 format
  • hash string hash of a to sign
Examples
const signature = await coinflect.signHash(
  "44'/9000'/0'/0/0",
  "0000000000000000000000000000000000000000000000000000000000000000"
);

Returns Promise<string> a signature as hex string.

getAppConfiguration

Get the version of the application installed on the hardware device.

Examples
console.log(await coinflect.getAppConfiguration());

produces something like

{
  "version": "1.0.3",
  "commit": "1234567",
  "name": "Avax"
}

Returns Promise<{version: string, commit: string, name: string}> an object with a version.

getWalletId

Get the wallet identifier for the Ledger wallet. This value distinguishes different Ledger hardware devices which have different seeds.

Examples
console.log(await coinflect.getWalletId());

produces something like

abcdefgh

Returns Promise<string> a byte string.