¿Cómo solucionar este error cuando llamo a una función de contrato inteligente?
Uncaught (in promise) Error: invalid address (argument="address", value={"from":"0xaD1D30B476C195C23ef4CC9b7A3c53E7423B7690"}, code=INVALID_ARGUMENT, version=address/5.0.5) (argument="index", value={"from":"0xaD1D30B476C195C23ef4CC9b7A3c53E7423B7690"}, code=INVALID_ARGUMENT, version=abi/5.0.7)es mi codigo:
enter: async function() { App.contracts["MyContract"].deployed().then(async(instance) =>{ var a = web3.eth.getAccounts(); let ticketsForPlayers = await instance.getTicketsForPlayers({from: App.account}); console.log(ticketsForPlayers); }); } El error muestra que no configuró la propiedad de address correctamente, puede ser el problema con su implementación de solidity y no está relacionado con el fragmento de JavaScript, como se menciona en los comentarios, puede preguntar al respecto en sitios relacionados, pero hay algunos puntos con el fragmento anterior que puede ayudarlo. está mezclando dos implementaciones diferentes en el método enter para manejar una promesa que es claramente incorrecta y conduce a los problemas.
use async/await con bloque try/catch . más sobre la documentación de MDN :
enter: async function () { try { const instance = await App.contracts["MyContract"].deployed() const properNameForVariable = web3.eth.getAccounts(); const ticketsForPlayers = await instance.getTicketsForPlayers({from: App.account}) console.log(ticketsForPlayers) } catch (error) { // do a proper action on failure cases } } Ahora, si hay errores en sus acciones asincrónicas, captura por bloque catch , también puede usar console.error(error) o console.warn(error) en el bloque catch para ver la excepción y los seguimientos de la pila.
Nota: el uso de este enfoque con try/catch garantizará que la aplicación continúe funcionando incluso después de excepciones y errores.
usando una versión antigua de web3 para un tutorial web3@0.20.6 y Firefox 100.0.1
esto fue lo que agregué para reaccionar y resolver el error
web3.eth.cuentapredeterminada = web3.eth.cuentas[0]