JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 5
  • Score
    100M100P100Q46623F
  • License MIT

SecuX Hardware Wallet XRP API

Package Exports

  • @secux/app-xrp
  • @secux/app-xrp/lib/app-xrp.js

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 (@secux/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

lerna view on npm npm module downloads

@secux/app-xrp

SecuX Hardware Wallet XRP API

Usage

import { SecuxXRP } from "@secux/app-xrp";

First, create instance of ITransport


Examples

  1. Get address of bip44 path
const address = await device.getAddress("m/44'/144'/0'/0/0");

/*

// transfer data to hardware wallet by custom transport layer.
const data = SecuxXRP.prepareAddress("m/44'/144'/0'/0/0");
const response = await device.Exchange(data);
const address = SecuxXRP.resolveAddress(response);

*/
  1. Sign transaction
let payment = {
    TransactionType: "Payment",
    Account: "rD17Ez7fBpuwVp6smfjYhPKD3pwiN5QGKX",
    Destination: "rGNitVptpmpCNYC23LbQ9yfCnAf1Z6gq7X",
    amount: 1e6
};

// fetch data from XRP api
const { BroadcastClient } = require("xrpl");
client = new BroadcastClient(["wss://s1.ripple.com"]);
await client.connect();
payment = await client.autofill(payment);

// sign
const raw_tx = await device.sign("m/44'/144'/0'/0/0", payment);

/*

// transfer data to hardware wallet by custom transport layer.
const { commandData, serialized } = SecuxXRP.prepareSign("m/44'/144'/0'/0/0", {
    ...payment,
    SigningPubKey: "026771406ace54da2cae8b168862697ca35bc3db56c90f4270adb307ac9a38fe9c"
});
const response = await device.Exchange(data);
const raw_tx = SecuxXRP.resolveTransaction(response, serialized);

*/

// broadcast
await client.submit(raw_tx);

API Reference

XRP package for SecuX device

Kind: global class


SecuxXRP.prepareAddress ⇒ communicationData

Prepare data for XRP address.

Returns: communicationData - data for sending to device

Param Type Description
path string m/44'/144'/...

SecuxXRP.addressConvert(publickey) ⇒ string

Convert secp256k1 publickey to XRP address.

Returns: string - XRP address

Param Type Description
publickey string | Buffer secp256k1 publickey

SecuxXRP.resolveAddress(response) ⇒ string

Generate XRP address from response data.

Returns: string - XRP address

Param Type Description
response communicationData data from device

SecuxXRP.preparePublickey(path) ⇒ communicationData

Prepare data for secp256k1 publickey.

Returns: communicationData - data for sending to device

Param Type Description
path string m/44'/144'/...

SecuxXRP.resolvePublickey(response) ⇒ string

Resolve secp256k1 publickey from response data.

Returns: string - secp256k1 publickey (hex string)

Param Type Description
response communicationData data from device

SecuxXRP.prepareXPublickey(path) ⇒ communicationData

Prepare data for xpub.

Returns: communicationData - data for sending to device

Param Type Description
path string m/44'/144'/...

SecuxXRP.resolveXPublickey(response, path) ⇒ string

Generate xpub from response data.

Returns: string - xpub

Param Type Description
response communicationData data from device
path string m/44'/144'/...

SecuxXRP.prepareSign(path, json) ⇒ prepared

Prepare data for signing.

Returns: prepared - prepared object

Param Type Description
path string m/44'/144'/...
json baseObject transaction object (same as XRP api)

SecuxXRP.resolveSignature(response) ⇒ string

Resolve signature from response data.

Returns: string - signature (hex string)

Param Type Description
response communicationData data from device

SecuxXRP.resolveTransaction(response, serialized) ⇒ string

Generate raw transaction for broadcasting.

Returns: string - signed raw transaction

Param Type Description
response communicationData data from device
serialized communicationData


baseObject

Properties

Name Type Description
TransactionType string
SigningPubKey string | Buffer ed25519 publickey
Sequence number
Fee string | number
LastLedgerSequence number
[Account] string sending address
[Destination] string receiving address
[Amount] string | number
[SourceTag] number
[DestinationTag] number

prepared

Properties

Name Type Description
commandData commandData data for sending to device
serialized commandData


© 2018-21 SecuX Technology Inc.

authors:
andersonwu@secuxtech.com