waves_logo Docs
  • Обзор
    Обзор
  • Практические руководства
    • Получение данных из блокчейна
      Получение данных из блокчейна
    • Создание и отправка транзакций
      Создание и отправка транзакций
    • Токенизация
      Токенизация
    • Распространение токена (airdrop)
      Распространение токена (airdrop)
    • Прием платежей
      Прием платежей
    • Обмен токенов
      Обмен токенов
    • Простое голосование
      Простое голосование
    • Список как аргумент
      Список как аргумент
    Практические руководства
  • Смарт-контракты Waves
    Смарт-контракты Waves
  • dApp
    • Создание и запуск dApp
      Создание и запуск dApp
    dApp
  • Cмарт-аккаунт
    • Создание смарт-аккаунта
      Создание смарт-аккаунта
    • [en] Creating and deploying a script manually
      [en] Creating and deploying a script manually
    • [en] Video tutorials
      [en] Video tutorials
    Cмарт-аккаунт
  • Cмарт-ассет
    Cмарт-ассет
  • Инструменты разработчика
    • Waves IDE
      Waves IDE
    • Расширение для VS Code
      Расширение для VS Code
    • Surfboard
      Surfboard
    • Ride REPL
      Ride REPL
    Инструменты разработчика
  • Signer ◆
    Signer ◆
  • Waves API
    • Data Service API
      Data Service API
    • Node REST API 🡥
      Node REST API 🡥
    • Node gRPC Server 🡥
      Node gRPC Server 🡥
    • Blockchain Updates 🡥
      Blockchain Updates 🡥
    Waves API
  • Клиентские библиотеки
    • Waves C#
      • Установка SDK
        Установка SDK
      • Запуск кода
        • Отправка транзакций
          Отправка транзакций
        • Использование криптографических утилит
          Использование криптографических утилит
        • Взаимодействие с нодой
          Взаимодействие с нодой
        • Развертывание смарт-контрактов
          Развертывание смарт-контрактов
        Запуск кода
      Waves C#
    • Gowaves
      • Установка SDK
        Установка SDK
      • Запуск кода
        • Отправка транзакций
          Отправка транзакций
        • Использование криптографических утилит
          Использование криптографических утилит
        • Взаимодействие с нодой
          Взаимодействие с нодой
        • Развертывание смарт-контрактов
          Развертывание смарт-контрактов
        Запуск кода
      Gowaves
    • WavesJ
      • Установка SDK
        Установка SDK
      • Запуск кода
        • Отправка транзакций
          Отправка транзакций
        • Использование криптографических утилит
          Использование криптографических утилит
        • Взаимодействие с нодой
          Взаимодействие с нодой
        • Развертывание смарт-контрактов
          Развертывание смарт-контрактов
        Запуск кода
      WavesJ
    • Ts-lib-crypto
      • Установка SDK
        Установка SDK
      Ts-lib-crypto
    • Waves-PHP
      • Установка SDK
        Установка SDK
      Waves-PHP
    • PyWaves-CE
      • Установка SDK
        Установка SDK
      PyWaves-CE
    • Waves-rust
      • Установка SDK
        Установка SDK
      Waves-rust
    Клиентские библиотеки
      • English
      • Русский
      On this page
        • Установка и настройка
        • Компиляция Ride-скрипта
        • Установка скрипта
        • Запуск тестов
        • Ride REPL: интерактивная консоль Ride
        • Все команды
      waves_logo Docs

          # Surfboard

          Surfboard — интерфейс командной строки для работы с Ride и блокчейном Waves.

          Возможности Surfboard:

          • Компиляция смарт-контрактов на языке Ride.
          • Интерактивная консоль Ride REPL.
          • Запуск JavaScript-тестов и скриптов.

          Surfboard из коробки поддерживает функции для взаимодействия с блокчейном Waves: подписание и отправку транзакций, чтение данных блокчейна, работу с ключами аккаунта и др. См. Список функций js-test-env .

          # Установка и настройка

          1. Скачайте и установите Node.js: https://nodejs.org/en/download/ .

          2. Установите Surfboard:

            npm i -g @waves/surfboard@latest
            

            💡 Бета-версия Surfboard поддерживает новые функции протокола Waves, доступные только на Stagenet:

            npm i -g @waves/surfboard@beta
            
          3. Создайте пустую папку и выполните в ней команду:

            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.

          Подробнее о Ride REPL

          # Все команды

          Список команд Surfboard приведен в репозитории Surfboard на GihHub.

          Расширение для VS Code
          Ride REPL
          Расширение для VS Code
          Ride REPL