Отправка транзакции через TON Connect
Отправишь перевод Gram через sendTransaction: messages, validUntil, network и обработка отказа пользователя.
Отправка транзакции
sendTransaction просит кошелёк подписать и отправить одно или несколько исходящих сообщений с подключённого аккаунта. dApp передаёт параметры; пользователь видит детали в кошельке и подтверждает или отклоняет.
Суммы в запросе — в нанограммах (строка): 100000000 = 0.1 Gram.
Перевод 0.05 Gram
Для максимальной совместимости с кошельками используй raw-массив messages. Structured items (type: "gram" / "jetton") удобнее, но требуют поддержки фич конкретным кошельком.
Как это работает
validUntil — unix-время в секундах; после него кошелёк должен отклонить устаревший запрос.
network — "-239" mainnet, "-3" testnet. Если сеть dApp и кошелька не совпадают, запрос отклонят.
messages[].address — user-friendly адрес (TEP-2), не raw 0:....
messages[].amount — nanotons / nanograms строкой.
result.boc — base64 BoC внешнего сообщения; по нему ищешь транзакцию в эксплорере / API.
Отказ пользователя — ожидаемый путь, не «падение приложения». Разбор кодов — в следующей статье.
Частые ошибки
Не указал network → на части кошельков запрос уйдёт «не туда» или будет отклонён. Задавай явно.
Адрес в raw-форме → кошелёк может отвергнуть request. Конвертируй в user-friendly.
Нет try/catch → Reject выглядит как необработанное исключение в UI. Всегда лови ошибку и показывай нейтральный статус.
Что дальше
- Обработка отклонённой транзакции пользователем — отличить Reject от сетевой ошибки
- Тестирование TON Connect в testnet — те же вызовы с
network: "-3" - Ошибка: TON Connect — Wallet not connected — если вызываешь send без сессии
Материалы gramdocs.tech носят образовательный характер и не являются финансовой, юридической или инвестиционной рекомендацией. Работа с блокчейном TON и токеном Gram связана с рисками потери средств. Правовая информация