Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
---
title: استاندارد توکن ERC-777
description: یاد بگیرید ERC-777 چیست؛ یک استاندارد توکن قابل معاوضه با قابلیت قلاب‌ها که نسبت به ERC-20 بهبود یافته است، هرچند به دلایل امنیتی استفاده از ERC-20 توصیه می‌شود.
lang: fa
---

## هشدار {#warning}

**پیاده‌سازی صحیح ERC-777 به دلیل [آسیب‌پذیری در برابر انواع مختلف حملات](https://github.com/OpenZeppelin/openzeppelin-contracts/issues/2620) دشوار است. به جای آن استفاده از [ERC-20](/developers/docs/standards/tokens/erc-20/) توصیه می‌شود.** این صفحه به عنوان یک آرشیو تاریخی باقی می‌ماند.

## مقدمه {#introduction}

ERC-777 یک استاندارد توکن قابل معاوضه است که استاندارد موجود [ERC-20](/developers/docs/standards/tokens/erc-20/) را بهبود می‌بخشد.

## پیش‌نیازها {#prerequisites}

برای درک بهتر این صفحه، توصیه می‌کنیم ابتدا درباره [ERC-20](/developers/docs/standards/tokens/erc-20/) مطالعه کنید.

## ERC-777 چه بهبودهایی را نسبت به ERC-20 ارائه می‌دهد؟ {#-erc-777-vs-erc-20}

ERC-777 بهبودهای زیر را نسبت به ERC-20 ارائه می‌دهد.

### قلاب‌ها {#hooks}

قلاب‌ها توابعی هستند که در کد قرارداد هوشمند توصیف شده‌اند. هنگامی که توکن‌ها از طریق قرارداد ارسال یا دریافت می‌شوند، قلاب‌ها فراخوانی می‌شوند. این به قرارداد هوشمند اجازه می‌دهد تا به توکن‌های ورودی یا خروجی واکنش نشان دهد.

قلاب‌ها با استفاده از استاندارد [ERC-1820](https://eips.ethereum.org/EIPS/eip-1820) ثبت و کشف می‌شوند.

#### چرا قلاب‌ها عالی هستند؟ {#why-are-hooks-great}

1. قلاب‌ها امکان ارسال توکن‌ها به یک قرارداد و اطلاع‌رسانی به قرارداد را در یک تراکنش واحد فراهم می‌کنند، برخلاف [ERC-20](https://eips.ethereum.org/EIPS/eip-20) که برای این کار نیاز به فراخوانی دوگانه (`approve`/`transferFrom`) دارد.
2. قراردادهایی که قلاب ثبت نکرده‌اند با ERC-777 ناسازگار هستند. قرارداد فرستنده در صورتی که قرارداد گیرنده قلابی ثبت نکرده باشد، تراکنش را لغو می‌کند. این از انتقال‌های تصادفی به قراردادهای هوشمند غیر ERC-777 جلوگیری می‌کند.
3. قلاب‌ها می‌توانند تراکنش‌ها را رد کنند.

### اعشار {#decimals}

این استاندارد همچنین سردرگمی مربوط به `decimals` در ERC-20 را برطرف می‌کند. این شفاف‌سازی تجربه توسعه‌دهندگان را بهبود می‌بخشد.

### سازگاری با ERC-20 {#backwards-compatibility-with-erc-20}

با قراردادهای ERC-777 می‌توان همانند قراردادهای ERC-20 تعامل کرد.

## مطالعه بیشتر {#further-reading}

[EIP-777: استاندارد توکن](https://eips.ethereum.org/EIPS/eip-777)
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
---
title: ERC-777 トークン規格
description: ERC-777について学びましょう。フック機能を備えた改良型の代替可能トークン規格ですが、セキュリティの観点からはERC-20の使用が推奨されています。
lang: ja
---

## 警告 {#warning}

**ERC-777は[様々な形式の攻撃に対して脆弱](https://github.com/OpenZeppelin/openzeppelin-contracts/issues/2620)であるため、正しく実装することが困難です。代わりに[ERC-20](/developers/docs/standards/tokens/erc-20/)の使用を推奨します。** このページは歴史的なアーカイブとして残されています。

## はじめに {#introduction}

ERC-777は、既存の[ERC-20](/developers/docs/standards/tokens/erc-20/)規格を改善した代替可能トークン規格です。

## 前提条件 {#prerequisites}

このページをより良く理解するために、まず[ERC-20](/developers/docs/standards/tokens/erc-20/)について読むことをお勧めします。

## ERC-777はERC-20に対してどのような改善を提案していますか? {#-erc-777-vs-erc-20}

ERC-777はERC-20に対して以下の改善を提供します。

### フック {#hooks}

フックは、スマートコントラクトのコードで記述された関数です。フックは、コントラクトを通じてトークンが送信または受信されるときに呼び出されます。これにより、スマートコントラクトは入出金されるトークンに反応することができます。

フックは[ERC-1820](https://eips.ethereum.org/EIPS/eip-1820)規格を使用して登録および検出されます。

#### フックが優れている理由 {#why-are-hooks-great}

1. フックを使用すると、トークンをコントラクトに送信し、1回のトランザクションでコントラクトに通知することができます。一方、[ERC-20](https://eips.ethereum.org/EIPS/eip-20)では、これを実現するために二重呼び出し(`approve`/`transferFrom`)が必要です。
2. フックを登録していないコントラクトは、ERC-777と互換性がありません。受信コントラクトがフックを登録していない場合、送信コントラクトはトランザクションを中止します。これにより、非ERC-777スマートコントラクトへの誤送信を防ぐことができます。
3. フックはトランザクションを拒否することができます。

### 小数点 {#decimals}

この規格は、ERC-20で生じた`decimals`に関する混乱も解決します。この明確化により、開発者の体験が向上します。

### ERC-20との後方互換性 {#backwards-compatibility-with-erc-20}

ERC-777コントラクトは、ERC-20コントラクトであるかのように操作することができます。

## 参考文献 {#further-reading}

[EIP-777:トークン規格](https://eips.ethereum.org/EIPS/eip-777)