Skip to content

Commit 3824d82

Browse files
committed
fix: correct marketplace practice to jun1
1 parent f0ff7d4 commit 3824d82

File tree

2 files changed

+23
-22
lines changed

2 files changed

+23
-22
lines changed

solidity/junior-1/practice/2-erc-20.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,35 @@
1-
# Hardhat ERC20
1+
# ERC-20
22

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)
44

55
Критерии прохождения задания:
6-
- Изучить стандарт ERC20, разобрать все основные методы.
7-
- Написать простой ERC20 токен без использования OpenZeppelin.
6+
- Изучить стандарт ERC-20, разобрать все основные методы.
7+
- Написать простой ERC-20 токен без использования OpenZeppelin.
88
- Деплой токена в тестовую сеть, добавление этого токена в метамаск, взаимодействие с контрактом токена через интерфейс etherscan.
9-
- Понять как работают `transfer`, `transferFrom` и `approve`. Отличие перевода ERC20-токена от нативного токена сети (например, ETH).
9+
- Понять как работают `transfer`, `transferFrom` и `approve`. Отличие перевода ERC-20-токена от нативного токена сети (например, ETH).
1010
- Пройтись по литературе на которую приведены ссылки.
1111

12-
> Дополнительно: Необязательно делать если пока нет четкого понимания работы ERC20, но потом нужно вернуться.Попробовать расширить функциональность токена:
12+
> Дополнительно: Необязательно делать если пока нет четкого понимания работы ERC-20, но потом нужно вернуться.Попробовать расширить функциональность токена:
1313
> - Попробовать добавить Permit, сформировать и передать подпись в контракт.
1414
> - Попробовать добавить transferAndCall.
1515
1616
## Какие навыки даст задание?
1717

18-
1. Понимание общего принципа ERC20 токена - несмотря на недостатки (которые частично закрываются расширениями) такой токен используется почти в каждом DeFi протоколе, поэтому важно знать как работают основные функции и для чего они нужны. Задание даст понимание базы, но в таком "чистом" виде ERC20 в природе почти не встречается, его всегда расширяют дополнительным функционалом, поэтому неплохо ознакомиться с подобными расширениями.
18+
1. Понимание общего принципа ERC-20 токена - несмотря на недостатки (которые частично закрываются расширениями) такой токен используется почти в каждом DeFi протоколе, поэтому важно знать как работают основные функции и для чего они нужны. Задание даст понимание базы, но в таком "чистом" виде ERC-20 в природе почти не встречается, его всегда расширяют дополнительным функционалом, поэтому неплохо ознакомиться с подобными расширениями.
1919
2. Понимание что такое EIP, ERC и как с ними работать.
2020

2121
## Вопросы по теории:
2222

2323
1. Что такое EIP? Что такое ERC? В чем отличие?
2424
2. Какие три основных вида EIP существуют и что они в себя включают? Почему разработка и поддержка EIP сообществом ethereum это важно?
25-
3. Каким по назначению может быть ERC20 токен? Что такое utility и security токены?
26-
4. Какие методы должны быть в токене ERC20? Что они делают? Какие обязательные, а какие нет?
25+
3. Каким по назначению может быть ERC-20 токен? Что такое utility и security токены?
26+
4. Какие методы должны быть в токене ERC-20? Что они делают? Какие обязательные, а какие нет?
2727
5. Какие функции в смарт-контракте токена нужны для управления эмиссией?
2828
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, Какой функционал добавляют следующие расширения:
3333
- Burnable.
3434
- Capped.
3535
- Pausable
@@ -38,10 +38,10 @@
3838

3939
## Дополнительно
4040

41-
1. Расширения, которые помогают устранить недостатки ERC20:
41+
1. Расширения, которые помогают устранить недостатки ERC-20:
4242
- Permit (ERC2612). Какие варианты использования?
4343
- TransferAndCall (ERC-223, ERC-677, ERC-1363) В чем преимущества и недостатки трех подходов?
44-
- В чем отличие ERC777 от ERC20? Какие преимущества дает ERC777? Почему сообщество отказалось от идеи использовать ERC777?
44+
- В чем отличие ERC777 от ERC-20? Какие преимущества дает ERC777? Почему сообщество отказалось от идеи использовать ERC777?
4545
- Tokenized Vault Standard (ERC4626). Для чего нужен?
4646
2. Утилиты
4747
- SafeTransfer - как использовать библиотеку и зачем? Какие есть аналоги?
@@ -50,10 +50,10 @@
5050

5151
- [Understand the ERC-20 token smart contract](https://ethereum.org/en/developers/tutorials/understand-the-erc-20-token-smart-contract/)
5252
- [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)
5757
- [Introduction To ERC Token Standards](https://medium.com/immunefi/how-erc-standards-work-part-1-c9795803f459)
5858
- [EIPs](https://eips.ethereum.org/)
5959
- [Tokenized Vault Standard](https://ethereum.org/en/developers/docs/standards/tokens/erc-4626/)

solidity/junior-1/practice/4-marketplace.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
## ТЗ
77

8-
Маркетплейс выступает площадкой где торгуются NFT-коллекции или отдельные токены ERC721(NFT). Маркетплейс имеет простой функционал - токены ERC721(NFT) выставляются на продажу и покупаются за токены ERC20.
8+
Маркетплейс выступает площадкой где торгуются NFT-коллекции или отдельные токены ERC-721(NFT). Маркетплейс имеет простой функционал - токены ERC-721(NFT) выставляются на продажу и покупаются за токены ERC-20.
99

1010
## Как это выглядит со стороны продавца NFT
1111

@@ -56,7 +56,8 @@
5656

5757
- **В смарт-контракте должны быть модификаторы**: `notListed`, `isListed`, `notOffered`, `isOffered`
5858
- **В смарт-контракте должны быть события**: `ItemListed`, `ItemUpdated`, `ItemSold`, `OfferCreated`, `OfferCanceled`, `UpdatePlatformFee`, `UpdatePlatformFeeRecipient`
59-
- **В смарт контракте должны быть все необходимые проверки** - например токен оплаты ERC20 должен проверяться на нулевой адрес, а ERC721 должен поддерживать интерфейс ERC721, в функции должны передаваться корректные аргументы и т.д.
59+
- **В смарт контракте должны быть все необходимые проверки**. Например токен оплаты ERC-20 должен проверяться на нулевой адрес, а ERC-721 должен поддерживать интерфейс ERC-721, в функции должны передаваться корректные аргументы и т.д.
6060
- **Функции площадки должны быть с ограниченным доступом** (использовать Ownable)
61-
- **Использовать ReentrancyGuard от OpenZeppelin** - для защиты функций смарт-контракта от повторных вызовов.
61+
- **Использовать ReentrancyGuard от OpenZeppelin** для защиты функций смарт-контракта от повторных вызовов.
62+
- **Необходимо использовать свои токены**. Токен ERC-20 из второго задания для покупки и продажи нфт(оплата должна проводиться в этом токене). Токен ERC-721 для реализации нфт.
6263
- **Покрытие unit тестами 100%**. Для проверки покрытия тестами кода можно использовать плагин [solidity-coverage](https://www.npmjs.com/package/solidity-coverage)

0 commit comments

Comments
 (0)