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

    3.1.5 • Public • Published

    Waves sign data by ledger in browser

    Install

    $ npm install --save @turtlenetwork/ledger
    

    Usage

    Create connection
    const WavesLedger = require('@turtlenetwork/ledger');
    const ledger = new WavesLedger();

    WavesLedger can have optional arguments.

        import TransportNodeHid from '@ledgerhq/hw-transport-node-u2f';
     
        const options = {
            debug: true, //boolean,
            openTimeout: 3000, //number,
            listenTimeout: 30000, //number,
            exchangeTimeout: 30000, //number,
            networkCode: 87, //number,
            transport: TransportNodeHid
        };
     
        const ledger = new WavesLedger(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).
    networkCode is Waves network code (87 - for mainet)
    transport is U2F Transport implementation. (hw-transport-u2f by default)

    Read about transport

    WavesLedger API

    • ##### probeDevice

      probeDevice(): Promise. If device available and ready, Promise returned true.

        const canIUse = async () => {
            return await ledger.probeDevice();
        }
    • ##### tryConnect

      tryConnect(): Promise<>. reconnect to Transport and init ledger libs.

        const isLedgerReady = async () => {
            try {
                return await ledger.tryConnect();
            } catch (e) {
                ///...error handlers
            }
        };
       
    • ##### getUserDataById getUserDataById(id): Promise. Get user from ledger, where user is: { id: number, path: string, wavesAddress: string, publicKey: string }

      id - is number from 0
      path - is string in internal ledger format
      wavesAddress - is string in base58 format
      publicKey - is string in base58 format

      ledger.getUserDataById(id)
          .then(
              (user) => {...},
              (err) => {...}
          );
    • ##### signTransaction Sign waves transaction bytes (ledger show detailed transaction info)

          ledger.signTransaction(userId, asset, data)

      userId - number
      data - Array number form 0 to 255 asset - {precision: number, ...}

      Result is Promise with signature string in base58 format

    • ##### signSomeData
      Sign any bytes (ledger can't show detail info)

        ledger.signSomeData(userId, data)

      userId - number
      data - Array number form 0 to 255

      Result is Promise with signature string in base58 format

    • ##### signRequest

      Sign any bytes (ledger can't show detail info)

        ledger.signRequest(userId, data)

      userId - number
      data - Array number form 0 to 255

      Result is Promise with signature string in base58 format

    • ##### signMessage
      Sign any string (ledger can't show detail info)

      ledger.signMessage(userId, data)

      userId - number
      data - string

      Result is Promise with signature string in base58 format

    Keywords

    none

    Install

    npm i @turtlenetwork/ledger

    DownloadsWeekly Downloads

    12

    Version

    3.1.5

    License

    Apache-2.0

    Unpacked Size

    599 kB

    Total Files

    21

    Last publish

    Collaborators

    • blackturtle