# Surfboard
Surfboard — интерфейс командной строки для работы с Ride и блокчейном Waves.
Возможности Surfboard:
- Компиляция смарт-контрактов на языке Ride.
- Интерактивная консоль Ride REPL.
- Запуск JavaScript-тестов и скриптов.
Surfboard из коробки поддерживает функции для взаимодействия с блокчейном Waves: подписание и отправку транзакций, чтение данных блокчейна, работу с ключами аккаунта и др. См. Список функций js-test-env.
# Установка и настройка
Скачайте и установите Node.js: https://nodejs.org/en/download/.
Установите Surfboard:
npm i -g @waves/surfboard@latest
💡 Бета-версия Surfboard поддерживает новые функции протокола Waves, доступные только на Stagenet:
npm i -g @waves/surfboard@beta
Создайте пустую папку и выполните в ней команду:
surfboard init
Эта команда создает структуру проекта:
- папку
ride
с примером Ride-скрипта; - папку
script
с примером JS-скрипта, который устанавливает скрипт на аккаунт. - папку
test
с примером JS-теста. - файл настроек для работы с блокчейном
surfboarf.config.json
.
Чтобы изменить настройки, отредактируйте файл surfboarf.config.json
или используйте команду:
surfboard config:change KEY VALUE
- Файл настроек поддерживает несколько сред. Укажите среду по умолчанию в параметре
defaultEnv
. - Если требуется, измените сеть блокчейна URL ноды.
- Укажите секретную фразу (seed) аккаунта.
💡 Работа с локальной нодой описана в статье Как строить, развертывать и тестировать Waves RIDE dApp.
# Компиляция Ride-скрипта
Написать код скрипта можно в любом текстовом редакторе — например, в Visual Studio Code с расширением Ride.
Перед установкой скрипта на аккаунт или ассет его необходимо скомпилировать. Для компиляции используйте встроенную JS-функцию compile
(пример JS-скрипта вы найдете в папке script
), или команду:
surfboard compile FILE
Например, команда:
surfboard compile ride/wallet.ride > wallet.compiled
скомпилирует пример Ride-скрипта и запишет его в файл wallet.compiled в кодировке base64. В таком виде его можно указать в транзакции установки скрипта.
# Установка скрипта
Отправить транзакцию установки dApp-скрипта, скрипта аккаунта или скрипта ассета можно с помощью JS-скрипта или JS-теста. Для запуска скрипта используйте команду:
surfboard run FILE
Например, команда
surfboard run scripts/wallet.deploy.js --variables 'dappSeed=insert your seed here'
выполнит встроенный пример JS-скрипта, который компилирует Ride-скрипт и отправляет транзакцию установки скрипта с аккаунта, секретная фраза которого указана в переменной dappSeed
.
# Запуск тестов
В JS-тестах поддерживаются функции describe
, before
, it
, expect
и другие функции библиотек mocha и chai. Пример JS-теста вы найдете в папке test
.
Для запуска теста используйте команду:
surfboard test FILE
# Ride REPL: интерактивная консоль Ride
В консоли Ride REPL можно ввести любое выражение на языке Ride и сразу увидеть результат.
Чтобы запустить Ride REPL, выполните команду:
surfboard repl
💡 Команда .editor
активирует многострочный режим, в котором можно ввести сразу несколько определений или вставить большой блок кода.
Чтобы выйти из режима REPL, выполните команду .exit
.
# Все команды
Список команд Surfboard приведен в репозитории Surfboard на GihHub.