Uniswap Fork: Liquiditätsfehler beseitigen

Ich versuche, Uniswap zu forken. Und ich habe ein Problem, wenn Liquidität weggenommen wird. Problem in UniswapERC20 . Ich weiss nicht, was falsch ist.

Schritt für Schritt (wiederholt für Rinkeby und Ropsten):

  1. Kopieren Sie Uniswap Factory und Router von Etherscan

  2. Gehen Sie zu Remix

  3. Fügen Sie diese Zeichenfolge für testnet im Werksvertrag hinzu:

    bytes32 öffentliche Konstante INIT_CODE_HASH = keccak256(abi.encodePacked(type(UniswapV2Pair).creationCode));

  4. Kompilieren. Festlegen der FeeToSetter -Adresse und Bereitstellen (Speichern des Init-Code-Hash und der Fabrikadresse)

  5. FeeTo- Adresse festlegen

  6. Ersetzen Sie den Init-Code-Hash im Router-Vertrag

  7. Kompilieren. Factory- und WETH-Adressen festlegen und bereitstellen (Adressen speichern)

  8. Ersetzen Sie Adressen in der Schnittstelle und starten Sie den lokalen Server

  9. Arbeitstest:

  • Paar erstellen: ok
  • Tauschen: ok:
  • Liquidität hinzufügen: ok
  • Teilweise oder gesamte Liquidität entfernen: fehlgeschlagen (Fehler -> UniswapV2: INVALID_SIGNATURE )

Mehr Info:

  • Etherscan Geth VM Trace-Transaktion:{ "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" } ] }
  • Transaktion
Ich erhalte den Fehler „ds-math-sub-underflow“, während ich Liquidität entferne. Können Sie mir bei diesem Problem helfen?
Hast du das jemals gelöst @Prachi? Ich habe das gleiche Problem.

Antworten (1)

Ändern Sie den Namen Ihres LP-Tokens in der Datei unter

/src/pages/RemoveLiquidity/index.ts

Suche nach Domänenobjekt:

const domain = {
      name: 'Spooky LP', // <= here place your LP token smart contract name
      version: '1',
      chainId,
      verifyingContract: pair.liquidityToken.address,
    }