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
    • Waves-python
      • Установка SDK
        Установка SDK
      Waves-python
    • 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. Замените содержимое файла Program.cs следующим блоком кода:
            // Необходимые импорты.
            using WavesLabs.Node.Client;
            using WavesLabs.Node.Transactions.Common;
            using WavesLabs.Node.Transactions;
            using WavesLabs.Node.Client.Transactions;
            
            // Создайте экземпляр ноды в необходимой сети: Testnet, Mainnet или Stagenet.
            var node = new Node(Profile.MainNet);
            
            // Создайте приватный ключ из сид-фразы кошелька.
            var senderPrivateKey = PrivateKey.FromSeed("УКАЖИТЕ ВАШУ СИД-ФРАЗУ");
            
            // Создайте публичный ключ из привантного.
            var senderPublicKey = senderPrivateKey.PublicKey;
            
            /* 
            Укажите скрипт ассета:
            - Укажите `null` для создания обычного ассета.
            - Укажите Ride-скрипт для создания смарт-ассета.
            */
            var txScript = "PASTE YOUR ASSET SCRIPT HERE";
            
            // Создайте Issue транзакцию.
            var issueTx = IssueTransactionBuilder.Params(
            "Sampleasset1",             // Имя.
            1000,                       // Количество (в наименьшей единице, например, `1000` для 10 токенов).
            2,                          // Количество знаков после запятой.
            "description of the asset", // Описание.
            false,                      // Флаг, указывающий на возможность повторного выпуска актива.
            txScript                    // Скомпилированный скрипт в кодировке base64 или `null`.
            ).GetSignedWith(senderPrivateKey);
            
            // Отправьте транзакцию на ноду.
            node.WaitForTransaction(node.Broadcast(issueTx).Id);
            
            // Получите информацию о транзакции от ноды.
            var txInfo = node.GetTransactionInfo<IssueTransactionInfo>(issueTx.Id);
            
            // Выведите ID транзакции.
            Console.WriteLine(txInfo.Transaction.Id.ToString());
            
          2. Запустите приложение:
            dotnet run
            

          # Reissue

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

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

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

          1. Замените содержимое файла Program.cs следующим блоком кода:
            // Необходимые импорты.
            using WavesLabs.Node.Client;
            using WavesLabs.Node.Transactions.Common;
            using WavesLabs.Node.Transactions;
            using WavesLabs.Node.Client.Transactions;
            
            // Создайте экземпляр ноды в необходимой сети: Testnet, Mainnet или Stagenet.
            var node = new Node(Profile.MainNet);
            
            // Создайте приватный ключ из сид-фразы кошелька.
            var senderPrivateKey = PrivateKey.FromSeed("УКАЖИТЕ ВАШУ СИД-ФРАЗУ");
            
            // Создайте публичный ключ из привантного.
            var senderPublicKey = senderPrivateKey.PublicKey;
            
            // Укажите ID вашего ассета.
            var assetId = AssetId.As("УКАЖИТЕ ID ВАШЕГО АССЕТА");
            
            // Создайте Reissue транзакцию.
            var reissueTx = ReissueTransactionBuilder.Params(
                assetId, 
                143,  // Новое количество.
                false // Новый флаг перевыпускаемости ассета.
                ).GetSignedWith(senderPrivateKey);
            
            // Отправьте транзакцию на ноду.
            node.WaitForTransaction(node.Broadcast(reissueTx).Id);
            
            // Получите информацию о транзакции от ноды.
            var txInfo = node.GetTransactionInfo<ReissueTransactionInfo>(reissueTx.Id);
            
            // Выведите ID транзакции.
            Console.WriteLine(txInfo.Transaction.Id.ToString());
            
          2. Запустите приложение:
            dotnet run
            

          # Burn

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

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

          1. Замените содержимое файла Program.cs следующим блоком кода:
            // Необходимые импорты.
            using WavesLabs.Node.Client;
            using WavesLabs.Node.Transactions.Common;
            using WavesLabs.Node.Transactions;
            using WavesLabs.Node.Client.Transactions;
            
            // Создайте экземпляр ноды в необходимой сети: Testnet, Mainnet или Stagenet.
            var node = new Node(Profile.MainNet);
            
            // Создайте приватный ключ из сид-фразы кошелька.
            var senderPrivateKey = PrivateKey.FromSeed("УКАЖИТЕ ВАШУ СИД-ФРАЗУ");
            
            // Создайте публичный ключ из привантного.
            var senderPublicKey = senderPrivateKey.PublicKey;
            
            // Укажите ID вашего ассета.
            var assetId = AssetId.As("УКАЖИТЕ ID ВАШЕГО АССЕТА");
            
            // Укажите количество ассета в наименьшей единице, например, `1000` для 10 токенов.
            var amount = 1000;
            
            // Создайте Burn транзакцию.
            var burnTx = BurnTransactionBuilder.Params(assetId, amount).GetSignedWith(senderPrivateKey);
            
            // Отправьте транзакцию на ноду.
            node.WaitForTransaction(node.Broadcast(burnTx).Id);
            
            // Получите информацию о транзакции от ноды.
            var txInfo = node.GetTransactionInfo<BurnTransactionInfo>(burnTx.Id);
            
            // Выведите ID транзакции.
            Console.WriteLine(txInfo.Transaction.Id.ToString());
            
          2. Запустите приложение:
            dotnet run
            

          # Transfer

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

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

          1. Замените содержимое файла Program.cs следующим блоком кода:
            // Необходимые импорты.
            using WavesLabs.Node.Client;
            using WavesLabs.Node.Transactions.Common;
            using WavesLabs.Node.Transactions;
            using WavesLabs.Node.Client.Transactions;
            
            // Создайте экземпляр ноды в необходимой сети: Testnet, Mainnet или Stagenet.
            var node = new Node(Profile.MainNet);
            
            // Создайте приватный ключ из сид-фразы кошелька.
            var senderPrivateKey = PrivateKey.FromSeed("УКАЖИТЕ ВАШУ СИД-ФРАЗУ");
            
            // Создайте публичный ключ из привантного.
            var senderPublicKey = senderPrivateKey.PublicKey;
            
            // Укажите адрес получателя.
            Address recipient = new Address("УКАЖИТЕ АДРЕС ПОЛУЧАТЕЛЯ");
            
            // Укажите сумму перевода в наименьшей единице, например, `1000` для 10 токенов.
            var amount = 1000;
            
            /* 
            Укажите ID ассета:
            - Для WAVESs, используйте `AssetId.Waves`.
            - Для кастомных ассетов укажите ID ассета.
            */
            var assetId = AssetId.As("УКАЖИТЕ ID ВАШЕГО АССЕТА");
            
            /*
            Укажите вложение:
            - Используйте `null` для отправки пустого сообщения.
            - Или введите сообщение.
            */
            var attachment = "УКАЖИТЕ СООБЩЕНИЕ";
            
            // Создайте Transfer транзакцию.
            var tx = TransferTransactionBuilder.Params(recipient, amount, assetId, attachment)
                .GetSignedWith(senderPrivateKey);
            
            // Отправьте транзакцию на ноду.
            node.WaitForTransaction(node.Broadcast(tx).Id);
            
            // Получите информацию о транзакции от ноды.
            var txInfo = node.GetTransactionInfo<TransferTransactionInfo>(tx.Id);
            
            // Выведите ID транзакции.
            Console.WriteLine(txInfo.Transaction.Id.ToString());
            
          2. Запустите приложение:
            dotnet run
            

          # Mass Transfer

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

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

          1. Замените содержимое файла Program.cs следующим блоком кода:
            // Необходимые импорты.
            using WavesLabs.Node.Client;
            using WavesLabs.Node.Transactions.Common;
            using WavesLabs.Node.Transactions;
            using WavesLabs.Node.Client.Transactions;
            
            // Создайте экземпляр ноды в необходимой сети: Testnet, Mainnet или Stagenet.
            var node = new Node(Profile.MainNet);
            
            // Создайте приватный ключ из сид-фразы кошелька.
            var senderPrivateKey = PrivateKey.FromSeed("УКАЖИТЕ ВАШУ СИД-ФРАЗУ");
            
            // Создайте публичный ключ из привантного.
            var senderPublicKey = senderPrivateKey.PublicKey;
            
            /* 
            Укажите ID ассета:
            - Для WAVESs, используйте `AssetId.Waves`.
            - Для кастомных ассетов укажите ID ассета.
            */
            var assetId = AssetId.As("УКАЖИТЕ ID ВАШЕГО АССЕТА");
            
            // Укажите адрес первого получателя.
            var recipientAddress = new Address("УКАЖИТЕ АДРЕС ПЕРВОГО ПОЛУЧАТЕЛЯ");
            
            // Укажите сумму первого трансфера в наименьшей единице, например, `1000` для 10 токенов.
            var amount = 1000;
            
            // Укажите адрес второго получателя.
            var recipientAddressTwo = new Address("УКАЖИТЕ АДРЕС ВТОРОГО ПОЛУЧАТЕЛЯ");
            
            // Укажите сумму второго трансфера в наименьшей единице, например, `1000` для 10 токенов.
            var amountTwo = 1000;
            
            // Укажите адрес третьего получателя.
            var recipientAddressThree = new Address("УКАЖИТЕ АДРЕС ТРЕТЬЕГО ПОЛУЧАТЕЛЯ");
            
            // Укажите сумму третьего трансфера в наименьшей единице, например, `1000` для 10 токенов.
            var amountThree = 1000;
            
            // Создайте список получателей и сумм трансфера.
            var transfers = new List<Transfer> {
                Transfer.To(recipientAddress, amount),
                Transfer.To(recipientAddressTwo, amountTwo),
                Transfer.To(recipientAddressThree, amountThree)
            };
            
            // Создайте Mass Transfer транзакцию.
            var massTx = MassTransferTransactionBuilder.Params(transfers, assetId).GetSignedWith(senderPrivateKey);
            
            // Отправьте транзакцию на ноду.
            node.WaitForTransaction(node.Broadcast(massTx).Id);
            
            // Получите информацию о транзакции от ноды.
            var txInfo = node.GetTransactionInfo<MassTransferTransactionInfo>(massTx.Id);
            
            // Выведите ID транзакции.
            Console.WriteLine(txInfo.Transaction.Id.ToString());
            
          2. Запустите приложение:
            dotnet run
            

          # Exchange

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

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

          1. Замените содержимое файла Program.cs следующим блоком кода:
            // Необходимые импорты.
            using WavesLabs.Node.Client;
            using WavesLabs.Node.Transactions.Common;
            using WavesLabs.Node.Transactions;
            using WavesLabs.Node.Client.Transactions;
            
            // Создайте экземпляр ноды в необходимой сети: Testnet, Mainnet или Stagenet.
            var node = new Node(Profile.MainNet);
            
            // Создайте приватный ключ из сид-фразы кошелька.
            var senderPrivateKey = PrivateKey.FromSeed("УКАЖИТЕ ВАШУ СИД-ФРАЗУ");
            
            // Создайте публичный ключ из приватного ключа.
            var senderPublicKey = senderPrivateKey.PublicKey;
            
            // Укажите публичный ключ получателя.
            var recipientPublicKey = PublicKey.As("УКАЖИТЕ ПУБЛИЧНЫЙ КЛЮЧ ПОЛУЧАТЕЛЯ");
            
            /* 
            Укажите ID ассета:
            - Для WAVESs, используйте `AssetId.Waves`.
            - Для кастомных ассетов укажите ID ассета.
            */
            var assetId = AssetId.As("PASTE THE ASSET ID HERE");
            
            // Укажите сумму транзакции в наименьшей единице, например, `1000` для 10 токенов.
            var amount = Amount.As(250);
            
            // Укажите стоимость актива.
            var price = Amount.As(100, assetId);
            
            // Укажите комиссии матчера.
            var buyMatcherFee = 300_000;  // Комиссия за ордер на покупку.
            var sellMatcherFee = 350_000; // Комиссия за ордер на продажу.
            
            var assetPair = new AssetPair { AmountAsset = assetId, PriceAsset = assetId };
            
            // Создайте ордер на покупку (например, отправителем является матчер).
            var buyOrder = new OrderBuilder(
                OrderType.Buy,   // Типа оредера: на покупку.
                amount,          // Сумма покупки.
                price,           // Стоимость актива.
                senderPublicKey, // Публичный ключ отправителя транзакции.
                assetPair        // Пара активов.
            ).GetSignedWith(recipientPrivateKey);
            
            // Создайте ордер на продажу (например, отправителем является продавец).
            var sellOrder = new OrderBuilder(
                OrderType.Sell,  // Типа оредера: на продажу.
                amount,          // Сумма продажи.
                price,           // Стоимость актива.
                senderPublicKey, // Публичный ключ отправителя транзакции.
                assetPair        // Пара активов.
            ).GetSignedWith(senderPrivateKey);
            
            // Создайте Exchange транзакцию.
            var exchangeTx = ExchangeTransactionBuilder.Params(buyOrder, sellOrder, amount, price, buyMatcherFee, sellMatcherFee)
                .GetSignedWith(senderPrivateKey);
            
            // Отправьте транзакцию на ноду.
            node.WaitForTransaction(node.Broadcast(exchangeTx).Id);
            
            // Получите информацию о транзакции от ноды.
            var txInfo = node.GetTransactionInfo<ExchangeTransactionInfo>(exchangeTx.Id);
            
            // Выведите ID транзакции.
            Console.WriteLine(txInfo.Transaction.Id.ToString());
            
          2. Запустите приложение:
            dotnet run
            

          # Lease

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

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

          1. Замените содержимое файла Program.cs следующим блоком кода:
            // Необходимые импорты.
            using WavesLabs.Node.Client;
            using WavesLabs.Node.Transactions.Common;
            using WavesLabs.Node.Transactions;
            using WavesLabs.Node.Client.Transactions;
            
            // Создайте экземпляр ноды в необходимой сети: Testnet, Mainnet или Stagenet.
            var node = new Node(Profile.MainNet);
            
            // Создайте приватный ключ из сид-фразы кошелька.
            var senderPrivateKey = PrivateKey.FromSeed("УКАЖИТЕ ВАШУ СИД-ФРАЗУ");
            
            // Создайте публичный ключ из приватного ключа.
            var senderPublicKey = senderPrivateKey.PublicKey;
            
            // Define the recipient's public key.
            var recipientPublicKey = PublicKey.As("УКАЖИТЕ ПУБЛИЧНЫЙ КЛЮЧ ПОЛУЧАТЕЛЯ");
            
            // Define the recipient’s address
            var recipientAddress = new Address("УКАЖИТЕ АДРЕС ПОЛУЧАТЕЛЯ");
            
            // Создайте Lease транзакцию.
            var leaseTx = LeaseTransactionBuilder.Params(recipientAddress, amount).GetSignedWith(senderPrivateKey);
            
            // Отправьте транзакцию на ноду.
            node.WaitForTransaction(node.Broadcast(leaseTx).Id);
            
            // Получите информацию о транзакции от ноды.
            var txInfo = node.GetTransactionInfo<LeaseTransactionInfo>(leaseTx.Id);
            
            // Выведите ID транзакции.
            Console.WriteLine(txInfo.Transaction.Id.ToString());
            
          2. Запустите приложение:
            dotnet run
            

          # Lease Cancel

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

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

          1. Замените содержимое файла Program.cs следующим блоком кода:
            // Необходимые импорты.
            using WavesLabs.Node.Client;
            using WavesLabs.Node.Transactions.Common;
            using WavesLabs.Node.Transactions;
            using WavesLabs.Node.Client.Transactions;
            
            // Создайте экземпляр ноды в необходимой сети: Testnet, Mainnet или Stagenet.
            var node = new Node(Profile.MainNet);
            
            // Создайте приватный ключ из сид-фразы кошелька.
            var senderPrivateKey = PrivateKey.FromSeed("УКАЖИТЕ ВАШУ СИД-ФРАЗУ");
            
            // Создайте публичный ключ из приватного ключа.
            var senderPublicKey = senderPrivateKey.PublicKey;
            
            // Укажите ID транзакции Lease.
            var leaseTxId = new Base58s("УКАЖИТЕ ID ТРАНЗАКЦИИ LEASE");
            
            // Создайте Lease Cancel транзакцию.
            var leaseCancelTx = LeaseCancelTransactionBuilder.Params(leaseTxId).GetSignedWith(senderPrivateKey);
            
            // Отправьте транзакцию на ноду.
            node.WaitForTransaction(node.Broadcast(leaseCancelTx).Id);
            
            // Получите информацию о транзакции от ноды.
            var txInfo = node.GetTransactionInfo<LeaseCancelTransactionInfo>(leaseCancelTx.Id);
            
            // Выведите ID транзакции.
            Console.WriteLine(txInfo.Transaction.Id.ToString());
            
          2. Запустите приложение:
            dotnet run
            

          # Create Alias

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

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

          1. Замените содержимое файла Program.cs следующим блоком кода:
            // Необходимые импорты.
            using WavesLabs.Node.Client;
            using WavesLabs.Node.Transactions.Common;
            using WavesLabs.Node.Transactions;
            using WavesLabs.Node.Client.Transactions;
            
            // Создайте экземпляр ноды в необходимой сети: Testnet, Mainnet или Stagenet.
            var node = new Node(Profile.MainNet);
            
            // Создайте приватный ключ из сид-фразы кошелька.
            var senderPrivateKey = PrivateKey.FromSeed("УКАЖИТЕ ВАШУ СИД-ФРАЗУ");
            
            // Создайте публичный ключ из привантного.
            var senderPublicKey = senderPrivateKey.PublicKey;
            
            // Создайте псевдоним, используя текущее время.
            var alias = Alias.As("alias" + DateTimeOffset.UtcNow.ToUnixTimeMilliseconds());
            
            // Создайте Create Alias транзакцию.
            var createAliasTx = CreateAliasTransactionBuilder
                .Params(alias) // Псевдоним.
                .GetSignedWith(senderPrivateKey);
            
            // Отправьте транзакцию на ноду.
            node.WaitForTransaction(node.Broadcast(createAliasTx).Id);
            
            // Получите информацию о транзакции от ноды.
            var createAliasTxInfo = node.GetTransactionInfo<CreateAliasTransactionInfo>(createAliasTx.Id);
            
            // Выведите созданный псевдоним.
            Console.WriteLine(createAliasTxInfo.Transaction.Alias.ToFullString());
            
          2. Запустите приложение:
            dotnet run
            

          # Data

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

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

          1. Замените содержимое файла Program.cs следующим блоком кода:
            // Необходимые импорты.
            using WavesLabs.Node.Client;
            using WavesLabs.Node.Transactions.Common;
            using WavesLabs.Node.Transactions;
            using WavesLabs.Node.Client.Transactions;
            
            // Создайте экземпляр ноды в необходимой сети: Testnet, Mainnet или Stagenet.
            var node = new Node(Profile.MainNet);
            
            // Создайте приватный ключ из сид-фразы кошелька.
            var senderPrivateKey = PrivateKey.FromSeed("УКАЖИТЕ ВАШУ СИД-ФРАЗУ");
            
            // Создайте публичный ключ из приватного ключа.
            var senderPublicKey = senderPrivateKey.PublicKey;
            
            // Создайте Data транзакцию.
            var dataTx = DataTransactionBuilder.Params(
                // Список, состоящий из параметров `BinaryEntry`, `BooleanEntry`, `IntegerEntry`, `StringEntry` или `null`.
                new List<EntryData> { 
                    // `data.type` строка с параметром `data.key`, равным `test key 1` и `data.value`, равным `test value`.
                    DataEntry.AsString("test key 1", "test value"),
                    // `data.type` логическое значение с параметром `data.key`, равным `test key 2` и параметром `data.value`, равным `true`.
                    DataEntry.AsBoolean("test key 2", true)
                }).GetSignedWith(senderPrivateKey);
            
            // Отправьте транзакцию на ноду.
            node.WaitForTransaction(node.Broadcast(dataTx).Id);
            
            // Получите информацию о транзакции от ноды.
            var txInfo = node.GetTransactionInfo<DataTransactionInfo>(dataTx.Id);
            
            // Выведите ID транзакции.
            Console.WriteLine(txInfo.Transaction.Id.ToString());
            
          2. Запустите приложение:
            dotnet run
            

          # Set Script

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

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

          1. Замените содержимое файла Program.cs следующим блоком кода:
            // Необходимые импорты.
            using WavesLabs.Node.Client;
            using WavesLabs.Node.Transactions.Common;
            using WavesLabs.Node.Transactions;
            using WavesLabs.Node.Client.Transactions;
            
            // Создайте экземпляр ноды в необходимой сети: Testnet, Mainnet или Stagenet.
            var node = new Node(Profile.MainNet);
            
            // Создайте приватный ключ из сид-фразы кошелька.
            var senderPrivateKey = PrivateKey.FromSeed("УКАЖИТЕ ВАШУ СИД-ФРАЗУ");
            
            // Создайте публичный ключ из приватного ключа.
            var senderPublicKey = senderPrivateKey.PublicKey;
            
            // Создайте скрипт.
            var txScript = "PASTE YOUR SCRIPT HERE".
            
            // Скомпилируйте скрипт в кодировку Base64.
            var compiledScript = node.CompileScript(txScript).Script;
            
            // Создайте Set Script транзакцию.
            var tx = SetScriptTransactionBuilder.Params(compiledScript).GetSignedWith(senderPrivateKey);
            
            // Отправьте транзакцию на ноду.
            node.WaitForTransaction(node.Broadcast(tx).Id);
            
            // Получите информацию о транзакции от ноды.
            var txInfo = node.GetTransactionInfo<SetScriptTransactionInfo>(tx.Id);
            
            // Выведите ID транзакции.
            Console.WriteLine(txInfo.Transaction.Id.ToString());
            
          2. Запустите приложение:
            dotnet run
            

          # Set Asset Script

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

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

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

          1. Замените содержимое файла Program.cs следующим блоком кода:
            // Необходимые импорты.
            using WavesLabs.Node.Client;
            using WavesLabs.Node.Transactions.Common;
            using WavesLabs.Node.Transactions;
            using WavesLabs.Node.Client.Transactions;
            
            // Создайте экземпляр ноды в необходимой сети: Testnet, Mainnet или Stagenet.
            var node = new Node(Profile.MainNet);
            
            // Создайте приватный ключ из сид-фразы кошелька.
            var senderPrivateKey = PrivateKey.FromSeed("УКАЖИТЕ ВАШУ СИД-ФРАЗУ");
            
            // Создайте публичный ключ из приватного ключа.
            var senderPublicKey = senderPrivateKey.PublicKey;
            
            /* 
            Укажите ID ассета:
            - Для WAVESs, используйте `AssetId.Waves`.
            - Для кастомных ассетов укажите ID ассета.
            */
            var assetId = AssetId.As("PASTE THE ASSET ID HERE");
            
            // Создайте скрипт и скомипилируйте его в строку в кодировке Base64.
            var script = node.CompileScript("PASTE YOUR SCRIPT HERE").Script;
            
            // Создайте Set Asset Script транзакцию.
            var tx = SetAssetScriptTransactionBuilder.Params(assetId, script).GetSignedWith(senderPrivateKey);
            
            // Отправьте транзакцию на ноду.
            node.WaitForTransaction(node.Broadcast(tx).Id);
            
            // Получите информацию о транзакции от ноды.
            var txInfo = node.GetTransactionInfo<SetAssetScriptTransactionInfo>(tx.Id);
            
            // Выведите ID транзакции.
            Console.WriteLine(txInfo.Transaction.Id.ToString());
            
          2. Запустите приложение:
            dotnet run
            

          # Update Asset Info

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

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

          1. Замените содержимое файла Program.cs следующим блоком кода:
            // Необходимые импорты.
            using WavesLabs.Node.Client;
            using WavesLabs.Node.Transactions.Common;
            using WavesLabs.Node.Transactions;
            using WavesLabs.Node.Client.Transactions;
            
            // Создайте экземпляр ноды в необходимой сети: Testnet, Mainnet или Stagenet.
            var node = new Node(Profile.MainNet);
            
            // Создайте приватный ключ из сид-фразы кошелька.
            var senderPrivateKey = PrivateKey.FromSeed("УКАЖИТЕ ВАШУ СИД-ФРАЗУ");
            
            // Создайте публичный ключ из приватного ключа.
            var senderPublicKey = senderPrivateKey.PublicKey;
            
            // Укажите ID ассета.
            var assetId = AssetId.As("УКАЖИТЕ ID АССЕТА");
            
            // Укажите наименование ассета.
            var name = "УКАЖИТЕ НАИМЕНОВАНИЕ АССЕТА";
            
            // Укажите описание ассета.
            var description = "УКАЖИТЕ ОПИСАНИЕ АССЕТА";
            
            // Создайте Update Asset Info транзакцию.
            var updateAssetInfoTx = UpdateAssetInfoTransactionBuilder.Params(assetId, name, description).GetSignedWith(senderPrivateKey);
            
            // Отправьте транзакцию на ноду.
            node.WaitForTransaction(node.Broadcast(updateAssetInfoTx).Id);
            
            // Получите информацию о транзакции от ноды.
            var txInfo = node.GetTransactionInfo<UpdateAssetInfoTransactionInfo>(updateAssetInfoTx.Id);
            
            // Выведите ID транзакции.
            Console.WriteLine(txInfo.Transaction.Id.ToString());
            
          2. Запустите приложение:
            dotnet run
            

          # Invoke Script

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

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

          1. Замените содержимое файла Program.cs следующим блоком кода:
            // Необходимые импорты.
            using WavesLabs.Node.Client;
            using WavesLabs.Node.Transactions.Common;
            using WavesLabs.Node.Transactions;
            using WavesLabs.Node.Client.Transactions;
            
            // Создайте экземпляр ноды в необходимой сети: Testnet, Mainnet или Stagenet.
            var node = new Node(Profile.MainNet);
            
            // Создайте приватный ключ из сид-фразы кошелька.
            var senderPrivateKey = PrivateKey.FromSeed("УКАЖИТЕ ВАШУ СИД-ФРАЗУ");
            
            // Создайте публичный ключ из приватного ключа.
            var senderPublicKey = senderPrivateKey.PublicKey;
            
            // Укажите адрес вашего dApp-приложения.
            var dAppAddress = Address.As("УКАЖИТЕ АДРЕС ВАШЕГО DAPP");
            
            /* 
            Укажите ID ассета:
            - Для WAVESs, используйте `AssetId.Waves`.
            - Для кастомных ассетов укажите ID ассета.
            */
            var assetId = AssetId.As("УКАЖИТЕ ID ПЕРВОГО АССЕТА");
            var assetIdTwo = AssetId.As("УКАЖИТЕ ID ВТОРОГО АССЕТА");
            var assetIdThree = AssetId.As("УКАЖИТЕ ID ТРЕТЬЕГОА АССЕТА");
            
            // Создайте список платежей.
            var payments = new List<Amount> {
                Amount.As(1005, assetId),
                Amount.As(1005, assetIdTwo),
                Amount.As(1005, assetIdThree)
            };
            
            var call = new Call {
                Function = "fname",
                Args = new List<CallArg> {
                    // Бинарное значение `call.args.type` с параметром `call.args.value`, равным `senderAddress.bytes()`.
                    CallArg.AsBinary(senderAddress.Bytes),
                    // Логическое выражение `call.args.type` с параметром `call.args.value`, равным `true`.
                    CallArg.AsBoolean(true),
                    // Число `call.args.type` с параметром `call.args.value`, равным `100000`.
                    CallArg.AsInteger(100000),
                    // Строка `call.args.type` string с параметром `call.args.value`, равным `string value`.
                    CallArg.AsString("string value"),
                    // Список `call.args.type` с параметром `call.args.value`, равным `100000`.
                    CallArg.AsList(new [] {CallArg.AsInteger(100000) })
                }
            };
            
            // Создайте Invoke Script транзакцию.
            var invokeScriptTx = InvokeScriptTransactionBuilder.Params(dAppAddress, payments, call).GetSignedWith(senderPrivateKey);
            
            // Отправьте транзакцию на ноду.
            node.WaitForTransaction(node.Broadcast(invokeScriptTx).Id);
            
            // Получите информацию о транзакции от ноды.
            var txInfo = node.GetTransactionInfo<InvokeScriptTransactionInfo>(invokeScriptTx.Id);
            
            // Выведите ID транзакции.
            Console.WriteLine(txInfo.Transaction.Id.ToString());
            
          2. Запустите приложение:
            dotnet run
            

          # Sponsor Fee

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

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

          1. Замените содержимое файла Program.cs следующим блоком кода:
            // Необходимые импорты.
            using WavesLabs.Node.Client;
            using WavesLabs.Node.Transactions.Common;
            using WavesLabs.Node.Transactions;
            using WavesLabs.Node.Client.Transactions;
            
            // Создайте экземпляр ноды в необходимой сети: Testnet, Mainnet или Stagenet.
            var node = new Node(Profile.MainNet);
            
            // Создайте приватный ключ из сид-фразы кошелька.
            var senderPrivateKey = PrivateKey.FromSeed("УКАЖИТЕ ВАШУ СИД-ФРАЗУ");
            
            // Создайте публичный ключ из приватного ключа.
            var senderPublicKey = senderPrivateKey.PublicKey;
            
            /* 
            Укажите ID ассета:
            - Для WAVESs, используйте `AssetId.Waves`.
            - Для кастомных ассетов укажите ID ассета.
            */
            var assetId = AssetId.As("PASTE THE ASSET ID HERE");
            
            // Define the minimum sponsored asset fee в наименьшей единице, например, `1000` для 10 токенов.
            var minSponsoredAssetFee = 100000;
            
            // Создайте Sponsor Fee транзакцию.
            var sponsorFeeTx = SponsorFeeTransactionBuilder.Params(assetId, minSponsoredAssetFee).GetSignedWith(senderPrivateKey);
            
            // Отправьте транзакцию на ноду.
            node.WaitForTransaction(node.Broadcast(sponsorFeeTx).Id);
            
            // Получите информацию о транзакции от ноды.
            var txInfo = node.GetTransactionInfo<SponsorFeeTransactionInfo>(sponsorFeeTx.Id);
            
            // Выведите ID транзакции.
            Console.WriteLine(txInfo.Transaction.Id.ToString());
            
          2. Запустите приложение:
            dotnet run
            
          Запуск кода
          Использование криптографических утилит
          Запуск кода
          Использование криптографических утилит