Proyecto presentado en el Hackathon de Scroll 2024, aplicando a la categoría general.
Siguiendo los pasos del tutorial proporcionado durante el evento, se logró desplegar y verificar el contrato demo. El contrato está disponible en el siguiente enlace:
Desarrollamos un gestor documental en la nube diseñado para digitalizar, organizar y centralizar la documentación industrial. Este sistema utiliza contratos inteligentes basados en Scroll para garantizar la inmutabilidad mediante huellas digitales y NFTs.
Dentro del gestor documental, se utilizan dos contratos inteligentes para la verificación de documentos. Un contrato principal que incluye un segundo contrato, con el propósito de generar otro contrato ERC721
para cada cliente. Este contrato es responsable de crear los NFTs que contienen en su descripción los hashes, tamaños y nombres de los archivos, asegurando así la inmutabilidad de los mismos. Los contratos se encuentran en la carpeta contracts
:
MinterFactory.sol
: https://sepolia.scrollscan.com/address/0x04C3BD6d34059dF62443fd3FE2eeDEf18caE8BaE#codeMinter.sol
: contrato incluido enMinterFactory.sol
.
Los contratos cuentan con pruebas unitarias y una coverage del 100%.
Se incluye ademas en la carpeta optimizing
un script en python que optimiza el número de runs para coompilar
cada uno de los contratos, generando el menor gasto.
En la carpeta front
se incluye una versión mínima del flujo de datos necesario para operar los contratos.
Para instalar todas las dependencias, ejecute el siguiente comando en la carpeta contracts
:
npm install
Con los siguientes comandos es posible compilar, deployar y testear los mismos:
-
npm run clean
: Limpia el entorno de trabajo -
npm run test
: prueba los contratos informando el valor de gas -
npm run coverage
: se evalua la covertura de las pruebas -
npm run compile
: compila los contratos -
npm run localhost:launch
: lanza un nodo local -
npm run localhost:deploy
: deploya el contrato en el nodo local -
npm run localhost:test
: ejecuta las pruebas sobre el nodo local -
npm run deploy
: deploya el contrato en la red de scrollSepolia -
npm run verify
: verifica el contrato deployando anteriormente -
npm run factory
: ejecuta el contratoMinterFactory
para obtener un contratoMinter
para un cliente -
npm run mint
: consulta el contratoMinterFactory
para obtener el address del contratoMinter
de un cliente en particular para generar un NFT de un lote.
Para instalar todas las dependencias es necesario ejecutar el siguiente comendo en la carpeta front
:
npm install
Con los siguientes comandos es posible lanzar en modo desarrollo, compilar y generar el "compilado" optimizado para ser levantado en un servidor:
npm run dev
: lanza un nodo localnpm run build
: deploya el contrato en el nodo localnpm run start
: ejecuta las pruebas sobre el nodo local