Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@xrplf/isomorphic

Package Overview
Dependencies
Maintainers
7
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@xrplf/isomorphic

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

  • 1.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
19K
decreased by-3.19%
Maintainers
7
Weekly downloads
 
Created
Source

@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')

Keywords

FAQs

Package last updated on 03 Jun 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc