UNPKG

provably-fair

Version:

Provably-fair generator for custom bets

32 lines (26 loc) 771 B
const crypto = require('crypto'); const seedrandom = require('seedrandom'); module.exports = { generateServerSeed: (seed = generateRandomHex(64)) => { const hash = crypto.createHash('sha512').update(seed).digest('hex'); return { seed, hash }; }, createResult: ({ serverSeed, clientSeed, customResult = function (randomNumber) { return randomNumber } }, callback) => { const seed = serverSeed + clientSeed; const randomNumber = seedrandom(seed)(); const id = generateRandomHex(10); callback(null, { id, result: customResult(randomNumber), serverSeed, clientSeed }); }, } function generateRandomHex(length) { return crypto.randomBytes(Math.ceil(length / 2)).toString('hex').slice(0, length); }