Ich schreibe einen Vertrag, der sowohl Ether (Ξ) als auch ERC20-Token handhaben soll. Ich weiß, dass viele dApps WETH verwenden, und ich verstehe, was es tut, aber ich bin mir nicht sicher, ob es verwendet wird, weil es am effizientesten ist, um das zweimalige Schreiben von Codelogik, Benzinkosten usw. zu vermeiden - oder aus einem anderen Grund?
WETH existiert, damit die ETH dem ERC20-Standard folgen kann. Dies gibt Entwicklern die Möglichkeit, konsistenten Code zu schreiben, der es Dapps ermöglicht, einfach entweder ETH- oder ERC20-Token zu verwenden, ohne sich um Interaktionen zwischen den beiden kümmern zu müssen. Darüber hinaus gibt es bestimmte Funktionen von ERC20-Token, die ETH nicht hat.
Das beste Beispiel, um dies zu verstehen, ist das Nachdenken über dezentralisierte Börsen. DEXs sind so geschrieben, dass sie mit ERC20-Token interagieren und die Verwendung von WETH erfordern (im Gegensatz zu ETH). Der Grund dafür ist, dass ERC20-Token Funktionen haben, die ETH nicht hat .
Ein dezentraler Börsenhandel funktioniert wie folgt: Der Hersteller jedes Handels muss zuerst die ERC20- approve
Funktion für den Token aufrufen, den er zu handeln versucht (was es dem Börsenvertrag ermöglicht, die Token des Benutzers in seinem Namen zu senden). Der Hersteller bucht dann seine Order in das Orderbuch und wartet darauf, dass es ausgeführt wird. Wenn der Abnehmer die Order ausführt, wird die ERC20-Funktion transferFrom
aufgerufen, die den ERC20-Token vom Hersteller an den Abnehmer überträgt und so den Handel abschließt. Diese Aktionen sind mit ETH nicht möglich, da in ETH selbst keine und- Funktionen eingebaut sind .approve
transferFrom
WETH (sowie PETH) ist auch im MakerDAO-Ökosystem zu sehen.
Es gibt einen kanonischen WETH-Vertrag , der von fast allen im Netzwerk verwendet wird.
Paul Razvan Berg
Shane Fontaine