1笔交易取回Chainlink VRF生成的随机数 [英] Retrieve the random number generated by Chainlink VRF in 1 transaction
本文介绍了1笔交易取回Chainlink VRF生成的随机数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用Chainlink VRF在1个事务中获取可靠的随机数。
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
import "@chainlink/contracts/src/v0.8/VRFConsumerBase.sol";
contract RandomNumberConsumer is VRFConsumerBase {
bytes32 internal keyHash;
uint256 internal fee;
uint256 internal randomResult;
constructor()
VRFConsumerBase(
0xdD3782915140c8f3b190B5D67eAc6dc5760C46E9, // VRF Coordinator
0xa36085F69e2889c224210F603D836748e7dC0088 // LINK Token
)
{
keyHash = 0x6c3699283bda56ad74f6b855546325b68d482e983852a7a82979cc4807b641f4;
fee = 0.1 * 10 ** 18; // 0.1 LINK (Varies by network)
}
function getRandomNumber() public returns (bytes32 requestId) {
require(LINK.balanceOf(address(this)) >= fee, "Not enough LINK - fill contract with faucet");
return requestRandomness(keyHash, fee);
}
function fulfillRandomness(bytes32 requestId, uint256 randomness) internal override {
randomResult = randomness;
}
function letsGo() public {
bytes32 requestId;
requestId = getRandomNumber();
fulfillRandomness(requestId, 123456);
}
}
区块链中有没有办法获得随机结果?
我正在专门查看我的letsGo
函数。
推荐答案
链链接VRF是%2事务进程。
第一个事务请求随机数,第二个请求返回随机数。您不能一下子获得随机数。
您可以在文档中阅读有关basic request model的更多信息。
您的letsgo
函数将不起作用。
这篇关于1笔交易取回Chainlink VRF生成的随机数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文