﻿---
title: "الموعد النهائي والانزلاق وcalldata للمبادلة: ما يجب التحقق منه قبل التوقيع"
description: "تعرّف على كيفية فك ترميز استدعاء مبادلة في DEX والتحقق من الموجّه والدالة وحدود المبلغ والمسار والمستلم والموعد النهائي قبل التوقيع."
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.

# الموعد النهائي والانزلاق وcalldata للمبادلة: ما يجب التحقق منه قبل التوقيع

> لأغراض تعليمية فقط؛ لا يشكل ذلك نصيحة استثمارية أو توصية استثمارية. قد تؤدي الاستثمارات إلى خسائر.

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

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

قبل توقيع مبادلة في منصة DEX، تحقّق من الشبكة والعقد المستهدف والدالة بعد فك ترميزها وعناوين الرموز وحد الإدخال أو الإخراج والمسار والمستلم وأي موعد نهائي. النسبة التي تعرضها الواجهة باسم «الانزلاق» ليست بحد ذاتها تعليمة على السلسلة. تُستخدم عادةً لحساب حد مثل `amountOutMin` أو `amountOutMinimum` في مبادلة exact-input، أو `amountInMax` أو `amountInMaximum` في مبادلة exact-output.

الموعد النهائي قيد زمني وليس ضماناً للسعر. إذا كان الموجّه يتحقق منه ونُفذت المعاملة بعده، فينبغي أن يرتد الاستدعاء. لكن يمكن تنفيذها قبله بأي سعر يسمح به حد المبلغ. الموعد البعيد يبقي التفويض صالحاً مدة أطول؛ أما الموعد القصير جداً فيزيد احتمال انتهاء الصلاحية قبل إدراج المعاملة.

لا تصف calldata نفسها. فك ترميزها باستخدام ABI الموثّقة للعقد المحدد على الشبكة المختارة، بما في ذلك أي multicall أو أوامر Universal Router متداخلة. إذا لم تعرض المحفظة حقولاً مفكوكة الترميز بصورة موثوقة، فلا تستنتج معناها من مواقع البايتات أو قاعدة بيانات أسماء الدوال وحدها.

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

## آلية العمل

### فك ترميز الاستدعاء الفعلي

وفق ABI الخاصة بلغة Solidity، تمثل أول `4 bytes` من calldata محدد الدالة، وتبدأ الوسائط المرمّزة من البايت الخامس. قد تتصادم المحددات أو تُسمى خطأً، لذلك طابقها مع ABI للعقد المستهدف الموثّق. قد يغلّف وكيل أو مجمّع أو موجّه المبادلة داخل `multicall` أو `execute` أو دالة أخرى؛ فك ترميز كل حمولة متداخلة تستطيع نقل الرموز أو تغيير المستلم النهائي.

في مبادلة exact-input يكون الإدخال ثابتاً ويحدد حقل الحماية الحد الأدنى المقبول للإخراج. وفي مبادلة exact-output يكون الإخراج المطلوب ثابتاً ويضع حقل الحماية سقفاً للإدخال. قد يزيل الحد الصفري أو المتساهل على نحو غير متوقع حماية السعر الفعلية. منازل الرمز العشرية مهمة: اربط كل عنوان رمز بعدد المنازل والرمز المختصر الصحيحين قبل مقارنة الأعداد الصحيحة الخام.

### التحقق من المسار والمستلم وvalue

تأكد من أن المسار يبدأ بالرمز المدفوع وينتهي بالرمز المتوقع استلامه. افحص الرموز الوسيطة ورسوم المجمعات وأي أوامر للتغليف أو فك التغليف أو جمع الأرصدة أو نقلها. ينبغي أن يكون المستلم المحفظة المقصودة أو عقداً مفهوم السلوك. تحقّق أيضاً من `value` الأصلية للمعاملة؛ فقد تكون منفصلة عن مبالغ ERC-20 المرمّزة في calldata.

### تحديد موقع الموعد النهائي

يختلف موضع الموعد النهائي حسب إصدار الموجّه. تتضمن دوال الموجّهات بأسلوب Uniswap V2 وسيط `deadline`، وكذلك هياكل Uniswap V3 الأصلية في `ISwapRouter`. يوفّر Universal Router كلاً من `execute(commands, inputs, deadline)` وتحميلاً زائداً بلا موعد نهائي. لذلك لا تفترض أن لكل مبادلة موعداً نهائياً أو أنه يوجد دائماً داخل معاملات المبادلة المتداخلة نفسها.

يُقارن الموعد عادةً بالطابع الزمني للكتلة المستخدم وقت التنفيذ. وهو لا يلغي معاملة معلقة، ولا يضمن إدراجاً سريعاً، ولا يحمي من سعر سيئ ما دام داخل حد المبلغ. للإلغاء، يجب أن يستخدم المرسل آلية استبدال المعاملة في الشبكة والمحفظة؛ ولا يكون الاستبدال مضموناً بعد إدراج المعاملة الأصلية.

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

## مثال عملي

يتوقع عرض سعر استلام `10,000 USDC` من مبادلة exact-input، ويختار المستخدم انزلاقاً قدره `1%`. مع تجاهل الرسوم الداخلة مسبقاً في العرض، يكون الحد الأدنى المتوقع `9,900 USDC`. وبما أن USDC يستخدم `6 decimals`، فإن العدد الصحيح الخام لهذا الحد هو `9900000000`.

لكن الاستدعاء المفكوك يحتوي على `amountOutMinimum = 9000000000`، أي `9,000 USDC`. يسمح ذلك بنتيجة تقل حتى `10%` عن العرض، لا `1%`. والمستلم أيضاً عنوان غير مألوف، والموعد النهائي بعد ساعات عديدة. تكفي أي مخالفة من هذه لرفض الطلب وإعادة بنائه عبر واجهة موثوقة. بعد ذلك حاكِ المعاملة غير الموقعة نفسها على حالة حديثة، وأعد فحص الحمولة المفكوكة قبل التوقيع.

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

## قائمة التحقق والمخاطر

- طابق الشبكة المختارة وعنوان الموجّه أو الوكيل مع سجلات النشر الرسمية للبروتوكول.
- فك الترميز باستخدام ABI للعقد الموثّق؛ وافتح الاستدعاءات المتداخلة وأوامر الموجّه بدلاً من مراجعة الدالة الخارجية فقط.
- طابق عناوين الرموز والاتجاه والمنازل العشرية والمبلغ الثابت وحد الحماية والمسار وشرائح الرسوم والمستلم و`value` الأصلية.
- حوّل الموعد النهائي إلى وقت مطلق وقرر إن كانت النافذة المتبقية مقصودة. اعتبر غياب الموعد خياراً تصميمياً يحتاج مراجعة منفصلة.
- حاكِ المعاملة نفسها من عنوان الموقّع مقابل حالة حديثة. نجاح المحاكاة دليل لتلك الحالة فقط، وليس ضماناً للإدراج أو التنفيذ النهائي.
- راجع الموافقات أو صلاحيات Permit2 بصورة منفصلة. حدود المبادلة الجيدة لا تجعل تفويضاً غير محدود أو خبيثاً للرموز آمناً.
- قد ترتد الحدود الضيقة مع تحركات السعر العادية؛ وتزيد الحدود المتساهلة مخاطر سعر التنفيذ وهجوم الساندويتش. وقد تستهلك معاملة على السلسلة gas حتى إذا ارتدت.

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

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

### خرافة: يتم توقيع نسبة الانزلاق المعروضة

تحتوي الحمولة الموقعة عادةً على حدود مبلغ مشتقة من ذلك الإعداد. تحقّق من الأعداد الصحيحة الفعلية ومنازل الرمز العشرية؛ فالوسم الصحيح ظاهرياً لا يثبت أن calldata تستخدم درجة التسامح نفسها.

### خرافة: كل مبادلة تستخدم `amountOutMin` و`deadline`

تختلف الأسماء والمواضع باختلاف الموجّه والدالة. تحمي مبادلات exact-output جانب الإدخال، وبعض نقاط الدخول تحذف الموعد النهائي أو تضعه في الاستدعاء الخارجي.

### خرافة: الموعد النهائي يمنع السعر السيئ

هو يحد وقت التنفيذ فقط إذا فرضه الكود المستدعى. تأتي حماية السعر من حد المبلغ، ومع ذلك يظل كل تنفيذ داخل ذلك الحد مسموحاً.

### خرافة: يكفي فك ترميز الدالة الخارجية

قد تحتوي المجمّعات والموجّهات العامة على عدة استدعاءات وأذونات للرموز وتحويلات وأوامر تنظيف. وقد يوجد المستلم أو المبلغ المهم أمنياً داخل حمولة متداخلة.

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

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

- [فك ترميز calldata في المحفظة](/ar/crypto/calldata-decoding-wallet/)
- [قائمة تحقق انزلاق ومسار DEX](/ar/crypto/dex-slippage-route-checklist/)
- [هجوم الساندويتش](/ar/crypto/sandwich-attack/)
- [انزلاق تداول العملات المشفرة](/ar/crypto/slippage-crypto/)
- [محاكاة المعاملة](/ar/crypto/transaction-simulation/)

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

## المصادر

- [Contract ABI Specification](https://docs.soliditylang.org/en/latest/abi-spec.html) - Solidity Documentation (تاريخ الوصول: 2026-08-21)
- [IUniswapV2Router01.sol](https://github.com/Uniswap/v2-periphery/blob/master/contracts/interfaces/IUniswapV2Router01.sol) - Uniswap (تاريخ الوصول: 2026-08-21)
- [ISwapRouter.sol](https://github.com/Uniswap/v3-periphery/blob/main/contracts/interfaces/ISwapRouter.sol) - Uniswap (تاريخ الوصول: 2026-08-21)
- [Universal Router Commands](https://developers.uniswap.org/docs/protocols/universal-router/concepts/commands) - Uniswap (تاريخ الوصول: 2026-08-21)

Source: https://wiki.fcontext.com/ar/crypto/swap-deadline-slippage-calldata/index.mdx
