Seguridad

CrazyToolBox: Una herramienta multifunción de utilidades Web3

En el equipo de Ideas Locas llevamos ya un tiempo jugando con la tecnología Web3 y aprendiendo sobre Blockchain y los SmartContracts. Hemos tenido la suerte participar en eventos y, a la vez que aprendemos, realizar pequeños aportes a la comunidad Open Source como nuestra plataforma de aprendizaje basado en retos Level_Up!, en donde tratamos de seguir ampliando con nuevos retos mes a mes e incluso hacemos pequeñas actualizaciones como la implementación de los NFTs para los jugadores que hicimos hace pocos meses.

En esta ocasión, hemos querido hacer una pequeña caja de herramientas con utilidades varias para Web3 que hemos estado utilizado en nuestro día a día, según vamos aprendiendo nuevas cosas de este apasionante mundo. Estas son:

  • Conversor de unidades
  • Codificador de selector de funciones
  • Decodificador de selector de funciones
  • Decodificador de entrada de transacciones
  • Calculadora SHA-3 (Keccak256)
  • Validador EIP55
  • Validación de firmas
Figura 2: Interface de Crazy Toolbox

CrazyToolBox se trata de una herramienta con GUI, escrita en Python y apoyada principalmente en la librería web3.py y también PySide para la parte gráfica. Puedes descargarla desde su repositorio de GitHub y realizar la instalación en muy pocos pasos con pipenv:


  • pipenv install
  • pipenv shell
  • python main.py

En el archivo Pipfile se encuentran listadas todas las dependencias con las que trabaja la aplicación, y que pipenv instalará en un nuevo entorno virtual con los comandos indicados anteriormente. Con estos sencillos pasos puedes tener CrazyToolBox rápidamente ejecutándose en tu equipo.

A continuación se detalla cada una de las secciones que podéis encontrar en la herramienta:

  • Conversor de unidades: Permite convertir entre wei, gwei y ether, además de un modo avanzado donde se pueden convertir entre más de 20 tipos de medidas. Admite hasta 30 decimales de coma flotante.
  • Codificador de selector de funciones: Permite generar el selector de una función. Para ello hay que indicar el nombre de la función y los tipos de parámetros que tiene en una sencilla interfaz. También es posible pasar directamente la firma de la función, por ejemplo, la función transfer con dos parámetros, un tipo address y otro uint256: transfer(address,uint256).
  • Decodificador de selector de funciones: Esta sección hace justo lo contrario a la anterior, es decir, dado un selector de una función intenta obtener la firma de la función. Para ello se hace uso de la API de 4byte.directory.
  • Decodificador de entrada de transacciones: En este caso se permite decodificar la entrada de una transacción a la firma de función y los parámetros asignados sin necesidad del ABI del contrato. De nuevo, para obtener la firma de la función se hace uso del servicio de 4byte.directory.
Figura 4: Sección del apartado decodificador
de entrada de transacciones en Crazy Toolbox
  • Calculadora SHA-3 (Keccak256): Esta funcionalidad permite calcular el hash keccak256 del texto introducido en el input.
  • Validador EIP55: El validador EIP55 permite comprobar si una dirección cumple con este EIP y, en el caso de que no lo cumpla, calcular el EIP55 correspondiente a la dirección de entrada indicada.
  • Validación de firmas: En este caso, dado un texto que se ha firmado, o el hash del texto, más la firma, devuelve la dirección del propietario de dicha firma.
Figura 5: Sección del apartado de validación de firmas en Crazy Toolbox

Esperamos que esta nueva herramienta pueda resultarte útil. Recuerda que si quieres aprender de estas tecnologías, tienes Bit2Me Academy, que es una plataforma online para aprender de Web3, BitCoin, Tokenomics o Ethereum con cursos gratuitos además del libro dedicado a «Bitcoin: La tecnología Blockchain y su investigación» de Yaiza Rubio y Félix Brezo que seguro que te ayudan a ponerte las pilas. 


Figura 6: Libro dedicado a «Bitcoin: La tecnología Blockchain y su investigación»
de Yaiza Rubio y Félix Brezo

Os animamos a que probéis la nueva herramienta y encontráis algún fallo, o queréis que incorporemos alguna sugerencia de mejora nos lo hagáis saber vía nuestro buzón público en https://MyPublicInbox.com/IdeasLocas.  

Más artículos de Web3, Blockchain & SmartContracts
¡Hasta la próxima!

Powered by WPeMatico

Gustavo Genez

Informático de corazón y apasionado por la tecnología. La misión de este blog es llegar a los usuarios y profesionales con información y trucos acerca de la Seguridad Informática.