Truffle — это среда разработки, среда тестирования и конвейер активов для блокчейнов с использованием виртуальной машины Ethereum (EVM).

В этой статье мы увидим, как начать использовать Truffle для написания, компиляции, тестирования и развертывания смарт-контрактов, работающих на блокчейне.

Установка трюфеля

Для начала нам нужно установить Truffle на наш компьютер с помощью npm. Откройте терминал и используйте следующую команду, чтобы установить его глобально.

npm install -g truffle

Создайте папку для вашего нового проекта трюфеля и инициализируйте его с помощью команды, указанной ниже.

truffle init

После завершения этой операции у вас будет структура проекта со следующими элементами:

  • contracts/: Папка для контрактов Solidity
  • migrations/: папка для файлов развертывания с поддержкой сценариев
  • 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.

Чтобы объяснить этот тестовый код вкратце

  1. «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.

  1. Запустите трюфельную разработку:
truffle develop

migrate

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

Сделанный!!! Вот как скомпилировать, протестировать и развернуть смарт-контракт.

Полный код вы можете найти здесь.

Спасибо, что прочитали эту статью ❤

Хлопайте 👏 Если вам поможет эта статья.

Свяжитесь со мной в LinkedIn и GitHub.