ZNZ.js - An ZNZ implementation in pure Node.js
ZNZ.js can be used as an internal factory system to produce Transactions, On-Chain Scripts, Contracts and Signature creation/verification, all without any full node, RPC or cryptography necessary!
For example, the ZENZO Forge (an Electron-based Lightwallet) uses ZNZ.js as it's internal wallet system.
API Documentation
The following docs assume that you've minimally imported the ZNZ.js library into your Node.js script, e.g:
const ZNZ = require('znz-js');
Wallet (Key Store)
Generate Wallet (Promise)
Creates a cryptographically-random ZNZ wallet key pair (Private Key and Public Key)
const ZNZ = require('znz-js');
async function newWallet() {
return await ZNZ.wallet.generateWallet();
}
ZNZ.generateWallet().then(cWallet => {
});
Derive Public Key from Private Key
Derives the public key from an existing WIF-encoded private key.
- Decodes Base58 private keys by default, but can accept raw key bytes with an optional flag.
- Returns a network-encoded, Base58 address by default, but can return a raw Secp256k1 public key with an optional flag.
const ZNZ = require('znz-js');
const base58Address = ZNZ.wallet.pubFromPriv('base58_private_key');
const pubKey = ZNZ.wallet.pubFromPriv('base58_private_key', false, true);
const base58Address = ZNZ.wallet.pubFromPriv(uint8PrivKeyBytes, true);
Wallet (Transactions)
// TODO!
Signer
Create Signature (Promise)
Creates a cryptographic signature of a given message, for a given private key.
const ZNZ = require('znz-js');
async function signMessage(msg, privkey)) {
return await ZNZ.signer.sign(msg, privkey);
}
ZNZ.signer.sign('hello world', 'WIF_private_key').then(cSig => {
});
Verify Signature (Promise)
Verify the integrity and authorship of a message by it's public key and signature.
const ZNZ = require('znz-js');
async function verifyMessage(msg, pubkey, cSig)) {
return await ZNZ.signer.verify(msg, pubkey, cSig);
}
ZNZ.signer.verify(msg, pubkey, cSig).then(fValid => {
});