Ethereum 如何从外部资源将图书馆连接到智能合同?
如何从外部(非本地)资源连接SafeMath.sol?这可能就是您的意思:Ethereum 如何从外部资源将图书馆连接到智能合同?,ethereum,solidity,openzeppelin,Ethereum,Solidity,Openzeppelin,如何从外部(非本地)资源连接SafeMath.sol?这可能就是您的意思: pragma solidity ^0.4.15; import './ERC20.sol'; import './SafeMath.sol'; Solidity支持直接从Github导入,但请记住在引用时不要包含提交或分支,它必须是user/project/file path/file.sol 请参见虽然James的回答是有效的,但我不建议从在线存储库链接合同的依赖项,这是非常不安全的,因为您的代码依赖于一些可以动态
pragma solidity ^0.4.15;
import './ERC20.sol';
import './SafeMath.sol';
Solidity支持直接从Github导入,但请记住在引用时不要包含提交或分支,它必须是user/project/file path/file.sol
请参见虽然James的回答是有效的,但我不建议从在线存储库链接合同的依赖项,这是非常不安全的,因为您的代码依赖于一些可以动态更新的在线源代码,并且您可能会得到不稳定的版本 我强烈建议您遵循OpenZeppelin合同,只允许您使用稳定版本,并轻松更新依赖项,以获得最新功能和错误修复:
pragma solidity ^0.4.0;
import "github.com/OpenZeppelin/zeppelin-solidity/contracts/math/SafeMath.sol";
contract MathExtended {
using SafeMath for uint;
function exec(uint a, uint b) returns (uint){
return a.add(b);
}
}
那么在你的合同中:
npm init -y
npm install -E zeppelin-solidity
import 'zeppelin-solidity/contracts/math/SafeMath.sol';
contract MyContract {
using SafeMath for uint;
...
}