Event와 Logs

Events는 Smart Contract 상에서 사용자가 알림을 받고 싶은 내용을 등록하는 것이다. 이를 통하여 거래의 생성이나 변경등을 확인(logs를 통해)하고 그에 맞는 행동을 할 수 있게 도와준다.

스크린샷 2024-01-08 오후 12.54.40.png

Event 등록

Event는 Solidity 코드 내에서 event로 정의할 수 있으며, 원하는 코드 위치 내에서 emit을 이용해서 Event 발생시킬 수 있다.

Log로 보여주고 싶은 데이터를 지정하여 외부 서비스에서 조회가 가능하다.

스크린샷 2024-01-08 오후 12.55.07.png

Event 발생 결과 - 1

Event는 code상에서 확인이 가능하지만 실제로 블록체인 상에서 확인 할 때는 해당 Transaction의 Receipt을 보면 logs로 전체 Event 발생 내역을 확인할 수 있다.

스크린샷 2024-01-08 오후 12.55.26.png

Event 발생 결과 - 2

조회 등록 시에 어떤 방식으로 했느냐에 따라서 출력의 결과도 달라진다. Logs로 조회 하는 경우 Receipt에서 Logs 중 Filter한 결과값만 조회된다.

스크린샷 2024-01-08 오후 12.55.45.png

Event 발생 결과 - 3

조회 등록 시에 어떤 방식으로 했느냐에 따라서 출력의 결과도 달라진다. Contract상의 Event를 등록하는 Contract.events.<Event명>으로 하면 해당 Event의 정보가 ABI와 매칭되어 나온다.

스크린샷 2024-01-08 오후 12.56.00.png

Event 발생 결과 - 4

Etherscan Explorer에서는 해당 Transaction에서 발생한 모든 Logs를 확인할 수 있다.

스크린샷 2024-01-08 오후 12.56.15.png

The Graph