- Solidity doc
- Рекомендації щодо оформлення коду Solidity
- Розповсюджені шаблони та підходи для написання смарт-контрактів
- Cryptozombies
- Матеріали для ознайомлення
(1-2 дні)
: - Написати свій найпростіший ERC-20 токен (скомпілювати в Remix або Truffle, закинути в будь-який TestNet, надати посилання на контракт, показати тестові транзакції з переказу токенів між декількома (мінімум 3) адресами. Переказ токенів можна здійснити за допомогою MyEther Wallet. Дослідити транзакцію в Etherscan: розібратись за що відповідає кожен з параметрів, які показані в Etherscan.
(1 день)
Матеріали зі створення та запуску токенів:-
Необхідні для виконання завдання матеріали і сервіси:
- Опублікувати вихідний код контракту в TestNet
(1 день)
. - Дослідити контракт токена Edgeless і розібратися чим він відрізнятися від стандартного ERC-20 токена.
(1 день)
. - Написати свій ERC-20 токен з можливістю спалювання певної кількості токенів після певної дати (закинути на TestNet, надати посилання на контракт, показати тестові транзакції з переказу токенів між декількома (мінімум 3) адресами.
(1 день)
. - Написати ERC-20 токен з двома власниками (додатково реалізувати можливість додавати власників за згодою більше половини поточних власників).
(1-2 дні)
. - Додати в ERC-20 токен функціональність виплати дивідендів в ETH, при надходженні ETH на баланс контракту. Дивіденди розподіляти пропорційно кількості токенів
(1-2 дні)
. - Написати контракт, котрий розподіляє ERC-20 токени описані іншим контрактом (додатково реалізувати функцію додаткової емісії цих же токенів)
(1-2 дні)
. - Написати контракт MultiSig, котрий реалізує функцію голосування за роздачу токенів на певну адресу з певною сумою
(1-2 дні)
. Умови:
- Видавати токени на адресу тільки після того, як кількість тих, хто проголосував “ЗА” більше, ніж половина.
- Реалізувати властивість контракту, що дозволить повторно голосувати за роздачу токенів на одну і ту ж адресу.
- Контракт повинен враховувати, що кількість адрес, котрі голосують може бути парною чи непарною.
- Навчитися визначати баланс ETH на заданій адресі
(1 день)
. - Навчитися передавати ETH програмно
(1 день)
. - Реалізувати можливість деплойменту контракту з початковими параметрами переданими в конструктор
(1 день)
. - Реалізувати простий скрипт розподілення ERC-20 токенів від імені власника (на вході масив з адресами і кількістю токенів для кожної адреси)
(1-2 дні)
. - Написати скрипт визначення балансу ERC-20 токенів заданого контракту на адресі (списку адрес)
(1-2 дні)
.