Приступаем к работе

Внимание: Содержимое этой страницы устарело и требует доработки. Новая версия Move IDE будет опубликована в ближайшее время. На данный момент я рекомендую вам использовать move-cli.


Как и в случае с любым компилируемым языком, вам нужен правильный набор инструментов для компиляции, запуска и отладки ваших приложений Move. Поскольку этот язык создан для блокчейнов и используется только внутри них, запуск скриптов вне блокчейна — нетривиальная задача: для каждого модуля потребуется среда, обработка учетных записей и система компиляции-публикации.

Чтобы упростить разработку модулей Move, я создал расширение Move IDE для Visual Studio Code. Это расширение поможет вам справиться с требованиями среды. Настоятельно рекомендуется использовать это расширение, поскольку оно будет обрабатывать среду сборки/запуска за вас и, следовательно, позволит вам сосредоточиться на изучении языка Move вместо того, чтобы бороться с интерфейсом командной строки. Это расширение также включает в себя подсветку синтаксиса Move и исполнитель, чтобы помочь отладить ваши приложения перед публикацией.

Установка Move IDE

Для его установки вам понадобится:

  1. VSCode (версия 1.43.0 или выше) - вы можете получить его здесь; если он у вас уже есть - переходите к следующему шагу;;
  2. Move IDE - после установки VSCode перейдите по этой ссылке чтобы установить новейшую версию IDE.

Настройка среды

Move IDE предлагает единый способ организации вашей структуры каталогов. Создайте новый каталог для своего проекта и откройте его в VSCode. Затем настройте эту структуру каталогов:

modules/   - каталог для наших модулей
scripts/   - каталог для скриптов транзакций
out/       - этот каталог будет содержать скомпилированные исходники

Также вам нужно создать файл с именем .mvconfig.json который будет настраивать вашу рабочую среду. Это образец для for libra:

{
    "network": "libra",
    "sender": "0x1"
}

В качестве альтернативы вы можете использовать dfinance как network:

{
    "network": "dfinance",
    "sender": "0x1"
}

dfinance использует адреса bech32 'wallet1...', libra использует 16-байтовые '0x...' адреса. Для локальных запусков и экспериментов достаточно адреса 0x1 - он простой и короткий. Однако при работе с реальными блокчейнами в тестовой сети или производственной среде вам придется использовать правильный адрес выбранной вами сети.

Ваше самое первое приложение на Move

Move IDE позволяет запускать скрипты в тестовой среде. Давайте посмотрим, как это работает, реализовав функцию gimme_five() и запустив ее внутри VSCode.

Создаем модуль

Создайте новый файл с именем hello_world.move внутри каталога modules/ вашего проекта.

// modules/hello_world.move
address 0x1 {
module HelloWorld {
    public fun gimme_five(): u8 {
        5
    }
}
}

Если вы решили использовать свой собственный адрес (не 0x1) - убедитесь, что вы изменили 0x1 в этом файле и в том, что ниже

Пишем скрипт

Затем внутри каталога scripts/ создадим скрипт me.move:

// scripts/run_hello.move
script {
    use 0x1::HelloWorld;
    use 0x1::Debug;

    fun main() {
        let five = HelloWorld::gimme_five();

        Debug::print<u8>(&five);
    }
}

Затем, не закрывая скрипт в редакторе, выполните следующие действия:

  1. Переключите палитру команд VSCode, нажав ⌘+Shift+P (на Mac) или Ctrl+Shift+P (на Linux/Windows)
  2. Введите: >Move: Run Script и нажмите enter или щелкните, когда увидите нужный вариант.

Вуаля! Вы должны увидеть сообщение в логах с результатом "5", напечатанным в debug. Если вы не видите этого окна, пройдите эту часть еще раз.

Ваша структура каталогов должна выглядеть так:

modules/
  hello_world.move
scripts/
  run_hello.move
out/
.mvconfig.json

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