Prueba de contratos inteligentes

Dec 22 2022
¿Cómo probar los contratos inteligentes y por qué hacerlo? El paso muy básico para desarrollar contratos inteligentes para sus soluciones web3 es probarlo incluso antes de implementarlo en testnet. ¡Ejecutar pruebas que verifiquen la función implementada es crucial! Agenda: “La prueba de contrato inteligente significa realizar un análisis y evaluación detallados de un contrato inteligente para evaluar la calidad de su código fuente durante el ciclo de desarrollo.

¿Cómo probar los contratos inteligentes y por qué hacerlo?

El paso muy básico para desarrollar contratos inteligentes para sus soluciones web3 es probarlo incluso antes de implementarlo en testnet. ¡Ejecutar pruebas que verifiquen la función implementada es crucial!

Agenda:

  • introducción,
  • ¿qué es?
  • ¿Que hace?
  • herramientas,
  • conclusión.

"La prueba de contrato inteligente significa realizar un análisis detallado y una evaluación de un contrato inteligente para evaluar la calidad de su código fuente durante el ciclo de desarrollo".

En palabras simples y prácticas: probar es escribir variantes simples del uso de las funciones y esperar que los resultados sean iguales a las declaraciones predefinidas.

Ejemplo simple, el contrato inteligente transfiere tokens de una dirección a otra y eso es todo.

Es necesario escribir una prueba como esta:

  • generar dos billeteras (por ejemplo, Alice & Bob),
  • ejecutar la función de transferencia de Alice a bob con activos iguales a 1 ETH,
  • espere que la billetera Bob aumente el valor en 1 ETH,
  • espere que la billetera Alice disminuya en 1 ETH,
  • verificar si los casos extremos se manejan correctamente, como un intento de transferir más fondos de los que posee, etc.

¿Que hace?

"Probar un contrato inteligente facilita la identificación de errores y vulnerabilidades y reduce la posibilidad de errores de software que podrían conducir a explotaciones costosas".

De acuerdo con el ejemplo anterior con Alice y Bob, las comprobaciones de prueba implementaron las funciones antes de una implementación adicional. Deberían arrojar errores por errores y permitir identificarlos fácilmente, si las pruebas se describen correctamente.

fuentes de definiciones:

Herramientas

Los contratos inteligentes se escriben principalmente en Solidity, pero las pruebas se realizan con JavaScript. Diferentes plataformas, las soluciones ofrecen una arquitectura fácil para probar, una de ellas es trufa.

Más sobre la trufa:

Truffle crea una estructura de carpetas adecuada que es la misma para cada proyecto, en breve:

  • hay una carpeta de contratos en la que se almacenan los contratos,
  • y hay una carpeta de pruebas que almacena pruebas.

moca.js:

chai.js documentos:

En el archivo de prueba se inician contratos y luego se verifican diferentes condiciones.

Las pruebas se ejecutan con el comando cli desde el nivel de terminal y eso es todo.

Para tener un contrato implementado localmente e implementar billeteras generadas con algunos fondos, es extremadamente útil el ganache del kit de herramientas de trufas. Simplemente ejecuta una cadena de bloques loca y crea billeteras con un saldo de 100ETH.

Más sobre la ganache:

Gofre

Es otra herramienta de prueba de contrato inteligente creada por ETHWorks.

“Te permite crear nuevos contratos inteligentes y probarlos usando Mocha y Chai. Muchas personas eligen Waffle sobre Truffle, ya que es más simple y fácil de aprender”.

Más en:

Conclusión

Probar contratos inteligentes es una habilidad poderosa y realmente necesaria, que puede evitar la pérdida de una gran cantidad de activos. Blockchain es inmutable, si el contrato se implementa con errores, en el escenario afortunado solo perdería algunas características. El peor de los casos es cuando algún usuario pierde fondos.

¿Te gustó? Siga repo con todos los temas del desafío: