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.
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).
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(
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.
12 me gusta
Recompensa
12
8
Compartir
Comentar
0/400
CryptoGoldmine
· hace10h
Los contratos son clave, la estabilidad genera ROI.
Ver originalesResponder0
DecentralizedElder
· hace10h
Siempre estoy atascado aprendiendo solidity
Ver originalesResponder0
OnchainDetective
· hace10h
Verdaderamente bueno, ¡primero codifica y luego Subida repentina!
Ver originalesResponder0
HalfBuddhaMoney
· hace11h
Con estos trucos, aprovechar el rendimiento de los DEX es seguro.
Ver originalesResponder0
GasFeeVictim
· hace11h
Aprender solo una DIRECCIÓN de predicción es suficiente.
Ver originalesResponder0
0xSleepDeprived
· hace11h
¡Lectura obligada para los desarrolladores! ¡Eso es!
7 técnicas de desarrollo de contratos para convertirte en un experto en DEX
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.
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).
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(