Tx Doctor / EVM 리버트 사전 / Solidity panic(산술·경계 오류)
EVM 오류: Solidity panic(산술·경계 오류) (Panic 0x11)
컨트랙트가 컴파일러가 삽입한 panic에 걸렸습니다. 오버플로, 0으로 나누기, 배열 범위 밖 읽기, assert() 실패입니다. 지갑이 아니라 컨트랙트 측 문제입니다.
원인
- 산술 오버플로 또는 언더플로(panic 0x11). 예상치 못한 0이나 극단값 계산에서 흔합니다.
- 0으로 나누기(0x12). 풀이 비어 있을 때의 가격이나 지분 계산입니다.
- 배열 범위 초과나 빈 배열 pop()(0x32 / 0x31). 상태 변경 후 인덱스가 오래되었습니다.
- assert() 실패(0x01). 컨트랙트가 의존하는 불변식이 깨졌습니다.
해결 방법
- 입력을 확인하세요. 더스트 금액, 0 주소, 빈 풀이 대부분의 panic을 유발합니다.
- 다시 견적을 내고 거래를 재구성해 인덱스와 수량을 현재 상태에 맞추세요.
- 정상 규모 거래에서도 반복되면 컨트랙트 버그입니다. 팀에 알리고 다른 라우트를 쓰세요.
지갑·익스플로러에서 보이는 모습
Panic(0x11) — arithmetic overflow
지금 이 문제가 발생했나요? 트랜잭션 해시를 붙여 넣으면 체인을 자동으로 찾아 실제 실패 원인을 디코딩합니다.
내 트랜잭션 진단하기