在solidiy 中如何发合约,使用合约发布合约


使用js或者脚本发布合约是我们经常操作的,但是在solidty中如何发布新的合约呢? 比如,我要做一个储蓄池,池子中需要每个调用者都可以从外部发布自己的 erc20 token,就遇到了这种需求。
最主要的就是使用 new 关键字,无论是想创建一个合约的多个实例,还是只想创建一个,都可以使用Solidity 文档new中简要描述的关键字来做到这一点。
附上代码
pragma solidity ^0.8.4;
import "./myErc20Token.sol";
import "hardhat/console.sol";
contract MomContract {        
function createToken(string memory name_, string memory symbol_) publiv onlyOwner {
    // 创建合约
    myErc20Token tokenObj = new myErc20Token(name_, symbol_);
    // 发币
    tokenObj._mint(0x000000..., 21000000 * 10 ** 8);
    // 可以得到合约地址
    console.log(address(tokenObj))
    }
}