node-cryptonight
v1.3.0
Published
node bindings for cryptonight hashing
Downloads
111
Maintainers
Readme
node-cryptonight
node bindings for cryptonight hashing
Requirements
node-cryptonight requires Boost and Sodium
Ubuntu
sudo apt-get install libboost-all-dev libsodium-dev
Mac
brew install boost
brew install libsodium
Installation
npm install --save node-cryptonight
Testing
Code is linted with standard and tested with Jest. Run npm test
to lint and run tests.
Usage Examples
Synchronous Hashing
const cryptonight = require('node-cryptonight').hash
const hash = cryptonight(Buffer.from('This is a test'))
console.log(hash) // <Buffer a0 84 f0 1d 14 37 ..>
Synchronous Hashing with variant 1
const cryptonight = require('node-cryptonight').hash
const hash = cryptonight(Buffer.from('This is a test'), 1)
console.log(hash) // <Buffer a0 84 f0 1d 14 37 ..>
Synchronous Hashing with variant 4 and height 123
const cryptonight = require('node-cryptonight').hash
const hash = cryptonight(Buffer.from('This is a test'), 1, 123)
console.log(hash) // <Buffer a0 84 f0 1d 14 37 ..>
Asynchronous Hashing
const cryptonight = require('node-cryptonight').asyncHash
cryptonight(Buffer.from('This is a test'), hash => {
console.log(hash) // <Buffer a0 84 f0 1d 14 37 ..>
})
Asynchronous Hashing with variant 1
const cryptonight = require('node-cryptonight').asyncHash
cryptonight(Buffer.from('This is a test'), 1, hash => {
console.log(hash) // <Buffer a0 84 f0 1d 14 37 ..>
})
Asynchronous Hashing with variant 4 and height 123
const cryptonight = require('node-cryptonight').asyncHash
cryptonight(Buffer.from('This is a test'), 4, 123, hash => {
console.log(hash) // <Buffer a0 84 f0 1d 14 37 ..>
})
Promise Wrapper Example
function cryptonight(data) {
return new Promise((resolve, reject) => {
require('node-cryptonight').asyncHash(data, hash => {
resolve(hash)
})
})
}
cryptonight(Buffer.from('This is a test'))
.then(console.log) // <Buffer a0 84 f0 1d 14 37 ..>
See Also
License
Released under the 3-Clause BSD License. Contains code from the Monero project. See LICENSE
for more information.