Proxy + upgrade: Linearization of inheritance graph impossible

Hi, I use proxy contract and I need to use Ownable too.
My main contract, import another contracts

Other Contract:

pragma solidity >=0.8.0 <0.9.1;

import "./CoreData.sol";
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";

abstract contract Tokens is CoreData, OwnableUpgradeable{
    ....

Main contact:


// SPDX-License-Identifier: MIT

pragma solidity >=0.8.0 <0.9.1;

import "./Tokens.sol";
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";


    contract Payblock is Tokens, Initializable, OwnableUpgradeable {

The error is: Linearization of inheritance graph impossible

Any idea?

try to remove OwnableUpgradeable from Payblock contract.
Payblock is a Tokens and Tokens is OwnableUpgradeable already

1 Like