안녕하세요
저번시간에 간단히 이벤트를 정의하고 출력하는걸 알아 보았습니다.
오늘은 이벤트의 indexed 라는 키워드를 알아 보려고 합니다.
사실상 저희가 이벤트를 emit 을 하여 블록에 넣는다고 해도, 블록은 계속 생성되고 여러 이벤트에 겹쳐지게 될거예요.
그렇게된다면, 저희의 정보가 들어있는 특정 이벤트만 들고 와야하는데, 그럴때 쓰는게 indexed 라는 놈(?) 이랍니다.
즉 indexed를 써줌으로써 블록들안에 출력된 이벤트들을 필터하여 저희가 원하는 이벤트만을 가지고 올 수 있답니다.
indexed 도 매우 간단하답니다.
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0 <0.9.0;
contract Lec14 {
event numberTracker(uint256 indexed num, string str);
uint256 num =0;
function PushEvent(string memory _str) public {
emit numberTracker(num,_str);
num ++;
}
}
요런식으로 필터를 하려고 하는 파라메터 값에 indexed 만 써주면 된답니다.
꼭꼭꼭꼭꼭 영상을 시청해주시기 바랍니다.
영상에서 더 자세하게 indexed 가 어떻게 사용되는지 예제와 설명이 나와있어요