Web3js
元遮罩不返回目前地址
我正在使用 web3.eth.getcoinbase() 函式來獲取目前帳戶的地址,但它返回 null。有人可以幫我弄這個嗎?這是程式碼
web3.eth.getCoinbase(function(err, account) { if (err === null) { App.account = account; $("#accountAddress").html("Your Account: " + account); } });
整個程式碼在這裡
此程式碼已過時。因為 MetaMask 現在需要有權限才能訪問使用者的 MetaMask。
更改此程式碼
if (typeof web3 !== 'undefined') { // If a web3 instance is already provided by Meta Mask. App.web3Provider = web3.currentProvider; web3 = new Web3(web3.currentProvider); } else { // Specify default instance if no web3 instance provided App.web3Provider = new Web3.providers.HttpProvider('http://localhost:7545'); web3 = new Web3(App.web3Provider); }
使用此程式碼:
if(typeof window !== 'undefined' && typeof window.ethereum !== 'undefined'){ //getting Permission to access. This is for when the user has new MetaMask window.ethereum.enable(); App.web3Provider = window.ethereum; web3 = new Web3(window.ethereum); }else if (typeof window !== 'undefined' && typeof window.web3 !== 'undefined') { web3 = new Web3(window.web3.currentProvider); // Acccounts always exposed. This is those who have old version of MetaMask } else { // Specify default instance if no web3 instance provided App.web3Provider = new Web3.providers.HttpProvider('http://localhost:7545'); web3 = new Web3(App.web3Provider); }
在新的 MetaMask 中沒有像 window.web3 這樣的東西。相反,你有 window.ethereum
如果這不起作用。嘗試從新程式碼中的任何地方刪除單詞“window”。