EIP-838은 스마트 컨트랙트의 REVERT 명령이 반환하는 이유 문자열을 위한 ABI 명세를 제안합니다. 표준화된 오류 메시지 형식을 통해 사용자 경험과 디버깅을 개선하고자 합니다.
문제 배경
스마트 컨트랙트가 REVERT 시 임의의 데이터를 반환할 수 있지만, 이를 해석하는 표준 방식이 없었습니다. 지갑과 DApp이 오류 메시지를 일관되게 표시하기 어려웠습니다.
제안 내용
ABI 인코딩을 사용하여 오류 이유를 구조화된 형태로 표현하도록 합니다. Error(string) 선택자를 사용하는 방식과 커스텀 에러 타입을 정의하는 방법을 포함합니다.
Solidity와의 관계
Solidity의 require(condition, "message") 문법과 revert("message") 호출이 이 표준의 영향을 받았습니다. 커스텀 에러(custom errors)는 이 EIP의 논의에서 발전한 개념입니다.
현재 상태
아직 Draft 상태이나 실질적인 구현은 이미 Solidity와 주요 도구들에서 이루어졌습니다. 공식 표준화 완료를 위한 추가 작업이 필요한 상태입니다.