Este es el error:
No capturado (en promesa) TypeError: no se pueden leer las propiedades de undefined (leyendo '1')
Aquí está la función que estoy usando para extraer datos del contrato inteligente (y llamo a esta función como getCandidate(1)):
async function getCandidate(cad){ await myContract.methods.adaylar(cad);{ var result; console.log("result : ", result); document.getElementById("cad" + cad).innerHTML = result[1]; document.getElementById("cad"+cad+'count').innerHTML = result[2].toNumber(); }; }Suponiendo que la función adaylar()
result[2] )view o función pure en Solidityhay dos problemas en su código:
La biblioteca web3js requiere que indique explícitamente si desea realizar una call() o send() una transacción (lectura-escritura). Según la suposición anterior, querrá hacer una llamada:
await myContract.methods.adaylar(cad).call(); Esto recupera el valor devuelto pero no lo almacena en ninguna parte del código JS. Por lo tanto, deberá almacenarlo en la variable de result para poder acceder a él:
var result = await myContract.methods.adaylar(cad); console.log("result : ", result); document.getElementById("cad" + cad).innerHTML = result[1]; document.getElementById("cad"+cad+'count').innerHTML = result[2].toNumber();