الانتقال إلى المحتوى الرئيسي
هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
يدعم LaunchLab ثلاثة أشكال منحنيات يتم اختيارها عند Initialize: constant-product (الشكل الأكثر شيوعًا، صيغة الاحتياطي الافتراضي للمنحنى x · y = k القياسي)، linear-price، وfixed-price. صيغة عتبة التخرج موحدة عبر جميع الأشكال الثلاثة. تتناول هذه الصفحة رياضيات منحنى constant-product بالتفصيل؛ يتم تلخيص الأشكال الخطية والثابتة في النهاية.

المعاملات المخزنة على LaunchState

أسماء الحقول في بنية Rust تطابق حقول PoolState الموضحة في accounts؛ الوحدات أعلاه مفاهيمية.

منحنى ثابت المنتج مع الاحتياطيات الافتراضية (curve_type = 0)

المنحنى الافتراضي والأكثر استخدامًا. جميع عمليات الإطلاق على غرار Pump تستخدم هذا الشكل. يتظاهر المنحنى بأن هناك احتياطي اقتباس افتراضي V_q واحتياطي أساس افتراضي V_b من البداية (مخزن كـ virtual_quote و virtual_base على PoolState)، لذا المجمع الفعلي يبدو وكأنه CPMM بهذه الاحتياطيات. تتبع عمليات الشراء رياضيات x · y = k:
محلول بـ base_out:
السعر الفعلي عند base-sold s:
نفس ثابت x · y = k الذي يطبقه LaunchLab قبل التخرج هو حرفيًا منحنى CPMM (أو AMM v4) بعد التخرج، لذا مرور التخرج سلس آليًا: السعر الهامشي عند base_sold = base_supply_graduation يساوي السعر الذي يفتح به مجمع ما بعد التخرج مع (quote_vault, base_vault_remaining) كاحتياطياته.

منحنى السعر الثابت (curve_type = 1)

منحنى بسعر ثابت. كل عملية شراء/بيع تحدث بسعر ثابت، قابل للتكوين عند Initialize:
مفيد لعمليات الإطلاق العادلة حيث يريد الفريق تسعيرًا موحدًا لجميع المشاركين بغض النظر عن وقت شرائهم. يُطلق التخرج عندما يتم بيع base_supply_graduation (علاقة التكلفة الخطية تجعل اشتقاق quote_reserve_target مباشرًا).

منحنى السعر الخطي (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):
قيمة الاقتباس المطلوبة للوصول إلى التخرج (التكلفة المتكاملة):
إذاً ≈ 6.827 وحدة اقتباس أصلية (في أي عملة اقتباس 6 منازل عشرية محددة، مثلاً ~6,827 USDC إذا كان الاقتباس USDC). الرسم المطبق على الأعلى:
أول عملية شراء بـ 10 USDC:
  • الحالة الافتراضية: s = 0، quote_vault = 0.
  • اطرح الرسم: quote_after_fee = 10 × 0.99 = 9.9.
  • حل (40 / (3e18)) × s³ = 9.9s ≈ 6.22e6 رموز أساس مشتراة.
  • تقسيم رسم 1% (0.1 USDC): lp 0.06، creator 0.02، protocol 0.02. يبقى حصة lp في quote_vault؛ الحصتان الأخريان توجهان إلى عدادات الاستحقاق الخاصة بهما.
الشراء عند بيع 75% (الاقتراب من التخرج): نفس 10 USDC تشتري أساس أقل بكثير الآن لأن المنحنى حاد. يعطي حل Newton عند 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 لا يرى قفزة.

أين تذهب بعد ذلك

المصادر: