Solidity
理解所有者分配的問題
假設我有 3 個契約,即 Owner、B 和 C:
contract Owned { address public owner; constructor() public { owner = msg.sender; } modifier onlyOwner { require(msg.sender == owner); _; } }
契約乙
contract B is Onwed{ constructor() public{ uint256 totalSupply = 10000000000; // any amount } }
契約 C
我想
contract B
在契約 C 中創建 , 的實例。有兩種方法可以做到contract C{ constructor() public{ B instance = B(address_of_deployed_B); // Method 1 B instance = new B(); // Method 2 B instance2 = new B(); // 2 instances of B } }
我在這裡真正想要的是,
owner
契約的設置為contract C's address
.但以下情況正在發生。
當我嘗試以這種方式實例化時,**方法 1工作正常,**但由於它已經部署,我無法正確設置 owner。 方法 2無法在建構子中部署 2 個合約實例(顯示還原)。
$$ Edit 1 $$ 方法2工作正常。但是,如果您初始化同一契約的 2 個實例,它就不起作用。
這裡的問題是它的氣體用完了。
也許,在這種情況下,它可以工作,但如果你有像 之類的大契約
ERC20 TOKEN
,它可能會耗盡 gas 並且可能無法部署。