Skip to content

Latest commit

 

History

History

ledgerjs-hw-app-sui

Ledger Github, Ledger Developer Portal, Ledger Developer Discord

ledgerjs-hw-sui-app

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

Using LedgerJS for Sui

Here is a sample app for Node:

const Transport = require('@ledgerhq/hw-transport').default;
const Sui = require('@mysten/ledgerjs-hw-sui-app').default;

const getPublicKey = async () => {
    const sui = new Sui(await Transport.create());
    return await sui.getPublicKey("44'/784'/0'/0/0");
};

const signTransaction = async () => {
    const transport = await Transport.create();
    const sui = new Sui(await Transport.create());
    return await sui.signTransaction(
        "44'/784'/0'/0/0",
        '<transaction contents>'
    );
};

const getVersion = async () => {
    const transport = await Transport.create();
    const sui = new Sui(await Transport.create());
    return await sui.getVersion();
};

const doAll = async () => {
    console.log(await getPublicKey());
    console.log(await signTransaction());
    console.log(await getVersion());
};

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

API

Table of Contents

Parameters

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

Examples

import Sui from 'ledgerjs-hw-sui-app';
const sui = new Sui(transport);

getPublicKey

Get Sui address for a given BIP-32 path.

Parameters

  • path string a path in BIP-32 format

Examples

const publicKey = await sui.getPublicKey("44'/784'/0'/0/0");

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

signTransaction

Sign a transaction with a given BIP-32 path.

Parameters

  • path string a path in BIP-32 format

Examples

const publicKey = await sui.signTransaction(
    "44'/784'/0'/0/0",
    '<transaction contents>'
);

Returns Promise<object> an object with text field containing a signature.

getVersion

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

Examples

console.log(await sui.getVersion());

for version 0.1.0, it produces something like

{
  major: 0
  minor: 1
  patch: 0
}

Returns Promise<{object}> an object with major, minor, and patch of the version.