5 可升级合约_disableInitializers

`

contract MyToken is Initializable, ERC20Upgradeable,  UUPSUpgradeable { 

    /// @custom:oz-upgrades-unsafe-allow constructor
    constructor() {
        _disableInitializers();
    }

    function initialize() initializer public {
        __ERC20_init("MyToken", "TT");     
        __UUPSUpgradeable_init();
    }

部署MyToken后,初始化的函数initialize() 就不能再执行了,那我的合约如何初始化的?

使用OpenZeppelin Upgrades插件是可以正常部署合约的,但是不明白它是怎么初始化合约的。

请先 登录 后评论

最佳答案 2022-06-16 08:52

明白了,逻辑合约的initialize只能让代理合约来调用,可升级合约的存储都放在代理合约里面。

请先 登录 后评论

其它 2 个回答

julian
请先 登录 后评论
Tiny熊 - 布道者
  擅长:智能合约,以太坊
请先 登录 后评论