JSPM

@ledgerhq/hw-app-xrp

6.2.0-bsc.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3044
  • Score
    100M100P100Q145654F
  • License Apache-2.0

Ledger Hardware Wallet Ripple Application API

Package Exports

  • @ledgerhq/hw-app-xrp

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 (@ledgerhq/hw-app-xrp) 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

@ledgerhq/hw-app-xrp

Ledger Hardware Wallet XRP JavaScript bindings.

API

Table of Contents

Xrp

XRP API

Parameters

  • transport Transport
  • scrambleKey (optional, default "XRP")

Examples

import Transport from "@ledgerhq/hw-transport-node-hid";
// import Transport from "@ledgerhq/hw-transport-u2f"; // for browser
import Xrp from "@ledgerhq/hw-app-xrp";
import { encode } from 'ripple-binary-codec';

function establishConnection() {
    return Transport.create()
        .then(transport => new Xrp(transport));
}

function fetchAddress(xrp) {
    return xrp.getAddress("44'/144'/0'/0/0");
}

function signTransaction(xrp, deviceData, seqNo) {
    let transactionJSON = {
        TransactionType: "Payment",
        Account: deviceData.address,
        Destination: "rTooLkitCksh5mQa67eaa2JaWHDBnHkpy",
        Amount: "1000000",
        Fee: "15",
        Flags: 2147483648,
        Sequence: seqNo,
        SigningPubKey: deviceData.publicKey.toUpperCase()
    };

    const transactionBlob = encode(transactionJSON);

    console.log('Sending transaction to device for approval...');
    return xrp.signTransaction("44'/144'/0'/0/0", transactionBlob);
}

function prepareAndSign(xrp, seqNo) {
    return fetchAddress(xrp)
        .then(deviceData => signTransaction(xrp, deviceData, seqNo));
}

establishConnection()
    .then(xrp => prepareAndSign(xrp, 123))
    .then(signature => console.log(`Signature: ${signature}`))
    .catch(e => console.log(`An error occurred (${e.message})`));

getAddress

get XRP address for a given BIP 32 path.

Parameters
  • path string a path in BIP 32 format
  • display boolean? optionally enable or not the display
  • chainCode boolean? optionally enable or not the chainCode request
  • ed25519 boolean? optionally enable or not the ed25519 curve (secp256k1 is default)
Examples
const result = await xrp.getAddress("44'/144'/0'/0/0");
const { publicKey, address } = result;

Returns Promise<{publicKey: string, address: string, chainCode: string?}> an object with a publicKey, address and (optionally) chainCode

signTransaction

sign a XRP transaction with a given BIP 32 path

The rawTxHex parameter is the serialized transaction blob represented as hex.

Parameters
Examples
const signature = await xrp.signTransaction("44'/144'/0'/0/0", "12000022800000002400000002614000000001315D3468400000000000000C73210324E5F600B52BB3D9246D49C4AB1722BA7F32B7A3E4F9F2B8A1A28B9118CC36C48114F31B152151B6F42C1D61FE4139D34B424C8647D183142ECFC1831F6E979C6DA907E88B1CAD602DB59E2F");

Returns Promise<string> a signature as hex string

getAppConfiguration

get the version of the XRP app installed on the hardware device

Examples
const result = await xrp.getAppConfiguration();

{
  "version": "1.0.3"
}

Returns Promise<{version: string}> an object with a version