我使用的是部署契约hdwallet,但我在客户端有问题,要使用web3.eth.getAccounts()调用获得多个帐户。
我知道这就像重复的问题和松露已经有解决办法,但我有问题得到多个帐户地址。
在元问题上,我有三个帐户,但只有默认的帐户显示在客户端。从第一个片段中可以看到,我将3设置为第四个参数
部署代码
const provider = new HDWalletProvider(
'mnemonic....',
'https://rinkeby.infura.io/v3/bba91a6c349c44afbde264a1bda1af75', 0, 3
);如何在客户端代码中导入web3
import Web3 from 'web3';
if (window.ethereum) {
window.web3 = new Web3(window.ethereum);
(async () => {
await window.ethereum.enable();
})();
}
// Legacy dapp browsers...
else if (window.web3) {
window.web3 = new Web3(window.web3.currentProvider);
}
// Non-dapp browsers...
else {
console.log('Non-Ethereum browser detected. You should consider trying MetaMask!');
}
export default window.web3;客户端代码
web3.eth.getAccounts().then(console.log);BR,Igor
发布于 2019-11-14 08:03:25
这是预期的行为,您将得到唯一的帐户选择在元。这是出于隐私原因。
Metamsk甚至不公开一个默认帐户,Dapps需要通过调用ethereum.enable()向帐户发送访问请求。一旦用户批准了访问请求,Dapp将获得对所选元问题帐户的访问权。
您可以在这博客文章中阅读更多有关信息。
https://ethereum.stackexchange.com/questions/77474
复制相似问题