@wavesenterprise/west-ledger
TypeScript icon, indicating that this package has built-in type declarations

0.3.5 • Public • Published

West-ledger v0.3.1

Ledger hardware wallet support for Waves Enterprise blockchain

Install

$ npm install --save @wavesenterprise/west-ledger

Usage

Initiate connection
const { WestHID } = require('@wavesenterprise/west-ledger');
const { default: TransportNodeHid } = require('@ledgerhq/hw-transport-node-hid');
const ledger = new WestHID(TransportNodeHid, chainId, options);
Where:

debug enable or not logs of the binary exchange. openTimeout is a delay number in ms for waiting connection.
listenTimeout is a delay number in ms for waiting listen request to U2F device.
exchangeTimeout is a timeout (in milliseconds) for the exchange call. Only some transport might implement it. (e.g. U2F).
chainId is Waves Enterprise network code (86 - for mainet)
transport is HID Transport implementation. (hw-transport-webhid by default)

Read about transport

Connect to ledger
await ledger.connect()
Call some methods
const appName = await ledger.api.getAppName()

West Ledger API

  • getVersion

    Get app version

  • getAppName

    Get app name

  • getAddressDataById

    getAddressDataById(id): Promise<IAddressData & IPathInfo>.
    Get address info from ledger, where info is:

    • id - is number from 0

    • path - is string in internal ledger format

    • address - is string in base58 format

    • publicKey - is string in base58 format

      ledger.getAddressDataById(id)
          .then(
              (user) => {...},
              (err) => {...}
          );
  • signTransaction

    Sign transfer transaction bytes (ledger shows detailed transaction info)

      const signature = await ledger.api.signTransferTx(userId, {
        type: 4, version: 2,
        data: Buffer.from(bytes)
      }, bs58encode);

    userId - number
    type - number
    version - number
    data - Buffer with bytes to sign
    bs58encode - bool, encode result to base58 or keep as bytes

    Returns Promise with signature string in base58 format or bytes

  • sign bytes with configurable display

    Sign transaction bytes (ledger shows configured fields on display)

      const signature = await ledger.api.sign(
        userId, 
        data,
        display,
        bs58encode
      );

    userId - number
    data - Buffer with bytes to sign
    display - Object { [key: string]: string } with key-value pairs to display
    bs58encode - bool, encode result to base58 or keep as bytes

    Returns Promise with signature string in base58 format or bytes

Readme

Keywords

none

Package Sidebar

Install

npm i @wavesenterprise/west-ledger

Weekly Downloads

1

Version

0.3.5

License

MIT

Unpacked Size

57.1 kB

Total Files

30

Last publish

Collaborators

  • stfy
  • sergeymart
  • nbugaev
  • wavesadmin
  • aklyavlin
  • dimalitvinov
  • mikhail.milekhin