Solidity и смарт-контракты Ethereum, урок #11 | Наследование, конструкторы, super, override, virtual

preview_player
Показать описание
ХОТИТЕ СТАТЬ РАЗРАБОТЧИКОМ Solidity, узнать об Ethereum, блокчейне и многом другом ещё больше?!
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами: вы действительно узнаете ОЧЕНЬ много нового.

Помимо этого, вы получите пожизненный бесплатный доступ к платформе, регулярным стримам, семинарам, подкастам и дискуссионным клубам.

2. Выберите один из буткемпов
3. Примените промо-код: KRUK

В этом уроке мы узнаем, как реализовывать наследование в Solidity (в том числе множественное наследование), как передавать аргументы родительским конструкторам, зачем нужны модификаторы virtual и override, как вызывать функции на родителях, что такое абстрактный контракт, как использовать import, и некоторые другие важные вещи.

Таймкоды:
00:00 Введение
00:50 Подготовка контракта
02:12 Простое наследование
04:00 Множественное наследование
07:30 Вызов родительских конструкторов
08:40 Абстрактный контракт
11:20 Динамическое значение в родительском конструкторе
13:40 Области видимости и наследование
15:08 Использование virtual и override
17:50 Вызов родительских функций
20:45 Переопределение функций и области видимости
21:20 Контракты OpenZeppelin
22:16 Использование import
23:10 Заключение

Аккаунт Ethereum (ETH): 0x719C2d2bcC155c85190f20E1Cc3710F90FAFDa16
USDT: 0x719C2d2bcC155c85190f20E1Cc3710F90FAFDa16

Рекомендации по теме
Комментарии
Автор

Как же это годно) Продолжай в том же духе. Уроки одни из наилучших, что я видел по solidity

yuriy
Автор

Уроки классные! Спасибо за ваш труд! Вот бы еще увидеть как это взаимодействует с React

evgeniybudaev
Автор

Немного не понятно, для чего переопределять ф-ю withdraw в MyContract, если внутри нее мы все равно вызываем на прямую withdraw c parent контракта.
Почему просто не создать новую ф-ю и внутри так же только без заморочек вызвать withdraw c parent? Или это просто для примера с override?

oleksus_muchachus
Автор

такой вопрос, если я создаю приложение со своими собсвенными смарт контрактами которые наследуют друг друга, мне не обязательно все контракты деплоить на мейннет и я могу просто задеплоить главный(условно последний смарт контракт в цепочке), а на остальные просто сделать импорт из репозитория гитхаба, или все таки мне нужно деплоить корневые смарт контракты для того что бы в блокчейне были записаны эти функции и смарт контракты?

vaniamontana
Автор

Вопрос не по теме, но может быть кто то может подсказать, что значит верификация смарт контракта в тестовой среде, rinkeby например

АлександрСабанцев-ьъ
Автор

Доброго времени суток, Илья. Благодарю за качественное и информативное видео. Взял для себя много пользы. Хочу уточнить один момент, в момент деплоя контракта все "родственники" собираются и деплоятся совместно. Они собираются в один файл, типо бандла или алгоритм организован несколько иначе?

#смартконтракты #солидити #solidity #блокчейн #etherium #события #модификаторы #блокчейнразработка

MikhailKuklenkov
Автор

Здравствуйте! Раскройте секрет как отслеживать логику контракта? Какие упражнения для этого выполнять?

talgatmustafin
Автор

Видно, что разработчики языка Solidity по жизни на плюсах пишут. Все эти virtual, конструкторы со списком и прочее

bblebrox
Автор

запланирован 13 уурок, а 12 нету. И еще было бы интересно сделать урок по уязвимостям в смарт контрактах, как их искать, как использовать, как чинить)

SaNtAClOuSe
Автор

Чем больше языков я изучаю, тем больше убеждаюсь, что красивее C# языка просто нет =)
P.S. Спасибо за помощь вчера, школа связалась со мной, взял курс по солидити

rpirozhkov
Автор

Привет, отличный курс. Спасибо. Хотел задать вопрос по этому контракту. Мы переопределили метод function withdraw(address payable _to), но не получается его скомпелировать, т.к. Warning: Unused function parameter. Но если убрать аргумент, изменится сигнатура в родительском методе, поэтому не даст сделать сигнатуру с аргументом у переопределенного метода. Как лучше и оптимальнее решить эту проблему? :)

psionicsshtorm
Автор

А курс действителен на данный момент? Или появились уже новые версии солидити ?

strike
Автор

Почему, кстати, нельзя переопределить область видимости. У разрабов же была для этого мотивация какая-то

andrewpotashin
Автор

Илья, добрый день! Вопрос такой, если в РФ заблочат ютуб - где-то еще можно смотреть ваши уроки? Или по старинке через VPN просто заходить да и не думать о других ресурсах?

dmitrys.p.
Автор

Блин, никак не могу начать этот курс, очень интересно, но щас я занят на курсе Самсунга по андроид разработке, финальный проект

almasklchv
Автор

А при развертывании наследника развертываются все его родители?

Anonimus_
Автор

в уроке про оптимизацию говорит удаляем все лишнее чтоб газ не тратить и тут опача наследование да еще и множественное с вызовом внутри паблик методов.. мне кажется если юзать наследование то можно вообще не париться о костах - всё равно ж вэмуляторе ранить а платить за деплой будет контора заказавшая контракт - а там миллионы денег что им жалко 100 баксов на деплоймент

ruffle