Последние посты

Thor w3
4 апр. 2024 г., 15:54
Готовые решения для кодеровЕсть идея создать список готовых функций/классов для быстрой сборки проекта, очень часто сталкиваюсь с тем, что банальные вещи просто адаптирую под каждый проект, заебало, хочу написать универсальные решения. С сегодняшнего дня этим и займемся.Залил на гист пока два готовых решения, которые будут полезны каждому.check_version: проверка текущей версии Python Меня порой заебывают ошибками, спустя какое-то время выясняется что чел пытается завести скрипт на Python 3.10 или 3.12 (я сейчас работаю онли с 3.11), хотя казалось в readme всегда указываю необходимую версию. Чтобы избежать лишней траты времени написал функцию check_python_version.ProxyManager: класс для работы с Proxy Пока лучшее решение что реализовал для себя, работает асинхронно в паре с better_proxy. При необходимости сам добавляет префикс, поэтому пользователь может грузить прокси вообще в


Thor w3
24 февр. 2024 г., 08:19изменён
4 библиотеки для генерации данных➡️ pyuseragents Библиотека генерирует рандомные UserAgent для запросов➡️faker Библиотека для генерации имен/фамилий/адресов/текста/дат рождения и т.д. Генерирует на разных языках, в т.ч. на русском➡️mimesis Библиотека аналог faker'у. Генерит имена, почты, номера телефонов (по маске). Так же есть поддержка RU.➡️uuid Библиотека для генерации уникальных идентификаторов. Я использовал для запросов к layerzero API для sentry.Если вы знаете библиотеки, которые полезны для web3-кодеров, пишите в личку. Запилю большой пост.
Thor w3
23 февр. 2024 г., 16:23
Как без посредников принимать оплату в криптеИдея очевидная:1. Создаем кошелек для оплаты (библиотека web3→ eth-keys) 2. Просим пользователя перевести на созданный кошелек N-количество N-токена. 3. В цикле проверяем баланс токена и сравниваем с суммой оплаты (можно поставить ограничение на 1 час до оплаты, чтобы не застревать в цикле) 4. После оплаты трансферим на кошелек немного нативок (или принимаем сразу в нативках) и трансферим на мейн-кошелек.В идеале накатить легкую БД, например SQLite, хранить и хранить в ней как минимум ID оплаты, адрес, приватник, сумму, идентификатор пользователя.В целом можно использовать и пул адресов для оплаты, главное правильно реализовать статусы.Красиво написать бек можно за час. Пользуйтесь.Channel name was changed to «Thor w3»
8 февр. 2024 г., 13:23

Thor w3
25 янв. 2024 г., 01:14
Ой-ой-ой, что я научился парсить?


Thor w3
12 янв. 2024 г., 22:28
Не что я потратил 2 дня - Notcoin В целом я с асинкой в принципе не работал, поэтому было сложно вдуплить что к чему. Переписал софт nazavod'a, т.к. очень накладно было слать клики даже с 300 аккаунтов, Cloudfare палил и блочил половину запросов, пытался



Thor w3
12 янв. 2024 г., 22:22
Не что я потратил 2 дня - NotcoinВ целом я с асинкой в принципе не работал, поэтому было сложно вдуплить что к чему. Переписал софт nazavod'a, т.к. очень накладно было слать клики даже с 300 аккаунтов, Cloudfare палил и блочил половину запросов, пытался юзать Semaphore, но я плохо вообще понял логику, поэтому не срослось.Сначала я полностью поменял логику, добавил прокачку аккаунта с 0 (до покупки автокликера), затем добавил клейм с бота токенов каждые 8-12 часов. Логика позволила разгрузить запросы и теперь уверен что 1000 аккаунтов софт точно сможет держать. Дополнительно кстати клейм ревардов за лиги/сквад и т.п. сделалВ общем по моим подсчетам бот фармит 174 000 коинов в 12 часов на 1 аккаунте. При 500 аккаунтов это примерно 174 миллиона в сутки, что считаю неплохо при вложениях в 400$. Думаю на днях догоню до 1000 (надеюсь не побреют)Я очень люблю дашборды, поэтому и сюда


Thor w3
21 дек. 2023 г., 13:00
LayerZero После последних новостей стало интересно что с моими акками, на которых я не делал ончейн-активностей последние 3 месяца. Сейчас основной процент аккаунтов не входят даже в лям. (понятно что чекеры тема субъективная и не факт что мультипликаторы
Thor w3
21 дек. 2023 г., 12:50
LayerZeroПосле последних новостей стало интересно что с моими акками, на которых я не делал ончейн-активностей последние 3 месяца. Сейчас основной процент аккаунтов не входят даже в лям. (понятно что чекеры тема субъективная и не факт что мультипликаторы будут такими, но все же)Меня сильно напрягла эта тема, поскольку на текущий момент в L0 инвестировал больше 20к$ и крайне не хотелось бы оказаться в числе побритых, поэтому решил заинвестить еще 5к$ и до марта загнать акки в 600-800к ранги.Последние полторы недели переписывал софт для прогона объемов, чтобы прогнать на аккаунтах новые сети. В целом получилось имбово, удалось реализовать: 1. Симуляции транзакций для расчета необходимых сумм для более точных расчетов необходимого кол-ва нативок2. 4 возможных варианта пополнения сеть нативками: докупка за USDC/USDT, вывод с бирж, бридж ETH через Stargate, бридж через Merkly3. Полн


Thor w3
29 нояб. 2023 г., 13:18
Дизайн за 100$ VS 500$Написал статью о моем опыте работы с дизайнерами. В статье вы найдете:✔️ Как я планировал потратить неделю на дизайн, а потратил месяц ✔️ Сравнение опыта работы с разными дизайнерами (+ скриншоты) ✔️ Как я заплатил 50$ за 1 страницу, где по итогу внесли 3 правкиИ наконец как dsgn.harmony смог спасти положение и со своей командой отрисовать что-то нереальное.В общем думаю будет интересно...TeletypeДизайн за 100$ vs 500$Хочу рассказать свой опыт по работе с дизайнерами разных уровней (с скриншотами работ)
Thor w3
21 нояб. 2023 г., 17:57
переслано из @thor_lab
soon...


Thor w3
21 нояб. 2023 г., 17:57
Пора поделиться новостями чем я занимался последние 4 месяцаВ июле, после отдыха, я начал планировать софт под ZkSync. Хотелось сделать что-то годное, ведь на текущий момент объективно из всех софтов выделяется только софт от Leo и его команды. Мне хотелось именно задать планку, использовать более сложные решения (БД, UI)В августе, когда я приступил к написанию, я начал понимать что моих знаний в программировании с опытом в полгода вообще не хватает. Я нашел на аутсорсе senior-кодера и мы начали сотрудничать, искать пути для реализации моих идей. Мне хотелось создать очень плотный, универсальный шаблон для софта, максимально отделить web3 часть от шаблона и в итоге под новые блокчейны кодить только web3, параллельно усиливая шаблон. В итоге около 2х недель я рисовал блок-схемы как это должно было работатьВ сентябре, мы закончили с основной работой (большую часть писал senior),
Thor w3
19 нояб. 2023 г., 12:53
Почему вы до сих пор неправильно используете getAmountOut и slippage?Мне часто скидывают паблик/приватные скрипт на ресерч и я ни разу не увидел правильного использования getAmountOut. Это особенно актуально сейчас, когда в каждом софте полно мусорных дексов, с нулевыми пулами.Вот пример транзакции, где произошел скам-свап 0.1 $ETH на 26$ стейбла. Я думаю многие понимают откуда берется amountOutMin (как правило значение получается коллом функции getAmountOut). Основная проблема в том, что кодеры сами придумали что значение должно возращаться только по актуальной стоимости. Хотя это логически невозможно, функция просто возвращает сумму согласно текущей ликвидности.Если вы захотите обменять 1 $ETH на 2000 $USDT, а ликвидности нет, то при запросе getAmountOut вам не вернется False, вам просто вернется сумма, к примеру 1000 $USDT и все, дальше большинство софтов сделает обмен и
Thor w3
9 нояб. 2023 г., 18:46
Оптимизация запросов к блокчейнуТема на самом деле интересная. Почти в каждой сети существует multicall-контракты, которые уже внутри блокчейна делают нужные вам запросы.Это выглядит примерно следующем образом: 1. Мы передаем в multicall-контракт список контрактов и функции (а так же их аргументы) 2. Внутри блокчейна multicall собирает нужную инфу и возвращает в виде массиваТем самым одним запросом мы получаем дохуя много данных. Ответ выглядит примерно так:[ { "status": true, "data": {"возвращаемые данные функции"}, }, { "status": true, "data": {"возвращаемые данные функции"}, }, ]


Thor w3
6 нояб. 2023 г., 12:05
Coinbase wallet momentДля UI выбрал Сoinbase wallet, поскольку его проще автоматизировать нежели Metamask с его защитами. И вот значит все вообще отлично, все уже написано.Пытаюсь в конце подписать транзакцию для бриджа 7$ (на балансе 20$) и в момент подписи вылезает ошибка. 10 раз руками пересоздаю транзакцию и с 10 раза мне дает подписать транзакцию.Насколько нужно быть даунами, чтобы во-первых криво рассчитывать газ, во-вторых запрещать пользователю отправлять транзакцию с любым газом. Помимо этого отредактировать газ нельзя, только отменить транзакцию.Это настолько сюр, что вообще пиздец. Вывод: не юзайте Сoinbase wallet


Thor w3
19 сент. 2023 г., 10:37
Почему cli-интерфейсы это хорошоДавно хотел уйти от нескольких исполнительных файлов по типу main.py \ withdrawal.py к более удобному формату. И cli-интерфейсы мне помогли. Мы не заставляем пользователя искать исполняемые файлы, запускать их, вместо этого они могут просто в терминале ввести подходящую команду.


Thor w3
19 сент. 2023 г., 10:22
Web-интерфейсВообще он пока далек от идеала, но в принципе дает максимум полезной инфы. Подсчет затрат происходит не только по ончейн-активности в zkSync, здесь учитывает комиссия за вывод с биржи, стоимость офф.бриджа из мейн-сети, допиливаю возможность расчета стоимости потери на слипажах (т.к. свап двойной - не сложно посчитать сколько потеряли).Прикладываю пару скринов как это выглядит




Thor w3
18 сент. 2023 г., 21:52
Чем я занимался 2 месяца [part 2]Как примерно работает моя логика? В первую очередь софт хранит все действия которые были выполнены на кошельке. К примеру, минт NFT X. Это уникальное действие, которое можно сделать 1 раз. После того как софт сминтил NFT - он записал это в БД. Если софт вылетел и вы заново его запустили - он больше не будет минтить NFT X он уже знает что для этого кошелька он её заминтил.И это проявляется во всем. Софт сам генерирует задачи для каждого кошелька на основе действий, которые он уже выполнял, он понимает что не делал бридж - он запланирует это действие на кошельке.Лично я прошу указать лишь действия которые нужно будет сделать и количество транзакций. Расчеты сумм происходят непосредственно внутри софта, генерация задач, назначение даты и времени. Для набива объемов нужно указать к примеру только сумму какую вывести с биржи и какой объем набить в $.Со
Thor w3
18 сент. 2023 г., 21:50
Чем я занимался 2 месяца [part 1]Спойлер: писал софт для zkSync и не толькоВ первую очередь хотелось сделать что-то уникальное. Поэтому к написаю софта я подошел основательно. Во-первых, я юзал аутсорс для поиска решений и в принципе реализаций каких-то частей проекта. Во-вторых, несколько недель ушло в принципе чтобы продумать все связи/логику.Почему так долго? В первую очередь мне хотелось упростить себе работу в будущем. Поэтому я решил не просто написать софт для zkSync, а написать основу для всех софтов в будущем и уже на этой основе написать zkSync в качестве первого проекта.В чем преимущество такого подхода? Упрощает разработку в будущем, плюс так как основа универсальна, я могу допиливать её отдельно от проектов, при этом все изменения будут применимы ко всем проектам.Что входит в основу? Сюда входит БД, логика, выводы (web), обработки и т.п.. Да, я начал юзать БД в
Thor w3
12 сент. 2023 г., 14:05изменён
Как бесплатно оценивать стоимость токенов?Нашел нормальную API, которая позволяет получать актуальную стоимость токенов.Ограничений у API нет. В запросе нужно отправлять ID токена (конечной точки для получения ID нет 🧠), но можно спарсить инфу и найти.Запрос на python может выглядеть примерно так:def get_token_price(token_id): url = f"https://api.coinlore.net/api/ticker/?id={token_id}" response = requests.get(url) if response.status_code == 200: data = response.json() if data and isinstance(data, list) and isinstance(data[0], dict): price_usd = data[0].get("price_usd") if price_usd is not None: return Decimal(price_usd) else: logging.error(f"Ключ 'price_usd' отсутствует в данных: {data}") return None
