Skip to content

Way0e/sol_spl_clean

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

🧹 Secure SOL Cleaner

Безопасный скрипт для закрытия пустых SPL Token аккаунтов в Solana блокчейне

Улучшенная и безопасная версия скрипта для автоматического закрытия пустых SPL Token аккаунтов и возврата заблокированной арендной платы (SOL).

Создан с помощью Claude.ai Sonnet 4


📋 Описание проблемы

При получении токенов или NFT в кошельке Solana для каждого актива создается отдельный SPL Token аккаунт. После отправки всех токенов такие аккаунты остаются пустыми, но продолжают блокировать SOL в виде арендной платы (~0.00203928 SOL за аккаунт).

Этот скрипт решает проблему путем:

  • 🔍 Сканирования всех SPL Token аккаунтов кошелька
  • 🗑️ Фильтрации пустых аккаунтов (баланс = 0)
  • 📦 Пакетной обработки для оптимизации газа
  • 🔄 Повторных попыток при ошибках сети
  • 💰 Возврата заблокированных SOL на основной кошелек

🆚 Отличия от оригинала

❌ Проблемы оригинальной версии:

  • Хранение приватных ключей в файле
  • Отсутствие валидации входных данных
  • Нет проверки баланса перед операциями
  • Неоптимальный размер батчей
  • Слабая обработка ошибок

✅ Улучшения в новой версии:

🔒 Безопасность

  • Интерактивное введение ключей вместо хранения в файлах
  • Валидация приватных ключей с проверкой формата
  • Очистка памяти после использования ключей
  • Защита от исчерпания баланса

Производительность

  • Оптимизированные батчи (15 аккаунтов вместо 20)
  • Умные задержки между транзакциями
  • Предварительная оценка комиссий
  • Проверка баланса SOL перед операциями

🛡️ Надежность

  • Свежие blockhash для каждой транзакции
  • Подтверждение транзакций с таймаутом
  • Retry-логика с экспоненциальным backoff
  • Graceful error handling

📊 Мониторинг

  • Детальная статистика по каждому кошельку
  • Отслеживание ошибок и их причин
  • Цветное логирование процесса
  • Точный расчет возвращенных средств

🚀 Установка и настройка

1. Клонирование репозитория

git clone <repository-url>
cd secure-sol-cleaner

2. Установка зависимостей

npm install

3. Настройка окружения

Скопируйте файл примера и настройте параметры:

cp .env.example .env

Отредактируйте .env файл:

# RPC URL для подключения к Solana
RPC_URL=https://api.mainnet-beta.solana.com

# Размер батча (количество аккаунтов в одной транзакции)
BATCH_SIZE=15

# Задержка между транзакциями (в секундах)
DELAY_FROM=30
DELAY_TO=120

# Максимальное количество попыток
MAX_RETRIES=3

# Таймаут подтверждения (в миллисекундах)
CONFIRMATION_TIMEOUT=60000

4. Компиляция TypeScript

npm run build

🎯 Использование

Запуск скрипта

npm start

Интерактивный процесс

  1. Введите приватный ключ в формате Base58 когда система запросит
  2. Дождитесь анализа кошелька и токен аккаунтов
  3. Подтвердите операцию после просмотра статистики
  4. Наблюдайте за процессом в реальном времени

Пример вывода

🚀 Запуск безопасного очистителя SOL аккаунтов
🔗 RPC: https://api.mainnet-beta.solana.com
📦 Размер батча: 15
⏱️  Задержка: 30-120с
✅ Подключение к Solana успешно. Версия: 1.16.0

Введите приватный ключ (Base58): [скрыто]

🔍 Обработка кошелька: 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuA7pPX5G
💰 Баланс SOL: 0.125000
📊 Найдено токен аккаунтов: 45
🗑️  Пустых аккаунтов найдено: 32
💵 Оценочная комиссия: 0.001000 SOL
📦 Создано батчей: 3

🔄 Обработка батча 1/3 (15 аккаунтов)
✅ Батч выполнен. Подпись: 5Kc2...x9mP
💰 Возвращено: 0.030589 SOL
⏳ Задержка 45с перед следующим батчем...

📈 Статистика для кошелька:
   • Закрыто аккаунтов: 32
   • Возвращено lamports: 65,257,696
   • Возвращено SOL: 0.065258

⚙️ Конфигурация

Параметры .env файла

Параметр Описание Рекомендуемое значение
RPC_URL URL RPC узла Solana https://api.mainnet-beta.solana.com
BATCH_SIZE Количество аккаунтов в батче 15 (10-20)
DELAY_FROM Минимальная задержка (сек) 30
DELAY_TO Максимальная задержка (сек) 120
MAX_RETRIES Количество повторных попыток 3
CONFIRMATION_TIMEOUT Таймаут подтверждения (мс) 60000

Рекомендации по RPC

Бесплатные:

  • https://api.mainnet-beta.solana.com (базовый)
  • https://solana-api.projectserum.com (альтернативный)

Платные (рекомендуется):

  • Helius: https://mainnet.helius-rpc.com/?api-key=YOUR_KEY
  • QuickNode: https://your-endpoint.solana-mainnet.quiknode.pro/YOUR_KEY/
  • Alchemy: https://solana-mainnet.g.alchemy.com/v2/YOUR_KEY

🔧 Разработка

Структура проекта

secure-sol-cleaner/
├── src/
│   └── index.ts          # Основной код
├── dist/                 # Скомпилированный JS
├── package.json          # Зависимости
├── tsconfig.json         # Конфигурация TypeScript
├── .env.example          # Пример настроек
└── README.md            # Документация

Доступные команды

npm run build      # Компиляция TypeScript
npm start          # Сборка и запуск
npm run dev        # Запуск в режиме разработки
npm run clean      # Очистка dist папки
npm run lint       # Проверка кода
npm test           # Запуск тестов

Требования к системе

  • Node.js: >= 16.0.0
  • NPM: >= 7.0.0
  • TypeScript: >= 5.0.0

💰 Экономика

Арендная плата SPL Token аккаунта

  • Размер аккаунта: 165 байт
  • Арендная плата: 2,039,280 lamports (~0.00203928 SOL)
  • Минимальный баланс: Должен поддерживаться для активного аккаунта

Комиссии за транзакции

  • Базовая комиссия: ~5,000 lamports (~0.000005 SOL)
  • За инструкцию: ~5,000 lamports на закрытие аккаунта
  • Батч из 15 аккаунтов: ~80,000 lamports (~0.00008 SOL)

Пример расчета прибыли

Пустых аккаунтов: 50
Возврат арендной платы: 50 × 0.00203928 = 0.10196 SOL
Комиссии (4 батча): 4 × 0.00008 = 0.00032 SOL
Чистая прибыль: 0.10196 - 0.00032 = 0.10164 SOL

🛡️ Безопаснос

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors