VARTCALL – Telegram
VARTCALL
2.3K subscribers
648 photos
13 videos
21 files
589 links
web3 разработка, философия, мысли, практика

по всем предложениям: @jerskrew

экосистема: @vartcode
Download Telegram
🥰 СТРУКТУРА СОФТА PYTHON

универсальная структура для написания ботов, скриптов для блокчейна, арбитражных ботов etc

🤩 main.py – Точка входа в программу. Здесь инициализация сервисов и запуск основных процессов.


- config.py – Хранит основные параметры - RPC-эндпоинты, используемые сети, комиссии и т. д.

- utils/logger.pyНастройка логирования через logging для отладки и мониторинга. 👊

- utils/encryption.py – Безопасная работа с приватными ключами (хранение в .env и дешифрование при запуске)

- services/eth_service.py - Функции для взаимодействия с Ethereum через web3.py

- bots/arbitrage_bot.py - Код арбитражного бота, отслеживающего спреды между биржами.

- tests/Unit-тесты, чтобы проверить работоспособность кода 💰


🥇 Переменные Окружение

.env файлы

PRIVATE_KEY=0x123456789...
INFURA_API=https://mainnet.infura.io/v3/айди-проекта
TELEGRAM_BOT_TOKEN=your_bot_token


Загружаем переменные через python-dotenv:

from dotenv import load_dotenv
import os

load_dotenv()

PRIVATE_KEY = os.getenv("PRIVATE_KEY")
INFURA_API = os.getenv("INFURA_API")


Управление Зависимостями

В requirements.txt и фиксируем зависимости:

web3
python-dotenv
requests
pandas
pytelegrambotapi


🍷 Устанавливаем

pip install -r requirements.txt


Ну и на финал запускаем через Docker

DockerFile

FROM python:3.12
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "main.py"]


далее сборка и запуск

docker build -t crypto_project .
docker run --env-file .env crypto_project


🧃 В результате у нас чистая структура проекта, модульность и удобства для масштабирования и возможность быстрого тестирования!!

ВАШИ ДОПОЛНЕНИЯ ??!!!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥14😍7🔥6💘1
✏️ ПИШЕМ СОФТ С НУЛЯ

как же стартануть в написании скриптов, РАЗБИРАЕМСЯ

☺️ ОСНОВЫ ПРОГРАММИРОВАНИЯ

Python & JavaScript - шикарные решения для старта в крипто-разработки

Питон хорош для написания ботов, автоматизации и работы с API бирж 🤵‍♂️ ⬇️

✏️ JavaScript (TypeScript) – нужен для взаимодействия со смарт-контрактами и написания фронтенда для DApps.


javanoscript.info

learnpython.org

Прекрасные ресурсы для изучения языков, но без практики никуда

w3resource.com/python-exercises - Задачи на Пайтон

jschallenger.com - Задачи на JS

Задачи 👍

Python: основы синтаксиса, ООП, работа с модулями, обработка ошибок.

JavaScript/TypeScript: основы JS, промисы, async/await, работа с API.


☕️ Подключение к Блокчейну

web3.py - Python

ethers.js - JS

Благодаря этим библиотекам мы смотрем подключиться к блокчейну Ethereum и другим EVM и взаимодействовать с ними

🤩 ДЛЯ полного взаимодействия у нас должна быть НОДА!

Поэтому получаем ключ к ней на

infura.io ИЛИ alchemy.com

😱 НАПИСАНИЕ Скриптов

Начинаем Применять наши знания на практике, мои гайды тому пример

Ethers.js с нуля

web3.py с нуля

КАК ВАМ ТАКОЙ СПИСОК?? Разработчики, добавьте что-то от себя!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥114❤‍🔥4💘1
🤫 “Скрытые” механики блокчейна

разбираем базу каждого блокчейн-разработчика

😂 Mempool – зона ожидания транзакций

Прежде чем транзакция попадет в блок, она отправляется в mempool – это своего рода «очередь» неподтвержденных транзакций.


Как это?

> Узлы сети принимают транзакции и хранят их в mempool.

> Майнеры/валидаторы выбирают транзакции из mempool для включения в следующий блок.

> Транзакции с высокими комиссиями (gas fee) имеют приоритет.


Как Пайтон анализирует МемПул ?

разберем код для отслеживания транзакций

from web3 import Web3

w3 = Web3(Web3.HTTPProvider("https://mainnet.infura.io/v3/INFURA_KEY"))

def watch_mempool():
while True:
pending_transactions = w3.eth.get_block('pending', full_transactions=True)
for tx in pending_transactions.transactions:
print(f"Транзакция {tx.hash.hex()} с gas price {tx.gasPrice}")

watch_mempool()


😭 Зачем ?

> Выявлять крупные транзакции перед их подтверждением.

> Анализировать, какие комиссии актуальны для быстрой отправки.

> Предугадывать атаки типа frontrunning.


👊 Frontrunning боты

перехватывают твои сделки

Frontrunning - когда кто-то (например, MEV-боты) замечает выгодную сделку в mempool и вставляет свою транзакцию перед ней.

Как?

1⃣ Ты отправляешь транзакцию на покупку токена с высокой ликвидностью.

2⃣ Бот видит твою транзакцию в mempool и отправляет свою раньше с чуть более высоким gas fee.

3⃣ Бот скупает токены раньше тебя и перепродает их по более высокой цене.

Пайтон поможет??

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

скрипт на поиск подозрительных транзакций

def detect_frontrunning():
pending_transactions = w3.eth.get_block('pending', full_transactions=True)

tx_map = {}
for tx in pending_transactions.transactions:
sender = tx['from']
to = tx['to']
amount = tx['value']

if (to, amount) in tx_map:
print(f"⚠️ Возможный фронтраннинг! Отправитель {sender} повторяет транзакцию.")
tx_map[(to, amount)] = sender

detect_frontrunning()


😐 Что делать с этими данными?

1⃣ Фильтровать мемпул на предмет подозрительных ботов.

2⃣ Настраивать защиту в своих смарт-контрактах.

3⃣ Опережать ботов, если ты делаешь арбитраж.


🏋️ MEV - невидимый рынок внутри блокчейна

MEV (Maximal Extractable Value) – дополнительная прибыль, которую майнеры/валидаторы и боты могут извлечь за счет изменения порядка транзакций в блоке.

Кто использует MEV? 🤬

> Frontrunning-боты

> Sandwich-атаки

> Арбитражные боты, которые используют разницу цен на DEX.


ПАЙТОН - используем для анализила блоков и поиска подозрительных групп транзакций.

def check_mev_transactions(block_number):
block = w3.eth.get_block(block_number, full_transactions=True)
txs = block.transactions

for i in range(len(txs) - 1):
if txs[i]['to'] == txs[i + 1]['to'] and txs[i]['value'] < txs[i + 1]['value']:
print(f"⚠️ MEV подозрение: {txs[i].hash.hex()} -> {txs[i + 1].hash.hex()}")


check_mev_transactions("latest")


Зачем ?

1⃣ Можно искать закономерности в транзакциях.

2⃣ Можно разрабатывать стратегии защиты от MEV-атак.

ЧТО РАЗБЕРЕМ ДАЛЕЕ? 💰
Please open Telegram to view this post
VIEW IN TELEGRAM
9❤‍🔥2🔥1🐳1💘1
🔥 250 ДНЕЙ В КРИПТО-РАЗРАБОТКИ

https://youtu.be/YqYLqtAWOok

Поддержите активностью!
👍112🔥2
😌 Разаберем Rust – идеальный ли язык для блокчейн-разработки??

Rust в последние годы набирает популярность в крипто-разработке, особенно среди высокопроизводительных блокчейнов, таких как Solana, NEAR, Polkadot и Substrate

РАЗБИРАЕМ

1. Безопасность Памяти 😘

Rust обеспечивает memory safety без необходимости в garbage collector (GC), что критически важно для блокчейнов, где даже небольшие задержки могут приводить к высокому расходу газа или уязвимостям.

🔧 Rust сочетает безопасность памяти (как в Solidity) с высокой производительностью без GC (как C++), что делает его идеальным для блокчейнов.
2. Скорость 🏆

Rust компилируется в машинный код, не использует интерпретатор (как Python) или виртуальную машину (как Solidity), а значит, работает максимально быстро.

3. Что писать?? 🍪

На Rust можно разрабатывать не только смарт-контракты, но и:

> DeFi-приложения (Solana, NEAR)

> Layer-2 решения (ZK-rollups, state channels)

> Блокчейн-клиенты (Ethereum, Polkadot)

> Боты для арбитража и трейдинга

> Криптографические библиотеки (шифрование, подписи)


Видимо Rust — это C++ для блокчейнов, но без боли и багов.

Если писать безопасные и быстрые смарт-контракты, Rust - следовательно неплохой выбор 🤬

WEB3 X Rust 😮

ethers-rs - Web3-клиент для Ethereum и EVM-совместимых блокчейнов.
(подписывать и отправлять транзакции, взаимодействовать с контрактами)

solana-sdk - Библиотека для работы с Solana.
(писать программы и управлять аккаунтами)

substrate-api-client - Rust API для работы с Polkadot/Substrate.
(управления узлами и контрактами)


КАК ВАМ РАСТ? 👊
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤‍🔥3🏆3💘1
🗣 вот и лайф

Написали скрипты, теперь можно и развеяться

Как вы проводите воскресенье? Ваши идеи на следующие видео, посты 🙏
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥3💅1
🤨 Rust СКРИПТЫ с чего начать?

1. Получение баланса ETH

Этот скрипт подключается к Ethereum (через Infura/Alchemy), получает баланс кошелька и выводит его.

Библиотека: ethers-rs

cargo add ethers

👊 СКРИПТ

use ethers::prelude::*;
use std::convert::TryFrom;
use tokio;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let provider = Provider::<Http>::try_from("https://mainnet.infura.io/v3/INFURA_KEY")?;
   
    let address: Address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e".parse()?;
    let balance = provider.get_balance(address, None).await?;

    println!("Баланс: {} ETH", balance);
    Ok(())
}

💻 Вывод: Баланс кошелька в WEI.

2. Отправка транзакции в Ethereum 💰

скрипт отправляет ETH на указанный адрес.

😕 ethers-rs

СКРИПТ

use ethers::prelude::*;
use std::convert::TryFrom;
use tokio;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let provider = Provider::<Http>::try_from("https://mainnet.infura.io/v3/INFURA_KEY")?;
    let wallet: LocalWallet = "PRIVATE_KEY".parse::<LocalWallet>()?.with_chain_id(1);
    let client = SignerMiddleware::new(provider.clone(), wallet);

    let to: Address = "0xRecipientAddressHere".parse()?;
    let tx = TransactionRequest::new()
        .to(to)
        .value(ethers::utils::parse_ether(0.01)?) // 0.01 ETH
        .gas_price(provider.get_gas_price().await?);

    let pending_tx = client.send_transaction(tx, None).await?;
    let tx_hash = pending_tx.tx_hash();

    println!("Отправлено! Tx hash: {:?}", tx_hash);
    Ok(())
}

😭 Вывод - Хэш транзакции в сети.

3. Чтение данных из смарт-контракта (ERC-20 баланс)

Этот скрипт получает баланс токена ERC-20 у пользователя.

ethers-rs

USDT - 0xdAC17F958D2ee523a2206206994597C13D831ec7


СКРИПТ

use ethers::prelude::*;
use std::convert::TryFrom;
use tokio;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let provider = Provider::<Http>::try_from("https://mainnet.infura.io/v3/INFURA_KEY")?;
   
    let erc20 = "0xdAC17F958D2ee523a2206206994597C13D831ec7".parse::<Address>()?;
    let user = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e".parse::<Address>()?;

    let abi: Abi = serde_json::from_str(include_str!("erc20_abi.json"))?;
    let contract = Contract::new(erc20, abi, provider.clone());

    let balance: U256 = contract.method("balanceOf", user)?.call().await?;
    println!("Баланс USDT: {} USDT", balance);
    Ok(())
}

😭 Вывод: Баланс токена USDT у указанного пользователя.

ВОТ ТАКОЕ НАЧАЛО??

КАК ВАМ РАСТ??

ИДЕИ??
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍4🤩2
🎮 ИЩЕМ РАБОТУ В WEB3? Guide

разбираем где и как искать работу блокчейн-разработчикам

Контрибуть в open-source

1⃣ Берем любой популярный web3 проект - Ethers.js, Hardhat, Foundry, Solidity, Ethereum, L2-решений

2⃣ Заходим в issue, смотрим, какие задачи можно решить.

3⃣ Читаем чужой код - понимаем, как работают крупные проекты.

4⃣ Контрибь – попадаешь на радары.


Свой pet-проект и популяризация в Twitter/Reddit/Telegram

Блокчейн = код + медийка.

Твой GitHub + Twitter (X) + Telegram = твое резюме.

ПЛАН 😭

Пилить DeFi-контракты, арбитражных ботов, NFT-дропы, L2-плагины. ⬇️

> Расписывать процесс разработки в тредах в Twitter / писать посты в Telegram.

> Делать видосы – записывай свой код с объяснением.


например 🤔

Я написал арбитражного бота на Python -> выложил GitHub + Telegram пост -> Кто-то увидел -> предложил контракт или работу 🤬


DAO и комьюнити-хакатоны

Работодатели в крипте ищут людей внутри комьюнити.

Как попасть?

Gitcoin, ETHGlobal, Encode Club - хакатоны и гранты

🤬 Arbitrum, Optimism, Polygon, zkSync - у всех есть гранты для разработчиков.

Участвуем в обсуждениях в Discord/Twitter/Telegram у топовых криптопроектов

Заходим в Lens, Farcaster, Warpcast - новые соцсети для крипторазработчиков 🤳


😐 Фриланс через Web3-платформы

Questbook - гранты, задания.

Cryptojobslist - площадка с вакансиями и фриланс-заказами в крипто.

🐺 Ethlance - децентрализованная фриланс-биржа на Ethereum.

LaborX – платформа с крипто-оплатами в USDT, ETH etc.


✏️ Работа через Discord и Telegram

Twitter + Discord = главные HR-платформы крипты

Подаёмся не через сайты, а через комьюнити.

Где искать?

CryptoJobsList, Remote3, Web3.career - доски вакансий

🤫 Discord серверы Solana, Ethereum, zkSync, Polygon, Starknet - ИЩЕМ "we're hiring".

Вот так, больше кода, гайс, больше проектов, больше видимости

🤟 СИЯЕМ!!

Разбираем тему далее?? ИДЕИИИ!!
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩19🐳6👍5🔥4💘2
🧑‍🌾 WEB3 ПЕТ-ПРОЕКТЫ Разбираем

🐈 Pet-project - личный (не коммерческий) проект, который ты создаешь для изучения технологий, прокачки навыков и создания портфолио.


разбираем такие проекты:

1⃣ Web3 Dashboard для Отслеживания Портфеля

Создаем DApp, которое подключается к кошельку (MetaMask, WalletConnect) и показывает баланс токенов, стейкинг, доходность фарминга, транзакции и другие метрики 💻

Технологии: TypeScript, Next.js, Ethers.js / Viem, The Graph

💰 Фичи:

> Автоподключение к кошельку

> История транзакций

> Анализ доходности

> Поддержка нескольких сетей


2⃣ Блокчейн-бот для Аукционов NFT

⌚️ Бот, отслеживает новые NFT-аукционы на OpenSea / Blur и уведомляет пользователя о самых перспективных лотах.

Python (Web3.py), Solidity, OpenSea API, Telegram Bot API

💪 Фичи:

> Подключение к NFT-маркетплейсам

> Оценка ликвидности коллекций

> Автоматическое размещение ставок

> Уведомления в Telegram


3⃣ Web3 Чат с Крипто-Платежами

🤫 Чат, где можно отправлять сообщения и платить за них криптой.

Solidity, React, IPFS, WalletConnect

Фичи:

> Отправка сообщений через IPFS

> Оплата через smart-contract

> Поддержка ENS 🪙


4⃣ DAO-инструмент для Голосования

Создаем платформу для управления DAO с возможностью голосования и управления токенами.

Solidity (Governor контракт), React, Ethers.js, Hardhat

☕️ Фичи:

> Поддержка голосования на основе токенов

> Гибкие правила голосования

> Подключение к Snapshot / Aragon


5⃣ On-Chain Игровой NFT Маркетплейс

🤬 Маркетплейс для игровых NFT с возможностью P2P-торговли и ставок.

🤣 Solidity (ERC-721 / ERC-1155), Next.js, IPFS, The Graph

Фичи:

> Выставление NFT на продажу

> On-chain аукционы

> Подключение к OpenSea

🧠 ЗАЧЕМ??

Изучение технологий - прокачиваем Solidity, Ethers.js, Web3.py, Hardhat, Foundry и другие инструменты 🥤

💼 Создание портфолио - можно показать работодателю или инвесторам

🤩 Развитие идеи - успешный pet-project можно превратить в стартап.

Проверка концепции - можем тестировать новые механики, например, новые модели токеномики 🎉


Реализация пет-проектов - ключ к понимаю технологий, с которыми мы работаем

ПОРА ДЕЛАТЬ 📞

Предлагаю реализовать один из таковых тут! Как вам? 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16😍5🐳42💘1
😮 1000 сабов

безумно рад популяризации блокчейна в нашем пространстве

Двигаемся далее, новые проекты, новый уровень, новые цели 🥰

Спасибо всем, кто присоединился к этому легендарному пути, Легенды!

Shoot For The Stars, Aim For The Moon 💫💫
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24👍5💘53🤩1😍1
😣 WEB3 СОФТ-Python с НУЛЯ

разбираемся на практике - создаем проекты постепенно набирая обороты

1⃣ Подключение к блокчейну через web3.py

как работать с web3.py и получать информацию из блокчейна? 😑

Устанавливаем web3.py

> Подключаемся к публичному RPC-узлу (Infura или Alchemy)

> Получаем информацию о блоках, балансе кошельков и истории транзакций


2⃣ Создание и подпись транзакций

отправляем транзакции и работаем с приватными ключами 🙏

> Создаем и подписываем транзакцию с помощью web3.py

> Отправь тестовые ETH на Goerli или Sepolia

> Пробуем взаимодействовать с любым смарт-контрактом


3⃣ Автоматизированный сбор данных из блокчейна

🥊 читаем события из блокчейна и работаем с историей транзакций.

> Подключаемся к WebSocket-узлу Ethereum для реального времени

> Пишем Python-скрипт для мониторинга новых блоков и транзакций

> Фильтруем транзакции по адресу, токенам или конкретным контрактам

> Парсим события (logs) из смарт-контрактов (например, переводы токенов ERC-20)

4⃣ Парсинг цен токенов через API бирж - REST API

Получаем информацию о ценах криптовалют с CEX и DEX ✏️

> Подключаемся к API Binance, OKX, KuCoin (CEX)

> Получаем данные о ценах токенов и объёме торгов

> Подключаемся к Uniswap или 1inch API для получения цен на DEX

> Реализовываем мониторинг скачков цен и анализ спредов между биржами


5⃣ Бот для мониторинга резких движений цены (Асинхронность)

Автоматическое отслеживание значительных изменений цен 😭

> Подключиться к нескольким биржам (CEX + DEX)

> Реализовать логику уведомления при изменении цены > X% за Y секунд

> Реализовать Telegram-бота для отправки уведомлений

Добавить функционал, например: просмотр цены по запросу 👊


СТАРТОВЫЙ ПАКЕТ ТАКОВ!!

Как вам?? ИДЕИ!?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥8❤‍🔥3💅2
😢 WEB3 СОФТ-Python

часть №2, практика с нуля до софта

1⃣ Создание и взаимодействие с NFT web3.py

Подключаемся к смарт-контракту ERC-721 или ERC-1155

> Получаем данные о NFT (метаданные, владелец, историю транзакций)

> Отправляем NFT другому пользователю

> Читаем события (Transfer) из NFT-контрактов

ТУЛЗ 👍

Web3.py – работа с Ethereum (чтение данных, транзакции)

IPFS / Pinata – хранение метаданных NFT

Etherscan API – получение истории транзакций


2⃣ DeFi-бот для свопов на DEX

бот для автоматической торговли на Uniswap

> Подключаемся к Uniswap V3 (PancakeSwap или 1inch)

> Получаем ликвидность, цены и объемы

> Совершаем свопы между токенами

> Мониторим цены и автоматически исполненяем сделки

ТУЛЗ 🤩

Web3.py – взаимодействие с контрактами

Uniswap V3 SDK / 1inch API – свопы и цены

AIOHTTP / Asyncio – асинхронные запросы


3⃣ Арбитражный бот между DEX и CEX

Ищем разницу цен и совершаем прибыльные сделки 🎧

> Подключаемся к нескольким DEX и CEX

> Расчитываем спред между биржами

> Автоматически исполненяем арбитражные сделки

> Работаем с flash-loan (по желанию)

ТУЛЗ 😱

CCXT - API для CEX (Binance, OKX, KuCoin)

Web3.py – подключение к DEX (Uniswap, PancakeSwap)

Pandas/Numpy – расчет спредов

Flashbots – для арбитража с flash-loans


4⃣ MEV и снайпинг новых токенов

Продвинутая тема для Web3-разработчиков 🎹

> Мониторинг мемпула и поиск выгодных транзакций

> Написание снайпер-бота для покупки новых токенов

> Фронтраннинг (опционально)

ТУЛЗ 💃

Web3.py + Etherscan API – анализ транзакций

Infura / Alchemy – доступ к мемпулу

Flashbots – отправка приоритетных транзакций

Вот такой спикок софта у нас получился, практикуемся!

🤬 РЕАЛИЗУЕМ ЧТО-ТО ПОДОБНОЕ?? ВАШИ ИДЕИ!!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤‍🔥2👍2💘1
😎 WEB3 SOFT PYTHON РЕАЛизация

разберем, как писать софты из первой и второй части степ бай степ

1⃣ БАЗА

> Подключение к блокчейну

> Отправка Транзакций

> Взаимодействие с DEX CEX биржами Rest API

> Взаимодействие со смарт-контрактами

💩 все подробно расписал в моих python материалах на Teletype

teletype.in/@vartcall/+web-3-python-development


2⃣ Advanced

Бот для мониторинга резких движений цены (Асинхронность)

> Подключение к API бирж - используем ccxt для CEX и web3.py для DEX. 😡

> Асинхронный мониторинг цен - используем asyncio, будем проверять цены с определенным интервалом.

> Логика уведомлений - если цена изменится больше чем на X% за Y секунд, отправляем уведомление.

> Telegram-бот - реализуем уведомления через aiogram.


пример 😑

async def fetch_price():
"""Функция для получения цены с биржи"""
exchange = getattr(ccxt, EXCHANGE_ID)()
ticker = await exchange.fetch_ticker(PAIR)
await exchange.close()
return ticker['last']

async def monitor_prices():
"""Мониторинг резких изменений цен"""
prev_price = await fetch_price()
while True:
await asyncio.sleep(CHECK_INTERVAL)
current_price = await fetch_price()
price_change = ((current_price - prev_price) / prev_price) * 100

if abs(price_change) >= PRICE_CHANGE_THRESHOLD:
message = (f"⚠️ Цена {PAIR} изменилась на {price_change:.2f}%\\\\n"
f"Было: {prev_price}, стало: {current_price}")
await bot.send_message(chat_id=YOUR_CHAT_ID, text=message, parse_mode=ParseMode.MARKDOWN)

prev_price = current_price


DeFi-бот для свопов на DEX

бот для автоматической торговли на Uniswap / PancakeSwap / 1inch

> Подключаемся к Uniswap V3 / PancakeSwap / 1inch через web3.py и etherscan API 🌈

> Получаем ликвидность, цены и объемы из смарт-контрактов DEX.

> Совершаем свопы между токенами, используя смарт-контракт DEX.

> Мониторим цены и автоматически исполнять сделки при заданных условиях.


пример 🤩

from web3 import Web3
import asyncio
import json

# настройки

INFURA_URL = "https://mainnet.infura.io/v3/INFURA_PROJECT_ID"
PRIVATE_KEY = "PRIVATE_KEY"
WALLET_ADDRESS = "WALLET_ADDRESS"
UNISWAP_ROUTER = "0xE592427A0AEce92De3Edee1F18E0157C05861564" # Uniswap V3 Router
TOKEN_IN = "0xdAC17F958D2ee523a2206206994597C13D831ec7" # USDT
TOKEN_OUT = "0xC02aaa39b223FE8D0A0e5C4F27eAD9083C756Cc2" # WETH
AMOUNT_IN = Web3.toWei(10, "ether") # Сколько токенов покупаем
SLIPPAGE = 0.5 # % проскальзывания

# подключение к Ethereum

w3 = Web3(Web3.HTTPProvider(INFURA_URL))
assert w3.isConnected(), "Ошибка подключения к сети Ethereum"

# загрузка ABI Uniswap

with open("UniswapV3RouterABI.json") as f:
router_abi = json.load(f)

router_contract = w3.eth.contract(address=UNISWAP_ROUTER, abi=router_abi)

def get_quote():
"""Получаем цену обмена через смарт-контракт"""
amount_out_min = int(AMOUNT_IN * (1 - SLIPPAGE / 100))
return amount_out_min

def swap():
"""Исполняем своп USDT -> WETH"""
nonce = w3.eth.get_transaction_count(WALLET_ADDRESS)
txn = router_contract.functions.exactInputSingle({
'tokenIn': TOKEN_IN,
'tokenOut': TOKEN_OUT,
'fee': 3000,
'recipient': WALLET_ADDRESS,
'deadline': w3.eth.get_block('latest')['timestamp'] + 60,
'amountIn': AMOUNT_IN,
'amountOutMinimum': get_quote(),
'sqrtPriceLimitX96': 0
}).build_transaction({
'from': WALLET_ADDRESS,
'gas': 200000,
'gasPrice': w3.toWei('50', 'gwei'),
'nonce': nonce
})

signed_txn = w3.eth.account.sign_transaction(txn, private_key=PRIVATE_KEY)
tx_hash = w3.eth.send_raw_transaction(signed_txn.rawTransaction)
return w3.toHex(tx_hash)

async def monitor_and_trade():
"""Мониторинг цен и автоторговля"""
while True:
price = get_quote()
print(f"Текущая цена: {price}")
if price < Web3.toWei(0.02, "ether"): # Критерий покупки
tx_hash = swap()
print(f"Своп выполнен! TX: {tx_hash}")
await asyncio.sleep(30)


ВОТ ТАКАЯ ПЕРВАЯ ЧАСТЬ!

Как вам ИДЕЯ, ЧТОБЫ ВСЕ ЭТИ МАТЕРИАЛЫ Я ДРОПНУЛ НА GITHUB?? 🤩
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥217😍3💘1
🔧 WEB3 SOFT ПРАКТИКА

часть №2


разбираем пример софта из второй части наших идей

Арбитражный бот между DEX и CEX

критерии версий библиотек - requirements.txt

ccxt>=4.0.0
web3>=6.0.0
pandas>=2.0.0
numpy>=1.24.0
web3-flashbots>=2.0.0


pip install -r requirements.txt


пример кода

# подключениек CEX (ccxt)

cex_exchanges = {
"binance": ccxt.binance(),
"okx": ccxt.okx(),
"kucoin": ccxt.kucoin()
}

# функция для получения цен cex

def get_cex_prices(symbol):
prices = {}
for name, exchange in cex_exchanges.items():
try:
ticker = exchange.fetch_ticker(symbol)
prices[name] = ticker['last']

except Exception as e:
print(f"Ошибка получения цены с {name}: {e}")
return prices

# функция для получения цен с DEX (Uniswap V2)

def get_dex_price(pair_address):
try:
contract = w3.eth.contract(address=pair_address, abi=[
{"name": "getReserves", "outputs": [
{"name": "reserve0", "type": "uint112"},
{"name": "reserve1", "type": "uint112"}], "stateMutability": "view", "type": "function"}
])

reserves = contract.functions.getReserves().call()

price = reserves[1] / reserves[0]

# Примерный расчет цены

return price

except Exception as e:
print(f"Ошибка получения цены с DEX: {e}")
return None

# функция расчета спреда и поиск арбитражной возможности

def find_arbitrage(symbol, dex_address):

cex_prices = get_cex_prices(symbol)

dex_price = get_dex_price(dex_address)

if dex_price is None:
return None

for exchange, cex_price in cex_prices.items():
spread = ((cex_price - dex_price) / dex_price) * 100
print(f"Спред между {exchange} и DEX: {spread:.2f}%")

if spread > 1: # 1% порог арбитража
print(f"🔥 Возможность арбитража! Покупаем на DEX, продаем на {exchange}")


👊 MEV и снайпинг новых токенов

requirements.txt

web3>=6.0.0
requests>=2.28.0 # Для API Etherscan
flashbots>=2.0.0 # Интеракция с Flashbots
python-dotenv>=1.0.0 # Для API-ключей (Infura, Alchemy, Etherscan)
numpy>=1.24.0
pandas>=2.0.0


пример кода 🤬

def monitor_mempool():
print("🚀 Мониторинг мемпула...")

latest_block = w3.eth.block_number

while True:
new_block = w3.eth.block_number

if new_block > latest_block:
print(f"🔄 Новый блок: {new_block}")
pending_transactions = w3.eth.get_block('pending', full_transactions=True)
for tx in pending_transactions.transactions:
analyze_transaction(tx)
latest_block = new_block
time.sleep(1)

# функция анализа транзакций

def analyze_transaction(tx):
try:
to_address = tx["to"]
value = w3.from_wei(tx["value"], "ether")

gas_price = w3.from_wei(tx["gasPrice"], "gwei")
print(f"📌 Транзакция: {tx['hash'].hex()} | Получатель: {to_address} | Сумма: {value} ETH | Gas: {gas_price} Gwei")
except Exception as e:
print(f"Ошибка анализа транзакции: {e}")


🔫 Благодаря данном примеру - разобрались как эта технология работает изнутри, далее

> Фильтрация транзакций (только токены ERC-20)

> Авто-покупку новых токенов - снайпинг

> Фронтраннинг - опережение выгодных сделок


Поэтому для написания ПОЛНОЦЕННОГО софта, все наконец-то ОПУБЛИКУЮ НА GITHUB 🍷

ВАШИ ИДЕИ??
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤‍🔥3🤩21
🥰 Что подарить девушке, любовнице, жене, маме или дочери??

в честь такого прекрасного праздника у меня есть решение 💸

конечно это доступ в Guide Dao

Благодаря этим легендам я намного быстрее вошел в блокчейн

Разобрался с JS/TS c нуля, взаимодействовал с Ethers.js и наконец писал свои дапки подключив React.

🪙Далее подключил Solidity, считаю что у Guide Dao самое подробное объяснение этой технологии с нуля, особенно задачи и поддержка менторов

Также мне нравятся постоянные созвоны в Discord, где мы кодим, изучаем новое и общаемся с менторами и другими участниками дао!

Также недавно они добавили новый буткемп по AI-Agents

Результат - Дао развивается, проекты пишуться

😊 Для ЛУЧШЕГО СТАРТА - БОНУС

Прямо сейчас в ДАО $LIBRA SALE -20% до 10 марта

И финальный бонус от меня -10% по промокоду VARTCALL

https://www.guidedao.xyz/

Скидки на сайте ДАО - Суммируются

Успевай порадовать свою музу
🥳
Please open Telegram to view this post
VIEW IN TELEGRAM
😍9🤩3👌3💅2🐳1
💰 JS & TS с НУЛЯ для БЛОКЧЕЙН-РАЗРАБОТЧИКОВ

наши герои лета 2024 возращаются с новым марафоном!!

МИНИ-КУРС Прямо на этом канале!

😈 ПЛАН

10 МАРТА - 10 АПРЕЛЯ

🍻 Задачи месяца: Понимание JS & TS, знакомство с блокчейном, написание первых DApps

> Введение в JS & TS + Работа с API

> Разработка DApps + Взаимодействие со смарт-контрактами

> Взаимодействие с DeFi-протоколами

> NFT + Security


10 АПРЕЛЯ - 10 МАЯ

Автоматизация + Глубокая работа с DeFi/NFT 😭

📸 Задачи месяца: Пишем автоматизированные боты, работаем с CEX и DEX, делаем DeFi-арбитраж, работать с NFT + AI

> Автоматизация Web3

> Арбитражные боты

> NFT + AI

> Глобальный проект + Итоги


🛌 РЕЗУЛЬТАТ:

7+ проектов в "портфолио"

Глубокое понимание JS, TS, Solidity, Web3 🙄

> Навык написания ботов.

> Понимание DeFi, NFT, CEX & DEX.


план будет обновляться....

ВЫ ГОТОВЫ??? ЭТИ 2 МЕСЯЦА БУДУТ ЛЕГЕНДАРНЫ!! 🔧
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥346🐳6💘1
🐿 JS/TS INTRO - Установка Компонентов

Node.js и npm

nodejs.org

Будем запускать JS/TS вне браузера через Node.js, npm - для управления пакетами

устанавливаем LTS версию, npm установится автоматически

проверка установки
node -v
npm -v


TypeScript

Добавим строгой типизации в наш код

npm install -g typenoscript


Проверка tsc -v

Подключение к блокчейну

используем библиотеку ethers.js

TypeScript
npm install --save-dev @types/node


JavaScript
npm install ethers


Пример json-файла со всеми перечисленными библиотеками и актуальными версиями

{
"name": "blockchain-project",
"version": "1.0.0",
"denoscription": "JS/TS blockchain development setup",
"noscripts": {
"start": "node index.js",
"build": "tsc"
},
"dependencies": {
"ethers": "^6.13.5",
"dotenv": "^16.0.3",
"@openzeppelin/contracts": "^4.9.0"
},
"devDependencies": {
"typenoscript": "^5.8",
"hardhat": "^2.22.19",
"eslint": "^8.35.0",
"prettier": "^3.0.0",
"@types/node": "^20.11.0"
},
"engines": {
"node": ">=18.17.1",
"npm": ">=9.0.0"
}
}


Далее начинаем писать первые скрипты и работаем с API ☺️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3