TON Connect позволяет вам взаимодействовать с TON блокчейном и получать информацию о транзакциях, используя формат BOC (Binary Object Container). Чтобы ваша программа на Python могла обрабатывать BOC и извлекать нужные данные, нужно выполнить следующие шаги:
1. **Установите необходимые зависимости**: Вам потребуется библиотека для работы с BOC. На текущий момент существует несколько библиотек для работы с TON, такие как `ton-client-python` или `ton-client` на других языках. В отличие от стандартного Python, работа с BOC требует дополнительных библиотек, так что убедитесь, что у вас есть доступ к TON SDK.
2. **Получите BOC**: При получении BOC из TON Connect вы, скорее всего, получите его в виде строки. Тем не менее, вам может понадобиться конвертировать его в байты.
3. **Декодируйте BOC**: Вам нужно будет декодировать этот BOC, чтобы узнать информацию о транзакции, такой как ее статус, данные и т.д.
Вот пример общего подхода к обработке BOC в Python:
```python
import json
from tonclient.client import TonClient
from tonclient.types import ClientConfig
# Инициализируем клиента для работы с TON
client = TonClient(config=ClientConfig(network={'server_address': 'net.ton.dev'}))
def decode_boc(boc):
# Преобразуем строку BOC в байты, если она не в байтовом формате
if isinstance(boc, str):
boc = bytes.fromhex(boc)
# Отправляем запрос на декодирование BOC
decoded_boc = client.boc.decode_boc(boc=boc)
return decoded_boc
def main():
# Пример BOC
boc = "Ваш BOC здесь"
try:
# Декодируем BOC
transaction_info = decode_boc(boc)
print("Информация о транзакции:", json.dumps(transaction_info, indent=2))
# Вы можете проверить статус транзакции
status = transaction_info.get('status')
if status == 'success':
print("Транзакция прошла успешно!")
else:
print("Транзакция завершилась с ошибкой:", status)
except Exception as e:
print("Произошла ошибка:", str(e))
if __name__ == "__main__":
main()
```
### Примечания:
- Убедитесь, что у вас установлен соответствующий модуль для работы с TON, возможно, с помощью `pip install tonclient`.
- Настройки клиента нужно заменить на актуальные для вашего окружения, например, адрес сервера.
- Разные данные могут быть доступны в зависимости от структуры BOC. С помощью декодированной информации вы можете получить более детальные сведения о транзакции.
Этот пример является базовым и будет требовать адаптации и дополнений в зависимости от конкретных требований вашего приложения и формата BOC, который вы получаете.