Solidity의 이벤트 작동 방식 및 이벤트가 필요한 이유
이벤트 정의
이벤트를 정의하려면
event
키워드로 시작해야 합니다.event TicketContractCreated();
이벤트에는 추가 매개변수가 있을 수 있습니다. 데이터를 담을 수 있는 구조체라는 뜻입니다. 데이터 유형은 Solidity 언어에서 사용하는 것과 동일합니다.
event TicketCreated(address ticketHolder);
매개변수
이벤트 구조체는 여러 매개변수를 보유할 수 있습니다. 이러한 매개 변수의 이름을 지정할 수 있지만 이는 선택 사항이며 데이터 유형만 제공할 수 있습니다.
event TicketCreated(address ticketHolder, uint256 ticketId);
특정 이벤트를 수신할 때 로그를 필터링한다고 가정합니다. 인덱싱해야 하는 매개변수를 지정해야 합니다. 최대 3개의 매개변수만 인덱싱할 수 있는 제한이 있습니다. 인덱싱 매개변수는 비용 효율적이며 거래를 채굴하는 데 더 많은 가스 요금이 부과된다는 점을 명심하십시오.
event TicketCreated(address indexed ticketHolder, uint256 ticketId);
이벤트 보내기
특정 작업이 발생하면
emit
키워드와 이벤트 이름을 사용하여 이벤트를 해제할 수 있습니다.emit TicketContractCreated();
이벤트에 매개변수가 있는 경우 매개변수를 정의한 것과 동일한 순서로 괄호 안에 매개변수를 지정할 수 있습니다.
emit TicketCreated(msg.sender);
내보낸 이벤트 보기
방출된 이벤트를 보려면 Remix IDE , Etherscan 블록 탐색기 또는 Ethers.js , web3.js 또는 기타와 같은 체인과 같은 Ethereum과 상호 작용하는 라이브러리를 사용할 수 있습니다. 이를 수행하는 방법은 이 블로그 게시물의 범위를 벗어납니다.
TL; DR
Solidity 프로그래밍 언어의 이벤트는 다른 당사자에게 어떤 일이 발생했음을 알리는 좋은 방법입니다. 트랜잭션 상태에만 의존할 수는 없습니다. 이벤트는 데이터를 보유할 수 있으며 다른 이벤트는 예를 들어 웹 앱에서 이벤트를 필터링하고 이에 반응할 수 있습니다.
연결
Reference
이 문제에 관하여(Solidity의 이벤트 작동 방식 및 이벤트가 필요한 이유), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/fassko/how-events-in-solidity-work-and-why-are-they-needed-4aa5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)