# Отправка транзакций
Убедитесь в выполнении требований для отправки транзакций.
# Требования
- Кошелёк: Создайте кошелёк с помощью 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
В директории проекта:
- Замените содержимое файла
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}")
- Для создания актива без скрипт:
- Запустите файл
main.py
:python main.py
# Reissue
Обратите внимание: Вы можете перевевыпустить только ассет, созданный вами с флагом перевыпускаемости (reissue) со значением
true
.
В директории проекта:
- Замените содержимое файла
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}")
- Запустите файл
main.py
:python main.py
# Burn
В директории проекта:
- Замените содержимое файла
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}")
- Запустите файл
main.py
:python main.py
# Transfer
В директории проекта:
- Замените содержимое файла
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}")
- Для трансфера кастомных ассетов:
- Запустите файл
main.py
:python main.py
# Mass Transfer
О транзакции Mass Transaction.
В директории проекта:
- Замените содержимое файла
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}")
- Для трансфера кастомных ассетов:
- Запустите файл
main.py
:python main.py
# Exchange
Обратите внимание: SDK предоставляет возможность создания ордеров на покупку и продажу напрямую без поддержки Exchange-транзакции.
В директории проекта:
- Замените содержимое файла
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)
- Для создания ордера на покупку:
- Запустите файл
main.py
:python main.py
# Lease
В директории проекта:
- Замените содержимое файла
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}")
- Запустите файл
main.py
:python main.py
# Lease Cancel
В директории проекта:
- Замените содержимое файла
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}") ```
- Запустите файл
main.py
file:python main.py
# Create Alias
В директории проекта:
- Замените содержимое файла
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}")
- Запустите файл
main.py
:python main.py
# Data
В директории проекта:
- Замените содержимое файла
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}")
- Запустите файл
main.py
:python main.py
# Set Script
В директории проекта:
- Замените содержимое файла
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}")
- Запустите файл
main.py
:python main.py
# Set Asset Script
О транзакции Set Asset Script.
Обратите внимание: Вы можете установить скрипт актива только для тех активов, которые были выпущены с установленным Ride-скриптом.
В директории проекта:
- Замените содержимое файла
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}")
- Запустите файл
main.py
:python main.py
# Update Asset Info
О транзакции Update Info Transaction.
В директории проекта:
- Замените содержимое файла
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}")
- Запустите файл
main.py
:python main.py
# Invoke Script
О транзакции Invoke Transaction.
В директории проекта:
- Замените содержимое файла
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}")
- Запустите файл
main.py
:python main.py
# Sponsor Fee
О транзакции Sponsor Transaction.
В директории проекта:
- Замените содержимое файла
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}")
- Запустите файл
main.py
:python main.py