Upgradeable contracts can not be edited on opensea platform

Hey. I used the ERC721PresetMinterPauserAutoIdUpgradeable preset to deploy my erc721 contract. Then I mint some NFT using the deployed contract. Also I tried to upgrade the contract and it was successful, but there is one problem. When an erc721 contract is deployed on the blockchain and its first NFT was minted, then we can see this contract as a collection on the Opensea marketplace. The owner of the contract can edit the config of the collection on the Opensea, like its logo, description and royalty. When I use these upgradeable contracts, the platform does not allow me to edit the collection. Here is the problem. Any help or suggest would be appreciated <3.

Btw, I used non-upgradeable contracts and they were OK. I can edit their corresponding collections on the Opensea.

:computer: Environment

I used truffle, and also tried hardhat to deploy.
solidity compiler version 0.8.2
openzeppelin contracts version ^4.2.0

In case someone encountered with the same problem:
Opensea tries to call the function owner() from the contract, so if you use AccessControl module, you should also define the owner() function in your contract that returns the owner address.

Good luck <3.

Hello @navid,

Thank you for your contribution! Have you tried to list a collection on OpenSea with an upgradeable smart contract?

Hi,

same problem here.
Does this mean I should import the Ownable contract

import "@openzeppelin/contracts/ownership/Ownable.sol";

contract MyContract is Ownable {
    function normalThing() public {
        // anyone can call this normalThing()
    }

    function specialThing() public onlyOwner {
        // only the owner can call specialThing()!
    }
}

ADDITIONALLY to the AccessControlUpgradable

import "@openzeppelin/contracts/access/AccessControlUpgradable.sol";

or just add a function like

    function owner() public view virtual returns (address) {
        return _roles[0x00].members[0];
    }

Thanks in advance

Hi I tested with adding import "@openzeppelin/contracts/ownership/Ownable.sol";. Transferred Ownership and made sure, that the owner = user on Opensea. But unfortunately I cannot edit the collection either.
The only thing that changed is, that i can move pictures into other collection. But name etc. cannot been changed.
Is that correct?

By the way I defined a contractURI, but I thought that I at least could see whats been configured.

Thanks

Sorry, was just to stupid to find this button on the very top:

So it works with import "@openzeppelin/contracts/ownership/Ownable.sol";