> For the complete documentation index, see [llms.txt](https://docs.rome.builders/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rome.builders/ar/canton-zk-evm/deposits-withdrawals-payments.md).

# الإيداعات، والسحوبات، والمدفوعات

كيف يربط البوابة ودائع EVM وعمليات السحب والمدفوعات بأجزائها في Canton.

البوابة عبارة عن عقد EVM مضمَّن في جينيسيس السلسلة. وهي تسجّل ما يحتاج Canton إلى فعله بالنسبة إلى كتلةٍ ما. كل طلب هو ساق. يلتزم برهان الكتلة بحالة البوابة، بما في ذلك تجزئة السيقان بالترتيب الذي سُجِّلت به.

تصف هذه الصفحة الالتزام `a84e84e439a5cc669c0ae61facf7c8c995d9d564`. اقرأ ملف [README الخاص بالبوابة](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/gateway/README.md) و [واجهة Daml](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/daml/README.md).

| ساق   | استدعاء البوابة                  | إجراء EVM                               | إجراء Canton في `تقدُّم`                            |
| ----- | -------------------------------- | --------------------------------------- | --------------------------------------------------- |
| إيداع | `claim(id, token, amount)`       | سكّ رموز مُغلَّفة إلى المستدعي.         | تنفيذ تخصيص المُودِع إلى البوابة.                   |
| سحب   | `withdraw(token, amount, party)` | حرق الرموز المُغلَّفة الخاصة بالمستدعي. | دفع رمز Canton من وصاية البوابة إلى الطرف المُسمّى. |
| دفع   | `pay(id, token, to, amount)`     | نقل ERC-20 من الدافع إلى المستفيد.      | تنفيذ التخصيص المسمّى بشروط الدفع المتفق عليها.     |

## إيداع رمز Canton

يقوم المُودِع بتخصيص رمز Canton إلى البوابة، مع المزوِّد كمُنفِّذ. ويوقّع المُودِع على `DepositRequest` مسمّياً معرّف الإيداع، وعنوان EVM المسموح له بالمطالبة والتخصيص.

يقوم عنوان EVM ذلك باستدعاء `claim`. تقوم البوابة بسكّ الرموز إلى المستدعي الخاص بها وتسجّل ساق الإيداع. يحتاج المستلم إلى tROME للغاز. يطابق المنشئ الساق مع الطلب، والرمز المسجَّل والتخصيص.

`تقدُّم` ينفّذ التخصيص إلى وصاية البوابة ويلتزم بالكتلة التي سكّت الرموز المُغلَّفة. للرمز المُغلَّف 10 منازل عشرية، بما يطابق مبالغ Canton. التحويل بين المبلغين دقيق، من دون أي تقريب.

## السحب إلى طرف في Canton

يقوم الحائز باستدعاء `withdraw` باستخدام الرمز المُغلَّف، والمبلغ ومعرّف طرف Canton الكامل. تحرق البوابة الرموز المُغلَّفة وتسجّل المستلِم في الساق.

يجب أن يكون المستلِم قد وقّع على `WithdrawalAcceptance`. ويظل نشطًا حتى يُؤرشف. كما يحتاج المنشئ إلى ما يكفي من حيازات البوابة غير المقيّدة للأداة المسجَّلة. ويستبعد المعاملة إذا لم تتحقق هذه الشروط.

`تقدُّم` يدفع للمستلم عبر مصنع التحويل في سجل الرموز. يلتزم تحويل Canton والكتلة التي تحتوي على الحرق معًا. يضمّن المنشئ سحبًا واحدًا كحد أقصى لأداةٍ ما في كل كتلة، كما هو موضح في [README الخاص بالمنشئ](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/builder/README.md).

## اربط دفعةً بتخصيص واحد

تخصّص U رمز Canton إلى V. ويوقّع U وV على `DvpTerms` مسمّياً التخصيص، ومعرّف الدفع، ورمز EVM، ومستلم EVM والمبلغ. معرّف الدفع هو SHA-256 للنص UTF-8 `<معرّف طرف U>,<معرّف طرف V>,<الوسم>`، مكتوبًا بالست عشرية الصغيرة. ترفض الشروط أي معرّف آخر.

يوافق V على البوابة ويستدعي `pay` بهذا المعرف. تنقل البوابة ERC-20 من V إلى المستفيد وتسجّل ساق الدفع. `تقدُّم` تستخدم الشروط الموقَّعة لتنفيذ التخصيص من U إلى V.

لا يسجّل أي تحويل ERC-20 ساقًا. حتى التحويل لنفس الرمز إلى المستفيد نفسه في الكتلة نفسها لا يمكن أن يكون بديلًا عن `pay`. [مسار الدفع في التصميم](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/docs/DESIGN.md#the-flows) يوضح هذا الارتباط.

## ما الذي تثبته البصمة

تسجّل كل ساق نوعها ومعرّفها ورمزها وحسابها ومبلغها وطرف Canton حيث ينطبق ذلك. وتجزّئ البوابة السيقان بالترتيب. `تقدُّم` يتحقق من أن السيقان المرفقة به تُنتج التجزئة في حالة البوابة المثبتة. إن نقص ساق أو زيادته أو إعادة ترتيبه أو تغييره يجعل المعاملة تفشل. كما يغطي الفحص الكتل التي لا تحتوي على سيقان.

إن إثبات الكتلة لا يحجز تخصيص Canton الخاص بها. وما يزال بإمكان المرسل استرجاع التخصيص قبل التسوية. وإذا حدث ذلك بعد الإثبات، يرفض Canton `تقدُّم` ويعود reth إلى آخر كتلة ملتزم بها. لا يمكن إعادة إرسال الكتلة المثبتة نفسها بعد إزالة ساقها. ويستبعد البناء التالي الدفع، كما هو موضح في [التشغيل 4](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/demo/README.md#results).

## حدود الرموز والحيازة

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

لا يمكن استرداد الرموز المرسلة مباشرةً إلى عنوان EVM الخاص بالبوابة. وإذا كان الرمز يفرض رسوم تحويل أو ينقل مقدارًا مختلفًا لأي سبب آخر، فإن ساق الدفع تسجّل المبلغ المطلوب رغم ذلك، لا المبلغ المنقول فعليًا. اقرأ [نموذج الثقة والحدود](/ar/canton-zk-evm/trust-model.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.rome.builders/ar/canton-zk-evm/deposits-withdrawals-payments.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
