event 라는 것은 블록체인 네트워크의 블록에 특정값을 기록하는 것.

예를 들어 송금하기 라는 함수가 있다고 가정하였을 때, 보낸 사람의 계좌와 금액이 이벤트로 출력이 되어서 블록체인 안에 기록이 된다는 것.

이렇게 로그를 사용하여, 블록에 각인 시키는 것은 일반적으로 string이나 다른 값들을 스마트 컨트랙트에 저장하는 것보다 효율적.

// SPDX-License-Identifier: MIT

pragma solidity >=0.8.0 <0.9.0;

contract Test {
    event info(string name, uint256 money);
}

event 이벤트의 이름 (타입과 이름);

이런 식으로 선언해서 사용 가능

// SPDX-License-Identifier: MIT

pragma solidity >=0.8.0 <0.9.0;

contract Test {
    event info(string name, uint256 money);

    function sendMoney() public {
        emit info("Lee SeongHyun", 1000);
    }
}

sendMoney 함수를 보면 emit을 통해서 이벤트를 방출하는 것을 알 수 있음.

emit 이벤트의 이름 (이벤트 파라미터 값 넣기);

info라는 이벤트는 string과 uint256을 받아서 위에 보이는 바와 같이 사용 가능.

스크린샷 2024-01-29 오전 11.56.15.png

logs 부분에 info 이베트가 잘 출력됐음을 확인할 수 있음

즉, 블록 안에 이벤트가 저장이 된 것.

블록안에 저장이 되었기에 언제든지 들고와서 사용 가능.