Ошибка обработки транзакции Uniswap v3 (Бюджет: 2000 руб)

Дата публикации: 29.11.2024 13:29:49
Бюджет: 2000 руб
Пишу скрипт автоматической ребалансировки позиции на 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', '0x08c379a000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000 0000000000000000000000000000000000000035354460000000000000000000000000000000000000000000000000000000 000')
Источник: www.fl.ru
Число просмотров: 4

Еще проекты:

Поднять и настроить сервер для приложения связаного с ИИ. (Бюджет: 1500 руб)

Поднять и настроить сервер для приложения связанного с ИИ. Параметры известны, ищем человека кто все под ключ подберет и настроит. напишите сопроводительное небольшое письмо, добавлю вас в телегарм чат

Пара легких вопросов касаемо курсов на разработчика unity от интернет платформ (Бюджет: 1200 руб)

Хотелось бы обучиться командой онлайн курсом unity (гейм дев, мобильный гейминг,кодинг, маркетинг)  От уже действующего разраба хотелось бы уточнить по поводу конкретного места для обучения и задать пару вопросов о сфере.

Обработка фотографий улиц и домов (Бюджет: 1500 руб/час)

Нужно обработать естетично, убрать лишнее, цветокоррекция, если нужно то добавить что-то (ясное небо, например) на 8 фотографиях.  Пример фото вышлю.  Важно самим проявить инициативу. фото прикрепила пример! Будут подобные, но свежие.

Таргетолог в Инстаграм (Бюджет: 1500 руб/час)

Настроить таргет в Инстаграм на русскоязычных спортсменов, находящихся заграницей для бреда

Bitrix Back End (Бюджет: 1500 руб/час)

Требуется опытный специалист для поддержки сайтов на CMS Bitrix Требования: 1. Разработка, поддержка и оптимизация высоконагруженных сайтов на базе 1С-Битрикс. 2. Интеграция Битрикс с внешними системами и сервисами. 3. Разработка и кастомизация компонентов, модулей и шаблонов. 4. Оптимизация производительности и обеспечение безопасности. 5. Настройка и работа с кэшированием 6. Работа с Git, Docker, навыки работы с серверной инфраструктурой (CentOS, Ubuntu, Debian) 7. Оптимизации кода и...