Base58 Universal Encoder/Decoder (base58-universal)
Encoder/decoder for The Base58 Encoding Scheme for Node.js and Web browsers
Table of Contents
Security
TBD
Background
This library provides an encoder and decoder for The Base58 Encoding Scheme
using an alphabet popularized by Bitcoin. It works in both Node.js and in
Web browsers with no dependencies.
Install
To install for Node.js or in a Web project using npm:
npm install base58-universal
To install locally or for development:
git clone https://github.com/digitalbazaar/base58-universal.git
cd base58-universal
npm install
Usage
import {encode, decode} from 'base58-universal';
Encoding
encode(input[, maxline])
input
: Uint8Array
- bytes to encodemaxline
: Number
- maximum number of encoded characters per line to
use, defaults to infinite.- Returns a base58 encoded string.
import {encode} from 'base58-universal';
const input1 = Uint8Array([1, 2, 3, 4]);
const encoded1 = encode(input1);
const input2 = Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
const encoded2 = encode(input2, 8);
Decoding
decode(input)
input
: String
- string to decode- Returns a
Uint8Array
with the decoded bytes.
import {decode} from 'base58-universal';
const input3 = '2VfUX';
const decoded3 = decode(input3);
const input4 = '4HUtbHhN\r\n2TkpR';
const decoded4 = decode(input4);
String Handling
This library uses Uint8Array for encoder input and decoder output.
Conversion to and from strings can be done with a variety of tools.
Browser
const input5 = new TextEncoder().encode('abc');
const encoded5 = encode(input5);
const decoded6 = decode(encoded5);
const output6 = new TextDecoder().decode(decoded6);
Node.js
const input7 = new TextEncoder().encode('abc');
const encoded7 = encode(input7);
const decoded8 = decode(encoded7);
const output8 = new TextDecoder().decode(decoded8);
const input9 = Buffer.from('616263', 'hex');
const encoded9 = encode(input9);
const decoded9 = decode(encoded9);
Buffer.from(decoded9).toString();
Buffer.from(decoded9).toString('hex');
Contribute
Please follow the Bedrock contributing
guidelines.
PRs accepted.
If editing the README, please conform to the
standard-readme
specification.
Commercial Support
Commercial support for this library is available upon request from
Digital Bazaar: support@digitalbazaar.com
License
New BSD License (3-clause) © Digital Bazaar
Encoder/decoder original implementation from
base-x under the MIT License.