Example - Get Random Number
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;
import {
GeneralRandcastConsumerBase,
BasicRandcastConsumerBase
} from "randcast-user-contract/user/GeneralRandcastConsumerBase.sol";
contract GetRandomNumberExample is GeneralRandcastConsumerBase {
/* requestId -> randomness */
mapping(bytes32 => uint256) public randomResults;
uint256[] public randomnessResults;
constructor(address adapter) BasicRandcastConsumerBase(adapter) {}
/**
* Requests randomness
*/
function getRandomNumber() external returns (bytes32) {
bytes memory params;
return requestRandomness(RequestType.Randomness, params);
}
/**
* Callback function used by Randcast Adapter
*/
function fulfillRandomness(bytes32 requestId, uint256 randomness) internal override {
randomResults[requestId] = randomness;
randomnessResults.push(randomness);
}
function lengthOfRandomnessResults() public view returns (uint256) {
return randomnessResults.length;
}
function lastRandomnessResult() public view returns (uint256) {
return randomnessResults[randomnessResults.length - 1];
}
}Last updated