|
1 | | -# Hardhat ERC20 |
| 1 | +# ERC-20 |
2 | 2 |
|
3 | | -- Пройти [Lesson 12: Hardhat ERC20s](https://github.com/smartcontractkit/full-blockchain-solidity-course-js#lesson-12-hardhat-erc20s) |
| 3 | +- Пройти [Lesson 12: Hardhat ERC-20](https://github.com/smartcontractkit/full-blockchain-solidity-course-js#lesson-12-hardhat-erc20s) |
4 | 4 |
|
5 | 5 | Критерии прохождения задания: |
6 | | -- Изучить стандарт ERC20, разобрать все основные методы. |
7 | | -- Написать простой ERC20 токен без использования OpenZeppelin. |
| 6 | +- Изучить стандарт ERC-20, разобрать все основные методы. |
| 7 | +- Написать простой ERC-20 токен без использования OpenZeppelin. |
8 | 8 | - Деплой токена в тестовую сеть, добавление этого токена в метамаск, взаимодействие с контрактом токена через интерфейс etherscan. |
9 | | -- Понять как работают `transfer`, `transferFrom` и `approve`. Отличие перевода ERC20-токена от нативного токена сети (например, ETH). |
| 9 | +- Понять как работают `transfer`, `transferFrom` и `approve`. Отличие перевода ERC-20-токена от нативного токена сети (например, ETH). |
10 | 10 | - Пройтись по литературе на которую приведены ссылки. |
11 | 11 |
|
12 | | -> Дополнительно: Необязательно делать если пока нет четкого понимания работы ERC20, но потом нужно вернуться.Попробовать расширить функциональность токена: |
| 12 | +> Дополнительно: Необязательно делать если пока нет четкого понимания работы ERC-20, но потом нужно вернуться.Попробовать расширить функциональность токена: |
13 | 13 | > - Попробовать добавить Permit, сформировать и передать подпись в контракт. |
14 | 14 | > - Попробовать добавить transferAndCall. |
15 | 15 |
|
16 | 16 | ## Какие навыки даст задание? |
17 | 17 |
|
18 | | -1. Понимание общего принципа ERC20 токена - несмотря на недостатки (которые частично закрываются расширениями) такой токен используется почти в каждом DeFi протоколе, поэтому важно знать как работают основные функции и для чего они нужны. Задание даст понимание базы, но в таком "чистом" виде ERC20 в природе почти не встречается, его всегда расширяют дополнительным функционалом, поэтому неплохо ознакомиться с подобными расширениями. |
| 18 | +1. Понимание общего принципа ERC-20 токена - несмотря на недостатки (которые частично закрываются расширениями) такой токен используется почти в каждом DeFi протоколе, поэтому важно знать как работают основные функции и для чего они нужны. Задание даст понимание базы, но в таком "чистом" виде ERC-20 в природе почти не встречается, его всегда расширяют дополнительным функционалом, поэтому неплохо ознакомиться с подобными расширениями. |
19 | 19 | 2. Понимание что такое EIP, ERC и как с ними работать. |
20 | 20 |
|
21 | 21 | ## Вопросы по теории: |
22 | 22 |
|
23 | 23 | 1. Что такое EIP? Что такое ERC? В чем отличие? |
24 | 24 | 2. Какие три основных вида EIP существуют и что они в себя включают? Почему разработка и поддержка EIP сообществом ethereum это важно? |
25 | | -3. Каким по назначению может быть ERC20 токен? Что такое utility и security токены? |
26 | | -4. Какие методы должны быть в токене ERC20? Что они делают? Какие обязательные, а какие нет? |
| 25 | +3. Каким по назначению может быть ERC-20 токен? Что такое utility и security токены? |
| 26 | +4. Какие методы должны быть в токене ERC-20? Что они делают? Какие обязательные, а какие нет? |
27 | 27 | 5. Какие функции в смарт-контракте токена нужны для управления эмиссией? |
28 | 28 | 6. Какая уязвимость связана с апрувом и какие способы защиты от подобных атак? Какие методы позволяют защитится от нее? |
29 | | -7. Зачем нужны хуки `_beforeTokenTransfer` и `_afterTokenTransfer`? Как их использовать, какие есть правила при использовании хуков? В каких методах ERC20 они могут быть? |
30 | | -8. Какие недостатки есть у ERC20? |
31 | | -9. Какие расширения ERC20 есть у OpenZeppelin? |
32 | | -10. Расширения ERC20, Какой функционал добавляют следующие расширения: |
| 29 | +7. Зачем нужны хуки `_beforeTokenTransfer` и `_afterTokenTransfer`? Как их использовать, какие есть правила при использовании хуков? В каких методах ERC-20 они могут быть? |
| 30 | +8. Какие недостатки есть у ERC-20? |
| 31 | +9. Какие расширения ERC-20 есть у OpenZeppelin? |
| 32 | +10. Расширения ERC-20, Какой функционал добавляют следующие расширения: |
33 | 33 | - Burnable. |
34 | 34 | - Capped. |
35 | 35 | - Pausable |
|
38 | 38 |
|
39 | 39 | ## Дополнительно |
40 | 40 |
|
41 | | -1. Расширения, которые помогают устранить недостатки ERC20: |
| 41 | +1. Расширения, которые помогают устранить недостатки ERC-20: |
42 | 42 | - Permit (ERC2612). Какие варианты использования? |
43 | 43 | - TransferAndCall (ERC-223, ERC-677, ERC-1363) В чем преимущества и недостатки трех подходов? |
44 | | - - В чем отличие ERC777 от ERC20? Какие преимущества дает ERC777? Почему сообщество отказалось от идеи использовать ERC777? |
| 44 | + - В чем отличие ERC777 от ERC-20? Какие преимущества дает ERC777? Почему сообщество отказалось от идеи использовать ERC777? |
45 | 45 | - Tokenized Vault Standard (ERC4626). Для чего нужен? |
46 | 46 | 2. Утилиты |
47 | 47 | - SafeTransfer - как использовать библиотеку и зачем? Какие есть аналоги? |
|
50 | 50 |
|
51 | 51 | - [Understand the ERC-20 token smart contract](https://ethereum.org/en/developers/tutorials/understand-the-erc-20-token-smart-contract/) |
52 | 52 | - [Utility token](https://www.ledger.com/ru/academy/glossary/utility-token) |
53 | | -- [Набор контрактов и утилит ERC20 от OpenZeppelin](https://docs.openzeppelin.com/contracts/4.x/api/token/erc20#IERC20) |
54 | | -- [ERC20 Github OpenZeppelin](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) |
55 | | -- [Использование хуков ERC20](https://docs.openzeppelin.com/contracts/4.x/extending-contracts#using-hooks) |
56 | | -- [YouTube: ERC20 Token Tutorial](https://www.youtube.com/watch?v=gc7e90MHvl8) |
| 53 | +- [Набор контрактов и утилит ERC-20 от OpenZeppelin](https://docs.openzeppelin.com/contracts/4.x/api/token/erc20#IERC20) |
| 54 | +- [ERC-20 Github OpenZeppelin](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) |
| 55 | +- [Использование хуков ERC-20](https://docs.openzeppelin.com/contracts/4.x/extending-contracts#using-hooks) |
| 56 | +- [YouTube: ERC-20 Token Tutorial](https://www.youtube.com/watch?v=gc7e90MHvl8) |
57 | 57 | - [Introduction To ERC Token Standards](https://medium.com/immunefi/how-erc-standards-work-part-1-c9795803f459) |
58 | 58 | - [EIPs](https://eips.ethereum.org/) |
59 | 59 | - [Tokenized Vault Standard](https://ethereum.org/en/developers/docs/standards/tokens/erc-4626/) |
|
0 commit comments