هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
يدعم LaunchLab ثلاثة أشكال منحنيات يتم اختيارها عند
Initialize: constant-product (الأكثر شيوعًا، شكل الاحتياطي الافتراضي للمنحنى القياسي x · y = k)، وlinear-price، وfixed-price. صيغة عتبة التخرج مشتركة بين جميع الأشكال الثلاثة. تشرح هذه الصفحة رياضيات constant-product بالتفصيل؛ يتم تلخيص الأشكال الخطية والثابتة في النهاية.المعاملات المخزنة على LaunchState
أسماء الحقول في بنية Rust تطابق حقول
PoolState الموصوفة في accounts؛ الوحدات أعلاه مفاهيمية.
منحنى constant-product مع احتياطيات افتراضية (curve_type = 0)
المنحنى الافتراضي والأكثر استخدامًا. جميع عمليات الإطلاق على طراز Pump تستخدم هذا الشكل. يتظاهر المنحنى بوجود احتياطي اقتباس افتراضي V_q واحتياطي أساس افتراضي V_b من البداية (مخزن كـ virtual_quote و virtual_base على PoolState)، لذا تبدو المجموعة الفعلية مثل CPMM مع تلك الاحتياطيات. تتبع عمليات الشراء رياضيات x · y = k:
base_out:
s:
x · y = k الذي يطبقه LaunchLab قبل التخرج هو منحنى CPMM بعد التخرج، لذا فإن الانتقال سلس ميكانيكيًا: السعر الهامشي عند base_sold = base_supply_graduation يساوي السعر الذي تفتح به مجموعة ما بعد التخرج مع (quote_vault, base_vault_remaining) كاحتياطياتها.
منحنى fixed-price (curve_type = 1)
منحنى بسعر ثابت. كل عملية شراء/بيع تحدث بسعر ثابت، قابل للتكوين عند Initialize:
base_supply_graduation (العلاقة الخطية للتكلفة تجعل اشتقاق quote_reserve_target مباشرًا).
منحنى linear-price (curve_type = 2)
يزداد السعر خطيًا مع base_sold:
base_sold — يدفع المشترون الأوائل قريبًا من الصفر، والمشترون المتأخرون يدفعون أكثر بكثير، مع ارتفاع السعر الهامشي دائمًا بميل ثابت. التنفيذ على السلسلة يوجد في curve/linear_price.rs.
مقارنة شكل المنحنى
عتبة التخرج
يتم حسابquote_reserve_target عند Initialize كالاقتباس المطلوب لدفع base_sold من 0 إلى base_supply_graduation:
quote_vault.balance ≥ quote_reserve_target. لأن عمليات الشراء تأتي بأحجام منفصلة، قد يتجاوز الرصيد الفعلي عند التخرج الهدف قليلاً — يصبح الفائض سيولة إضافية على جانب الاقتباس في مجموعة CPMM الناتجة.
مثال عملي — إطلاق تربيعي
المعاملات:base_supply_max = 1_000_000_000(مليار رمز أساس، 6 عشريات)base_supply_graduation = 800_000_000(بيع 80% يؤدي إلى التخرج)k = 40(مقياس السعر)- الرسوم: 1% شراء، 1% بيع، تقسيم
lp:creator:protocol = 60:20:20.
s = 0): 0 (التربيعي البحت يبدأ من الصفر).
السعر عند بيع 50% (s = 500_000_000):
s = 800_000_000):
10 USDC:
- الحالة الافتراضية:
s = 0،quote_vault = 0. - اطرح الرسوم:
quote_after_fee = 10 × 0.99 = 9.9. - حل
(40 / (3e18)) × s³ = 9.9⇒s ≈ 6.22e6رموز أساس مشتراة. - رسوم 1% (
0.1 USDC) مقسمة: lp0.06، creator0.02، protocol0.02. يبقى حصة lp فيquote_vault؛ يتم توجيه الاثنين الآخرين إلى عدادات الاستحقاق الخاصة بهم.
s₀ = 750e6 مع quote_in_after_fee = 9.9 يعطي تقريبًا ∆s ≈ 0.4e6 — تقليل ~15× في الأساس لكل USDC مقارنة بأول عملية شراء.
ميكانيكا الرسوم أثناء مرحلة المنحنى
على كلBuy:
lp_shareيبقى فيquote_vault. هذا ما يجعل المنحنى الفعلي أكثر إحكامًا (احتياطي اقتباس أكثر مقابل نفس إمداد الأساس).protocol_shareيزيدLaunchState.state_data.protocol_fees_quote.creator_shareيزيدLaunchState.state_data.creator_fees_quote.
Sell ينطبق نفس التقسيم لكن يتم أخذ الرسوم من quote_out الصادر.
يتم مسح كلا العدادين عبر CollectFees (المسؤول أو المنشئ، كل واحد إلى عدادهم الخاص).
الدقة
- مبالغ جانب الأساس:
u64. - مبالغ جانب الاقتباس:
u64. - المكعبات / المنتجات الوسيطة:
u128. - حلول Newton لـ “شراء اقتباس دقيق” و “بيع اقتباس دقيق” تتكرر في
u128نقطة ثابتة مع عدد تكرار أقصى قابل للتكوين (الافتراضي 10). وضع الفشل هوNotConverged— نادر خارج حالات الحافة القريبة من التخرج.
الانتقال إلى CPMM
عندما يتم تشغيلGraduate:
cpmm_initial_price هو price(base_sold) ميكانيكيًا (إنه السعر الهامشي للمنحنى في لحظة الانتقال). تفتح مجموعة CPMM بالضبط بهذا السعر، لذا فإن المراقب الذي ينتقل من واجهة المنحنى إلى واجهة CPMM لا يرى قفزة.
الخطوات التالية
products/launchlab/accounts— حقولLaunchStateالتي تخزن هذه المعاملات.products/launchlab/instructions— قوائم حساباتBuy،Sell،Graduate.algorithms/constant-product— رياضيات CPMM التي تستخدمها مجموعة ما بعد التخرج.
- وحدة Raydium SDK v2
LaunchLab - مصدر برنامج Raydium LaunchLab

