ethereum - Solidity 文件中同一文件的多次导入

标签 ethereum solidity smartcontracts openzeppelyn

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

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

谢谢!

最佳答案

您应该能够保留两个导入语句,而不会增加已编译字节码的大小。请参阅 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 文件中的符号加载到全局范围中。如果有两个导入命令,它们不会加倍。将被相同的符号覆盖(不会导致文件大小增加或重复的导入语句将被忽略)。老实说,我不确定这两者中的哪一个。

关于ethereum - Solidity 文件中同一文件的多次导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48278213/

相关文章:

compiler-errors - 无法编译多个 Solidity 版本

currency - 销毁智能合约中的代币/硬币

node.js - 如何使用 eris 的 javascript 编译一段 Solidity 代码?

ethereum - uint 发起什么操作?

javascript - web3js eth vs 账户 vs 个人

javascript - 智能合约方法不是 web3 中的函数

bash - 与托管以太坊节点的操作系统交互

transactions - 智能合约和交易有什么区别?

blockchain - : in memory , 存储在文件或数据库中的实际区 block 链状态数据在哪里?

javascript - 区 block 链中如何保护源代码不被篡改?