JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 105839
  • Score
    100M100P100Q171741F
  • License ISC

A collection of isomorphic and tree-shakeable crypto hashes and utils for xrpl.js

Package Exports

  • @xrplf/isomorphic/dist/ripemd160/index.js
  • @xrplf/isomorphic/dist/sha256/index.js
  • @xrplf/isomorphic/dist/sha512/index.js
  • @xrplf/isomorphic/dist/utils/index.js
  • @xrplf/isomorphic/dist/ws/index.js
  • @xrplf/isomorphic/ripemd160
  • @xrplf/isomorphic/sha256
  • @xrplf/isomorphic/sha512
  • @xrplf/isomorphic/utils
  • @xrplf/isomorphic/ws

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 (@xrplf/isomorphic) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@xrplf/isomorphic

A collection of isomorphic implementations of crypto and utility functions.

Browser implementations of cryptographic functions use @noble/hashes and crypto for node .

Hashes

All hash functions operate similarly to @noble/hashes and have the following properties:

  • They can be called directly by providing a Uint8Array or string which will be converted into a UInt8Array via UTF-8 encoding (not hex).
  • They all return a UInt8Array.
function hash(message: Uint8Array | string): Uint8Array;
hash(new Uint8Array([1, 3]));
hash('string') == hash(new TextEncoder().encode('string'));

All hash functions can be constructed via hash.create() method:

  • The result is Hash subclass instance, which has update() and digest() methods.
  • digest() finalizes the hash and makes it no longer usable
hash
  .create()
  .update(new Uint8Array([1, 3]))
  .digest();

@xrplf/isomorphic/ripemd160

import { ripemd160 } from '@xrplf/isomorphic/ripemd160';
const hashA = ripemd160('abc');
const hashB = ripemd160
  .create()
  .update(Uint8Array.from([1, 2, 3]))
  .digest();

@xrplf/isomorphic/sha256

import { sha256 } from '@xrplf/isomorphic/sha256';
const hashA = sha256('abc');
const hashB = sha256
  .create()
  .update(Uint8Array.from([1, 2, 3]))
  .digest();

@xrplf/isomorphic/sha512

import { sha512 } from '@xrplf/isomorphic/sha512';
const hashA = sha512('abc');
const hashB = sha512
  .create()
  .update(Uint8Array.from([1, 2, 3]))
  .digest();

Utilities

@xrplf/isomorphic/utils

randomBytes

Create an UInt8Array of the supplied size

import { randomBytes } from @xrplf/isomorphic/utils

console.log(randomBytes(12)) // Uint8Array(12) [95, 236, 188,  55, 208, 128, 161, 249, 171, 57, 141, 7]

bytesToHex

Convert an UInt8Array to hex.

import { bytesToHex } from @xrplf/isomorphic/utils

console.log(bytesToHex([222, 173, 190, 239])) // "DEADBEEF"

hexToBytes

Convert hex to an UInt8Array.

import { hexToBytes } from @xrplf/isomorphic/utils

console.log(hexToBytes('DEADBEEF')) // [222, 173, 190, 239]

hexToString

Converts hex to its string equivalent. Useful to read the Domain field and some Memos.

import { hexToString } from @xrplf/isomorphic/utils

console.log(hexToString('6465616462656566D68D')) // "deadbeef֍"

stringToHex

Converts a utf-8 to its hex equivalent. Useful for Memos.

import { stringToHex } from @xrplf/isomorphic/utils

console.log(stringToHex('deadbeef֍')) // "6465616462656566D68D"

@xrplf/isomorphic/ws

import WebSocket from '@xrplf/isomorphic/ws'

const socket = new WebSocket('wss://localhost:8080')