Какие проекты написать для портфолио?
В чате однажды был вопрос по этой теме, и сегодня хочу предложить вам несколько небольших проектов, которые можно реализовать для своей практики и позже показывать на на различных собеседованиях.
Сразу скажу, что эти примеры протоколов составлены на основе некоторых проектов, которые я встречал на конкурсных аудитах, поэтому в данном списке они будут располагаться в порядке возрастания сложности.
Думаю, если в чате или на канале есть кто-то, кто ведет найм в компанию, то вы могли бы дать дополнительные комментарии к примерам или добавить свои требования.
P.S. Проекты рекомендуется загружать на GitHub, так как это общепринятый ресурс для разработчиков, наполнение которого действительно может сыграть роль при найме.
Итак, проекты для портфолио:
1. Практический файл, где вы показываете, как работать со сложными типами данных и вводом\выводом информации с них. Там моно показать примеры со вложенными маппингами, многоуровневыми массивами, все это в комбинации с enum и struct.
Это может звучать легко, но на самом деле займет несколько часов / дней сфокусированной работы.
2. Контракты своего токена и NFT. Тут объяснения излишни. Просто стандартная ступень начальной практики.
3. Контракт airdrop, который будет разблокировать токены с разным промежутком времени в течение года-пяти с разным количеством токенов каждый раз. Например:
Сразу - 10% токенов;
3 месяца - 15%;
6 месяцев - 30%;
1 год - 5%;
3 года - 20%;
5 лет - остальное;
Зачем: показать, что вы можете работать с timelock и простой математикой в контрактах.
4. Контракт Vault на основе ERC4626, в для пользователя минтятся токены протокола в соотношение 0.75% от внесенных им стейблкойнов, и взамен печатается NFT для подтверждения депозита. Если пользователь забирает токены раньше, чем через полгода, то он теряет свои 0.25%, если позже - получает 0.05% дополнительно.
Зачем: показать, что вы умеете работать с несколькими стандартами, связывать их между собой, а также реализовывать расчеты со сложными процентами.
5. Стейкинг контракт, где одни пользователи делают депозит и получают нативные токены протокола, а другие могут брать займы \ флешзаймы под залог своих токенов. При невозврате займа, его токены переводятся с помощью Uniswap в другой токен и распределяются между депозиторами токена и самим протоколом в соотношении 90/10.
Зачем: показать, что вы можете работать с простыми defi системами и интегрировать протокол с Uniswap.
6. Proxy factory контракт, который может делать деплой Vault контрактов для пользователей. Функционал Vault контракта может обновляться government контрактом после голосования.
В Vault контракт пользователи могут вносить ETH/WETH и позже снимать USDT/USDC. Актуальная цена на снятие получается от оракулов TWAP и Chainlink.
Зачем: показать, что вы можете работать с прокси и оракулами.
7. Простой стейкинг контракт, который работает на L1 и любой другой L2 сети и позволяет пользователям переводить свои токены между ними. При этом за перевод протокол может взымать комиссию 1%.
Сам протокол управляется Gnosis Safe Wallet и с помощью голосования можно изменить процент комиссии.
Зачем: показать, что вы можете работать с Gnosis и понимаете работу разных сетей.
Хочу отметить, что не стоит в данных проектах искать финансовый смысл или идею для своего стартапа. Это исключительно проекты для практики и портфолио.
Также несколько рекомендаций при написании протоколов:
1. Используйте комментарии, лучше в natspec формате;
2. Если понимаете как, то можно использовать assembly вставки;
3. Будет здорово, если вы в комментариях напишите свои предположения по безопасности функции. Например, "в этой функции могут быть такие проблемы, которые при необходимости можно решить так..."
4. Также будет просто здорово, если сможете написать простые unit тесты на Foundry / Hardhat.
Это первый пост с предлагаемыми проектами для портфолио. Если вам зайдет, иногда могу предлагать новые идеи для ваших практических проектов.
#practice
Post #1112
1.53K
- ❤ 22
- 👍 9
- 🔥 2
- 😁 1
- 🤯 1