Skip to content

rustyconover/muid-node

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
src
 
 
 
 
 
 
 
 
 
 

Memorable Unique Identifiers for Node.js/TypeScript

A implementation of Memorable Unique Identifiers (Muids) in Node.js/TypeScript

Installation

npm install memorable-unique-identifier

Usage

import { MemorableUniqueIdentifier } from "memorable-unique-identifier";

// Create a key of difficulty 6 this should
// not take long at all.
const result = MemorableUniqueIdentifier.create(6);

console.error(result);

// Example result output (your result will vary)
//
// {
//  length: 6,
//  pretty: 'Sma Eel',
//  key: '1ed2798ec3f5d61270629ab6ad14f7e8',
//  hash: '53aee16014b2829688c2907ae010f90b'
// }

API

MemorableUniqueIdentifier

MemorableUniqueIdentifier:

Static animal

animal(key: string): undefined | string

Return the animal name from the specified key.

Parameters:

Name Type Description
key string The key to hash and retrieve the animal name.

Returns: undefined | string

Static bhash

bhash(key: string): string

Return the first 32 bytes a hex encoded string

Parameters:

Name Type Description
key string The key to hash (should be lowercase hex)

Returns: string

string A 32 byte hash

Static create

create(difficulty: number): MinedKey

Create a new memorable unique identifier with the specified difficulty.

Parameters:

Name Type Default Description
difficulty number 8 The difficulty or length of the Muid to create.

Returns: MinedKey

Static difficulty

difficulty(key: string): number

The difficulty or length of the passed key

Parameters:

Name Type Description
key string The candidate key

Returns: number

number The difficulty of the key. 0 if the key is invalid.

Static mine_until

mine_until(difficulty: number, quota: number): MinedKey[]

Mine until the necessary number of keys are produced.

Parameters:

Name Type
difficulty number
quota number

Returns: MinedKey[]

Static search

search(code: string): undefined | string

Return the spirit animal given the public identity

Parameters:

Name Type Description
code string The code of which to extract the animal.

Returns: undefined | string

Static shash

shash(source: Buffer): string

Hash a Buffer and return the first 16 bytes encoded in hex as a 32 byte string.

Parameters:

Name Type Description
source Buffer The buffer to hash.

Returns: string

Static validate

validate(key: string): boolean

Check to see if the key is a memorable unique identifier by extracting the animal name.

Parameters:

Name Type Description
key string The candidate key

Returns: boolean

boolean Indicate if the key is a valid Muid

MinedKey

MinedKey:

hash

hash: string

key

key: string

length

length: number

pretty

pretty: string

TODO

[ ] Use the WebCrypto API's to allow these identifiers to be generated in the browser.

About

An implementation of Memorable Unique Identifiers for Node.js/TypeScript

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published