Skip to main content

VRFBeacon

VRFBeacon

A contract that acts as a central beacon for fetching random numbers from Chainlink VRF. Multiple requests within an EPOCH_PERIOD (as defined by VRFBeacon deployer) will be coupled into one request to VRFCoordiantorV2. An EPOCH_PERIOD is simply a block range.

Consumers of VRFBeacon will use the one random number as a seed to generate another random number for the contract's own use case.

Fulfilled

event Fulfilled(uint256 requestId, uint256 randomNumber)

Requested

event Requested(uint256 requestId)

COORDINATOR

contract VRFCoordinatorV2Interface COORDINATOR

keyHash

bytes32 keyHash

s_subscriptionId

uint64 s_subscriptionId

callbackGasLimit

uint32 callbackGasLimit

numWords

uint32 numWords

blockNumberToRequestId

mapping(uint256 => uint256) blockNumberToRequestId

requestIdToRandomness

mapping(uint256 => uint256) requestIdToRandomness

constructor

constructor(uint64 _subscriptionId, address _vrf, bytes32 _keyHash, uint32 _callbackGasLimit, uint8 _epochPeriod) public

Constructor inherits VRFConsumerBase

getRequestId

function getRequestId(uint256 blockNumber) external view returns (uint256 requestId)
NameTypeDescription
blockNumberuint256in which request was made
NameTypeDescription
requestIduint256of the EPOCH_PERIOD that blockNumber is in

getRandomness

function getRandomness(uint256 blockNumber) external view returns (uint256 randomness)
NameTypeDescription
blockNumberuint256in which request was made
NameTypeDescription
randomnessuint256if not fulfilled yet returns 0

requestRandomness

function requestRandomness() public returns (uint256, uint256)

Requests randomness from a block hash

fulfillRandomWords

function fulfillRandomWords(uint256 requestId, uint256[] randomWords) internal

Callback function used by VRF Coordinator