Solidity 工厂合约

Solidity 工厂合约是一种批量部署合约的方式。

通过一个工厂合约创建部署合约,并记录下所有部署合约的地址。

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

contract Account {
    address public bank;
    address public owner;

    constructor(address _owner) payable{
        bank = msg.sender;
        owner = _owner;
    }
}

contract Factory {
    Account[] public accounts;

    function createAccount(address owner) external payable{
       accounts.push(new Account{value:123}(owner));
       accounts.push(new Account{value:456}(owner));
    }
}

我们只需要部署 Factory 合约,运行 createAccount 方法,就会自动创建其它合约。

下一章:Solidity 库合约 library

Solidity 智能合约中通用的代码可以提取到库 library,以提高代码的复用性和可维护性。库 library 是智能合约的精简版,就像智能合约一样,位于区块链上,包含可以被其他合约使用的代码 ...