﻿---
title: "كيفية التحقق من المنازل العشرية للرمز"
description: "تحقق من decimals لرمز ERC-20 من العقد والكتلة الصحيحين، ثم طابق الأرصدة الخام والتحويلات والموافقات وتحويلات الجسر من دون أخطاء الفاصلة العائمة."
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# كيفية التحقق من المنازل العشرية للرمز

> لأغراض تعليمية فقط؛ وليس نصيحة استثمارية أو أمنية. لا تثبت المنازل العشرية هوية الرمز أو قيمته أو احتياطياته أو سلامته.

<a id="answer"></a>

## الإجابة المباشرة

في رمز ERC-20، تمثل `decimals()` بيانات وصفية اختيارية تخبر الواجهات بكيفية عرض وحدات الرمز الصحيحة. إذا أعادت `d`، فالمبلغ المعروض وفق العرف هو `raw / 10^d`. لا تغير هذه القيمة حسابات العقد ولا توثق هوية الرمز. قبل الاعتماد عليها، تحقق من الشبكة وعنوان العقد الدقيق والكود أو تنفيذ الوكيل والكتلة.

اقرأ `decimals()` مباشرة عبر RPC مستقل عند كتلة محددة، وفك ترميز نتيجة ABI على أنها `uint8`، ثم قارنها بسجل العقود الرسمي للمصدر ومستكشف موثوق. بعد ذلك اختبر المقياس بقيم `balanceOf` الخام والتحويلات والموافقات والإيصالات والأحداث. لا تفترض `18` بصمت إذا كانت الدالة غائبة أو ترتد أو تعيد بيانات مشوهة أو تخالف أدلة أخرى.

<a id="mechanism"></a>

## آلية العمل

يخزن ERC-20 المبالغ وينقلها كأعداد صحيحة غير موقعة. تضيف طبقة العرض الفاصلة العشرية، بينما يستقبل العقد أعدادا صحيحة. حوّل إدخال المستخدم بسلاسل عشرية أو حساب صحيح بدقة غير محدودة، ولا تستخدم الفاصلة العائمة الثنائية. لا تكون الكمية قابلة للتمثيل إلا إذا أنتج ضربها في `10^d` عددا صحيحا.

لأن `decimals()` اختيارية، قد يحذفها رمز ملتزم بالمعيار. وقد يعيد تنفيذ مخصص أو قابل للترقية قيمة غير متوقعة أو يغير سلوكه بعد الترقية. في وكيل ERC-1967، افحص عنوان الوكيل والتنفيذ أو beacon والمسؤول وأحداث الترقية؛ اقرأ حالة الرمز من عنوان الوكيل وثبت كل المقارنات على الكتلة نفسها.

الموافقات وقيم ERC-2612 `permit` أعداد صحيحة خام أيضا. صحة عرض التحويل لا تثبت أن الموافقة أو حد الموجه الأدنى أو مبلغ الجسر أو قاعدة المحاسبة استخدمت المقياس نفسه. قد تستخدم عقود طرفي الجسر منازل عشرية مختلفة؛ قارن القيمة المقروءة والوحدات الخام على كل طرف وفقا لقواعد التحويل والتقريب الموثقة.

اتبع هذه الخطوات:

1. ثبت معرف الشبكة أو النطاق وعقد الرمز ورقم الكتلة ونقطة RPC ووقت الرصد.
2. أكد العنوان من سجل المصدر الرسمي؛ لا تعد الاسم أو الرمز أو الأيقونة أو نتائج البحث أدلة موثوقة.
3. افحص الكود المنشور وما إذا كان العنوان وكيلا؛ سجل التنفيذ أو beacon والمسؤول والترقيات الأخيرة.
4. استدع `decimals()` وفك `uint8` عبر ABI، وسجل النجاح أو الارتداد أو الخرج الفارغ أو المشوه بدلا من وضع قيمة افتراضية.
5. اقرأ `balanceOf` و`totalSupply` والموافقة وcalldata والإيصال والأحداث الخام عند كتل متوافقة، ثم نسقها بالمقياس المرصود.
6. أعد حساب التحويل والموافقة والتسعير والجسر بأعداد صحيحة، بما يشمل الرسوم والتقريب والبقايا وإعادة الأساس أو ضريبة التحويل.
7. حاك معاملة صغيرة وأرسلها ثم طابق الأرصدة الخام قبلها وبعدها؛ توقف عند أي خلاف بين الواجهة أو RPC أو الحدث أو الرصيد.

<a id="example"></a>

## أمثلة

- **قيمة خام واحدة ومقياسان.** مع `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`. ويظل التحقق من الرسوم والحدود والبقايا والرصيد المستلم ضروريا.

<a id="risks"></a>

## المخاطر

- الاستعلام عن العنوان الصحيح على الشبكة الخطأ.
- إخفاء عقد آخر باسم أو رمز أو أيقونة منسوخة.
- تغير تنفيذ الوكيل أو beacon بعد الفحص السابق.
- تقديم RPC أو المستكشف حالة قديمة أو غير نهائية أو غير متسقة.
- استبدال البيانات الغائبة أو المشوهة بصمت بالقيمة `18`.
- تقريب تحويل الفاصلة العائمة الثنائية لمبلغ كبير أو دقيق.
- عرض المحفظة للتحويل بشكل صحيح مع خطأ في الموافقة أو permit.
- خلط قاعدة البيانات بين الوحدات الخام والمبالغ المقروءة.
- افتراض الجسر تساوي المنازل العشرية أو عدم كشف تقريب البقايا.
- إفساد رسوم التحويل أو إعادة الأساس أو السك أو الحرق أو الإيقاف أو التجميد للمطابقة البسيطة.
- اختلاف calldata والأحداث والإيصالات وتغيرات الرصيد الفعلية.
- اعتبار فحص المنازل العشرية دليلا على المصدر أو الاحتياطيات أو السيولة أو السلامة.

<a id="misconceptions"></a>

## مفاهيم خاطئة شائعة

- **لكل رموز ERC-20 عدد `18` من المنازل العشرية.** البيانات اختيارية وقد يعيد التنفيذ قيمة أخرى.
- **المنازل العشرية هي بتات دقة تستخدمها EVM.** إنها قاعدة عرض عشرية، وتظل حسابات الرمز صحيحة العدد.
- **الرصيد المنسق في المستكشف تأكيد مستقل.** قد يعتمد على استدعاء البيانات نفسه ويشارك الخطأ نفسه.
- **الرمز والمنازل العشرية المتطابقة تحدد الأصل نفسه.** يلزم أيضا الشبكة الصحيحة والعقد الدقيق ودليل المصدر.
- **نجاح تحويل صغير يتحقق من كل تكامل.** قد تقيس الموافقات والموجهات والجسور والمنصات والمحاسبة المبالغ كل على حدة.

<a id="related"></a>

## موضوعات ذات صلة

- [التحقق من عقد الرمز](/crypto/token-contract-verification/)
- [فك calldata في المحفظة](/crypto/calldata-decoding-wallet/)
- [التحقق من رمز الجسر](/crypto/bridge-token-verification/)
- [مخاطر رمز رسوم التحويل](/crypto/fee-on-transfer-token-risk/)
- [عقد الوكيل](/crypto/proxy-contract/)

<a id="sources"></a>

## المصادر

- [ERC-20: Token Standard](https://eips.ethereum.org/EIPS/eip-20) - Ethereum Improvement Proposals (تاريخ الاطلاع: 2026-08-21)
- [ERC-20](https://docs.openzeppelin.com/contracts/5.x/erc20) - OpenZeppelin Docs (تاريخ الاطلاع: 2026-08-21)
- [JSON-RPC API](https://ethereum.org/developers/docs/apis/json-rpc/) - ethereum.org (تاريخ الاطلاع: 2026-08-21)
- [ERC-1967: Proxy Storage Slots](https://eips.ethereum.org/EIPS/eip-1967) - Ethereum Improvement Proposals (تاريخ الاطلاع: 2026-08-21)
- [ERC-2612: Permit Extension for EIP-20 Signed Approvals](https://eips.ethereum.org/EIPS/eip-2612) - Ethereum Improvement Proposals (تاريخ الاطلاع: 2026-08-21)

Source: https://wiki.fcontext.com/ar/crypto/token-decimals-verification/index.mdx
