Openzeppelin Contract Wizard Doesn't work when selecting upgradeable

Hi

I tried the code generator on the openzeppelin wizard. However it doesn't seem to work so thought i would report it. Unless im doing something wrong.

OpenZeppelin Contracts Wizard

The vanilla code with no options works fine. I can run it in remix and the name and symbol properties are returned correctly.

However, when i click on upgradeability and select 'Transparent' and run this code in Remix. It doesn't seem to work. The name and symbol string's are not returned.

Anyone else experience this issue? Am i doing something wrong?

Without Upgrade - Works fine

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract MyToken is ERC20 {
    constructor() ERC20("MyToken", "MTK") {
        _mint(msg.sender, 1000 * 10 ** decimals());
    }

With upgrade - Doesnt work

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";

contract MyToken is Initializable, ERC20Upgradeable {
    /// @custom:oz-upgrades-unsafe-allow constructor
    constructor() initializer {}

    function initialize() initializer public {
        __ERC20_init("MyToken", "MTK");

        _mint(msg.sender, 1000 * 10 ** decimals());
    }
}

Hi @apple8er, upgradeable contracts are not fully supported in Remix. It is possible to use them in Remix, but you would need some manual steps to deploy separate proxy contracts that point to the implementation.

For upgradeable contracts, you can use the Upgrades Plugins that help with deployments from Hardhat or Truffle scripts.