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
        • Требования
        • Руководство
      waves_logo Docs

          # Отправка транзакций

          Убедитесь в выполнении требований для отправки транзакций.

          # Требования

          • Кошелёк: Создайте кошелёк с помощью Keeper Wallet или WX Network .

            Примечание: Сохраните сид-фразу кошелька для отправки транзакций.

          • Токены: Получите токены WAVES для оплаты комиссии каждой транзакции:
            • Для сети Mainnet: Приобретите 0.001 WAVES через доступные способы пополнения кошелька .
            • Для сети Testnet: Приобретите 0.001 WAVES через Faucet .
            • Для сети Stagenet: Приобретите 0.001 WAVES через Faucet .

          # Руководство

          Выполните шаги инструкции для необходимого типа транзакции:

          • Issue.
          • Reissue.
          • Burn.
          • Transfer.
          • Mass Transfer.
          • Exchange.
          • Lease.
          • Lease Cancel.
          • Create Alias.
          • Data.
          • Set Script.
          • Set Asset Script.
          • Update Asset Info.
          • Invoke Script.
          • Sponsor Fee.

          # Issue

          О транзакции Issue.

          В директории проекта:

          1. Замените содержимое файла Main.java следующим блоком кода:
            package com.example;
            
            // Необходимые импорты.
            import com.wavesplatform.transactions.IssueTransaction;
            import com.wavesplatform.transactions.account.PrivateKey;
            import com.wavesplatform.transactions.account.Address;
            import com.wavesplatform.transactions.common.ChainId;
            import com.wavesplatform.transactions.common.Base64String;
            import com.wavesplatform.wavesj.Node;
            import com.wavesplatform.wavesj.ScriptInfo;
            
            public class IssueTx {
                public static void main(String[] args) throws Exception {
                    // Укажите сид-фразу вашего кошелька.
                    String seedPhrase = "УКАЖИТЕ СИД-ФРАЗУ";
            
                    // Генерация приватного ключа.
                    PrivateKey privateKey = PrivateKey.fromSeed(seedPhrase);
            
                    /* 
                     * Укажите ID сети:
                     * - Mainnet: `MAINNET`
                     * - Testnet: `TESTNET`
                     * - Stagenet: `STAGENET`
                     */
                    byte networkChainId = ChainId.TESTNET;
            
                    /*
                     * Укажите ссылку на сеть:
                     * - Mainnet: "https://nodes.wavesnodes.com/"
                     * - Testnet: "https://nodes-testnet.wavesnodes.com/"
                     * - Stagenet: "https://nodes-stagenet.wavesnodes.com/"
                     */
                    Node node = new Node("https://nodes-testnet.wavesnodes.com");
            
                    // Укажите Ride-скрипт ассета.
                    String scriptSource = 
                        "{-# STDLIB_VERSION 6 #-}\n" +
                        "{-# CONTENT_TYPE EXPRESSION #-}\n" +
                        "{-# SCRIPT_TYPE ASSET #-}\n\n" +
                        "func trueReturner() = {\n" +
                        "    true\n" +
                        "}\n\n" +
                        "trueReturner()"; // Пример Ride-скрипта.
            
                    // Компиляция Ride-скрипта
                    ScriptInfo compiled = node.compileScript(scriptSource);
            
                    // Получение скомпилированного скрипта в качестве base64-строки.
                    Base64String scriptBase64 = compiled.script();
            
                    // Создание транзакции Issue.
                    IssueTransaction tx = IssueTransaction
                        .builder(
                            "TOKEN_NAME",                 // Наименование токена.
                            1_00000000L,                  // Количество в наименьшей единице. Например: `1_00000000L` для 1 токена.
                            (byte)8                       // Знаков после запятой.
                        )
                        .description("TOKEN_DESCRIPTION") // Описание токена.
                        .isReissuable(true)               // Флаг, указывающий на возможность повторного выпуска актива.
                        .fee(1_00000000L)                 // Комиссия за транзакцию в наименьшей единице. Например: `1_00000000L` для 1 WAVES.
                        .chainId(networkChainId)          // ID сети.
                        .script(scriptBase64)             // Скомпилированный скрипт. Для выпуска актива без скрипта - удалите вызов метода `.script()`.
                        .getSignedWith(privateKey);       // Приватный ключ отправителя.
            
                    // Отправка транзакции на ноду.
                    node.broadcast(tx);
            
                    // Контекст для отмены выполнения запроса по таймауту.
                    Thread.sleep(5000);
            
                    // Получение информации о транзакции от ноды.
                    Address address = Address.from(networkChainId, privateKey.publicKey());
                    System.out.println("Адрес: " + address);
                    System.out.println("ID транзакции: " + tx.id());
                    System.out.println("JSON-данные транзакции: " + tx.toJson());
                }
            }
            
          2. В файле Main.java запустите класс IssueTx.

          # Reissue

          О транзакции Reissue.

          Обратите внимание: Вы можете перевевыпустить только ассет, созданный вами с флагом перевыпускаемости (reissue) со значением true.

          В директории проекта:

          1. Замените содержимое файла Main.java следующим блоком кода:
            package com.example;
            
            // Необходимые импорты.
            import java.time.Instant;
            import com.wavesplatform.transactions.ReissueTransaction;
            import com.wavesplatform.transactions.account.PrivateKey;
            import com.wavesplatform.transactions.account.Address;
            import com.wavesplatform.transactions.common.ChainId;
            import com.wavesplatform.transactions.common.AssetId;
            import com.wavesplatform.transactions.common.Amount;
            import com.wavesplatform.wavesj.Node;
            
            public class ReissueTx {
                public static void main(String[] args) throws Exception {
                    // Укажите сид-фразу вашего аккаунта.
                    String seedPhrase = "УКАЖИТЕ СИД-ФРАЗУ";
            
                    // Генерация приватного ключа из сид-фразы.
                    PrivateKey privateKey = PrivateKey.fromSeed(seedPhrase);
            
                    /* 
                     * Укажите ID сети:
                     * - Mainnet: `MAINNET`
                     * - Testnet: `TESTNET`
                     * - Stagenet: `STAGENET`
                     */
                    byte networkChainId = ChainId.TESTNET;
            
                    /*
                     * Укажите ссылку на сеть:
                     * - Mainnet: "https://nodes.wavesnodes.com/"
                     * - Testnet: "https://nodes-testnet.wavesnodes.com/"
                     * - Stagenet: "https://nodes-stagenet.wavesnodes.com/"
                     */
                    Node node = new Node("https://nodes-testnet.wavesnodes.com");
            
                    // Укажите ID выпущенного вами актива.
                    AssetId assetId = AssetId.as("УКАЖИТЕ ID АКТИВА");
            
                    // Укажите количество токена для перевыпуска в наименьшей единицы.
                    Amount amount = new Amount(100000000L, assetId); // Например: `100000000L` для 1 токена.
            
                    // Создание транзакции Reissue.
                    ReissueTransaction tx = ReissueTransaction
                        .builder(amount)                         // Количество токена для перевыпуска.
                        .fee(100000L)                            // Комиссия в WAVES.
                        .timestamp(Instant.now().toEpochMilli()) // Временная метка.
                        .chainId(networkChainId)                 // ID сети.
                        .getSignedWith(privateKey);              // Приватный ключ отправителя.
            
                    // Отправка транзакции на ноду.
                    node.broadcast(tx);
            
                    // Контекст для отмены выполнения запроса по таймауту.
                    Thread.sleep(5000);
            
                    // Получение информации о транзакции от ноды.
                    Address address = Address.from(networkChainId, privateKey.publicKey());
                    System.out.println("Адрес: " + address);
                    System.out.println("ID транзакции: " + tx.id());
                    System.out.println("JSON-данные транзакции: " + tx.toJson());
                }
            }
            
          2. В файле Main.java запустите класс ReissueTx.

          # Burn

          О транзакции Burn.

          В директории проекта:

          1. Замените содержимое файла Main.java следующим блоком кода:
            package com.example;
            
            // Необходимые импорты.
            import java.time.Instant;
            import com.wavesplatform.transactions.BurnTransaction;
            import com.wavesplatform.transactions.account.PrivateKey;
            import com.wavesplatform.transactions.account.Address;
            import com.wavesplatform.transactions.common.ChainId;
            import com.wavesplatform.transactions.common.AssetId;
            import com.wavesplatform.transactions.common.Amount;
            import com.wavesplatform.wavesj.Node;
            
            public class BurnTx {
                public static void main(String[] args) throws Exception {
                    // Укажите сид-фразу вашего аккаунта.
                    String seedPhrase = "УКАЖИТЕ СИД-ФРАЗУ";
            
                    // Генерация приватного ключа из сид-фразы.
                    PrivateKey privateKey = PrivateKey.fromSeed(seedPhrase);
            
                    /* 
                     * Укажите ID сети:
                     * - Mainnet: `MAINNET`
                     * - Testnet: `TESTNET`
                     * - Stagenet: `STAGENET`
                     */
                    byte networkChainId = ChainId.TESTNET;
            
                    /*
                     * Укажите ссылку на сеть:
                     * - Mainnet: "https://nodes.wavesnodes.com/"
                     * - Testnet: "https://nodes-testnet.wavesnodes.com/"
                     * - Stagenet: "https://nodes-stagenet.wavesnodes.com/"
                     */
                    Node node = new Node("https://nodes-testnet.wavesnodes.com");
            
                    // Укажите ID сжигаемого ассета.
                    AssetId assetId = AssetId.as("УКАЖИТЕ ID АКТИВА");
            
                    // Укажите количество токена для сжигания в наименьшей единицы.
                    Amount amount = new Amount(100000000L, assetId); // Например: `100000000L` для 1 токена.
            
                    // Создание транзакции Burn.
                    BurnTransaction tx = BurnTransaction
                        .builder(amount)                         // Количество токена.
                        .fee(100000L)                            // Комиссия в WAVES.
                        .timestamp(Instant.now().toEpochMilli()) // Временная метка.
                        .chainId(networkChainId)                 // ID сети.
                        .getSignedWith(privateKey);              // Приватный ключ отправителя.
            
                    // Отправка транзакции на ноду.
                    node.broadcast(tx);
            
                    // Контекст для отмены выполнения запроса по таймауту.
                    Thread.sleep(5000);
            
                    // Получение информации о транзакции от ноды.
                    Address address = Address.from(networkChainId, privateKey.publicKey());
                    System.out.println("Адрес: " + address);
                    System.out.println("ID транзакции: " + tx.id());
                    System.out.println("JSON-данные транзакции: " + tx.toJson());
                }
            }
            
          2. В файле Main.java запустите класс BurnTx.

          # Transfer

          О транзакции Transfer.

          В директории проекта:

          1. Замените содержимое файла Main.java следующим блоком кода:
            package com.example;
            
            // Необходимые импорты.
            import java.time.Instant;
            import com.wavesplatform.transactions.TransferTransaction;
            import com.wavesplatform.transactions.account.PrivateKey;
            import com.wavesplatform.transactions.account.Address;
            import com.wavesplatform.transactions.common.ChainId;
            import com.wavesplatform.transactions.common.AssetId;
            import com.wavesplatform.transactions.common.Amount;
            import com.wavesplatform.wavesj.Node;
            
            public class TransferTx {
                public static void main(String[] args) throws Exception {
                    // Укажите сид-фразу вашего аккаунта.
                    String seedPhrase = "УКАЖИТЕ СИД-ФРАЗУ";
            
                    // Генерация приватного ключа из сид-фразы.
                    PrivateKey privateKey = PrivateKey.fromSeed(seedPhrase);
            
                    /* 
                     * Укажите ID сети:
                     * - Mainnet: `MAINNET`
                     * - Testnet: `TESTNET`
                     * - Stagenet: `STAGENET`
                     */
                    byte networkChainId = ChainId.TESTNET;
            
                    /*
                     * Укажите ссылку на сеть:
                     * - Mainnet: "https://nodes.wavesnodes.com/"
                     * - Testnet: "https://nodes-testnet.wavesnodes.com/"
                     * - Stagenet: "https://nodes-stagenet.wavesnodes.com/"
                     */
                    Node node = new Node("https://nodes-testnet.wavesnodes.com");
            
                    // Укажите адрес получателя.
                    Address recipient = Address.as("УКАЖИТЕ АДРЕС ПОЛУЧАТЕЛЯ");
            
                    /* 
                     * Укажите ассет для трансфера:
                     * - Используйте `AssetId.WAVES` для WAVES.
                     * - Или укажите ID актива.
                     */
                    AssetId assetId = AssetId.as("УКАЖИТЕ ID АКТИВА");
            
                    // Укажите количество токена для трансфера в наименьшей единице.
                    Amount amount = new Amount(100000000L, assetId); // Например: `100000000L` для 1 токена.
            
                    // Создание транзакции Transfer.
                    TransferTransaction tx = TransferTransaction
                        .builder(recipient, amount)              // Адрес получателя и сумма трансфера.
                        .fee(100000L)                            // Комиссия в WAVES.
                        .timestamp(Instant.now().toEpochMilli()) // Временная метка.
                        .chainId(networkChainId)                 // ID сети.
                        .getSignedWith(privateKey);              // Приватный ключ отправителя.
            
                    // Отправка транзакции на ноду.
                    node.broadcast(tx);
            
                    // Контекст для отмены выполнения запроса по таймауту.
                    Thread.sleep(5000);
            
                    // Получение информации о транзакции от ноды.
                    Address address = Address.from(networkChainId, privateKey.publicKey());
                    System.out.println("Адрес отправителя: " + address);
                    System.out.println("ID транзакции: " + tx.id());
                    System.out.println("JSON-данные транзакции: " + tx.toJson());
                }
            }
            
          2. В файле Main.java запустите класс TransferTx.

          # Mass Transfer

          О транзакции Mass Transfer.

          В директории проекта:

          1. Замените содержимое файла Main.java следующим блоком кода:
            package com.example;
            
            // Необходимые импорты.
            import java.time.Instant;
            import java.util.Arrays;
            import com.wavesplatform.transactions.MassTransferTransaction;
            import com.wavesplatform.transactions.mass.Transfer;
            import com.wavesplatform.transactions.account.PrivateKey;
            import com.wavesplatform.transactions.account.Address;
            import com.wavesplatform.transactions.common.ChainId;
            import com.wavesplatform.transactions.common.AssetId;
            import com.wavesplatform.wavesj.Node;
            
            public class MassTransferTx {
                public static void main(String[] args) throws Exception {
                    // Укажите сид-фразу вашего аккаунта.
                    String seedPhrase = "УКАЖИТЕ СИД-ФРАЗУ";
            
                    // Генерация приватного ключа из сид-фразы.
                    PrivateKey privateKey = PrivateKey.fromSeed(seedPhrase);
            
                    /* 
                     * Укажите ID сети:
                     * - Mainnet: `MAINNET`
                     * - Testnet: `TESTNET`
                     * - Stagenet: `STAGENET`
                     */
                    byte networkChainId = ChainId.TESTNET;
            
                    /*
                     * Укажите ссылку на сеть:
                     * - Mainnet: "https://nodes.wavesnodes.com/"
                     * - Testnet: "https://nodes-testnet.wavesnodes.com/"
                     * - Stagenet: "https://nodes-stagenet.wavesnodes.com/"
                     */
                    Node node = new Node("https://nodes-testnet.wavesnodes.com");
            
                    // Укажите адреса получателей.
                    Address recipient1 = Address.as("УКАЖИТЕ АДРЕС ПЕРВОГО ПОЛУЧАТЕЛЯ");
                    Address recipient2 = Address.as("УКАЖИТЕ АДРЕС ВТОРОГО ПОЛУЧАТЕЛЯ");
            
                    /* 
                     * Укажите ассет для трансфера:
                     * - Используйте `AssetId.WAVES` для WAVES.
                     * - Или укажите ID актива.
                     */
                    AssetId assetId = AssetId.as("УКАЖИТЕ ID АКТИВА");
            
                    // Define the transfer amount for each recipient.
                    Transfer t1 = Transfer.to(recipient1, 100000000L); // Например: `100000000L` для 1 токена.
                    Transfer t2 = Transfer.to(recipient2, 200000000L); // Например: `200000000L` для 2 токенов.
            
                    // Создание транзакции Mass Transfer Transaction.
                    MassTransferTransaction tx = MassTransferTransaction
                        .builder(Arrays.asList(t1, t2))          // Массив данных о получателях и суммах трансфера.
                        .assetId(assetId)                        // ID ассета для трансфера.
                        .fee(300000L)                            // Комиссия в WAVES.
                        .timestamp(Instant.now().toEpochMilli()) // Временная метка.
                        .chainId(networkChainId)                 // ID сети.
                        .getSignedWith(privateKey);              // Приватный ключ отправителя.
            
                    // Отправка транзакции на ноду.
                    node.broadcast(tx);
            
                    // Контекст для отмены выполнения запроса по таймауту.
                    Thread.sleep(5000);
            
                    // Получение информации о транзакции от ноды.
                    Address address = Address.from(networkChainId, privateKey.publicKey());
                    System.out.println("Адрес отправителя: " + address);
                    System.out.println("ID транзакции: " + tx.id());
                    System.out.println("JSON-данные транзакции: " + tx.toJson());
                }
            }
            
          2. В файле Main.java запустите класс MassTransferTx.

          # Exchange

          О транзакции Exchange.

          В директории проекта:

          1. Замените содержимое файла Main.java следующим блоком кода:
            
            package com.example;
            
            // Необходимые импорты.
            import java.time.Instant;
            import com.wavesplatform.transactions.ExchangeTransaction;
            import com.wavesplatform.transactions.exchange.Order;
            import com.wavesplatform.transactions.exchange.OrderType;
            import com.wavesplatform.transactions.account.PrivateKey;
            import com.wavesplatform.transactions.account.Address;
            import com.wavesplatform.transactions.common.ChainId;
            import com.wavesplatform.transactions.common.AssetId;
            import com.wavesplatform.transactions.common.Amount;
            import com.wavesplatform.wavesj.Node;
            
            public class ExchangeTx {
                public static void main(String[] args) throws Exception {
                    // Укажите сид-фразу вашего аккаунта.
                    String seedPhrase = "УКАЖИТЕ СИД-ФРАЗУ";
            
                    // Генерация приватного ключа из сид-фразы.
                    PrivateKey privateKey = PrivateKey.fromSeed(seedPhrase);
            
                    /* 
                     * Укажите ID сети:
                     * - Mainnet: `MAINNET`
                     * - Testnet: `TESTNET`
                     * - Stagenet: `STAGENET`
                     */
                    byte networkChainId = ChainId.TESTNET;
            
                    /*
                     * Укажите ссылку на сеть:
                     * - Mainnet: "https://nodes.wavesnodes.com/"
                     * - Testnet: "https://nodes-testnet.wavesnodes.com/"
                     * - Stagenet: "https://nodes-stagenet.wavesnodes.com/"
                     */
                    Node node = new Node("https://nodes-testnet.wavesnodes.com");
            
                    // Укажите ID ассета для обмена.
                    AssetId assetId = AssetId.as("УКАЖИТЕ ID АКТИВА");
            
                    // Укажите сумму обмена и его стоимость.
                    Amount amount = new Amount(100000000L);       // Сумма обмена в наименьшей единице. Например: `100000000L` для 1 токена.
                    Amount price = new Amount(1000000L, assetId); // Цена за токен в наименьшей единице. Например: `1000000L` для 0.01 WAVES.
            
                    // Комиссия матчера для покупателя и продавца.
                    long matcherFee = 300000; // Например: `300000L` для 0.003 WAVES.
            
                    // Создание ордеров на покупку и продажу. Для простоты примера используется один публичный ключ.
                    Order buy = Order.builder(OrderType.BUY, amount, price, privateKey.publicKey())  // Ордер на покупку: оплата `price` за указанный `amount`.
                        .getSignedWith(privateKey);
            
                    Order sell = Order.builder(OrderType.SELL, amount, price, privateKey.publicKey()) // Ордер на продажу: предложение `amount` за данный `price`.
                        .getSignedWith(privateKey);
            
                    // Создание транзакции Exchange.
                    ExchangeTransaction tx = ExchangeTransaction
                        .builder(
                            buy,                                 // Ордер на покупку.
                            sell,                                // Ордер на продажу.
                            amount.value(),                      // Сумма обмена (не должна превышать сумму ордера).
                            price.value(),                       // Согласованная цена (должна совпадать с обеими ордерами).
                            matcherFee,                          // Комиссия матчера на продажу.
                            matcherFee                           // Комиссия матчера покупку.
                        )
                        .fee(300000L)                            // Комиссия за транзакцию обмена.
                        .timestamp(Instant.now().toEpochMilli()) // Временная метка.
                        .chainId(networkChainId)                 // ID сети.
                        .getSignedWith(privateKey);              // Приватный ключ отправителя.
            
                    // Отправка транзакции на ноду.
                    node.broadcast(tx);
            
                    // Контекст для отмены выполнения запроса по таймауту.
                    Thread.sleep(5000);
            
                    // Получение информации о транзакции от ноды.
                    Address address = Address.from(networkChainId, privateKey.publicKey());
                    System.out.println("Адрес отправителя: " + address);
                    System.out.println("ID транзакции: " + tx.id());
                    System.out.println("JSON-данные транзакции: " + tx.toJson());
                }
            }
            
          2. В файле Main.java запустите класс ExchangeTx.

          # Lease

          О транзакции Lease.

          В директории проекта:

          1. Замените содержимое файла Main.java следующим блоком кода:
            package com.example;
            
            import java.time.Instant;
            
            // Необходимые импорты.
            import com.wavesplatform.transactions.LeaseTransaction;
            import com.wavesplatform.transactions.account.PrivateKey;
            import com.wavesplatform.transactions.account.Address;
            import com.wavesplatform.transactions.common.ChainId;
            import com.wavesplatform.wavesj.Node;
            
            public class LeaseTx {
                public static void main(String[] args) throws Exception {
                    // Укажите сид-фразу вашего аккаунта.
                    String seedPhrase = "УКАЖИТЕ СИД-ФРАЗУ";
            
                    // Генерация приватного ключа из сид-фразы.
                    PrivateKey privateKey = PrivateKey.fromSeed(seedPhrase);
                    
                    /* 
                     * Укажите ID сети:
                     * - Mainnet: `MAINNET`
                     * - Testnet: `TESTNET`
                     * - Stagenet: `STAGENET`
                     */
                    byte networkChainId = ChainId.TESTNET;
            
                    /*
                     * Укажите ссылку на сеть:
                     * - Mainnet: "https://nodes.wavesnodes.com/"
                     * - Testnet: "https://nodes-testnet.wavesnodes.com/"
                     * - Stagenet: "https://nodes-stagenet.wavesnodes.com/"
                     */
                    Node node = new Node("https://nodes-testnet.wavesnodes.com");
                    
                    // Укажите адрес получателя.
                    Address recipient = Address.as("УКАЖИТЕ АДРЕС ПОЛУЧАТЕЛЯ");
            
                    // Создание транзакции Lease Transaction.
                    LeaseTransaction tx = LeaseTransaction
                        .builder(recipient, 100000000L)          // Сумма лизинга. Например: `100000000L` для 1 WAVES.
                        .fee(100000L)                            // Комиссия за транзакцию. Например: `100000L` для 0.001 WAVES.
                        .timestamp(Instant.now().toEpochMilli()) // Временная метка.
                        .chainId(networkChainId)                 // ID сети.
                        .getSignedWith(privateKey);              // Приватный ключ отправителя.
            
                    // Отправка транзакции на ноду.
                    node.broadcast(tx);
            
                    // Контекст для отмены выполнения запроса по таймауту.
                    Thread.sleep(5000);
            
                    // Получение информации о транзакции от ноды.
                    Address address = Address.from(networkChainId, privateKey.publicKey());
                    System.out.println("Адрес отправителя: " + address);
                    System.out.println("ID транзакции: " + tx.id());
                    System.out.println("JSON-данные транзакции: " + tx.toJson());
                }
            }
            
          2. В файле Main.java запустите класс LeaseTx.

          # Lease Cancel

          О транзакции Lease Cancel.

          В директории проекта:

          1. Замените содержимое файла Main.java следующим блоком кода:
            package com.example;
            
            // Необходимые импорты.
            import java.time.Instant;
            import com.wavesplatform.transactions.LeaseCancelTransaction;
            import com.wavesplatform.transactions.account.PrivateKey;
            import com.wavesplatform.transactions.account.Address;
            import com.wavesplatform.transactions.common.ChainId;
            import com.wavesplatform.crypto.base.Base58;
            import com.wavesplatform.transactions.common.Id;  
            import com.wavesplatform.wavesj.Node;
            
            public class LeaseCancelTx {
                public static void main(String[] args) throws Exception {
                    // Укажите сид-фразу вашего кошелька.
                    String seedPhrase = "УКАЖИТЕ СИД-ФРАЗУ";
            
                    // Генерация приватного ключа из сид-фразы.
                    PrivateKey privateKey = PrivateKey.fromSeed(seedPhrase);
            
                    /* 
                     * Укажите ID сети:
                     * - Mainnet: `MAINNET`
                     * - Testnet: `TESTNET`
                     * - Stagenet: `STAGENET`
                     */
                    byte networkChainId = ChainId.TESTNET;
            
                    /*
                     * Укажите ссылку на сеть:
                     * - Mainnet: "https://nodes.wavesnodes.com/"
                     * - Testnet: "https://nodes-testnet.wavesnodes.com/"
                     * - Stagenet: "https://nodes-stagenet.wavesnodes.com/"
                     */
                    Node node = new Node("https://nodes-testnet.wavesnodes.com");
            
                    // Укажите ID Lease-транзакции.
                    String leaseIdString = "УКАЖИТЕ ID LEASE-ТРАНЗАКЦИИ";
                    byte[] leaseIdBytes = Base58.decode(leaseIdString);
                    Id leaseId = new Id(leaseIdBytes);
            
                    // Создание транзакции Lease Cancel.
                    LeaseCancelTransaction tx = LeaseCancelTransaction
                        .builder(leaseId)                         // ID Lease-транзакции, которую необходимо отменить.
                        .fee(100000L)                             // Комиссия за транзакцию. Например: `100000L` для 0.001 WAVES.
                        .timestamp(Instant.now().toEpochMilli())  // Временная метка.
                        .chainId(networkChainId)                  // ID сети.
                        .getSignedWith(privateKey);               // Приватный ключ отправителя.
            
                    // Отправка транзакции на ноду.
                    node.broadcast(tx);
            
                    // Контекст для отмены выполнения запроса по таймауту.
                    Thread.sleep(5000);
            
                    // Получение информации о транзакции от ноды.
                    Address address = Address.from(networkChainId, privateKey.publicKey());
                    System.out.println("Адрес отправителя: " + address);
                    System.out.println("ID транзакции: " + tx.id());
                    System.out.println("JSON-данные транзакции: " + tx.toJson());
                }
            }
            
          2. В файле Main.java запустите класс LeaseCancelTx.

          # Create Alias

          О транзакции Create Alias.

          В директории проекта:

          1. Замените содержимое файла Main.java следующим блоком кода:
            package com.example;
            
            // Необходимые импорты.
            import java.time.Instant;
            import com.wavesplatform.transactions.CreateAliasTransaction;
            import com.wavesplatform.transactions.account.PrivateKey;
            import com.wavesplatform.transactions.account.Address;
            import com.wavesplatform.transactions.common.ChainId;
            import com.wavesplatform.wavesj.Node;
            
            public class CreateAliasTx {
                public static void main(String[] args) throws Exception {
                    // Укажите сид-фразу вашего аккаунта.
                    String seedPhrase = "УКАЖИТЕ СИД-ФРАЗУ";
            
                    // Генерация приватного ключа из сид-фразы.
                    PrivateKey privateKey = PrivateKey.fromSeed(seedPhrase);
            
                    /* 
                     * Укажите ID сети:
                     * - Mainnet: `MAINNET`
                     * - Testnet: `TESTNET`
                     * - Stagenet: `STAGENET`
                     */
                    byte networkChainId = ChainId.TESTNET;
            
                    /*
                     * Укажите ссылку на сеть:
                     * - Mainnet: "https://nodes.wavesnodes.com/"
                     * - Testnet: "https://nodes-testnet.wavesnodes.com/"
                     * - Stagenet: "https://nodes-stagenet.wavesnodes.com/"
                     */
                    Node node = new Node("https://nodes-testnet.wavesnodes.com");
            
                    // Укажите псевдоним.
                    String alias = "youralias"; // Пример псевдонима.
            
                    // Создание транзакции Create Alias.
                    CreateAliasTransaction tx = CreateAliasTransaction
                        .builder(alias)                          // Псевдонима.
                        .fee(100000L)                            // Комиссия за транзакцию. Например: `100000L` для 0.001 WAVES.
                        .timestamp(Instant.now().toEpochMilli()) // Временная метка.
                        .chainId(networkChainId)                 // ID сети.
                        .getSignedWith(privateKey);              // Приватный ключ отправителя.
            
                    // Отправка транзакции на ноду.
                    node.broadcast(tx);
            
                    // Контекст для отмены выполнения запроса по таймауту.
                    Thread.sleep(5000);
            
                    // Получение информации о транзакции от ноды.
                    Address address = Address.from(networkChainId, privateKey.publicKey());
                    System.out.println("Адрес отправителя: " + address);
                    System.out.println("Псевдоним: " + alias);
                    System.out.println("ID транзакции: " + tx.id());
                    System.out.println("JSON-данные транзакции: " + tx.toJson());
                }
            }
            
          2. В файле Main.java запустите класс CreateAliasTx.

          # Data

          О транзакции Data.

          В директории проекта:

          1. Замените содержимое файла Main.java следующим блоком кода:
            package com.example;
            
            // Необходимые импорты.
            import java.time.Instant;
            import java.util.Arrays;
            import com.wavesplatform.transactions.DataTransaction;
            import com.wavesplatform.transactions.data.BooleanEntry;
            import com.wavesplatform.transactions.data.IntegerEntry;
            import com.wavesplatform.transactions.data.StringEntry;
            import com.wavesplatform.transactions.data.DataEntry;
            import com.wavesplatform.transactions.account.PrivateKey;
            import com.wavesplatform.transactions.account.Address;
            import com.wavesplatform.transactions.common.ChainId;
            import com.wavesplatform.wavesj.Node;
            
            public class DataTx {
                public static void main(String[] args) throws Exception {
                    // Укажите сид-фразу вашего аккаунта.
                    String seedPhrase = "УКАЖИТЕ СИД-ФРАЗУ";
            
                    // Генерация приватного ключа из сид-фразы.
                    PrivateKey privateKey = PrivateKey.fromSeed(seedPhrase);
            
                    /* 
                     * Укажите ID сети:
                     * - Mainnet: `MAINNET`
                     * - Testnet: `TESTNET`
                     * - Stagenet: `STAGENET`
                     */
                    byte networkChainId = ChainId.TESTNET;
            
                    /*
                     * Укажите ссылку на сеть:
                     * - Mainnet: "https://nodes.wavesnodes.com/"
                     * - Testnet: "https://nodes-testnet.wavesnodes.com/"
                     * - Stagenet: "https://nodes-stagenet.wavesnodes.com/"
                     */
                    Node node = new Node("https://nodes-testnet.wavesnodes.com");
            
                    // Добавление записей данных.
                    DataEntry intEntry = new IntegerEntry("counter", 123);          
                    DataEntry boolEntry = new BooleanEntry("flag", true);          
                    DataEntry strEntry = new StringEntry("message", "Hello Waves");
            
                    // Создание транзакции Data.
                    DataTransaction tx = DataTransaction
                        .builder(Arrays.asList(intEntry, boolEntry, strEntry)) // Записи данных.
                        .fee(100000L)                                          // Комиссия за транзакцию. Например: `100000L` для 0.001 WAVES.
                        .timestamp(Instant.now().toEpochMilli())               // Временная метка.
                        .chainId(networkChainId)                               // ID сети.
                        .getSignedWith(privateKey);                            // Приватный ключ отправителя.
            
                    // Отправка транзакции на ноду.
                    node.broadcast(tx);
            
                    // Контекст для отмены выполнения запроса по таймауту.
                    Thread.sleep(5000);
            
                    // Получение информации о транзакции от ноды.
                    Address address = Address.from(networkChainId, privateKey.publicKey());
                    System.out.println("Адрес отправителя: " + address);
                    System.out.println("ID транзакции: " + tx.id());
                    System.out.println("JSON-данные транзакции: " + tx.toJson());
                }
            }
            
          2. В файле Main.java запустите класс DataTx.

          # Set Script

          О транзакции Set Script.

          В директории проекта:

          1. Замените содержимое файла Main.java следующим блоком кода:
            package com.example;
            
            // Необходимые импорты.
            import java.time.Instant;
            import com.wavesplatform.transactions.SetScriptTransaction;
            import com.wavesplatform.transactions.common.Base64String;
            import com.wavesplatform.transactions.account.PrivateKey;
            import com.wavesplatform.transactions.account.Address;
            import com.wavesplatform.transactions.common.ChainId;
            import com.wavesplatform.wavesj.Node;
            
            public class SetScriptTx {
                public static void main(String[] args) throws Exception {
                    // Укажите сид-фразу вашего аккаунта.
                    String seedPhrase = "УКАЖИТЕ СИД-ФРАЗУ";
            
                    // Генерация приватного ключа из сид-фразы.
                    PrivateKey privateKey = PrivateKey.fromSeed(seedPhrase);
            
                    /* 
                     * Укажите ID сети:
                     * - Mainnet: `MAINNET`
                     * - Testnet: `TESTNET`
                     * - Stagenet: `STAGENET`
                     */
                    byte networkChainId = ChainId.TESTNET;
            
                    /*
                     * Укажите ссылку на сеть:
                     * - Mainnet: "https://nodes.wavesnodes.com/"
                     * - Testnet: "https://nodes-testnet.wavesnodes.com/"
                     * - Stagenet: "https://nodes-stagenet.wavesnodes.com/"
                     */
                    Node node = new Node("https://nodes-testnet.wavesnodes.com");
            
                    // Укажите Ride-скрипт.
                    String scriptSource = "{-# SCRIPT_TYPE ACCOUNT #-} true"; // Пример Ride-скрипта.
            
                    // Компиляция Ride-скрипта.
                    Base64String script = node.compileScript(scriptSource).script(); // Пример скрипта.
            
                    // Создание транзакции Set Script.
                    SetScriptTransaction tx = SetScriptTransaction
                        .builder(script)                         // Ride-скрипт.
                        .fee(1000000)                            // Минимальная комиссия за транзакцию.
                        .timestamp(Instant.now().toEpochMilli()) // Временная метка.
                        .chainId(networkChainId)                 // ID сети.
                        .getSignedWith(privateKey);              // Приватный ключ отправителя.
            
                    // Отправка транзакции на ноду.
                    node.broadcast(tx);
            
                    // Контекст для отмены выполнения запроса по таймауту.
                    Thread.sleep(5000);
            
                    // Получение информации о транзакции от ноды.
                    Address address = Address.from(networkChainId, privateKey.publicKey());
                    System.out.println("Адрес отправителя: " + address);
                    System.out.println("ID транзакции: " + tx.id());
                    System.out.println("JSON-данные транзакции: " + tx.toJson());
                }
            }
            
          2. В файле Main.java запустите класс SetScriptTx.

          # Set Asset Script

          О транзакции Set Asset Script.

          Обратите внимание: Вы можете установить скрипт актива только для тех активов, которые были выпущены с установленным Ride-скриптом .

          В директории проекта:

          1. Замените содержимое файла Main.java следующим блоком кода:
            package com.example;
            
            // Необходимые импорты.
            import java.time.Instant;
            import com.wavesplatform.transactions.SetAssetScriptTransaction;
            import com.wavesplatform.transactions.common.Base64String;
            import com.wavesplatform.transactions.common.AssetId;
            import com.wavesplatform.transactions.account.PrivateKey;
            import com.wavesplatform.transactions.account.Address;
            import com.wavesplatform.transactions.common.ChainId;
            import com.wavesplatform.wavesj.Node;
            
            public class SetAssetScriptTx {
                public static void main(String[] args) throws Exception {
                    // Укажите сид-фразу вашего аккаунта.
                    String seedPhrase = "УКАЖИТЕ СИД-ФРАЗУ";
            
                    // Генерация приватного ключа из сид-фразы.
                    PrivateKey privateKey = PrivateKey.fromSeed(seedPhrase);
            
                    /* 
                     * Укажите ID сети:
                     * - Mainnet: `MAINNET`
                     * - Testnet: `TESTNET`
                     * - Stagenet: `STAGENET`
                     */
                    byte networkChainId = ChainId.TESTNET;
            
                    /*
                     * Укажите ссылку на сеть:
                     * - Mainnet: "https://nodes.wavesnodes.com/"
                     * - Testnet: "https://nodes-testnet.wavesnodes.com/"
                     * - Stagenet: "https://nodes-stagenet.wavesnodes.com/"
                     */
                    Node node = new Node("https://nodes-testnet.wavesnodes.com");
            
                    // Укажите ID смарт ассета.
                    AssetId assetId = AssetId.as("УКАЖИТЕ ID АКТИВА");
            
                    // Укажите Ride-скрипт.
                    Base64String script = node.compileScript("{-# SCRIPT_TYPE ACCOUNT #-} true").script(); // Пример скрипта.
            
                    // Создание транзакции Set Asset Script.
                    SetAssetScriptTransaction tx = SetAssetScriptTransaction
                        .builder(assetId, script)                // ID ассета и его скрипт.
                        .fee(1000000L)                           // Комиссия за транзакцию. Например: `1000000L` для 0.01 WAVES.
                        .timestamp(Instant.now().toEpochMilli()) // Временная метка.
                        .chainId(networkChainId)                 // ID сети.
                        .getSignedWith(privateKey);              // Приватный ключ отправителя.
            
                    // Отправка транзакции на ноду.
                    node.broadcast(tx);
            
                    // Контекст для отмены выполнения запроса по таймауту.
                    Thread.sleep(5000);
            
                    // Получение информации о транзакции от ноды.
                    Address address = Address.from(networkChainId, privateKey.publicKey());
                    System.out.println("Адрес отправителя: " + address);
                    System.out.println("ID транзакции: " + tx.id());
                    System.out.println("JSON-данные транзакции: " + tx.toJson());
                }
            }
            
          2. В файле Main.java запустите класс SetAssetScriptTx.

          # Update Asset Info

          О транзакции Update Asset Info.

          В директории проекта:

          1. Замените содержимое файла Main.java следующим блоком кода:
            package com.example;
            
            // Необходимые импорты.
            import java.time.Instant;
            import com.wavesplatform.transactions.UpdateAssetInfoTransaction;
            import com.wavesplatform.transactions.common.AssetId;
            import com.wavesplatform.transactions.account.PrivateKey;
            import com.wavesplatform.transactions.account.Address;
            import com.wavesplatform.transactions.common.ChainId;
            import com.wavesplatform.wavesj.Node;
            
            public class UpdateAssetInfoTx {
                public static void main(String[] args) throws Exception {
                    // Укажите сид-фразу вашего аккаунта.
                    String seedPhrase = "УКАЖИТЕ СИД-ФРАЗУ";
            
                    // Генерация приватного ключа из сид-фразы.
                    PrivateKey privateKey = PrivateKey.fromSeed(seedPhrase);
            
                    /* 
                     * Укажите ID сети:
                     * - Mainnet: `MAINNET`
                     * - Testnet: `TESTNET`
                     * - Stagenet: `STAGENET`
                     */
                    byte networkChainId = ChainId.TESTNET;
            
                    /*
                     * Укажите ссылку на сеть:
                     * - Mainnet: "https://nodes.wavesnodes.com/"
                     * - Testnet: "https://nodes-testnet.wavesnodes.com/"
                     * - Stagenet: "https://nodes-stagenet.wavesnodes.com/"
                     */
                    Node node = new Node("https://nodes-testnet.wavesnodes.com");
            
                    // Укажите ID актива.
                    AssetId assetId = AssetId.as("УКАЖИТЕ ID АКТИВА");
            
                    // Укажите новое наименование и описание актива.
                    String newName = "UpdatedToken";               // Новое наименование.
                    String newDescription = "Updated description"; // Новое описание.
            
                    // Создание транзакции Update Asset Info.
                    UpdateAssetInfoTransaction tx = UpdateAssetInfoTransaction
                        .builder(assetId, newName, newDescription) // ID актива, новое наименование и описание.
                        .fee(100000L)                              // Комиссия за транзакцию. Например: `100000L` для 0.001 WAVES.
                        .timestamp(Instant.now().toEpochMilli())   // Временная метка.
                        .chainId(networkChainId)                   // ID сети.
                        .getSignedWith(privateKey);                // Приватный ключ отправителя.
            
                    // Отправка транзакции на ноду.
                    node.broadcast(tx);
            
                    // Контекст для отмены выполнения запроса по таймауту.
                    Thread.sleep(5000);
            
                    // Получение информации о транзакции от ноды.
                    Address address = Address.from(networkChainId, privateKey.publicKey());
                    System.out.println("Адрес отправителя: " + address);
                    System.out.println("ID транзакции: " + tx.id());
                    System.out.println("JSON-данные транзакции: " + tx.toJson());
                }
            }
            
          2. В файле Main.java запустите класс UpdateAssetInfoTx.

          # Invoke Script

          О транзакции Invoke Script.

          В директории проекта:

          1. Замените содержимое файла Main.java следующим блоком кода:
            package com.example;
            
            // Необходимые импорты.
            import java.time.Instant;
            import java.util.List;
            import com.wavesplatform.transactions.InvokeScriptTransaction;
            import com.wavesplatform.transactions.invocation.*;
            import com.wavesplatform.transactions.account.PrivateKey;
            import com.wavesplatform.transactions.account.Address;
            import com.wavesplatform.transactions.common.ChainId;
            import com.wavesplatform.transactions.common.AssetId;
            import com.wavesplatform.transactions.common.Amount;
            import com.wavesplatform.wavesj.Node;
            
            public class InvokeScriptTx {
                public static void main(String[] args) throws Exception {
                    // Укажите сид-фразу вашего аккаунта.
                    String seedPhrase = "УКАЖИТЕ СИД-ФРАЗУ";
            
                    // Генерация приватного ключа из сид-фразы.
                    PrivateKey privateKey = PrivateKey.fromSeed(seedPhrase);
            
                    /* 
                     * Укажите ID сети:
                     * - Mainnet: `MAINNET`
                     * - Testnet: `TESTNET`
                     * - Stagenet: `STAGENET`
                     */
                    byte networkChainId = ChainId.TESTNET;
            
                    /*
                     * Укажите ссылку на сеть:
                     * - Mainnet: "https://nodes.wavesnodes.com/"
                     * - Testnet: "https://nodes-testnet.wavesnodes.com/"
                     * - Stagenet: "https://nodes-stagenet.wavesnodes.com/"
                     */
                    Node node = new Node("https://nodes-testnet.wavesnodes.com");
            
                    // Укажите адрес dApp-приложения.
                    Address dApp = Address.as("УКАЖИТЕ АДРЕС DAPP-ПРИЛОЖЕНИЯ");
            
                    // Укажите наименование вызываемой функции и её аргументы.
                    Function function = Function.as(
                        "myFunction",         // Наименование Callable-функции dApp'а.
                        StringArg.as("arg1"), // Первый аргумент типа `string`.
                        IntegerArg.as(42),    // Второй аргумент типа `integer`.
                        BooleanArg.as(true)   // Третий аргумент типа `boolean`.
                    );
            
                    // Укажите сумму платежа.
                    long paymentAmount = 1_00000000L; // Например: `1_00000000L` для 1 токена.
            
                    /* 
                     * Укажите ассет для трансфера:
                     * - Используйте `AssetId.WAVES` для WAVES.
                     * - Или укажите ID актива.
                     */
                    AssetId paymentAsset = AssetId.WAVES;
            
                    // Трансформация платежных данных.
                    List<Amount> payments = List.of(
                        Amount.of(paymentAmount, paymentAsset)
                    );
            
                    // Создание транзакции Invoke Script.
                    InvokeScriptTransaction tx = InvokeScriptTransaction
                        .builder(dApp, function)                 // dApp и его функция для вызова.
                        .payments(payments)                      // Список платежей.
                        .fee(500000L)                            // Комиссия за транзакцию. Например: `500000L` для 0.005 WAVES.
                        .timestamp(Instant.now().toEpochMilli()) // Временная метка.
                        .chainId(networkChainId)                 // ID сети.
                        .getSignedWith(privateKey);              // Приватный ключ отправителя.
            
                    // Отправка транзакции на ноду.
                    node.broadcast(tx);
            
                    // Контекст для отмены выполнения запроса по таймауту.
                    Thread.sleep(5000);
            
                    // Получение информации о транзакции от ноды.
                    Address sender = Address.from(networkChainId, privateKey.publicKey());
                    System.out.println("Адрес отправителя: " + sender);
                    System.out.println("ID транзакции: " + tx.id());
                    System.out.println("JSON-данные транзакции: " + tx.toJson());
                }
            }
            
          2. В файле Main.java запустите класс InvokeScriptTx.

          # Sponsor Fee

          О транзакции Sponsor Fee.

          В директории проекта:

          1. Замените содержимое файла Main.java следующим блоком кода:
            package com.example;
            
            import java.time.Instant;
            
            // Необходимые импорты.
            import com.wavesplatform.transactions.SponsorFeeTransaction;
            import com.wavesplatform.transactions.common.AssetId;
            import com.wavesplatform.transactions.account.PrivateKey;
            import com.wavesplatform.transactions.account.Address;
            import com.wavesplatform.transactions.common.ChainId;
            import com.wavesplatform.wavesj.Node;
            
            public class SponsorFeeTx {
                public static void main(String[] args) throws Exception {
                    // Укажите сид-фразу вашего аккаунта.
                    String seedPhrase = "УКАЖИТЕ СИД-ФРАЗУ";
            
                    // Генерация приватного ключа из сид-фразы.
                    PrivateKey privateKey = PrivateKey.fromSeed(seedPhrase);
            
                    /* 
                     * Укажите ID сети:
                     * - Mainnet: `MAINNET`
                     * - Testnet: `TESTNET`
                     * - Stagenet: `STAGENET`
                     */
                    byte networkChainId = ChainId.TESTNET;
            
                    /*
                     * Укажите ссылку на сеть:
                     * - Mainnet: "https://nodes.wavesnodes.com/"
                     * - Testnet: "https://nodes-testnet.wavesnodes.com/"
                     * - Stagenet: "https://nodes-stagenet.wavesnodes.com/"
                     */
                    Node node = new Node("https://nodes-testnet.wavesnodes.com");
            
                    // Укажите ID спонсорского актива.
                    AssetId assetId = AssetId.as("УКАЖИТЕ ID АКТИВА");
            
                    // Укажите минимальную спонсорскую комиссию.
                    long minSponsoredFee = 50000L; // Например: `50000L` для 0.0005 единиц спонсорского токена.
            
                    // Создание транзакции Sponsor Fee Transaction.
                    SponsorFeeTransaction tx = SponsorFeeTransaction
                        .builder(assetId, minSponsoredFee)       // ID ассета и его спонсорская комиссия.
                        .fee(100000000L)                         // Комиссия в WAVES. Например: `100000000L` для 1 WAVES.
                        .timestamp(Instant.now().toEpochMilli()) // Временная метка.
                        .chainId(networkChainId)                 // ID сети.
                        .getSignedWith(privateKey);              // Приватный ключ отправителя.
            
                    // Отправка транзакции на ноду.
                    node.broadcast(tx);
            
                    // Контекст для отмены выполнения запроса по таймауту.
                    Thread.sleep(5000);
            
                    // Получение информации о транзакции от ноды.
                    Address sender = Address.from(networkChainId, privateKey.publicKey());
                    System.out.println("Адрес отправителя: " + sender);
                    System.out.println("ID транзакции: " + tx.id());
                    System.out.println("JSON-данные транзакции: " + tx.toJson());
                }
            }
            
          2. В файле Main.java запустите класс SponsorFeeTx.
          Запуск кода
          Использование криптографических утилит
          Запуск кода
          Использование криптографических утилит