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 →
Farm talimatları sürüme özgüdür. v6 üzerindeki bir
Deposit işlemi v5 farm’da veya tersi şekilde çağrılamaz. SDK, farm’ın program sahibini okuyarak gönderir; zincir üstü CPI için program ID’sini önceden seçmelisiniz.Talimatlı envanter
| Amaç | v3 | v5 | v6 |
|---|---|---|---|
| Farm oluşturma | CreateFarm | CreateFarm | CreateFarm |
| Kullanıcı defteri ekleme (örtülü olabilir) | CreateUserLedger | CreateAssociatedLedger | Deposit içinde örtülü |
| Stake etme | Deposit | Deposit | Deposit |
| Unstake yapma | Withdraw | Withdraw | Withdraw |
| Sadece ödülleri talep etme | N/A (Deposit 0 kullanın) | N/A (Deposit 0 kullanın) | Harvest |
| Oluşturulduktan sonra ödül akışı ekleme | N/A | AddReward | AddReward |
| Mevcut ödül akışını düzenleme | N/A | SetRewards | SetRewards |
| Son_zaman’dan sonra ödülü yeniden başlatma | N/A | RestartRewards | RestartRewards |
| Talep edilmemiş ödül bütçesini çekme (yönetici) | N/A | WithdrawReward | WithdrawReward |
Deposit’i amount = 0 ile çağırmaktır. Program bunu saf bir ödeme olarak işler. v6 netlik için açık bir Harvest sunmuştur.
SDK, tüm bunları raydium.farm.deposit({ ... }) gibi işlemlerin arkasına alır. Aşağıdaki bölümler, talimatları manuel olarak oluşturması gereken entegratörler (agregatörler, izleme araçları, SDK uzantıları) için temel hesap listelerini belgelemektedir.
CreateFarm (v6)
Yeni bir v6 farm başlatın.
Argümanlar
reward_info_count = 1 için)
| # | Ad | W | S | Notlar |
|---|---|---|---|---|
| 1 | creator | W | S | Kirayı öder, farm’a sahiptir. |
| 2 | farm_state | W | Yeni FarmState hesabı. | |
| 3 | farm_authority | PDA [farm_id]. | ||
| 4 | staking_mint | |||
| 5 | staking_vault | W | Yetkilinin ATA’sı veya bir PDA vault’u olarak oluşturulur. | |
| 6 | staking_token_program | |||
| 7 | reward_mint | |||
| 8 | reward_vault | W | İlk bütçeyi alacaktır. | |
| 9 | reward_token_program | |||
| 10 | reward_sender_ata | W | Ödül mint’indeki yaratıcının ATA’sı; bu talimattan boşaltılır. | |
| 11 | system_program | |||
| 12 | token_program | |||
| 13 | associated_token_program | |||
| 14 | rent |
open_time > now,end_time > open_time.creatorATA’ları en azemission_per_second_x64 × (end_time − open_time) / 2^64ödül mint’ini tutar.staking_mintdondurma yetkinliğine sahip değildir veya dondurma yetkinliği devre dışıdır.
FarmStatebaşlatıldı,total_staked = 0.- Ödül vault’ları tam akış bütçesiyle finanse edildi.
- Yaratıcının ödül ATA’sı bu miktardan boşaltılır.
Deposit (v6)
Stake etme mint’inin amount kadarını stake edin.
Argümanlar
| # | Ad | W | S |
|---|---|---|---|
| 1 | user | W | S |
| 2 | user_ledger | W | |
| 3 | farm_state | W | |
| 4 | farm_authority | ||
| 5 | staking_vault | W | |
| 6 | user_staking_ata | W | |
| 7..(7+n) | reward_vault_{i} | W | |
| … | user_reward_ata_{i} | W | |
| son−2 | system_program | ||
| son−1 | token_program | ||
| son | associated_token_program |
user_ledger yoksa, SDK bir CreateAccount tarzı ix’i başa ekler; v6 programı sistem programı hesabı verildiğinde bunu tembelce oluşturabilir. Kalan hesaplar deseni: her canlı ödül için (reward_vault, user_reward_ata) ekleyin, böylece ödeme yapılabilir.
Etki
- Her canlı ödül akışı için tembel güncelleme formülünü kullanarak
reward_per_share_x64[i]’ı yenileyin. pending_i = user_ledger.deposited × reward_per_share_x64[i] / 2^64 − user_ledger.reward_debts[i]hesaplayın.pending_i’ıreward_vault_{i}’danuser_reward_ata_{i}’ye aktarın.amountstake etme mint’iniuser_staking_ata’danstaking_vault’a aktarın.user_ledger.deposited += amount’ı güncelleyin vereward_debts[i]’ı yeniden görüntüleyin.farm_state.total_staked += amount’ı güncelleyin.
amount > 0gerçek bir stake için (v6amount = 0’ı yasaklar — sadece talep içinHarvestkullanın).user_staking_ataen azamounttutar.- Her canlı ödül vault’u bu kullanıcıya en az borçlu olunan tutarı tutar.
Withdraw (v6)
amount kadar unstake yapın.
Argümanlar
Deposit ile aynı.
Etki — Deposit ile aynı ödeme, ardından stake etme mint’ini kullanıcıya geri taşıyın: staking_vault → user_staking_ata. total_staked ve user_ledger.deposited her ikisi de azalır.
Ön koşullar
amount ≤ user_ledger.deposited.- Farm duraklatılmamış.
Harvest (v6)
Stake değiştirilmeden beklemede olan ödülleri talep edin.
Argümanlar — hiçbiri.
Hesaplar — Deposit ile aynı, stake tarafında hareket yok.
Etki — reward_per_share_x64[i]’ı yenileyin, pending_i ödeyin, reward_debts[i]’ı yeniden görüntüleyin. total_staked veya deposited değişmez.
AddReward (v5/v6)
Kullanmamış bir slot’a sahip mevcut farm’a yeni bir ödül akışı ekleyin.
Argümanlar
- Boş bir slot mevcuttur (v6’de
reward_info_count < 5, v5’te< 2). open_time ≥ now(gelecekte olabilir) veyaopen_time < nowyalnızca program sürümü izin verirse — v6 verir, v5 vermez.
- Yeni akış
reward_info_countdizininde başlatıldı,reward_info_count++. - Ödül vault’u arayanın ATA’sından tam akış bütçesiyle kredilendi.
RewardAlreadyExists.
SetRewards (v5/v6)
Mevcut bir ödül akışını uzatın veya güçlendirin. Mint’i değiştiremez; end_time’ı kısaltamaz; çalışmaya başladıktan sonra emission_per_second_x64’ü düşüremez.
Argümanlar
- Akış hala çalışıyor (
reward_state == 1). new_end_time ≥ geçerli end_time.- Gerekli ek bütçe
(yeni_emisyon × yeni_süre − zaten_emitlenmiş)gönderenin ATA’sında mevcuttur ve talimattan ödül vault’una aktarılır.
SetRewards’tir (canlı akışlarda saniye başına değişiklik yok).
RestartRewards (v5/v6)
end_time’ı geçtikten sonra bir akışı yeniden başlatın. Kavramsal olarak zaten bir slot’a sahip olan mint için AddReward ile aynı.
Argümanlar — AddReward ile aynı şekil, o indekste.
Ön koşullar
reward_state == 2(sona erdi).- Arayanı slot’un
reward_sender’ı (v6) veya farmowner’ı (v5).
WithdrawReward (v5/v6)
Bir akış sona erdikten ve tüm stake edenler hasat etme şansı bulduktan sonra talep edilmemiş ödül vault bakiyesinin yönetici tarafından temizlenmesi.
Argümanlar
- Akış sona erdi (
reward_state == 2). reward_total_emissioned == reward_claimed + vault_balance(şu anda hiç bir şey borçlu değil).
reward_sender_ata’ya taşır. Program, stake edenler hala beklemede talepleri varken çekmeyi engellemez; yönetici beklemede kalan stake edenler adına ilk olarak hasat etmesi beklenir (veya onların hasat etmesine izin verir). Erken temizlerseniz, kullanıcılar talep edilmemiş ödüllerine erişim kaybeder. Bunu erken çağırmayın.
v5 varyasyonları
Deposit/Withdrawv6 ile aynı şekle sahiptir ancak 2 adede kadar ödül slot’u kullanır vereward_per_shareu128’dir (farklı bir radiks ile sabit nokta).CreateAssociatedLedgerilkDeposit’ten önce gerekli bir ayrı çağrıdır; v6 bunu birleştirdi.AddRewardmevcuttur,Harvestdeğildir (Deposit 0kullanın).
v3 varyasyonları
- Tek ödül akışı.
AddRewardyok, ikinci slot yok. Deposit 0talep etmenin tek yoludur.CreateUserLedgerilkDeposit’ten önce çağrılmalıdır.
Durum değişikliği matrisi
| Talimatlı | total_staked | user.deposited | reward_per_share | Ödül vault’ları |
|---|---|---|---|---|
CreateFarm | 0 | — | 0 | yaratıcı tarafından finanse edildi |
Deposit(n) | +n | +n | yenilendi | −pending (ödeme yapıldı) |
Withdraw(n) | −n | −n | yenilendi | −pending |
Harvest | — | — | yenilendi | −pending |
AddReward | — | — | — | +yeni bütçe |
SetRewards | — | — | — | +delta bütçe |
RestartRewards | — | — | — | +bütçe |
WithdrawReward | — | — | — | −kalan |
Sonraki adım nereye
products/farm-staking/code-demos— TypeScript örnekleri.products/farm-staking/accounts—FarmState/UserLedger/UserStakedüzenleri.reference/error-codes— farm hata enumı.
- Raydium SDK v2
Farmmodülü - Raydium farm programı kaynak kodu (v3 / v5 / v6)


