> ## 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.

# 2026-06-22 — Stable AMM: إزالة كود OpenBook الخامل

> يزيل Stable AMM حسابات وكود OpenBook الخاملة للصنع السوقي: تخطيطات أصغر لـ Swap/Deposit/Withdraw، وتغيير WithdrawPnl كسر صعب، وصيغة مبسطة لأصول المجموعة.

<Info>
  **هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.**

  [عرض النسخة الإنجليزية →](/reference/changelog/2026-06-22-stable-amm-openbook-cleanup)
</Info>

Stable AMM هو **برنامج مستقل** (معرّف برنامج خاص به — لا يتم تداوله عبر برنامج AMM v4). لقد **توقف عن نشر الأوامر على OpenBook منذ زمن طويل**؛ مسار صنع السوق على OpenBook كان خاملاً لسنوات. هذا الترقية هي التنظيف: **تزيل الحسابات والكود المتعلقة بالسوق الميتة الآن** من تخطيطات التعليمات. لا تغيّر **أي** سلوك تداول مباشر — لم تكن هناك أوامر OpenBook متبقية للتوقف عن وضعها.

## ملخص سريع للمدمجين

* **Swap / Deposit / Withdraw تستمر في العمل بدون تغييرات.** المعاملات المبنية بتخطيطات الحساب القديمة تنفذ بنجاح — حسابات Serum/السوق المحذوفة يتم تجاهلها ببساطة. **لا** تضطر إلى شحن تحديث عميل للحفاظ على التدفقات الموجودة.
* **لكن يجب أن تهاجر إلى التخطيطات الجديدة الأصغر قريباً.** التخطيطات الجديدة تسقط حسابات السوق الميتة، مما يقلل حجم المعاملة: `SwapBaseIn` / `SwapBaseOut` تذهب **18 → 9** حسابات، `Deposit` **14 → 12**، `Withdraw` **21 (+1 اختياري) → 12**. سيتم إزالة مسار التوافق في إصدار مستقبلي.
* **`WithdrawPnl` هو تغيير كسر صعب (مسؤول فقط).** يذهب **16 (+1 اختياري) → 10** حسابات **بدون تحليل توافق**. إرسال التخطيط القديم يفشل مع أخطاء التحقق مثل `InvalidTokenCoin` بسبب عدم محاذاة الحساب (القديم #3 كان `open_orders`). أي أداة إدارة تستدعي `WithdrawPnl` يجب أن تُحدّث.
* **رسم الإحالة محذوف على `Withdraw` و `WithdrawPnl`.** حساب `referrer_pc_wallet` الاختياري يمكن لا يزال تمريره للتوافق العكسي على التخطيط القديم لـ `Withdraw`، لكنه لم يعد له تأثير.
* **محاسبة أصول المجموعة مبسطة.** إجمالي أصول المجموعة الآن `أرصدة الخزينة − PnL المعلقة`؛ مصطلح OpenBook open-order — بالفعل صفر عملياً — محذوف من الصيغة. يجب على الفهارس وكود الاقتباس الذي أضاف مصطلح OpenOrders أن يزيله.
* **معظم التعليمات محذوفة الآن.** فقط `SwapBaseIn`، `SwapBaseOut`، `Deposit`، `Withdraw`، و `WithdrawPnl` تبقى قابلة للاستدعاء. `Initialize`، `PreInitialize`، `InitModelData`، `UpdateModelData`، `MonitorStep`، `SetParams`، `WithdrawSrm`، و `SimulateInfo` لم تعد قابلة للاستدعاء.

## لماذا هذا مهم (للمتداولين والمزودين والمدمجين)

* **المتداولون** لا يرون تغييراً في سلوك المبادلة أو شكل التسعير — منحنى جدول البحث لم يتغير. المبادلات بالتخطيط الجديد أرخص للتنفيذ لأن المعاملة تحمل تسعة حسابات أقل.
* **مزودو السيولة** يحافظون على نفس اقتصاديات الإيداع/السحب. السيولة جلست بالكامل في خزائن المجموعة لفترة طويلة، لذا قيمة المجموعة بالكامل على المجموعة؛ هذا الترقية فقط يحذف السباكة البالية للسوق.
* **المدمجون** يحصلون على معاملات أصغر وأبسط وموديل اقتباس بمصطلح واحد أقل (بالفعل بقايا). التكاملات الموجودة لا تنكسر (باستثناء `WithdrawPnl` للمسؤول)، لكن shim التوافق مؤقت — هاجر في وقتك المناسب، قبل إزالته.

## تغييرات على مستوى التعليمات

### `SwapBaseIn` / `SwapBaseOut` — 18 → 9 حسابات (التخطيط القديم لا يزال متوافقاً)

تسعة حسابات OpenBook (`amm_open_orders`، `serum_program`، `serum_market`، `serum_bids`، `serum_asks`، `serum_event_queue`، `serum_coin_vault`، `serum_pc_vault`، `serum_vault_signer`) محذوفة. **التوافق**: إذا تلقت التعليمة عدداً من الحسابات غير 9، يتم تحليلها بالتخطيط القديم 18-حساب؛ يجب أن تحتل حسابات Serum مواضعها لكن محتوياتها لم تعد يتم التحقق منها أو استخدامها.

### `Deposit` — 14 → 12 حساباً (التخطيط القديم لا يزال متوافقاً)

`amm_open_orders` (القديم #3) و `serum_market` (القديم #9) محذوفة. عند تمرير 14 حساباً، يتم تحليل التخطيط القديم للتوافق.

### `Withdraw` — 21 (+1 اختياري) → 12 حساباً (التخطيط القديم لا يزال متوافقاً)

تسعة حسابات Serum محذوفة. التخطيطات القديمة 21- أو 22-حساب لا تزال مقبولة، **لكن منطق رسم الإحالة للحساب الاختياري 22 `referrer_pc_wallet` تم حذفه** — يمكن لا يزال تمرير الحساب لكنه لم يعد له تأثير.

### `WithdrawPnl` — 16 (+1 اختياري) → 10 حسابات (⚠️ بدون مسار توافق، كسر صعب)

تخطيط ثابت 10-حساب، مسؤول فقط. **لا يوجد** تحليل توافق للتخطيط القديم؛ إرساله يفشل مع أخطاء مثل `InvalidTokenCoin` بسبب عدم محاذاة الحساب. **تغيير المنطق**: عندما تكون الأموال المتاحة للمجموعة غير كافية للسحب من PnL المتراكم، لم تعد المجموعة توضع في `CancelAllOrdersState` / `Disabled`؛ التعليمة ترجع `TakePnlError` مباشرة. حساب `referrer_pc_wallet` الاختياري كذلك تم حذفه.

## تغيير حساب أصول المجموعة

الصيغة تاريخياً أضافت الأموال التي احتفظت بها المجموعة كأوامر مفتوحة في حساب OpenOrders على OpenBook. هذا المصطلح كان صفراً عملياً منذ توقفت المجموعة عن نشر الأوامر؛ هذا الترقية يسقطه من الصيغة بالكامل، تاركاً حساب الخزينة فقط:

|         | الصيغة                                                                                                       |
| ------- | ------------------------------------------------------------------------------------------------------------ |
| القديمة | `أرصدة الخزينة + أموال الأوامر المفتوحة (native_coin_total / native_pc_total) − PnL المعلقة (need_take_pnl)` |
| الجديدة | `أرصدة الخزينة − PnL المعلقة (need_take_pnl)`                                                                |

## الصفحات المحدثة

* `products/stable/overview` — نموذج AMM نقي، إزالة اعتماد OpenBook، جداول المقارنة وعدد الحسابات محدثة.
* `products/stable/index` — "ما هو" وجدول الحقائق الرئيسية لم تعد تدعي اعتماد OpenBook.
* `products/stable/accounts` — حسابات OpenBook محذوفة من الجرد؛ حقول Serum/open-orders في `AmmInfo` وضعت علامة عليها كقديمة/غير مستخدمة؛ ملاحظة أصول المجموعة مضافة.
* `products/stable/instructions` — جداول حسابات Swap / Deposit / Withdraw / WithdrawPnl جديدة مع callouts التوافق؛ جميع التعليمات الأخرى (`Initialize`، `PreInitialize`، `InitModelData`، `UpdateModelData`، `MonitorStep`، `SetParams`، `WithdrawSrm`، `SimulateInfo`) وضعت علامة عليها كمحذوفة / لم تعد قابلة للاستدعاء.
* `products/stable/math` — تحديث صيغة أصول المجموعة؛ قسم `MonitorStep` / OpenBook أعيد صياغته كمتقاعد منذ زمن طويل.
* `products/stable/fees` — قسم "PnL من OpenBook" متقاعد؛ تدفق الجمع لم يعد يسوي ملء OpenBook.
* `products/stable/code-demos` — إرشادات عدد الحسابات محدثة؛ SDK لا يزال يجرد اختيار التخطيط.

**تم التحقق منه مقابل**:

* مصدر برنامج `raydium-stable` (بعد الترقية `instruction.rs` / `processor.rs`).
* نشر برنامج Stable AMM على السلسلة على Solana mainnet-beta.
