cid.js
0-dependancy Multiformat CID with related bases and coders.
Demo ⭐
import {CID} from '@adraffy/cid';
let cid = CID.from('QmQ7D7QqcAhFdrFfquiz7B5RWZiJ6e9Ast1LzpXZEdZWF5');
cid.version;
cid.codec;
cid.base;
cid.hash;
cid.bytes;
cid.toString();
let cid1 = cid.upgrade();
cid1.toString();
cid1.toString('z');
cid1.toString(Multibase.for('b'));
cid2.toString(Multibase.for('base32upper'));
Available bases:
import {Multibase} from '@adraffy/cid';
[...Multibase].map(x => `${x.prefix}:${name}`);
Available coders:
import {
Base2, Base8, Base16, Base32, Base32Hex, Base32Z, Base64, Base64URL,
Base10, Base36, Base58BTC, Base58Flickr,
Bech32,
} from '@adraffy/cid';
Base2.encode([128+1]);
Base2.decode('10000001');
Base58BTC.encode([1, 2, 255]);
Base58BTC.decode('LiA');
let bech = Bech32.decode('bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4');
bech.hrp;
bech.type;
bech.v32;
Arbitrary-precision uvarint:
import {uvarint} from '@adraffy/cid';
let v = [];
let p = 0;
p = uvarint.write(v, 69, p);
p = uvarint.write(v, '0x420', p);
p = uvarint.write(v, 1337n, p);
let u;
[u, p] = uvarint.readHex(v, 0);
[u, p] = uvarint.readBigInt(v, p);
[u, p] = uvarint.read(v, p);
let [u0, u1, u2] = uvarint.read(v, 0, 3);
Build
git clone
this repo, then npm install
npm run test
npm run build
— create /dist/