我正在尝试访问 chainlink 提供的 VRFCoordinatorMockV2.sol 合约。我已成功在本地安全帽网络上部署了模拟合约,并使用了它的一种方法。问题出在“fundSubscription”方法上。
相关代码: 01-部署-raffle.js
const FUND_AMOUNT = ethers.parseInt("1")
const transactionReceipt = await transactionResponse.wait()
subscriptionId = transactionReceipt.logs[0].args.subId
console.log(subscriptionId)
console.log(FUND_AMOUNT)
await vrfCoordinatorV2MockContract.fundSubscription(subscriptionId, FUND_AMOUNT)
相关输出:
1n
1000000000000000000n
An unexpected error occurred:
Error: ERROR processing /home/nimish/hh-fcc/hardhat-smartcontract-lottery/deploy/01-deploy-raffle.js:
Error: invalid BigNumber value (argument="value", value=undefined, code=INVALID_ARGUMENT, version=bignumber/5.7.0)
相关合约方式:
function fundSubscription(uint64 _subId, uint96 _amount) public {
if (s_subscriptions[_subId].owner == address(0)) {
revert InvalidSubscription();
}
uint96 oldBalance = s_subscriptions[_subId].balance;
s_subscriptions[_subId].balance += _amount;
emit SubscriptionFunded(_subId, oldBalance, oldBalance + _amount);
}
相关资料:
createSubscription()
方法及其输出中访问已部署的模拟明显与本地安全帽网络上的模拟智能合约交互。 Mock是由chainlink提供的,它的
fundSubscription()
方法不起作用。
解决了 我的 ```helper-hardhat-config.js`` 文件中存在一些不一致。