我在主网上将 VRF chainLink 费用设置为 0.1 LINK 而不是 2 LINK,如何解决这个问题? (已经部署)
I set VRF chainLink fee on 0.1 LINK instead of 2 LINK on mainnet, how to fix this issue? (already deploy)
我们已经在主网上部署了 VRF 合约,并将其添加到我们的主合约中。
但是有一个问题,我们将费用限制设置为 0.1 LINK 而不是 2 LINK,现在看起来不起作用。
你能给我们解决这个问题吗?
constructor ()
VRFConsumerBase(
0xf0d54349aDdcf704F77AE15b96510dEA15cb7952, // VRF Coordinator
0x514910771AF9Ca656af840dff83E8264EcF986CA// LINK Token
)
{
keyHash = 0xAA77729D3466CA35AE8D28B3BBAC7CC36A5031EFDC430821C02BC31A238AF445;
**fee = 0.1 * 10 ** 18; // 0.1 LINK**
}
这里唯一的解决方案是使用正确的费用集重新部署合同。
部署到区块链的代码是不可变的,并且由于您已硬编码其中的费用,因此无法更改。将来,您始终可以创建一个 setter 函数,该函数只能由允许您更改费用的合约所有者访问。一个例子:
function setFee(uint256 _fee) public onlyOwner {
fee = _fee;
}
此函数使用 OpenZeppelin Ownable contract 获取 onlyOwner 修饰符。
我们已经在主网上部署了 VRF 合约,并将其添加到我们的主合约中。 但是有一个问题,我们将费用限制设置为 0.1 LINK 而不是 2 LINK,现在看起来不起作用。 你能给我们解决这个问题吗?
constructor ()
VRFConsumerBase(
0xf0d54349aDdcf704F77AE15b96510dEA15cb7952, // VRF Coordinator
0x514910771AF9Ca656af840dff83E8264EcF986CA// LINK Token
)
{
keyHash = 0xAA77729D3466CA35AE8D28B3BBAC7CC36A5031EFDC430821C02BC31A238AF445;
**fee = 0.1 * 10 ** 18; // 0.1 LINK**
}
这里唯一的解决方案是使用正确的费用集重新部署合同。
部署到区块链的代码是不可变的,并且由于您已硬编码其中的费用,因此无法更改。将来,您始终可以创建一个 setter 函数,该函数只能由允许您更改费用的合约所有者访问。一个例子:
function setFee(uint256 _fee) public onlyOwner {
fee = _fee;
}
此函数使用 OpenZeppelin Ownable contract 获取 onlyOwner 修饰符。