Ana içeriğe atla
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 →
2026-10-22 tarihinde geçersiz kılındı. CreatePermissionedPool adı CreateCustomizablePoolV2 olarak değiştirildi ve izinsiz hale getirildi; CreatePermissionPda / ClosePermissionPda ile Permission hesabı kaldırıldı. Bu giriş, programı 2026-07-30 itibariyle açıklamaktadır. 2026-10-22 girişine bakınız.
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; klasik CreatePool / CreateCustomizablePool yolları değişmemiştir.

Entegratörler için özet

  • 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 katarak, beyaz listeye alınmış bir operatörün aynı çift ve ücret katmanı için birden fazla havuz kurmasını sağlar; 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, sonraki 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ını 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 olunan değilse çağrıyı reddeder — basit varlığı yetkilendirmedir.
  • Havuz durumunda pool_state.owner olarak kaydedilen bir pool_creator hesabı; ücret ödeyen payer öğesinden farklı olabilir.
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 öğesini 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 değiştiremez. 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, fee_on öğesinden hemen sonra mevcut bir dolgu bölgesinden çıkarıldı (padding: [u8; 6] → seed_index: [u8; 2] + padding: [u8; 4]). 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 oluşturucunun 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 öğelerini kazanır. Bunlar yalnızca doğrulama için kullanılır — açık olduğunda çıkış borçlandırılmaz. İşleyici artık ne giriş ne de çıkış token hesabının dondurulmamasını gerektirir; aksi takdirde NotApproved döndürür (havuzun swap veya limit-order devre dışı bırakıldığı durumlarda zaten döndürülen aynı kod). 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 mintinin henüz çözülmemiş hesabı). 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ı, izin talimatlarında “imzalayan ne admin ne de permission_pda_admin” durumunu kapsar. Hata kodu tablosu ve numaralandırması 2026-05-18 sürümünden başka 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 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 öğesini saklayın.
  • Limit emirleri yerleştirme: OpenLimitOrder işleminize üç çıkış tarafı hesabını ekleyin ve dondurulmuş bir hesap için NotApproved döndürüldüğünde açık bir ileti 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).