*Отзывы после второго модуля курса*
Хотел бы поделиться парой отзывов, которые написали ученики второго модуля.
Когда делал запуск первого модуля, то немного боялся, что курс не понравится и мало кто захочет продолжить свое обучение со мной. Приятно бывает ошибаться.
Вот уже третий модуль готовится к старту на следующей неделе, и большая часть учеников с обоих потоков планируют продолжить свой путь! Это здорово мотивирует работать над курсом еще усерднее, подбирая материалы и практику для прокачки навыков!
Третий модуль будет еще круче!
#курс
Хотел бы поделиться парой отзывов, которые написали ученики второго модуля.
Когда делал запуск первого модуля, то немного боялся, что курс не понравится и мало кто захочет продолжить свое обучение со мной. Приятно бывает ошибаться.
Вот уже третий модуль готовится к старту на следующей неделе, и большая часть учеников с обоих потоков планируют продолжить свой путь! Это здорово мотивирует работать над курсом еще усерднее, подбирая материалы и практику для прокачки навыков!
Третий модуль будет еще круче!
#курс
🔥9❤2
Что тормозило мое обучение?
Во время своего обучение мне всегда не хватало информации о том, как можно использовать новые знания. Вот, к примеру, изучил я прохождение по массиву в цикле, а что с этим делать дальше - не знаю. Или же, разобрался с этим пресловутым delegatecall - а нафига?
Хорошо знать что-то, другое дело уметь применять это в нужный момент.
Еще одна проблема встала, когда я пошел устраиваться на работу и мне прислали тестовое задание, в котором настройка проекта шла через foundry, с которым я ранее не работал вообще. И пришлось "изобретать велосипед", чтобы хоть как-то наладить это для себя через hardhat.
Далее трудности стали возникать при первых конкурсных аудитах, когда нужно было быстро понять, в чем суть протокола, и за что отвечают те или иные функции. К слову сказать, и сейчас на это уходит день-два, но это скорее из-за сложности и размера проекта, а не из-за того, что что-то не понятно.
Все это могло проходить проще, если бы я уже на этапе обучения разобрался, как работать с реальными проектами и читать код.
Вот и на третьем модуле я хочу показать ученикам, как это делается проще и быстрее, с учетом редактора кода, который является отличным инструментом для анализа.
После первых двух модулей, у вас уже есть знания о базовом синтаксисе языка и первой практикой кода. Сейчас пришло время научиться этим всем пользоваться!
Присоединяетесь!
Программа курса Отзывы
Старт: 2 октября
#курс
Во время своего обучение мне всегда не хватало информации о том, как можно использовать новые знания. Вот, к примеру, изучил я прохождение по массиву в цикле, а что с этим делать дальше - не знаю. Или же, разобрался с этим пресловутым delegatecall - а нафига?
Хорошо знать что-то, другое дело уметь применять это в нужный момент.
Еще одна проблема встала, когда я пошел устраиваться на работу и мне прислали тестовое задание, в котором настройка проекта шла через foundry, с которым я ранее не работал вообще. И пришлось "изобретать велосипед", чтобы хоть как-то наладить это для себя через hardhat.
Далее трудности стали возникать при первых конкурсных аудитах, когда нужно было быстро понять, в чем суть протокола, и за что отвечают те или иные функции. К слову сказать, и сейчас на это уходит день-два, но это скорее из-за сложности и размера проекта, а не из-за того, что что-то не понятно.
Все это могло проходить проще, если бы я уже на этапе обучения разобрался, как работать с реальными проектами и читать код.
Вот и на третьем модуле я хочу показать ученикам, как это делается проще и быстрее, с учетом редактора кода, который является отличным инструментом для анализа.
После первых двух модулей, у вас уже есть знания о базовом синтаксисе языка и первой практикой кода. Сейчас пришло время научиться этим всем пользоваться!
Присоединяетесь!
Программа курса Отзывы
Старт: 2 октября
#курс
❤6🔥3👍1
Практика практике рознь
Практика для новичка в программировании является чуть ли не единственным способом обучения. Если просто смотреть видео или читать посты, можно уловить суть языка, но написать код в редакторе с полным пониманием "а зачем ты это пишешь?" - немного другое.
Мне всегда было проще учиться на примерах. И чем лучше становился мой навык владения кодом, тем сложнее требовались эти примеры. Вопрос был в том, а где их взять?
Когда год назад, я для практики с defi открыл код протокола Compound, то был немного в шоке от объема и сложности. Перешел на Uniswap... Лучше не стало.
На тот момент меня спасли конкурсные аудиты. Я смотрел различные репо и учился читать код профессиональных команд. Ловить связи функций, поток транзакций, писать тесты и многое другое.
Я подбирал для себя не самые сложные аудиты и рос вместе с ними.
Задачи ethernaut, dvd, capture the ether помогли мне понимать "внутреннюю кухню" функций и языка. Но и к ним нужно подходить с умом.
На третьем модуле я хочу передать этот опыт ученикам, чтобы ваш путь к разработке занял намного меньше времени, чем у меня.
Вы должны научиться не только писать свой код, но и разбираться в чужом. Брать от туда лучшие практики и паттерны, видеть проблемы и избегать их в своих проектах.
Это и будет основной темой третьего модуля.
Сегодня были открыты продажи. Успейте присоединиться!
Программа модуля. Реквизиты для оплаты
Старт 2 октября.
#курс
Практика для новичка в программировании является чуть ли не единственным способом обучения. Если просто смотреть видео или читать посты, можно уловить суть языка, но написать код в редакторе с полным пониманием "а зачем ты это пишешь?" - немного другое.
Мне всегда было проще учиться на примерах. И чем лучше становился мой навык владения кодом, тем сложнее требовались эти примеры. Вопрос был в том, а где их взять?
Когда год назад, я для практики с defi открыл код протокола Compound, то был немного в шоке от объема и сложности. Перешел на Uniswap... Лучше не стало.
На тот момент меня спасли конкурсные аудиты. Я смотрел различные репо и учился читать код профессиональных команд. Ловить связи функций, поток транзакций, писать тесты и многое другое.
Я подбирал для себя не самые сложные аудиты и рос вместе с ними.
Задачи ethernaut, dvd, capture the ether помогли мне понимать "внутреннюю кухню" функций и языка. Но и к ним нужно подходить с умом.
На третьем модуле я хочу передать этот опыт ученикам, чтобы ваш путь к разработке занял намного меньше времени, чем у меня.
Вы должны научиться не только писать свой код, но и разбираться в чужом. Брать от туда лучшие практики и паттерны, видеть проблемы и избегать их в своих проектах.
Это и будет основной темой третьего модуля.
Сегодня были открыты продажи. Успейте присоединиться!
Программа модуля. Реквизиты для оплаты
Старт 2 октября.
#курс
А время идет, так почему бы не начать уже сегодня?
18 первых учеников уже на канале третьего модуля! Успейте занять свое место!
Когда в июле запускался первый модуль курса, я писал, что к осени ученики могут получить крепкую основу для дальнейшего изучения Solidity, и что не стоит откладывать на потом свои желания начать что-либо.
Здорово, что многие тогда получили хороший заряд мотивации и пошли дальше программы. Некоторые из них уже пробуют получить первую работу или устроиться в зарубежную компанию на стажировку! Я верю в вас!
До нового года планируется еще два модуля - 3 (практический) и 4 (более специализированный). За это время вы сможете укрепить свои знания в Solidity, создать портфолио, которое можно показать работодателям, и, возможно, найти новую работу.
С третьим модулем мы начнем также создавать ваше резюме, которое можно будет показывать на собеседованиях. Работодатель будет видеть ваши наработки и уровень знаний!
Не теряйте время, пора начинать! Присоединяйтесь!
Программа модуля. Реквизиты для оплаты
Старт 2 октября.
Продажи только до конца недели!
#курс
18 первых учеников уже на канале третьего модуля! Успейте занять свое место!
Когда в июле запускался первый модуль курса, я писал, что к осени ученики могут получить крепкую основу для дальнейшего изучения Solidity, и что не стоит откладывать на потом свои желания начать что-либо.
Здорово, что многие тогда получили хороший заряд мотивации и пошли дальше программы. Некоторые из них уже пробуют получить первую работу или устроиться в зарубежную компанию на стажировку! Я верю в вас!
До нового года планируется еще два модуля - 3 (практический) и 4 (более специализированный). За это время вы сможете укрепить свои знания в Solidity, создать портфолио, которое можно показать работодателям, и, возможно, найти новую работу.
С третьим модулем мы начнем также создавать ваше резюме, которое можно будет показывать на собеседованиях. Работодатель будет видеть ваши наработки и уровень знаний!
Не теряйте время, пора начинать! Присоединяйтесь!
Программа модуля. Реквизиты для оплаты
Старт 2 октября.
Продажи только до конца недели!
#курс
👍1
Где и как искать работу в web3?
Популярный вопрос от учеников курса и участников данного канала. В этом посте хочу собрать некоторую общую информацию по вакансиям, требованиям и ресурсам для соискателей.
Сначала пройдемся по требованиям к разработчикам web3.
Прежде всего в вакансиях доминируют два языка: Solidity и Rust. Реже можно встретить требования к знаниям C, C++, Go, Huff и Vyper. Тем не менее, знание этих языков будет хорошим плюсом.
В некоторых компаниях разработчики смарт контрактов должны еще подключать фронтенд к смарт контрактам, поэтому встречаются требования JavaScript, TypeScript, React а также популярных библиотек, типа web3.js, ethers.js.
Также зачастую в мелких и средних компаниях разработчики должны писать тесты для своих контрактов. В связи с этим требуются знания одной из программ: Hardhat, Foundry, Truffle (уже крайне редко). На своем опыте могу сказать, что чаще всего в вакансиях требуется Foundry, так как он чуть быстрее и проще двух других.
Не меньшим плюсом, будут навыки работы с GitHub, Python, NPM.
При заполнении форм на какую-либо вакансию, с вероятностью 60-70%, вас попросят дать ссылку на ваш аккаунт в LinkedIn, Twitter и на GitHub.
Кстати, на GitHub лучше бы иметь пару тройку проектов, которые вы писали. За рубежом Ваш GitHub скажет намного больше, чем любое резюме.
Что же касается опыта в 2-3 года, то тут скорее происходит отсев не уверенных кандидатов. Вы вполне можете подавать свои резюме на эти позиции и пытаться пройти собеседование. При этом помните, кандидата без опыта раскусят сразу. Будьте готовы отвечать на каверзные вопросы и писать код прямо на собеседовании!
Где искать работу?
Для начала можно попробовать поискать тут:
1. https://cyberacademy.dev/jobs
2. https://career.habr.com/vacancies
3. Ну и наш хедхантер, хоть я к нему и отношусь не очень (тупой поиск и фильтр)
P.S. Есть еще фриланс сайты, типа upwork, но рекомендовать не стану, так как у самого там не особо получалось. Но некоторые находити там подработку.
Больше вакансий можно найти на зарубежных порталах:
1. https://cryptojobslist.com/solidity
2. https://cryptocurrencyjobs.co/
3. https://crypto.jobs/
4. https://web3.career/crypto-jobs
5. https://www.indeed.com/q-Blockchain-Developer-jobs.html
6. https://beincrypto.com/jobs/
7. https://www.glassdoor.co.in/
Ну, и, конечно, LinkedIn с разделом вакансий по региону. Вероятно, это одно из самых популярных мест для поиска на западном рынке.
Можно также отслеживать новые вакансии на проектах, которые вам нравятся, типа Bibance, Immunefi и т.д. Только учтите, что на популярных проектах требования гораздо выше, как и конкуренция.
Также я крайне рекомендую зарегистрироваться в Дискорде и вступить в группы:
1. Web3SecurityDAO;
2. Guardian Audits;
3. Code4rena;
4. Immunefi;
Иногда там в чатах, или даже в отдельных топиках, проскальзывают вакансии от компаний, которые больше нигде не публикуются.
Можно также подписаться на некоторые чаты в Телеграм, где также иногда размещаются вакансии:
1. https://xn--r1a.website/eth_ru
2. https://xn--r1a.website/eth_jobs
3. https://xn--r1a.website/eth_dev
4. https://xn--r1a.website/cyberacademy
5. https://xn--r1a.website/lobsters_hr
6. https://xn--r1a.website/blockchainjunauditors
Главный вопрос: Можно ли найти работу, зная только Solidity?
Можно. Но будет чуть труднее.
Главным козырем у вас должен стать ваш GitHub, на котором будут размещены ваши проекты, наработки, тесты, решения задач и т.д.
Поэтому, если давать только один совет для поиска работы, то он будет звучать как - оформите свой GitHub! Считайте это как Инстаграм для мастера по ноготочкам, или отзыв близкого друга об автомастерской.
Ну, вот как бы так. Если у вас есть, что добавить, напишите в комментариях для других участников чата. Давайте вместе создадим крутой гайд по поиску работы!
P.S. Сохраняйте себе, чтобы не потерять. Буду благодарен репостам)
#job
Популярный вопрос от учеников курса и участников данного канала. В этом посте хочу собрать некоторую общую информацию по вакансиям, требованиям и ресурсам для соискателей.
Сначала пройдемся по требованиям к разработчикам web3.
Прежде всего в вакансиях доминируют два языка: Solidity и Rust. Реже можно встретить требования к знаниям C, C++, Go, Huff и Vyper. Тем не менее, знание этих языков будет хорошим плюсом.
В некоторых компаниях разработчики смарт контрактов должны еще подключать фронтенд к смарт контрактам, поэтому встречаются требования JavaScript, TypeScript, React а также популярных библиотек, типа web3.js, ethers.js.
Также зачастую в мелких и средних компаниях разработчики должны писать тесты для своих контрактов. В связи с этим требуются знания одной из программ: Hardhat, Foundry, Truffle (уже крайне редко). На своем опыте могу сказать, что чаще всего в вакансиях требуется Foundry, так как он чуть быстрее и проще двух других.
Не меньшим плюсом, будут навыки работы с GitHub, Python, NPM.
При заполнении форм на какую-либо вакансию, с вероятностью 60-70%, вас попросят дать ссылку на ваш аккаунт в LinkedIn, Twitter и на GitHub.
Кстати, на GitHub лучше бы иметь пару тройку проектов, которые вы писали. За рубежом Ваш GitHub скажет намного больше, чем любое резюме.
Что же касается опыта в 2-3 года, то тут скорее происходит отсев не уверенных кандидатов. Вы вполне можете подавать свои резюме на эти позиции и пытаться пройти собеседование. При этом помните, кандидата без опыта раскусят сразу. Будьте готовы отвечать на каверзные вопросы и писать код прямо на собеседовании!
Где искать работу?
Для начала можно попробовать поискать тут:
1. https://cyberacademy.dev/jobs
2. https://career.habr.com/vacancies
3. Ну и наш хедхантер, хоть я к нему и отношусь не очень (тупой поиск и фильтр)
P.S. Есть еще фриланс сайты, типа upwork, но рекомендовать не стану, так как у самого там не особо получалось. Но некоторые находити там подработку.
Больше вакансий можно найти на зарубежных порталах:
1. https://cryptojobslist.com/solidity
2. https://cryptocurrencyjobs.co/
3. https://crypto.jobs/
4. https://web3.career/crypto-jobs
5. https://www.indeed.com/q-Blockchain-Developer-jobs.html
6. https://beincrypto.com/jobs/
7. https://www.glassdoor.co.in/
Ну, и, конечно, LinkedIn с разделом вакансий по региону. Вероятно, это одно из самых популярных мест для поиска на западном рынке.
Можно также отслеживать новые вакансии на проектах, которые вам нравятся, типа Bibance, Immunefi и т.д. Только учтите, что на популярных проектах требования гораздо выше, как и конкуренция.
Также я крайне рекомендую зарегистрироваться в Дискорде и вступить в группы:
1. Web3SecurityDAO;
2. Guardian Audits;
3. Code4rena;
4. Immunefi;
Иногда там в чатах, или даже в отдельных топиках, проскальзывают вакансии от компаний, которые больше нигде не публикуются.
Можно также подписаться на некоторые чаты в Телеграм, где также иногда размещаются вакансии:
1. https://xn--r1a.website/eth_ru
2. https://xn--r1a.website/eth_jobs
3. https://xn--r1a.website/eth_dev
4. https://xn--r1a.website/cyberacademy
5. https://xn--r1a.website/lobsters_hr
6. https://xn--r1a.website/blockchainjunauditors
Главный вопрос: Можно ли найти работу, зная только Solidity?
Можно. Но будет чуть труднее.
Главным козырем у вас должен стать ваш GitHub, на котором будут размещены ваши проекты, наработки, тесты, решения задач и т.д.
Поэтому, если давать только один совет для поиска работы, то он будет звучать как - оформите свой GitHub! Считайте это как Инстаграм для мастера по ноготочкам, или отзыв близкого друга об автомастерской.
Ну, вот как бы так. Если у вас есть, что добавить, напишите в комментариях для других участников чата. Давайте вместе создадим крутой гайд по поиску работы!
P.S. Сохраняйте себе, чтобы не потерять. Буду благодарен репостам)
#job
👍34🔥3
Три дня до конца продаж на 3 модуль курса
На следующей неделе, уже с понедельника, стартует обучение на третьем модуле нашего курса.
За один месяц вы сможете прокачать свои навыки Solidity разработчика, как если бы обучались сами несколько месяцев!
Это будет самая интенсивная группа, направленная именно на практику с кодом и сопутствующими программами.
Конечно, всю информацию можно найти и в сети на профильных порталах, но здесь она собрана и организована так, чтобы ученики не бросали обучение после первых трудностей. Вы всегда сможете задать вопрос в чате курса или мне в личные сообщения и разобраться с проблемой.
Если вы хотели попробовать что-то новое этой осенью, пусть это будет третий модуль курса!
Программа модуля. Реквизиты для оплаты
Старт 2 октября.
Продажи только до конца недели!
#курс
На следующей неделе, уже с понедельника, стартует обучение на третьем модуле нашего курса.
За один месяц вы сможете прокачать свои навыки Solidity разработчика, как если бы обучались сами несколько месяцев!
Это будет самая интенсивная группа, направленная именно на практику с кодом и сопутствующими программами.
Конечно, всю информацию можно найти и в сети на профильных порталах, но здесь она собрана и организована так, чтобы ученики не бросали обучение после первых трудностей. Вы всегда сможете задать вопрос в чате курса или мне в личные сообщения и разобраться с проблемой.
Если вы хотели попробовать что-то новое этой осенью, пусть это будет третий модуль курса!
Программа модуля. Реквизиты для оплаты
Старт 2 октября.
Продажи только до конца недели!
#курс
👍3🔥2👎1😁1🤣1
Цикл постов на канале по Foundry
К планируемому запуску проекта этой осенью, о котором писал ранее, я хочу сам еще раз пройтись по программе Foundry и повторить многие моменты с написанием тестов для смарт контрактов.
И я подумал, а что если на канале в бесплатном формате сделать цикл постов-уроков по работе с Foundry с нуля?
Показать, как пишутся тесты, фаз и инвариант тесты, подключение defi контрактов, форки и т.д. Сначала по каждому из пунктов в отдельности, потом уже практическая часть.
Так я смогу повторить основные моменты Foundry, многие из вас начнут осваивать тесты с этой средой, а другие - подскажут, как сделать лучше.
В итоге получится детальный гайд по работе с данной программой на русском языке.
P.S. Думаю начать писать уроки где-то через неделю-две, после того как разберусь с текущими задачами.
#foundry
К планируемому запуску проекта этой осенью, о котором писал ранее, я хочу сам еще раз пройтись по программе Foundry и повторить многие моменты с написанием тестов для смарт контрактов.
И я подумал, а что если на канале в бесплатном формате сделать цикл постов-уроков по работе с Foundry с нуля?
Показать, как пишутся тесты, фаз и инвариант тесты, подключение defi контрактов, форки и т.д. Сначала по каждому из пунктов в отдельности, потом уже практическая часть.
Так я смогу повторить основные моменты Foundry, многие из вас начнут осваивать тесты с этой средой, а другие - подскажут, как сделать лучше.
В итоге получится детальный гайд по работе с данной программой на русском языке.
P.S. Думаю начать писать уроки где-то через неделю-две, после того как разберусь с текущими задачами.
#foundry
👍28🔥9
Цикл постов про Foundry - 2
Рад, что так позитивно восприняли идею о постах-уроках по Foundry.
Потихоньку собираю кейсы, которые нужно будет осветить в практике. И тут вопрос для вас:
Какие были проблемы с тестами Foundry? Что не получалось и что вызывало вопросы?
Просто в комментах напишите.
#foundry
Рад, что так позитивно восприняли идею о постах-уроках по Foundry.
Потихоньку собираю кейсы, которые нужно будет осветить в практике. И тут вопрос для вас:
Какие были проблемы с тестами Foundry? Что не получалось и что вызывало вопросы?
Просто в комментах напишите.
#foundry
👍1
⚡️⚡️⚡️ Менее 12 часов до закрытия продаж! ⚡️⚡️⚡️
Сегодня последний день продаж доступа на третий модуль курса. Если опоздаете, то придется ждать следующего потока!
Напомню, в этот раз мы будем настраивать рабочую среду для профессиональной разработки смарт контрактов, изучать протоколы и многие аспекты кода, работать с безопасностью и решать задачи .
У нас уже набралась достаточно большая группа учеников, поэтому с понедельника, с началом курса, продаж не будет совсем!
Успейте занять свое место!
Программа модуля
Условия и оплата
Старт 2 октября!
#курс
Сегодня последний день продаж доступа на третий модуль курса. Если опоздаете, то придется ждать следующего потока!
Напомню, в этот раз мы будем настраивать рабочую среду для профессиональной разработки смарт контрактов, изучать протоколы и многие аспекты кода, работать с безопасностью и решать задачи .
У нас уже набралась достаточно большая группа учеников, поэтому с понедельника, с началом курса, продаж не будет совсем!
Успейте занять свое место!
Программа модуля
Условия и оплата
Старт 2 октября!
#курс
👍1
Темы для цикла постов по Foundry
Я продолжаю собирать темы для небольшого цикла обучающих постов по написанию тестов на Foundry. Пока что удалось собрать небольшой список:
1. Установка и настройка Foundry;
2. Основные команды в терминале;
3. Настройка remapping;
4. Взаимодействие hardhat и Foundry;
5. Популярные команды cast;
6. Локальный блокчейн Anvil;
7. Разбор читкодов;
8. Разбор библиотек для тестов;
9. Разбор traces;
10. Простые тесты;
11. Fuzz тесты;
12. Тесты инвариантов;
13. Differential Testing;
14. Работа с форками;
15. Деплой и верификация;
16. Дебаггер;
17. Работа с компилятором в тестах;
18. Отправка транзакций в разных блоках;
19. Тестирование для L2 сетей;
20. Тестирование для ZK Sync;
21. Работа с газом;
22. Разбор уже написанных тестов на протоколе;
23. Работа с отчетами;
24. Проведение прицельных тестов: на контракт, на функцию.
25. Подключение etherscan, infura, alchemy для тестов;
UPD. 26. Тестирование прокси контрактов
UPD. 27. Тестирование работы с chainlink
UPD. 28. Тестирование мостов
Начну выкладывать цикл недели через две, когда на основном курсе от канала пройдем темы с программами для тестов.
Пока что, буду рад, если накидаете еще темы или вопросы, которые у вас возникали при написании тестов.
У меня пока что самая большая проблема в способности быстро разобраться с уже готовыми тестами протокола и подключить свои. В том плане, что обычно уходит несколько часов или даже день для этого, а хотелось бы выработать стратегия, чтобы все получалось быстрее.
#foundry
Я продолжаю собирать темы для небольшого цикла обучающих постов по написанию тестов на Foundry. Пока что удалось собрать небольшой список:
1. Установка и настройка Foundry;
2. Основные команды в терминале;
3. Настройка remapping;
4. Взаимодействие hardhat и Foundry;
5. Популярные команды cast;
6. Локальный блокчейн Anvil;
7. Разбор читкодов;
8. Разбор библиотек для тестов;
9. Разбор traces;
10. Простые тесты;
11. Fuzz тесты;
12. Тесты инвариантов;
13. Differential Testing;
14. Работа с форками;
15. Деплой и верификация;
16. Дебаггер;
17. Работа с компилятором в тестах;
18. Отправка транзакций в разных блоках;
19. Тестирование для L2 сетей;
20. Тестирование для ZK Sync;
21. Работа с газом;
22. Разбор уже написанных тестов на протоколе;
23. Работа с отчетами;
24. Проведение прицельных тестов: на контракт, на функцию.
25. Подключение etherscan, infura, alchemy для тестов;
UPD. 26. Тестирование прокси контрактов
UPD. 27. Тестирование работы с chainlink
UPD. 28. Тестирование мостов
Начну выкладывать цикл недели через две, когда на основном курсе от канала пройдем темы с программами для тестов.
Пока что, буду рад, если накидаете еще темы или вопросы, которые у вас возникали при написании тестов.
У меня пока что самая большая проблема в способности быстро разобраться с уже готовыми тестами протокола и подключить свои. В том плане, что обычно уходит несколько часов или даже день для этого, а хотелось бы выработать стратегия, чтобы все получалось быстрее.
#foundry
👍10🔥7❤1
Рекомендации по работе с биржей
Не так давно на канале появилась небольшая биржа с участниками, у которых вы можете заказать разработку смарт контрактов, написание тестов, аудит или даже частные уроки.
Хотел бы дать несколько советов по организации работы в случае заказа.
1. Когда обращаетесь к исполнителю имейте четкое Техническое задание на руках, что бы разработчик смог оценить сроки и стоимость более адекватно. Если же у вас нет ТЗ, то оговорите это с исполнителем и попросите помочь составить грамотное ТЗ.
При этом не обижайтесь и не беситесь, если исполнитель не захочет этого делать по какой-либо причине.
2. Оговаривайте сроки исполнения. Всегда должны быть четкие рамки по выполнению услуг. Даже на простой контракт нужно выделить минимум неделю.
3. Оговаривайте стоимость и процесс оплаты. Тут уже на свое усмотрение: либо с авансовым платежом, либо по факту выполеных работы, либо 100% предоплата.
Лично я люблю работать по системе каскадных платежей: когда срок работ разбивается на несколько фаз, и каждая оплачивается по факту выполнения. Это может подойти не для всех, просто описываю свой способ работы.
4. Фиксируйте договоренности! Создавайте простой договор на исполнение услуг, где, за подписями обеих сторон, укажите объем работ, сроки, стоимость, сроки оплаты, ожидаемые результаты и детальное ТЗ.
5. Описывайте результаты и ожидания от выполненных работ. Взгляды на мир, как и на результат работ, может быть разным у исполнителя и заказчика. Вы должны описать, что хотите получить в результате и как это будет работать.
6. Не бойтесь прописывать штрафы за несоблюдение сроков. Это очень спорный момент при работе с заказами, но я считаю, что он должен быть зафиксирован. Штраф может быть, как за затяжку разработки, так и за затяжку оплаты.
7. Перед выбором исполнителя, попробуйте сделать небольшой поиск по нему в группах. Посмотрите, как он отвечал на вопросы, какие советы давал, чем делился. Обязательно посмотрите его GitHub или другое портфолио.
8. Не "долбите" в личку исполнителю. Это частая проблема, когда заказчик хочет контролировать весь процесс поминутно, и ожидает, что исполнитель должен быть на связи каждый день с 6 утра и до 1 часу ночи. Это не так. Лучше оговорите с ним, в какие дни и в какое время вы будете просить отчет о проделанной работе.
9. Любые дополнения к работе, "хотелки" и правки должны оплачиваться отдельно, а сроки исполнения договора увеличиваться. Не ждите, что по ходу исполнения первоначального заказа, вы сможете повышать объем работ и их сложность за ту же цену. Это все занимает время исполнителя.
Такие пункты должны фиксироваться с отдельном, дополнительном договоре.
10. Отзывы об исполнителе. После выполнения работ, вы можете поделиться отзывом на канале. Наш рынок web3 разработчиков довольно маленький, и репутация здесь крайне важна.
11. В случае возникновения споров, вы всегда можете спросить совета в чате этого канала или любого другого, описав ситуацию и проблему, без перехода на личности. Сообщество поможет разобраться и подсказать выход из сложившейся ситуации.
Работайте честно и адекватно!
Напомню, ссылку на пост с исполнителями, там вы сможете заказать услугу:
https://xn--r1a.website/solidityset/874
Всем приятной недели!
#market
Не так давно на канале появилась небольшая биржа с участниками, у которых вы можете заказать разработку смарт контрактов, написание тестов, аудит или даже частные уроки.
Хотел бы дать несколько советов по организации работы в случае заказа.
1. Когда обращаетесь к исполнителю имейте четкое Техническое задание на руках, что бы разработчик смог оценить сроки и стоимость более адекватно. Если же у вас нет ТЗ, то оговорите это с исполнителем и попросите помочь составить грамотное ТЗ.
При этом не обижайтесь и не беситесь, если исполнитель не захочет этого делать по какой-либо причине.
2. Оговаривайте сроки исполнения. Всегда должны быть четкие рамки по выполнению услуг. Даже на простой контракт нужно выделить минимум неделю.
3. Оговаривайте стоимость и процесс оплаты. Тут уже на свое усмотрение: либо с авансовым платежом, либо по факту выполеных работы, либо 100% предоплата.
Лично я люблю работать по системе каскадных платежей: когда срок работ разбивается на несколько фаз, и каждая оплачивается по факту выполнения. Это может подойти не для всех, просто описываю свой способ работы.
4. Фиксируйте договоренности! Создавайте простой договор на исполнение услуг, где, за подписями обеих сторон, укажите объем работ, сроки, стоимость, сроки оплаты, ожидаемые результаты и детальное ТЗ.
5. Описывайте результаты и ожидания от выполненных работ. Взгляды на мир, как и на результат работ, может быть разным у исполнителя и заказчика. Вы должны описать, что хотите получить в результате и как это будет работать.
6. Не бойтесь прописывать штрафы за несоблюдение сроков. Это очень спорный момент при работе с заказами, но я считаю, что он должен быть зафиксирован. Штраф может быть, как за затяжку разработки, так и за затяжку оплаты.
7. Перед выбором исполнителя, попробуйте сделать небольшой поиск по нему в группах. Посмотрите, как он отвечал на вопросы, какие советы давал, чем делился. Обязательно посмотрите его GitHub или другое портфолио.
8. Не "долбите" в личку исполнителю. Это частая проблема, когда заказчик хочет контролировать весь процесс поминутно, и ожидает, что исполнитель должен быть на связи каждый день с 6 утра и до 1 часу ночи. Это не так. Лучше оговорите с ним, в какие дни и в какое время вы будете просить отчет о проделанной работе.
9. Любые дополнения к работе, "хотелки" и правки должны оплачиваться отдельно, а сроки исполнения договора увеличиваться. Не ждите, что по ходу исполнения первоначального заказа, вы сможете повышать объем работ и их сложность за ту же цену. Это все занимает время исполнителя.
Такие пункты должны фиксироваться с отдельном, дополнительном договоре.
10. Отзывы об исполнителе. После выполнения работ, вы можете поделиться отзывом на канале. Наш рынок web3 разработчиков довольно маленький, и репутация здесь крайне важна.
11. В случае возникновения споров, вы всегда можете спросить совета в чате этого канала или любого другого, описав ситуацию и проблему, без перехода на личности. Сообщество поможет разобраться и подсказать выход из сложившейся ситуации.
Работайте честно и адекватно!
Напомню, ссылку на пост с исполнителями, там вы сможете заказать услугу:
https://xn--r1a.website/solidityset/874
Всем приятной недели!
#market
❤2👍1
Бесплатный курс от Statemind
Ребята из Statemind попросили поделиться информацией о наборе на свой бесплатный курс Smart Contract Security Specialist.
Кратно об обучении:
• Обучение онлайн
• Длительность 4 недели
• Обучение на английском/русском языках
• Отбор проводим по входному тесту (в форме)
• После успешного прохождения программы проводим интервью и по результатам предлагаем возможность присоединиться к нашей команде в качестве интерна (мы работаем удаленно)
• Обучение с нашей стороны бесплатное, потому что основная наша задача - найти единомышленников
• Помогаем с релокацией
В программе курса:
• Introduction to blockchain
• DeFi primitives
• DeFi security
Подробная информация и форма для заполнения для тех, кому будет интересно
https://docs.google.com/forms/d/e/1FAIpQLSfdCWi1HYlU1nZs62WwwYA-PZZi7msTqpHnpBtMOARFPer2vg/viewform?usp=sf_link
Залетайте!
P.S. Подчеркну, что потребуется знание английского языка!
#statemind #security
Ребята из Statemind попросили поделиться информацией о наборе на свой бесплатный курс Smart Contract Security Specialist.
Кратно об обучении:
• Обучение онлайн
• Длительность 4 недели
• Обучение на английском/русском языках
• Отбор проводим по входному тесту (в форме)
• После успешного прохождения программы проводим интервью и по результатам предлагаем возможность присоединиться к нашей команде в качестве интерна (мы работаем удаленно)
• Обучение с нашей стороны бесплатное, потому что основная наша задача - найти единомышленников
• Помогаем с релокацией
В программе курса:
• Introduction to blockchain
• DeFi primitives
• DeFi security
Подробная информация и форма для заполнения для тех, кому будет интересно
https://docs.google.com/forms/d/e/1FAIpQLSfdCWi1HYlU1nZs62WwwYA-PZZi7msTqpHnpBtMOARFPer2vg/viewform?usp=sf_link
Залетайте!
P.S. Подчеркну, что потребуется знание английского языка!
#statemind #security
👍13❤6🔥1👌1
Event argument indexing
event Transfer(address from, address to, uint256 amount);
События в Solidity являются своего рода абстракцией над системой логирования для Ethereum Virtual Machine. DApps могут подписываться и слушать события через RPC-интерфейс клиента Ethereum. При отправке события, параметры сохраняются в специальный журнал транзакций.
Для чего нужны Events?
1. Прослушивание событий. Необходимо для оперативного реагирования на изменения во внешнем интерфейсе.
2. Для тестирования. В тестах можно получать события со смарт-контрактов с данными транзакции и проверять их.
3. Для восстановления состояния хранилища. Все события хранятся в журнале EVM и могут быть прочитаны.
4. Создание сабграфов. Для агрегации, конвертации и упрощения чтения данных из блокчейна.
Возможны и другие области применения событий.
Чуть глубже в события
Сама запись в журнале EVM может состоять из двух частей:
- topic
- data
Topic – это 32-байтные слова, которые используются для описания того, что происходит в событии. Например, трансфер от одного адреса к другому.
Data – это закодированные данные. Например, количество токенов переданных при трансфере.
EVM предоставляет 5 opcodes для логирования событий в журнал.
LOG0, LOG1, LOG2, LOG3, LOG4
Каждый код операции (LOG0 … LOG4) служит для указания количества тем, которые необходимо включить в запись журнала. Например, LOG1 включает один topic, а LOG4 включает четыре topics. Таким образом, максимальное количество topics, которые могут быть включены в одну запись журнала, равно четырем.
Первый topic всегда является signature события с типами. Другими словами он представлен, как hash keccak(Transfer(address,address,uint256)). Таким образом для своих событий остается возможность добавить еще 3 параметра в topics.
В Solidity для того, чтобы указать, какой параметр необходимо добавить в topic используется ключевое слово indexed перед названием параметра. Например,
Transfer(address indexed from, address indexed to, uint256 value)
Получается, параметры параметры событий бывают двух типов:
1. indexed
2. non-indexed
Параметры с атрибутом indexed будут записаны в topic записи журнала EVM. Все остальные параметры автоматически становятся non-indexed и будут добавлены в специальную структуру данных(data) записи журнала EVM.
Для чего нужны indexed параметры?
Каждый indexed параметр создает topic. Этот параметр исключается из данных и не кодируется. По этому параметру можно обеспечить эффективный поиск. Для этого используются фильтры Блума.
P.S. Из цикла для приглашенных авторов.
Полную версию статьи можно почитать в репо команды MetaLamp. Добавляйте их wiki к себе в избранное и не пропускайте новые материалы.
#indexed #bloom #events
event Transfer(address from, address to, uint256 amount);
События в Solidity являются своего рода абстракцией над системой логирования для Ethereum Virtual Machine. DApps могут подписываться и слушать события через RPC-интерфейс клиента Ethereum. При отправке события, параметры сохраняются в специальный журнал транзакций.
Для чего нужны Events?
1. Прослушивание событий. Необходимо для оперативного реагирования на изменения во внешнем интерфейсе.
2. Для тестирования. В тестах можно получать события со смарт-контрактов с данными транзакции и проверять их.
3. Для восстановления состояния хранилища. Все события хранятся в журнале EVM и могут быть прочитаны.
4. Создание сабграфов. Для агрегации, конвертации и упрощения чтения данных из блокчейна.
Возможны и другие области применения событий.
Чуть глубже в события
Сама запись в журнале EVM может состоять из двух частей:
- topic
- data
Topic – это 32-байтные слова, которые используются для описания того, что происходит в событии. Например, трансфер от одного адреса к другому.
Data – это закодированные данные. Например, количество токенов переданных при трансфере.
EVM предоставляет 5 opcodes для логирования событий в журнал.
LOG0, LOG1, LOG2, LOG3, LOG4
Каждый код операции (LOG0 … LOG4) служит для указания количества тем, которые необходимо включить в запись журнала. Например, LOG1 включает один topic, а LOG4 включает четыре topics. Таким образом, максимальное количество topics, которые могут быть включены в одну запись журнала, равно четырем.
Первый topic всегда является signature события с типами. Другими словами он представлен, как hash keccak(Transfer(address,address,uint256)). Таким образом для своих событий остается возможность добавить еще 3 параметра в topics.
В Solidity для того, чтобы указать, какой параметр необходимо добавить в topic используется ключевое слово indexed перед названием параметра. Например,
Transfer(address indexed from, address indexed to, uint256 value)
Получается, параметры параметры событий бывают двух типов:
1. indexed
2. non-indexed
Параметры с атрибутом indexed будут записаны в topic записи журнала EVM. Все остальные параметры автоматически становятся non-indexed и будут добавлены в специальную структуру данных(data) записи журнала EVM.
Для чего нужны indexed параметры?
Каждый indexed параметр создает topic. Этот параметр исключается из данных и не кодируется. По этому параметру можно обеспечить эффективный поиск. Для этого используются фильтры Блума.
P.S. Из цикла для приглашенных авторов.
Полную версию статьи можно почитать в репо команды MetaLamp. Добавляйте их wiki к себе в избранное и не пропускайте новые материалы.
#indexed #bloom #events
🔥4❤1👏1
Function pointer как аргумент
Для начала посмотрите на код ниже:
В предыдущем примере у нас есть три функции. f1 - самая простая и возвращает то, что получает в аргументах.
f2 функция с function pointer a ожидает в качестве аргумента функцию со специальной сигнатурой.
В f3 мы вызываем функцию f2 и передаем функцию f1, как параметр. И в данном примере она просто вернет число 27.
Достаточно необычный и редкий формат функций в смарт контрактах. Даже в конкурсных аудитах за все время я встречал их один или два раза.
#function #pointer
Для начала посмотрите на код ниже:
contract FunctionPointer {
function f1(uint256 x) internal pure returns(uint256) {
return x;
}
function f2(function(uint256) internal pure returns(uint256) a) internal pure returns(uint256) {
return a(27);
}
function f3() public pure returns(uint256) {
return f2(f1);
}
}
В Solidity вы можете создавать функции, которые будут принимать другие функции в качестве аргументов. Они называются function pointer.В предыдущем примере у нас есть три функции. f1 - самая простая и возвращает то, что получает в аргументах.
f2 функция с function pointer a ожидает в качестве аргумента функцию со специальной сигнатурой.
В f3 мы вызываем функцию f2 и передаем функцию f1, как параметр. И в данном примере она просто вернет число 27.
Достаточно необычный и редкий формат функций в смарт контрактах. Даже в конкурсных аудитах за все время я встречал их один или два раза.
#function #pointer
👍3🔥2
ERC-1363: Payable Token
Стандарт ERC-1363 реализует расширение токена ERC-20 для выполнения произвольного кода сразу после вызова
Важно! Стандарт ERC-1363 является расширением стандарта ERC-20 и полностью обратно совместимым. То есть, он не переопределяет стандартные функции
Стандарт IERC1363.sol расширяет реализацию токена ERC-20 новыми функциями.
Для выполнения кода после вызова
P.S. Про другие стандарты, такие как ERC-165 и ERC-4337 можно почитать в wiki от студии web3 разработки MetaLamp.
#erc1363 #token
Стандарт ERC-1363 реализует расширение токена ERC-20 для выполнения произвольного кода сразу после вызова
transfer(), transferFrom() или approve() в рамках одной транзакции. Этот стандарт позволяет выполнить две транзакции в одной и избежать излишней оплаты за газ.Важно! Стандарт ERC-1363 является расширением стандарта ERC-20 и полностью обратно совместимым. То есть, он не переопределяет стандартные функции
transfer(), transferFrom() или approve().Стандарт IERC1363.sol расширяет реализацию токена ERC-20 новыми функциями.
interface IERC1363 is IERC20, IERC165 {
function transferAndCall(address to, uint256 amount) external returns (bool);
function transferAndCall(address to, uint256 amount, bytes calldata data) external returns (bool);
function transferFromAndCall(address from, address to, uint256 amount) external returns (bool);
function transferFromAndCall(address from, address to, uint256 amount, bytes calldata data) external returns (bool);
function approveAndCall(address spender, uint256 amount) external returns (bool);
function approveAndCall(address spender, uint256 amount, bytes calldata data) external returns (bool);
}
Работает это следующим образом: вызов любой из этих функций сначала выполняет вызов соответсвующей функции в ERC-20, а затем делает дополнительный вызов на адресе получателя токенов или кому выдавался approve(). Например, transferAndCall(), под капотом, делает стандартный вызов функции transfer(), а затем делает дополнительный вызов функции на адресе получателя токена.Для выполнения кода после вызова
transfer() или transferFrom() получатель токена должен быть контрактом и реализовывать интерфейс IERC1363Receiver.solinterface IERC1363Receiver {
function onTransferReceived(address spender, address sender, uint256 amount, bytes ?calldata data) external returns (bytes4);
}
Репозиторий и документация с примерами реализации стандарта от Vittorio Minacori, который является автором стандарта ERC-1363: Payable TokenP.S. Про другие стандарты, такие как ERC-165 и ERC-4337 можно почитать в wiki от студии web3 разработки MetaLamp.
#erc1363 #token
👍2
RACE #22 Of The Secureum Bootcamp Epoch
Не теряйте, у меня очень много событий сейчас происходит, что времени остаётся только на основной курс и немного на конкурсные аудиты. С понедельника уже пойдем по Foundry.
А сейчас хочу предложить вам немного попрактиковаться с кодом и пройти небольшой тест Race. В этот раз его написал Tincho - ментор Secureum, создатель Damn Vulnerable DeFi и The Red Guild.
Мини тест, как всегда прекрасен!
RACE #22 Of The Secureum Bootcamp Epoch
У кого сколько получилось?
#race
Не теряйте, у меня очень много событий сейчас происходит, что времени остаётся только на основной курс и немного на конкурсные аудиты. С понедельника уже пойдем по Foundry.
А сейчас хочу предложить вам немного попрактиковаться с кодом и пройти небольшой тест Race. В этот раз его написал Tincho - ментор Secureum, создатель Damn Vulnerable DeFi и The Red Guild.
Мини тест, как всегда прекрасен!
RACE #22 Of The Secureum Bootcamp Epoch
У кого сколько получилось?
#race
👍2
Foundry с нуля: Установка. Часть 0
С сегодняшнего дня мы постепенно начинаем изучать Foundry на канале.
Я готовлю проект на эту тему и хотел бы сам все повторить с нуля и разобраться в некоторых тонкостях тестирования смарт контрактов. Примерные темы, которые ожидаются можно найти в этом посте:
https://xn--r1a.website/solidityset/898
Как будет строиться прохождение?
Сначала пройдемся по документации Foundry, чтобы вы знали, что там представлено, и где найти информацию в случае необходимости. Поговорим об установке, о chisel и anvil, опишем некоторые cast команды и читкоды.
После этого уже приступим к самим тестам.
Я постараюсь к каждому посту, где будет идти речь о тестах, прикладывать файлы, для более визуального представление и практики.
В целом, хочется чтобы получился детальный цикл постов "от А до Я".
Установка Foundry
Сразу скажу, для того, чтобы работать с Foundry вам нужно будет знать Solidity, так как тесты для контрактов пишутся именно на этом языке.
Полный процесс установки можно найти по этой ссылке:
https://book.getfoundry.sh/getting-started/installation
Обычно установка может быть осуществлена с помощью простой команды:
curl -L https://foundry.paradigm.xyz | bash
Это установит FoundryUp - установщик Foundry, который после сможет обновлять и поддерживать среду с более простыми командами.
Нужно сказать, что FoundryUp пока не поддерживается терминалами CMD или PowerShell, которые идут в Windows, поэтому установка там чуть сложнее.
Для этого предусмотрен немного другой пошаговый гайд:
1. Скачиваем Rust и его пакетный менеджер Cargo:
https://www.rust-lang.org/learn/get-started
2. Скачиваем Visual Studio с опцией "Desktop Development With C++"
https://visualstudio.microsoft.com/downloads/
3. Ну, и Git Bash, если у кого еще нет:
https://gitforwindows.org/
После этого можно будет выполнить команду:
P.S. Для слабых и средних по мощности компьютеров весь процесс может занять до 1,5 - 2 часов!
Также для пользователей Docker есть возможность установки Foundry с командой:
https://book.getfoundry.sh/tutorials/foundry-docker
Проверить, что все установилось правильно можно попытавшись создать новый проект Foundry:
1. Создайте новую папку и откройте ее в редакторе кода;
2. В терминале редактора выполните команду: forge init
3. Если в папке появились файлы типа src, test, foundry.toml, то все ок. Если же нет - спрашивайте в чате совета или смотрите документацию.
Задание
1. Установить Foundry на свой компьютер.
#foundry #lesson0
С сегодняшнего дня мы постепенно начинаем изучать Foundry на канале.
Я готовлю проект на эту тему и хотел бы сам все повторить с нуля и разобраться в некоторых тонкостях тестирования смарт контрактов. Примерные темы, которые ожидаются можно найти в этом посте:
https://xn--r1a.website/solidityset/898
Как будет строиться прохождение?
Сначала пройдемся по документации Foundry, чтобы вы знали, что там представлено, и где найти информацию в случае необходимости. Поговорим об установке, о chisel и anvil, опишем некоторые cast команды и читкоды.
После этого уже приступим к самим тестам.
Я постараюсь к каждому посту, где будет идти речь о тестах, прикладывать файлы, для более визуального представление и практики.
В целом, хочется чтобы получился детальный цикл постов "от А до Я".
Установка Foundry
Сразу скажу, для того, чтобы работать с Foundry вам нужно будет знать Solidity, так как тесты для контрактов пишутся именно на этом языке.
Полный процесс установки можно найти по этой ссылке:
https://book.getfoundry.sh/getting-started/installation
Обычно установка может быть осуществлена с помощью простой команды:
curl -L https://foundry.paradigm.xyz | bash
Это установит FoundryUp - установщик Foundry, который после сможет обновлять и поддерживать среду с более простыми командами.
Нужно сказать, что FoundryUp пока не поддерживается терминалами CMD или PowerShell, которые идут в Windows, поэтому установка там чуть сложнее.
Для этого предусмотрен немного другой пошаговый гайд:
1. Скачиваем Rust и его пакетный менеджер Cargo:
https://www.rust-lang.org/learn/get-started
2. Скачиваем Visual Studio с опцией "Desktop Development With C++"
https://visualstudio.microsoft.com/downloads/
3. Ну, и Git Bash, если у кого еще нет:
https://gitforwindows.org/
После этого можно будет выполнить команду:
cargo install --git https://github.com/foundry-rs/foundry --profile local --locked forge cast chisel anvilкоторая и установит Foundry на ваш компьютер.
P.S. Для слабых и средних по мощности компьютеров весь процесс может занять до 1,5 - 2 часов!
Также для пользователей Docker есть возможность установки Foundry с командой:
docker pull ghcr.io/foundry-rs/foundry:latestЯ сам не особо работал с Docker, поэтому более детальные гайды по нему можно прочитать тут:
https://book.getfoundry.sh/tutorials/foundry-docker
Проверить, что все установилось правильно можно попытавшись создать новый проект Foundry:
1. Создайте новую папку и откройте ее в редакторе кода;
2. В терминале редактора выполните команду: forge init
3. Если в папке появились файлы типа src, test, foundry.toml, то все ок. Если же нет - спрашивайте в чате совета или смотрите документацию.
Задание
1. Установить Foundry на свой компьютер.
#foundry #lesson0
🔥7👍4❤1
Foundry с 0. Часть 1
Теперь давайте кратко поговорим о том, что установилось у нас вместе с Foundry.
Во-первых, это Cast - специальный инструмент для исполнения RPC вызовов в сети Эфириум.
RPC, от Remote Procedure Call, это протокол удаленного вызова процедур в Эфире: вы можете отправлять транзакции, делать вызовы в смарт контрактах, "доставать" какую-либо информацию из блокчейна - и все это с помощью командной строки в терминале!
Например, выполнив следующую команду:
cast call 0x6b175474e89094c44da98b954eedeac495271d0f "totalSupply()(uint256)" --rpc-url https://eth-mainnet.alchemyapi.io/v2/Lc7oIGYeL_QvInzI0Wiu_pOZZDEKBrdf
8603853182003814300330472690
мы узнаем значение totalSupply у токена DAI. И нам не потребуется посещать другие сайты или использовать API для выполнения этой задачи.
Cast командам будут посвящены отдельные посты, а сейчас пойдем дальше.
Во-вторых, у нас установился Anvil.
Anvil - это локальный тестовый узел блокчейна, который идет только с Foundry. Служит для проведения тестов для ваших смарт контрактов.
P.S. Некоторые антивирусы, например Касперский, ругаются на Anvil по какой-то причине. Поискав в сети, никаких претензий к Anvil по теме безопасности системы я не нашел, поэтому просто поставил его в "доверие" к антивирусу.
В-третьих, также загрузился Chisel.
Chisel - это продвинутый Solidity REPL (read-eval-print loop: программа, которая работает как командная оболочка).
Для меня самого Chisel остается некоторой загадкой, поэтому в свое время будем разбираться с ним вместе.
Если я правильно понимаю на данный момент, с Chisel вы сможете выполнять код Solidity прямо в терминале.
В следующей части мы поговорим о Cast командах, а потом затронем Chisel, так как первый - порой требуется для проведения тестов, со вторым - думаю, можно будет проще проверять некоторые вводные данные.
#foundry #lesson1
Теперь давайте кратко поговорим о том, что установилось у нас вместе с Foundry.
Во-первых, это Cast - специальный инструмент для исполнения RPC вызовов в сети Эфириум.
RPC, от Remote Procedure Call, это протокол удаленного вызова процедур в Эфире: вы можете отправлять транзакции, делать вызовы в смарт контрактах, "доставать" какую-либо информацию из блокчейна - и все это с помощью командной строки в терминале!
Например, выполнив следующую команду:
cast call 0x6b175474e89094c44da98b954eedeac495271d0f "totalSupply()(uint256)" --rpc-url https://eth-mainnet.alchemyapi.io/v2/Lc7oIGYeL_QvInzI0Wiu_pOZZDEKBrdf
8603853182003814300330472690
мы узнаем значение totalSupply у токена DAI. И нам не потребуется посещать другие сайты или использовать API для выполнения этой задачи.
Cast командам будут посвящены отдельные посты, а сейчас пойдем дальше.
Во-вторых, у нас установился Anvil.
Anvil - это локальный тестовый узел блокчейна, который идет только с Foundry. Служит для проведения тестов для ваших смарт контрактов.
P.S. Некоторые антивирусы, например Касперский, ругаются на Anvil по какой-то причине. Поискав в сети, никаких претензий к Anvil по теме безопасности системы я не нашел, поэтому просто поставил его в "доверие" к антивирусу.
В-третьих, также загрузился Chisel.
Chisel - это продвинутый Solidity REPL (read-eval-print loop: программа, которая работает как командная оболочка).
Для меня самого Chisel остается некоторой загадкой, поэтому в свое время будем разбираться с ним вместе.
Если я правильно понимаю на данный момент, с Chisel вы сможете выполнять код Solidity прямо в терминале.
В следующей части мы поговорим о Cast командах, а потом затронем Chisel, так как первый - порой требуется для проведения тестов, со вторым - думаю, можно будет проще проверять некоторые вводные данные.
#foundry #lesson1
👍7🔥5❤1