Since metamask communicated that they will no longer inject web3 by default (https://medium.com/metamask/https-medium-com-metamask-breaking-change-injecting-web3-7722797916a8) I tried to use their new suggested method to access accounts.
Here is the code:
window.addEventListener('load', async () => {
// Modern dapp browsers...
if (window.ethereum) {
window.web3 = new Web3(ethereum);
try {
// Request account access if needed
await ethereum.enable();
// Acccounts now exposed
web3.eth.sendTransaction({/* ... */});
} catch (error) {
// User denied account access...
}
}
// Legacy dapp browsers...
else if (window.web3) {
window.web3 = new Web3(web3.currentProvider);
// Acccounts always exposed
web3.eth.sendTransaction({/* ... */});
}
// Non-dapp browsers...
else {
console.log('Non-Ethereum browser detected. You should consider trying MetaMask!');
}
});
This works and I get access to the account, however, there is no request the user has to accept in metamask. Why is that? And how can I simulate the request to prepare my UI for this?