Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
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 →
Raydium’un daha yeni programları (CPMM, CLMM, Farm v6, LaunchLab) Anchor kullanılarak yazılmıştır — Solana’nın yerleşik program modelinin üstüne hesap doğrulaması, hata işleme ve IDL (arayüz açıklaması) sağlayan bir Rust çerçevesi. AMM v4 ve eski farmlar Anchor’dan önceye aittir. Her iki paradigmayı anlamak, kodu okumanıza, IDL’den istemciler oluşturmanıza ve beklenmeyen hataları ayıklamanıza yardımcı olur.
Program dağıtım modeli
Her Solana programı birPubkeyde yer alır. Programın bytecode’u BPF Yükseltebilir Yükleyici (BPFLoaderUpgradeab1e11111111111111111111111) tarafından sahiplenilen bir çalıştırılabilir hesapta depolanır.
Bir program dağıtımı üç hesaptan oluşur:
- Program hesabı: programın kimliğinde küçük bir metadata hesabı. Sahibi: BPF Yükseltebilir Yükleyici.
- ProgramData hesabı: asıl bytecode’u tutar.
[program_id, "programdata"]olarak türetilir. - Buffer hesabı (geçici): yükseltme sırasında yeni bytecode’u tutar. Yükseltmeden sonra silinir.
security/admin-and-multisig.
Dağıtılmış bir programı doğrulama
Zincir üstündekinin denetim onaylı kaynakla eşleştiğini doğrulamak için:Anchor: Solana’nın üstünde bir çerçeve
Ham Solana programları bu imzaya sahip Rust işlevleridir:- Her talimat ve her hesap türü için belirlenimci 8 baytlık bir ayırt edici otomatik olarak oluşturur.
- Hesap kısıtlamalarını (sahibi, seeds, yazılabilir, imzalayan, mint-eşleşme, token-program-eşleşme) kodunuz çalışmadan önce doğrular.
- İstemcilerin programı çağırmak için kullandığı bir IDL — arayüz açıklaması dosyası oluşturur.
- Rust, TypeScript ve Python istemci tarafı kütüphaneleriyle birlikte gelir.
8 baytlık ayırt edici
Her Anchor hesabı ve her Anchor talimatı, 8 baytlık bir ayırt edicinin ilk 8 baytı olarak başlar — sabit bir dizenin SHA-256’sının ilk 8 baytı:getProgramAccounts gibi bir türün tüm hesaplarını sıralayan araçlar için çok önemlidir.
Hatalar
Anchor programları#[error_code] aracılığıyla hataları tanımlar:
reference/error-codes’da bulunur.
IDL
Bir Anchor IDL (Arayüz Açıklama Dili) dosyası, bir programın JSON açıklamasıdır: talimatları, hesapları, türleri, hataları ve olayları. Ethereum ABI’nin eşdeğeridir. Raydium tüm Anchor programları için IDL’ler yayınlar. Zincir üstünden canlı olarak getir:src/raydium/*/idl/*.json.
IDL yapısı
IDL’den istemci oluşturma
Anchor’unanchor CLI’si TypeScript ve Rust türleri oluşturur:
IDL’nin arkadaş olduğu zaman
Raydium SDK’sı kullanmayan özel bir entegrasyon oluşturmak istiyorsanız:- IDL’yi getir (zincir üstünden canlı veya SDK kaynağından).
- İstediğiniz talimatı ara (örn.
swap_base_input). - Talimat verilerini oluştur: 8 baytlık ayırt edici + kodlanmış argümanlar.
- Hesapları IDL’nin belirttiği sırada geç.
sdk-api/anchor-idl bölümüne bakın.
Anchor Öncesi Programlar: AMM v4 ve Farm v3/v5
Bu programlar Anchor’dan öncedir. Kullanırlar:- Manuel talimat gönderimi:
instruction_datada biru8etiketi ve birmatchifadesi ile. - Manuel hesap doğrulaması:
if accounts[0].owner != &expected_program { ... }. - Borsh-serileştirilmiş talimat argümanları: ayırt edici yok, sadece
instruction_data[1..]. #[repr(C, packed)]aracılığıyla düzen: C-struct ikili düzeni.
Program yükseltme mekaniği
Sadece ProgramData’nınupgrade_authority’si yükseltebilir. Adımlar:
- Yeni bytecode’u derle.
- Bunu bir buffer hesabına yaz (
solana program write-buffer). - Bir yükseltme talimatı gönder:
BpfLoaderUpgradeable::Upgrade { buffer, program, authority }. - Çalışma zamanı atomik olarak programın bytecode’unu buffer’ın içeriğiyle değiştirir.
security/admin-and-multisig bölümüne bakın.
Bir programı değişmez hale getirme
Yükseltme yetkisiNone olarak ayarlanabilir, bu noktada program kalıcı olarak değişmez hale gelir. Raydium bunu herhangi bir ürün için yapmamıştır — ekip güvenlik düzeltmeleri itme kabiliyetini korur. Ödün: kullanıcılar çok-imza + zaman kilidi sürecine güven vermelidir.
Programlar ve kira
Bir programı dağıtmak kira muaf lamportları tüketir:- 50 KB program: ~0.35 SOL kira.
- 200 KB program: ~1.4 SOL kira.
solana program close aracılığıyla) lamportları geri verir. Raydium programları aktif kalır ve kapatılmak için planlanmamıştır.
Anchor Programlarının Hata Ayıklaması
Günlük çıktısı
Anchor’unmsg! makrosu işlemin günlüğüne yazar. Günlükleri görmek için bir işlemi simüle edin:
- Program çağrısı (
Program CPMMoo8... invoke [1]). - Program kodundan
msg!çağrıları. - İşlem birimi tüketimi (
consumed 137842 of 400000 compute units). - Program başarısı veya hatası.
Hata kodları
Bir Anchor programı hata fırlatırsa, günlük şunu gösterir:SlippageExceeded). IDL’nin errors dizisi ile çapraz referans alın.
Raydium’un tam hata tablosu için reference/error-codes bölümüne bakın.
Hesap düzeni uyuşmazlıkları
Yanlış hesabı yanlış yuvaya geçirirseniz, Anchor’un hesap doğrulama makroları şöyle hatalar döndürür:ErrorCode numaralandırması görmek için); ≥6000 hataları programın özel kodlarıdır.
İşaretçiler
solana-fundamentals/account-model— programlar hesapları nasıl sahip alır.solana-fundamentals/pdas-and-cpis— Anchor’un beyan ettiği PDA’lar.sdk-api/anchor-idl— Raydium’un IDL’lerini getirmek ve kullanmak.reference/program-addresses— program kimlikleri.reference/error-codes— hata kodu başvurusu.security/admin-and-multisig— yükseltme yetkisi kontrolleri.
- Anchor kitabı.
- Solana program dağıtımı.
- Raydium IDL’leri (SDK’da
src/raydium/*/idl/*.jsoniçinde yayınlanmıştır).


