7 técnicas de desarrollo de contratos para convertirte en un experto en DEX

robot
Generación de resúmenes en curso

Las habilidades ingeniosas del desarrollo de contratos

Recientemente, mientras aprendía sobre el desarrollo de intercambios descentralizados, descubrí algunas técnicas interesantes de desarrollo de contratos. Estas técnicas provienen del estudio del código de un conocido DEX y deberían ser muy útiles para los principiantes que quieren iniciarse en el desarrollo de contratos inteligentes.

Serie para principiantes de Web3: Consejos de desarrollo de contratos que aprendí del código de Uniswap

Dirección de contrato predecible

Generalmente, la dirección obtenida al desplegar un contrato parece aleatoria y es difícil de predecir. Sin embargo, en ciertos escenarios, necesitamos deducir la dirección del contrato a partir de la información de pares de transacciones, lo cual es muy útil para determinar los permisos de transacción o para obtener la dirección de un fondo.

Se puede crear un contrato utilizando el método CREATE2 añadiendo el parámetro salt, lo que permite que la dirección generada sea predecible. La lógica de cálculo de la nueva dirección es: hash("0xFF", dirección del creador, salt, initcode).

![Serie para principiantes de Web3: pequeños consejos de desarrollo de contratos que aprendí del código de Uniswap](https://img-cdn.gateio.im/webp-social/moments-0aaa61a4d43aba7fdeddbc55e3665305.webp01

Uso inteligente de funciones de devolución de llamada

En ciertos escenarios, es útil que el contrato A llame a un método del contrato B, y luego B vuelva a llamar al método de A. Por ejemplo, durante una transacción, el contrato de la piscina llamará a swapCallback, pasando la cantidad real de tokens necesarios, y el llamador ingresará los tokens en la devolución de llamada. Esto asegura la integridad y seguridad de toda la lógica de la transacción.

Pasar información mediante excepciones

Al estimar una transacción, se puede envolver la ejecución del método swap en un bloque try-catch. Dado que la estimación no generará realmente el intercambio de tokens, se producirá un error. Se pueden lanzar errores especiales en la devolución de llamada, y luego capturarlos y extraer los datos necesarios del mensaje de error. De esta manera, no es necesario modificar especialmente el método swap para las necesidades de estimación, lo que hace que la lógica sea más sencilla.

![Serie para principiantes de Web3: Consejos sobre desarrollo de contratos que aprendí del código de Uniswap])https://img-cdn.gateio.im/webp-social/moments-b0c3d4eb7e8ca88cc4cfc9476a34437a.webp(

Solución de precisión de números grandes

Al calcular precios y liquidez, para evitar la pérdida de precisión en las operaciones de división, se puede desplazar a la izquierda 96 posiciones ), lo que equivale a multiplicar por 2^96( antes de realizar el cálculo. De esta manera, se puede garantizar la precisión sin desbordamientos. Aunque teóricamente aún habrá una pérdida de precisión en la unidad mínima, en la práctica es aceptable.

Cálculo de beneficios en modo Compartir

Al registrar los ingresos por comisiones de LP, no se puede registrar a cada LP en cada transacción, ya que esto consumiría una gran cantidad de Gas. Se puede registrar solo la comisión total y la comisión correspondiente a cada unidad de liquidez, y al retirar, calcular el monto que se puede retirar en función de la liquidez mantenida. Es similar al principio de los dividendos de acciones.

![Serie para principiantes de Web3: Consejos de desarrollo de contratos que aprendí del código de Uniswap])https://img-cdn.gateio.im/webp-social/moments-45e66af69435e6d4412ae506e77ab893.webp(

Almacenamiento de datos fuera de la cadena

No toda la información necesita ser almacenada en la cadena o recuperada de ella. Listas de transacciones, información de pools, etc., pueden almacenarse en bases de datos tradicionales y sincronizarse periódicamente desde la cadena. Esto puede mejorar la eficiencia de acceso y reducir costos. Por supuesto, las transacciones clave aún deben realizarse en la cadena.

División y reutilización de contratos

Se puede dividir un proyecto en varios contratos desplegados de manera efectiva, o dividir el código en varios contratos para su mantenimiento mediante la herencia. Al mismo tiempo, también se deben utilizar los contratos estándar existentes, como ERC721, para mejorar la eficiencia del desarrollo.

Ver más teorías no es tan útil como practicar por ti mismo. Intentar implementar una versión simple de DEX te permitirá entender más a fondo las diversas técnicas de desarrollo de contratos. Espero que estos pequeños consejos te sean útiles en tu camino de desarrollo de contratos inteligentes.

![Serie para principiantes en Web3: Consejos de desarrollo de contratos que aprendí del código de Uniswap])https://img-cdn.gateio.im/webp-social/moments-f95ddc9d89809cf11dbe65b9bafda157.webp(

UNI-3.87%
Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • 8
  • Compartir
Comentar
0/400
CryptoGoldminevip
· hace10h
Los contratos son clave, la estabilidad genera ROI.
Ver originalesResponder0
DecentralizedEldervip
· hace10h
Siempre estoy atascado aprendiendo solidity
Ver originalesResponder0
OnchainDetectivevip
· hace10h
Verdaderamente bueno, ¡primero codifica y luego Subida repentina!
Ver originalesResponder0
HalfBuddhaMoneyvip
· hace11h
Con estos trucos, aprovechar el rendimiento de los DEX es seguro.
Ver originalesResponder0
GasFeeVictimvip
· hace11h
Aprender solo una DIRECCIÓN de predicción es suficiente.
Ver originalesResponder0
0xSleepDeprivedvip
· hace11h
¡Lectura obligada para los desarrolladores! ¡Eso es!
Ver originalesResponder0
StrawberryIcevip
· hace11h
Desarrollador novato, considera un punto básico.
Ver originalesResponder0
LightningPacketLossvip
· hace11h
Otra vez un novato pregunta cómo empezar.
Ver originalesResponder0
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)