Solidity 문법 - (11) Event
2023. 5. 30. 17:30ㆍBlockChain/Solidity 깨부수기 ( 유투브 강의 )
목차 |
1. Event |
2. Event 예제코드 |
1. Event
솔리디티에는 콘솔로그, 프린트와 같은 기능이 존재하지 않는다.
대신에 event라는 것이 존재하는데, event를 이용하면 블록체인 네트워크의 블록에 저장된다.
저장된 값은 블록에 저장되어 언제든지 꺼내서 사용할 수 있다.
이벤트를 선언하는 방법은 다음과 같다.
contract Event {
event [이벤트명](타입 [매개변수 명]);
function 함수명 () public {
emit [이벤트명](인자);
}
}
event를 선언하고 이벤트명을 지정해준뒤 타입과 매개변수명을 지정하고,
사용할 때에는 emit을 이용해서 사용한다.
2. Event 예제코드
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract ExamScore {
event exam(string indexed name, uint256 score);
function updateScore(string memory _name, uint256 _score) public {
emit exam(_name, _score);
}
}
위의 컨트랙트는 updateScore를 발동시킬때 이름과 점수를 받아 이벤트를 등록하는 기능을 한다.
이더리움 개발 툴인 remix IDE를 이용해서 위의 코드를 실행해보았다.
코드를 작성후 Compile [파일명].sol을 클릭하여 컴파일을 진행하고 아래 처럼 배포를 진행한다.
배포 한 후 updateScore를 실행하여 결과를 보면 logs에 이벤트가 잘 담겨있는 것을 확인할 수 있다.
※ Event에는 indexed라는 색인을 넣을 수 있는데, 이를 통해 조건을 걸어 해당 이벤트만 출력이 가능하다.
추후에 다른 포스팅에서 실습코드를 통해 indexed를 알아보자.
'BlockChain > Solidity 깨부수기 ( 유투브 강의 )' 카테고리의 다른 글
Solidity 문법 - (13) Mapping (0) | 2023.05.30 |
---|---|
Solidity 문법 - (12) 상속의 순서와 super (0) | 2023.05.30 |
Solidity 문법 - (10) 상속과 오버라이딩 (0) | 2023.05.30 |
Solidity 문법 - (9) Contract 생성자 함수 (0) | 2023.05.29 |
Solidity 문법 - (8) 인스턴스의 생성과 사용 (0) | 2023.05.29 |