ПЕРВАЯ dApp В TELEGRAM
Оглавление
ГЛАВА 1: Разработка
Последние 2 месяца я сидел на блокчейне Solana. Ох сколько всего я написал для щиткоинов и их фарма, но сейчас не об этом.
Один из инструментов я реализовывал для команды, которая занимается билдингом щитков и они попросили написать им тулу для фарма холдеров в щиткоинах. Я ее реализовал за 5 часов, мы ее тестили и все работало, но тут один из членов команды подсказал мне, что можно ее монетизировать. Я понял его идею, но в качестве версии для терминала выпускать не хотел, ибо это был бы позор для меня, как для разработчика. Я посмотрел, что сейчас актуально и пришел к выводу, что буду реализовывать все в телеграм боте используя относительно-новую технологию Telegram Mini-Apps или, по-простому, сайт в боте.
Я думал делов на 2-3 дня, но это была слишком позитивная оценка. Непредвиденные ошибки в web2 из-за особенностей(DNS домены, например, более на фейк данные регистрировать нельзя) и любимая солана с херовой документацией и без примеров.
В итоге, написание кода и все тесты заняли: 15 дней или 92 часа и +-15 SOL или ~2100$ затрат.
Напомню, это только на саму разработку приложения, тестирование и интеграцию в него модуля с тулой.
Так же на гитхабе оставил для вас модуль с реализацией платежей. Это базовый пример, скажем так, от которого можно отталкиваться. Я за развитие экосистемы.
ГЛАВА 2: Для кого он?
В первую очередь, данный бот создавался для билдеров щиткоинов на блокчейне Solana. Он помогает увеличивать количество мейкеров в ваших монетах.
Если кошельки новые, то затраты выходят:
0.007 SOL * колличество кошельков
0.007 SOL потому что на новых кошельках нужно создавать Token Account, несмотря на то, что его цена ~0.0021, мы депаем х3 от этой суммы для избежания ошибок, таковы вот особенности соланы, с точными числами работать она не умеет, поэтому лучше перестраховаться. Лимит на первую покупку лучше выбирать в диапазоне
Если же кошельки уже вы использовали, то смею предположить, что оставшийся депозит будет
0.007 SOL - 0.0022 SOL = ~0.0048 SOL
Это значит, что количество солан на покупку можно указать любое, даже 0.00005 SOL! (ниже мы, правда, не тестили).
Я рекомендую использовать следующую формулу, опять же, для избежания ошибок со стороны самой соланы:
ГЛАВА 3: Описание приложения
Приложение сделал user-friendly и даже если что-то пойдет у пользователя не так, оно поможет вам, поэтому опишу основные негласные моменты.
Update Balances обновляет первый и последний кошелек, а так же 10 рандомных. На данный момент 01.07.2024 мини приложение не дожидается ответа от апи. В будущем, возможно, решение найдется, но пока оставляю данный метод на случайную выборку.
Обязательно читать раздел FAQ в телеграм боте и в Mini-App. Это не просто описание, а инструкция и информация по-поводу всего в данном приложении.
Обязательно использовать свою RPC, на паблике работать даже платежи не будут, потому что там нужны слишком большие задержки между запросами. Если у вас ее нет, то можете бесплатно получить ее на Helius. Free subscription вполне хватает для очень активного билдера.
Русского языка в приложении пока что нет. Такое мое решение.
Возможно, если я получу большую поддержку, то адаптирую язык в приложении под язык интерфейса телеграм, но пока это очень трудозатратно для меня. Если вы знаете какие-то базовые английские слова, то трудностей языковой барьер не вызовет.
Если вы ошибочно ввели сумму, но захотели ее поменять, при этом она помещается в минимальные лимиты, то вы можете сначала оплатить 1 чек, потом ввести остаток этой суммы и оплатить второй чек.
Ну либо просто перезайти в приложение, тогда QR код обновиться.
Также мой сайт не является подтвержденным у кошелька Phantom, поэтому он будет выдавать такое предупреждение
Если вас устраивают все предупреждения, то можете спокойно оплачивать, больше указанной суммы не спишет, такого просто в коде нет.
Если не хватает средств, то транзакция просто не пройдет и в кошельке ее не будет, а вы увидите следующее:
Если вас все таки беспокоят данные предупреждения, то можете спокойно пополнять баланс через QR код
В мобильном приложении все тоже самое:
Также советую ознакомиться с таблицей, в которую я сгрузил кошельки, на которых проводились тесты. Там наглядно показано, насколько плохо работает солана с маленькими числами (у меня снайпер работает 24/7, метод на покупку более замудренный, с большими ограничениями и все транзакции проходят. Вроде бы и больше ошибок быть должно, но вся суть в депозите на кошельке), поэтому лучше всегда иметь баланс х4-х5 от комиссии, иначе вы просто сожжете его на комиссиях.
Остальную информацию по бонусам к пополнению, по методам и т.д. вы найдете в FAQ.
Ссылки
https://t.me/solana_shitcoin_holders_farm_bot?start=greeting_bonus - реферальная ссылка на бота. Дает бонус в 0.4 sol на депозит новым пользователям.
https://github.com/oaoaoaoaoammm - мой гитхаб
https://docs.google.com/spreadsheets/d/1vPIZ0kRELae-9JvrzNrVk0ws3MQDTB4lRk-nG9b8FG4/edit?usp=sharing - таблица с кошельками, на которых проводились тесты 30.06.24 (сид фразы убраны специально)
И так, как я за развитие web3 экосистемы, то оставлю ссылки на документации(это для разработчиков):
Solana pay docs - https://docs.solanapay.com/
Solana web3.js docs - https://solana-labs.github.io/solana-web3.js/
Solana web3.js examples - https://solana.com/docs/clients/javascript-reference
Jupiter Api docs - https://station.jup.ag/docs/
Solders Python docs - https://kevinheavey.github.io/solders/
Solana.py docs - https://github.com/michaelhly/solana-py, https://solana.com/docs, https://michaelhly.com/solana-py/
Solana Cookbook - https://solanacookbook.com/#contributing
Example QR Payment and Payment with wallet on chain Solana - https://github.com/oaoaoaoaoammm/solana_pay_with_QR_and_wallet
Благодарности
Отдельная благодарность Matapac'y за возможность работать с командой
Спасибо may.crypto за сотрудничество
Спасибо Acina, zemelka.sol и dedinsoul за помощь в альфа- и бета-тестах
Преимущественно благодарен gfhfyjbr.bezzzdarnost и итер'y за помощь в разработке
Спасибо DorogoDao за колабу