Tx Doctor / EVM 리버트 사전 / 실행 revert(사유 문자열 없음)
EVM 오류: 실행 revert(사유 문자열 없음)
컨트랙트가 호출을 거부했고 메시지도 반환하지 않았습니다. 사유 없는 require(), 디코더가 모르는 custom error, 또는 호출 내부의 가스 문제가 보통입니다.
원인
- 컨트랙트의 require()가 메시지 없이 실패해 revert 데이터가 비어 있습니다.
- custom error(Solidity 0.8.4+)가 발생했습니다. 4바이트 selector를 가지며 해당 컨트랙트의 ABI에서만 이름을 알 수 있습니다.
- 내부 호출에서 가스를 다 써서 맨 revert로 나타났습니다.
- 호출 안의 토큰 전송이 조용히 실패했습니다(전송 수수료 토큰, 블랙리스트, 일시정지된 컨트랙트).
해결 방법
- 탐색기 디버거(Tenderly, Etherscan의 Simulate)에서 호출을 재생하세요. 실패한 하위 호출을 알려주는 경우가 많습니다.
- 관련 토큰을 확인하세요. 일시정지, 블랙리스트, 전송 수수료 토큰은 메시지 없이 revert합니다.
- 가스 한도를 30~50% 올려 한 번 재시도해 out of gas를 배제하세요.
- 개발자라면 4바이트 selector를 컨트랙트의 custom error와 대조하세요.
지갑·익스플로러에서 보이는 모습
execution reverted (no data present; likely the contract threw a custom error)
지금 이 문제가 발생했나요? 트랜잭션 해시를 붙여 넣으면 체인을 자동으로 찾아 실제 실패 원인을 디코딩합니다.
내 트랜잭션 진단하기