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 →
Kurulum
Buradaki örneklerraydium-sdk-V2-demo/src/farm klasöründeki dosyaları yansıtır. Bootstrap, demo repo’sunun config.ts.template dosyasını takip eder:
Farm’ı ID’ye göre getir
getFarmById, FarmState’i zincir dışından alır, program sürümüne göre kodunu çözer ve sabit nokta emisyon hızını saniyede düz bir Decimal değerine normalleştirir.
LP token’larını stake et
Kaynak:src/farm/stake.ts
Sadece talep (harvest)
Kaynak:src/farm/harvest.ts
harvestAllRewards, bir liste kabul eder — portföy görünümü gösteren kullanıcı arayüzleri için çağrıyı toplu hale getirin. Her farm, bir işlem içinde ayrı bir talimat olarak talep edilir (1232 baytlık boyut sınırına tabi; >~6 farm için birden fazla işleme bölün).
v6 üzerinde tek bir farm için açık Harvest yolunu da kullanabilirsiniz:
amount: 0 deyimi gereklidir; SDK bunu doğru şekilde gönderir.
Unstake et
Kaynak:src/farm/unstake.ts
v6 farm oluştur
Kaynak:src/farm/createAmmFarm.ts ve editAmmFarm.ts
perSecond, saniyede tamsayı emisyon hızıdır. SDK, göndermeden önce bunu Q64.64’e pakler. Kesirli bir oran için, ölçeği ayarlayın ve süreyi değiştirin.- Tam bütçe (
perSecond × duration), ödül ATA’nızda bulunmalıdır —create, bunu ödül kasasına atomik olarak taşır. - Bir
createçağrısında 5’e kadar ödülü tohumlandırabilirsiniz. Hesap listesi, her ek akış için(reward_mint, reward_vault, sender_ata, token_program)kadar büyür; 1232 baytlık işlem boyutu sınırından haberdar olun. 4+ ödül için, 1-2 ile oluşturun ve sonraki işlemlerdeAddReward’ı kullanın.
Mevcut bir ödül akışını artır
setRewards, end_time’ı uzatır ve delta bütçesini aktarır. Talimatlı bir akışı kısaltamaz, canlı bir akış üzerinde per_second’yi düşüremez ve ödül mint’ini değiştiremez. Mint’leri takas etmek için end_time’ı bekleyin ve boş bir yuva varsa AddReward’ı kullanın veya yeni bir farm oluşturun.
Biten bir akışı yeniden başlat
reward_state == 2 (bitti) olduğu durumda geçerlidir. Arayan, yuvanın reward_sender’ı (v6) veya farm sahibi (v5) olmalıdır.
Rust CPI
AMM v4’ten farklı olarak, v6 farm programı, ön uç ve SDK kaynakları ile birlikte yayınlanan bir Anchor crate’i (raydium_farm_v6) ile birlikte gelir. Minimal bir Deposit taslağı:
remaining_accounts dilimi farm’ın aktif ödül yuvalarıyla 1’e 1 eşleşmelidir (reward_vault_i, user_reward_ata_i çiftleri dizin sırasında). Bunları atlayarak veya yanlış sıralayarak sessiz bir yanlış muhasebe üretilir — program yanlış miktarı aktaracaktır.
Tuzaklar
- Çekmeden önce talep etmeyi unutmak. Zararsız —
Withdraw, bekleyen ödülleri önce kapatır. Ancak kullanıcı arayüzünüz “talep”i “çekme”den ayrı gösteriyorsa, kullanıcıWithdrawsonrası talep edecek bir şey daha olduğunu düşünebilir. Yoktur; bu noktaya kadar olan her şey ödendi. - Emisyon sırasında
total_staked = 0. Hiçbir şey stake edilmeyken tahakkuk eden emisyonlar kaybedilir (reward_per_sharegüncelleme formülü 0’a bölür ve program güncellemeleri atlar). Planlananopen_timeile programlar için, bu kaçınmak içinopen_time’da “seed stake” çalıştırın. - Token-2022 transfer ücretleri. Token-2022 ödül mint’leri ile v6 farmlarında, transfer ücreti yayın sırasında geçerli olur (kasa → kullanıcı). Bunu APR fiyatlarına ekleyin.
- v5’te küçük
per_second. v5’inu64oranı, herhangi birper_second < 1token-birimi saniye başına (9+ ondalak basamaklı mint’lerde bu genellikle istenen oran) ifade edilemeyeceği anlamına gelir — akış oranı 0’a yuvarlanır ve farm hiçbir şey yayan olmaz. v6’yı kullanın.
Sırada ne var
/tr/products/farm-staking/instructions— temel talimat başvurusu./tr/products/clmm/fees— CLMM’nin yerel ödül akışlarıyla karşılaştırın./tr/user-flows/migrate-amm-v4-to-cpmm— sıklıkla yeni bir CPMM farm’ı başlatmanın yanında yapılır.
- Raydium SDK v2
- Farm v6 IDL
raydium-io/raydium-sdk-V2içindesrc/raydium/farm/altında paketlenmiş.

