I am trying to fork uniswap. And I have a problem when liquidity is removed. Problem in UniswapERC20. I don't know what's wrong.
Step by step (repeatedly for Rinkeby and Ropsten):
-
Copy Uniswap Factory and Router from etherscan
-
Go to Remix
-
Add this string for testnet in the factory contract:
bytes32 public constant INIT_CODE_HASH = keccak256(abi.encodePacked(type(UniswapV2Pair).creationCode));
-
Compile. Set feeToSetter address and deploy (save init code hash and Factory address)
-
Set feeTo address
-
Replace init code hash in the Router contract
-
Compile. Set Factory and WETH addresses and deploy (save addresses)
-
Replace addresses in the interface and start local server
-
Work test:
- Create pair: ok
- Swaps: ok:
- Add liquidity: ok
- Remove part or all liquidity: fail (error -> UniswapV2: INVALID_SIGNATURE)
More info:
- Etherscan Geth VM Trace Transaction:
{ "type": "CALL", "from": "0x57d49704f453cdd2b995280d9d7f557e42847d82", "to": "0x0b024ab7886e87dde36103d6f4a53e35456d5341", "value": "0x0", "gas": "0x2d6978", "gasUsed": "0x7460", "input": "0xded9382a000000000000000000000000d9ba894e0097f8cc2bbc9d24d308b98e36dc6d02000000000000000000000000000000000000000000000000000470de4df81f060000000000000000000000000000000000000000000000000016452ae3c6431a0000000000000000000000000000000000000000000000000000e07255bdf06900000000000000000000000057d49704f453cdd2b995280d9d7f557e42847d82000000000000000000000000000000000000000000000000000000005ffd5ee00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c9f3cd9721b08bacde6ec671f9186f0e621990760d1b73009516a8db5f2403e5773b73eb0cddc9d288a1b2d5cef84d1c8f4475d5d90a33dc9615e81f982499281", "output": "0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001c556e697377617056323a20494e56414c49445f5349474e415455524500000000", "error": "execution reverted", "time": "11.0239ms", "calls": [ { "type": "CALL", "from": "0x0b024ab7886e87dde36103d6f4a53e35456d5341", "to": "0xa5baae8372d14ee9394dace03cb53222db293aee", "value": "0x0", "gas": "0x2ca8bc", "gasUsed": "0x68ea", "input": "0xd505accf00000000000000000000000057d49704f453cdd2b995280d9d7f557e42847d820000000000000000000000000b024ab7886e87dde36103d6f4a53e35456d5341000000000000000000000000000000000000000000000000000470de4df81f06000000000000000000000000000000000000000000000000000000005ffd5ee0000000000000000000000000000000000000000000000000000000000000001c9f3cd9721b08bacde6ec671f9186f0e621990760d1b73009516a8db5f2403e5773b73eb0cddc9d288a1b2d5cef84d1c8f4475d5d90a33dc9615e81f982499281", "error": "execution reverted" } ] }
- Transaction
Best Answer
Change you LP token name in file located at
search for domain object: