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 →
Bir dokümantasyon değişiklik günlüğü girdisi. Tüm güncellemelerin dizini için bkz.
reference/changelog. Protokolün kendi tarihsel zaman çizelgesi için bkz. introduction/history-and-milestones.CreatePool / CreateCustomizablePool yolları değişmemiştir.
Entegratörler için TL;DR
- Havuz kimlikleri artık izin kapısının arkasında kanonik olmayan olabilir. Tarihsel olarak
(amm_config, token_mint_0, token_mint_1)başına tam olarak bir CLMM havuz adresi vardı — PDA tohumları bunu sabitledi. Yeni bir talimat olanCreatePermissionedPool, istemci tarafından sağlanan sıfır olmayanseed_index: u16değerini havuz PDA tohumlarına katıyor, böylece beyaz listeye alınmış bir operatör aynı çift ve ücret katmanı için birden fazla havuz kurabilir, her biri kendi adresinde. Keyfi havuz adresleri ayrıcalıklı bir yetenek olduğundan, ödeyici yönetici tarafından verilen birPermissionPDA’sı tutmalıdır. İki yönetici talimatı olanCreatePermissionPdaveClosePermissionPdabu izinleri yönetir. OpenLimitOrderartık çıkış tarafını doğrular. Talimat üç ek hesap alır —output_token_account,output_vault,output_vault_mint— ve sahibinin giriş veya çıkış token hesabı dondurulmuşsa emriNotApprovedile reddeder. Bu, nihai doldurmanın teslim edilebileceğini garanti eder; bu, izin listesi / varsayılan dondurulmuş Token-2022 mintleri (izinli tokenler) için önemlidir. Eski tek taraflı hesap listesine karşı oluşturulan istemciler üç çıkış hesabı eklemelidir.
Programda ne değişti
Yeni talimat: CreatePermissionedPool
CreateCustomizablePool ile aynı şekil ve parametreler (aynı CreateCustomizableParams alır, bu nedenle tek taraflı ücret ve dinamik ücret seçeneği mevcuttur), artı:
- Bir
seed_index: u16argümanı, sıfır olmayan olmalıdır. Havuz PDA tohumlarına (little-endian) eklenir:["pool", amm_config, token_mint_0, token_mint_1, seed_index.to_le_bytes()]. - Bir
permissionhesabı: PDA["permission", payer]. Anchor, mevcut değilse veya program tarafından sahip olunmuyorsa çağrıyı reddeder — basit varlığı yetkilendirmedir. - Ücret ödeyen
payer’dan farklı olabilecekpool_state.ownerolarak kaydedilen birpool_creatorhesabı.
seed_index = 0 eski havuzlar için ayrılmış kalır: bunlar için tohum bileşeni boşa çöker ve klasik dört tohum adresini yeniden üretir, bu nedenle mevcut havuz adresi değişmez.
Bkz. Talimatlar → CreatePermissionedPool.
Yeni hesap: Permission
Varlığı izin olan bir yetenek hesabı. Yalnızca oluşturulduğu authority’yi depolar (artı dolgu). PDA tohumları: ["permission", authority]. CreatePermissionedPool çağırma hakkını verir ve başka hiçbir şey değil — fonları taşıyamaz, ücretleri değiştiremez veya herhangi bir havuzu mutasyona uğratamaz. Bkz. Hesaplar → Permission.
Yeni yönetici talimatları: CreatePermissionPda / ClosePermissionPda
CreatePermissionPdabelirli birpermission_authorityiçin birPermissionPDA’sı başlatır.ClosePermissionPdabunu kapatır ve kirayı çağırana geri öder, izni iptal eder. Bu izin altında zaten oluşturulan havuzlar etkilenmez.
admin genel anahtarını veya özel bir permission_pda_admin anahtarını (mainnet ve devnet’te farklı bir sabit) kabul eder. Bkz. Yönetici anahtarları ve multisig → CLMM.
PoolState: seed_index alanı
İki bayt mevcut bir dolgu bölgesinden çıkarıldı (padding: [u8; 6] → seed_index: [u8; 2] + padding: [u8; 4]) doğrudan fee_on sonrasında. Toplam hesap boyutu değişmemiş ve indexer geçişi gerekli değildir. CreatePool / CreateCustomizablePool aracılığıyla oluşturulan havuzlar için seed_index [0, 0] olur; izinli havuzlar için yaratıcının seçilen dizinini taşır ve çevrimdışı havuz adresini yeniden türetmek için gereklidir.
OpenLimitOrder: çıkış tarafı hesapları ve dondurulmuş-hesap koruması
OpenLimitOrder hesap listesi output_token_account, output_vault ve output_vault_mint kazanır. Bunlar yalnızca doğrulama için kullanılır — açık olarak çıkış borçlandırılmaz. İşleyici artık ne giriş ne de çıkış token hesabının dondurulmuş olmadığını gerektirir, aksi takdirde NotApproved döndürür (aynı kod havuzun swap veya limit-order devre dışı bırakıldığında zaten döndürülür). Bu, doldurmanın hiçbir zaman alınamayacağı bir token hesabına karşı bir emrin açılabileceği boşluğu kapatır (örn. varsayılan dondurulmuş Token-2022 mint’i için henüz çözülmemiş bir hesap).
Bkz. Talimatlar → OpenLimitOrder.
Hata kodları
Yeni hata kodu yok. Mevcut6000 NotApproved artık ek olarak dondurulmuş giriş/çıkış token hesabını ve OpenLimitOrder üzerinde swap/limit-order devre dışı durumlarını, ve izin talimatları üzerinde “imzalayan ne admin ne de permission_pda_admin” durumunu kapsar. Hata kodu tablosu ve numaralandırması 2026-05-18 sürümü ile değişmemiştir. Bkz. Hata kodları → CLMM.
Geçiş notları
- Havuz adreslerini okuma:
(config, mint0, mint1)başına bir havuz olduğunu varsaymayın. Bir çift artık kanonik bir havuz artıseed_indextüretilmiş adreslerinde bir veya daha fazla izinli havuz olabilir. Tek bir PDA türetmek yerine API / indexer’dan havuzları numaralandırın ve izinli bir havuzu yeniden türetmeniz gerektiğindeseed_indexdepolayın. - Limit emirleri yerleştirme:
OpenLimitOrderişleminize üç çıkış tarafı hesabı ekleyin ve dondurulmuş bir hesap içinNotApproveddöndürüldüğünde açık bir mesaj gösterin. - Hesap boyutu veya düzen kırılması yok:
PoolStateaynı boyuttadır; emekli dolgu baytları artıkseed_indextutar.
Güncellenen sayfalar
products/clmm/overview— izinli çok havuzlar ve limit-order koruması hakkında “Yenilikler” notu.products/clmm/instructions— yeniCreatePermissionedPoolbölümü, talimat tablosunda ve yönetici kapısı notundaCreatePermissionPda/ClosePermissionPda, ve güncellenenOpenLimitOrderhesap listesi / ön koşullar / hatalar.products/clmm/accounts— envanterindePermissionve kendi bölümü,PoolState.seed_indexalanı, PDA türetme yardımcıları (derivePermissionedPool,derivePermission) ve yaşam döngüsü hızlı referansı.security/admin-and-multisig— CLMM rolleri tablosunda yenipermission_pda_adminsatırı ve izin kapsamı açıklayıcısı.reference/error-codes— genişletilmişNotApprovedaçıklaması.
raydium-clmmkaynağı (create_permissioned_pool.rs,admin/create_permission_pda.rs,admin/close_permission_pda.rs,states/permission.rs,states/pool.rs,limit_order/open_limit_order.rs,lib.rs).

