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 →
Bu giriş, yaklaşan bir AMM v4 program güncellemesini kapsamaktadır. Dağıtımdan önce yerel yayın dalına karşı doğrulanmıştır. Yeni talimata güvenmeden önce dağıtılan programı doğrulayın.
solana-program =2.1.0 sürümüne sabitlenmişti ve bu sabitleme engel oluşturuyordu. Sistem programı yardımcıları Solana 3.0’da kendi solana-system-interface crate’ine taşındı, spl-token 9.0’a ulaştı ve spl-associated-token-account 8.0’a ulaştı. Bu yayın üçünü de içerir.
İkincisi, protokolün borçlu olduğu paradır. SIMD-0437 kira-muaf minimum değerini beş adımda %90 oranında azaltıyor ve adım 1, 3 Eylül 2026’da mainnet’e indi. AMM v4’ün o tarihten önce oluşturduğu her hesap — yüzlerce havuz kasası, LP mint’i, AmmInfo ve TargetOrders hesapları — artık aşırı finanse edilmiş durumda ve programa ait bir hesaptaki lamportlar yalnızca o program tarafından taşınabilir. Dolayısıyla yeni bir talimat.
Entegratörler için TL;DR
- Bir tüccar veya LP’nin çağırdığı hiçbir şey değişmedi.
Initialize2,Deposit,Withdraw,SwapBaseIn,SwapBaseOut,SwapBaseInV2,SwapBaseOutV2,WithdrawPnlveSetParamshesap listelerini, argüman düzenlerini ve matematiklerini korur. Hiçbir hesap düzeni değişmedi. Hiçbir mevcut hata kodu taşınmadı. - Bir talimat eklenir:
WithdrawExcessLamports, tag18. Yalnızca yönetici, argüman yok, değişken hesap listesi. AMM v4 tarafından kontrol edilen hesaplardan kira-muaf minimum değerin üzerindeki lamportları döndürür ve başka hiçbir şeye dokunmaz. Bkz.products/amm-v4/instructions. - Bir hata kodu eklenir:
60LamportsCalculateError.AmmErrorAnchor numaralı değildir —0’dan başlar — bu nedenle bucustom program error: 0x3cşeklindedir. Kodlar0–59değişmemiştir. CreateConfigAccount(tag 14) kira sysvar’ı okumayı durdurdu ve artık 4 hesaplı bir talimat olarak belgelenmiştir. Bu yayındaki hiçbir şey kırıcı değildir, buna dahil: hesap listenin sonundaydı ve işleyici konumsal olarak hiçbir uzunluk kontrolü olmadan okur, bu nedenle hala onu geçen yönetici araçları çalışmaya devam eder.- Bir IDL yenilemesi gereklidir eğer istemcileri birinden oluşturursanız. Bir yeni talimat, bir yeni hata varyantı, bir değiştirilmiş hesap listesi.
WithdrawExcessLamports
Talimat, lamport toplama cüzdanını tek imzalayan ve hedef olarak alır, AMM v4 yetki PDA’sını, SPL Token programını ve ardından herhangi sayıda kaynak hesabı. Her kaynak hesabın sahibine göre gönderir:
wSOL dalı ilginç olandır. Sarılı-SOL hesabının lamport bakiyesi onun token bakiyesidir, bu nedenle token programı
WithdrawExcessLamports’u tamamen reddeder. SyncNative ve delta boyutlu UnwrapLamports aracılığıyla gidiş-dönüş, yalnızca bağışlanan fazlalığı çıkarır ve sarılı bakiyeyi tam olarak başladığı yerde bırakır — bu, aritmetik anlaşmazlığı durumunda LamportsCalculateError ile doğrulanır. Bir SOL tarafı havuz kasası bu nedenle bir tarama aracılığıyla tam likiditeyi korur ve hiçbir LP bir tarama arasında fiyat değişikliği görmez.
İmzalayan, küme başına adanmış bir anahtardır, mevcut AMM sahibi ve havuz oluşturma ücreti adresleriyle aynı config_feature modülü altında sabitlenmiştir. CPMM ve LaunchLab’ın aksine, AMM v4 yalnızca o cüzdanı kabul eder — yönetici geri dönüşü yoktur. Adresler reference/program-addresses içindedir.
CreateConfigAccount kira sysvar’ı okumayı durdurdu
Solana 3.0, Rent::get() öğesinin kira parametrelerini okumanın doğal yolu olmasını sağlayan şeydir, bu nedenle yayın programdaki dört Rent::from_account_info(...) çağrısının tümünü değiştirmiştir. Üçünde — Initialize2 sırasında bir havuzun token hesaplarını, LP mint’ini ve PDA hesaplarını oluşturan yardımcılar — sysvar hesabı hala geçirilir ve hala token programı CPI’lerine iletilir, bu nedenle bu hesap listesi hakkında hiçbir şey değişmez. CreateConfigAccount’ta sysvar’ın başka bir amacı yoktu ve listenin son hesabıydı, bu nedenle belgelenen listeden çıkarıldı:
Eski beş hesaplı listeyi göndermek hala çalışır. Kaldırılan hesap sonuncuydu ve
process_create_config dört hesabını konumsal olarak next_account_info aracılığıyla okur ve toplam sayıyı kontrol eden hiçbir şey yoktur, bu nedenle sondaki kira hesabı asla bakılmaz. Yönetici araçları netlik için güncellenmelidir, aciliyet için değil. Hiçbir kullanıcı tarafından karşılaşılan oluşturucu bu talimata hiç yapı koymaz.
Initialize2, aşırı okumama durumudur: ayrıca Rent::from_account_info çağrısını durdurdu, ancak kira hesabı kalır 3. konumda ve hala gerçekten kullanılır — program bunu havuzun kasalarını ve LP mint’ini oluşturan spl_token::initialize_account ve initialize_mint CPI’lerine iletir. Bunu bu hesap listesinden düşürmek havuz oluşturmayı kıracaktır.
Bağımlılık değişiklikleri
Programın kullandığı sistem programı parçaları —
system_instruction::create_account, transfer, allocate, assign ve program kimliğinin kendisi — artık solana_program::system_program ve solana_program::system_instruction yerine solana-system-interface öğesinden gelir. Program kimliği bayt-özdeştir, bu nedenle bu, zincir üzerinde hiçbir sonucu olmayan derleme zamanı taşımasıdır; buna karşı karşılaştıran InvalidSysProgramAddress kontrolleri dahil.
İki ölü modül de silindi: srm_token ve msrm_token, OpenBook kaldırılmasından kalan Serum/MSRM mint bildirimleri. Hiçbir şey onlara başvurmadı.
Değişmeyen şeyler
- Her hesap düzeni.
AmmInfo,StateData,TargetOrders,AmmConfig— aynı boyutlar, aynı alan ofsetleri. Hiçbir dizinleyici veya kod çözücü değişikliği. - Hata kodları
0–59.LamportsCalculateError60’ta eklenir, bu nedenle hiçbir şey kaymaz. - AMM yetki PDA’sı. Hala tüm program için bir PDA, tohum
["amm authority"], nonce254. - Ücretler, PnL muhasebesi ve eğri. Dokunulmamış.
WithdrawExcessLamportshiçbir havuzun rezervlerinin parçası olmayan lamportları taşır. - Token-2022. Hala desteklenmiyor. Yeni talimat yalnızca eski SPL Token programı ile konuşur.
- Program kimliği. Değişmedi — bkz.
reference/program-addresses.
Güncellenen sayfalar
products/amm-v4/instructions—WithdrawExcessLamportshesap listesi ve sahip başına gönderme tablosu ile eklendi; kira-sysvar kaldırılmasını kapsayan yeniCreateConfigAccount/UpdateConfigAccountbölümü; envanter tablosu ve durum değişikliği matris satırları eklendi.products/amm-v4/overview— yayın başlığı.reference/error-codes— yeni “AMM v4:AmmErrorAnchor numaralı değildir” bölümü kod60ve0tabanlı numaralandırmayı belgeleme.reference/program-addresses— yeni “Fazla lamport toplama cüzdanları” bölümü.solana-fundamentals/rent-and-reclaimable-rent— yeni “Raydium programlarının kendi tarafında taradığı şeyler” bölümü; sarılı-SOL notu her iki token programınınUnwrapLamportsortaya çıkardığını söylemek için düzeltildi.solana-fundamentals/toolchain— Agave 3.1.10,release.anza.xyz, Rust 1.91.0.

