ethToTokenInput on the Uniswap V1 contract converts all the sent ether to tokens and transfers the tokens to the recipient.
Lets assume 1 ether buys you 3.9 tokens according to
getInputPrice(). If you send 1 ether with
ethToTokenInput(1, ...), the contract will send you 3 tokens even though 3 tokens only cost rougly 0.8 ether.
- Why does this function not refund the remaining ~0.2 ether?
- Is the "overpaid" ether distributed among liquidity providers (added to the eth_reserves)?