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.py следующим блоком кода:
            • Для создания актива без скрипт:
              # Необходимые импорты.
              import pywaves as pw
              import time
              import json
              
              # Укажите ссылку на ноду и ID сети.
              pw.setNode(
                  # Укажите ссылку на ноду:
                  # - Mainnet: 'https://nodes.wavesnodes.com/'
                  # - Testnet: 'https://nodes-testnet.wavesnodes.com/'
                  # - Stagenet: 'https://nodes-stagenet.wavesnodes.com/'
                  node='https://nodes-testnet.wavesnodes.com', 
              
                  # Укажите ID сети:
                  # - Mainnet: 'M'
                  # - Testnet: 'T'
                  # - Stagenet: 'S'
                  chain='T'
              )
              
              # Укажите сид-фразу аккаунта.
              seed_phrase = 'УКАЖИТЕ СИД-ФРАЗУ'
              
              # Создание адреса из сид-фразы аккаунта.
              my_address = pw.Address(seed=seed_phrase)
              
              # Укажите параметры ассета.
              asset_name = 'Токен'                  # Наименование.
              asset_description = 'Описание ассета' # Описание.
              total_tokens = 1000                   # Количество.
              decimals = 2                          # Знаков после запятой.
              reissuable = True                     # Флаг, указывающий на возможность повторного выпуска актива.
              
              # Вычисление количества токенов в минимальной единице.
              quantity = total_tokens * (10 ** decimals)
              
              # Создание Issue-транзакции.
              try:
                  print("Выпуск ассета...")
                  issue_tx = my_address.issueAsset(
                      name=asset_name,
                      description=asset_description,
                      quantity=quantity,
                      decimals=decimals,
                      reissuable=reissuable
                  )
              except Exception as e:
                  print(f"Произошла ошибка при выпуске актива: {e}")
                  exit(1)
              
              # Ожидание появления транзакции в блокчейне.
              print("Ожидание подтверждения транзакции...")
              time.sleep(5)
              
              # Получение и вывод данных транзакции.
              try:
                  tx_data = issue_tx
                  print("Транзакция успешно выполнена! Детали:")
                  print(json.dumps(tx_data, indent=4))
              except Exception as e:
                  print(f"Возникла ошибка при получении данных транзакции: {e}")
              
            • For creating a smart asset:
              # Необходимые импорты.
              import pywaves as pw
              import time
              import json
              
              # Укажите ссылку на ноду и ID сети.
              pw.setNode(
                  # Укажите ссылку на ноду:
                  # - Mainnet: 'https://nodes.wavesnodes.com/'
                  # - Testnet: 'https://nodes-testnet.wavesnodes.com/'
                  # - Stagenet: 'https://nodes-stagenet.wavesnodes.com/'
                  node='https://nodes-testnet.wavesnodes.com',
              
                  # Укажите ID сети:
                  # - Mainnet: 'M'
                  # - Testnet: 'T'
                  # - Stagenet: 'S'
                  chain='T'
              )
              
              # Укажите сид-фразу аккаунта.
              seed_phrase = 'УКАЖИТЕ СИД-ФРАЗУ'
              
              # Создание адреса из сид-фразы аккаунта.
              my_address = pw.Address(seed=seed_phrase)
              
              # Укажите параметры смарт ассета.
              asset_name = 'MySmartToken'              # Наименование.
              asset_description = 'A smart asset test' # Описание.
              total_tokens = 1000                      # Количество.
              decimals = 2                             # Знаков после запятой.
              reissuable = True                        # Флаг, указывающий на возможность повторного выпуска актива.
              
              # Укажите Ride-скрипт смарт ассета.
              script_source = """
              {-# STDLIB_VERSION 8 #-}
              {-# CONTENT_TYPE EXPRESSION #-}
              {-# SCRIPT_TYPE ASSET #-}
              true
              """
              
              # Вычисление количества токенов в минимальной единице.
              quantity = total_tokens * (10 ** decimals)
              
              # Создание Issue-транзакции.
              try:
                  print("Выпуск смарт-ассета...")
                  issue_tx = my_address.issueSmartAsset(
                      asset_name,
                      asset_description,
                      quantity,
                      scriptSource=script_source,
                      decimals=decimals,
                      reissuable=reissuable
                  )
              except Exception as e:
                  print(f"Произошла ошибка при выпуске актива: {e}")
                  exit(1)
              
              # Ожидание появления транзакции в блокчейне.
              print("Ожидание подтверждения транзакции...")
              time.sleep(5)
              
              # Получение и вывод данных транзакции.
              try:
                  tx_data = issue_tx
                  print("Смарт-ассет успешно создан. Детали:")
                  print(json.dumps(tx_data, indent=4))
              except Exception as e:
                  print(f"Возникла ошибка при получении данных транзакции: {e}")
              
          2. Запустите файл main.py:
            python main.py 
            

          # Reissue

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

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

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

          1. Замените содержимое файла main.py следующим блоком кода:
            # Необходимые импорты.
            import pywaves as pw
            import time
            import json
            
            # Укажите ссылку на ноду и ID сети.
            pw.setNode(
                # Укажите ссылку на ноду:
                # - Mainnet: 'https://nodes.wavesnodes.com/'
                # - Testnet: 'https://nodes-testnet.wavesnodes.com/'
                # - Stagenet: 'https://nodes-stagenet.wavesnodes.com/'
                node='https://nodes-testnet.wavesnodes.com',
            
                # Укажите ID сети:
                # - Mainnet: 'M'
                # - Testnet: 'T'
                # - Stagenet: 'S'
                chain='T'
            )
            
            # Укажите сид-фразу аккаунта.
            seed_phrase = 'УКАЖИТЕ СИД-ФРАЗУ'
            
            # Создание адреса из сид-фразы аккаунта.
            my_address = pw.Address(seed=seed_phrase)
            
            # Укажите ID токена для перевыпуска.
            asset_id = 'УКАЖИТЕ ID АКТИВА'
            
            # Создание объекта с активом.
            my_token = pw.Asset(asset_id)
            
            # Укажите параметры перевыпуска.
            additional_tokens = 500  # Количество токенов для перевыпуска.
            decimals = 2             # Количество знаков после запятой.
            reissuable = True        # Значение флага перевыпускаемости актива.
            
            # Вычисление количества токенов в минимальной единице.
            quantity = additional_tokens * (10 ** decimals)
            
            # Создании Reissue-транзакции.
            try:
                print("Перевыпуск ассета...")
                reissue_tx = my_address.reissueAsset(
                    asset=my_token,
                    quantity=quantity,
                    reissuable=reissuable
                )
            except Exception as e:
                print(f"Возникла ошибка пре перевыпуске ассета: {e}")
                exit(1)
            
            # Ожидание появления транзакции в блокчейне.
            print("Ожидание подтверждения транзакции...")
            time.sleep(5)
            
            # Получение и вывод данных транзакции.
            try:
                tx_data = reissue_tx
                print("Транзакция успешно выполнена! Детали:")
                print(json.dumps(tx_data, indent=4))
            except Exception as e:
                print(f"Возникла ошибка при получении данных транзакции: {e}")
            
          2. Запустите файл main.py:
            python main.py 
            

          # Burn

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

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

          1. Замените содержимое файла main.py следующим блоком кода:
            # Необходимые импорты.
            import pywaves as pw
            import time
            import json
            
            # Укажите ссылку на ноду и ID сети.
            pw.setNode(
                # Укажите ссылку на ноду:
                # - Mainnet: 'https://nodes.wavesnodes.com/'
                # - Testnet: 'https://nodes-testnet.wavesnodes.com/'
                # - Stagenet: 'https://nodes-stagenet.wavesnodes.com/'
                node='https://nodes-testnet.wavesnodes.com',
            
                # Укажите ID сети:
                # - Mainnet: 'M'
                # - Testnet: 'T'
                # - Stagenet: 'S'
                chain='T'
            )
            
            # Укажите сид-фразу аккаунта.
            seed_phrase = 'УКАЖИТЕ СИД-ФРАЗУ'
            
            # Создание адреса из сид-фразы аккаунта.
            my_address = pw.Address(seed=seed_phrase)
            
            # Укажите ID сжигаемого токена.
            asset_id = 'УКАЖИТЕ ID АКТИВА'
            
            # Создание объекта с активом.
            my_token = pw.Asset(asset_id)
            
            # Укажите параметры сжигаемого токена.
            tokens_to_burn = 100  # Количество токенов для сжигания.
            decimals = 2          # Количество знаков токена после запятой.
            
            # Вычисление количества токенов в минимальной единице.
            quantity = tokens_to_burn * (10 ** decimals)
            
            # Создание Burn-транзакции.
            try:
                print("Сжигание ассета...")
                burn_tx = my_address.burnAsset(
                    asset=my_token,
                    quantity=quantity
                )
            except Exception as e:
                print(f"Возникла ошибка при сжигании ассета: {e}")
                exit(1)
            
            # Ожидание появления транзакции в блокчейне.
            print("Ожидание подтверждения транзакции...")
            time.sleep(5)
            
            # Получение и вывод данных транзакции.
            try:
                tx_data = burn_tx
                print("Транзакция успешно выполнена! Детали:")
                print(json.dumps(tx_data, indent=4))
            except Exception as e:
                print(f"Возникла ошибка при получении данных транзакции: {e}")
            
          2. Запустите файл main.py:
            python main.py 
            

          # Transfer

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

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

          1. Замените содержимое файла main.py следующим блоком кода:
            • Для трансфера кастомных ассетов:
              # Необходимые импорты.
              import pywaves as pw
              import time
              import json
              
              # Укажите ссылку на ноду и ID сети.
              pw.setNode(
                  # Укажите ссылку на ноду:
                  # - Mainnet: 'https://nodes.wavesnodes.com/'
                  # - Testnet: 'https://nodes-testnet.wavesnodes.com/'
                  # - Stagenet: 'https://nodes-stagenet.wavesnodes.com/'
                  node='https://nodes-testnet.wavesnodes.com',
              
                  # Укажите ID сети:
                  # - Mainnet: 'M'
                  # - Testnet: 'T'
                  # - Stagenet: 'S'
                  chain='T'
              )
              
              # Укажите сид-фразу аккаунта.
              seed_phrase = 'УКАЖИТЕ СИД-ФРАЗУ'
              
              # Создание адреса из сид-фразы аккаунта.
              my_address = pw.Address(seed=seed_phrase)
              
              # Укажите ID токена для трансфера.
              asset_id = 'УКАЖИТЕ ID АКТИВА'
              
              # Создание объекта с активом.
              my_token = pw.Asset(asset_id)
              
              # Укажите адрес получателя.
              recipient_address = 'УКАЖИТЕ АДРЕС ПОЛУЧАТЕЛЯ'
              
              # Укажите количество токена для трансфера.
              amount = 10
              
              # Количество знаков токена после запятой.
              decimals = 2
              
              # Вычисление количество токена в минимальной единице.
              amount_in_minimal_units = amount * (10 ** decimals)
              
              # Создание Transfer-транзакции.
              try:
                  print("Выполнение трансфера...")
                  transfer_tx = my_address.sendAsset(
                      recipient=pw.Address(address=recipient_address),
                      asset=my_token,
                      amount=amount_in_minimal_units
                  )
              except Exception as e:
                  print(f"Возникла ошибка при трансфере ассета: {e}")
                  exit(1)
              
              # Ожидание появления транзакции в блокчейне.
              print("Ожидание подтверждения транзакции...")
              time.sleep(5)
              
              # Получение и вывод данных транзакции.
              try:
                  tx_data = transfer_tx
                  print("Транзакция успешно выполнена! Детали:")
                  print(json.dumps(tx_data, indent=4))
              except Exception as e:
                  print(f"Возникла ошибка при получении данных транзакции: {e}")
              
            • Для трансфера в WAVES:
              # Необходимые импорты.
              import pywaves as pw
              import time
              import json
              
              # Укажите ссылку на ноду и ID сети.
              pw.setNode(
                  # Укажите ссылку на ноду:
                  # - Mainnet: 'https://nodes.wavesnodes.com/'
                  # - Testnet: 'https://nodes-testnet.wavesnodes.com/'
                  # - Stagenet: 'https://nodes-stagenet.wavesnodes.com/'
                  node='https://nodes-testnet.wavesnodes.com',
              
                  # Укажите ID сети:
                  # - Mainnet: 'M'
                  # - Testnet: 'T'
                  # - Stagenet: 'S'
                  chain='T'
              )
              
              # Укажите сид-фразу аккаунта.
              seed_phrase = 'УКАЖИТЕ СИД-ФРАЗУ'
              
              # Создание адреса из сид-фразы аккаунта.
              my_address = pw.Address(seed=seed_phrase)
              
              # Укажите адрес получателя.
              recipient_address = 'УКАЖИТЕ АДРЕС ПОЛУЧАТЕЛЯ'
              
              # Укажите количество WAVES для трансфера.
              amount = 1.5 # Amount example.
              
              # Знаков WAVES-токена после запятой.
              decimals = 8 # Пример значения.
              
              # Вычисление количества WAVES в наименьшей единице.
              amount_in_minimal_units = int(amount * (10 ** decimals))
              
              # Создании Transfer-транзакции.
              try:
                  print("Выполнения трансфера WAVES...")
                  transfer_tx = my_address.sendWaves(
                      recipient=pw.Address(address=recipient_address),
                      amount=amount_in_minimal_units
                  )
              except Exception as e:
                  print(f"Возникла ошибка при трансфере токенов WAVES: {e}")
                  exit(1)
              
              # Ожидание появления транзакции в блокчейне.
              print("Ожидание подтверждения транзакции...")
              time.sleep(5)
              
              # Получение и вывод данных транзакции.
              try:
                  tx_data = transfer_tx
                  print("Транзакция успешно выполнена! Детали:")
                  print(json.dumps(tx_data, indent=4))
              except Exception as e:
                  print(f"Возникла ошибка при получении данных транзакции: {e}")
              
          2. Запустите файл main.py:
            python main.py 
            

          # Mass Transfer

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

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

          1. Замените содержимое файла main.py следующим блоком кода:
            • Для трансфера кастомных ассетов:
              # Необходимые импорты.
              import pywaves as pw
              import time
              import json
              
              # Укажите ссылку на ноду и ID сети.
              pw.setNode(
                  node='https://nodes-testnet.wavesnodes.com',
                  chain='T'
              )
              
              # Укажите сид-фразу аккаунта.
              seed_phrase = 'УКАЖИТЕ СИД-ФРАЗУ'
              
              # Создание адреса из сид-фразы аккаунта.
              my_address = pw.Address(seed=seed_phrase)
              
              # Укажите ID ассета для трансфера.
              asset_id = 'УКАЖИТЕ ID АКТИВА'
              
              # Создание объекта с активом.
              my_token = pw.Asset(asset_id)
              
              # Создание параметров трансфера.
              decimals = 2 # Количество знаков токена после запятой.
              
              # Укажите получателей и суммы трансферов.
              # Каждый перевод представляет собой словарь с ключами 'recipient' (получатель) и 'amount' (сумма).
              transfers = [
                  # Укажите адрес первого получателя и сумму трансфера.
                  {'recipient': 'УКАЖИТЕ АДРЕС ПЕРВОГО ПОЛУЧАТЕЛЯ', 'amount': 10},
              
                  # Укажите адрес второго получателя и сумму трансфера.
                  {'recipient': 'УКАЖИТЕ АДРЕС ВТОРОГО ПОЛУЧАТЕЛЯ', 'amount': 20},
              
                  # Укажите адрес третьего получателя и сумму трансфера.
                  {'recipient': 'УКАЖИТЕ АДРЕС ТРЕТЬЕГО ПОЛУЧАТЕЛЯ', 'amount': 30}
              
                  # ...
              ]
              
              # Преобразование сумм в минимальные единицы.
              for transfer in transfers:
                  transfer['amount'] *= 10 ** decimals
              
              # Создание транзакции Mass Transfer.
              try:
                  print("Выполнение массового трансфера...")
                  mass_transfer_tx = my_address.massTransferAssets(
                      asset=my_token,
                      transfers=transfers
                  )
              except Exception as e:
                  print(f"Возникла ошибка при выполнении массового трансфера: {e}")
                  exit(1)
              
              # Ожидание появления транзакции в блокчейне.
              print("Ожидание подтверждения транзакции...")
              time.sleep(5)
              
              # Получение и вывод данных транзакции.
              try:
                  tx_data = mass_transfer_tx
                  print("Транзакция успешно выполнена! Детали:")
                  print(json.dumps(tx_data, indent=4))
              except Exception as e:
                  print(f"Возникла ошибка при получении данных транзакции: {e}")
              
            • Для трансферов в WAVES:
              # Необходимые импорты.
              import pywaves as pw
              import time
              import json
              
              # Укажите ссылку на ноду и ID сети.
              pw.setNode(
                  # Укажите ссылку на ноду:
                  # - Mainnet: 'https://nodes.wavesnodes.com/'
                  # - Testnet: 'https://nodes-testnet.wavesnodes.com/'
                  # - Stagenet: 'https://nodes-stagenet.wavesnodes.com/'
                  node='https://nodes-testnet.wavesnodes.com',
              
                  # Укажите ID сети:
                  # - Mainnet: 'M'
                  # - Testnet: 'T'
                  # - Stagenet: 'S'
                  chain='T'
              )
              
              # Укажите сид-фразу аккаунта.
              seed_phrase = 'УКАЖИТЕ СИД-ФРАЗУ'
              
              # Создание адреса из сид-фразы аккаунта.
              my_address = pw.Address(seed=seed_phrase)
              
              # Укажите параметры трансфера.
              decimals = 8 # Знаков WAVES-токена после запятой.
              
              # Укажите получателей и суммы трансферов.
              # Каждый перевод представляет собой словарь с ключами 'recipient' (получатель) и 'amount' (сумма).
              transfers = [
                  # Укажите адрес первого получателя и сумму трансфера.
                  {'recipient': 'УКАЖИТЕ АДРЕС ПЕРВОГО ПОЛУЧАТЕЛЯ', 'amount': 10},
              
                  # Укажите адрес второго получателя и сумму трансфера.
                  {'recipient': 'УКАЖИТЕ АДРЕС ВТОРОГО ПОЛУЧАТЕЛЯ', 'amount': 20},
              
                  # Укажите адрес третьего получателя и сумму трансфера.
                  {'recipient': 'УКАЖИТЕ АДРЕС ТРЕТЬЕГО ПОЛУЧАТЕЛЯ', 'amount': 30}
              
                  # ...
              ]
              
              # Преобразование сумм в минимальные единицы.
              for transfer in transfers:
                  transfer['amount'] = int(transfer['amount'] * (10 ** decimals))
              
              # Создание транзакции Mass Transfer.
              try:
                  print("Выполнение массового трансфера токенов WAVES...")
                  mass_transfer_tx = my_address.massTransferWaves(
                      transfers=transfers
                  )
              except Exception as e:
                  print(f"Возникла ошибка при выполнении массового трансфера: {e}")
                  exit(1)
              
              # Ожидание появления транзакции в блокчейне.
              print("Ожидание подтверждения транзакции...")
              time.sleep(5)
              
              # Получение и вывод данных транзакции.
              try:
                  tx_data = mass_transfer_tx
                  print("Транзакция успешно выполнена! Детали:")
                  print(json.dumps(tx_data, indent=4))
              except Exception as e:
                  print(f"Возникла ошибка при получении данных транзакции: {e}")
              
          2. Запустите файл main.py:
            python main.py 
            

          # Exchange

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

          Обратите внимание: SDK предоставляет возможность создания ордеров на покупку и продажу напрямую без поддержки Exchange-транзакции.

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

          1. Замените содержимое файла main.py следующим блоком кода:
            • Для создания ордера на покупку:
              # Необходимые импорты.
              import pywaves as pw
              import time
              import json
              
              # Укажите ссылку на ноду и ID сети.
              pw.setNode(
                  # Укажите ссылку на ноду:
                  # - Mainnet: 'https://nodes.wavesnodes.com/'
                  # - Testnet: 'https://nodes-testnet.wavesnodes.com/'
                  # - Stagenet: 'https://nodes-stagenet.wavesnodes.com/'
                  node="https://nodes-testnet.wavesnodes.com",
              
                  # Укажите ID сети:
                  # - Mainnet: 'M'
                  # - Testnet: 'T'
                  # - Stagenet: 'S'
                  chain="T"
              )
              
              # Укажите ссылку на матчера.
              pw.setMatcher("http://matcher-testnet.waves.exchange") # Пример ссылки.
              
              # Укажите сид-фразу аккаунта.
              seed_phrase = "УКАЖИТЕ СИД-ФРАЗУ"
              
              # Создание адреса из сид-фразы аккаунта.
              my_address = pw.Address(seed=seed_phrase)
              
              # Укажите торговую пару: актив, который вы хотите купить, и актив, которым вы хотите заплатить.
              amount_asset = pw.Asset("УКАЖИТЕ ID АКТИВА") # Актив к покупке.
              price_asset = pw.Asset("WAVES")              # WAVES-токен.
              
              # Создание объекта из пары активов.
              asset_pair = pw.AssetPair(amount_asset, price_asset)
              
              # Укажите параметры ордера.
              amount = 0.001 # Количество токенов к покуке.
              price = 0.001  # Стоимость за токен в WAVES.
              
              # Преобразование минимальной единицы токена с использования десятичных дробей.
              amount_min = int(amount * (10 ** amount_asset.decimals))
              price_min  = int(price  * (10 ** price_asset.decimals))
              
              # Укажите комиссию матчера и длительность ордера.
              matcher_fee  = pw.DEFAULT_MATCHER_FEE
              max_lifetime = 3600 # 1 час.
              
              # Создание ордера на покупку.
              try:
                  print("Создание ордера на покупку...")
                  buy_order = my_address.buy(
                      assetPair=asset_pair,
                      amount=amount_min,
                      price=price_min,
                      matcherFee=matcher_fee,
                      maxLifetime=max_lifetime
                  )
                  print("Ордер успешно создан.")
                  print("Детали:")
                  print(json.dumps(buy_order, indent=4))
              except Exception as e:
                  print(f"Возникла ошибка при создании ордера на покупку: {e}")
                  exit(1)
              
            • Для создания ордера на продажу:
              # Необходимые импорты.
              import pywaves as pw
              import time
              import json
              
              # Укажите ссылку на ноду и ID сети.
              pw.setNode(
                  # Specify the link for the desired network:
                  # - Mainnet: 'https://nodes.wavesnodes.com/'
                  # - Testnet: 'https://nodes-testnet.wavesnodes.com/'
                  # - Stagenet: 'https://nodes-stagenet.wavesnodes.com/'
                  node="https://nodes-testnet.wavesnodes.com",
              
                  # Укажите ID сети:
                  # - Mainnet: 'M'
                  # - Testnet: 'T'
                  # - Stagenet: 'S'
                  chain="T"
              )
              
              # Укажите ссылку на матчера.
              pw.setMatcher("https://matcher-testnet.waves.exchange") # Пример ссылки.
              
              # Укажите сид-фразу аккаунта.
              seed_phrase = "УКАЖИТЕ СИД-ФРАЗУ"
              
              # Создание адреса из сид-фразы аккаунта.
              my_address = pw.Address(seed=seed_phrase)
              
              # Укажите торговую пару: актив, который вы хотите продать, и актив, которым вы хотите получить.
              amount_asset = pw.Asset("УКАЖИТЕ ID АКТИВА") # Актив на продажу.
              price_asset = pw.Asset("WAVES")              # Актив к получению.
              
              # Создание объекта из пары активов.
              asset_pair = pw.AssetPair(amount_asset, price_asset)
              
              # Укажите параметры ордера.
              amount = 0.001 # Количество токенов на продажу.
              price = 0.001  # Стоимость за токен в WAVES.
              
              # Преобразование минимальной единицы токена с использования десятичных дробей.
              amount_min = int(amount * (10 ** amount_asset.decimals))
              price_min  = int(price  * (10 ** price_asset.decimals))
              
              # Укажите комиссию матчера и длительность ордера.
              matcher_fee  = pw.DEFAULT_MATCHER_FEE
              max_lifetime = 3600  # 1 час.
              
              # Создание ордера на продажу.
              try:
                  print("Создание ордера на продажу...")
                  sell_order = my_address.sell(
                      assetPair=asset_pair,
                      amount=amount_min,
                      price=price_min,
                      matcherFee=matcher_fee,
                      maxLifetime=max_lifetime
                  )
                  print("Ордер на продажу успешно создан.")
                  print("Детали:")
                  print(json.dumps(sell_order, indent=4))
              except Exception as e:
                  print(f"Возникла ошибка при создании ордера на продажу: {e}")
                  exit(1)
              
          2. Запустите файл main.py:
            python main.py 
            

          # Lease

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

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

          1. Замените содержимое файла main.py следующим блоком кода:
            # Необходимые импорты.
            import pywaves as pw
            import time
            import json
            
            # Укажите ссылку на ноду и ID сети.
            pw.setNode(
                # Укажите ссылку на ноду:
                # - Mainnet: 'https://nodes.wavesnodes.com/'
                # - Testnet: 'https://nodes-testnet.wavesnodes.com/'
                # - Stagenet: 'https://nodes-stagenet.wavesnodes.com/'
                node='https://nodes-testnet.wavesnodes.com',
            
                # Укажите ID сети:
                # - Mainnet: 'M'
                # - Testnet: 'T'
                # - Stagenet: 'S'
                chain='T'
            )
            
            # Укажите сид-фразу аккаунта.
            seed_phrase = 'УКАЖИТЕ СИД-ФРАЗУ'
            
            # Создание адреса из сид-фразы аккаунта.
            my_address = pw.Address(seed=seed_phrase)
            
            # Укажите адрес получателя.
            recipient_address = 'УКАЖИТЕ АДРЕС ПОЛУЧАТЕЛЯ'
            
            # Укажите количество токенов для лизинга в WAVES.
            amount = 1.5
            
            # Знаков WAVES-токена после запятой.
            decimПример значения
            
            # Вычисление количества WAVES в наименьшей единице.
            amount_in_minimal_units = int(amount * (10 ** decimals))
            
            # Создание Lease-транзакции.
            try:
                print("Выполнение лизинга в WAVES...")
                lease_tx = my_address.lease(
                    recipient=pw.Address(address=recipient_address),
                    amount=amount_in_minimal_units
                )
            except Exception as e:
                print(f"Возникла ошибка при выполнении лизинга: {e}")
                exit(1)
            
            # Ожидание появления транзакции в блокчейне.
            print("Ожидание подтверждения транзакции...")
            time.sleep(5)
            
            # Получение и вывод данных транзакции.
            try:
                tx_data = lease_tx
                print("Транзакция успешно выполнена! Детали:")
                print(json.dumps(tx_data, indent=4))
            except Exception as e:
                print(f"Возникла ошибка при получении данных транзакции: {e}")
            
          2. Запустите файл main.py:
            python main.py 
            

          # Lease Cancel

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

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

          1. Замените содержимое файла main.py следующим блоком кода:
            # Необходимые импорты.
            import pywaves as pw
            import time
            import json
            
            # Укажите ссылку на ноду и ID сети.
            pw.setNode(
                # Укажите ссылку на ноду:
                # - Mainnet: 'https://nodes.wavesnodes.com/'
                # - Testnet: 'https://nodes-testnet.wavesnodes.com/'
                # - Stagenet: 'https://nodes-stagenet.wavesnodes.com/'
                node='https://nodes-testnet.wavesnodes.com',
            
                # Укажите ID сети:
                # - Mainnet: 'M'
                # - Testnet: 'T'
                # - Stagenet: 'S'
                chain='T'
            )
            
            # Укажите сид-фразу аккаунта.
            seed_phrase = 'УКАЖИТЕ СИД-ФРАЗУ'
            
            # Создание адреса из сид-фразы аккаунта.
            my_address = pw.Address(seed=seed_phrase)
            
            # Укажите ID Lease-транзакции для отмены.
            lease_id = 'УКАЖИТЕ ID LEASE-ТРАНЗАКЦИИ'
            
            # Создание транзакции Lease Cancel.
            try:
                print("Отмена транзакции лизинга...")
                lease_cancel_tx = my_address.leaseCancel(leaseId=lease_id)
            except Exception as e:
                print(f"Возникла ошибка при отмене транзакции лизинга: {e}")
                exit(1)
            
            # Ожидание появления транзакции в блокчейне.
            print("Ожидание подтверждения транзакции...")
            time.sleep(5)
            
            # Получение и вывод данных транзакции.
            try:
                tx_data = lease_cancel_tx
                print("Транзакция успешно выполнена! Детали:")
                print(json.dumps(tx_data, indent=4))
            except Exception as e:
                print(f"Возникла ошибка при получении данных транзакции: {e}")
                ```
            
          2. Запустите файл main.py file:
            python main.py 
            

          # Create Alias

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

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

          1. Замените содержимое файла main.py следующим блоком кода:
            # Необходимые импорты.
            import pywaves as pw
            import time
            import json
            
            # Укажите ссылку на ноду и ID сети.
            pw.setNode(
                # Укажите ссылку на ноду:
                # - Mainnet: 'https://nodes.wavesnodes.com/'
                # - Testnet: 'https://nodes-testnet.wavesnodes.com/'
                # - Stagenet: 'https://nodes-stagenet.wavesnodes.com/'
                node='https://nodes-testnet.wavesnodes.com',
            
                # Укажите ID сети:
                # - Mainnet: 'M'
                # - Testnet: 'T'
                # - Stagenet: 'S'
                chain='T'
            )
            
            # Укажите сид-фразу аккаунта.
            seed_phrase = 'УКАЖИТЕ СИД-ФРАЗУ'
            
            # Создание адреса из сид-фразы аккаунта.
            my_address = pw.Address(seed=seed_phrase)
            
            # Укажите желаемый псевдоним.
            alias = 'new_alias' # Пример значения.
            
            # Создание транзакции Create Alias.
            try:
                print("Создание псевдонима...")
                alias_tx = my_address.createAlias(alias=alias)
            except Exception as e:
                print(f"Возникла ошибка при создании псевдонима: {e}")
                exit(1)
            
            # Ожидание появления транзакции в блокчейне.
            print("Ожидание подтверждения транзакции...")
            time.sleep(5)
            
            # Получение и вывод данных транзакции.
            try:
                tx_data = alias_tx
                print("Транзакция успешно выполнена! Детали:")
                print(json.dumps(tx_data, indent=4))
            except Exception as e:
                print(f"Возникла ошибка при получении данных транзакции: {e}")
            
          2. Запустите файл main.py:
            python main.py 
            

          # Data

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

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

          1. Замените содержимое файла main.py следующим блоком кода:
            # Необходимые импорты.
            import pywaves as pw
            import time
            import json
            
            # Укажите ссылку на ноду и ID сети.
            pw.setNode(
                # Укажите ссылку на ноду:
                # - Mainnet: 'https://nodes.wavesnodes.com/'
                # - Testnet: 'https://nodes-testnet.wavesnodes.com/'
                # - Stagenet: 'https://nodes-stagenet.wavesnodes.com/'
                node='https://nodes-testnet.wavesnodes.com',
            
                # Укажите ID сети:
                # - Mainnet: 'M'
                # - Testnet: 'T'
                # - Stagenet: 'S'
                chain='T'
            )
            
            # Укажите сид-фразу аккаунта.
            seed_phrase = 'УКАЖИТЕ СИД-ФРАЗУ'
            
            # Создание адреса из сид-фразы аккаунта.
            my_address = pw.Address(seed=seed_phrase)
            
            # Укажите данные для хранения.
            data = [
                {'type': 'string', 'key': 'примерКлюча', 'value': 'примерЗначения'}
            ]
            
            # Создание Data-транзакции.
            try:
                print("Выполнение Data-транзакции...")
                data_tx = my_address.dataTransaction(data=data)
            except Exception as e:
                print(f"Возникла ошибка при выполнении транзакции: {e}")
                exit(1)
            
            # Ожидание появления транзакции в блокчейне.
            print("Ожидание подтверждения транзакции...")
            time.sleep(5)
            
            # Получение и вывод данных транзакции.
            try:
                tx_data = data_tx
                print("Транзакция успешно выполнена! Детали:")
                print(json.dumps(tx_data, indent=4))
            except Exception as e:
                print(f"Возникла ошибка при получении данных транзакции: {e}")
            
          2. Запустите файл main.py:
            python main.py 
            

          # Set Script

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

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

          1. Замените содержимое файла main.py следующим блоком кода:
            # Необходимые импорты.
            import pywaves as pw
            import time
            import json
            
            # Укажите ссылку на ноду и ID сети.
            pw.setNode(
                # Укажите ссылку на ноду:
                # - Mainnet: 'https://nodes.wavesnodes.com/'
                # - Testnet: 'https://nodes-testnet.wavesnodes.com/'
                # - Stagenet: 'https://nodes-stagenet.wavesnodes.com/'
                node='https://nodes-testnet.wavesnodes.com',
            
                # Укажите ID сети:
                # - Mainnet: 'M'
                # - Testnet: 'T'
                # - Stagenet: 'S'
                chain='T'
            )
            
            # Укажите сид-фразу аккаунта.
            seed_phrase = 'УКАЖИТЕ СИД-ФРАЗУ'
            
            # Создание адреса из сид-фразы аккаунта.
            my_address = pw.Address(seed=seed_phrase)
            
            # Укажите Ride-скрипт.
            script = '{-# SCRIPT_TYPE ACCOUNT #-} true' # Пример скрипта.
            
            # Создании Set Script транзакции.
            try:
                print("Установка скрипта для указанного адреса...")
                set_script_tx = my_address.setScript(script)
            except Exception as e:
                print(f"Возникла ошибка при установке скрипта: {e}")
                exit(1)
            
            # Ожидание появления транзакции в блокчейне.
            print("Ожидание подтверждения транзакции...")
            time.sleep(5)
            
            # Получение и вывод данных транзакции.
            try:
                tx_data = set_script_tx
                print("Транзакция успешно выполнена! Детали:")
                print(json.dumps(tx_data, indent=4))
            except Exception as e:
                print(f"Возникла ошибка при получении данных транзакции: {e}")
            
          2. Запустите файл main.py:
            python main.py 
            

          # Set Asset Script

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

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

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

          1. Замените содержимое файла main.py следующим блоком кода:
            # Необходимые импорты.
            import pywaves as pw
            import time
            import json
            
            # Укажите ссылку на ноду и ID сети.
            pw.setNode(
                # Укажите ссылку на ноду:
                # - Mainnet: 'https://nodes.wavesnodes.com/'
                # - Testnet: 'https://nodes-testnet.wavesnodes.com/'
                # - Stagenet: 'https://nodes-stagenet.wavesnodes.com/'
                node='https://nodes-testnet.wavesnodes.com',
            
                # Укажите ID сети:
                # - Mainnet: 'M'
                # - Testnet: 'T'
                # - Stagenet: 'S'
                chain='T'
            )
            
            # Укажите сид-фразу аккаунта.
            seed_phrase = 'УКАЖИТЕ СИД-ФРАЗУ'
            
            # Создание адреса из сид-фразы аккаунта.
            my_address = pw.Address(seed=seed_phrase)
            
            # Укажите ID смарт ассета.
            asset_id = 'УКАЖИТЕ ID АКТИВА'
            
            # Создание объекта актива.
            asset = pw.Asset(asset_id)
            
            # Укажите Ride-скрипт.
            script_source = '{-# SCRIPT_TYPE ACCOUNT #-} true' # Пример скрипта.
            
            # Установка скрипта для смарт-ассета.
            try:
                print("Установка скрипта...")
                set_asset_script_tx = my_address.setAssetScript(asset, script_source)
            except Exception as e:
                print(f"Возникла ошибка при установке скрипта: {e}")
                exit(1)
            
            # Ожидание появления транзакции в блокчейне.
            print("Ожидание подтверждения транзакции...")
            time.sleep(5)
            
            # Получение и вывод данных транзакции.
            try:
                tx_data = set_asset_script_tx
                print("Транзакция успешно выполнена! Детали:")
                print(json.dumps(tx_data, indent=4))
            except Exception as e:
                print(f"Возникла ошибка при получении данных транзакции: {e}")
            
          2. Запустите файл main.py:
            python main.py 
            

          # Update Asset Info

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

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

          1. Замените содержимое файла main.py следующим блоком кода:
            # Необходимые импорты.
            import pywaves as pw
            import time
            import json
            
            # Укажите ссылку на ноду и ID сети.
            pw.setNode(
                # Укажите ссылку на ноду:
                # - Mainnet: 'https://nodes.wavesnodes.com/'
                # - Testnet: 'https://nodes-testnet.wavesnodes.com/'
                # - Stagenet: 'https://nodes-stagenet.wavesnodes.com/'
                node='https://nodes-testnet.wavesnodes.com',
            
                # Укажите ID сети:
                # - Mainnet: 'M'
                # - Testnet: 'T'
                # - Stagenet: 'S'
                chain='T'
            )
            
            # Укажите сид-фразу аккаунта.
            seed_phrase = 'УКАЖИТЕ СИД-ФРАЗУ'
            
            # Создание адреса из сид-фразы аккаунта.
            my_address = pw.Address(seed=seed_phrase)
            
            # Укажите ID актива.
            asset_id = 'УКАЖИТЕ ID АКТИВА'
            
            # Задайте новое наименование и описание актива.
            new_name = 'НовоеНаименование'     # Пример значения.
            new_description = 'Новое описание' # Пример значения.
            
            # Создание транзакции Update Asset Info.
            try:
                print("Создание транзакции Update Asset Info...")
                update_asset_info_tx = my_address.updateAssetInfo(
                    assetId=asset_id,
                    name=new_name,
                    description=new_description
                )
            except Exception as e:
                print(f"Возникла ошибка при обновлении данных ассета: {e}")
                exit(1)
            
            # Ожидание появления транзакции в блокчейне.
            print("Ожидание подтверждения транзакции...")
            time.sleep(5)
            
            # Получение и вывод данных транзакции.
            try:
                print("Транзакция успешно выполнена! Детали:")
                print(json.dumps(update_asset_info_tx, indent=4))
            except Exception as e:
                print(f"Возникла ошибка при получении данных транзакции: {e}")
            
          2. Запустите файл main.py:
            python main.py 
            

          # Invoke Script

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

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

          1. Замените содержимое файла main.py следующим блоком кода:
            # Необходимые импорты.
            import pywaves as pw
            import time
            import json
            
            # Укажите ссылку на ноду и ID сети.
            pw.setNode(
                # Укажите ссылку на ноду:
                # - Mainnet: 'https://nodes.wavesnodes.com/'
                # - Testnet: 'https://nodes-testnet.wavesnodes.com/'
                # - Stagenet: 'https://nodes-stagenet.wavesnodes.com/'
                node='https://nodes-testnet.wavesnodes.com',
            
                # Укажите ID сети:
                # - Mainnet: 'M'
                # - Testnet: 'T'
                # - Stagenet: 'S'
                chain='T'
            )
            
            # Укажите сид-фразу аккаунта.
            seed_phrase = 'УКАЖИТЕ СИД-ФРАЗУ'
            
            # Создание адреса из сид-фразы аккаунта.
            my_address = pw.Address(seed=seed_phrase)
            
            # Define the dApp address to be invoked.
            dapp_address = 'PASTE A DAPP ADDRESS'
            
            # Укажите наименование вызываемой функции.
            function_name = 'УКАЖИТЕ НАИМЕНОВАНИЕ ФУНКЦИИ'
            
            # Укажите параметры вызываемой функции.
            params = [
                # Примеры значений:
                # {'type': 'string', 'value': 'example'},
                # {'type': 'integer', 'value': 123}
                # Add your function arguments here.
            ]
            
            # Задайте данные платежей, которые будут отправлены вместе с вызовом функции.
            payments = [
                # Example payment:
                # {'amount': 1000000, 'assetId': 'WAVES'}
                # Add your payment details here.
            ]
            
            # Определите комиссию за транзакцию (в наименьшей единице WAVES).
            tx_fee = pw.DEFAULT_INVOKE_SCRIPT_FEE # Стандартная комиссия составляет 500000 (0,005 WAVES)
            
            # Создании транзакции Invoke Script.
            try:
                print("Выполнении транзакции Invoke Script....")
                invoke_tx = my_address.invokeScript(
                    dappAddress=dapp_address,
                    functionName=function_name,
                    params=params,
                    payments=payments,
                    txFee=tx_fee
                )
            except Exception as e:
                print(f"Возникла ошибка при выполнении транзакции: {e}")
                exit(1)
            
            # Ожидание появления транзакции в блокчейне.
            print("Ожидание подтверждения транзакции...")
            time.sleep(5)
            
            # Получение и вывод данных транзакции.
            try:
                tx_data = invoke_tx
                print("Транзакция успешно выполнена! Детали:")
                print(json.dumps(tx_data, indent=4))
            except Exception as e:
                print(f"Возникла ошибка при получении данных транзакции: {e}")
            
          2. Запустите файл main.py:
            python main.py 
            

          # Sponsor Fee

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

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

          1. Замените содержимое файла main.py следующим блоком кода:
            # Необходимые импорты.
            import pywaves as pw
            import time
            import json
            
            # Укажите ссылку на ноду и ID сети.
            pw.setNode(
                # Укажите ссылку на ноду:
                # - Mainnet: 'https://nodes.wavesnodes.com/'
                # - Testnet: 'https://nodes-testnet.wavesnodes.com/'
                # - Stagenet: 'https://nodes-stagenet.wavesnodes.com/'
                node='https://nodes-testnet.wavesnodes.com',
            
                # Укажите ID сети:
                # - Mainnet: 'M'
                # - Testnet: 'T'
                # - Stagenet: 'S'
                chain='T'
            )
            
            # Укажите сид-фразу аккаунта.
            seed_phrase = 'УКАЖИТЕ СИД-ФРАЗУ'
            
            # Создание адреса из сид-фразы аккаунта.
            my_address = pw.Address(seed=seed_phrase)
            
            # Укажите ID спонсорского актива.
            asset_id = 'УКАЖИТЕ ID АКТИВА'
            
            # Создание транзакции Sponsor Fee.
            try:
                print("Выполнение транзакции Sponsor Fee...")
                sponsor_tx = my_address.sponsorAsset(assetId=asset_id)
            except Exception as e:
                print(f"Возникла ошибка при выполнении транзакции: {e}")
                exit(1)
            
            # Ожидание появления транзакции в блокчейне.
            print("Ожидание подтверждения транзакции...")
            time.sleep(5)
            
            # Получение и вывод данных транзакции.
            try:
                tx_data = sponsor_tx
                print("Транзакция успешно выполнена! Детали:")
                print(json.dumps(tx_data, indent=4))
            except Exception as e:
                print(f"Возникла ошибка при получении данных транзакции: {e}")
            
          2. Запустите файл main.py:
            python main.py 
            
          Запуск кода
          Использование криптографических утилит
          Запуск кода
          Использование криптографических утилит