Closed realrouse closed 4 years ago
I believe this issue also affects tokens that have a transfer and/or storage fee. In v1 there didn't seem to be an issue but with v2 it requires fee exemption of the router and pool address which is a less than ideal solution (particularly having to exempt the pool from storage fees) but it does some to work.
Transfer and storage fees are not very common features but there are a few examples. This will probably become more common as tokens backed by real assets gain in popularity.
For posterity, a summary of the status of fee-on-transfer (FoT) tokens on Uniswap V2 follows. Note that this also applies to tokens which deflate on transfer, but does not necessarily apply to tokens which deflate in other ways.
Swapping {W,}ETH -> FoT swaps will succeed.
FoT -> {W,}ETH swaps will fail because of incompatibility with the current router, but may be supported in a future router release. Nothing theoretically prevents these swaps from occurring.
Adding Liquidity Adding liquidity will succeed.
Removing Liquidity Removing liquidity will succeed, as long as ETH is not one of the outputs. This limitation may be removed in a future router release. Unfortunately, the easy fix of receiving WETH directly (instead of ETH) is not supported in the current interface. This limitation may be removed in a future interface release.
For those wishing to manually remove their FoT<>WETH liquidity before a fix is released on our end, steps to do so follow:
Look up the address of the pair you have liquidity in by visiting https://etherscan.io/address/0x5c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f#readContract (the Uniswap factory) and pasting the FoT token address and the WETH address (0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2) into getPair
.
Visit https://etherscan.io/address/approve
with the following parameters:
removeLiquidity
with the following parameters:
balanceOf
)withdraw
with the following parameters:
balanceOf
)So we can never ever remove liquidity with burning tokens? What would be an ideal solution or alternative for this? I might face loss for this one.
So we can never ever remove liquidity with burning tokens? What would be an ideal solution or alternative for this? I might face loss for this one.
If you read what @NoahZinsmeister wrote in the post above, you can Remove Liquidity by following his guide above.
So we can never ever remove liquidity with burning tokens? What would be an ideal solution or alternative for this? I might face loss for this one.
If you read what @NoahZinsmeister wrote in the post above, you can Remove Liquidity by following his guide above.
Even if its a deflationary token?
Can confirm it works even if it’s a deflationary token or a token that has a transfer fee.
Can confirm it works even if it’s a deflationary token or a token that has a transfer fee.
Lastly, its deflationary, but paired with ETH, would still work?
yes @MirasolFerrer, please stop cluttering the conversation.
removing Fot <> WETH liquidity into ETH should now work on the frontend
FoT -> ETH/token swaps should now work on the frontend
two notes on swaps:
removing Fot <> WETH liquidity into ETH should now work on the frontend
FoT -> ETH/token swaps should now work on the frontend
two notes on swaps:
- all swaps involving FoT tokens must specify an exact input, not an exact output
- all swaps involving FoT tokens must have slippage set to at least the fee percentage
Thank you for the swift development, @NoahZinsmeister ! I was wondering:
If there is anything you'd need help with, Noah, let me know! 😁
If there could be made a custom URL to set the slippage to the ease of our users? tracking in #876
If it is possible to develop a workaround so that you are able to specify exact output? we are not going to be supporting this on the default frontend, you are welcome to come up with a custom solution.
Is it possible that the slippage could be set automatically when you for example list a FoT token like BSOV (https://bsov.io) ? it's unlikely
I just posted this on reddit: https://www.reddit.com/r/UniSwap/comments/hs6uqf/problem_with_removing_tokens_and_eth_from_ampl/
Can this be related to this issue? When will this be fixed in the frontend? I might have migrated from V1 to V2, but I am not sure...
Hey guys we have the same problem on our DTH/ETH pair https://uniswap.info/pair/0xC0Cb62f0b5C9574Cc88907dC0712F27b4a6a60c1. Users in front-end are not able to remove their liquidity, The workaround describes heres works, but how can we do to make it works directly from your front-end?
removing liquidity for FoT tokens works on the frontend, you just have to specify a slippage higher than the fee
Just put an issue in that is similar to this with metamask that relates to getting UMA/ETH pool tokens out that are stuck. Can't approve or withdraw any pool tokens, signing the transaction always fails. Nonce on the approval message is set to 0x00 and the transaction is never sent to the ledger.
Seems like this is a problem with Ledger/Metamask interacting with Uniswap V2. Directly communicating with a Ledger would stop a huge portion of these problems it seems like. After doing a lot of research on how to fix this, I have seen countless people with the same issue recently.
Can anyone explain me what is the difference between swaptokens and swaptokenssupporting feeto
Can anyone explain me what is the difference between swaptokens and swaptokenssupporting feeto
Here the details: https://docs.uniswap.org/protocol/V2/reference/smart-contracts/router-02
I believe we have discovered a work around for transfer fee tokens that works with our CACHE Gold (CGT) token. Our token has both a fee on transfer and a storage fee. The solution is to exempt:
The Uniswap v3 Factory contract - 0x1F98431c8aD98523631AE4a59f267346ea31F984
The Uniswap v3 Positions contract - 0xC36442b4a4522E871399CD717aBDD847Ab11FE88
Our own Uniswap v3 Pool contract(s) - 0x98eb3887B6c2CD50341aF13E26BA5111Ec585c57
In our experience if you are developing any type of token that has fees of any kind in addition to standard Ethereum gas fees, it is advisable to make sure you build in a function to exempt specific addresses from fees, especially if you want your token to be compatible with existing and future DeFi infrastructure.
Right now we are testing our new v3 pool and everything seems to be working as expected.
The solution described above also worked for v2.
Hope this helps.
These are the available functions to call for our team
https://etherscan.io/address/0xabd8f6cd6b1f9ee6ca88528a4fccff84093a23e8#writeContract
I'm afraid we're completely stuck here on why we can't migrate to V3 or even withdraw the tokens / W (ETH) .. we can't afford to take a loss here and are willing to award ETH to anybody who can figure this out.
I have already solved similar cases with many BNB stuck. I went through that too once.
My question: why did you renounce the contract?
How does the uniswap/pancakeswap front end know to use the SupportingFeeOnTransferTokens functions when interacting with my contract?
Is your feature request related to a problem? Please describe. The Uniswap v2 front-end doesn't support deflationary tokens. (tokens that burn a % of each transaction, like the one I'm contributing to, "BSOV" (https://bsov.io). BSOV Token Request: https://github.com/Uniswap/uniswap-frontend/issues/836 Deflation is very important for the deflationist community, and many of us wish that BSOV keeps on burning, while trading on-chain.
Describe the solution you'd like Possibly like @NoahZinsmeister described to me in the Discord: A feature in the Uniswap v2 front-end that lets the user "set their slippage to whatever % deflation they expect from their token".
Describe alternatives you've considered When there is a token request of a deflationary token on Github, then there could be a custom parameter that could be prefixed for easier implementation of deflationary tokens in the Uniswap v2 front-end, so the user would not need to set their slippage for every trade, to match the % deflation.
Additional context While I don't know how to develop these things, then there are several things I can help you with, like paying you some BSOV or doing tasks revolving Media & Communication (like design and videos).