I am using Chainlink VRF2 where I receive random numbers via a callback to this function:
function fulfillRandomWords(
uint256, /* requestId */
uint256[] memory randomWords
) internal override {
s_randomWords = randomWords;
}
This function supposedly will be called by VRF coordinator but the fulfillRandomWords()
function has the access modifier internal
. How does the VRFCoordinator send this function a random number if it is an external contract?