Chainlink
Chainlink VRF中的fulfillRandomness?
執行
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
函式的參數?
在您的請求交易
requestRandomness
中返回一個 bytes32 並發出一個鏈下 Chainlink 節點正在尋找的事件。一旦鏈下 Chainlink 節點讀取到事件,它就會創建隨機數,並且該節點是呼叫
fulfillRandomness
函式的節點**,並將它創建的隨機數與原始 requestId 一起傳遞。使用鏈下預言機遵循請求和接收週期。您在第二次交易中獲得隨機數。
**從技術上講,節點呼叫
vrf coordinator
,然後呼叫fulfillRandomness 函式。但是,如果它令人困惑,請不要擔心。