Jump to content

swapExactTokensForTokens создает кривую транзакцию


Recommended Posts

Posted

Коллеги, подскажите, пожалуйста, почему при автоматическом формировании транзакции вот таким кодом:

amountIn=w3.toWei(0.005, 'ether')

print("Создали фабрику и роутер")

tokenInChs = w3.toChecksumAddress(tokenWBNB)
tokenOutChs = w3.toChecksumAddress(tokenOut)
try:
    amounts = router.functions.getAmountsOut(amountIn, [tokenInChs, tokenOutChs]).call()
except Exception as ex:
    print(datetime.datetime.today(), "Amount getting error: ", ex)
    exit(-123)
amountOutMin = amounts[0] / amounts[1]
print("amountOutMin=",amountOutMin)

print(w3.eth.get_accounts())

time_tuple = datetime.datetime.today().timetuple()
timestamp = time.mktime(time_tuple)
unixTime=int(float(repr(timestamp)))+600

print("Сейчас буем вызывать swapExactTokensForTokens")
tx1 = router.functions.swapExactTokensForTokens(
    amountIn,
    w3.toWei(amountOutMin, 'ether'),
    [tokenInChs, tokenOutChs],
    myAccount,
    unixTime)

print(amountIn,w3.toWei(amountOutMin, 'ether'), [tokenInChs, tokenOutChs],myAccount,unixTime)

tx=tx1.buildTransaction({
        'gas': 100000, #81000,
        'gasPrice': w3.toWei('10', 'gwei'),
        'nonce':  w3.eth.get_transaction_count(myAccount),
    })

print("Результат работы роутера ",tx)

signed = w3.eth.account.sign_transaction(tx, key)
print("Сырая транзакция ",signed.rawTransaction)

# When you run send_raw_transaction, you get back the hash of the transaction:
print("Результат подписания транзакции ",w3.eth.send_raw_transaction(signed.rawTransaction))

 

Транзакция отвергается вот с такой ошибкой:

 

Безымянный.png

Posted

у вас апрув задан? сколько можно перводить на роутер ваших монет?, поидее он пишет ошибку исполнения TransferFrom где он говорит что роутер неможет забрать с вашего кошелька.... 

Posted
16 часов назад, lamat777 сказал:

у вас апрув задан?

 

Скажите пожалуйста, а чем задать аппрув? Пробую делать так:

 

def approve(web3, token, spender_address, wallet_address, private_key):
    spender = spender_address
    max_amount = web3.toWei(2 ** 64 - 1, 'ether')
    nonce = web3.eth.getTransactionCount(wallet_address)

    tx = token.functions.approve(spender, max_amount).buildTransaction({
        'from': wallet_address,
        'nonce': nonce
    })

    signed_tx = web3.eth.account.signTransaction(tx, private_key)
    tx_hash = web3.eth.sendRawTransaction(signed_tx.rawTransaction)

    return web3.toHex(tx_hash)

 

В качестве token передаю роутер, в ответ сообщение:

 

Цитата

Traceback (most recent call last):
  File "D:/PythonProjects/Web3Demo/BuyToken.py", line 68, in <module>
    print(BotLib.approve(w3, router, tokenOutChs, myAccount, key))
  File "D:\PythonProjects\Web3Demo\BotLib.py", line 6, in approve
    tx = token.functions.approve(spender, max_amount).buildTransaction({
  File "C:\Users\Shuravin\Anaconda3\envs\Web3Demo\lib\site-packages\web3\contract.py", line 196, in __getattr__
    "Are you sure you provided the correct contract abi?"
web3.exceptions.ABIFunctionNotFound: ("The function 'approve' was not found in this contract's abi. ", 'Are you sure you provided the correct contract abi?')

 

Posted
В 26.01.2022 в 07:46, Шуравин Александр сказал:

 

Скажите пожалуйста, а чем задать аппрув? Пробую делать так:

 

def approve(web3, token, spender_address, wallet_address, private_key):
    spender = spender_address
    max_amount = web3.toWei(2 ** 64 - 1, 'ether')
    nonce = web3.eth.getTransactionCount(wallet_address)

    tx = token.functions.approve(spender, max_amount).buildTransaction({
        'from': wallet_address,
        'nonce': nonce
    })

    signed_tx = web3.eth.account.signTransaction(tx, private_key)
    tx_hash = web3.eth.sendRawTransaction(signed_tx.rawTransaction)

    return web3.toHex(tx_hash)

 

В качестве token передаю роутер, в ответ сообщение:

 

 

вам нужно зайти на смартконтракт pairpancake и выполнить allowance между вашим и адресом смарта, типа ваш адрес разрешил перевод стольки средств.... transferFrom изучите, потому что перевод средств выполняется смартом с вашего кошелька

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Similar Topics

    • Бахрейн создает государственную инфраструктуру для майнинга

      Власти Королевства Бахрейн анонсировали начало работ по созданию собственной инфраструктуры для майнинга криптовалют. Министерство финансов и национальной экономики Бахрейна заключило соглашение со специализирующейся на продаже, установке и обслуживанию оборудования для майнинга с компанией Crypto Miners. Совместный проект предусматривает создание центров обработки данных, оснащенных высокопроизводительным оборудованием для добычи криптовалют.   Министр финансов и национальной экон

      in Новости криптовалют

    • Bitget создает региональный хаб в Европе для соответствия требованиям MiCA

      Bitget рассматривает возможность создания регионального хаба в Литве в рамках стратегической экспансии в Европейском союзе для соблюдения требований по регулированию криптоактивов MiCA. Bitget активно готовится к соблюдению требований MiCA, включая планы по открытию офиса и найму специалистов по вопросам соответствия и операционной деятельности в Литве.   «Мы искренне благодарим регулирующие органы ЕС за их видение в создании безопасной и динамичной среды для использования цифровых ин

      in Новости криптовалют

    • Том Эммер: «Гэри Генслер сам создает беззаконие в криптоиндустрии»

      Член Конгресса США от Республиканской партии Том Эммер раскритиковал главу Комиссии по ценным бумагам и биржам США (SEC) Гэри Генслера за то, что во время его председательства регулятор стал чаще подавать в суд на криптокомпании. Об этом Том Эммер (Tom Emmer) заявил на слушаниях в Комитете по финансовым услугам Палаты представителей Конгресса США. Он сказал, что SEC стремится регулировать криптоиндустрию лишь принудительным путем — через суды.   «Гэри Генслер (Gary Gensler) стал сам

      in Новости криптовалют

    • Мосбиржа создает агрегатор торговых площадок ЦФА

      Российские платформы по выпуску цифровых финансовых активов (ЦФА) согласились на интеграцию с Московской биржей, стало известно из доклада, который представил директор по цифровым активам главной фондовой площадки страны Сергей Харинов. Сергей Харинов сообщил, что Мосбиржа планирует создать единого оператора обмена, который консолидирует ликвидность ЦФА и станет единой точкой входа для их дистрибуции. Одна из главных задач: увеличить оборот на рынке ЦФА. С появлением подобного агрегатора эм

      in Новости криптовалют

    • Джастин Сан создает фонд на $1 млрд для поддержки крипторынка

      Советник криптовалютной биржи HTX и основатель проекта TRON заявил о создании фонда размером $1 млрд, чтобы «поддержать индустрию цифровых активов». Предприниматель опроверг слухи о ликвидации своих позиций в стейблкоине USDT. Джастин Сан призвал участников рынка не беспокоиться по поводу обвала котировок биткоина, эфира и других криптовалют:   «За последний год криптоиндустрия значительно выросла, колебание рынка не связано с негативными новостями. Мы должны бороться со страхом и пр

      in Новости криптовалют

×
×
  • Create New...