No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

17 Días
19 Hrs
7 Min
28 Seg

Crear un market place de achievements

9/15
Recursos

Aportes 1

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Antes de conocer el método balanceOf opté por crear un mapping para registrar los logros obtenidos y así usarlo para validar antes de entregar los token ERC20.

	// variables
	mapping (address => uint) logrosObtenidos;

Luego registro los logros cada vez que se emiten los token ERC721:

        // Give achievement ERC721
        partidasGanadas[partidas[idPartida].ganador]++;
        if (partidasGanadas[partidas[idPartida].ganador] == 5) {
            achievement.emitir(partidas[idPartida].ganador);
            logrosObtenidos[partidas[idPartida].ganador]++;
        }

Finalmente entrego los token ERC20 si se cumple la condición indicada:

        // Give extra ERC20 token because has achievement
        if (logrosObtenidos[partidas[idPartida].ganador] > 0) {
            moneda.emitir(partidas[idPartida].ganador, 2);
        }

Definitivamente usar balanceOf es más óptimo 😃