이더리움/솔리디티

[솔리디티] 10. 이벤트

라이튼 2023. 7. 27. 22:53

이전글

 

[솔리디티] 9. 조건문, 반복문

이전글 [솔리디티] 8. 매핑, 구조체, 열거형 이전글 [솔리디티] 7. view 함수, pure 함수, 모디파이어, 오버로딩 이전글 [솔리디티] 6. 함수, 가시성 지정자, 반환 값, 지역 변수 이전글 [솔리디티] 5. 연

kwjdnjs.tistory.com

 

이벤트

 이번 글에서는 이벤트에 대해 알아보겠습니다.

 

 이벤트는 솔리디티에서 로그를 남기기 위해 사용하는 문법입니다. 이벤트를 사용하기 위해서는 먼저 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);
    }
}

 

 지금까지 이벤트에 대해 알아봤습니다. 감사합니다.

 

 

다음글

 

[솔리디티] 11. 에러 처리

이전글 [솔리디티] 10. 이벤트 이전글 [솔리디티] 9. 조건문, 반복문 이전글 [솔리디티] 8. 매핑, 구조체, 열거형 이전글 [솔리디티] 7. view 함수, pure 함수, 모디파이어, 오버로딩 이전글 [솔리디티] 6.

kwjdnjs.tistory.com