Prepárate para programar un contrato inteligente
Programación de Smart Contracts en Solidity: Estructura y Seguridad
Estructura de contratos inteligentes en Solidity
Configuración de entornos de desarrollo para contratos inteligentes
Desarrolla el contrato inteligente de un juego
Desarrollo de Contratos Inteligentes para Juegos en Blockchain
Programación de un contrato inteligente para tic-tac-toe en Solidity
Guardar y Validar Movimientos en Juego Tic-Tac-Toe con Solidity
Implementación de NFTs en Contratos de Tic-Tac-Toe con Solidity
Emisión de Tokens Fungibles en Juegos Play to Earn
Ampliado las capacidades del contrato
Mercado Descentralizado: Compra y Venta de Logros con Criptomonedas
Implementación de Subastas en Contratos de Marketplace
Generación de números aleatorios en Solidity con Chainlink
Revisando la seguridad del contrato
Implementación de Contratos en Sepolia con Números Aleatorios Chainlink
Seguridad en Contratos Inteligentes: Prevención de Vulnerabilidades
Buenas prácticas para escribir Smart Contracts eficientes
Continúa desarrollando contratos inteligentes
Programación Avanzada de Smart Contracts en Solidity
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
El entendimiento de la creación y modificación de contratos inteligentes puede abrir puertas a las oportunidades del comercio digital, especialmente en el ámbito de los videojuegos. En esta clase, transformaremos un contrato de Marketplace en un modelo de subasta, lo cual no solo expande las funcionalidades del contrato, sino que también mejora la experiencia del usuario.
La clave de una subasta reside en la correcta gestión de ofertas y la determinación clara de un ganador en el momento de finalizar la subasta.
Para manejar las ofertas sobre los logros, mantenemos un mapping (mapeo) que representa qué cuenta posee la oferta máxima. Esto se logra mediante un:
postor
, que mapea la oferta más alta al ofertante correspondiente.mapping(uint256 => address) public postor;
La función de publicación ahora tiene un papel transformado, donde el valor inicial actúa como monto mínimo de entrada en la subasta. Esto asegura que:
A la hora de ofertar, es fundamental asegurar que cada nueva oferta sea mayor que la actual más alta. Las validaciones incluyen:
function ofertar(uint256 tokenId, uint256 cantidad) public {
require(cantidad > valorActual, "La oferta no es suficiente");
require(allowance[msg.sender] >= cantidad, "Fondos insuficientes");
postor[tokenId] = msg.sender;
valorActual = cantidad;
}
Finalizar una subasta requiere transferir el logro al ganador. Las validaciones necesarias aseguran el éxito de la transacción:
function finalizarSubasta(uint256 tokenId) public {
require(esAdmin(msg.sender), "Solo el administrador puede finalizar");
require(allowance[postor[tokenId]] >= valorActual, "Postor no tiene fondos");
transferir(postor[tokenId], valorActual);
transferirDuenoDelLogro(tokenId, postor[tokenId]);
}
Este modelo de subasta ofrece una gestión más dinámica y competitiva en los contratos de Marketplace al implementar tanto la selección del mejor postor como la seguridad en las transacciones. De este modo, se logran subastas justas al eliminar las compras directas, promoviendo así la competencia entre los ofertantes.
Aquí hay varios puntos clave que se pueden resaltar en la implementación de subastas en contratos:
Es momento de aplicar estos aprendizajes y adentrarse en la codificación de contratos inteligentes robustos y eficientes. ¡Continúa explorando y amplía tus habilidades en el mundo del desarrollo de contratos inteligentes!
Aportes 0
Preguntas 0
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?