Skip to content
JS/TS lib to decode strings for the xrpl-labs.com XUMM app
TypeScript JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
test
.gitignore
.npmignore
LICENSE
README.md
jest.config.js
package.json
tsconfig.json
tslint.json

README.md

XUMM String Decode

JS/TS lib to decode strings for the xrpl-labs.com XUMM app (when scanning a QR code).

Supports:

  • XrplDestination, eg. r... or X..., optionally URI syntax (containing amount, IOU, destination tag, etc.)
  • XummPayloadReference (UUIDv4)
  • XummPairingToken
  • XrplTransactionHash
  • XrplSecret (mnemonic, family seed (s....) or HEX private key)
  • XrplSignedTransaction (signed HEX blob)
  • XrplTransactionTemplate (HEX encoded JSON transaction template)

The lib. exports:

  • StringTypeDetector (class)
  • StringDecoder (class)
  • StringType (enum)
  • SecretType (enum)

Sample

1. Detect string type

const someString = 'https://ripple.com//send?to=rPdvC6ccq8hCdPKSPJkPmyZ4Mi1oG2FFkT&amount=30&dt=123'
const detected = new StringTypeDetector(someString)

Methods

The sample (above) will expose these methods on detected:

  • getType(), returns one of the StringType enum values
  • getTypeName(), returns StringType enum string value

In case a valid string (type) could not be found, StringType.Invalid will be returned by getType().

Other available methods (you probably won't need to use:

  • getStrippedInput() (string)
  • getInput() (string)
  • getRawInput() (string)
  • isUrl() (boolean)
  • getSearchParams() (URLSearchParams, in case of URI input)

String types

  • StringType.Invalid
  • StringType.XummPayloadReference
  • StringType.XummPairingToken
  • StringType.XrplTransactionHash
  • StringType.XrplDestination
  • StringType.XrplSignedTransaction
  • StringType.XrplTransactionTemplate
  • StringType.XrplSecret
  • StringType.IlpStreamInstruction

2. Decode values

Once a string type is detected with the StringTypeDetector and the string is not StringType.Invalid, you can get the parsed values in the correct type using the StringDecoder class:

// Use the previous sample (above, StringTypeDetector) as input:
const decoded = new StringDecoder(detected)
console.log(decoded.getAny())

The methods available on the StringDecoder object:

  • getXrplDestination(), returns XrplDestination
  • getXrplSecret(), returns XrplSecret
  • getXummPayloadReference(), returns XummPayloadReference
  • getXummPairingToken(), returns XummPairingToken
  • getXrplTransactionHash(), returns XrplTransactionHash
  • getXrplSignedTransaction(), returns XrplSignedTransaction
  • getXrplTransactionTemplate(), returns XrplTransactionTemplate

So: you can call the getXxxYyy method based on the detected string type, or just get the right one at once:

  • getAny(), returns detected result

3. Sample output objects

XrplDestination
{
  to: string
  tag?: number
  invoiceid?: string
  amount?: string
  currency?: string
  issuer?: string
}
XrplSecret
{
  secretType: SecretType
  familySeed?: string
  mnemonic?: string
  hexPrivateKey?: string
}

The SecretType (enum) can be one of:

{ FamilySeed, Hex, Mnemonic }
XrplSignedTransaction
{
  txblob: string
}
XrplTransactionHash
{
  txhash: string
}
XrplTransactionTemplate
{
  jsonhex: string
}
XummPairingToken
{
  token: string
}
XummPayloadReference
{
  uuid: string
}
You can’t perform that action at this time.