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 & waves-transactions
      • Установка SDK
        Установка SDK
      • Запуск кода
        • Отправка транзакций
          Отправка транзакций
        • Использование криптографических утилит
          Использование криптографических утилит
        • Взаимодействие с нодой
          Взаимодействие с нодой
        • Развертывание смарт-контрактов
          Развертывание смарт-контрактов
        Запуск кода
      Ts-lib-crypto & waves-transactions
    • 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. Замените содержимое файла waves.ts следующим блоком кода:
            // Необходимые импорты.
            import { keyPair } from '@waves/ts-lib-crypto';
            import waves from '@waves/waves-transactions';
            import fetch from 'node-fetch';
            
            // Получение необходимого типа транзакции.
            const { issue, broadcast } = waves;
            
            // Укажите вашу сид-фразу.
            const seed: string = 'УКАЖИТЕ СИД-ФРАЗУ';
            
            // Создание пары ключей из сид-фразы.
            const { publicKey }: { publicKey: string } = keyPair(seed);
            
            /*
             * Укажите ID сети:
             * - 'W' для Mainnet.
             * - 'T' для Testnet.
             */
            const chainId: string = 'T';
            
            /*
             * Укажите ссылку на сеть:
             * - Mainnet: 'https://nodes.wavesnodes.com/'
             * - Testnet: 'https://nodes-testnet.wavesnodes.com/'
             */
            const nodeUrl: string = 'https://nodes-testnet.wavesnodes.com';
            
            (async (): Promise<void> => {
            try {
                // Компиляция Ride-скрипта через REST API ноды.
                const scriptSource = `
                {-# STDLIB_VERSION 8 #-}
                {-# CONTENT_TYPE EXPRESSION #-}
                {-# SCRIPT_TYPE ASSET #-}
                true
                `.trim();
            
                const response = await fetch(`${nodeUrl}/utils/script/compileCode`, {
                    method: 'POST',
                    headers: {
                        'Content-Type': 'text/plain',
                        'accept': 'application/json'
                    },
                    body: scriptSource
                });
            
                if (!response.ok) throw new Error(`Failed to compile script: ${response.statusText}`);
                const { script: compiledScript } = await response.json();
            
                // Создание Issue-транзакции.
                const tx = issue(
                {
                    name: 'Наименование',           // Наименование.
                    description: 'Описание Токена', // Описание.
                    quantity: 1_00000000,           // Количество.
                    decimals: 8,                    // Знаков после запятой.
                    reissuable: true,               // Флаг, указывающий на возможность повторного выпуска актива.
                    fee: 1_00000000,                // Комиссия.
                    chainId,                        // ID сети.
                    senderPublicKey: publicKey,     // Публинчый ключ отправителя транзакции.
                    script: compiledScript          // Скрипта актива или `undefined`.
                },
                seed
                );
            
                // Отправка транзакции на ноду.
                const result = await broadcast(tx, nodeUrl);
            
                // Вывод результатов.
                console.log('ID транзакции:', result.id);
                console.log('JSON-детали транзакции:', JSON.stringify(tx, null, 2));
            } catch (e) {
                console.error('Ошибка:', e);
            }
            })();
            
          2. Запустите файл waves.ts.

          # Reissue

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

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

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

          1. Замените содержимое файла waves.ts следующим блоком кода:
            // Необходимые импорты.
            import { keyPair } from '@waves/ts-lib-crypto';
            import waves from '@waves/waves-transactions';
            
            // Получение необходимого типа транзакции.
            const { reissue, broadcast } = waves;
            
            // Укажите вашу сид-фразу.
            const seed: string = 'УКАЖИТЕ СИД-ФРАЗУ';
            
            // Создание пары ключей из сид-фразы.
            const { publicKey }: { publicKey: string } = keyPair(seed);
            
            /*
             * Укажите ID сети:
             * - 'W' для Mainnet.
             * - 'T' для Testnet.
             */
            const chainId: string = 'T';
            
            /*
             * Укажите ссылку на сеть:
             * - Mainnet: 'https://nodes.wavesnodes.com/'
             * - Testnet: 'https://nodes-testnet.wavesnodes.com/'
             */
            const nodeUrl: string = 'https://nodes-testnet.wavesnodes.com';
            
            // Укажите ID ассета.
            const assetId: string = 'УКАЖИТЕ ID АССЕТА';
            
            (async (): Promise<void> => {
            try {
                // Создание Reissue-транзакции.
                const tx = reissue(
                {
                    assetId,                   // ID перевыпускаемого ассета.
                    quantity: 2_00000000,      // Количество токена к перевыпуску.
                    reissuable: true,          // Флаг, указывающий на перевыпускаемость актива.
                    fee: 1_00000000,           // Комиссия.
                    chainId,                   // ID сети.
                    senderPublicKey: publicKey // Публинчый ключ отправителя транзакции.
                },
                seed
                );
            
                // Отправка транзакции на ноду.
                const result = await broadcast(tx, nodeUrl);
            
                // Вывод результатов.
                console.log('ID транзакции:', result.id);
                console.log('JSON-детали транзакции:', JSON.stringify(tx, null, 2));
            } catch (e) {
                console.error('Ошибка:', e);
            }
            })();
            
          2. Запустите файл waves.ts.

          # Burn

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

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

          1. Замените содержимое файла waves.ts следующим блоком кода:
            // Необходимые импорты.
            import { keyPair } from '@waves/ts-lib-crypto';
            import waves from '@waves/waves-transactions';
            
            // Получение необходимого типа транзакции.
            const { burn, broadcast } = waves;
            
            // Укажите вашу сид-фразу.
            const seed: string = 'УКАЖИТЕ СИД-ФРАЗУ';
            
            // Создание пары ключей из сид-фразы.
            const { publicKey }: { publicKey: string } = keyPair(seed);
            
            /*
             * Укажите ID сети:
             * - 'W' для Mainnet.
             * - 'T' для Testnet.
             */
            const chainId: string = 'T';
            
            /*
             * Укажите ссылку на сеть:
             * - Mainnet: 'https://nodes.wavesnodes.com/'
             * - Testnet: 'https://nodes-testnet.wavesnodes.com/'
             */
            const nodeUrl: string = 'https://nodes-testnet.wavesnodes.com';
            
            // Укажите ID ассета.
            const assetId: string = 'УКАЖИТЕ ID АССЕТА';
            
            (async (): Promise<void> => {
            try {
                // Создание Burn-транзакции.
                const tx = burn(
                {
                    assetId,                    // ID сжигаемого ассета.
                    amount: 50000000,           // Количество сжигаемого ассета. Например: `50000000` для 0.5 токенов.
                    fee: 1_00000000,            // Комиссия.
                    chainId,                    // ID сети.
                    senderPublicKey: publicKey  // Публинчый ключ отправителя транзакции.
                },
                seed
                );
            
                // Отправка транзакции на ноду.
                const result = await broadcast(tx, nodeUrl);
            
                // Вывод результатов.
                console.log('ID транзакции:', result.id);
                console.log('JSON-детали транзакции:', JSON.stringify(tx, null, 2));
            } catch (e) {
                console.error('Ошибка:', e);
            }
            })();
            
          2. Запустите файл waves.ts.

          # Transfer

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

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

          1. Замените содержимое файла waves.ts следующим блоком кода:
            // Необходимые импорты.
            import { keyPair } from '@waves/ts-lib-crypto';
            import waves from '@waves/waves-transactions';
            
            // Получение необходимого типа транзакции.
            const { transfer, broadcast } = waves;
            
            // Укажите вашу сид-фразу.
            const seed: string = 'УКАЖИТЕ СИД-ФРАЗУ';
            
            // Создание пары ключей из сид-фразы.
            const { publicKey }: { publicKey: string } = keyPair(seed);
            
            // Укажите адрес получателя.
            const recipient: string = 'УКАЖИТЕ АДРЕС ПОЛУЧАТЕЛЯ';
            
            // Укажите ID ассета или `null` для WAVES.
            const assetId: string | null = null;
            
            /*
             * Укажите ID сети:
             * - 'W' для Mainnet.
             * - 'T' для Testnet.
             */
            const chainId: string = 'T';
            
            /*
             * Укажите ссылку на сеть:
             * - Mainnet: 'https://nodes.wavesnodes.com/'
             * - Testnet: 'https://nodes-testnet.wavesnodes.com/'
             */
            const nodeUrl: string = 'https://nodes-testnet.wavesnodes.com';
            
            (async (): Promise<void> => {
            try {
                // Создание Transfer-транзакции.
                const tx = transfer(
                {
                    amount: 50000000,          // Количество токена для трансфера.
                    recipient,                 // Адрес получателя.
                    assetId,                   // ID ассета или `null` для WAVES.
                    fee: 100000,               // Комиссия в WAVES.
                    feeAssetId: null,          // ID ассета для уплаты комиссии или `null` для WAVES.
                    attachment: '',            // Приложение.
                    chainId,                   // ID сети.
                    senderPublicKey: publicKey // Публинчый ключ отправителя транзакции.
                },
                seed
                );
            
                // Отправка транзакции на ноду.
                const result = await broadcast(tx, nodeUrl);
            
                // Вывод результатов.
                console.log('ID транзакции:', result.id);
                console.log('JSON-детали транзакции:', JSON.stringify(tx, null, 2));
            } catch (e) {
                console.error('Ошибка:', e);
            }
            })();
            
          2. Запустите файл waves.ts.

          # Mass Transfer

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

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

          1. Замените содержимое файла waves.ts следующим блоком кода:
            // Необходимые импорты.
            import { keyPair } from '@waves/ts-lib-crypto';
            import waves from '@waves/waves-transactions';
            
            // Получение необходимого типа транзакции.
            const { massTransfer, broadcast } = waves;
            
            // Укажите вашу сид-фразу.
            const seed: string = 'УКАЖИТЕ СИД-ФРАЗУ';
            
            // Создание пары ключей из сид-фразы.
            const { publicKey }: { publicKey: string } = keyPair(seed);
            
            // Укажите ID ассета или `null` для WAVES.
            const assetId: string | null = null;
            
            /*
             * Укажите получателей.
             * Каждая запись содержит адрес получателя и сумму перевода в наименьшей единице.
             */
            const transfers = [
                {
                    recipient: 'УКАЖИТЕ АДРЕС ПЕРВОГО ПОЛУЧАТЕЛЯ',
                    amount: 10000000 // Пример: 0.1 токена.
                },
                {
                    recipient: 'УКАЖИТЕ АДРЕС ВТОРОГО ПОЛУЧАТЕЛЯ',
                    amount: 20000000 // Пример: 0.2 токена.
                },
                // ...
            ];
            
            /*
             * Укажите ID сети:
             * - 'W' для Mainnet.
             * - 'T' для Testnet.
             */
            const chainId: string = 'T';
            
            /*
             * Укажите ссылку на сеть:
             * - Mainnet: 'https://nodes.wavesnodes.com/'
             * - Testnet: 'https://nodes-testnet.wavesnodes.com/'
             */
            const nodeUrl: string = 'https://nodes-testnet.wavesnodes.com';
            
            (async (): Promise<void> => {
            try {
                // Создание Mass-транзакции transaction.
                const tx = massTransfer(
                {
                    assetId,                                // ID ассета или `null` для WAVES.
                    transfers,                              // Список с трансферами.
                    fee: 100000 + 50000 * transfers.length, // Комиссия + 0.0005 WAVES за каждый трансфер.
                    attachment: '',                         // Приложение.
                    chainId,                                // ID сети.
                    senderPublicKey: publicKey              // Публинчый ключ отправителя транзакции.
                },
                seed
                );
            
                // Отправка транзакции на ноду.
                const result = await broadcast(tx, nodeUrl);
            
                // Вывод результатов.
                console.log('ID транзакции:', result.id);
                console.log('JSON-детали транзакции:', JSON.stringify(tx, null, 2));
            } catch (e) {
                console.error('Ошибка:', e);
            }
            })();
            
          2. Запустите файл waves.ts.

          # Exchange

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

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

          1. Замените содержимое файла waves.ts следующим блоком кода:
            // Необходимые импорты.
            import { keyPair } from '@waves/ts-lib-crypto';
            import { order, exchange, broadcast } from '@waves/waves-transactions';
            import axios from 'axios';
            
            // Укажите вашу сид-фразу.
            const seed: string = 'УКАЖИТЕ СИД-ФРАЗУ';
            
            // Создание пары ключей из сид-фразы.
            const { publicKey }: { publicKey: string; privateKey: string } = keyPair(seed);
            
            // Specify asset IDs.
            const matcherFeeAssetId: string | null = null;                             // null = WAVES.
            const amountAsset: string = 'kza1SwBGYkha3tWMjZ68p5dUN1o4CgenbbKkVFFEVc4'; // Пример кастомного токена.
            const priceAsset: string | null = null;                                    // null = WAVES.
            
            // Specify the matcher address.
            const matcherPublicKey: string = publicKey;
            
            // Helper to fetch decimals for any asset.
            async function getTokenDecimals(assetId: string | null, nodeUrl: string): Promise<number> {
            if (!assetId) return 8; // WAVES always has 8 decimals.
            const resp = await axios.get(`${nodeUrl}/assets/details/${assetId}`);
            return resp.data.decimals;
            }
            
            /*
             * Укажите ID сети:
             * - 'W' для Mainnet.
             * - 'T' для Testnet.
             */
            const chainId: number = 'T'.charCodeAt(0);
            
            /*
             * Укажите ссылку на сеть:
             * - Mainnet: 'https://nodes.wavesnodes.com/'
             * - Testnet: 'https://nodes-testnet.wavesnodes.com/'
             */
            const nodeUrl: string = 'https://nodes-testnet.wavesnodes.com';
            
            // Define shared order parameters.
            const commonOrderParams = {
            matcherPublicKey,                        // Публичный ключ матчера.
            matcherFee: 300000,                      // Комиссия матчера.
            version: 3 as const,                     // Версия ордера.
            expiration: Date.now() + 1000 * 60 * 60, // Время эксипрации ордера: 1 час.
            timestamp: Date.now()                    // Временная метка.
            };
            
            (async (): Promise<void> => {
            try {
                // Получение данных о десятичных дробях для обоих ассетов.
                const amountAssetDecimals = await getTokenDecimals(amountAsset, nodeUrl);
                const priceAssetDecimals = await getTokenDecimals(priceAsset, nodeUrl);
            
                // Вычисление количество и цены ордера.
                const amount = 1 * 10 ** amountAssetDecimals;                                     // Количество: 1 токен.
                const pricePerTokenInWaves = 0.01;                                                // Цена токена: 0.01 WAVES.
                const priceInWavesMinimalUnits = pricePerTokenInWaves * 10 ** priceAssetDecimals; // 1_000_000.
                const price = (priceInWavesMinimalUnits * 10 ** amountAssetDecimals).toString();  // Пример расчёта финальной стоимости.
            
                // Create a buy order.
                const buyOrder = order(
                {
                    ...commonOrderParams,
                    orderType: 'buy',           // Тип ордера.
                    price,                      // Стоимость токена.
                    amount,                     // Количество токена.
                    senderPublicKey: publicKey, // Публинчый ключ отправителя транзакции.
                    matcherFeeAssetId,          // ID ассета, используемого матчера для оплаты комиссии.
                    amountAsset,                // Количество токена.
                    priceAsset                  // Цена токена.
                },
                seed
                );
            
                // Create a sell order.
                const sellOrder = order(
                {
                    ...commonOrderParams,
                    orderType: 'sell',          // Тип ордера.
                    price,                      // Стоимость токена.
                    amount,                     // Количество токена.
                    senderPublicKey: publicKey, // Публинчый ключ отправителя транзакции.
                    matcherFeeAssetId,          // ID ассета, используемого матчера для оплаты комиссии.
                    amountAsset,                // Количество токена.
                    priceAsset                  // Стоимость токена.
                },
                seed
                );
            
                // Создание Exchange transaction-транзакции.
                const tx = exchange(
                {
                    order1: buyOrder,           // Тип первого ордера: buy.
                    order2: sellOrder,          // Тип второго ордера: sell.
                    amount,                     // Сумма обмена.
                    price,                      // Стоимость обмена.
                    buyMatcherFee: 300000,      // Комиссия матчера на покупку.
                    sellMatcherFee: 300000,     // Комиссия матчера на продажу.
                    fee: 700000,                // Комиссия.
                    senderPublicKey: publicKey, // Комиссия ключ отправителя транзакции.
                    chainId,                    // ID сети.
                    type: 7,                    // Тип транзакции.
                    timestamp: Date.now(),      // Временная метка.
                    version: 3,                 // Версия транзакции.
                    proofs: []                  // Proofs.
                },
                seed
                );
            
                // Отправка транзакции на ноду.
                const result = await broadcast(tx, nodeUrl);
            
                // Вывод результатов.
                console.log('ID транзакции:', result.id);
                console.log('JSON-детали транзакции:', JSON.stringify(tx, null, 2));
            } catch (e) {
                console.error('Ошибка:', e);
            }
            })();
            
          2. Запустите файл waves.ts.

          # Lease

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

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

          1. Замените содержимое файла waves.ts следующим блоком кода:
            // Необходимые импорты.
            import { keyPair } from '@waves/ts-lib-crypto';
            import waves from '@waves/waves-transactions';
            
            // Получение необходимого типа транзакции.
            const { lease, broadcast } = waves;
            
            // Укажите вашу сид-фразу.
            const seed: string = 'УКАЖИТЕ СИД-ФРАЗУ';
            
            // Создание пары ключей из сид-фразы.
            const { publicKey }: { publicKey: string } = keyPair(seed);
            
            // Укадите адрес получателя.
            const recipient: string = 'УКАЖИТЕ АДРЕС ПОЛУЧАТЕЛЯ';
            
            /*
             * Укажите ID сети:
             * - 'W' для Mainnet.
             * - 'T' для Testnet.
             */
            const chainId: string = 'T';
            
            /*
             * Укажите ссылку на сеть:
             * - Mainnet: 'https://nodes.wavesnodes.com/'
             * - Testnet: 'https://nodes-testnet.wavesnodes.com/'
             */
            const nodeUrl: string = 'https://nodes-testnet.wavesnodes.com';
            
            (async (): Promise<void> => {
            try {
                // Создание Lease-транзакции.
                const tx = lease(
                {
                    recipient,                 // Адрес получателя лизинга.
                    amount: 500000000,         // Сумма лизинга в наименьшей единице. Например: `500000000` для 5 WAVES.
                    fee: 100000,               // Комиссия.
                    chainId,                   // ID сети.
                    senderPublicKey: publicKey // Публинчый ключ отправителя транзакции.
                },
                seed
                );
            
                // Отправка транзакции на ноду.
                const result = await broadcast(tx, nodeUrl);
            
                // Вывод результатов.
                console.log('ID транзакции:', result.id);
                console.log('JSON-детали транзакции:', JSON.stringify(tx, null, 2));
            } catch (e) {
                console.error('Ошибка:', e);
            }
            })();
            
          2. Запустите файл waves.ts.

          # Lease Cancel

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

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

          1. Замените содержимое файла waves.ts следующим блоком кода:
            // Необходимые импорты.
            import { keyPair } from '@waves/ts-lib-crypto';
            import waves from '@waves/waves-transactions';
            
            // Получение необходимого типа транзакции.
            const { cancelLease, broadcast } = waves;
            
            // Укажите вашу сид-фразу.
            const seed: string = 'УКАЖИТЕ СИД-ФРАЗУ';
            
            // Создание пары ключей из сид-фразы.
            const { publicKey }: { publicKey: string } = keyPair(seed);
            
            // Укажите ID Lease-транзакции для отмены.
            const leaseId: string = 'УКАЖИТЕ ID LEASE-ТРАНЗАКЦИИ';
            
            /*
             * Укажите ID сети:
             * - 'W' для Mainnet.
             * - 'T' для Testnet.
             */
            const chainId: string = 'T';
            
            /*
             * Укажите ссылку на сеть:
             * - Mainnet: 'https://nodes.wavesnodes.com/'
             * - Testnet: 'https://nodes-testnet.wavesnodes.com/'
             */
            const nodeUrl: string = 'https://nodes-testnet.wavesnodes.com';
            
            (async (): Promise<void> => {
            try {
                // Создание Lease-транзакции.
                const tx = cancelLease(
                {
                    leaseId,                   // ID of the lease transaction to cancel.
                    fee: 100000,               // Комиссия.
                    chainId,                   // ID сети.
                    senderPublicKey: publicKey // Публинчый ключ отправителя транзакции.
                },
                seed
                );
            
                // Отправка транзакции на ноду.
                const result = await broadcast(tx, nodeUrl);
            
                // Вывод результатов.
                console.log('ID транзакции:', result.id);
                console.log('JSON-детали транзакции:', JSON.stringify(tx, null, 2));
            } catch (e) {
                console.error('Ошибка:', e);
            }
            })();
            
          2. Запустите файл waves.ts.

          # Create Alias

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

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

          1. Замените содержимое файла waves.ts следующим блоком кода:
            // Необходимые импорты.
            import { keyPair } from '@waves/ts-lib-crypto';
            import waves from '@waves/waves-transactions';
            
            // Получение необходимого типа транзакции.
            const { alias, broadcast } = waves;
            
            // Укажите вашу сид-фразу.
            const seed: string = 'УКАЖИТЕ СИД-ФРАЗУ';
            
            // Создание пары ключей из сид-фразы.
            const { publicKey }: { publicKey: string } = keyPair(seed);
            
            // Укажите псевдоним.
            const aliasName: string = 'my-custom-alias'; // Пример значения.
            
            /*
             * Укажите ID сети:
             * - 'W' для Mainnet.
             * - 'T' для Testnet.
             */
            const chainId: string = 'T';
            
            /*
             * Укажите ссылку на сеть:
             * - Mainnet: 'https://nodes.wavesnodes.com/'
             * - Testnet: 'https://nodes-testnet.wavesnodes.com/'
             */
            const nodeUrl: string = 'https://nodes-testnet.wavesnodes.com';
            
            (async (): Promise<void> => {
            try {
                // Создание Alias-транзакции.
                const tx = alias(
                {
                    alias: aliasName,          // Псевдоним.
                    fee: 100000,               // Комиссия.
                    chainId,                   // ID сети.
                    senderPublicKey: publicKey // Публинчый ключ отправителя транзакции.
                },
                seed
                );
            
                // Отправка транзакции на ноду.
                const result = await broadcast(tx, nodeUrl);
            
                // Вывод результатов.
                console.log('ID транзакции:', result.id);
                console.log('JSON-детали транзакции:', JSON.stringify(tx, null, 2));
            } catch (e) {
                console.error('Ошибка:', e);
            }
            })();
            
          2. Запустите файл waves.ts.

          # Data

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

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

          1. Замените содержимое файла waves.ts следующим блоком кода:
            // Необходимые импорты.
            import { keyPair } from '@waves/ts-lib-crypto';
            import waves from '@waves/waves-transactions';
            
            // Получение необходимого типа транзакции.
            const { data, broadcast } = waves;
            
            // Укажите вашу сид-фразу.
            const seed: string = 'УКАЖИТЕ СИД-ФРАЗУ';
            
            // Создание пары ключей из сид-фразы.
            const { publicKey }: { publicKey: string } = keyPair(seed);
            
            // Укажите записи данных в формате ключ-значение.
            const dataEntries = [
            { key: 'intKey', type: 'integer' as const, value: 123 },
            { key: 'boolKey', type: 'boolean' as const, value: true },
            { key: 'stringKey', type: 'string' as const, value: 'Hello Waves' },
            { key: 'binaryKey', type: 'binary' as const, value: 'base64:SGVsbG8=' }
            ];
            
            /*
             * Укажите ID сети:
             * - 'W' для Mainnet.
             * - 'T' для Testnet.
             */
            const chainId: string = 'T';
            
            /*
             * Укажите ссылку на сеть:
             * - Mainnet: 'https://nodes.wavesnodes.com/'
             * - Testnet: 'https://nodes-testnet.wavesnodes.com/'
             */
            const nodeUrl: string = 'https://nodes-testnet.wavesnodes.com';
            
            (async (): Promise<void> => {
            try {
                // Создание Data-транзакции.
                const tx = data(
                {
                    data: dataEntries,         // Записи данных в формате «ключ-значение».
                    fee: 500000,               // Комиссия.
                    chainId,                   // ID сети.
                    senderPublicKey: publicKey // Публинчый ключ отправителя транзакции.
                },
                seed
                );
            
                // Отправка транзакции на ноду.
                const result = await broadcast(tx, nodeUrl);
            
                // Вывод результатов.
                console.log('ID транзакции:', result.id);
                console.log('JSON-детали транзакции:', JSON.stringify(tx, null, 2));
            } catch (e) {
                console.error('Ошибка:', e);
            }
            })();
            
          2. Запустите файл waves.ts.

          # Set Script

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

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

          1. Замените содержимое файла waves.ts следующим блоком кода:
            // Необходимые импорты.
            import { keyPair } from '@waves/ts-lib-crypto';
            import waves from '@waves/waves-transactions';
            import fetch from 'node-fetch';
            
            // Получение необходимого типа транзакции.
            const { setScript, broadcast } = waves;
            
            // Укажите вашу сид-фразу.
            const seed: string = 'УКАЖИТЕ СИД-ФРАЗУ';
            
            // Создание пары ключей из сид-фразы.
            const { publicKey }: { publicKey: string } = keyPair(seed);
            
            // Укажите Ride-скрипт аккаунта.
            const script: string = `
            {-# STDLIB_VERSION 6 #-}
            {-# CONTENT_TYPE EXPRESSION #-}
            {-# SCRIPT_TYPE ACCOUNT #-}
            true
            `;
            
            /*
             * Укажите ID сети:
             * - 'W' для Mainnet.
             * - 'T' для Testnet.
             */
            const chainId: string = 'T';
            
            /*
             * Укажите ссылку на сеть:
             * - Mainnet: 'https://nodes.wavesnodes.com/'
             * - Testnet: 'https://nodes-testnet.wavesnodes.com/'
             */
            const nodeUrl: string = 'https://nodes-testnet.wavesnodes.com';
            
            (async (): Promise<void> => {
            try {
                // Компиляция скрипта через REST API ноды.
                const response = await fetch(`${nodeUrl}/utils/script/compileCode`, {
                    method: 'POST',
                    headers: {
                        'Content-Type': 'text/plain',
                        'accept': 'application/json'
                    },
                    body: script.trim()
                });
            
                if (!response.ok) throw new Error(`Ошибка компиляции скрипта: ${response.statusText}`);
                const { script: scriptBase64 } = await response.json();
            
                // Создание транзакции Set Script.
                const tx = setScript(
                {
                    script: scriptBase64,      // Скомпилированный Ride-скрипт или `null` для удаления скрипта.
                    fee: 1400000,              // Комиссия.
                    chainId,                   // ID сети.
                    senderPublicKey: publicKey // Публинчый ключ отправителя транзакции.
                },
                seed
                );
            
                // Отправка транзакции на ноду.
                const result = await broadcast(tx, nodeUrl);
            
                // Вывод результатов.
                console.log('ID транзакции:', result.id);
                console.log('JSON-детали транзакции:', JSON.stringify(tx, null, 2));
            } catch (e) {
                console.error('Ошибка:', e);
            }
            })();
            
          2. Запустите файл waves.ts.

          # Set Asset Script

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

          NOTE: You can set an asset script only on those asset that were issued with a ride script attached.

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

          1. Замените содержимое файла waves.ts следующим блоком кода:
            // Необходимые импорты.
            import { keyPair } from '@waves/ts-lib-crypto';
            import waves from '@waves/waves-transactions';
            import fetch from 'node-fetch';
            
            // Получение необходимого типа транзакции.
            const { setAssetScript, broadcast } = waves;
            
            // Укажите вашу сид-фразу.
            const seed: string = 'УКАЖИТЕ СИД-ФРАЗУ';
            
            // Создание пары ключей из сид-фразы.
            const { publicKey }: { publicKey: string } = keyPair(seed);
            
            // Укажите ID ассета.
            const assetId: string = 'УКАЖИТЕ ID АССЕТА';
            
            // Укажите Ride-скрипт ассета.
            const script: string = `
            {-# STDLIB_VERSION 6 #-}
            {-# CONTENT_TYPE EXPRESSION #-}
            {-# SCRIPT_TYPE ASSET #-}
            true
            `;
            
            /*
             * Укажите ID сети:
             * - 'W' для Mainnet.
             * - 'T' для Testnet.
             */
            const chainId: string = 'T';
            
            /*
             * Укажите ссылку на сеть:
             * - Mainnet: 'https://nodes.wavesnodes.com/'
             * - Testnet: 'https://nodes-testnet.wavesnodes.com/'
             */
            const nodeUrl: string = 'https://nodes-testnet.wavesnodes.com';
            
            (async (): Promise<void> => {
            try {
                // Compile the script using the Node REST API.
                const response = await fetch(`${nodeUrl}/utils/script/compileCode`, {
                    method: 'POST',
                    headers: {
                        'Content-Type': 'text/plain',
                        'accept': 'application/json'
                    },
                    body: script.trim()
                });
            
                if (!response.ok) throw new Error(`Ошибка компиляции скрипта: ${response.statusText}`);
                const { script: scriptBase64 } = await response.json();
            
                // Создание Set-транзакции Script transaction.
                const tx = setAssetScript(
                {
                    assetId,                   // ID ассета.
                    script: scriptBase64,      // Скомпилированный скрипт или `null`.
                    fee: 100000000,            // Комиссия in WAVES.
                    chainId,                   // ID сети.
                    senderPublicKey: publicKey // Публинчый ключ отправителя транзакции.
                },
                seed
                );
            
                // Отправка транзакции на ноду.
                const result = await broadcast(tx, nodeUrl);
            
                // Вывод результатов.
                console.log('ID транзакции:', result.id);
                console.log('JSON-детали транзакции:', JSON.stringify(tx, null, 2));
            } catch (e) {
                console.error('Ошибка:', e);
            }
            })();
            
          2. Запустите файл waves.ts.

          # Update Asset Info

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

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

          1. Замените содержимое файла waves.ts следующим блоком кода:
            // Необходимые импорты.
            import { keyPair } from '@waves/ts-lib-crypto';
            import waves from '@waves/waves-transactions';
            
            // Получение необходимого типа транзакции.
            const { updateAssetInfo, broadcast } = waves;
            
            // Укажите вашу сид-фразу.
            const seed: string = 'УКАЖИТЕ СИД-ФРАЗУ';
            
            // Создание пары ключей из сид-фразы.
            const { publicKey }: { publicKey: string } = keyPair(seed);
            
            // Specify the asset ID to update.
            const assetId: string = 'УКАЖИТЕ ID АССЕТА';
            
            /*
             * Укажите ID сети:
             * - 'W' для Mainnet.
             * - 'T' для Testnet.
             */
            const chainId: string = 'T';
            
            /*
             * Укажите ссылку на сеть:
             * - Mainnet: 'https://nodes.wavesnodes.com/'
             * - Testnet: 'https://nodes-testnet.wavesnodes.com/'
             */
            const nodeUrl: string = 'https://nodes-testnet.wavesnodes.com';
            
            (async (): Promise<void> => {
            try {
                // Build an Update Asset Info transaction.
                const tx = updateAssetInfo(
                {
                    assetId,                            // ID ассета.
                    name: 'NewTokenName',               // Новое наименование.
                    description: 'Updated description', // Новое описание.
                    fee: 100000000,                     // Комиссия. Пример: `100000000` для 1 WAVES.
                    chainId,                            // ID сети.
                    senderPublicKey: publicKey          // Публинчый ключ отправителя транзакции.
                },
                seed
                );
            
                // Отправка транзакции на ноду.
                const result = await broadcast(tx, nodeUrl);
            
                // Вывод результатов.
                console.log('ID транзакции:', result.id);
                console.log('JSON-детали транзакции:', JSON.stringify(tx, null, 2));
            } catch (e) {
                console.error('Ошибка:', e);
            }
            })();
            
          2. Запустите файл waves.ts.

          # Invoke Script

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

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

          1. Замените содержимое файла waves.ts следующим блоком кода:
            // Необходимые импорты.
            import { keyPair } from '@waves/ts-lib-crypto';
            import waves from '@waves/waves-transactions';
            
            // Получение необходимого типа транзакции.
            const { invokeScript, broadcast } = waves;
            
            // Укажите вашу сид-фразу.
            const seed: string = 'УКАЖИТЕ СИД-ФРАЗУ';
            
            // Создание пары ключей из сид-фразы.
            const { publicKey }: { publicKey: string } = keyPair(seed);
            
            // Укажите адрес dApp-приложения.
            const dappAddress: string = 'УКАЖИТЕ АДРЕС DAPP-ПРИЛОЖЕНИЯ';
            
            // Укажите ID ассета или `null` для WAVES.
            const assetId: string = 'kza1SwBGYkha3tWMjO68p5dUN1o4CgenbbKkVFFEVc5'; // Пример значения.
            
            /*
             * Укажите ID сети:
             * - 'W' для Mainnet.
             * - 'T' для Testnet.
             */
            const chainId: string = 'T';
            
            /*
             * Укажите ссылку на сеть:
             * - Mainnet: 'https://nodes.wavesnodes.com/'
             * - Testnet: 'https://nodes-testnet.wavesnodes.com/'
             */
            const nodeUrl: string = 'https://nodes-testnet.wavesnodes.com';
            
            (async (): Promise<void> => {
            try {
                // Build an Invoke Script transaction.
                const tx = invokeScript(
                {
                    dApp: dappAddress,                // Адрес dApp.
                    call: {
                        function: 'yourFunctionName', // Вызываемая функция.
                        args: []                      // Аргументы при их наличии.
                    },
                    payment: [
                        {
                            assetId,                  // ID ассета или `null` для WAVES.
                            amount: 1000000           // Сумма трансфера.
                        }
                    ],
                    fee: 500000,                      // Комиссия. Минимальная комиссия = 0.005 WAVES.
                    chainId,                          // ID сети.
                    senderPublicKey: publicKey        // Публинчый ключ отправителя транзакции.
                },
                seed
                );
            
                // Отправка транзакции на ноду.
                const result = await broadcast(tx, nodeUrl);
            
                // Вывод результатов.
                console.log('ID транзакции:', result.id);
                console.log('JSON-детали транзакции:', JSON.stringify(tx, null, 2));
            } catch (e) {
                console.error('Ошибка:', e);
            }
            })();
            
          2. Запустите файл waves.ts.

          # Sponsor Fee

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

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

          1. Замените содержимое файла waves.ts следующим блоком кода:
            // Необходимые импорты.
            import { keyPair } from '@waves/ts-lib-crypto';
            import waves from '@waves/waves-transactions';
            
            // Получение необходимого типа транзакции.
            const { sponsorship, broadcast } = waves;
            
            // Укажите вашу сид-фразу.
            const seed: string = 'УКАЖИТЕ СИД-ФРАЗУ';
            
            // Создание пары ключей из сид-фразы.
            const { publicKey }: { publicKey: string } = keyPair(seed);
            
            // Укажите ID спонсорского ассета.
            const assetId: string = 'УКАЖИТЕ ID АССЕТА';
            
            /*
             * Укажите ID сети:
             * - 'W' для Mainnet.
             * - 'T' для Testnet.
             */
            const chainId: string = 'T';
            
            /*
             * Укажите ссылку на сеть:
             * - Mainnet: 'https://nodes.wavesnodes.com/'
             * - Testnet: 'https://nodes-testnet.wavesnodes.com/'
             */
            const nodeUrl: string = 'https://nodes-testnet.wavesnodes.com';
            
            (async (): Promise<void> => {
            try {
                // Создание транзакции Sponsor Fee.
                const tx = sponsorship(
                {
                    assetId,                   // ID ассета.
                    minSponsoredAssetFee: 1,   // Минимальная комиссия актива в наименьшей единице.
                    fee: 100000000,            // Комиссия in WAVES.
                    chainId,                   // ID сети.
                    senderPublicKey: publicKey // Публинчый ключ отправителя транзакции.
                },
                seed
                );
            
                // Отправка транзакции на ноду.
                const result = await broadcast(tx, nodeUrl);
            
                // Вывод результатов.
                console.log('ID транзакции:', result.id);
                console.log('JSON-детали транзакции:', JSON.stringify(tx, null, 2));
            } catch (e) {
                console.error('Ошибка:', e);
            }
            })();
            
          2. Запустите файл waves.ts.
          Запуск кода
          Использование криптографических утилит
          Запуск кода
          Использование криптографических утилит