Un constructor de gráficos de flujo de control para contratos inteligentes de solidez.
Este paquete genera un gráfico de flujo de control a partir de contratos de solidez. Los gráficos de flujo de control son útiles como una representación gráfica de la semántica de los programas, y son la base de muchos enfoques de análisis estáticos para optimizar y verificar programas. Este paquete es la base de un enfoque de análisis estático que estoy desarrollando actualmente.
Solidity-CFG-Builder se desarrolla en Haskell, utilizando un analizador de sintaxis de solidez utilizado en la herramienta de verificación de tiempo de ejecución para la solidez contractLarva. La versión del analizador utilizado en el proyecto está empaquetada en el proyecto.
Esta herramienta dado el código de solidez genera un gráfico de flujo de control en la notación de puntos, que se puede visualizar usando GraphViz.
Requisitos: Cabal v2.4.* (Por ejemplo, instale la plataforma Haskell completa)
Compilación: siga las instrucciones aquí
Para obtener resultados correctos, siempre asegúrese de que el código de solidez se compile con un compilador de solidez.
Para usar la herramienta, pase la ubicación de un archivo de solidez y la ubicación preferida de la salida al ejecutable, por ejemplo, ejecutar:
"./Solidity-CFG-Builder" <Solity-Code.Sol> <cfg.gv>
Este proyecto tiene licencia bajo los términos de la licencia Apache 2.0.
Asegúrese de haber instalado Parsec. Además, vea este hilo de stackoverflow (https://stackoverflow.com/questions/9058914/cant-find-parsec-modules-in-ghci)
Cabal Instalar Parsec