我创建了一个函数,其中一个合约实例化另一个合约,它突然使整个合约超出了大小限制。这是函数:
function createContract(E.BKLiteMeta memory meta)
public
payable
returns(address)
{
require(meta.publisherAddress == msg.sender, "only pub");
return(address(new BKopyLite(meta)));
}
Run Code Online (Sandbox Code Playgroud)
Hardhatsize-contracts报告合约大小为 24.02。当我将函数更改为:
function createContract(E.BKLiteMeta memory meta)
public
payable
returns(address)
{
require(meta.publisherAddress == msg.sender, "only pub");
return(address(0);
}
Run Code Online (Sandbox Code Playgroud)
“size-contracts”报告的大小为 4.68。那么通过调用 new 大约会增加 20K 的大小?有人可以解释一下并建议解决方法吗?(BKopyLite合约的合约规模约为17k)
| 归档时间: |
|
| 查看次数: |
548 次 |
| 最近记录: |