@xrplf/isomorphic
Version:
A collection of isomorphic and tree-shakeable crypto hashes and utils for xrpl.js
34 lines (30 loc) • 848 B
text/typescript
export type ByteEncodedString = string
export type Input = Uint8Array | number[] | ByteEncodedString
/**
* A stripped down isomorphic hash inspired by node's `crypto.Hash`
*/
export interface Hash {
/**
* Updates the hash content with the given data,
*
* @param data - a byte encoded string, an array of numbers or a Uint8Array
*/
update: (data: Input) => this
/**
* Calculates the digest of all the data passed to be hashed and returns a Uint8Array
*/
digest: () => Uint8Array
}
export interface HashFn {
/**
* Produces a Uint8Array for the given hash contents
* Shorthand for calling `create`, `update`, and then `digest`
*
* @param data - a byte encoded string, an array of numbers or a Uint8Array
*/
(data: Input): Uint8Array
/**
* Creates a new empty `Hash`.
*/
create: () => Hash
}