Truffle — это среда разработки, среда тестирования и конвейер активов для блокчейнов с использованием виртуальной машины Ethereum (EVM).
В этой статье мы увидим, как начать использовать Truffle для написания, компиляции, тестирования и развертывания смарт-контрактов, работающих на блокчейне.
Установка трюфеля
Для начала нам нужно установить Truffle на наш компьютер с помощью npm. Откройте терминал и используйте следующую команду, чтобы установить его глобально.
npm install -g truffle
Создайте папку для вашего нового проекта трюфеля и инициализируйте его с помощью команды, указанной ниже.
truffle init
После завершения этой операции у вас будет структура проекта со следующими элементами:
contracts/
: Папка для контрактов Soliditymigrations/
: папка для файлов развертывания с поддержкой сценариевtest/
: папка для тестовых файлов для тестирования вашего приложения и контрактовtruffle.js
: Файл конфигурации Truffle
На данный момент все, что мы собираемся сделать, это раскомментировать часть файла конфигурации (truffle-config.js), в которой мы определяем используемую сеть.
Написать смарт-контракт
Вы можете написать смарт-контракт в файле с расширением .sol и сохранить его в папке с контрактами или вставить существующий смарт-контракт из Remix IDE.
У меня есть еще одна статья о написании смарт-контрактов в Solidity по ссылке здесь.
Компиляция
Затем мы скомпилируем наш код с помощью следующей команды, и вы увидите папку сборки в каталоге нашего проекта после компиляции.
truffle compile
Артефакты контрактов Truffle — это большие файлы JSON, которые сохраняются в вашем каталоге build/contracts/. Truffle сохраняет наши артефакты при компиляции и обновляет наши артефакты информацией об адресах при миграции.
Тест
Truffle позволяет писать тесты на Javascript и Solidity. Он использует тестовую среду Mocha для тестирования смарт-контракта. Все тестовые файлы должны находиться в каталоге ./test
. Truffle запускает тестовые файлы только со следующими расширениями: .js
, .ts
, .es
, .es6
, .jsx
, .sol
. Все остальные файлы игнорируются.
Нам нужно явно запросить контракты для взаимодействия с вашим тестом. Мы можем сделать это, используя метод artifacts.require()
, метод, предоставляемый Truffle, который позволяет нам запрашивать пригодную для использования абстракцию контракта для конкретного контракта Solidity.
Чтобы объяснить этот тестовый код вкратце
- «contract()» — это то же самое, что и «describe()» в мокко.
2. ‘it()’ используется для создания теста.
3. Разворачивает контракт.
4. Получите значение переменной «updatedData».
5. Используйте assert.equal(), чтобы проверить, совпадает ли ожидаемый результат с фактическим.
Чтобы запустить все тесты, просто запустите:
truffle test
or
truffle test ./path/to/test/file.js
Развертывать
Функция развертывания
Все миграции должны экспортировать функцию с использованием синтаксиса module.exports
. Функция, экспортируемая каждой миграцией, должна принимать объект deployer
в качестве своего первого параметра. Объект deployer
— это ваш основной интерфейс для промежуточных задач развертывания.
Чтобы развернуть наши смарт-контракты, нам нужно будет подключиться к блокчейну. Truffle имеет встроенный персональный блокчейн, который можно использовать для тестирования. Этот блокчейн является локальным для вашей системы и не взаимодействует с основной сетью Ethereum.
Вы можете создать этот блокчейн и взаимодействовать с ним с помощью Truffle Develop.
- Запустите трюфельную разработку:
truffle develop
migrate
Вы можете использовать эти идентификаторы и адреса для создания и подключения к пользовательскому интерфейсу или разработки Dapp.
Сделанный!!! Вот как скомпилировать, протестировать и развернуть смарт-контракт.
Полный код вы можете найти здесь.
Спасибо, что прочитали эту статью ❤
Хлопайте 👏 Если вам поможет эта статья.