TON Connect для JS
Эта страница переведена сообществом на русский язык, но нуждается в улучшениях. Если вы хотите принять участие в переводе свяжитесь с @alexgton.
Это руководство поможет вам интегрировать TON Connect в ваше Javascript приложение для аутентификации пользователей и подтверждения транзакций.
Если вы используете React для своего DApp, взгляните на TON Connect UI React SDK.
Реализация
Установка
- CDN
- NPM
Добавьте скрипт в элемент HEAD вашего веб-сайта:
<script src="https://unpkg.com/@tonconnect/ui@latest/dist/tonconnect-ui.min.js"></script>
Чтобы начать интеграцию TON Connect в ваше приложение, установите пакет @tonconnect/ui:
- npm
- Yarn
- pnpm
npm i @tonconnect/ui
yarn add @tonconnect/ui
pnpm add @tonconnect/ui
Начало работы TON Connect
После установки пакета создайте файл manifest.json
для вашего приложения. Более подробную информацию о том, как создать файл manifest.json, можно найти здесь.
Добавьте кнопку с идентификатором ton-connect
для подключения к кошельку:
<div id="ton-connect"></div>
После этого тега добавьте скрипт для tonConnectUI
в секцию <body>
страницы вашего приложения:
<script>
const tonConnectUI = new TON_CONNECT_UI.TonConnectUI({
manifestUrl: 'https://<YOUR_APP_URL>/tonconnect-manifest.json',
buttonRootId: 'ton-connect'
});
</script>
По дключение к кошельку
Кнопка "Connect" (добавленная в buttonRootId
) автоматически обрабатывает нажатия.
Но вы можете программно открыть "connect modal", например, после нажатия на пользовательскую кнопку:
<script>
async function connectToWallet() {
const connectedWallet = await tonConnectUI.connectWallet();
// Do something with connectedWallet if needed
console.log(connectedWallet);
}
// Call the function
connectToWallet().catch(error => {
console.error("Error connecting to wallet:", error);
});
</script>
Перенаправления
Настройка стратегии возврата
Чтобы перенаправить пользователя на конкретный URL после подключения, вы можете настроить стратегию возврата.
Мини-приложения Telegram
Чтобы перенаправить пользователя в Мини-приложение Telegram после подключения кошелька, используйте параметр twaReturnUrl
:
tonConnectUI.uiOptions = {
twaReturnUrl: 'https://t.me/YOUR_APP_NAME'
};
Подробнее читайте в документации SDK
Настройка пользовательского интерфейса
TonConnect UI предоставляет интерфейс, который должен быть знаком и узнаваем пользователю при использовании различных приложений. Однако разработчик приложения может изменить этот интерфейс, чтобы он соответствовал интерфейсу приложения.
Документация SDK
Использование
Давайте рассмотрим пример использования TON Connect UI в приложении.
Отправка сообщений
Вот пример отправки транзакции с использованием TON Connect UI:
import TonConnectUI from '@tonconnect/ui';
const tonConnectUI = new TonConnectUI({ //connect application
manifestUrl: 'https://<YOUR_APP_URL>/tonconnect-manifest.json',
buttonRootId: '<YOUR_CONNECT_BUTTON_ANCHOR_ID>'
});
const transaction = {
validUntil: Math.floor(Date.now() / 1000) + 60, // 60 sec
messages: [
{
address: "EQABa48hjKzg09hN_HjxOic7r8T1PleIy1dRd8NvZ3922MP0", // destination address
amount: "20000000" //Toncoin in nanotons
}
]
}
const result = await tonConnectUI.sendTransaction(transaction)
- Подробнее о подготовке сообщений можно найти здесь: Отправка сообщений.
Понимание статуса транзакции по хэшу
Принцип описан в разделе Обработка платежей (с использованием tonweb). Подробнее
Подпись и проверка
Узнайте, как подп исывать и проверять сообщения с помощью TON Connect:
Отключение кошелька
Вызов для отключения кошелька:
await tonConnectUI.disconnect();