Друзья, должен отметить, что в некоторых случаях выходное значение для обычных функций (это которые через транзакции выполняются) получить всё-таки можно. В частности, если использовать низкоуровневый вызов - например, delegatecall. Думаю, про это будем ещё говорить отдельно.
Благодарю Вас за Ваши уроки. Это первый курс в котором все четко,доступно. После просмотреных многих курсов анло-язычных такая каша в голове. Ваш курс действительно просто подарок. Твореского вдохновения Вам и успехов в любых начинаниях.
спасибо за такой шикарный урок в котором вы рассказали про все эти темы, смотрю уроки по солидити на английском там каждую тему мусолят на 2 3 урока и по итогу никакой сути,спасибо еще раз огромное за ваш труд
Привет всем! Спасибо за урок. Хочу подсказать, что плагин Hardhat Provide Более не является плагином, можно просто запустить npx hardhat node локальную сеть Hardhat, затем выбираем в Deploy&Run Transcations - Environment Dev - Hardhat Provider. И теперь можем работать с хардхет провайдером. Кстати, теперь еще и можно тесты генерить прям в Remix, в принципе получаются неплохо)
Спасибо за видео! Скажите пожалуйста, а можно ли не в remix-ide, а в vcode каким-то плагином подключиться к виртуальным машинам ethereum? А то ставить remix несколко страшно, компьютер говорит, что софт из непроверенных источников.
Илья, здравствуйте. Подскажите пожалуйста, можно ли в Remix включить как-нибудь подсказки с выпадающим списком в процессе написания, как это реализовано в VSCode?
Очень доступное и понятное обьяснение. Круто! Из урока только вытекает вопрос: Почему мапинг не нуждается в дополнительных определениях типа view и return и при этом вызывается методом call()?
Боюсь, что простого ответа нет. Нужно читать разные блоги, искать информацию, смотреть доки. Книг почти нет, либо они быстро устаревают. Но зато можно записаться на один из буткемпов MCS, в создании которых я принимал активное участие. Собрано большое кол-во информации по теме, очень много видео, плюс постоянные дополнительные занятия и стримы. В описании ролика есть ссылка и даже промо-код
По fallback возник вопрос: в одном туториале встретил такой код для фолбэка: function() external payable{}, у вас же receive() external payable{} , Я правильно понимаю что оба варианта правильны, но ваш вариант более новый?
Я думаю, вам стоит посмотреть урок по теме - про это было в плейлисте. В целом fallback - это перехват неизвестной функции в контракте, а receive - просто приём денег
@@IlyaBodrovKrukowski пардон - проблемы с входом в эккаунт, пишу из под другого. Поясню свой вопрос: в вашем видео именно так и говорится - fallback() - перехват неизвестной функции, а receive() - прием платежа на адрес контракта без указания конкретной функции. У него же в туториале говорилось что fallback /*где fallback фигурирует не как fallback() а как термин*/ - это прием платежа без указания функции, который делается через function()external payable{} - т.е. без указания имени функции. Скажите пжл, используется ли указанный им синтаксис где-то или может быть он является устаревшей версией receive() ?
Еще такой вопрос: в одном туториале одного типа видел код где он постоянно использует contract (не abstract contract!) вместо interface. На мой взгляд это очень плохой код, что думаете по этому поводу?
@@IlyaBodrovKrukowski Я тоже так думаю, удивительно как тот парень (julian from eattheblocks) получил первую работу на смартконтракты с зарплатой более 100К баксов...
@@satoshisumoto1945 Ну, этого я не знаю, но если он живёт в США, то там такая зарплата - это более-менее норма (во всяком случае, для опытных айтишников)
@@IlyaBodrovKrukowski нет, он из европы(кажется француз), сейчас живет на тайване. разрешения на работу с штатовскими компаниями у него нет да и непонятно как бы он мог получить у них такую работу без разрешения на работу и сразу на такую зарплату, тем более что код он пишет плохой и в его туториалах как выяснилось благодаря вашим видео есть неправильные определения
функция fallback() вызывается в том случае, если отностильено смарт контраккта была вызвана транзакция с неизвестным именем функции. а как это воспроизвести?
Друзья, должен отметить, что в некоторых случаях выходное значение для обычных функций (это которые через транзакции выполняются) получить всё-таки можно. В частности, если использовать низкоуровневый вызов - например, delegatecall. Думаю, про это будем ещё говорить отдельно.
@WELL DOROGO Это значит, что её можно переопредилить в дочерних контрактах, но она сама ничего не переопределяет
А почему функции, вызываемые через транзакции, не могут возвращать значения, но в обновленном 5 уроке функция pay возвращает msg.value?
@@BBotinok возвращать они могут, но просто считать это возвращаемое значение - это отдельная проблема, суть в этом
@@IlyaBodrovKrukowskiПонял, спасибо)
Благодарю, Илья. Урок очень понравился, все доходчиво и лаконично изложено. Успехов в развитии канала)
Спасибо за уроки, смотрятся на одном дыхании. И ещё большое спасибо за Вашу позицию и поддержку мира
Спасибо вам за поддержку
Большое спасибо Вам, Учитель! Посылаю лучи добра из Киева ❤️
И вам также
Благодарю Вас за Ваши уроки. Это первый курс в котором все четко,доступно. После просмотреных многих курсов анло-язычных такая каша в голове. Ваш курс действительно просто подарок. Твореского вдохновения Вам и успехов в любых начинаниях.
Большое спасибо!
6 урок был полезным👍
Спасибо за ролик, и поддержку мира♥️
спасибо за такой шикарный урок в котором вы рассказали про все эти темы, смотрю уроки по солидити на английском там каждую тему мусолят на 2 3 урока и по итогу никакой сути,спасибо еще раз огромное за ваш труд
Спасибо за поддержку, она нам сейчас нужна.
Привет всем! Спасибо за урок. Хочу подсказать, что плагин Hardhat Provide Более не является плагином, можно просто запустить npx hardhat node локальную сеть Hardhat, затем выбираем в Deploy&Run Transcations - Environment Dev - Hardhat Provider. И теперь можем работать с хардхет провайдером. Кстати, теперь еще и можно тесты генерить прям в Remix, в принципе получаются неплохо)
Круто, спасибо! Да, этот урок уж давно записывался, там наверняка что-то поменялось
Спасибо Вам Илья за вашу работу
Спасибо вам за уроки!
отлично!
спасибо за урок!
Лучший ждём новые видео!
Спасибо за то что вы делаете!
спасибо большое за ваши уроки) я пока не начал их смотреть, но скоро начну)
Спасибо за урок👍🔥
Благодарю вас за поддержку
попросили добавить оплату эфирами и вот только начало что-то складыватся в понимании какая будет реализация.Спасибо за ясность!
Спасибо большое, ждем продолжения)
Обязательно!
я тебя люблю💌
camelCase & PascalCase
Спасибо за видео!
Скажите пожалуйста, а можно ли не в remix-ide, а в vcode каким-то плагином подключиться к виртуальным машинам ethereum?
А то ставить remix несколко страшно, компьютер говорит, что софт из непроверенных источников.
Ну, используйте hardhat, там можно настроить коннект к любой сети через alchemy, к примеру
лучшее обяснение!!! спс!!!
thank you!
Илья, здравствуйте. Подскажите пожалуйста, можно ли в Remix включить как-нибудь подсказки с выпадающим списком в процессе написания, как это реализовано в VSCode?
Не уверен, если честно. Можно попробовать поиск аддоны (в самом ремиксе кнопка слева внизу), я просто не пробовал такое включать
@@IlyaBodrovKrukowski Хорошо, поищу) Спасибо!
Для теста ф-ции receive с ремикса надо ввести суму в поле "value", и нажать (в самом низу) кнопку "Transact".
Да, эту фичу я обнаружил уже после записи видео
@@IlyaBodrovKrukowski спасибо за уроки
Илья, добрый день! Как с Вами можно связаться?
Добрый! На моём сайте есть все каналы связи, а сайт указан в описании к каждому видео. Ну, либо через наш чат Телеграм, ссылки тоже в описании
В общем при создании смарт-контакта детишки используйте fallback и receive это повышает вероятность получить больше деняк)
Просто надо помнить, что receive нет вовсе, то забросить деньги на контракт напрямую не выйдет - он будет плажёт отклонять
Очень доступное и понятное обьяснение. Круто! Из урока только вытекает вопрос: Почему мапинг не нуждается в дополнительных определениях типа view и return и при этом вызывается методом call()?
Mapping вообще нельзя вернуть как результат работы функции. Но можно считать один или несколько элементов из него через функцию, как-то так
Интересно, а если несколько функций будет с модификатором payable? Деньги автоматически отправятся на одну из них?
receive только один может быть, их не может быть несколько. Если другая функция payable, то тогда её селектор нужно явно задавать
Можно спросить, а где Вы учили всё это? И если можно, пожалуйста, пришлите ресурс
Боюсь, что простого ответа нет. Нужно читать разные блоги, искать информацию, смотреть доки. Книг почти нет, либо они быстро устаревают.
Но зато можно записаться на один из буткемпов MCS, в создании которых я принимал активное участие. Собрано большое кол-во информации по теме, очень много видео, плюс постоянные дополнительные занятия и стримы. В описании ролика есть ссылка и даже промо-код
@@IlyaBodrovKrukowski Большое спасибо!)
!
👍🏻
Не нашел Hardhat Provider plugin в разделе Plugin Manager в Remix!
По-моему, он уже не нужен. Remix обновился просто
@@IlyaBodrovKrukowski Выяснил, Hardhat Provider работает только с десктопной версией Remix.
@@alexsoft999 аа, у вас онлайн версия? Тогда да, вариантов с ней нет особенно
По fallback возник вопрос: в одном туториале встретил такой код для фолбэка: function() external payable{}, у вас же receive() external payable{} , Я правильно понимаю что оба варианта правильны, но ваш вариант более новый?
Я думаю, вам стоит посмотреть урок по теме - про это было в плейлисте. В целом fallback - это перехват неизвестной функции в контракте, а receive - просто приём денег
@@IlyaBodrovKrukowski пардон - проблемы с входом в эккаунт, пишу из под другого. Поясню свой вопрос: в вашем видео именно так и говорится - fallback() - перехват неизвестной функции, а receive() - прием платежа на адрес контракта без указания конкретной функции. У него же в туториале говорилось что fallback /*где fallback фигурирует не как fallback() а как термин*/ - это прием платежа без указания функции, который делается через function()external payable{} - т.е. без указания имени функции. Скажите пжл, используется ли указанный им синтаксис где-то или может быть он является устаревшей версией receive() ?
@@satoshisumoto1945 А, ну да. Это старый синтаксис, теперь уже никто не пишет function()external payable{} и это вообще не сработает
Еще такой вопрос: в одном туториале одного типа видел код где он постоянно использует contract (не abstract contract!) вместо interface. На мой взгляд это очень плохой код, что думаете по этому поводу?
Нет, ну использовать контракт как интерфейс - это очень плохо
@@IlyaBodrovKrukowski Я тоже так думаю, удивительно как тот парень (julian from eattheblocks) получил первую работу на смартконтракты с зарплатой более 100К баксов...
@@satoshisumoto1945 Ну, этого я не знаю, но если он живёт в США, то там такая зарплата - это более-менее норма (во всяком случае, для опытных айтишников)
@@IlyaBodrovKrukowski нет, он из европы(кажется француз), сейчас живет на тайване. разрешения на работу с штатовскими компаниями у него нет да и непонятно как бы он мог получить у них такую работу без разрешения на работу и сразу на такую зарплату, тем более что код он пишет плохой и в его туториалах как выяснилось благодаря вашим видео есть неправильные определения
функция fallback() вызывается в том случае, если отностильено смарт контраккта была вызвана транзакция с неизвестным именем функции. а как это воспроизвести?
при отправке транзакции запихнуть в поле data любую абракадабру. В remix можно попробовать в low-level interactions засунуть что-то типа 0x123456
@@IlyaBodrovKrukowski Илья, огромное вам спасибо!
Огромное спасибо за уроки! И спасибо большое за позицию по поводу войны, для нас украинцев, это важно!
Благодарю вас, стараюсь
Спасибо за вашу позицию по войне в Украине! Спасибо за уроки!