在使用测试助手测试我们的 VRF getRandomNumber(s) 时,我们不断收到 Error: Transaction reverted: function call to a non-contract account at:
require(LINK.balanceOf(address(this)) > fee, "没有足够的 LINK 来初始化函数调用");
LINK 似乎在这里正确使用。非合约账户的含义/问题是什么?
对同一 RandomNumberConsumer 对象的其他测试是成功的。
contract RandomNumberConsumer is VRFConsumerBase {
[...]
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);
}
describe("getRandomNumber()", function() {
it("Should return a requestID", async function() {
const requestId = await randomNumberConsumer.getRandomNumber(12);
// checks on requestId
});
});