在使用 Chainlink VRF 中,用户合约会继承 VRFConsumerBase,然后 override 函数fullfilrandomWords
,但是这个函数应该是会被 Chainlink 回调以输入随机数的吧,为什么是一个internal 函数,这样如何被 Chainlink 回调?
你使用的是 Chainlink VRF V2 获取随机数,用户合约会继承 VRFConsumerBaseV2
这个智能合约,在 VRFConsumerBaseV2
中,有两个函数:
fulfillRandomWords
:用来让用户写如何存储和使用随机数的逻辑。
rawFulfillRandomWords
:用来被 Chainlink VRF 的 VRFCoordinator合约调用。
其中你 override 的是fulfillRandomWords
,它并不是直接被 VRF 直接回调的,而是被rawFulfillRandomWords
调用的,所以可以事 internal
。