Skip to main content
Bu sayfa yapay zekâ tarafından otomatik olarak çevrilmiştir. İngilizce sürüm esas alınır.İngilizce sürümü görüntüle →

Anchor hata kodları nasıl çalışır?

Anchor, bir programın ErrorCode numaralandırmasının her varyantına 6000 ile başlayan sayısal bir kod atar. Başarısız bir işlem şunları ortaya çıkarır:
  • Sayısal hata kodu (örn. 0x1771 = 6001) işlem günlüklerinde.
  • Hata adı (örn. InvalidOwner) IDL’den.
  • #[msg(...)] dizesi Anchor tarafından log_messages içinde yayılan.
Entegratörler sayısal koda göre eşleşme yapmalıdır, mesaj dizesine göre değil (dize sürüm yükseltilmeden yeniden yazılabilir).

CPMM (Standart AMM) hataları

Program ID: bkz. reference/program-addresses. Kaynak: raydium-cp-swap/programs/cp-swap/src/error.rs. Yeniden oluşturma kaynağı: github.com/raydium-io/raydium-cp-swap — error.rs.

CLMM hataları

Program ID: bkz. reference/program-addresses. Kaynak: raydium-clmm/programs/amm/src/error.rs.
Yeniden numaralandırma hakkında not. CLMM ErrorCode numaralandırması bu sürümde yeniden numaralandırıldı: beş eski varyant (LOK, ZeroMintAmount, InvalidLiquidity, TransactionTooOld, InvalidRewardDesiredAmount) ve birkaç yazım hatası (Liquitity, enought, emissiones) kaldırıldı/düzeltildi ve on bir yeni varyant eklendi. Anchor hataları kaynak sırasına göre numaralandırdığından, 6000 veya sonrasındaki her kod ön-sürüm derlemelerine göre kaymıştır. Sayısal kodları önceki bir sürüme karşı sabit kodlayan istemcilerin yeniden eşlemesi gerekir.
Yeniden oluşturma kaynağı: github.com/raydium-io/raydium-clmm — error.rs.

AMM v4, Farm v3 / v5 / v6, LaunchLab hataları

Bu programlar ilgili bölümlerinde belgelenmiştir (bkz. products/amm-v4/instructions, products/farm-staking/instructions, products/launchlab/instructions). Bu programlar Anchor ve düz Solana hata yüzeylerinin bir karışımını kullandığından, hata tabloları burada yerine talimat referansının yanında yer alır. Aşağıdaki kodlar bu bölümler tarafından ayrılmıştır: Son LaunchLab sürümleri kodları 60006021 değişmeden tutar. 2026-08-17 sürümü eski platform-global-erişim hatalarını kaldırdı ve 6022’yi izin hesabı doğrulama hatasına atadı; 2026-08-24 sürümü 6023’ü ekler; 2026-08-31 sürümü 60246030’ı ekler: Eski PlatformGlobalAccessDenied (6022) ve InvalidPlatformGlobalAccess (6023) varyantları kaldırılmıştır. Önceki IDL kullanarak 6022’yi çözmemeyin ve 6023 — 2026-08-17 sürümü tarafından boşaltılan — 2026-08-24 sürümü tarafından ilgisiz bir hata için yeniden kullanıldığından, her iki sürümden daha eski bir IDL ile çözülmemelidir. 6020 kasıtlı olarak tutulur. Anchor varyantları konuma göre numaralandırdığından, silmek her kodu sonrasında kaydırır ve 60216030’ı çözen her istemciyi bozar.

SDK hatalarını program hatalarına eşleme

Resmi TypeScript SDK, zincir üstü hataları SendTransactionError ve Anchor programları için AnchorError içine sarar:
İstemci tarafında Anchor kullanmıyorsanız, işlem günlüklerini ayrıştırın:
Error Number: (\d+) deseni Anchor sürümleri arasında kararlıdır ve eşleştirmek için güvenlidir.

Bu tabloları yeniden oluşturma

Bir program yükseltildiğinde ve yeni bir hata eklediğinde, kaynaktan yeniden çıkarın:
Yeni bir varyant eklendiğinde her zaman reference/changelog güncelleyin, böylece SDK’yı yükselten entegratörler hata işleyicilerini yenilemeyi bilirler. Kaynaklar: