@ravenrebels/ravencoin-message
v1.0.0
Published
Sign and Verify messages in Ravencoin
Downloads
37
Readme
ravencoin-message
Sign and verify messages in Ravencoin (and Evrmore) in JavaScript. Works in Node.js and in the browser.
Breaking changes in 1.0.0
sign and verifyMessage now take a single options object instead of positional arguments:
// 0.7.0
sign(message, privateKey)
verifyMessage(message, address, signature)
// 1.0.0
sign({ message, privateKey })
verifyMessage({ message, address, signature })Optional network ("rvn" or "evr") and prefix can be passed on the same object.
install
npm install @ravenrebels/ravencoin-message
//If you need to sign messages, install CoinKey
npm install coinkeyHow to use
const { sign, verifyMessage } = require("@ravenrebels/ravencoin-message");
//coinkey helps us convert from WIF to privatekey
const CoinKey = require("coinkey");
//Sign
{
//Address RVDUQTULaceEudDsgqCQBT6bfcdqUSvJPV
//Public Key 031c5142f11f629bad27dd567c41e189ee23eccd9b57561fd0ff7c96b2cc9a0a0f
const privateKeyWIF = "L1JHsDosNU9FeUYB24Pixwkxs56pwCrj5rdtuKHXTcWBJTDLGNa7";
//Convert WIF to private key
const privateKey = CoinKey.fromWif(privateKeyWIF).privateKey;
const message = "Hello world";
// Sign for Ravencoin (default)
const signature = sign({ message, privateKey });
console.log("Ravencoin Signature", signature);
// Sign for Evrmore
const signatureEvr = sign({ message, privateKey, network: "evr" });
console.log("Evrmore Signature", signatureEvr);
}
//Verify
{
const address = "RS4EYELZhxMtDAuyrQimVrcSnaeaLCXeo6";
const message = "Hello world";
const signature =
"H2zo48+tI/KT9eJrHt7PLiEBMaRn1A1Eh49IFu0MbfhAFBxVc0FG2UE5E79PCbhd9KexijsQxYvNM6AsVn9EAEo=";
console.log("Verify RVN", verifyMessage({ message, address, signature }));
// To verify an Evrmore signature:
// verifyMessage({ message, address, signature: signatureEvr, network: "EVR" })
}Supported Networks (Aliases)
The network parameter is case-insensitive and supports the following aliases:
- Ravencoin (Default):
"rvn","ravencoin","raven" - Evrmore:
"evr","evrmore"
Advanced: You can also pass a custom prefix string directly to override the network alias.
