[솔리디티 깨부수기] event2 - indexed

2024. 6. 4. 21:50·자기개발/블록체인
728x90

이 글은 인프런 "솔리디티 깨부수기" 강의를 수강한 후 정리한 글입니다. 

 

[지금 무료] 솔리디티 깨부수기 | D_One - 인프런

D_One | 이 강의를 통해서, 스마트 컨트랙 제작을 위한 솔리디티 언어를 배울수 있습니다., 코딩이 처음인 분들도 OK! 처음 배우는 솔리디티, 쉽게 시작해보세요. 강의 주제 📖 [사진] 이 강의에서

www.inflearn.com


 

 

indexed는 이벤트의 키워드로 블록들안에 출력된 이벤트들을 필터하여 특정한 이벤트 값들을 가지고 올 수 있다.

// SPDX-License-Identifier: MIT

pragma solidity >=0.8.0 <0.9.0;

contract Lec14 {
    event numberTracker(uint256 indexed num, string str);
    event numberTracker2(uint256 indexed num, string str);

    uint256 num =0;
    function PushEvent(string memory _str) public {
        emit numberTracker(num,_str);
        emit numberTracker2(num,_str);
        num ++;
    }
}

위의 예제에서 numberTracker2는 indexed가 있어 num을 통해 특정 이벤트 값들을 갖고 올 수 있다.

예를 들어 numberTraker2가 10개의 이벤트가 있다고 가정하고, 5라는 num만 필요하다면, 5만 입력하여 numberTraker2의 이벤트를 가져올 수 있다.

numberTraker는 동일한 가정에서 5라는 num만 필요하다면, 5만 적힌 이벤트를 갖고 올 수 없다.

즉, indexed를 통해 원하는 이벤트 값들을 필터링하여 갖고올 수 있음을 알 수 있다.

 

배포를 진행하면 logs에서 numberTracker와 numberTracker2가 출력된다. 

위에는 출력은 하되 특정 값들을 갖고 오는 상태가 아니기 때문에 차이점을 알아보기 위해 vscode로 확인해보겠다. 

 

위에와 같이 js 코드를 작성할 수 있으며, getPastEvents 함수를 생성하여 num을 통해 필터링을 진행할 수 있다. num은 2나 1일 때인 이벤트를 갖고올 수 있다.

fromBlock과 toBlock은 블록들의 범위를 나타낸다. 

 

이후 3개의 이벤트를 생성하면 블록안에 들어가게 되고, numberTracker은 indexed를 사용하지 않았기 때문에 필터링이 안되고 전부 출력되며, numberTracker2는 두 번째와 첫 번째 이벤트만 출력된다. 

'자기개발 > 블록체인' 카테고리의 다른 글

[Blockchain A-Z:블록체인 만들기 완벽강의] SHA256 Hash 알고리즘  (0) 2024.07.13
[솔리디티 깨부수기] 상속 : super, 상속의 순서  (0) 2024.06.12
[솔리디티 깨부수기] event 정의  (0) 2024.06.04
[솔리디티 깨부수기] 두 개 이상 상속하기  (0) 2024.05.28
[솔리디티 깨부수기] overriding 오버라이딩  (0) 2024.05.28
'자기개발/블록체인' 카테고리의 다른 글
  • [Blockchain A-Z:블록체인 만들기 완벽강의] SHA256 Hash 알고리즘
  • [솔리디티 깨부수기] 상속 : super, 상속의 순서
  • [솔리디티 깨부수기] event 정의
  • [솔리디티 깨부수기] 두 개 이상 상속하기
동굴러버의 백업단지
동굴러버의 백업단지
365일 중 364일 동굴에 있고 싶은 동굴러버의 속세와의 소통창구 겸 백업단지 저장소 (※급 잠수 및 와다다 백업 게시글 주의※)
  • 동굴러버의 백업단지
    새벽 1시 19분
    동굴러버의 백업단지
  • 전체
    오늘
    어제
    • 분류 전체보기 (120)
      • CS (0)
      • 자기개발 (97)
        • Linux (11)
        • Web (13)
        • Unity (24)
        • 블록체인 (37)
        • 포너블 (4)
        • 디지털포렌식 (0)
      • 문제 풀이 (16)
      • 잡다한 지식 (5)
      • 외출일지 (2)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
동굴러버의 백업단지
[솔리디티 깨부수기] event2 - indexed
상단으로

티스토리툴바