我使用web3.eth.getcoinbase()函数获取当前帐户的地址,但是它返回null。有人能帮我吗?这是密码
web3.eth.getCoinbase(function(err, account) {
if (err === null) {
App.account = account;
$("#accountAddress").html("Your Account: " + account);
}
});整个代码都在这里中
发布于 2020-05-07 07:14:50
这个代码已经过时了。因为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
如果这行不通的话。尝试从新代码中的任何地方删除“窗口”一词。
https://ethereum.stackexchange.com/questions/83139
复制相似问题