Thor w3
1.62K subscribers
29 photos
13 links
Бим-бим бам-бам по коду

Owner: @th0masi
My soft: @thor_soft
Main channel: @thor_lab
Download Telegram
По поводу бирж и RPC

В софте можно самому указать какие токены и откуда выводить (прям все)
Поддерживаемые биржи: Binance, mexс, okx

С Binance/mexc - не нужно добавить аккаунты в вайтлист
OKX - нужно добавить адреса в вайтлист

RPC сервера так же можно указать самому.
🔥5👍1
Cбор всех монет со всех суб-аккаунтов на MAIN

Так же я написал отдельную функцию для OKX. Она собирает абсолютно все монеты со всех суб-акков окекса на мейн.
Сейчас думаю как её подключить, в принципе не вижу проблем, больше думаю в какой момент её запускать.
🔥4👍1
Софт полностью отработал в 20 потоков

Статистика
Потраченное время: 2.5 часа

Кол-во транзакций: 5-7 stargate, 2-3 core + 1 harmony + покупка и стейкинг $STG, покупка и бридж Btc.b
Итого: 11-15 бриджей, 2 покупки, и сответственно х2 апрувов

Задержки: 30-70 секунд между транзакциями, 20-67 секунд между аккаунтами, 30-300 секунд между последней транзакцией и депозитом


Комиссии
А теперь самое интересное. Учтите информацию выше и газ, он сейчас 80-100 держится
Вот сколько было выведено на кошельки:
30.08$ CORE | 50.86$ AVAX | 35,51$ FTM | 73.71$ BNB | 41.6$ MATIC
Общая сумма: 231,76$ ~12$ на один аккаунт

Вот сколько осталось на кошельках:
4.5$ CORE | 17.2$ AVAX | 8$ FTM | 36.3$ BNB | 23.6$ MATIC
Общая сумма: 89,6$

Фактические затраты на один аккаунт ~7-8$ (c учетом комиссии за вывод с бирж)

В итоге получилось что осталось очень много из-за довыводов по минималке(газ высокий и расчеты соответственно не очень хорошо происходят как вы понимаете). Я увеличу их, чтобы минимизировать эти расходы. А также в ближайшую неделю напишу скрипт для автосбора нативных токенов с возможностью часть оставить по желанию, будет выдан как дополнение к этому софту.

Но в любом случае фактические затраты меня радуют! Продолжение..
🔥5👍42
Thor w3
Последние новости по коду Сейчас тестирую 20 потоков, газ просто ебейший, но оттестировать нужно. В течение часа закончу и проверю сколько в итоге потратил на каждый аккаунт. Есть ошибки, что не может не огорчать. Но давайте разберемся какие это ошибки:…
С этого момента была еще одна ошибка связанная с ответом от API 1inch.
Ошибки {0} с бриджом из Fantom больше не случилось и надеюсь больше никогда не случится

Я уже внес изменения и теперь $STG стейкинг и покупка 1inch будут с лимитами попыток - 3 попытки. Я думаю что подобных ошибок мы больше не увидим.

Сейчас подготавливаю версии, как я уже говорил они будут уникальными. В течение часа думаю уже можно отдавать вам софт.
🔥2
Пред покупкой что нужно сделать:
Установить PyCharm (есть под винду и мак)
Самый пиздатый и удобный, легко управлять всем

Установить Python 3.10.10 (прям вот этой версии, есть под винду и мак)
Ссылка для скачивания внизу страницы

Не забудьте установить галку на PATH перед установкой
👌1
Данный канал публичный и будет использоваться в дальнейшем для заметок по разработке софтов.

Хотелось бы поделиться планами на ближайшее время:
Я уже начал исследовать торговлю на биржах через API, в будущих скриптах планирую это использовать API для покупок необходимых нативных токенов, да и в принципе любых токенов, которые будут нужны.

По публичным софтам: они также имеют место быть, в скором времени обновлю скрипт по выводу с бирж, скрипт по голосовалкам на оптимизме, и выпущу пару новых скриптов.


Текущий платный скрипт по Zero для купивших
Скрипт будет обновляться под все будущие проекты LayerZero. Уже начал делать дополнительные модули по скрипту:
- автосбор нативных токенов/стейблов (с возможностью оставить часть)
- использование $BTC.b и $STG для проявления активности (например анстейкнуть $STG закинуть в другой блокчейн и стейкнуть там)
- проявление активности (повторно гонять через софт сейчас не выгодно, в течение месяца сделаю возможность отключать большинство сетей, чтобы вы сами выбирали по какому пути проявить повторную активность на кошельках, сохранив рандомность)

В целом за 6 дней разработки получил ебейший опыт и не планирую останавливаться. Продажа софта по Zero закрыта, я не ожидал такого количества заявок. Если кому не отписал - сори, пришлось выбирать. В целом я планировал не просто продать скрипт, чтобы заработать. Скорее я искал сотрудничество и схожих людей с амбициями по выносу ретродропов (ну и с кошельком тоже)

Также я решил такие масштабные софты с полной автоматизацией больше не увидят паблик в исходном коде, разве только с ограничениями и скомпилированные.
👍3🤯2
Инфа для покупайтелей LayerZero

Сел переписывать генератор путей. Буду делать пиздачее.

Пока получается круто, можно будет указать:
1. Какие сети использовать
2. Через какие сети обязательно нужно будет пройти
3. Какие сети не должны быть первыми
4. Какие сети не должны быть последними
👍7
Генератор кошельков

Порядком надоел cointool, поэтому написал очень-очень простенький скрипт для генерации кошельков. Сохраняет как в таблицу, так и в отдельные файлы:
wallets.txt - только кошельки
private_key.txt - только приватники
seeds.txt - только сид-фразы


github.com/th0masi/generate_eth_wallets

При запуске, в консоли, введите количество кошельков.
🔥7
OKX ебучая параша. Как же он меня бесит...

Мало того что у них до сих пор включены вайтлисты, к тому же у них нельзя просто через API свапнуть токена на спотовом балансе. Нет, у них есть торговый, это же так модно сейчас иметь 33 типа балансов.
Но это даже не проблема, знаете в чем проблема? В том, что долбаебы просто взяли и отключи возможность через API переводить некоторые токены с торгового счета на спотовый. А дальше как хочешь, вот ETH можно переводить, а FTM нет.

Ебанутые...
😁10🤯2
Работать с BeautifulSoup еще то "удовольствие", но результат мне +- нравится.
🔥11
Почему я начал все генерировать заранее?

Последние 2 дня я переписывал свой скрипт по LayerZero, решая основные проблемы. Теперь это будет работать так:

1. Исходя из конфига будет полностью генерироваться путь, от и до, включая весь конфиг.
2. При первом запуске скрипт будет генерировать пути заранее в папку paths и записывать пути в {wallet_address}.json
3. При повторных запусках скрипт будет спрашивать нужно ли перезаписать пути для кошельков, которые уже содержат пути.

В чем преимущество такого способа?

- в разы легче дебагать, ты заранее знаешь весь путь для каждого кошелька, суммы и пр.
- возможность просчитать необходимые балансы, суммы комиссий и пр.
- возможность записывать статус для каждой строки
- проще прикрутить многопоточность, т.к. каждый поток будет работать со своим файлом

Сегодня начал тестить и это реально пиздато, теперь каждая функция возвращает True в случае успешного действия, а скрипт записывает статус как Success, при повторном запуске - софт пропустит действия со статусом Success. Это практически реализованная пауза, возможность перезапустить и продолжить с того-же места где остановился.
🔥5👍31
Пару полезностей по работе с LayerZero и не только

1. API LayerZero: https://api-mainnet.layerzero-scan.com/tx/
Можно по хешу проверять статус транзакции, но сразу скажу - порой лагает очень сильно, лучше использовать сразу 2 метода: чекать баланс в конечной сети + чекать статус транзакции по API. Если что-то вернет True - можно продолжать работу.

2. amount = token_contract.functions.balanceOf(address_wallet).call() не лучшая идея для назначения amount для транзакции, иногда вы будете получать insufficient balance
лучше уменьшайте сумму примерно на 0.0005% - будет все четко

3. Если контракт не апрувнут, вы всегда можете декодировать любую транзакцию по hash.
Как этом можно сделать прикрепил в изображении

4. 1inch - идеальное решение, если вы хотите одной функцией покупать разные токены в разных блокчейнах, но стоит колдовать с настройками gas и gas_limit. Я рекомендую создать словарь бустов, который для разных блокчейнов будет на разный % бустить эти значения.
Используйте такой подход в принципе если ваша функция универсальна для работы с разными блокчейнами.

5. Polygon и Fantom уебанские сети - транзакция с маленьким газом/газ-лимитом зависнет в мемпуле и не будет обработана.
Ей присвоится хеш, но по факту она не будет никогда включена в блокчейн. Рекомендую обрабатывать для таких сетей подобный вариант рекурсией с увеличением значений газ и газ-лимита
1
Чисто встряхнул API daomaker'a 💥
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Thor w3
Чисто встряхнул API daomaker'a 💥
Ему конец, этому вашему даомемкеру 😜
🤔6👏1🤯1
Давно меня здесь не было...

Решил по итогу обновить скрипт по автовыводу с бирж и добавить GUI, будет кайф, надеюсь на этой недели дропну.

Ставь лайк если наконец то не нужно будет самому искать названия сетей для бирж
и использовать запятые 🥰
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥45👍9
Как задекодить любую транзакцию по data?

Недавно начал писать софт под ZkSync и возникла проблема с быстрым декодингом транзакций, т.к. процентов 80 контрактов не верифнуты. Нашел идеальный вариант - онлайн декодер. Функционал максимально простой, вставляете data-транзакции и выбираете 4byte Directory API

Ссылка на декодер
🔥122
Слив EIP-1559 2023

Решил спустя долгое время поделиться своим универсальным решением по переходу с Legacy на EIP-1559. Если кратко, то скрипт парсит последние 5 блоков и высчитывает средние значения maxFeePerGas и maxPriorityFeePerGas.

*Для сетей BSC и Fantom, где нет EIP-1559 скрипт добавляет значение gasPrice

[ Github ]
🔥8
В начале недели пытался написать софт под friend.tech. Это была моя первая попытка в MEV-бота.

Идея была такая: искать transfer на пустые кошельки как потенциальных новых юзеров, смотреть есть ли такой кошелек в API, брать @twitter и смотреть через API данные твиттера.

Начал я писать на python async, но сильно не устраивала скорость. Софт находил потенциальный кошелек примерно за ~20-40 секунд (к слову за это время 60% юзеров уже успевали выкупать первые акции). Тогда я вспомнил терна и его посты про ЯП GO. Сутки поковырялся и удалось переписать софт уже с местной асинхронностью (горутины). И вот тут софт искал нужные мне кошельки с определенным кол-вом подписчиков за 1.5-2 секунды (это учитывая 2 запроса к API: friend.tech и twitter). С такой скоростью уже можно было работать.

Дальше самое сложное - успевать выкупать акции. Начинал я с +4 блока от Buy-транзакции. Удалось разогнаться до +1-2 блока, я пытался ускориться, но не получалось (что только я не перепробовал). Основная проблема была во времени поиска buy-транзакции, тут нет привычного мемпула (он есть, но не тот что нужен). Туда изредка попадают транзакции (хз почему) как раз за 4 секунды (2 блока) до включения транзакции в блок, но работать с таким мемпулом не было смысла.

Тогда я начал копать глубже и оказалось что в технологии Rollup (Optimism) мемпулом является секвенсор. Секвенсор отвечает за упорядочение транзакций, именно в него сначала попадают транзакции, а после уже собираются в блоки.

Как получить доступ и смотреть в транзакции в секвенсоре я не знаю. Текущие боты явно имеют доступ в секвенсор. Я же остановился на спаме по 2 транзакции в блок, дальше пока нет времени изучать эту тему. Но тема реально интересная для изучения.

P.S. GO кстати очень крутой, мне зашел.
👍281🐳1
Как бесплатно оценивать стоимость токенов?

Нашел нормальную 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
else:
logging.error(f"Неожиданный формат ответа: {data}")
return None
else:
logging.error(f"Статус ответа сервера: {response.status_code}")
return None
🍓105👍3
Чем я занимался 2 месяца [part 1]

Спойлер: писал софт для zkSync и не только

В первую очередь хотелось сделать что-то уникальное. Поэтому к написаю софта я подошел основательно. Во-первых, я юзал аутсорс для поиска решений и в принципе реализаций каких-то частей проекта. Во-вторых, несколько недель ушло в принципе чтобы продумать все связи/логику.

Почему так долго? В первую очередь мне хотелось упростить себе работу в будущем. Поэтому я решил не просто написать софт для zkSync, а написать основу для всех софтов в будущем и уже на этой основе написать zkSync в качестве первого проекта.

В чем преимущество такого подхода? Упрощает разработку в будущем, плюс так как основа универсальна, я могу допиливать её отдельно от проектов, при этом все изменения будут применимы ко всем проектам.

Что входит в основу? Сюда входит БД, логика, выводы (web), обработки и т.п.. Да, я начал юзать БД в проектах и это одно из лучших решений в принципе. БД позволяет хранить очень много информации: данные кошельков, данные транзакций, текущие займы, любую другую информацию.

Зачем хранить всю эту информацию? В первую очередь это позволит дать софту больше инфы про каждый кошелек: хранить чтобы уже было сделано, какие NFT сминчены и т.п. Огромный плюс в возможностях вывода в web, по факту можно сделать локальный etherscan.
🔥10👍3