posted an update

Progreso en la Creación de la Página de Gestión de Escrows

Introducción

La página de gestión de escrows está diseñada para proporcionar una experiencia sencilla y segura en la creación y administración de contratos de escrow en la blockchain. Este sistema permite a los usuarios enviar y recibir pagos bajo términos previamente acordados, ofreciendo seguridad en las transacciones. A continuación, se describe el proceso de desarrollo.


Creación del Contrato Inteligente

El contrato inteligente fue diseñado en Solidity para ser desplegado en una red compatible con Ethereum. Algunas características clave del contrato incluyen:

  • Funciones principales:

    • Crear Escrow: Define los términos del acuerdo, como la dirección del beneficiario, la cantidad depositada y la fecha límite.
    • Confirmar Transacción: Permite al comprador confirmar la recepción del bien o servicio.
    • Marcar como Enviado: Facilita al vendedor indicar que el envío ha sido realizado.
    • Resolver Disputas: En caso de conflicto, se incluye una función para que un mediador pueda resolverlo.
  • Variables del Contrato:

    • Identificador único del escrow.
    • Dirección del pagador y receptor.
    • Estado de la transacción (pendiente, completada, en disputa).
    • Plazo de vencimiento en formato de timestamp Unix.
  • Seguridad:

    • Validación de entradas y aseguramiento de que solo las partes correspondientes puedan ejecutar ciertas funciones.
    • Manejo de fondos mediante métodos como payable para garantizar la transferencia segura de ETH.

Configuración del Frontend

El frontend fue desarrollado utilizando React.js para brindar una interfaz interactiva y responsive. La conexión con el contrato inteligente se logró utilizando ethers.js. Algunas de las funcionalidades principales incluyen:

Crear Escrow

  • Formulario para ingresar:
    • Dirección del beneficiario.
    • Monto en USD, que se convierte automáticamente a ETH según el tipo de cambio actual.
    • Fecha límite en formato Unix.
  • Botón Create & Deposit, que interactúa con la blockchain para crear un nuevo escrow.

Gestión de Escrows

  • Tabla interactiva que muestra:
    • ID del escrow.
    • Rol del usuario (Buyer o Seller).
    • Estado actual de la transacción.
    • Acciones disponibles como:
    • Confirmar.
    • Marcar como Enviado.
    • Iniciar una Disputa.

Diseño

  • Paleta de colores intuitiva:
    • Azul para el rol de comprador.
    • Verde para el rol de vendedor.
    • Botones con colores destacados para acciones críticas como confirmar o disputar.
  • Implementación de temas claros y oscuros para una mejor accesibilidad.

Integración Blockchain

Se configuró una conexión con la red Arbitrum Sepolia para pruebas. Las funciones principales del contrato se conectaron a través de una dirección única, y se validaron mediante etherscan. También se agregó un botón para que los usuarios puedan consultar el estado de sus transacciones directamente desde Arbiscan.


Desafíos y Soluciones

  1. Conversión de Monedas:
    • Solución: Se integró una API para obtener el tipo de cambio actualizado entre USD y ETH.
  2. Formato de Timestamp:
    • Solución: Se añadió una validación para convertir fechas humanas a timestamps Unix en el formulario.
  3. Manejo de Estados Complejos:
    • Solución: Se diseñó una máquina de estados para controlar las transiciones de cada escrow y garantizar consistencia.

Próximos Pasos

  • Mejorar el sistema de disputas agregando un módulo para mediación.
  • Ampliar la compatibilidad con otras redes blockchain como Polygon.
  • Incorporar notificaciones en tiempo real para cambios en los estados de los escrows.

Log in or sign up for Devpost to join the conversation.