١. نظرة عامة
تتكون المنظومة من عقدين: TokenFactoryPro وهو عقد المصنع الذي يستقبل طلبات الإنشاء ويدير
رسومه وأرصدة البيع، وCustomTokenSimple وهو قالب رمز ERC20 بسيط يُنشر نسخة جديدة منه
مع كل عملية إنشاء. لا يوجد عقد وسيط للأموال، ولا صلاحية للمصنع بالتصرف في رموز المستخدمين بعد سكّها.
٢. عقد المصنع — الوظائف الأساسية
createToken
يستقبل الاسم، الرمز، إجمالي المعروض، وخيار البيع. يتحقق من تطابق الرسوم المرسلة مع creationFee بالضبط، ثم ينشر عقد CustomTokenSimple جديدًا.
buyTokens
يشتري المستخدم وحدات من رصيد البيع المتاح لرمز معيّن، بسعر ثابت حدده المنشئ، وتُحوَّل الوحدات فورًا إلى المشتري.
withdrawSaleFunds
يسمح لمنشئ الرمز فقط بسحب أموال البيع المتجمّعة له، دون أي رسوم إضافية على السحب.
reclaimUnsold
يسمح للمنشئ باسترجاع الوحدات التي لم تُباع بعد إلى محفظته، ويوقف بيع ذلك الرمز.
٣. عقد الرمز — CustomTokenSimple
كل رمز يُنشأ هو عقد ERC20 قياسي (مبني على مكتبة OpenZeppelin) مستقل تمامًا عن المصنع بعد نشره. عند البناء:
سكّ حصة المنشئ
يُسكّ الفرق بين إجمالي المعروض وحصة البيع مباشرة إلى محفظة المنشئ.
سكّ حصة البيع (إن وُجدت)
إن فُعّل البيع، تُسكّ الحصة المخصصة له إلى عقد المصنع نفسه ليديرها بالنيابة.
ملكية الرمز
مالك عقد الرمز (Ownable) هو المنشئ نفسه، وله وحده صلاحية حرق (burn) رصيده الخاص لاحقًا.
٤. الرسوم والحدود تُقرأ مباشرة من العقد
رسوم الإنشاء والحد الأقصى للمعروض قيمتان قابلتان للتعديل من مالك عقد المصنع فقط (عبر setCreationFee
وsetMaxTotalSupply)، وأي تغيير يصدر كحدث (Event) قابل للتتبع علنًا على السلسلة.
٥. الأمان والصلاحيات
ReentrancyGuard
جميع الدوال التي تحرّك أموالًا (الإنشاء، الشراء، السحب، الاسترجاع) محمية ضد هجمات إعادة الدخول.
Ownable2Step
نقل ملكية عقد المصنع يتطلب خطوتين (اقتراح ثم قبول)، لمنع نقل الملكية بالخطأ إلى عنوان غير صحيح.
SafeERC20
عمليات تحويل الرموز تستخدم مكتبة SafeERC20 لتفادي مشاكل رموز لا تلتزم تمامًا بمعيار ERC20.
حدود استرجاع المالك
دالة استرجاع الرموز العالقة (recoverERC20) لا تستطيع لمس أي رمز أُنشئ عبر هذا المصنع — تلك الرموز ملك لأصحابها فقط.
٦. العقد المنشور
إخلاء مسؤولية
هذه الوثيقة وصفية وليست عرضًا لبيع أوراق مالية أو دعوة للاستثمار. الرموز المُنشأة عبر هذا العقد أدوات تقنية على شبكة عامة، ولا تُمثّل حصة ملكية في أي جهة ولا تَعِد بأي عائد مالي. استخدم العقد على مسؤوليتك، وتحقق من عنوانه بنفسك دائمًا قبل التفاعل معه.