繁体   English   中英

在 1 笔交易中检索 Chainlink VRF 生成的随机数

[英]Retrieve the random number generated by Chainlink VRF in 1 transaction

我试图在与 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 function。

Chainlink VRF 是一个 2 交易过程。

第一个事务请求随机数,第二个事务返回随机数。 1 go 中取不到随机数。

您可以在文档中阅读有关基本请求 model的更多信息。

你是letsgo function 将不起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM