event
를 활용해서 특정 일이 발생했을 때 다른 컨트랙트 또는 디앱 UI와 같은 컨트랙트 클라이언트에게 알려줄 수 있다.
Keywords
event
: 이벤트를 정의함emit
: 이벤트 발생 시점을 지정함
contract SimpleCoin {
// ...
event Transfer(address indexed from, address indexed to, uint256 amount); // Transfer 이벤트 정의
// ...
function transfer(address _to, uint256 _amount) public {
// ...
emit Transfer(msg.sender, _to, _amount); // Transfer 이벤트 발생
}
}
기록 및 검색
- 이더리움에서 이벤트는 실시간 알림 목적뿐만 아니라 장기적으로 로깅하는 목적으로도 사용한다.
- 이벤트는 블록체인의 트랜잭션 로그에 기록되며 나중에 분석을 위해 검색할 수 있다.
- 빠른 검색을 위해
indexed
를 통해 정의한 키로 색인화 한다.- 키는 복합 유형이어도 되며 최대 3개의 입력 매개변수를 포함한다.
event Transfer(address indexed from, address indexed to, uint256 amount); // indexed를 활용하여 from과 to 를 검색 키로 설정
솔리디티는 C언어
유형에서 제공하는 기본적인 조건문들을 모두 지원한다.
솔리디티에서 사용 가능한 조건문
- if ... else
- while
- do ... while
- for
Loop
는 continue
및 break
문을 모두 지원한다.