Solidity. Смарт контракты и аудит
2.62K subscribers
246 photos
7 videos
18 files
547 links
Обучение Solidity. Уроки, аудит, разбор кода и популярных сервисов
Download Telegram
Подготовка к тестам

Вчера мне потребовалось время, чтобы разобраться с настройкой Python, так как никогда ранее не работал с ним, и появились вопросы по использованию библиотек в проекте. Но сейчас не об этом.

Зачем нам Python в смарт контрактах?

А затем, что популярные программы для анализа контрактов, типа Slither или Mythril, написаны на питоне. Поэтому дальше пост будет для тех, кто НЕ знаком с ним, и краткий для тех, кто имел с ним дело.

Для работающих с Python

Проверьте, чтобы была установлена версия выше 3.10, а также установлен pip3.

Для новичков

1. Для начала нужно скачать сам Python. При этом следите, чтобы версия была ^3.0.

Скачать можно с официального сайта тут (https://www.python.org/downloads/).

2. Затем проверьте, чтобы он у вас правильно установился и имел в своем распоряжении pip3, выполнив команды:

$ python --version
$ pip3 -- version

Там должен появиться номер установленной версии.

3. Далее рекомендуется установить компилятор для Solidity, на случай работы с разными его версиями. Это можно сделать командой:

$ pip3 install solc-select

И вот тут могут пойти проблемы.

У меня постоянно возникала ошибка "running setup.py install for pysha3 did not run successfully". Я попробовал разные советы, которые находил в гугле, но помог только один.

Нужно скачать и установить Visual Studio Build Tools 2022 (пакеты С++).

После этого еще раз попробовать выполнить команду в консоли:

$ pip3 install solc-select

Если и тут не выходит, то попробуйте так:

$ pip3 install solc-select --user

После этого у меня все заработало. Я не знаю этот язык и работу с ним. Поэтому, если вы знаете, в чем были проблемы, можете в комментариях помочь другим участникам советом или гайдом. Далее переходим к самим программам.

#python #pip3
👍1
Подготовка рабочей среды для тестов

Нам потребуются несколько программ для тестов, которые следует установить через консоль. О самих программах в последующих постах подробнее.

Slither - pip3 install slither-analyzer

Mythril - pip3 install mythril

Manticore - pip install manticore

Есть и другие программы, типа Echidna или MythX, но для начала рассмотрим только указанные три.

Проверить правильность их установки можно командой

pip list

Далее, по совету друга разработчика, можно создать файл и рабочую среду, чтобы использовать эти программы не глобально, а на конкретном проекте.

Для этого создаем файл requirements.txt, куда записываем необходимые программы, которые планируем использовать в своем проекте, по типу:

solc-select== 1.0.1
slither-analyzer==0.9.0

и сохраняем файл. Можно в директории проекта.

Затем выполняем команду для создания виртуального окружения:

python -m venv venv

Потом активируем:

source venv/scripts/activate

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

И в конце выполняем подключение программ в проект:

pip install -r requirements.txt

Теперь проверить, что все у вас подключилось правильно, можно, выполнив, например, такую команду:

slither --help

Если появятся длинный список команда и опций, то все ок. Если нет - постарайтесь пройти все шаги заново.

#python #pip3 #venv
👍1