Skip to main content
이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
신뢰할 수 있는 정보 출처. 아래 표는 공개 Raydium 저장소의 각 프로그램 error.rs에서 재생성됩니다. 프로그램이 업그레이드되고 새로운 변형이 추가되면 추출을 다시 실행하고(각 표 하단의 링크) 표에 추가하세요. 순서를 바꾸지 마세요. Anchor 에러 코드는 이름이 아닌 소스 순서로 할당되므로 순서를 바꾸면 통합자의 에러 처리가 깨집니다.

Anchor 에러 코드 작동 방식

Anchor는 프로그램의 ErrorCode 열거형의 각 변형에 6000부터 시작하는 숫자 코드를 할당합니다. 실패한 트랜잭션은 다음을 표시합니다:
  • 숫자 에러 코드 (예: 0x1771 = 6001) - 트랜잭션 로그에 표시됨
  • 에러 이름 (예: InvalidOwner) - IDL에서 제공됨
  • #[msg(...)] 문자열 - Anchor가 log_messages에 출력함
통합자는 메시지 문자열이 아닌 숫자 코드로 매칭해야 합니다(문자열은 버전 업그레이드 없이 다시 작성될 수 있습니다).

CPMM (표준 AMM) 에러

프로그램 ID: reference/program-addresses 참조. 소스: raydium-cp-swap/programs/cp-swap/src/error.rs. 재생성 소스: github.com/raydium-io/raydium-cp-swap — error.rs.

CLMM 에러

프로그램 ID: reference/program-addresses 참조. 소스: raydium-clmm/programs/amm/src/error.rs.
번호 재지정에 대한 참고. CLMM ErrorCode 열거형이 이 릴리스에서 번호가 다시 지정되었습니다: 5개의 레거시 변형(LOK, ZeroMintAmount, InvalidLiquidity, TransactionTooOld, InvalidRewardDesiredAmount)과 여러 오타(Liquitity, enought, emissiones)가 제거/수정되었으며, 11개의 새로운 변형이 추가되었습니다. Anchor가 소스 순서로 에러를 번호 지정하므로 6000 이상의 모든 코드는 사전 릴리스 빌드에 상대적으로 이동했습니다. 이전 버전에 대해 숫자 코드를 하드코딩한 클라이언트는 다시 매핑해야 합니다.
재생성 소스: github.com/raydium-io/raydium-clmm — error.rs.

AMM v4, Farm v3 / v5 / v6, LaunchLab 에러

이 프로그램들은 각각의 장에서 문서화됩니다(products/amm-v4/instructions, products/farm-staking/instructions, products/launchlab/instructions 참조). 이 프로그램들은 Anchor와 순수 Solana 에러 표면의 혼합을 사용하므로 에러 표는 여기가 아닌 명령어 참조 옆에 있습니다. 아래 코드는 이 장들에서 예약됩니다: LaunchLab 릴리스는 코드 60006021을 변경하지 않고 유지합니다. 이전 플랫폼 전역 액세스 에러를 제거하고 새로운 허용 계정 검증 에러에 6022를 할당합니다: 이전 PlatformGlobalAccessDenied(6022)와 InvalidPlatformGlobalAccess(6023) 변형이 제거되었습니다. 이전 IDL을 사용하여 6022를 디코딩하지 마세요.

SDK 에러를 프로그램 에러로 매핑

공식 TypeScript SDK는 온체인 에러를 SendTransactionError로 래핑하고, Anchor 프로그램의 경우 AnchorError로 래핑합니다:
클라이언트 측에서 Anchor를 사용하지 않는 경우 트랜잭션 로그를 파싱하세요:
패턴 Error Number: (\d+)은 Anchor 버전 전체에서 안정적이며 매칭하기에 안전합니다.

이 표 재생성

프로그램이 업그레이드되고 새로운 에러를 추가할 때 소스에서 다시 추출하세요:
새로운 변형이 추가될 때마다 reference/changelog를 업데이트하여 SDK를 업그레이드하는 통합자가 에러 핸들러를 새로고침해야 함을 알 수 있도록 하세요. 소스: