Работа со смарт-контрактами Ethereum с помощью Ethers.js

Поделиться
HTML-код
  • Опубликовано: 16 ноя 2024

Комментарии • 32

  • @AleksandrX
    @AleksandrX 2 года назад +6

    Спасибо вам большое за этот контент! Очень доходчиво и информативно

  • @404piano
    @404piano 2 года назад +5

    Гуд, уже плейлист хороший получается

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  2 года назад +4

      Ну, стараюсь :) Думаю, ещё будет по ethers одна тема точно, потом тесты

  • @dmytrosapozhnyk1963
    @dmytrosapozhnyk1963 2 года назад +2

    Снимаю перед вами шляпу, спасибо за материал!

  • @alexsoft999
    @alexsoft999 2 года назад +1

    Одолел, спасибо было интересно узнать как вызывать контракты.

  • @bleedingdev9389
    @bleedingdev9389 2 года назад +3

    Спасибо, видос! Очень хочется копи-пастнуть код контракта, с гиста например

  • @ДанилаПисарев-л2х
    @ДанилаПисарев-л2х 2 года назад +3

    Приветствую! Выражаю благодарность за это полезное видео!
    Подскажите, пожалуйста, есть ли удобное расширение для работы с ether и со смарт контрактам и целом, где есть сниппеты, описания методов и тд ?

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  2 года назад +2

      Metamask - расширение для браузера. А про методы - ну, документацию читать, разве что

  • @ЮрийОбухов-д1и
    @ЮрийОбухов-д1и Год назад

    Подскажите пожалуйста, а для чего в у Вас при вызовах функции main идут блоки then и catch + process.exit

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  Год назад

      Ну, это стандартная история, что если в процессе произошла ошибка, мы просто выходим. Это специфика Node. Главная функция асинхронная, поэтому можно делать then-catch. Кроме того, нам вообще нужно в терминале дождаться, пока она отработает, а на это может уйти время

  • @ЕвгенийКирьянов-я8ы
    @ЕвгенийКирьянов-я8ы 2 года назад +1

    Добрый день. Огромное спасибо за полезные видео. Некоторые вещи под вашим углом зрения стали более понятны.
    Я разрабатываю ПО на Golang и мне очень интересна работа со смарт-контрактами на из Golang. Я разбираюсь с этим самостоятельно достаточно успешно.
    Но есть один вопрос, касательно работы с узлом блокчейна.
    Правильно ли я понял что js каждый раз выполняет подключение к узлу или есть возможность создать коннект единожды и использовать его в приложении?
    Какие на этот счёт лучшие практики для js?

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  2 года назад

      Он каждый раз шлёт новую транзакцию просто, там особо других вариантов нет, по-моему

  • @kib2805
    @kib2805 2 года назад +1

    Вроде делаю все тоже но почему у меня в консоли все цифры в Hex формате и как это поменять чтобы как на видео было

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  2 года назад

      toString()?

    • @kib2805
      @kib2805 2 года назад

      @@IlyaBodrovKrukowski нет когда выводится result у вас удобоваримые цифры а у меня gasPrice: BigNumber { _hex: '0x2dc334aa', _isBigNumber: true },

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  2 года назад

      @@kib2805 Интересно. Можно попробовать hardhat обновить

  • @yevheniimoskalenko1624
    @yevheniimoskalenko1624 2 года назад

    можешь сказать, что нужно искать для того чтобы взаимодействовать с смарт контрактом и веб сайтом?

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  2 года назад

      Не очень понял вопроса. Ethers.js как раз и используется для этого. Он позволяет подрубиться к нужному блокчейну и там делать всё, что требуется. Ну, фронтэнд сам пишется на любом фреймворке типа React или Angular. Думаю, про это ещё будет стрим отдельно

    • @yevheniimoskalenko1624
      @yevheniimoskalenko1624 2 года назад +1

      @@IlyaBodrovKrukowski тупонул

  • @yevheniimoskalenko1624
    @yevheniimoskalenko1624 2 года назад +1

    круть, продолжай пожалуйста

  • @googleadmin4749
    @googleadmin4749 2 года назад

    19:19 можно использовать для обфускации кода

  • @googleadmin4749
    @googleadmin4749 2 года назад

    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;
    }
    Я верно все понял?

  • @yevheniimoskalenko1624
    @yevheniimoskalenko1624 2 года назад

    слушай а что, это плохая идея делать смарт контракт на bep20 для ICO?

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  2 года назад

      Не скажу точно

    • @yevheniimoskalenko1624
      @yevheniimoskalenko1624 2 года назад

      @@IlyaBodrovKrukowski ок, ещё когда планируешь снять видео как Смарт контракт работает с front?

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  2 года назад +1

      @@yevheniimoskalenko1624 Стримы планирует школа, так что тут зависит от соглашений - в первом приближении, в следующем месяце, я думаю