在执行requestRandomness函数之后
function getRandomNumber(uint256 userProvidedSeed) public returns (bytes32 requestId) {
require(LINK.balanceOf(address(this)) >= fee, "Not enough LINK - fill contract with faucet");
return requestRandomness(keyHash, fee, userProvidedSeed);
}默认情况下,它返回requestId,但它是否也返回randomness作为fulfillRandomness函数中的参数?
function fulfillRandomness(bytes32 requestId, uint256 randomness) internal override {
randomResult = randomness;
}还是传递任何随机数作为fulfillRandomness函数的参数?
发布于 2021-03-29 00:51:01
在您的请求事务中,requestRandomness返回一个bytes32,它发出一个离链链接节点正在寻找的事件。
一旦离链链接节点读取事件,它就会创建随机数,节点就是调用fulfillRandomness函数**的节点,它将传递它与原始requestId一起创建的随机数。
使用离链甲骨文遵循请求和接收周期。在第二个事务中得到随机数。
*在技术上,节点调用vrf coordinator,然后后者调用fulfillRandomness函数。不过,如果这让人困惑的话,别担心。*
https://ethereum.stackexchange.com/questions/96342
复制相似问题