Obtener hexadecimal en lugar de uint a través del mapeo [duplicado]

Tengo un método simple en el que cuento cuántas veces cierta dirección ha llamado al método de contrato inteligente. Aquí está el código:

mapping (address => uint) countTotal;

function countSends() public returns(uint retClicks) {
    clicksTotal[msg.sender]++;
    return countTotal[msg.sender];
}

Obviamente, espero que en el primer envío obtenga 1, luego 2, luego 3...

Pero por alguna razón, lo que obtengo web3jses un valor hexadecimal como 0xea6166fd3f8249c3dd3ed1dcbb3af9989aebdcf9f5eb079fc6d570296e6f4509. ¿Cómo puedo obtener un entero regular sin signo?

EDITAR: niñeras duplicadas vinculadas a la discusión teórica ... esto explica mucho mejor lo que debe hacer: ¿ Cómo obtener valores devueltos por funciones de transacción no constantes?

Por favor comparte tu código. Pero mi conjetura: eso es un hash de transacción. Las transacciones realmente no tienen valores de retorno... si desea mutar el estado y "devolver" un valor, probablemente terminará usando un evento o un calldespués de la transacción.
@smarx Sí, solo investigándolo ... parece que necesito esperar a que se confirme la transacción para que se devuelva el recuento correcto.
Bueno, debe esperar a que se extraiga la transacción antes de que se produzca el cambio, pero aún no habrá un valor de retorno.
Ejemplo simple de usar un evento para obtener el valor devuelto: ethereum.stackexchange.com/questions/6380/…

Respuestas (1)

Supongo que tienes un error tipográfico. En lugar de clicksTotal [msg.sender]++; cámbielo a countTotal [msg.sender]++;

Prueba esto.

mapping (address => uint) countTotal;

function countSends() public returns(uint retClicks) {
    countTotal[msg.sender]++;
    return countTotal[msg.sender];
}