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, resmi bir Python SDK yayımlamaz. Buradaki desenler iyi bakımı yapılan üç topluluk kütüphanesini birleştiriyor:
solders (Rust bağlantılı Solana ilkelleri), solana-py (RPC istemcisi) ve anchorpy (IDL’lerden Anchor tarzı komut oluşturucu). Kombinasyon, TS SDK’nın yaptığı her şeyi kapsıyor; sadece daha az cilalı.Ortam
anchorpy periyodik olarak anchor-lang sürümünün gerisinde kalır; yakın zamanda dağıtılan bir Raydium programı için, sabitlenmiş anchorpy sürümünüzde IDL’nin derlendiğini taahhüt etmeden önce doğrulayın.
Bağlantı ve keypair
AsyncClient async varyantıdır; senkron Client hızlı scriptler için kullanılabilir, ancak birden fazla istek gönderen herhangi bir şey için async tercih edilir.
Havuz durumunu okuma
Çoğu üretim kullanımı, on-zincir verilerini manuel olarak koddan çözmek yerine Raydium’un REST API’sinden kodlanmış havuz durumunu okur (bkz.sdk-api/rest-api) — daha basit ve gecikme çoğu kullanım senaryosu için kabul edilebilir.
src/raydium/cpmm/layout.ts dosyasında yer alır (TS kaynağı); gerektiğinde constructa taşıyın. anchorpy bunu IDL verildiğinde otomatik yapabilir — aşağıya bakın.
Swap oluşturma ve gönderme
Basitlik için Raydium’un server-built-transaction endpoint’ini kullanın. Sunucu, imzaya hazır bir işlem döndürür; yalnızca imzanızı eklemeniz gerekir:Client tarafından swap oluşturma (anchorpy aracılığıyla)
Daha düşük gecikme için veya Raydium API’sine erişemediğinizde (yaptırım altındaki bölgeler, hava boşluğu kurulumları):
anchorpy bunları otomatik olarak türetmez.
Tipik bot mimarisi
Yaygın bir Python Raydium bot yapısı:- RPC sağlayıcı. Genel mainnet RPC’ları agresif bir şekilde hız sınırlandırır. Sürekli trafiği için ayrılmış bir sağlayıcı (Helius, QuickNode, Triton) kullanın.
- Havuz durumu için WebSocket.
client.account_subscribe(pool_id), her durum değişikliğinde güncellemeleri iter. Yoklamadan çok sıkı. - Öncelik ücreti sağlayıcı. Helius’un bir
getPriorityFeeEstimateendpoint’i vardır; Triton’un kendi sürümü vardır. Hedefteki program üzerindeki son ücretlerin 75. yüzdebiline göre ücretinizi belirleyin. - MEV’ye duyarlı işlemler için paketler. Sandviç riskini tolere edemiyorsanız Jito’nun blok motorundan geçin. Python kitaplıkları:
jito-sdk-python(üçüncü taraf, kalite değişken).
Çiftlik durumunu okuma
anchorpy’nin .account["X"].decode(bytes), IDL yapısıyla eşleşen yerel bir Python nesnesi verir.
Tuzaklar
1. Ondalık işleme
Python’un yerelfloat değeri IEEE-754 çiftdir; 9 ondalık mint’lerdeki tutarlar (1 SOL = 1e9 birim) doğru kalır, ancak oranlar ve ürünler kesinliği kaybeder. Tüm tutar alanları için int kullanın (solders tüm tutar alanları için int döndürür) ve herhangi bir fiyat aritmetiği için decimal.Decimal aracılığıyla yönlendirin.
2. Slot tabanlı vs timestamp tabanlı akıl yürütme
Bazı çiftlik sürümleri slot sayaçları kullanır; LaunchLab zaman damgaları kullanır.solana-py RPC yanıtlarında slot döndürür, ancak slot → zaman damgası dönüştürmesi kayıplı (lider planına göre değişir). Duvar saati zamanına ihtiyacınız varsa, açıkça get_block_time(slot) çağırın.
3. Bağlantı havuzu tükenmesi
AsyncClient varsayılan olarak istek başına bir HTTP bağlantısı açar. Yüksek yük altında, httpx.AsyncClient oturumlarını yeniden kullanın ve uygun bir limits=httpx.Limits(max_connections=100) ayarlayın.
4. İşlem boyutu sınırları
Python tarafından oluşturulan işlemler TS tarafından oluşturulan işlemlerden daha küçük değildir — 1232 baytlık sınır eşit şekilde uygulanır. 2’den fazla havuzdan geçen herhangi bir şey için V0 işlemlerini (adres arama tabloları) kullanın.İşaretçiler
sdk-api/rest-api— yukarıdaki HTTP endpoint’leri.sdk-api/anchor-idl—anchorpyiçin IDL’nin nereden alınacağı.integration-guides/routing-and-mev— Jito paketi desenleri.

