Welcome! In preparation for the upcoming launch of our original game Turbo Crash in jonbet.bet.br,, we're performing this seeding event to ensure fairness and immutable rolls. For this seeding event we are following the same approach as above.
As part of our fairness we generated a chain of 10,000,000 SHA256 hashes where each hash is the hash of the hexadecimal representation of the previous hash. Being the last hash in the chain: 952ea9ca95f2feeafddb91e224a1a7cc4ab0d8aad697dd869552635ba3a868f1
const divisible = (hash, mod) => {
const value = parseInt(hash.slice(0, 13), 16); // Use first 13 hex chars
return value % mod === 0; // Single modulus operation at the end
};
const calculateCrashPointFromHash = function (hash) {
if (divisible(hash, 15)) return 0;
const crashPointBytes = hash.slice(13, 26); // Next 13 hex chars
const h = parseInt(crashPointBytes, 16);
const e = Math.pow(2, 52);
return (Math.floor((100 * e - h) / (e - h)) / 100).toFixed(2);
};
// these will be the 10M pre generated rolls to be used
const hashChain = ['random1', 'random2'];
const gameHash = hashChain.pop();
// It's the hash we're gonna be using of the result of a yet to be mined block on the blockchain # 877,072
const blockHash = '';
const hash = createHmac('sha256', gameHash).update(blockHash).digest('hex');
const crashPoint = calculateCrashPointFromHash(hash);
console.log({ crashPoint });
We’re gonna be using a BlockHash that hasn’t been mined at the time of this post, we’re expecting to use Bitcoin block 877,072 this to prove we have no influence over the outcome of the game.