首页 > 解决方案 > Solidity 中的多重继承,标识符未找到或不唯一,这是怎么回事?

问题描述

我正在尝试获取随机数并在同一合约中使用链环警报。为此,我想使用solidity 的多重继承特性。使用我的代码的以下拼接:

pragma solidity ^0.6.2;

import "https://raw.githubusercontent.com/smartcontractkit/chainlink/develop/evm-contracts/src/v0.6/VRFConsumerBase.sol";
//import "github.com/smartcontractkit/chainlink/evm-contracts/src/v0.6/ChainlinkClient.sol";

contract Lottery is VRFConsumerBase, ChainlinkClient {

在remix中对此进行测试,我收到以下错误:

browser/lottery4.sol:6:38: DeclarationError: Identifier not found or not unique.
contract Lottery is VRFConsumerBase, ChainlinkClient {
^-------------^

我尝试混合导入和继承顺序,但没有成功。我只能假设它与进口有关。

当我取消注释第二个导入时,即:

import "https://raw.githubusercontent.com/smartcontractkit/chainlink/develop/evm-contracts/src/v0.6/VRFConsumerBase.sol";
import "github.com/smartcontractkit/chainlink/evm-contracts/src/v0.6/ChainlinkClient.sol";

我收到以下错误,我只假设这是由于继承。

browser/lottery4.sol:4:1: DeclarationError: Identifier already declared.
import "github.com/smartcontractkit/chainlink/evm-contracts/src/v0.6/ChainlinkClient.sol";
^----------------------------------------------------------------------------------------^
https://raw.githubusercontent.com/smartcontractkit/chainlink/develop/evm-contracts/src/v0.6/interfaces/LinkTokenInterface.sol:3:1: The previous declaration is here:
interface LinkTokenInterface {
^ (Relevant source part starts here and spans across multiple lines).

我错过了什么?

标签: inheritanceimportsolidity

解决方案


推荐阅读