小编the*_*udi的帖子

智能合约 - Chainlink VRF / @openzeppelin/truffle-upgrades 兼容性

现在我正在使用@openzeppelin/truffle-upgrades将基本智能合约转换为可升级的智能合约

因此,我遵循了文档中的所有必需步骤,但仍然存在一个问题:

Truffle-Upgrades 要求我用初始化器替换构造函数,这对我来说很好,但不适用于导入到我自己的智能合约中的智能合约,示例:

pragma solidity 0.6.6;

import "@chainlink/contracts/src/v0.6/VRFConsumerBase.sol";

contract Sample is VRFConsumerBase {
    
    address private owner;
    
    bytes32 internal keyHash;
    uint256 internal fee;
    
    constructor(address _owner)
        VRFConsumerBase(
            0xa555fC018435bef5A13C6c6870a9d4C11DEC329C, // VRF Coordinator
            0x84b9B910527Ad5C03A9Ca831909E21e236EA7b06  // LINK Token
        ) public
    {
        keyHash = 0xcaf3c3727e033261d383b315559476f48034c13b18f8cafed4d871abe5049186;
        fee = 0.1 * 10 ** 18; // 0.1 LINK (Varies by network)
        
        owner = _owner;
    }

    ...
Run Code Online (Sandbox Code Playgroud)

因此松露抱怨道:

../@chainlink/contracts/src/v0.6/VRFConsumerBase.sol:182: Contract `VRFConsumerBase` has a constructor
Define an initializer instead
Run Code Online (Sandbox Code Playgroud)

由于它是第三方软件包,我无法替换它:)

有什么架构技巧/配置吗?

我浏览了几乎所有关于 chainlink/truffle 的文档,但没有找到这个问题的解决方案。

谢谢!

更新1:

首先,我将 VRFConsumerBase 合约修改为:(我还删除了注释以使其简短..) …

random numbers solidity truffle chainlink

5
推荐指数
0
解决办法
1508
查看次数

标签 统计

chainlink ×1

numbers ×1

random ×1

solidity ×1

truffle ×1