이전글
이벤트
이번 글에서는 이벤트에 대해 알아보겠습니다.
이벤트는 솔리디티에서 로그를 남기기 위해 사용하는 문법입니다. 이벤트를 사용하기 위해서는 먼저 event를 선언해 준 뒤 emit으로 호출해야 합니다. 예시 코드는 다음과 같습니다.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;
contract Event {
uint n;
string s;
event Log(uint n, string s);
function log(uint _n, string calldata _s) public {
n = _n;
s = _s;
emit Log(n, s);
}
}
log 함수를 호출한 뒤 터미널에서 트랜잭션 결과를 확인해보면 다음과 같이 event가 log로 저장돼 있는 것을 알 수 있습니다.
추가적으로 이벤트에서는 indexed 키워드를 사용할 수 있습니다. indexed가 붙은 값은 인덱싱 되어 나중에 해당 값을 검색하고 추적하는데 도움을 줍니다.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;
contract Event {
uint n;
string s;
event Log(uint indexed n, string s);
function log(uint _n, string calldata _s) public {
n = _n;
s = _s;
emit Log(n, s);
}
}
지금까지 이벤트에 대해 알아봤습니다. 감사합니다.
다음글
'이더리움 > 솔리디티' 카테고리의 다른 글
[솔리디티] 12. Payable, Transfer, Send, Call (0) | 2023.08.02 |
---|---|
[솔리디티] 11. 에러 처리 (0) | 2023.07.28 |
[솔리디티] 9. 조건문, 반복문 (0) | 2023.07.26 |
[솔리디티] 8. 매핑, 구조체, 열거형 (0) | 2023.07.24 |
[솔리디티] 7. view 함수, pure 함수, 모디파이어, 오버로딩 (0) | 2023.07.20 |