Спасибо вам большое за этот контент! Очень доходчиво и информативно
@404piano2 жыл бұрын
Гуд, уже плейлист хороший получается
@IlyaBodrovKrukowski2 жыл бұрын
Ну, стараюсь :) Думаю, ещё будет по ethers одна тема точно, потом тесты
@bleedingdev93892 жыл бұрын
Спасибо, видос! Очень хочется копи-пастнуть код контракта, с гиста например
@IlyaBodrovKrukowski2 жыл бұрын
Поищу, может быть, где-то остался
@alexsoft9992 жыл бұрын
Одолел, спасибо было интересно узнать как вызывать контракты.
@IlyaBodrovKrukowski2 жыл бұрын
@dmytrosapozhnyk19632 жыл бұрын
Снимаю перед вами шляпу, спасибо за материал!
@IlyaBodrovKrukowski2 жыл бұрын
Спасибо
@ДанилаПисарев-л2х2 жыл бұрын
Приветствую! Выражаю благодарность за это полезное видео! Подскажите, пожалуйста, есть ли удобное расширение для работы с ether и со смарт контрактам и целом, где есть сниппеты, описания методов и тд ?
@IlyaBodrovKrukowski2 жыл бұрын
Metamask - расширение для браузера. А про методы - ну, документацию читать, разве что
@ЕвгенийКирьянов-я8ы2 жыл бұрын
Добрый день. Огромное спасибо за полезные видео. Некоторые вещи под вашим углом зрения стали более понятны. Я разрабатываю ПО на Golang и мне очень интересна работа со смарт-контрактами на из Golang. Я разбираюсь с этим самостоятельно достаточно успешно. Но есть один вопрос, касательно работы с узлом блокчейна. Правильно ли я понял что js каждый раз выполняет подключение к узлу или есть возможность создать коннект единожды и использовать его в приложении? Какие на этот счёт лучшие практики для js?
@IlyaBodrovKrukowski2 жыл бұрын
Он каждый раз шлёт новую транзакцию просто, там особо других вариантов нет, по-моему
@googleadmin47492 жыл бұрын
19:19 можно использовать для обфускации кода
@yevheniimoskalenko16242 жыл бұрын
круть, продолжай пожалуйста
@IlyaBodrovKrukowski2 жыл бұрын
Буду стараться!
@ЮрийОбухов-д1и Жыл бұрын
Подскажите пожалуйста, а для чего в у Вас при вызовах функции main идут блоки then и catch + process.exit
@IlyaBodrovKrukowski Жыл бұрын
Ну, это стандартная история, что если в процессе произошла ошибка, мы просто выходим. Это специфика Node. Главная функция асинхронная, поэтому можно делать then-catch. Кроме того, нам вообще нужно в терминале дождаться, пока она отработает, а на это может уйти время
@googleadmin47492 жыл бұрын
25:12 я вообще потерял связь с реальностью как это работает, если в первом случае 19:19 мы явно принимаем отправителя и сумму перевода, то в этом мы получается кодируем адрес в uint отрезая первые 160 байт и передаем как аргумент в транзакции, при этом контракт получатель считает переданный адрес отправителем? Магия какая-то) Думаю слишком быстрое переключение между контрактами и выборе из адресов, это не позволяет как на первых уроках понять какой порядок манипуляций производиться, в любом случае на это уходит больше мозговой активности которую есть куда распределить, пересматривал пару раз эти участки. Еще использование слов типа "Перехватывание" при реализации атаки, не совсем корректным считаю, сбивает с толку, мы "инъекцию" проводим, или перезапись значения, значение этих слов содержит в себе понятие совсем противоположных процессов, по этому понять было сложно. А если будет сложно понять и без того не простые знания, мотивация у зрителей будет как в меме "Ну нах! изучать Solidity! буду проституткой!" = ) Процесс происходит следующим образом как я понял: 1) Через contract "Hack" отправляем закодированный адрес в uint отрезая первые 160 байт (вместо метки времени) toHack.delCallGetData(hakadress) 2) contract "MyContract" через delegatecall хочет записать метку времени в contract "AnotherContract" 3) Но так как порядок переменных ( "лей аут" ) установлен не верно, происходит запись переменной otherContract вместо at (просто потому при определении стоят не верно) 4) Далее еще раз выполняется из contract "Hack" - toHack.delCallGetData(0) что просто заполняет переменную at меткой времени 4) Ну и так как переменная otherContract теперь содержит адрес инициатора транзакции, а именно хакерского контракта contract "Hack" то все функции наследованы из contract "AnotherContract" мы просто переопределяем ее изменив внутреннюю логику на замену owner владельца контракта на своего : function getData(uint _timestamp) external payable { owner = msg.sender; } Я верно все понял?
@kib28052 жыл бұрын
Вроде делаю все тоже но почему у меня в консоли все цифры в Hex формате и как это поменять чтобы как на видео было
@IlyaBodrovKrukowski2 жыл бұрын
toString()?
@kib28052 жыл бұрын
@@IlyaBodrovKrukowski нет когда выводится result у вас удобоваримые цифры а у меня gasPrice: BigNumber { _hex: '0x2dc334aa', _isBigNumber: true },
@IlyaBodrovKrukowski2 жыл бұрын
@@kib2805 Интересно. Можно попробовать hardhat обновить
@yevheniimoskalenko16242 жыл бұрын
можешь сказать, что нужно искать для того чтобы взаимодействовать с смарт контрактом и веб сайтом?
@IlyaBodrovKrukowski2 жыл бұрын
Не очень понял вопроса. Ethers.js как раз и используется для этого. Он позволяет подрубиться к нужному блокчейну и там делать всё, что требуется. Ну, фронтэнд сам пишется на любом фреймворке типа React или Angular. Думаю, про это ещё будет стрим отдельно
@yevheniimoskalenko16242 жыл бұрын
@@IlyaBodrovKrukowski тупонул
@yevheniimoskalenko16242 жыл бұрын
слушай а что, это плохая идея делать смарт контракт на bep20 для ICO?
@IlyaBodrovKrukowski2 жыл бұрын
Не скажу точно
@yevheniimoskalenko16242 жыл бұрын
@@IlyaBodrovKrukowski ок, ещё когда планируешь снять видео как Смарт контракт работает с front?
@IlyaBodrovKrukowski2 жыл бұрын
@@yevheniimoskalenko1624 Стримы планирует школа, так что тут зависит от соглашений - в первом приближении, в следующем месяце, я думаю