Ethereum 在Solidity文件中多次导入同一文件

Ethereum 在Solidity文件中多次导入同一文件,ethereum,solidity,smartcontracts,openzeppelyn,Ethereum,Solidity,Smartcontracts,Openzeppelyn,我正在创建一个使用open zeppelin智能合约的众售合约,我使用的文件是basecrowdsale.sol和CappedCrowdsale.sol扩展名。 因此,这两个文件都在导入SafeMath库:import'../math/SafeMath.sol' 问题是:为什么导入basecrowdsale.sol不同时导入库?或者我应该删除第二个导入,因为它仅用于您只需要de CappedCrowdsale.sol文件的情况 谢谢 您应该能够在不增加编译字节码大小的情况下保留两个导入语句。参见

我正在创建一个使用open zeppelin智能合约的众售合约,我使用的文件是basecrowdsale.solCappedCrowdsale.sol扩展名。 因此,这两个文件都在导入SafeMath库:import'../math/SafeMath.sol'

问题是:为什么导入basecrowdsale.sol不同时导入库?或者我应该删除第二个导入,因为它仅用于您只需要de CappedCrowdsale.sol文件的情况


谢谢

您应该能够在不增加编译字节码大小的情况下保留两个导入语句。参见Solidity文档中的以下内容:

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

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).