D2
Администратор
- Регистрация
- 19 Фев 2025
- Сообщения
- 4,380
- Реакции
- 0
Приветствую!
Буквально часов 12 назад мне написал друг о том, что ему предлагают доступ в приватку, где приходят алерты об выходе токенов на маркет в чейне XRPL.
Для чего это нужно? Имея снайпер-бота(а он имеется в Telegram бесплатно, но со своей комиссией) можно залетать в новые токены одним из первых и тем самым закупаться по вкусной цене.
И обозначили ценник в 300$... Ну что-ж я буду за друг такой, если не накидаю свои 50 строк бесплатно! Ну и заодно потешить своё эго ))
На этом предыстория всё, поехали
Итак, что нам потребуется:
- Node.js (естественно, без него никуда);
- Telegram-бот, готовый принять ваши сообщения.
-----------------------------------------------------------------------------------------------------------
Настройка окружения
Установка зависимостей
Минимальный набор, который нам нужен:Код: Скопировать в буфер обмена
npm install xrpl node-telegram-bot-api
- xrpl — библиотека для работы с сетью XRP Ledger: подписываться на транзакции, отправлять их, подписывать и т.д.
- node-telegram-bot-api — проще не придумать для работы с Telegram-ботом.
Телега-бот и подключение к XRPL
Создаём Telegram-бота
Для этого пишем BotFather в Telegram, проходим нехитрые шаги и получаем Bot Token, что-то вроде:Код: Скопировать в буфер обмена
<ваш-токен>:AAH......
Не забудьте также узнать ID чата или канала, куда хотите швырять уведомления. Это может быть ваша группа/канал или просто личка (тогда нужен ваш userId).
-----------------------------------------------------------------------------------------------------------
Ну, всё, больше ничего не надо, дальше работаем с кодом
Ниже я приведу пример кода, в котором мы:
- Подключаемся к XRPL по WebSocket;
- Подписываемся на stream «transactions»;
- Отлавливаем только TransactionType = "AMMCreate";
- Отправляем всё, что нужно, в Telegram.
amamam.js (ну или как пожелаете...)
JavaScript: Скопировать в буфер обмена
Код:
const xrpl = require('xrpl');
const TelegramBot = require('node-telegram-bot-api');
// Укажите ваш токен, полученный у @BotFather
const TELEGRAM_BOT_TOKEN = '';
// Укажите ID чата или канала, куда бот будет отправлять сообщения
const TELEGRAM_CHAT_ID = '';
const bot = new TelegramBot(TELEGRAM_BOT_TOKEN, { polling: false });
async function main() {
try {
const client = new xrpl.Client('wss://xrplcluster.com');
console.log('Подключение к XRPL...');
await client.connect();
await client.request({ command: 'subscribe', streams: ['transactions'] })
.then(() => console.log('Подписка на поток транзакций выполнена.'))
.catch((error) => console.error('Ошибка при подписке на транзакции:', error));
client.on('connected', () => console.log('Подключение к XRPL установлено.'));
client.on('disconnected', (code) => console.error(`Подключение потеряно. Код: ${code}`));
client.on('error', (error) => console.error('Ошибка WebSocket:', error));
client.on('transaction', (event) => {
const tx = event.transaction || event.tx_json;
if (tx && tx.TransactionType === 'AMMCreate') {
const issuer = tx.Amount.issuer || tx.Asset2?.issuer || 'N/A';
const message = `
Обнаружена транзакция AMM:
- Hash: ${tx.hash || 'N/A'}
- Issuer: ${issuer}
- Contract: ${tx.Account || 'N/A'}
`;
console.log('Найдено, отправляю в Telegram...');
bot.sendMessage(TELEGRAM_CHAT_ID, message).catch((err) => {
console.error('Ошибка при отправке сообщения в Telegram:', err);
});
}
});
} catch (error) {
console.error('Ошибка при подключении к XRPL или подписке:', error);
}
}
main();
Теперь при появлении любой транзакции типа AMMCreate в XRPL ваш бот будет присылать сообщение со строкой Issuer при каждой выполненной AMM Create транзакции (Issuer будет указывать нам на адресс токена)
Ээээ, ну, вот... Платите 300$))
Немного о том, почему нет смарт-контрактов на XRPL
Может, кто задастся вопросом: «Где же смарт-контракт? Почему мы не видим развёртывания токенов, как в EVM-сетях?»Ответ прост:
- XRPL не поддерживает Turing-complete смарт-контракты (как Ethereum или Solana).
- Всё работает через встроенные механизмы IOU (выпуск и учёт токенов без отдельного контракта) и DEX.
- «Контракт токена» не нужен: вместо него есть трестлайны и механизмы, зашитые в сам протокол.
Надеюсь, материал пригодится! Всем доброго времени суток и спасибо за внимание!