我的 web3 应用程序在以太坊主网上运行,使用 metamask 扩展的 Chrome 没有问题。在 goerli 测试网上进行测试时,使用 Brave Browser 的原生钱包也能正常工作。但是在主网上,Brave 抛出错误:
加载资源失败:net::ERR_CONNECTION_REFUSED 未捕获(在 承诺)错误:连接错误:无法连接到节点 http://localhost:8545.
Brave 钱包的预期行为是连接到以太坊主网,而不是本地网络。如前所述,它在 goerli 测试网和 Chrome 主网上都按预期工作。
这里是建立连接的文件:
import Web3 from 'web3';
let web3;
if (typeof window !== 'undefined' && typeof window.web3 !== 'undefined') {
// client side
try {
web3 = new Web3(window.ethereum);
// window.ethereum.enable(); // deprecated
window.ethereum.request({ method: 'eth_requestAccounts' });
} catch(error) {
console.log(error);
}
} else {
// server side
try {
const provider = new Web3.providers.HttpProvider(process.env.INFURA_NODE);
web3 = new Web3(provider);
} catch(error) {
console.log(error);
}
}
export default web3;