Estoy creando una dapp DEFI, quiero obtener la cuenta que está conectada con la máscara meta usando web3.eth.get account();
Esto es lo que obtuve cuando console.log ['0x32F36b36e78E89bdd6efa9e893ec2d87e4E2e3E9'], creé use State para impulsar esta cuenta para usar en componentes React como accesorios, pero cuando consola.log el valor de useState no obtuve nada.
Entonces, si obtengo este valor dentro de useState, ¿cómo puedo pasarlo a la función balanceOf?
useState
const [userAccount, setUserAccount] = useState([]);la función para obtener las cuentas y obtener el saldo de esta cuenta
const blockchainDataLoad = async () => { const web3 = window.web3; console.log(userAccount); // get the Accounts const accounts = await web3.eth.getAccounts(); setUserAccount(accounts[0]); // get the Network Id of The contracts const networkId = await web3.eth.net.getId(); // ******************************** Dai Token EuroToken ************************* // // Get the deployed contract object using the network ID const daiTokenData = DaiToken.networks[networkId]; if(daiTokenData) { // Create a instance of the contract const daiToken = new web3.eth.Contract(DaiToken.abi, daiTokenData.address); setDTokens(daiToken); // get the balance from the investor account **let daiTokenBalance = await daiToken.methods.balanceOf(userAccount).call();** setDTokenBalance(daiTokenBalance.toString()); console.log(daiTokenBalance);Debe obtener las cuentas en useEffect hook, de modo que cuando su componente se represente, el estado de su componente ya estará configurado.
useEffect(() => { const getAccount = async () => { const accounts = await web3.eth.getAccounts(); setAccount(accounts[0]); }; // call getAccount() if web3 is defined otherwise you app will break web3 && getAccount(); }, [web3]);