Solidity и Ethereum, урок #5 (ОБНОВЛЁННЫЙ 2023) | Hardhat, автотесты, ethers 6, mocha, typechain

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

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

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

    Если у вас ЧТО-ТО НЕ РАБОТАЕТ, то FAQ ПО КУРСУ ЛЕЖИТ ВОТ ТУТ bodrovis.tech/en/categories/solidityethereum/posts/faq-po-kursu-solidity Не исключено, что ваша проблема там уже описана.

  • @user-yo8es5lw2d
    @user-yo8es5lw2d 2 месяца назад +1

    Спасибо, отличный урок!

  • @rickitiki
    @rickitiki Год назад +3

    Ты светоч крипто обучений! Спасибо ❤

  • @retro777
    @retro777 9 месяцев назад +1

    Талантливый преподаватель...что тут скажешь. Особенно хорошо заходит написание каких-то произвольных контрактов, с пояснениями что делает какая строчка кода, и последующие тесты к ним. Прям вкатываешься. Жаль что видео стали редко выходить...

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  9 месяцев назад

      Ну, видео-то выходят, просто тем много, не хочется останавливаться на одном

  • @user-kl5ze4tf2c
    @user-kl5ze4tf2c Год назад +1

    Респектосик!

  • @usernamer519
    @usernamer519 Год назад +1

    Очень, круто! спасибо!!

  • @trochymiak
    @trochymiak Год назад +1

    Dzieki !

  • @mrin0
    @mrin0 Год назад +1

    !13:19 Закладка

  • @MikhailKuklenkov
    @MikhailKuklenkov 11 месяцев назад +1

    Благодарю за классный урок, Илья. Очень понравилось как изложили материал! Я так понимаю, что на данный момент Hardhat можно поженить только с VSCode, но не с WebStorm?

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  11 месяцев назад

      С webstorm, честно говоря, не пробовал, но если там плагинов таких нет, то, вероятно, пока только vs code

  • @mitchrootFineArt
    @mitchrootFineArt 9 месяцев назад +1

    До 5го урока было все очень просто, а вот дальше я прям застрял, и не понимаю как правильно пользоваться курсом.
    Дело в том, что тесты на JS, но в обновленном 5м уроке рекомендуется сразу использовать TS.
    А как пользоваться уроками после 5го?
    Например в 7м уроке я пытаюсь глядя на логику кода тестов в видео, тестов которые на JS сделать то же самое на TS, и у меня с этим огромные проблемы. Потому что мне бы сейчас посмотреть пачку рабочих примеров на TS, но этого нету.
    Возвращаться и писать тесты на JS ? Ну как то это странно.
    Может надо вообще забить на тесты до уроков по фаундри и уже осваивать тесты сразу на солидити.
    Но вообще то хотелось бы и тесты освоить также в процессе.

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  9 месяцев назад +2

      Можно не писать тесты просто, либо использовать обычный JS. К сожалению, у меня нет ресурсов, чтобы делать руководства по JS/TS и тем более перезаписывать все уроки для нового hh toolbox и сразу с использованием typechain. Среда новая, всё быстро меняется. Поэтому, кстати, и книг особо нет по теме - пока напишешь, придётся уже переписывать

  • @sasmartguy
    @sasmartguy 5 месяцев назад +1

    Здравствуйте! Подскажите, пожалуйста, нам нужно прописывать команду npm install --save-dev hardhat каждый раз, когда мы создаем новый проект? Или эту команду нужно прописать только один раз при настройке и установке всего?
    Спасибо огромное вам за труд!

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  5 месяцев назад

      Только один раз. Но вообще варианта два - либо создавать руками package.json и устанавливать HH, либо сделать npm install -g hardhat и потом просто делать npx hardhat init для инициализации проекта, тоже только 1 раз. Второй вариант попроще, я думаю

  • @animelissha21
    @animelissha21 18 дней назад

    Подскажите, почему при компеляции контракта в папке artifarts не появляется файлов ?

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  18 дней назад

      Всё должно быть. Попробуйте написать нам в чат, разберёмся

  • @TigerUnderMoon
    @TigerUnderMoon Год назад +1

    Вы приподаете в GUIDE DAO ?

  • @NN-jx8kb
    @NN-jx8kb Год назад +2

    Здравствуйте, Илья! У меня возникла ошибка в первом тесте ( тайм код 25:12). Ошибка - import{loadFixture, ethers, expect} from "./setup.js"; SyntaxError: Cannot use import statement outside a module. Как можно исправить ? Заранее спасибо. Очень ценю ваш труд

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

      Если у вас файлы JS, то тогда вы не можете использовать import по умолчанию, нужно задействовать require (про него можно погуглить). Но в целом там всё аналогично будет, просто подключение через require

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

      ​@@IlyaBodrovKrukowski аналогичная проблема, в комментатора выше видимо опечатка в расширении и вместо .ts поставлено .js в файлу setup.ts, по проблему это не решает.
      В стеке ошибки ссылается на отсутствие файла (либо невозможности его подключения
      SyntaxError: Cannot use import statement outside a module
      \web3
      ode_modules\ts-node\src\index.ts:1608:43)
      at D:\web3
      ode_modules\mocha\lib\mocha.js:414:36
      - где web3 название моего проекта
      как быть с данной проблемой? уже отдельно устанавливаю \mocha и перетыкал что можно, не работает

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

      @@Ontonbaton Напишите нам в чат, попробуем посмотреть. Но если был проект JS изначально, то там TS не может быть. Ну, точнее, его можно портировать, но там много настроек менять надо. Просто используйте require, а не import, это самое простое. Ну, либо нужно сделать новый проект, выбрать тип TS и уже там работать

  • @naligdehh
    @naligdehh 9 месяцев назад

    Кто нибудь знает почему await с некоторыми значениями берется в скобочки? По типу (await payments).waitForDeployment(); Без скобочек выдает ошибку Свойство "waitForDeployment" не существует в типе "Promise".ts(2339) Payments.test.ts(8, 18): Возможно, пропущено "await"?

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  9 месяцев назад

      Звучит как что-то странное, честно говоря. Думаю, что-то не так где-то с типами, можно в нашем чате спросить

  • @olegrolik
    @olegrolik 7 месяцев назад

    если у кого-то будет ошибка после вызова команды npm install --save-dev @nomicfoundation/hardhat-toolbox@^4.0.0, то мне помогла команда npm install ethers@^6.1.0
    (либо другая версия, которая была в трейсе ошибки)

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

    Обязательно ли устанавливать WSL 2 на винду и, если да, то зачем? Просто слышу об этом всем впервые, а заморачиваться не хочется.

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

      Ну, добро пожаловать в мир разработки на Windows (если, конечно, речь не идёт о чём-то типа asp net). Как сказано в видео, это не обязательно, но там могут быть проблемы - к примеру, не подгружаются matchers и приходится их руками импортировать. Могут быть другие сложности, так что варианта два - готовиться к этим сложностям, либо использовать wsl. Я выбираю обычно первый вариант, но в ряде случаев wsl всё равно нужен. Но для того, чтобы "просто писать контракты" wsl необязателен, можно не морочиться

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

      @@IlyaBodrovKrukowski Спасибо за ответ) А с чем может быть связано то, что у вас контракт деплоится две секунды, а у меня - 11?

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

      @@BBotinok Хм. Честно говоря, неясно. Возможно, проделки антивируса? Вообще бывает такое, что на винде дольше работают простые вещи, даже автотесты иногда, но точно понять причину так сложно - о подобных проблемах никто не сообщал, хотя вот даже у нас в guidedao есть студенты на винде, но у всех полёт нормальный

    • @BBotinok
      @BBotinok Год назад +1

      @@IlyaBodrovKrukowski Оказалось, что что-то работает быстрее, что-то медленнее. Ладно, думаю на данном этапе это не так критично

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

      @@BBotinok

  • @olegrolik
    @olegrolik 7 месяцев назад

    у меня почему-то blockNumber = 5, а не 2

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  7 месяцев назад

      Может уже что-то делали в бч? Он сбрасывает номер блока каждый раз после перезапуска

    • @olegrolik
      @olegrolik 7 месяцев назад

      @@IlyaBodrovKrukowski всё оказалось просто. предыдущий тест Lock.ts не был удалён. и кстати, вдогонку вопрос. не пойму. в контракте метод pay имеет один параметр - сообщение. понятно, что в ремиксе сумма вводится и как бы параметра два. но в typechain-types у метода тоже один параметр. как так получается, что в тесте передаётся два метода?

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  7 месяцев назад

      @@olegrolik первый параметр - это для функции solidity, а второй аргумент - это для поля value, там объект. Ну в типах он просто это учитывает. То есть если в sol функция имеет 1 параметр, не значит, что в ts та же функция только 1 параметр принимает

    • @olegrolik
      @olegrolik 7 месяцев назад

      @@IlyaBodrovKrukowski спасибо за ответ. всё равно не понимаю. в typechain-types/Payments.ts наверное должно быть указано, что кроме параметра message может быть второй параметр? кстати, почему, я в качестве второго параметра не могу передать {sender: "some sender" }, а {value:100} могу? кроме value ещё могу передать gasPrice, gasLimit (все в одном джейсоне). таким образом метод выглядит так - .pay(msg, {gasPrice:0, value:100, gasLimit:0})

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  7 месяцев назад +1

      @@olegrolik а напишите нам лучше в чат, там проще

  • @user-cg2en5ur8u
    @user-cg2en5ur8u 11 месяцев назад

    Илья, добрый день.
    Подскажите пожалуйста, я сейчас устанавливаю ts, смогу ли я продолжить урок # 6 в этом плей листе?

  • @axel-sheen
    @axel-sheen 10 месяцев назад

    А где же обещанные автотесты???

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  10 месяцев назад

      Как где? А с 21-й минуты разве мы их не пишем?..