【发布时间】:2022-06-14 23:36:50
【问题描述】:
if int(f.json()["inputAmount"]) != 0:
nonce = w.eth.get_transaction_count(acc)
router = w.eth.contract(address=a, abi=abi)
txn = router.functions.swapExactTokensForTokens(
aIn, # Amount in uint256
0, # Min amount out uint256
poolPath, # address[] calldata poolspath
tokenPath, # IERC20[] calldata path
acc, # address to
int(time.time()) + 1000, # deadline uint 256
).buildTransaction(
{
"from": acc,
"value": aIn,
"gas": int(f.json()["totalGas"]),
"gasPrice": int(w.eth.generate_gas_price()),
"nonce": nonce,
}
)
sgnTxn = w.eth.account.sign_transaction(
txn,
private_key=acc1,
)
txn_token = w.eth.sendRawTransaction(sgnTxn.rawTransaction)
print(txn_token)
else:
print("no swap!")
web3.exceptions.ValidationError:
无法识别名称为 swapExactTokensForTokens、类型为 (<class 'int'>, <class 'int'>, <class 'list'>, <class 'list'>, <class 'str'>, <class 'int'>) 的位置参数和类型为 {} 的关键字参数的预期函数。
找到 1 个名称为 swapExactTokensForTokens 的函数:swapExactTokensForTokens(uint256,uint256,address[],address[],address,uint256)
由于没有匹配的参数类型,函数调用失败。
【问题讨论】:
-
如果您可以添加代码的 sn-p 以便我们提供帮助,那就太好了
-
IDK 为什么参数不匹配或问题在其他地方仍然存在,欢迎任何帮助。
标签: javascript solidity web3js