Solidity и смарт-контракты Ethereum, урок #6 | Функции, транзакции, pure, view, payable, fallback

  Рет қаралды 18,268

Ilya Krukowski

Ilya Krukowski

Күн бұрын

Пікірлер: 86
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Друзья, должен отметить, что в некоторых случаях выходное значение для обычных функций (это которые через транзакции выполняются) получить всё-таки можно. В частности, если использовать низкоуровневый вызов - например, delegatecall. Думаю, про это будем ещё говорить отдельно.
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@WELL DOROGO Это значит, что её можно переопредилить в дочерних контрактах, но она сама ничего не переопределяет
@BBotinok
@BBotinok Жыл бұрын
А почему функции, вызываемые через транзакции, не могут возвращать значения, но в обновленном 5 уроке функция pay возвращает msg.value?
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
@@BBotinok возвращать они могут, но просто считать это возвращаемое значение - это отдельная проблема, суть в этом
@BBotinok
@BBotinok Жыл бұрын
@@IlyaBodrovKrukowskiПонял, спасибо)
@mihunt3r929
@mihunt3r929 2 жыл бұрын
Спасибо за уроки, смотрятся на одном дыхании. И ещё большое спасибо за Вашу позицию и поддержку мира
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Спасибо вам за поддержку
@АннаСидорова-я9м
@АннаСидорова-я9м 2 жыл бұрын
Благодарю Вас за Ваши уроки. Это первый курс в котором все четко,доступно. После просмотреных многих курсов анло-язычных такая каша в голове. Ваш курс действительно просто подарок. Твореского вдохновения Вам и успехов в любых начинаниях.
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Большое спасибо!
@vadimivanovich1827
@vadimivanovich1827 2 жыл бұрын
Большое спасибо Вам, Учитель! Посылаю лучи добра из Киева ❤️
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
И вам также
@isthismyfinalform169
@isthismyfinalform169 2 жыл бұрын
Спасибо за ролик, и поддержку мира♥️
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@MikhailKuklenkov
@MikhailKuklenkov Жыл бұрын
Благодарю, Илья. Урок очень понравился, все доходчиво и лаконично изложено. Успехов в развитии канала)
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
@renichigava4183
@renichigava4183 2 жыл бұрын
спасибо за такой шикарный урок в котором вы рассказали про все эти темы, смотрю уроки по солидити на английском там каждую тему мусолят на 2 3 урока и по итогу никакой сути,спасибо еще раз огромное за ваш труд
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@Bekcoin
@Bekcoin Жыл бұрын
6 урок был полезным👍
@sashazar1
@sashazar1 Жыл бұрын
Спасибо за поддержку, она нам сейчас нужна.
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
@cypressmann
@cypressmann 6 ай бұрын
Привет всем! Спасибо за урок. Хочу подсказать, что плагин Hardhat Provide Более не является плагином, можно просто запустить npx hardhat node локальную сеть Hardhat, затем выбираем в Deploy&Run Transcations - Environment Dev - Hardhat Provider. И теперь можем работать с хардхет провайдером. Кстати, теперь еще и можно тесты генерить прям в Remix, в принципе получаются неплохо)
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 6 ай бұрын
Круто, спасибо! Да, этот урок уж давно записывался, там наверняка что-то поменялось
@ГалинаИноземцева-ф9я
@ГалинаИноземцева-ф9я 2 жыл бұрын
Спасибо Вам Илья за вашу работу
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@ДамирКу-е6р
@ДамирКу-е6р 2 жыл бұрын
Лучший ждём новые видео!
@svitoch_blockchain
@svitoch_blockchain 2 жыл бұрын
Благодарю вас за поддержку
@soldev.
@soldev. 2 жыл бұрын
Спасибо вам за уроки!
@bars374
@bars374 Жыл бұрын
отлично! спасибо за урок!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
@almasklchv
@almasklchv 2 жыл бұрын
спасибо большое за ваши уроки) я пока не начал их смотреть, но скоро начну)
@neuromancersmith9890
@neuromancersmith9890 2 жыл бұрын
Спасибо за то что вы делаете!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@СтепанЗреющий
@СтепанЗреющий 2 жыл бұрын
Спасибо за урок👍🔥
@andreyshkuin531
@andreyshkuin531 Жыл бұрын
я тебя люблю💌
@proorg3753
@proorg3753 2 жыл бұрын
Спасибо большое, ждем продолжения)
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Обязательно!
@synchronization666
@synchronization666 2 жыл бұрын
thank you!
@KOCadm
@KOCadm 2 жыл бұрын
лучшее обяснение!!! спс!!!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@vladimireliseev7602
@vladimireliseev7602 Жыл бұрын
Спасибо за видео! Скажите пожалуйста, а можно ли не в remix-ide, а в vcode каким-то плагином подключиться к виртуальным машинам ethereum? А то ставить remix несколко страшно, компьютер говорит, что софт из непроверенных источников.
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
Ну, используйте hardhat, там можно настроить коннект к любой сети через alchemy, к примеру
@waltergibbs3041
@waltergibbs3041 2 жыл бұрын
попросили добавить оплату эфирами и вот только начало что-то складыватся в понимании какая будет реализация.Спасибо за ясность!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@hulumulumulus
@hulumulumulus 2 жыл бұрын
Илья, здравствуйте. Подскажите пожалуйста, можно ли в Remix включить как-нибудь подсказки с выпадающим списком в процессе написания, как это реализовано в VSCode?
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Не уверен, если честно. Можно попробовать поиск аддоны (в самом ремиксе кнопка слева внизу), я просто не пробовал такое включать
@hulumulumulus
@hulumulumulus 2 жыл бұрын
@@IlyaBodrovKrukowski Хорошо, поищу) Спасибо!
@TheAlexChechel
@TheAlexChechel 2 жыл бұрын
camelCase & PascalCase
@dobruy_Andrey
@dobruy_Andrey 2 жыл бұрын
Для теста ф-ции receive с ремикса надо ввести суму в поле "value", и нажать (в самом низу) кнопку "Transact".
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Да, эту фичу я обнаружил уже после записи видео
@dobruy_Andrey
@dobruy_Andrey 2 жыл бұрын
@@IlyaBodrovKrukowski спасибо за уроки
@vladimireliseev7602
@vladimireliseev7602 Жыл бұрын
Интересно, а если несколько функций будет с модификатором payable? Деньги автоматически отправятся на одну из них?
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
receive только один может быть, их не может быть несколько. Если другая функция payable, то тогда её селектор нужно явно задавать
@Receive_
@Receive_ 2 жыл бұрын
Очень доступное и понятное обьяснение. Круто! Из урока только вытекает вопрос: Почему мапинг не нуждается в дополнительных определениях типа view и return и при этом вызывается методом call()?
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Mapping вообще нельзя вернуть как результат работы функции. Но можно считать один или несколько элементов из него через функцию, как-то так
@satoshimumoto4665
@satoshimumoto4665 2 жыл бұрын
По fallback возник вопрос: в одном туториале встретил такой код для фолбэка: function() external payable{}, у вас же receive() external payable{} , Я правильно понимаю что оба варианта правильны, но ваш вариант более новый?
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Я думаю, вам стоит посмотреть урок по теме - про это было в плейлисте. В целом fallback - это перехват неизвестной функции в контракте, а receive - просто приём денег
@satoshisumoto1945
@satoshisumoto1945 2 жыл бұрын
@@IlyaBodrovKrukowski пардон - проблемы с входом в эккаунт, пишу из под другого. Поясню свой вопрос: в вашем видео именно так и говорится - fallback() - перехват неизвестной функции, а receive() - прием платежа на адрес контракта без указания конкретной функции. У него же в туториале говорилось что fallback /*где fallback фигурирует не как fallback() а как термин*/ - это прием платежа без указания функции, который делается через function()external payable{} - т.е. без указания имени функции. Скажите пжл, используется ли указанный им синтаксис где-то или может быть он является устаревшей версией receive() ?
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@@satoshisumoto1945 А, ну да. Это старый синтаксис, теперь уже никто не пишет function()external payable{} и это вообще не сработает
@googleadmin4749
@googleadmin4749 2 жыл бұрын
В общем при создании смарт-контакта детишки используйте fallback и receive это повышает вероятность получить больше деняк)
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Просто надо помнить, что receive нет вовсе, то забросить деньги на контракт напрямую не выйдет - он будет плажёт отклонять
@OleksandrMatviienko
@OleksandrMatviienko 2 жыл бұрын
Можно спросить, а где Вы учили всё это? И если можно, пожалуйста, пришлите ресурс
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Боюсь, что простого ответа нет. Нужно читать разные блоги, искать информацию, смотреть доки. Книг почти нет, либо они быстро устаревают. Но зато можно записаться на один из буткемпов MCS, в создании которых я принимал активное участие. Собрано большое кол-во информации по теме, очень много видео, плюс постоянные дополнительные занятия и стримы. В описании ролика есть ссылка и даже промо-код
@OleksandrMatviienko
@OleksandrMatviienko 2 жыл бұрын
@@IlyaBodrovKrukowski Большое спасибо!)
@satoshimumoto4665
@satoshimumoto4665 2 жыл бұрын
Еще такой вопрос: в одном туториале одного типа видел код где он постоянно использует contract (не abstract contract!) вместо interface. На мой взгляд это очень плохой код, что думаете по этому поводу?
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Нет, ну использовать контракт как интерфейс - это очень плохо
@satoshisumoto1945
@satoshisumoto1945 2 жыл бұрын
@@IlyaBodrovKrukowski Я тоже так думаю, удивительно как тот парень (julian from eattheblocks) получил первую работу на смартконтракты с зарплатой более 100К баксов...
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@@satoshisumoto1945 Ну, этого я не знаю, но если он живёт в США, то там такая зарплата - это более-менее норма (во всяком случае, для опытных айтишников)
@satoshisumoto1945
@satoshisumoto1945 2 жыл бұрын
@@IlyaBodrovKrukowski нет, он из европы(кажется француз), сейчас живет на тайване. разрешения на работу с штатовскими компаниями у него нет да и непонятно как бы он мог получить у них такую работу без разрешения на работу и сразу на такую зарплату, тем более что код он пишет плохой и в его туториалах как выяснилось благодаря вашим видео есть неправильные определения
@CoinsGold
@CoinsGold 2 жыл бұрын
Илья, добрый день! Как с Вами можно связаться?
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Добрый! На моём сайте есть все каналы связи, а сайт указан в описании к каждому видео. Ну, либо через наш чат Телеграм, ссылки тоже в описании
@olegrolik
@olegrolik 10 ай бұрын
функция fallback() вызывается в том случае, если отностильено смарт контраккта была вызвана транзакция с неизвестным именем функции. а как это воспроизвести?
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 10 ай бұрын
при отправке транзакции запихнуть в поле data любую абракадабру. В remix можно попробовать в low-level interactions засунуть что-то типа 0x123456
@olegrolik
@olegrolik 10 ай бұрын
@@IlyaBodrovKrukowski Илья, огромное вам спасибо!
@mrin0
@mrin0 Жыл бұрын
!
@alexsoft999
@alexsoft999 Жыл бұрын
Не нашел Hardhat Provider plugin в разделе Plugin Manager в Remix!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
По-моему, он уже не нужен. Remix обновился просто
@alexsoft999
@alexsoft999 Жыл бұрын
@@IlyaBodrovKrukowski Выяснил, Hardhat Provider работает только с десктопной версией Remix.
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
@@alexsoft999 аа, у вас онлайн версия? Тогда да, вариантов с ней нет особенно
@kirill_prog
@kirill_prog 2 жыл бұрын
👍🏻
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@denisleshchenko9372
@denisleshchenko9372 Жыл бұрын
Огромное спасибо за уроки! И спасибо большое за позицию по поводу войны, для нас украинцев, это важно!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
Благодарю вас, стараюсь
@vazhabezhanishvili3908
@vazhabezhanishvili3908 2 жыл бұрын
Спасибо за вашу позицию по войне в Украине! Спасибо за уроки!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
小路飞还不知道他把路飞给擦没有了 #路飞#海贼王
00:32
路飞与唐舞桐
Рет қаралды 78 МЛН
When u fight over the armrest
00:41
Adam W
Рет қаралды 25 МЛН
Увеличили моцареллу для @Lorenzo.bagnati
00:48
Кушать Хочу
Рет қаралды 4,6 МЛН
How Much Tape To Stop A Lamborghini?
00:15
MrBeast
Рет қаралды 168 МЛН
СТРИМ! Solidity и Ethereum, урок #10 | Практика
1:21:45
Fallback | Solidity 0.8
5:21
Smart Contract Programmer
Рет қаралды 20 М.
小路飞还不知道他把路飞给擦没有了 #路飞#海贼王
00:32
路飞与唐舞桐
Рет қаралды 78 МЛН