Skip to main content
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.
Bu sürüm iki CLMM program değişikliğini belgelemektedir. Her ikisi de katkı niteliğinde ve geriye dönük uyumludur: mevcut havuzlar, pozisyonlar ve açık emirler etkilenmez ve klasik 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 olan CreatePermissionedPool, istemci tarafından sağlanan sıfır olmayan seed_index: u16 değ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 bir Permission PDA’sı tutmalıdır. İki yönetici talimatı olan CreatePermissionPda ve ClosePermissionPda bu izinleri yönetir.
  • OpenLimitOrder artı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 emri NotApproved ile 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: u16 argü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 permission hesabı: 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ı olabilecek pool_state.owner olarak kaydedilen bir pool_creator hesabı.
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

  • CreatePermissionPda belirli bir permission_authority için bir Permission PDA’sı başlatır.
  • ClosePermissionPda bunu kapatır ve kirayı çağırana geri öder, izni iptal eder. Bu izin altında zaten oluşturulan havuzlar etkilenmez.
Her ikisi de program 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. Mevcut 6000 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_index tü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ğinde seed_index depolayın.
  • Limit emirleri yerleştirme: OpenLimitOrder işleminize üç çıkış tarafı hesabı ekleyin ve dondurulmuş bir hesap için NotApproved döndürüldüğünde açık bir mesaj gösterin.
  • Hesap boyutu veya düzen kırılması yok: PoolState aynı boyuttadır; emekli dolgu baytları artık seed_index tutar.

Güncellenen sayfalar

  • products/clmm/overview — izinli çok havuzlar ve limit-order koruması hakkında “Yenilikler” notu.
  • products/clmm/instructions — yeni CreatePermissionedPool bölümü, talimat tablosunda ve yönetici kapısı notunda CreatePermissionPda / ClosePermissionPda, ve güncellenen OpenLimitOrder hesap listesi / ön koşullar / hatalar.
  • products/clmm/accounts — envanterinde Permission ve kendi bölümü, PoolState.seed_index alanı, PDA türetme yardımcıları (derivePermissionedPool, derivePermission) ve yaşam döngüsü hızlı referansı.
  • security/admin-and-multisig — CLMM rolleri tablosunda yeni permission_pda_admin satırı ve izin kapsamı açıklayıcısı.
  • reference/error-codes — genişletilmiş NotApproved açıklaması.
Doğrulandı:
  • raydium-clmm kaynağı (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).