我在主网上将 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 修饰符。