프리컴파일에서 이벤트를 발행하는 방법
utils.EmitEvent 헬퍼를 사용하여 EVM 로그를 생성하는 방법에 대한 빠른 가이드입니다.
사전 요구사항
- Go
- 마루 프리컴파일 아키텍처
인자 이해하기
EmitEvent의 args 가변 인자는 Solidity 이벤트 정의에 나타나는 순서 그대로 인덱싱된 인자(토픽)와 인덱싱되지 않은 인자(데이터)를 모두 포함해야 합니다.event MyEvent(uint256 indexed id, string name); 참고: 위 이벤트의 경우, `id` (uint256)를 먼저 전달하고 그 다음 `name` (string)을 전달해야 합니다.
에러 처리
항상 반환된 에러를 확인하세요. 흔한 에러로는
EventNotFound (이름 오타) 또는 ArgCountMismatch가 있습니다.if err := utils.EmitEvent(...); err != nil {
// 내부 에러를 로그로 남기되, 구현 세부 정보 유출을 막기 위해 EVM에는 일반 에러를 반환할 수 있습니다.
return nil, err
}