Jump to content

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


Recommended Posts

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

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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?')

 

Link to comment
Share on other sites

В 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 изучите, потому что перевод средств выполняется смартом с вашего кошелька

Link to comment
Share on other sites

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

    • Финансовый регулятор Тайваня создает отдел по работе с цифровыми активами

      Законодательное собрание Тайваня приняло поправки в законодательство, согласно которым Комиссия по финансовым услугам Тайваня (FSC) сможет сформировать новый отдел для работы с цифровыми активами. Отдел будет создан в дополнение к существующим четырем подразделениям, осуществляющим надзор за страхованием, ценными бумагами и фьючерсами, банковским бизнесом и аудиторскими компаниями.   Ведомство уже объявило, что измененная нормативно-правовая база подразумевает новые правила для крипт

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

    • МВФ создает международную цифровую валюту для трансграничных расчетов

      Денежно-кредитное управление цифровой валюты (DCMA) Междунродного валютного фонда (МВФ) объявило, что собирается запустить универсальную денежную единицу Unicion (UMU), которая будет юридически законным платежным средством для трансграничных расчетов. Для соблюдения банковских правил и защиты финансовой целостности международной банковской системы, UMU признается всеми участниками расчетов в качестве денежного товара, который выпускается и функционирует в формате цифровой валюты международн

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

    • Китай создает в Пекине исследовательский центр блокчейна

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

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

    • Автоконцерн BMW создает программу лояльности на блокчейне

      Немецкая компания BMW намерена внедрить блокчейн в свою повседневную работу, в частности, запустив программу лояльности для своих клиентов в Таиланде. Автоконцерн нанял разработчика инфраструктуры блокчейна Coinweb в качестве поставщика децентрализованной архитектуры, а для расчетов по транзакциям BMW будет использовать сеть BNB.    Компания интегрирует блокчейн в два этапа: сначала его будут использовать для автоматизации сложных ручных процессов и оптимизации услуг компании по фина

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

    • Биржа BingX создает фонд помощи на $5 млн для пострадавших от краха FTX компаний

      Криптовалютная биржа BingX, ориентированная на социальную торговлю, объявила о создании фонда помощи в размере $5 млн для содействия всем своим партнерам, пострадавшим от краха биржи FTX. На прошлой неделе биржа FTX, Alameda Research и еще 130 аффилированных лиц подали заявление о банкротстве. Цена токена FTX упала примерно на 80% c момента начала кризиса FTX. Высокая волатильность на рынке и невозможность вывести средства с FTX, привели к потерям многих владельцев криптовалют и компаний.

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

×
×
  • Create New...