// 1. 컨트랙트 선언
contract Sample {
// 2. 상태 변수 선언
uint256 data;
address owner;
// 3. 이벤트 정의
event logData(uint256 dataToLog);
// 4. 함수 변경자 정의
modifier onlyOwner() {
if(msg.sender != owner) throw;
_;
}
// 5. 생성자
function Sample(uint256 initData, address initOwner){
data = initData;
onwer = initOwner;
}
// 6. 함수(메소드)정의
function getData() returns (uint256 returned) {
return data;
}
function setData(uint256 newData) onlyOnwer {
logData(newData);
data = newData;
}
}
접근제어 지정자 Visibility
external : 외부 컨트랙트만 접근가능 (같은 함수 내부에서 호출X), 상태변수는 external 불가능
internal : 컨트랙트 내부 호출가능, 상속받은 컨트랙트 호출가능, 상태변수는 디폴트가 internal
public : 컨트랙트 내부 호출 가능, 상속받은 컨트랙트 호출가능, 외부컨트랙트 호출가능
private : 컨트랙트 내부만 호출가능
'Blockchain > solidity' 카테고리의 다른 글
Abi 파일의 역할 (0) | 2023.03.15 |
---|---|
Smart Contract의 구조 + contract 정의 (0) | 2023.03.03 |
event의 역할 + Transaction log (0) | 2023.03.02 |
bytes32 자료형을 사용하는 이유? vs bytes (0) | 2023.03.02 |