Skip to main content
Version: V4

RNGChainlinkV2Interface

Provides an interface for requesting random numbers from Chainlink VRF V2.

Functions

getSubscriptionId

  function getSubscriptionId(
) external returns (uint64)

Get Chainlink VRF subscription id associated with this contract.

Return Values:

TypeDescription
uint64uint64 Chainlink VRF subscription id

getVrfCoordinator

  function getVrfCoordinator(
) external returns (address)

Get Chainlink VRF coordinator contract address associated with this contract.

Return Values:

TypeDescription
addressaddress Chainlink VRF coordinator address

setSubscriptionId

  function setSubscriptionId(
uint64 subId
) external

Set Chainlink VRF subscription id associated with this contract.

This function is only callable by the owner.

Parameters:

NameTypeDescription
subIduint64Chainlink VRF subscription id

setCallbackGasLimit

  function setCallbackGasLimit(
uint32 callbackGasLimit
) external

Set Chainlink VRF callback gas limit.

This function is only callable by the owner.

Parameters:

NameTypeDescription
callbackGasLimituint32Chainlink VRF callback gas limit

setRequestConfirmations

  function setRequestConfirmations(
uint16 requestConfirmations
) external

Set Chainlink VRF request confirmations.

This function is only callable by the owner.

Parameters:

NameTypeDescription
requestConfirmationsuint16Chainlink VRF request confirmations

setKeyhash

  function setKeyhash(
bytes32 keyHash
) external

Set Chainlink VRF keyHash.

This function is only callable by the owner.

Parameters:

NameTypeDescription
keyHashbytes32Chainlink VRF keyHash

getLastRequestId

  function getLastRequestId(
) external returns (uint32 requestId)

Gets the last request id used by the RNG service

Return Values:

TypeDescription
uint32requestId The last request id used in the last request

getRequestFee

  function getRequestFee(
) external returns (address feeToken, uint256 requestFee)

Gets the Fee for making a Request against an RNG service

Return Values:

TypeDescription
addressfeeToken The address of the token that is used to pay fees
uint256requestFee The fee required to be paid to make a request

requestRandomNumber

  function requestRandomNumber(
) external returns (uint32 requestId, uint32 lockBlock)

Sends a request for a random number to the 3rd-party service

Some services will complete the request immediately, others may have a time-delay Some services require payment in the form of a token, such as $LINK for Chainlink VRF

Return Values:

TypeDescription
uint32requestId The ID of the request used to get the results of the RNG service
uint32lockBlock The block number at which the RNG service will start generating time-delayed randomness.

The calling contract should "lock" all activity until the result is available via the requestId

isRequestComplete

  function isRequestComplete(
uint32 requestId
) external returns (bool isCompleted)

Checks if the request for randomness from the 3rd-party service has completed

For time-delayed requests, this function is used to check/confirm completion

Parameters:

NameTypeDescription
requestIduint32The ID of the request used to get the results of the RNG service

Return Values:

TypeDescription
boolisCompleted True if the request has completed and a random number is available, false otherwise

randomNumber

  function randomNumber(
uint32 requestId
) external returns (uint256 randomNum)

Gets the random number produced by the 3rd-party service

Parameters:

NameTypeDescription
requestIduint32The ID of the request used to get the results of the RNG service

Return Values:

TypeDescription
uint256randomNum The random number

Events

RandomNumberRequested

  event RandomNumberRequested(
uint32 requestId,
address sender
)

Emitted when a new request for a random number has been submitted

Parameters:

NameTypeDescription
requestIduint32The indexed ID of the request used to get the results of the RNG service
senderaddressThe indexed address of the sender of the request

RandomNumberCompleted

  event RandomNumberCompleted(
uint32 requestId,
uint256 randomNumber
)

Emitted when an existing request for a random number has been completed

Parameters:

NameTypeDescription
requestIduint32The indexed ID of the request used to get the results of the RNG service
randomNumberuint256The random number produced by the 3rd-party service