在可升级智能合约中初始化不可升级智能合约

问题描述 投票:0回答:1

我陷入了需要初始化 FunctionsClient 智能合约的问题。 但由于我的智能合约是可升级的智能合约,因此我没有构造函数而不是初始化函数,因此在这种情况下如何初始化 FunctionsClient。

提供示例 -

constructor() FunctionsClient(router) ConfirmedOwner(msg.sender) {}

问题-

function initialize(address _admin) FunctionsClient(router) public initializer {
        _grantRole(ADMIN_ROLE, _admin);
        _grantRole(DEFAULT_ADMIN_ROLE, _admin);
}
ethereum smartcontracts chainlink
1个回答
0
投票
  • initialize()
    只是一个普通的函数调用。

  • 初始化修饰符仅被调用一次

  • 您无法从初始化程序调用

    FunctionsClient(router)
    - 如果父合约具有您无法调用的初始化逻辑,否则您通常需要将此逻辑复制粘贴到初始化程序

© www.soinside.com 2019 - 2024. All rights reserved.