在Solidity文件中多次导入相同的文件

时间:2018-01-16 09:41:41

标签: ethereum solidity smartcontracts openzeppelyn

我创建了一个使用开放式zeppelin智能合约的众筹合同,我使用的文件是基础 Crowdsale.sol CappedCrowdsale.sol 扩展名。 因此,这两个文件都导入了SafeMath库: import' ../ math / SafeMath.sol';

问题是:为什么导入基础Crowdsale.sol也不导入库?或者我应该删除第二个导入,因为它只适用于你只想要de CappedCrowdsale.sol文件的情况吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您应该能够保留两个import语句,而不会增加已编译字节码的大小。请参阅Solidity文档中的以下内容:

Layout of a Solidity File

import "filename";

This statement imports all global symbols from “filename” (and symbols 
imported there) into the current global scope (different than in ES6 but 
backwards-compatible for Solidity).

编译器正在将SafeMath.sol文件中的符号加载到全局范围中。如果有两个导入命令,它们不会加倍。将被相同的符号覆盖(不会导致文件大小增加或重复导入语句将被忽略)。说实话,我不确定两者中的哪一个。

相关问题