Aplicación Dapp
Una manera transparente y descentralizada de realizar una votación usando blockchain, donde los resultados son auditables y públicos.- Framework: Vite.js para el desarrollo de la interfaz web.
- Conexión Web3: Utiliza Wagmi para la gestión de la conexión con la blockchain.
Contrato Inteligente VoteNFT
Basado en: ERC721Enumerable, Ownable, PriceConsumerV3, ReentrancyGuard.
1 .Funcionalidad
- Token Único: Solo se permite un NFT por wallet para la votación.
- Gestión de NFTs: Asegura que una wallet no pueda tener más de un NFT; incluye funciones para acuñar, transferir y verificar posesión.
- Votación: Permite la creación de votaciones con opciones, donde cada NFT puede votar solo una vez por opción.
- Opciones de Votación: Las opciones y votos se gestionan mediante mapeos y listas de nombres.
- Pausado del Contrato: Funciones para pausar y despausar el contrato.
- Precios y Pagos: Configuración del precio del NFT en USD, conversión a BNB, y manejo de pagos y retiros de BNB y tokens ERC20.
- Retractación de Votos: Permite la consulta del resultado de las votaciones y el estado de cada opción.
2. Seguridad
- Prevención de Reentradas: Implementación de
ReentrancyGuard
para evitar ataques de reentrada. - Restricción de Transferencias: No se permite la transferencia de NFTs a wallets que ya poseen uno.
3. Interacción con el Oráculo
- Precio del NFT: Obtención del precio del NFT en BNB mediante un oráculo.
4. Funcionalidades Específicas
- Creación y Gestión de Votaciones: Solo el propietario puede crear, finalizar y gestionar votaciones y opciones.
- Votación y Resultados: Los usuarios votan utilizando su NFT, y los resultados pueden ser consultados públicamente.