Mejores prácticas en el manejo de ether (Ξ) y tokens

Estoy escribiendo un contrato que debería manejar tokens ether (Ξ) y ERC20. Sé que muchas dApps usan WETH y entiendo lo que hace, pero no estoy seguro de si se usa porque es el más eficiente en términos de evitar escribir la lógica del código dos veces, costos de gasolina, etc. ¿o alguna otra razón?

Respuestas (1)

WETH existe para permitir que ETH siga el estándar ERC20. Esto brinda a los desarrolladores la capacidad de escribir código consistente que permite a Dapps simplemente usar tokens ETH o ERC20, y no tener que preocuparse por las interacciones entre los dos. Además, hay ciertas funciones de los tokens ERC20 que ETH no tiene.

El mejor ejemplo para entender esto es pensar en intercambios descentralizados. Los DEX están escritos de tal manera que interactúan con los tokens ERC20 y requieren el uso de WETH (a diferencia de ETH). La razón por la que esto es necesario es porque los tokens ERC20 tienen una funcionalidad que ETH no tiene .

Un comercio de intercambio descentralizado funciona de la siguiente manera: el creador de cada intercambio primero debe llamar a la approvefunción ERC20 para el token que está intentando intercambiar (lo que permite que el contrato de intercambio envíe los tokens del usuario en su nombre). Luego, el fabricante publica su pedido en el libro de pedidos y espera a que se complete. Cuando el tomador completa la orden, se llama a la función ERC20 transferFrom, que transfiere el token ERC20 del fabricante al tomador, completando así la operación. Estas acciones no son posibles con ETH, ya que no hay funciones integradas en ETH.approvetransferFrom

WETH (así como PETH) también se ve en el ecosistema MakerDAO.

Existe un contrato WETH canónico que utilizan casi todos en la red.

Gracias por su explicación. Entonces, solo para confirmar, un intercambio descentralizado podría implementarse técnicamente con Ξ nativo, pero sería muy difícil de manejar .
Dependería de la arquitectura. El contrato de intercambio tendría que recibir el ETH del creador y mantener la custodia hasta que un tomador inicie una transacción. Me imagino que el aspecto ERC20 funcionaría de manera similar a mi respuesta anterior. No he pensado en todo, así que no estoy seguro de que esto sea totalmente factible.