title: ValidationError on smart contract function call for no apparent reason(web3py)?
body: <p>I am trying to call Uniswap's Router's function <a href="https://etherscan.io/address/0x7a250d5630b4cf539739df2c5dacb4c659f2488d#writeContract" rel="nofollow noreferrer">swapExactTokensForETHSupportingFeeOnTransferTokens()</a>. When I enter the values manually on etherscan, it goes through. However, when I do it via python code it gives me a validation error. The error looks like this:</p>
  <p><code>web3.exceptions.ValidationError:  Could not identify the intended function with name swapExactTokensForETHSupportingFeeOnTransferTokens, positional argument(s) of type (&lt;class int&gt;, &lt;class int&gt;, &lt;class list&gt;, &lt;class str&gt;, &lt;class float&gt;) and keyword argument(s) of type {}. Found 1 function(s) with the name swapExactTokensForETHSupportingFeeOnTransferTokens: [swapExactTokensForETHSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)] Function invocation failed due to no matching argument types.</code></p>
  <p>Here's the code im using:</p>
  <pre><code>swap = uniswap_router_contract.functions.swapExactTokensForETHSupportingFeeOnTransferTokens(uint amount, 0, list_of_two_token_addresses, my_address_string, unix_time_stamp_deadline).buildTransaction({'nonce': some_nonce})
  
  gas_amount = web3.eth.estimateGas(swap)
  
  print(gas amount)
  </code></pre>
  <p>Am I supposed to somehow turn my ints into unsigned int in python? I tried but it didn't fix it. Im using the web3py library. Could someone direct me to the issue or to existing code that calls said function?</p>
  <p>Thanks.</p>
  <p>Edit:</p>
  <p>I converted timestamp into int and also made sure my address strings were checksum using the web3.toChecksum method.</p>
  <pre><code>swap = uniswap_router_contract.functions.swapExactTokensForETHSupportingFeeOnTransferTokens(uint amount, 0, list_of_two_token_addresses, my_address_string, int(unix_time_stamp_deadline)).buildTransaction({'nonce': some_nonce})
  gas = web3.eth.estimateGas(swap)
  print(gas)
  </code></pre>
  <p>When I run this it gives me this error:</p>
  <blockquote>
  <p>raise SolidityError(response['error']['message'])
  web3.exceptions.SolidityError: execution reverted: TransferHelper:
  TRANSFER_FROM_FAILED</p>
  </blockquote>