إجمالي معروض ERC-20 ورصيد المحفظة: أي رقم يخصك؟
معروض الرمز ورصيد الحساب يجيبان عن سؤالين مختلفين. اختر حقل القراءة المناسب قبل مقارنة الأرقام.
في رمز ERC-20، تعرض balanceOf(account) الرصيد المسجل لحساب واحد. وتعرض totalSupply() إجمالي معروض عقد الرمز. المعروض الكبير على صفحة الرمز لا يعني حيازة كبيرة في حسابك.
إذا فتحت مستكشفا لفحص ما تملكه، فاختر رصيد الحساب. ولمعرفة عدد الوحدات الإجمالي الذي يبلّغ عنه العقد، اختر المعروض. لا يكفي أي من الرقمين وحده لتحديد قيمة بالدولار أو إثبات التحكم في عنوان أو إثبات أمان الرمز.
عقد واحد وسؤالان مختلفان
تعرّف مواصفة ERC-20 هاتين الدالتين كطريقتين منفصلتين للقراءة فقط. لا تستقبل totalSupply() حسابا كمدخل. وتحتاج balanceOf إلى العنوان الذي تريد فحص رصيده. عقد الرمز الذي تستدعيه هو الذي يحدد الأصل الذي تسأل عنه.
| القراءة | المدخل الإضافي إلى عقد الرمز | السؤال الذي تجيب عنه |
|---|---|---|
totalSupply() |
لا شيء | ما المعروض الذي يبلّغ عنه هذا العقد؟ |
balanceOf(account) |
عنوان حساب عام | ما الرصيد المسجل لهذا الحساب؟ |
تخيّل مثلا رمزا معروضه 1,000 وحدة، يملك الحساب أ منها 25. النتيجة الصحيحة هي 1,000 للمعروض و25 للحساب أ. هذا الاختلاف متوقع. لا توجد حيازة مفقودة مقدارها 975 وحدة تحتاج إلى استرداد.
هذه كميات افتراضية للتوضيح، وليست قراءات لرمز فعلي. إذا لم تعرف أي عنوان يحدد الحساب وأيهما يحدد الأصل، فراجع دليل عنوان المحفظة وعقد الرمز قبل قراءة أي من الحقلين.
ما الذي يغير الرصيد وما الذي يغير المعروض؟
لنأخذ رمزا افتراضيا بسيطا يستخدم تحويلات عادية دون رسوم أو محاسبة مخصصة. نبدأ بوجود 25 رمزا في الحساب أ و975 في الحساب ب:
| الحدث | الحساب أ | الحساب ب | إجمالي المعروض |
|---|---|---|---|
| الحالة الأولية | 25 | 975 | 1,000 |
| أ يحول 5 إلى ب | 20 | 980 | 1,000 |
| سك 100 رمز جديد للحساب ب | 20 | 1,080 | 1,100 |
| ب يحرق 10 عبر دالة حرق | 20 | 1,070 | 1,090 |
التحويل يغير الجهة التي تحوز الوحدات. السك ينشئ وحدات، والحرق بالآلية الموضحة يزيل وحدات. يوثق مرجع ERC20 من OpenZeppelin محاسبة السك والحرق لديه، بما فيها خفض المعروض عند الحرق.
يصف هذا الجدول ذلك النموذج البسيط. قد يخصص الرمز التحويلات أو يستخدم قواعد محاسبية أخرى. لا تعتبر إرسال الرموز إلى عنوان موصوف بأنه «ميت» دليلا على انخفاض totalSupply(): تحقق مما إذا كان العقد يخفض المعروض فعليا. تسمية العنوان لا تنفذ دالة حرق.
كذلك قد يبقى رصيدك ثابتا بينما يتغير المعروض في مكان آخر. يوضح دليل المعروض من OpenZeppelin أن معيار ERC-20 يترك آلية المعروض للتنفيذ. قراءة المعروض الحالي لا تثبت استحالة السك مستقبلا.
اقرأ الرقمين دون نقل الرموز
اقرأ الرقمين من عقد الرمز نفسه وعلى الشبكة نفسها. الخطوات التالية فحص مقترح، وليست تقريرا عن اختبار محفظة أجري لهذا المقال. تم التحقق من الوثائق الأولية في 23 أكتوبر 2026.
- سجل الشبكة وعنوان عقد الرمز كاملا. قارن عنوان العقد بمعلومات النشر الرسمية للجهة المصدرة. تطابق رموز الاختصار عبر شبكات مختلفة لا يكفي لمقارنة على أساس واحد.
- سجل الحساب العام الذي تقصد فحصه. احصل عليه من تفاصيل ذلك الحساب. أبقه منفصلا عن عقد الرمز. التتبع العام يعمل أيضا مع حسابات لا تتحكم فيها، لذلك نجاح البحث لا يثبت الملكية.
- افتح مستكشفا أو قارئ عقود موثوقا لتلك الشبكة. اختر واجهة القراءة فقط لعقد الرمز الذي تحققت منه. اقرأ
totalSupply()ثمbalanceOfباستخدام عنوان الحساب كمدخل. تختلف تسميات الواجهات؛ استخدم أسماء الدوال لتمييز السؤالين. - احفظ الحالة الزمنية مع النتائج. سجل رقم الكتلة حين يتاح. يفضل تنفيذ الاستدعاءين عند الكتلة نفسها. قد ترصد قراءتان منفصلتان للحالة الأحدث حالتين مختلفتين إذا حدث تحويل أو سك أو حرق بينهما.
- سجل الوحدات قبل المقارنة. احتفظ بالردود الخام ولاحظ ما إذا كانت الواجهة قد نسقتها بالفعل. فشل الاستدعاء يعني أن البيانات غير متاحة، ولا يعني أن الرصيد صفر.
تعرض وثائق ERC-20 من Ethereum استدعاءين منفصلين للمعروض ورصيد الحساب. لست بحاجة إلى إعادة إعداد بيئة التطوير المذكورة لفهم النتيجة التي تحتاج إليها. يستطيع مستكشف يوفر طرق القراءة العامة تقديم الفئات نفسها من المعلومات.
قراءة الحالة العامة لا تتطلب تحويلا أو تفويضا للرموز. إذا طلبت صفحة عبارة استرداد أو توقيعا لكشف هذه القيم، فتوقف عن استخدام ذلك المسار. لا يدخل أي منهما في هذه المقارنة.
استخدم الوحدات نفسها للرقمين
يستخدم المعروض وأرصدة الحسابات المقياس المحاسبي للرمز نفسه. يغطي شرح المنازل العشرية من OpenZeppelin تنسيق كليهما صراحة. في رمز افتراضي له 6 منازل عشرية تم التحقق منها، يمثل المعروض الخام 1000000000 عدد 1,000 رمز، ويمثل الرصيد الخام 25000000 عدد 25 رمزا.
لا تقارن المعروض الخام برصيد منسق. ولا تقسّم رقما حولته الواجهة بالفعل. يشرح دليل المنازل العشرية لرموز ERC-20 كيفية تحديد المقياس والتعامل مع غياب البيانات الوصفية والتقريب. توحيد المقياس هنا شرط لمقارنة مقياسين مختلفين فحسب؛ وهو لا يجعلهما متساويين.
ما الذي لا يحسمه رقم المعروض؟
ليست totalSupply() في معيار ERC-20 حسابا موحدا للمعروض المتداول. قد يستبعد مزود المعلومات أجزاء عند تقدير التداول. يجب أن تشرح منهجيته تلك الاستبعادات؛ ولا يمكنك الحصول عليها بإعادة تسمية رد العقد. الحد الأقصى للمعروض سؤال آخر مستقل. توثق OpenZeppelin امتدادا لسقف المعروض، لكن المعيار نفسه لا يشترط وجود هذه الميزة في كل رمز.
تخص النتيجة أيضا عملية النشر والحالة الزمنية المحددتين اللتين قرأتهما. وهي لا تجمع الرموز تلقائيا عبر السلاسل أو الرموز المغلفة أو العقود المرتبطة. قد ينتج عن جمع عمليات نشر تحمل أسماء متشابهة رقم بلا معنى واضح ما لم تثبت علاقتها ومحاسبتها بصورة منفصلة.
لفحص المحفظة الاستثمارية، احتفظ بسجل نهائي صغير: الشبكة وعقد الرمز والحساب والكتلة والرصيد والوحدات. أضف المعروض فقط حين يجيب عن سؤال مستقل. إذا كان رصيد الحساب 25 رمزا ومعروض العقد 1,000، فاحتفظ بكل رقم وتسميته. لا يعني الفرق أن رموزا مفقودة من الحساب.
أسئلة شائعة
هل قراءة إجمالي المعروض تبين عدد الرموز في محفظتي؟
لا. دالة إجمالي المعروض تعرض معروض عقد الرمز كله. أما دالة رصيد الحساب فتأخذ عنوان حساب وتعرض الرصيد المسجل له. يجب أن تتعلق القراءتان بعقد الرمز والشبكة المقصودين.
هل إجمالي المعروض يساوي المعروض المتداول أو الحد الأقصى للمعروض؟
لا. معيار الرموز لا يحدد حسابا للمعروض المتداول ولا يشترط حقلا للمعروض الأقصى. رقم التداول لدى مزود المعلومات يحتاج إلى منهجيته الخاصة، وأي سقف للمعروض يحتاج إلى دليل من تنفيذ الرمز.
هل أستطيع فحص هذه الأرقام دون ربط محفظتي؟
نعم. استدعاءات العقد العامة للقراءة فقط تحتاج إلى عقد الرمز والشبكة، وإلى عنوان الحساب العام عند قراءة رصيده. لا تتطلب قراءة هذه القيم تحويلا أو تفويضا للرموز أو عبارة استرداد أو توقيع المحفظة.