I have completed the CryptoZombies's chapter6 tutorial, so I am challenged to work the front in my environment.
When I try to connect to the contract from the frontend I get an error message.
var cryptoZombies;
var userAccount;
function startApp() {
var cryptoZombiesAddress = "0x8b87e80e2b76b4445a869b3dd0640e37c51def50";
cryptoZombies = new web3js.eth.Contract(cryptoZombiesABI, cryptoZombiesAddress);
async function getCurrentAccount(){
const web3 = new Web3(window.ethereum);
const userAccount = await web3.eth.getAccounts();
return userAccount;
}
getCurrentAccount();
}
function displayZombies(ids) {
$("#zombies").empty();
for (id of ids) {
// Look up zombie details from our contract. Returns a `zombie` object
getZombieDetails(id)
.then(function(zombie) {
// Using ES6's "template literals" to inject variables into the HTML.
// Append each one to our #zombies div
$("#zombies").append(`<div class="zombie">
<ul>
<li>Name: ${zombie.name}</li>
<li>DNA: ${zombie.dna}</li>
<li>Level: ${zombie.level}</li>
<li>Wins: ${zombie.winCount}</li>
<li>Losses: ${zombie.lossCount}</li>
<li>Ready Time: ${zombie.readyTime}</li>
</ul>
</div>`);
});
}
}
function getZombiesByOwner(owner) {
return cryptoZombies.methods.getZombiesByOwner(owner).call();
}
window.addEventListener('load', function() {
// Checking if Web3 has been injected by the browser (Mist/MetaMask)
if (typeof web3 !== 'undefined') {
// Use Mist/MetaMask's provider
web3js = new Web3(window.ethereum);
alert("launch");
} else {
// Handle the case where the user doesn't have Metamask installed
// Probably show them a message prompting them to install Metamask
alert("please install metamask");
}
// Now you can start your app & access web3 freely:
startApp()
getZombiesByOwner(userAccount).then(displayZombies);
})
I can get the current metamask account. However, When I try to run
getZombiesByOwner(userAccount).then(displayZombies);
it return an error.
invalid address (argument="address", value=undefined, code=INVALID_ARGUMENT, version=address/5.5.0) (argument="_owner", value=undefined, code=INVALID_ARGUMENT, version=abi/5.0.7)