Добавить новость
ru24.net
«Фрилансим»
Ноябрь
2024

Правильно обработать транзакцию Uniswap v3

0
Пишу скрипт автоматической ребалансировки позиции на Uniswap v3. Вот функция минта новой позиции, с которой у меня основные проблемы.

def add_liquidity(web3, wallet_address, private_key, new_range_lower, new_range_upper, token_id, amount0=None,
                  amount1=None):
    """
    Добавляет ликвидность в новый диапазон.
    :param web3: Экземпляр Web3 для взаимодействия с блокчейном.
    :param wallet_address: Адрес кошелька.
    :param private_key: Приватный ключ кошелька.
    :param new_range_lower: Новая нижняя граница диапазона.
    :param new_range_upper: Новая верхняя граница диапазона.
    :param amount0: Количество первого токена для добавления.
    :param amount1: Количество второго токена для добавления.
    :param token_id: ID позиции NFT на Uniswap.
    """
    token0 = TOKEN0  # WETH
    token1 = TOKEN1  # USDC

    logger = setup_logger(wallet_address)
    logger.info(f"Добавление ликвидности в диапазон {new_range_lower} - {new_range_upper} начато.")

    tick_lower, tick_upper = price_to_tick(new_range_lower), price_to_tick(new_range_upper)
    price_ticked_lower, price_ticked_upper = tick_to_price(tick_lower), tick_to_price(tick_upper)

    try:
        # Если amount0 не передано, вычисляем их динамически
        if amount0 is None:
            amount0, amount1 = AMOUNT0, AMOUNT1
            logger.info(f"Вычислены значения для кошелька {wallet_address}: amount0 = {amount0}, amount1 = {amount1}")
        else:
            amount1 = eth_to_usdc(price_ticked_lower, price_ticked_upper, get_eth_price(), amount0)
            logger.info(f"Используются переданные значения для кошелька {wallet_address}: amount0 = {amount0}, amount1 = {amount1}")
        # Получаем контракт
        position_manager = get_contract(POSITION_MANAGER_ADDRESS, POSITION_MANAGER_ABI_PATH)

        params = (
            Web3.to_checksum_address(token0),
            Web3.to_checksum_address(token1),
            3000,
            tick_lower,
            tick_upper,
            Web3.to_wei(amount0, 'ether'),
            int(amount1 * (10**6)),
            0,
            0,
            Web3.to_checksum_address(wallet_address),
            int(time.time()) + 60
        )
        print(Web3.to_checksum_address(token0),
            Web3.to_checksum_address(token1),
            3000,
            tick_lower,
            tick_upper,
            Web3.to_wei(amount0, 'ether'),
            int(amount1 * (10**6)),
            0,
            0,
            Web3.to_checksum_address(wallet_address),
            int(time.time()) + 60)
        add_liquidity_txn = position_manager.functions.mint(params).build_transaction({
            "from": wallet_address,
            "value": 0,
            "gasPrice": int(web3.eth.gas_price * GAS_PRICE_MULTIPLIER),
            "nonce": web3.eth.get_transaction_count(wallet_address),
        })

        # Оценка газа для mint
        estimated_gas = web3.eth.estimate_gas(add_liquidity_txn)
        add_liquidity_txn['gas'] = int(estimated_gas * 1.2)  # Добавляем запас 20%
        signed_tx = web3.eth.account.sign_transaction(add_liquidity_txn, private_key=private_key)

        tx_hash = web3.eth.send_raw_transaction(signed_tx.raw_transaction)

        logger.info(f"Ликвидность успешно добавлена для кошелька {wallet_address}. Хэш транзакции: {tx_hash}")
    except Exception as e:
        logger.error(f"Ошибка при добавлении ликвидности для кошелька {wallet_address}: {e}")
Вот, что лежит в params 0x4200000000000000000000000000000000000006 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 3000 -194630 -194351 100000000000000 379277 0 0 0xdb9733BE614A69a62ad717f3158BBA383b2F740B 1732838297

Проблема в том, что при таких параметрах вечно получаю ошибку

2024-11-29 02:57:18,546 - ERROR - Ошибка при добавлении ликвидности для кошелька 0xdb9733BE614A69a62ad717f3158BBA383b2F740B: ('execution reverted', 'no data')

Когда меняю тики, то выходит

0xdb9733BE614A69a62ad717f3158BBA383b2F740B: ('execution reverted: STF', '0x08c379a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000035354460000000000000000000000000000000000000000000000000000000000')



Moscow.media
Частные объявления сегодня





Rss.plus



Лучшие студенческие энергетические отряды «Россети Центр» и «Россети Центр и Приволжье» награждены в Москве

Токсиколог Кутушов перечислил топ-5 наиболее токсичных веществ в бытовой химии

Интересные каналы в Telegram. Лучшие каналы в Telegram.

В Подмосковье сотрудники Росгвардии задержали гражданку, находившуюся в федеральном розыске


Андрей Губин завершил карьеру из-за проблем со здоровьем

Волшебная новогодняя ночь для гостей Marins Park Hotel Нижний Новгород

Ядовитая красота: врач Кутушов рассказал о скрытых рисках искусственных елок

Секреты мотивации: как превратить рутину в увлекательный процесс


Best Black Friday office chair and desk deals: November 28

What to know before Stanford visits SJSU for Bill Walsh Legacy Game

Derek Chisora unveils plan for shock career change once he’s retired from boxing – but plans dream 50TH fight first

The Evolution of Graphic Design: What Today’s Designers Offer


Стало известно о планах Трампа об отмене налоговых льгот для электромобилей

Hybrid разработал Creative Craft — продукт для генерации креативов с помощью технологий ИИ

Лето на верховых болотах Ленинградской области

StarLine на Международном полимерном симпозиуме


The best-selling graphics card deals on Amazon right now, and which we recommend

Suicide Squad: Kill the Justice League is $3.50 on Steam, letting you poke around one of 2024's most interesting failures for the price of a cheeseburger

Plug In Digital перевыпустит Serial Cleaner на iOS и Android

Meet weird avians, save a kidnapped goddess, and explore a gorgeous lantern world inspired by Persian art in this very funny new indie adventure game


Секретар Миколаївської міськради у робочий час у нетверезому стані рекламував свій бізнес


Токсиколог Кутушов перечислил топ-5 наиболее токсичных веществ в бытовой химии

Лучшие студенческие энергетические отряды «Россети Центр» и «Россети Центр и Приволжье» награждены в Москве

Секреты мотивации: как превратить рутину в увлекательный процесс

Дышите глубже: доктор Кутушов рассказал, как "безопасные" альтернативы сигарет отравляют ваш организм




Токсиколог Кутушов перечислил топ-5 наиболее токсичных веществ в бытовой химии

Лучшие студенческие энергетические отряды «Россети Центр» и «Россети Центр и Приволжье» награждены в Москве

Интересные каналы в Telegram. Лучшие каналы в Telegram.

Вадим Петров поздравил ВООП со 100-летием и предложил новую парадигму восстановления экосистем


Врач-флеболог рассказала, когда выступающие вены являются признаком болезни

Ядовитая красота: врач Кутушов рассказал о скрытых рисках искусственных елок

Вадим Петров поздравил ВООП со 100-летием и предложил новую парадигму восстановления экосистем

Орловцы «отправили» губернатора Клычкова на повышение в Москву


Андреа Петкович заявила, что Синнера не включили в номинанты премии ATP из-за допинг-дела

Бублик проиграл на турнире в Санкт-Петербурге

Кафельников назвал позором допинговые скандалы ведущих теннисистов

Стало известно место Рыбакиной в рейтинге лидеров WTA по призовым за сезон


В Кузбассе йети встретил первый чартер с горнолыжниками, прилетевшими в Шерегеш

Представлен отечественный снегоболотоход «Егерь» c мотором от Hyundai Galloper и Hyundai H1

Как законы декабря изменят жизнь россиян

С ним не страшно ни в огонь, ни в воду: мужчины этих знаков зодиака самые надежные мужья


Музыкальные новости

Спектакль- концерт «Владимир Высоцкий. Известный и неизвестный» в день его рождения пройдет в Петербурге

Секреты мотивации: как превратить рутину в увлекательный процесс

Бэби-бум 2024 в семьях звезд: Казанова и Акулова впервые стали мамами после 40, а любимец детей Влад Бумага – папой

Рэперу Джигану пришлось искать Оксану Самойлову в лесу без связи



Секреты мотивации: как превратить рутину в увлекательный процесс

Ядовитая красота: врач Кутушов рассказал о скрытых рисках искусственных елок

Дышите глубже: доктор Кутушов рассказал, как "безопасные" альтернативы сигарет отравляют ваш организм

Токсиколог Кутушов перечислил топ-5 наиболее токсичных веществ в бытовой химии


Уссурийский дизельный дивизион Желдорреммаш освоил новый вид продукции

Стало известно о планах Трампа об отмене налоговых льгот для электромобилей

Лерчек получает букет от бывшего, а Джиган ищет жену и дочку в лесу: что смотреть на ТНТ в выходные

В Солнечногорске сотрудники Росгвардии почтили память коллег, погибших при исполнении служебного долга


Водитель Mitsubishi насмерть сбил женщину на севере Москвы

Баскетболисты МБА-МАИ обыграли «Автодор» в матче Единой лиги ВТБ

Первая Снежная Битва Под Бородино

Из пункта М в пункт П // «Ъ» напоминает, сколько времени уходило в разные времена на дорогу из Москвы в Петербург по воде, по земле и по воздуху


Посол ФРГ назвал основную мысль Шольца в телефонном разговоре с Путиным

Путин посетит Минск

Путин уточнил порядок прохождения контроля транспортных средств

Путин передал часть функций по развитию фонда "Сколково" властям Москвы





Враги или союзники? Доктор Кутушов объяснил, когда отказ от молочных продуктов и глютена оправдан

Токсиколог Кутушов перечислил топ-5 наиболее токсичных веществ в бытовой химии

Ядовитая красота: врач Кутушов рассказал о скрытых рисках искусственных елок

Дышите глубже: доктор Кутушов рассказал, как "безопасные" альтернативы сигарет отравляют ваш организм


Захарова: Зеленского предали хозяева


Баскетболисты МБА-МАИ обыграли «Автодор» в матче Единой лиги ВТБ

Первая Снежная Битва Под Бородино

«Локомотив» — «Химки»: когда начало, где смотреть онлайн матча РПЛ, 1 декабря

Гран-при за танец, ставший эталоном




Собянин: Ежегодно реставрируется около 500 объектов культурного наследия

Сергей Собянин. Главное за день

Сергей Собянин объявил о начале приема заявок на архитектурную премию Москвы


Вешенка, дрожалка, булгария: какие грибы можно встретить в Москве зимой

Вадим Петров поздравил ВООП со 100-летием и предложил новую парадигму восстановления экосистем

Ядовитая красота: врач Кутушов рассказал о скрытых рисках искусственных елок


Матвиенко: для контактов с американским парламентом нет никаких условий

Как законы декабря изменят жизнь россиян

Врач-флеболог рассказала, когда выступающие вены являются признаком болезни

Вадим Петров поздравил ВООП со 100-летием и предложил новую парадигму восстановления экосистем


Школьники из Архангельской области – в числе победителей и призеров Национальной технологической олимпиады Junior

Декабрь спрогнозировали россиянам синоптики

В Архангельске определили чемпионов Поморья по настольному теннису

В Архангельске представили выставку «Мечта о Севере. Снегурочка»


В России массово воруют масло: за неделю заведено около 50 дел

Выставка «Царская семья. Любовь и милосердие» открыта в филиале МГУ в Севастополе

«Жить стало лучше, жить стало веселее». Севастополь и Симферополь - в лидерах российского рейтинга по уровню жизни в 2024 году

«Динамика будет сдержанной». Пока где-то «вторичка» дорожает, в Симферополе она дешевеет, но это не точно


«Зависимость от импортных комплектующих — отсутствует». В Москве представили тактический пикап АГ34

Как сделать квашеную капусту по-настоящему вкусной: три простых правила

Девелоперы рискуют обанкротиться из-за высокого уровня закредитованности

Матвиенко: для контактов с американским парламентом нет никаких условий












Спорт в России и мире

Новости спорта


Новости тенниса
WTA

WTA выразила поддержку Швентек после отстранения за допинг






Токсиколог Кутушов перечислил топ-5 наиболее токсичных веществ в бытовой химии

В России выставили на продажу уникальный микроавтобус ЗИЛ «Юность» с мотором V8 и «автоматом». Эту машину хотел по лицензии выпускать Ford

Представлен отечественный снегоболотоход «Егерь» c мотором от Hyundai Galloper и Hyundai H1

Как сделать квашеную капусту по-настоящему вкусной: три простых правила