import
저희는 기존에 한 솔리디티 파일내에서 여러개의 스마트 컨트랙을 정의하고나서 각 스마트컨트랙 사이에
상속을하거나, 인스터스화를 했습니다.
한 파일 안이니까, 스마트 컨트랙들이 서로의 위치를 잘 알고 있습니다.
그러나, 솔리디티 파일 한개당 스마트 컨트랙을 한개씩 넣는다면, 여러개의 솔리디티 파일이 생길것입니다.
그렇다면, 스마트 컨트랙끼리 이어 줄려면, 서로의 솔리디티 파일의 위치를 잘 알아야겠죠.
이럴때 필요한것이 import 입니다.
스마트 컨트랙이든, library 든 import 를 통해서 위치를 명시해준답니다.
lec41_1.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 < 0.9.0;
library SafeMath0{
//0~255;
function add(uint8 a, uint8 b) internal pure returns (uint8) {
require(a+b >= a , "SafeMath: addition overflow");
return a + b;
}
}
contract HiSolidity{
event Hi(string _str);
function hi() public {
emit Hi("Hello solidity");
}
}
lec41.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 < 0.9.0;
import "./lec41_1.sol";
// import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v3.4/contracts/math/SafeMath.sol";
contract lec41 is HiSolidity{
using SafeMath0 for uint8;
uint8 public a;
// uint256 public maximum = 2 ** 256 -1;
function becomeOverflow(uint8 _num1,uint8 _num2) public {
a = _num1.add(_num2);
}
}
솔리디티 강좌 43강(마지막강) - 리믹스와 메타마스크 연결, 스마트 컨트랙 testnet 에 배포하기 (3) | 2021.10.16 |
---|---|
솔리디티 강좌 42강 - 3의 배수 번째 사람에게 적립된 이더 주는 스마트 컨트랙 (2) | 2021.10.14 |
솔리디티 강좌 40강 - library 라이브러리 (0) | 2021.10.10 |
솔리디티 강좌 38강 - enum (0) | 2021.10.07 |
솔리디티 강좌 37강 - call Vs delegate call (0) | 2021.10.06 |