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

    • Маркетплейс майнинга биткоина, который снижает порог входа и создает ликвидность для отрасли

      ECOS запускает маркетплейс майнинга: покупка ASIC, хостинг и вторичный рынок в одном месте   Компания ECOS объявляет о запуске работающего маркетплейса для биткоин-майнинга, объединяющего в одной точке покупку и размещение оборудования, операции и вторичный рынок. По данным компании, площадка уже используется тысячами участников, а сопоставимых по охвату и модели решений на глобальном рынке нет. Коротко: что произошло и почему это важно Рынок майнинга исторически фрагментиров

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

    • Анатолий Аксаков: Банк России создает новую систему операций с цифровым рублем

      Глава комитета Госдумы по финансовому рынку Анатолий Аксаков в эфире радио «Вести ФМ» рассказал, что Банк России разрабатывает систему, благодаря которой операции с цифровым рублем можно будет проводить даже при отсутствии электроэнергии. По словам Аксакова, в течение следующего года ЦБ РФ доработает и реализует новую технологию.   «Вы даже без электричества в определенном пространстве сможете оплачивать товары и услуги. И в этом огромный плюс цифрового рубля. Цифровой рубль безопас

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

    • Metaplanet создает дочерние компании в США и Японии

      Крупнейший японский корпоративный держатель биткоинов Metaplanet Holdings сообщил о диверсификации бизнеса и создании двух дочерних компаний в США и Японии. Дочерние компании позволят отделить закупку биткоинов от дополнительных источников дохода, не связанных с управлением резервами первой криптовалюты, объяснили представители Metaplanet.   Американское подразделение Metaplanet Income в Майами, штат Флорида, должно сосредоточиться на операциях с производными финансовыми инструментам

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

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

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

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

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

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

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

×
×
  • Create New...