تعارف
Stellar Trade Contracts، Stellar Trade کے لیے Soroban کنٹریکٹ ورک اسپیس ہے، جو Stellar پر بنایا گیا اوپن سورس پیش گوئی مارکیٹ پروٹوٹائپ ہے۔ یہ کنٹریکٹس طے کرتے ہیں کہ XLM مارکیٹ پول میں کیسے داخل ہوتا ہے، شرکاء اپنی پوزیشنز کیسے کم کرتے ہیں، اور حل شدہ یا منسوخ شدہ مارکیٹس ادائیگیاں اور ریفنڈز کیسے تقسیم کرتی ہیں۔
یہ ریپوزٹری ان ڈویلپرز کے لیے تیار کی گئی ہے جنہیں ایپلیکیشن کے پسِ پشت موجود کنٹریکٹس کو بنانا، ٹیسٹ کرنا، جائزہ لینا یا تعینات کرنا ہو۔ اس میں مارکیٹ کنٹریکٹ کے علاوہ معاون ٹوکن، ریفرل، لیڈر بورڈ اور انٹیگریشن ٹیسٹ کریٹس بھی شامل ہیں۔
ورک اسپیس کو سمجھیں
ریپوزٹری پانچ بنیادی کریٹس میں منظم ہے، اور ہر کریٹ کی ذمہ داری الگ ہے:
prediction_market: مارکیٹس بناتا ہے، پوزیشنز قبول کرتا ہے، پوزیشنز کم کرتا ہے، ریزولور کی کارروائیاں سنبھالتا ہے، متناسب کلیمز کا حساب لگاتا ہے، منسوخی کے ریفنڈز پر کارروائی کرتا ہے، فیس کا حساب رکھتا ہے، اور تنازعات و گورننس کو سپورٹ کرتا ہے۔stellar_trade_token: ایڈمنسٹریٹر کنٹرولز، مجاز منٹرز، توقف کے کنٹرولز اور اختیاری سپلائی حد کے ساتھ ریوارڈ ٹوکن فراہم کرتا ہے۔ نئی تعیناتیوں میں نامStellar Tradeاور علامتSTRDاستعمال ہوتی ہے۔referral_registry: ریفرلز رجسٹر کرتا ہے، ریفرل چین کی گہرائی محدود کرتا ہے، اور ریفرل فیس تقسیم کرتا ہے۔leaderboard: شرکاء کے پوائنٹس اور جیت/ہار کا ریکارڈ محفوظ کرتا ہے، اسکور میں کمی لاگو کرتا ہے، اور مجاز ریوارڈ منٹنگ کو سپورٹ کرتا ہے۔cross_contract_invariants: مارکیٹ، ریفرل، لیڈر بورڈ اور ٹوکن کنٹریکٹس کے درمیان اکاؤنٹنگ اور رویے کی جانچ کرتا ہے۔
Rust ورک اسپیس ترتیب دیں
پروجیکٹ rust-toolchain.toml کے ذریعے Rust 1.91.0 اور wasm32v1-none ٹارگٹ مقرر کرتا ہے۔ ریپوزٹری کی جڑ سے چیکس چلانے سے پہلے ریپوزٹری میں متعین ٹول چین اور ٹارگٹ انسٹال کریں۔
ماحول تیار ہونے کے بعد مکمل ورک اسپیس ٹیسٹ سوئٹ چلائیں:
cargo test --workspace --all-featuresفارمیٹ چیکس اس بات کی تصدیق کرتے ہیں کہ سورس پروجیکٹ کے فارمیٹنگ اصولوں کے مطابق ہے:
cargo fmt --all -- --checkکوڈ کے معیار اور درستگی کے مسائل معلوم کرنے کے لیے Clippy چلائیں اور وارننگز کو ایررز سمجھیں:
cargo clippy --workspace --all-features -- -D warningsریلیز پروفائل کے ساتھ prediction-market کنٹریکٹ کو WebAssembly کے لیے بنائیں:
cargo build --release --target wasm32v1-none -p prediction_marketیہ کمانڈز ریپوزٹری کے GitHub Actions ورک فلو میں استعمال ہونے والے چیکس کے مطابق ہیں۔ ورک فلو WASM آرٹیفیکٹس بھی بناتا ہے اور ڈیفالٹ برانچ اور پل ریکوئسٹس میں ہونے والی تبدیلیوں کے لیے کراس کنٹریکٹ ان ویریئنٹ ٹیسٹس چلاتا ہے۔
مارکیٹ کے لائف سائیکل کی پیروی کریں
1. مارکیٹ بنائیں
مجاز تخلیق کار مارکیٹ کا سوال، زمرہ اور اختتامی وقت شائع کرتا ہے۔ مارکیٹ بنانا اجازت یافتہ عمل ہے، اس لیے کال کرنے والے کو کنٹریکٹ میں تشکیل دیے گئے اجازت کے اصول پورے کرنا ہوں گے۔
2. پوزیشن لیں
شرکت کنندہ YES یا NO میں سے کسی ایک جانب XLM لگانے کے لیے place_bet کال کرتا ہے۔ کنٹریکٹ مقررہ فیس لاگو کرتا ہے اور نتیجے میں بننے والی پوزیشن کو شرکت کنندہ کی منتخب کردہ جانب کریڈٹ کرتا ہے۔
پوزیشن کم کرنے کا طریقۂ کار ہم مرتبہ سے ہم مرتبہ فروخت، آرڈر بک یا شارٹ پوزیشن نہیں ہے۔ یہ شرکت کنندہ کے پہلے سے درج شدہ اسٹیک پر کی جانے والی کارروائی ہے۔
3. بند ہونے سے پہلے پوزیشن کم کریں
مارکیٹ بند ہونے سے پہلے شرکت کنندہ موجودہ اسٹیک کم کرنے کے لیے reduce_position کال کر سکتا ہے۔ کنٹریکٹ شرکت کنندہ کی درج شدہ جانب استعمال کرتا ہے اور کم کیے گئے اسٹیک اور برقرار رکھی گئی فیس کے اصولوں سے واپس کی جانے والی رقم کا حساب لگاتا ہے۔
چونکہ کنٹریکٹ شرکت کنندہ کی موجودہ پوزیشن سے جانب منتخب کرتا ہے، اس لیے کال کرنے والوں کو اس کارروائی کو جانب تبدیل کرنا یا کسی دوسرے شرکت کنندہ کے ساتھ تجارت سمجھنا نہیں چاہیے۔
4. مارکیٹ حل کریں
مجاز ریزولور مارکیٹ بند ہونے کے بعد نتیجہ جمع کراتا ہے۔ اس کے بعد مارکیٹ کنٹریکٹ جیتنے والی پوزیشنز کے لیے متناسب ادائیگیوں کا حساب لگاتا ہے۔
حل کا عمل اجازت یافتہ ہے۔ یہ ورک اسپیس خودکار اوریکل فراہم نہیں کرتی۔ بیرونی قیمت یا نیٹ ورک کا ڈیٹا کسی مارکیٹ کو اس وقت تک طے نہیں کر سکتا جب تک مجاز ریزولور اس معلومات کو استعمال کرکے نتیجہ جمع نہ کرائے۔
5. جیت کی رقم کلیم کریں یا منسوخی کا ریفنڈ وصول کریں
شرکاء مارکیٹ کے حل ہونے کے بعد کنٹریکٹ کے ذریعے متناسب ادائیگیاں کلیم کرتے ہیں۔ منسوخ شدہ مارکیٹس عام جیتنے والی پوزیشن کی ادائیگی کے بجائے ایک الگ ریفنڈ کے طریقے پر عمل کرتی ہیں۔
ریزولور کا انتخاب، حل کے معیار، شواہد اور تنازعات سے نمٹنا اہم اعتماد سے متعلق مفروضے ہیں۔ تعینات شدہ مارکیٹ پر انحصار کرنے سے پہلے ان طریقہ کار کا جائزہ لیں۔
اکاؤنٹنگ اور حفاظتی خصوصیات کا جائزہ لیں
کنٹریکٹ کے رویے میں تبدیلی سے پہلے ان ویریئنٹ میٹرکس پڑھیں۔ یہ اہم اکاؤنٹنگ اصولوں کو ان کی حفاظت کرنے والے ٹیسٹس سے مربوط کرتی ہے۔
میٹرکس میں درج ذیل شعبے شامل ہیں:
- فیس کا تحفظ اور مارکیٹ کی سطح پر فیس کی علیحدگی۔
- متناسب ادائیگیوں کی حدود۔
- منسوخی کا رویہ۔
- ریفرل اکاؤنٹنگ۔
- ریوارڈ سپلائی کی ٹریکنگ۔
- اسٹوریج کے وقتِ حیات کا انتظام۔
- ہنگامی توقف کے راستے۔
اگر آپ فیس، ریوارڈز، ادائیگی کے فارمولوں یا اسٹوریج کے اوقاتِ حیات میں ترمیم کریں تو متعلقہ ریگریشن اور ان ویریئنٹ ٹیسٹس بھی بیک وقت اپ ڈیٹ کریں۔ جب تبدیلی ایک سے زیادہ کنٹریکٹس کو متاثر کرے تو cross_contract_invariants کریٹ خاص طور پر مفید ہے۔
تاریخی مسئلہ رپورٹس درست طریقے سے استعمال کریں
issues/ ڈائریکٹری میں تاریخی سیکیورٹی اور درستگی کی رپورٹس شامل ہیں۔ ان کا سیاق سمجھنے کے لیے issues/README.md پڑھیں۔
یہ رپورٹس سابقہ ڈیزائن کے خطرات کو دستاویزی شکل دیتی ہیں۔ انہیں اس بات کا ثبوت نہ سمجھا جائے کہ معاہدوں کا آڈٹ ہو چکا ہے، اور نہ ہی اس امر کی تصدیق سمجھا جائے کہ درج کردہ ہر مسئلہ اب بھی موجودہ ہے۔ انہیں موجودہ سورس کوڈ، ٹیسٹس، اور اِن ویریئنٹ میٹرکس کے ساتھ جائزے کے لیے استعمال کریں۔
تعیناتی کی تیاری کریں
ٹیسٹ نیٹ کی تعیناتیاں اپنے تاریخی معاہدہ IDs اور ٹوکن میٹا ڈیٹا کو برقرار رکھتی ہیں۔ نئی تعیناتی نئے پتے بناتی ہے اور STRD کو ابتدائی حالت میں لاتی ہے؛ یہ موجودہ ہولڈرز یا بیلنسز کو منتقل نہیں کرتی۔
تعیناتی سے پہلے درج ذیل تمام امور کی تصدیق کریں:
- ہدف نیٹ ورک۔
- معاہدہ IDs۔
- ایڈمنسٹریٹر کی شناخت۔
- فیس کی ترتیبات۔
- ریزالور کی تشکیل۔
خفیہ کلیدیں، والیٹ کی بازیابی کے فقرے، .deploy.env، تعیناتی کا آؤٹ پٹ، یا مقامی شناختی فائلیں کبھی بھی ریپوزٹری میں commit نہ کریں۔
مقامی فرنٹ اینڈ ڈیولپمنٹ اور ایپلیکیشن کی سطح پر تعیناتی کی ہدایات کے لیے ایپلیکیشن README سے رجوع کریں۔
اعلیٰ سطحی ڈیولپمنٹ تجاویز
بین المعاہدہ رویے کی جانچ کریں
ایک crate تک محدود نظر آنے والی تبدیلی referrals، rewards، leaderboard ریکارڈز، یا ٹوکن سپلائی کو متاثر کر سکتی ہے۔ صرف ایک crate کے یونٹ ٹیسٹس پر انحصار کرنے کے بجائے مکمل workspace suite اور بین المعاہدہ اِن ویریئنٹ ٹیسٹس چلائیں۔
اجازت کی حدود واضح رکھیں
مارکیٹ بنانا، ریزولوشن، ٹوکن انتظام، minting، اور دیگر حساس کارروائیاں اجازت نامے کے کنٹرولز استعمال کرتی ہیں۔ کسی معاہدے کا جائزہ لیتے یا اسے وسعت دیتے وقت تصدیق کریں کہ ہر کارروائی انجام دینے کی اجازت کن شناختوں کو ہے اور pause کنٹرولز ہنگامی رویے کو کیسے متاثر کرتے ہیں۔
اسٹوریج کی مدت میں تبدیلیوں کا جائزہ لیں
اسٹوریج TTL کا انتظام منصوبے کے حفاظتی ماڈل کا حصہ ہے۔ اسٹوریج تک رسائی کے طریقوں یا مدت میں کسی بھی تبدیلی کو اِن ویریئنٹ میٹرکس کے مطابق جانچنا چاہیے اور ریگریشن ٹیسٹس کے ذریعے اس کا احاطہ ہونا چاہیے۔
ریلیز کے آرٹیفیکٹس کی توثیق کریں
تبدیلیاں شائع یا تعینات کرنے سے پہلے formatting، Clippy، ٹیسٹس، اور ریلیز WASM build چلائیں۔ صاف مقامی build کو ڈیولپمنٹ کی پیشگی شرط سمجھیں، configuration اور تعیناتی کی شناختوں کے جائزے کا متبادل نہیں۔
نتیجہ
Stellar Trade Contracts پیش گوئی کی مارکیٹس بنانے، YES اور NO پوزیشنز ریکارڈ کرنے، stakes کم کرنے، نتائج حل کرنے، متناسب claims تقسیم کرنے، اور منسوخ شدہ مارکیٹس کی رقم واپس کرنے کے لیے Soroban لاجک فراہم کرتا ہے۔ اس کے معاون crates reward-token، referral، leaderboard، اور integration کی فعالیت شامل کرتے ہیں۔
ریپوزٹری کے ساتھ محفوظ طریقے سے کام کرنے کے لیے pinned Rust environment سے آغاز کریں، تمام workspace checks چلائیں، مارکیٹ کے lifecycle کا مطالعہ کریں، اور accounting یا storage کے رویے میں تبدیلی سے پہلے invariant matrix کا جائزہ لیں۔ تعیناتی کے دوران ہر permission اور network setting کی تصدیق کریں اور تمام secrets کو version control سے باہر رکھیں۔
