Skip to content

Commit 493f1d3

Browse files
committed
fix: grammar
1 parent 0e22d68 commit 493f1d3

File tree

13 files changed

+94
-99
lines changed

13 files changed

+94
-99
lines changed

solidity/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# Список уровней:
22
1. **Junior:**
3-
- [junior-1](./junior-1/README.md)
4-
- [junior-2](./junior-2/README.md)
5-
- [junior-3](./junior-3/README.md)
3+
- [junior-1](./junior-1/README.md)
4+
- [junior-2](./junior-2/README.md)
5+
- [junior-3](./junior-3/README.md)
66

77
2. **Middle**
88
- [middle-1](./middle-1/README.md)

solidity/junior-1/code-style/linting-and-formating.md renamed to solidity/junior-1/code-style/linting-and-formatting.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
**Линтеры** автоматически анализируют код на наличие возможных программных ошибок и ошибок стиля.
66

7-
**Форматтеры** автоматически форматируют код в соответствии с предопределенными правилами и значениями отступов по умолчанию.
7+
**Форматеры** автоматически форматируют код в соответствии с предопределенными правилами и значениями отступов по умолчанию.
88

99
Язык Solidity не является исключением. Мы предлагаем обратить внимание на следующие инструменты, которые позволят автоматизировать рабочий процесс написания кода в команде.
1010

@@ -51,7 +51,7 @@ _Важно!_ Нужно быть внимательным. Расширения
5151

5252
Если несколько подходов в организации тестов для смарт контрактов. Например, для Foundry тесты пишутся на языке Solidity и это значит, что нам достаточно стандартного линтинга и форматирования только для языка Solidity.
5353

54-
В других средаx разработки ситуация может быть немного иной. Например в Hardhat используются: библиотека [ethers.js](https://docs.ethers.org/v5/) и тестовый фремворк [mocha](https://mochajs.org/). Это подразумевает написание тестов на языке [javascript](https://learn.javascript.ru/) или [typescript](https://www.typescriptlang.org/).
54+
В других средах разработки ситуация может быть немного иной. Например в Hardhat используются: библиотека [ethers.js](https://docs.ethers.org/v5/) и тестовый фреимворк [mocha](https://mochajs.org/). Это подразумевает написание тестов на языке [javascript](https://learn.javascript.ru/) или [typescript](https://www.typescriptlang.org/).
5555

5656
- [ESLint](https://eslint.org/). Понадобится для линтинга js или ts.
5757

solidity/junior-1/code-style/readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
- [Style guides](./style-guides.md)
1414
- [Комментирование кода](./code-comments.md)
15-
- [Linting и Formating](./linting-and-formating.md)
15+
- [Linting и Formatting](./linting-and-formatting.md)
1616

1717
## Example
1818

solidity/junior-1/practice/1-fund-me.md

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,16 @@
66

77
## Какие навыки даст задание?
88

9-
Важно! Круто если получится воспроизвести фунционал контракта без подсматриваний в урок.
10-
Либо итеративно: например, есть понимание как добавить функционал с получением цены -> также стало понятно как это проверить на контракте -> идешь и делаешь пока не получиться (при этом пользуясь докой solidity, chainlink и шпаргалками solidity-by-example если нужно). Это позволит хорошо закрепить материал.
9+
> Важно! Круто если получится воспроизвести функционал контракта без подсматриваний в урок. Либо итеративно: например, есть понимание как добавить функционал с получением цены -> также стало понятно как это проверить на контракте -> идешь и делаешь пока не получиться (при этом пользуясь докой solidity, chainlink и шпаргалками solidity-by-example если нужно). Это позволит хорошо закрепить материал.
1110
1211
1. Понимание как работать с эфиром на контрактах:
13-
- работа и с глобальной переменной `msg.value`
14-
- отправка эфира через `transfer`, `send` и `call`
15-
- работа с функциями `receive` и `fallback`
12+
- работа и с глобальной переменной `msg.value`
13+
- отправка эфира через `transfer`, `send` и `call`
14+
- работа с функциями `receive` и `fallback`
1615
2. Понимание как получить цену из оракла для нужной пары токенов;
1716
3. Как использовать библиотеки, как сделать свою библиотеку и использовать для определенного типа;
1817
4. Итерация по массиву, сброс массива;
19-
5. Написание и использование кастомного модификатора;
18+
5. Написание и использование собственного модификатора;
2019
6. Написание кастомных ошибок вместо `require`;
2120
7. Небольшие оптимизации по газу.
2221

@@ -31,21 +30,21 @@
3130
7. Как работать с числами с плавающей точкой в solidity? Что такое `decimals`? Для чего нужен `decimals` при расчете цен токенов?
3231
8. Зачем в функции `getPrice` при получении значения `answer` запятые перед и после значения? Как ты объяснишь запись `uint256(answer * 10000000000)`?
3332
```js
34-
function getPrice() internal view returns (uint256) {
35-
AggregatorV3Interface priceFeed = AggregatorV3Interface(
36-
0xD4a33860578De61DBAbDc8BFdb98FD742fA7028e
37-
);
38-
(, int256 answer, , , ) = priceFeed.latestRoundData();
39-
40-
return uint256(answer * 10000000000);
41-
}
33+
function getPrice() internal view returns (uint256) {
34+
AggregatorV3Interface priceFeed = AggregatorV3Interface(
35+
0xD4a33860578De61DBAbDc8BFdb98FD742fA7028e
36+
);
37+
(, int256 answer, , , ) = priceFeed.latestRoundData();
38+
39+
return uint256(answer * 10000000000);
40+
}
4241
```
4342
9. Как сбросить все значения массива?
4443
10. Рассказать про три способа отправки эфира. Какой способ предпочтительный и почему? Как и зачем предавать данные в `call`?
4544
11. Посмотри код ниже, объясни что тут происходит. Что означает запись `address(this).balance`?
4645
```js
47-
(bool callSuccess, ) = payable(msg.sender).call{value: address(this).balance}("");
48-
require(callSuccess, "Call failed");
46+
(bool callSuccess, ) = payable(msg.sender).call{value: address(this).balance}("");
47+
require(callSuccess, "Call failed");
4948
```
5049
12. Как написать кастомный модификатор? Может ли кастомный модификатор принимать аргументы? Можно ли писать код в модификаторе после `_;`?
5150
13. Для чего нужны `receive` и `fallback`? Когда их нужно использовать? Что будет если мы отправим эфир на контракт но там не будет этих функций? Как связаны `msg.data` и `fallback`?

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

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,17 @@
33
- Пройти [Lesson 12: Hardhat ERC20s](https://github.com/smartcontractkit/full-blockchain-solidity-course-js#lesson-12-hardhat-erc20s)
44

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

12-
Дополнительно:
12+
> Дополнительно: Необязательно делать если пока нет четкого понимания работы ERC20, но потом нужно вернуться.
1313
14-
* Необязательно делать если пока нет четкого понимания работы ERC20, но потом нужно вернуться.
15-
16-
- Попробовать расширить функциональность токена. Понять, как это работает.
17-
- Попробовать добавить Permit, сформировать и передать подпись в контракт.
18-
- Попробовать добавить transferAndCall.
14+
- Попробовать расширить функциональность токена. Понять, как это работает.
15+
- Попробовать добавить Permit, сформировать и передать подпись в контракт.
16+
- Попробовать добавить transferAndCall.
1917

2018
## Какие навыки даст задание?
2119

solidity/junior-1/practice/3-erc-721.md

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,16 @@
33
- Пройти [Lesson 14: Hardhat ERC721](https://github.com/smartcontractkit/full-blockchain-solidity-course-js#lesson-14-hardhat-nfts-everything-you-need-to-know-about-nfts)
44

55
Критерии прохождения задания:
6-
- Изучить стандарт ERC-721, разобрать все основные методы.
7-
- Написать простой ERC-721 с использованием OpenZeppelin библиотеки.
8-
- Деплой смарт-контрактов в тестовую сеть.
9-
- Написать тесты для смарт-контрактов.
10-
- Пройтись по литературе на которую приведены ссылки.
6+
- Изучить стандарт ERC-721, разобрать все основные методы.
7+
- Написать простой ERC-721 с использованием OpenZeppelin библиотеки.
8+
- Деплой смарт-контрактов в тестовую сеть.
9+
- Написать тесты для смарт-контрактов.
10+
- Пройтись по литературе на которую приведены ссылки.
1111

1212
Дополнительно:
13-
14-
- Загрузить картинки токенов и метаданные токенов в IPFS.
15-
- Попробовать написать скрипты для програмной загрузки файлов на ipfs.
16-
- Попробовать использовать другие расширения ERC-721 от OpenZeppelin.
13+
- Загрузить картинки токенов и метаданные токенов в IPFS.
14+
- Попробовать написать скрипты для программной загрузки файлов на ipfs.
15+
- Попробовать использовать другие расширения ERC-721 от OpenZeppelin.
1716

1817
## Какие навыки даст задание?
1918

@@ -24,9 +23,9 @@
2423

2524
1. Что такое NFT? Какие главные отличия от ERC-20?
2625
2. Что такое token URI и как можно его задавать?
27-
3. Что такое IPFS и в чем его отличия от сервисок таких как Pinata, nft.storage? Какие преумущества и недостатки?
26+
3. Что такое IPFS и в чем его отличия от сервисов: Pinata, nft.storage? Какие преимущества и недостатки?
2827
4. Что такое метаданные?
29-
5. Можно ли загружать метаданные прямиком в блокчейн? Какие преймущества и недостатки?
28+
5. Можно ли загружать метаданные прямиком в блокчейн? Какие преимущества и недостатки?
3029
6. Какие методы должны быть в токене ERC-721? Что они делают?
3130
7. Чем отличается метод transferFrom от safeTransferFrom?
3231
8. Чем отличается метод approve от setApprovalForAll? Как отозвать каждый из них?

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

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# NFT Marketplace
22

3-
1. Ознакомится с [Lesson 15: NextJS NFT Marketplace](https://github.com/smartcontractkit/full-blockchain-solidity-course-js#lesson-15-nextjs-nft-marketplace-if-you-finish-this-lesson-you-are-a-full-stack-monster)
4-
2. Написать контракт ончейн NFT-маркетплейса
3+
- Ознакомится с [Lesson 15: NextJS NFT Marketplace](https://github.com/smartcontractkit/full-blockchain-solidity-course-js#lesson-15-nextjs-nft-marketplace-if-you-finish-this-lesson-you-are-a-full-stack-monster)
4+
- Написать смарт-контракт маркетплейса для nft
55

66
## ТЗ
77

@@ -22,10 +22,10 @@
2222
## Как это выглядит со стороны маркетплейса
2323

2424
- маркетплейс может установить комиссию площадки за каждую сделку
25-
- по умолчанию комиссия должна быть 2% (прописывается в контракте либо задается через конструктор)
26-
- должна быть возможность просматривать комиссию на смарт-контракте
27-
- должна быть возможность изменять комиссию на смарт-контракте
28-
- должна быть возможность установить минимальную комиссию 0.01% (смотри базисные пункты и как с ними работать в солидити для точных расчетов)
25+
- по умолчанию комиссия должна быть 2% (прописывается в контракте либо задается через конструктор)
26+
- должна быть возможность просматривать комиссию на смарт-контракте
27+
- должна быть возможность изменять комиссию на смарт-контракте
28+
- должна быть возможность установить минимальную комиссию 0.01% (смотри базисные пункты и как с ними работать в солидити для точных расчетов)
2929
- маркетплейс может установить получателя комиссии
3030
- получатель комиссии должен задаваться в конструкторе
3131
- должна быть возможность изменить получателя комиссий площадки
@@ -46,7 +46,7 @@
4646
- просмотр комиссии платформы
4747
- просмотр получателя комиссии платформы
4848

49-
### Дополнительные фичи, которые можно реализовать
49+
### Дополнительный функционал, который можно реализовать
5050

5151
- Проверка интерфейса ERC-721 во время листинга нфт и создания офера (ERC-165)
5252
- Списание роялти и отправка создателю NFT, если NFT поддерживает ERC-2981
@@ -63,4 +63,4 @@
6363
---
6464

6565
- Итогом выполнения задания должен быть github-репозиторий, в котором будет лежать `hardhat + typescript` проект.
66-
- Покрытие юнит тестами должно быть 100%. Для проверки покрытия тестами кода можно использовать плагин [solidity-coverage](https://www.npmjs.com/package/solidity-coverage)
66+
- Покрытие unit тестами должно быть 100%. Для проверки покрытия тестами кода можно использовать плагин [solidity-coverage](https://www.npmjs.com/package/solidity-coverage)

solidity/junior-1/solidity/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,23 +55,23 @@
5555
- Адресные литералы
5656
- Дробные и целочисленные литералы
5757
- Строковые литералы
58-
- Литералы Юникода
58+
- Литералы Юникод
5959
- Шестнадцатеричные литералы
6060
- Типы функций
6161
2. Что такое `uint` и чем он отличается от `uint8`, `uint256`?
6262
3. Чем отличаются `uint` и `int`?
6363
4. Какие есть особенности у типа address?
6464
5. Чем отличаются динамический массив и массив с фиксированной длиной?
6565
6. Что такое Enum?
66-
- Как получить наменьшее и наибольшее значение из Enum?
67-
- Можно ли объявлять Enum за пределами контракта?
66+
- Как получить наименьшее и наибольшее значение из Enum?
67+
- Можно ли объявлять Enum за пределами контракта?
6868

6969
## Типы. Reference types
7070

7171
1. Что можешь рассказать про reference types?
72-
- Data location(storage, memory, calldata)
73-
- Массивы(динамические и с фиксированной длиной)
74-
- Структуры
72+
- Data location(storage, memory, calldata)
73+
- Массивы(динамические и с фиксированной длиной)
74+
- Структуры
7575
2. Как получить длину массива?
7676
3. Как добавлять данные в массив?
7777
4. Как обойти массив?

0 commit comments

Comments
 (0)