1笔交易取回Chainlink VRF生成的随机数 [英] Retrieve the random number generated by Chainlink VRF in 1 transaction

查看:17
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆