لأغراض تعليمية فقط؛ وليس نصيحة استثمارية أو أمنية. لا تثبت المنازل العشرية هوية الرمز أو قيمته أو احتياطياته أو سلامته.
الإجابة المباشرة
في رمز ERC-20، تمثل decimals() بيانات وصفية اختيارية تخبر الواجهات بكيفية عرض وحدات الرمز الصحيحة. إذا أعادت d، فالمبلغ المعروض وفق العرف هو raw / 10^d. لا تغير هذه القيمة حسابات العقد ولا توثق هوية الرمز. قبل الاعتماد عليها، تحقق من الشبكة وعنوان العقد الدقيق والكود أو تنفيذ الوكيل والكتلة.
اقرأ decimals() مباشرة عبر RPC مستقل عند كتلة محددة، وفك ترميز نتيجة ABI على أنها uint8، ثم قارنها بسجل العقود الرسمي للمصدر ومستكشف موثوق. بعد ذلك اختبر المقياس بقيم balanceOf الخام والتحويلات والموافقات والإيصالات والأحداث. لا تفترض 18 بصمت إذا كانت الدالة غائبة أو ترتد أو تعيد بيانات مشوهة أو تخالف أدلة أخرى.
آلية العمل
يخزن ERC-20 المبالغ وينقلها كأعداد صحيحة غير موقعة. تضيف طبقة العرض الفاصلة العشرية، بينما يستقبل العقد أعدادا صحيحة. حوّل إدخال المستخدم بسلاسل عشرية أو حساب صحيح بدقة غير محدودة، ولا تستخدم الفاصلة العائمة الثنائية. لا تكون الكمية قابلة للتمثيل إلا إذا أنتج ضربها في 10^d عددا صحيحا.
لأن decimals() اختيارية، قد يحذفها رمز ملتزم بالمعيار. وقد يعيد تنفيذ مخصص أو قابل للترقية قيمة غير متوقعة أو يغير سلوكه بعد الترقية. في وكيل ERC-1967، افحص عنوان الوكيل والتنفيذ أو beacon والمسؤول وأحداث الترقية؛ اقرأ حالة الرمز من عنوان الوكيل وثبت كل المقارنات على الكتلة نفسها.
الموافقات وقيم ERC-2612 permit أعداد صحيحة خام أيضا. صحة عرض التحويل لا تثبت أن الموافقة أو حد الموجه الأدنى أو مبلغ الجسر أو قاعدة المحاسبة استخدمت المقياس نفسه. قد تستخدم عقود طرفي الجسر منازل عشرية مختلفة؛ قارن القيمة المقروءة والوحدات الخام على كل طرف وفقا لقواعد التحويل والتقريب الموثقة.
اتبع هذه الخطوات:
- ثبت معرف الشبكة أو النطاق وعقد الرمز ورقم الكتلة ونقطة RPC ووقت الرصد.
- أكد العنوان من سجل المصدر الرسمي؛ لا تعد الاسم أو الرمز أو الأيقونة أو نتائج البحث أدلة موثوقة.
- افحص الكود المنشور وما إذا كان العنوان وكيلا؛ سجل التنفيذ أو beacon والمسؤول والترقيات الأخيرة.
- استدع
decimals()وفكuint8عبر ABI، وسجل النجاح أو الارتداد أو الخرج الفارغ أو المشوه بدلا من وضع قيمة افتراضية. - اقرأ
balanceOfوtotalSupplyوالموافقة وcalldata والإيصال والأحداث الخام عند كتل متوافقة، ثم نسقها بالمقياس المرصود. - أعد حساب التحويل والموافقة والتسعير والجسر بأعداد صحيحة، بما يشمل الرسوم والتقريب والبقايا وإعادة الأساس أو ضريبة التحويل.
- حاك معاملة صغيرة وأرسلها ثم طابق الأرصدة الخام قبلها وبعدها؛ توقف عند أي خلاف بين الواجهة أو RPC أو الحدث أو الرصيد.
أمثلة
- قيمة خام واحدة ومقياسان. مع
raw = 123456789يعرضd = 6القيمة123.456789، بينما يعرضd = 18القيمة0.000000000123456789. الفرق بمعامل10^12. - قابلية التمثيل مهمة. مع
d = 6تصبح1.25من الرمز1250000وحدة خام. أما0.0000001من الرمز فهي أقل من وحدة خام ويجب رفضها أو تقريبها بقاعدة صريحة. - مقياس موافقة خاطئ. موافقة
100رمز عندd = 6تساوي100000000. ترميزها عندd = 18ينتج100000000000000000000، أي موافقة أكبر10^12مرة من المقصود. - إعادة القياس عبر الجسر. إذا حول مسار موثق
1:1رمزا مصدريا عندd = 6إلى تمثيل وجهة عندd = 18، فإن2500000الخام تمثل2.5رمز، و2500000000000000000في الوجهة تمثل2.5. ويظل التحقق من الرسوم والحدود والبقايا والرصيد المستلم ضروريا.
المخاطر
- الاستعلام عن العنوان الصحيح على الشبكة الخطأ.
- إخفاء عقد آخر باسم أو رمز أو أيقونة منسوخة.
- تغير تنفيذ الوكيل أو beacon بعد الفحص السابق.
- تقديم RPC أو المستكشف حالة قديمة أو غير نهائية أو غير متسقة.
- استبدال البيانات الغائبة أو المشوهة بصمت بالقيمة
18. - تقريب تحويل الفاصلة العائمة الثنائية لمبلغ كبير أو دقيق.
- عرض المحفظة للتحويل بشكل صحيح مع خطأ في الموافقة أو permit.
- خلط قاعدة البيانات بين الوحدات الخام والمبالغ المقروءة.
- افتراض الجسر تساوي المنازل العشرية أو عدم كشف تقريب البقايا.
- إفساد رسوم التحويل أو إعادة الأساس أو السك أو الحرق أو الإيقاف أو التجميد للمطابقة البسيطة.
- اختلاف calldata والأحداث والإيصالات وتغيرات الرصيد الفعلية.
- اعتبار فحص المنازل العشرية دليلا على المصدر أو الاحتياطيات أو السيولة أو السلامة.
مفاهيم خاطئة شائعة
- لكل رموز ERC-20 عدد
18من المنازل العشرية. البيانات اختيارية وقد يعيد التنفيذ قيمة أخرى. - المنازل العشرية هي بتات دقة تستخدمها EVM. إنها قاعدة عرض عشرية، وتظل حسابات الرمز صحيحة العدد.
- الرصيد المنسق في المستكشف تأكيد مستقل. قد يعتمد على استدعاء البيانات نفسه ويشارك الخطأ نفسه.
- الرمز والمنازل العشرية المتطابقة تحدد الأصل نفسه. يلزم أيضا الشبكة الصحيحة والعقد الدقيق ودليل المصدر.
- نجاح تحويل صغير يتحقق من كل تكامل. قد تقيس الموافقات والموجهات والجسور والمنصات والمحاسبة المبالغ كل على حدة.
موضوعات ذات صلة
المصادر
- ERC-20: Token Standard - Ethereum Improvement Proposals (تاريخ الاطلاع: 2026-08-21)
- ERC-20 - OpenZeppelin Docs (تاريخ الاطلاع: 2026-08-21)
- JSON-RPC API - ethereum.org (تاريخ الاطلاع: 2026-08-21)
- ERC-1967: Proxy Storage Slots - Ethereum Improvement Proposals (تاريخ الاطلاع: 2026-08-21)
- ERC-2612: Permit Extension for EIP-20 Signed Approvals - Ethereum Improvement Proposals (تاريخ الاطلاع: 2026-08-21)