web3.py swapExactTokensForTokens 交易失败

Posted

技术标签:

【中文标题】web3.py swapExactTokensForTokens 交易失败【英文标题】:web3.py swapExactTokensForTokens failing transaction 【发布时间】:2021-05-29 21:49:16 【问题描述】:

我正在尝试调用路由器合约的 swapExactTokensForTokens,我需要将 tokenA 交换为 tokenB。以下是交易代码:

router = '0x0000000'
abi = '["inputs":["internalType":"address","name":"_factory","type":"address",.... "stateMutability":"payable","type":"receive"]'

router_contract = w3.eth.contract(router, abi=abi)

tokenA = '0x000...'
tokenB = '0x000...'

path = [tokenA, tokenB]


txn = router_contract.functions.swapExactTokensForTokens(amount, min_amount, path, personal_wallet, (int(time()) +1000) ).buildTransaction(
        'gas': 81000,
        'gasPrice': w3.toWei('10', 'gwei'),
        'nonce':  w3.eth.get_transaction_count(personal_wallet),
    )

我在交易中收到以下错误:

screenshot of the transaction

【问题讨论】:

【参考方案1】:

更新:

当增加gas并在buildTransaction中添加from字段时,上面的代码可以正常工作。

【讨论】:

以上是关于web3.py swapExactTokensForTokens 交易失败的主要内容,如果未能解决你的问题,请参考以下文章

使用 web3.py 时出现 ContractLogicError

如何“捕捉 web3.py 中的错误”

安装 web3.py 时如何消除错误

安装 web3.py 时出错。 “python setup.py egg_info”

使用 web3.py 解码智能合约的返回值?

安装 web3.py 时收到错误