Тест 1
const axios = require('axios'); // Конфигурация API (например, BSCScan, Etherscan, CoinGecko) const API_URL = 'https://api.bscscan.com/api'; const API_KEY = 'YOUR_API_KEY'; // Параметры для проверки токена const TOKEN_ADDRESS = '0x...'; // Адрес токена const MIN_LIQUIDITY = 10000; // Минимальная ликвидность в USD const CHECK_INTERVAL = 60000; // Проверка каждые 60 секунд // Функция проверки токена async function checkTokenSuccess(tokenAddress) { try { // 1. Проверяем, что токен залистинен const listingResponse = await axios.get(`${API_URL}?module=token&action=tokeninfo&contractaddress=${tokenAddress}&apikey=${API_KEY}`); if (!listingResponse.data.result || listingResponse.data.result.length === 0) { console.log('Токен не залистинен'); return false; } // 2. Проверяем ликвидность (можно через PancakeSwap API или другой DEX) const liquidityResponse = await axios.get(`https://api.pancakeswap.info/api/v2/tokens/${tokenAddress}`); const liquidityUSD = parseFloat(liquidityResponse.data.data.price) * parseFloat(liquidityResponse.data.data.totalLiquidity); if (liquidityUSD < MIN_LIQUIDITY) { console.log('Недостаточная ликвидность:', liquidityUSD); return false; } // 3. Проверяем наличие миграции (например, по контракту или транзакциям) const migrationCheck = await axios.get(`${API_URL}?module=account&action=txlist&address=${tokenAddress}&apikey=${API_KEY}`); const hasMigrationTx = migrationCheck.data.result.some(tx => tx.input.includes('migrate') || tx.input.includes('0x...') // Сигнатура функции миграции ); if (!hasMigrationTx) { console.log('Миграция не обнаружена'); return false; } console.log('✅ Токен успешно стартовал и дошел до миграции!'); return true; } catch (error) { console.error('Ошибка при проверке токена:', error.message); return false; } } // Запуск проверки в цикле setInterval(() => { checkTokenSuccess(TOKEN_ADDRESS); }, CHECK_INTERVAL);
Тест 2
Мониторинг токенов в реальном времени

???? Мониторинг токена

Ожидание данных...

Тест 3
const express = require('express'); const axios = require('axios'); const app = express(); app.use(express.static('public')); // Папка с фронтендом // SSE-эндпоинт для отслеживания токена app.get('/track-token', async (req, res) => { const tokenAddress = req.query.address; res.setHeader('Content-Type', 'text/event-stream'); res.setHeader('Cache-Control', 'no-cache'); res.setHeader('Connection', 'keep-alive'); const checkToken = async () => { try { // 1. Проверка листинга (пример для BSC) const listing = await axios.get(`https://api.bscscan.com/api?module=token&action=tokeninfo&contractaddress=${tokenAddress}&apikey=YOUR_API_KEY`); // 2. Проверка ликвидности (через PancakeSwap API) const liquidity = await axios.get(`https://api.pancakeswap.info/api/v2/tokens/${tokenAddress}`); const liquidityUSD = parseFloat(liquidity.data.data.price) * parseFloat(liquidity.data.data.totalLiquidity); // 3. Проверка миграции (через транзакции) const migrationCheck = await axios.get(`https://api.bscscan.com/api?module=account&action=txlist&address=${tokenAddress}&apikey=YOUR_API_KEY`); const hasMigration = migrationCheck.data.result.some(tx => tx.input.includes('migrate')); // Отправка данных клиенту res.write(`data: ${JSON.stringify({ token: tokenAddress, status: listing.data.result ? 'success' : 'error', message: listing.data.result ? 'Токен активен' : 'Токен не найден', liquidity: liquidityUSD.toFixed(2), migration: hasMigration, })}\n\n`); } catch (error) { res.write(`data: ${JSON.stringify({ token: tokenAddress, status: 'error', message: 'Ошибка при проверке', liquidity: 0, migration: false, })}\n\n`); } }; // Проверяем токен каждые 10 секунд const interval = setInterval(checkToken, 10000); // Закрываем соединение при отключении клиента req.on('close', () => { clearInterval(interval); res.end(); }); }); app.listen(3000, () => console.log('Сервер запущен на http://localhost:3000'));
const puppeteer = require('puppeteer'); async function scrapeAxiomTrade() { const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto('https://axiom.trade/markets'); const data = await page.evaluate(() => { const tokens = []; document.querySelectorAll('.market-row').forEach(row => { tokens.push({ name: row.querySelector('.token-name').innerText, price: row.querySelector('.price').innerText, }); }); return tokens; }); console.log(data); await browser.close(); } scrapeAxiomTrade();