我正在第一个dapp上工作,并且尝试使用Web3和MetaMask对消息进行签名,但是我一直收到此错误:
inpage.js:1 MetaMask - RPC Error: Error: WalletMiddleware - Invalid "from" address.
我关闭了MetaMask隐私模式。 getCoinBase()方法正确返回了我在MetaMask中选择的地址。但是,当我尝试使用它对邮件签名时,它将无法正常工作。
这是我的代码:点线将跳过不重要的部分。
let Web3 = require('web3')
.
.
.
constructor(props) {
super(props);
if (typeof web3 != 'undefined') {
// eslint-disable-next-line no-undef
this.web3 = new Web3(web3.currentProvider);
}
this.web3.eth.getCoinbase()
.then(account => {
this.web3.eth.sign('test message', account);
});
}
答案 0 :(得分:0)
Metamask最近对它们向用户显示地址的方式进行了更改。我发现了一个与here相关的StackOverflow帖子。引用:
The Invalid address error can also happen if you haven't called window.ethereum.enable(); yet.
Metamask团队的相关博客文章:https://medium.com/metamask/https-medium-com-metamask-breaking-change-injecting-web3-7722797916a8