Nebulous Pumpkin Moons

    @obsidiansystems/hw-app-avalanche

    0.2.2 • Public • Published

    Github, Ledger Devs Slack

    @obsidiansystems/hw-app-avalanche

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

    Using LedgerJS for Avalanche

    Here is a sample app for Node:

    const Transport = require("@ledgerhq/hw-transport-node-hid").default;
    const Avalanche = require("@obsidiansystems/hw-app-avalanche").default;
    
    const getWalletId = async () => {
      const avalanche = new Avalanche(await Transport.create());
      return await avalanche.getWalletId();
    };
    
    const signHash = async () => {
      const transport = await Transport.create();
      const avalanche = new Avalanche(await Transport.create());
      return await avalanche.signHash(
        "44'/9000'/0'/0/0",
        "0000000000000000000000000000000000000000000000000000000000000000"
      );
    };
    
    const getVersion = async () => {
      const avalanche = new Avalanche(await Transport.create());
      return await avalanche.getAppConfiguration();
    };
    
    const getAddress = async () => {
      const avalanche = new Avalanche(await Transport.create());
      return await avalanche.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

    Avalanche

    Avalanche API for Ledger

    Parameters

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

    Examples

    import Avalanche from "@obsidiansystems/hw-app-avalanche";
    const avalanche = new Avalanche(transport);

    getWalletPublicKey

    Get Avalanche address for a given BIP-32 path.

    Parameters
    • path string a path in BIP-32 format
    Examples
    const publicKey = await avalanche.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 avalanche.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 avalanche.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 avalanche.getWalletId());

    produces something like

    abcdefgh
    

    Returns Promise<string> a byte string.

    Install

    npm i @obsidiansystems/hw-app-avalanche

    DownloadsWeekly Downloads

    449

    Version

    0.2.2

    License

    MIT

    Unpacked Size

    61.1 kB

    Total Files

    14

    Last publish

    Collaborators

    • romefeller
    • nhomesley
    • ericson2314
    • jonored