BlockHashRNG

Git Source

Inherits: RNG

Author: Clément Lesaege - clement@lesaege.com

Random Number Generator returning the blockhash with a fallback behaviour. In case no one called it within the 256 blocks, it returns the previous blockhash. This contract must be used when returning 0 is a worse failure mode than returning another blockhash. Allows saving the random number for use in the future. It allows the contract to still access the blockhash even after 256 blocks.*

State Variables

randomNumbers

mapping(uint256 => uint256) public randomNumbers;

Functions

requestRandomness

Request a random number.

function requestRandomness(uint256 _block) external override;

Parameters

NameTypeDescription
_blockuint256Block the random number is linked to.

receiveRandomness

Return the random number. If it has not been saved and is still computable compute it.

function receiveRandomness(uint256 _block) external override returns (uint256 randomNumber);

Parameters

NameTypeDescription
_blockuint256Block the random number is linked to.

Returns

NameTypeDescription
randomNumberuint256The random number or 0 if it is not ready or has not been requested.