Ropsten Networks is Undefined



我正在尝试将Metamask上的Ropsten TestNet连接到我的项目。但我有个问题好几天都没能解决。我在要重定向的页面上做了如下定义

我想当它是一个错误的时候给我一个消息。我现在得到的就是这个错误。确保你在当前的网络上。设置网络为"Ropsten Test network">

publicdashboard.jsx

useEffect(() => {
const init = async () => {
try {
const web3 = await getWeb3();
const accounts = await web3.eth.getAccounts();
const networkId = await web3.eth.net.getId();
const deployedNetwork = Project.networks[networkId];
if(deployedNetwork === undefined)
throw new Error('Make sure you are on the corrent network. Set the network to Ropsten Test Network');
const contract = new web3.eth.Contract(
Project.abi,
deployedNetwork.address,
);
setWeb3(web3);
setAccounts(accounts);
setContract(contract);
} catch (error) {
window.alert(error);
history.push("/dashboard");
}
}
init();
if (isReady()) {
window.ethereum.on('accountsChanged', accounts => {
setAccounts(accounts);
});
}
}, [history]);

这是我的truffle-config.js文件。一切似乎都很正常。我不明白为什么没有连接。你能帮我一下吗?

const path = require("path");
const HDWalletProvider = require('@truffle/hdwallet-provider');
const fs = require('fs');
const mnemonic = fs.readFileSync(".secret").toString().trim();
module.exports = {

contracts_build_directory: path.join(__dirname, "src/contracts"),
networks: {
ropsten: {
provider: () => new HDWalletProvider(mnemonic, 'https://ropsten.infura.io/v3/08ac778579d74dbaa8d2e3d02e5c0092'),
network_id: 3, // Ropsten's id
gas: 5500000, // Ropsten has a lower block limit than mainnet
confirmations: 2, // # of confs to wait between deployments. (default: 0)
timeoutBlocks: 200, // # of blocks before a deployment times out  (minimum/default: 50)
skipDryRun: false // Skip dry run before migrations? (default: false for public nets )
},
},
mocha: {
// timeout: 100000
},
compilers: {
solc: {
//version: "0.8.13",      // Fetch exact version from solc-bin (default: truffle's version)
// docker: true,        // Use "0.5.1" you've installed locally with docker (default: false)
// settings: {          // See the solidity docs for advice about optimization and evmVersion
//  optimizer: {
//    enabled: false,
//    runs: 200
//  },
//  evmVersion: "byzantium"
// }
}
},
}
};

并且我还编写了终端这段代码"松露迁移——网络支持"。我没有看到任何错误。

为了将来参考,不要发布以08ac7785开头的API密钥…这意味着任何人都可以使用它,如果可能的话删除api密钥。您的Project名称空间似乎也是无效的。一个比使用HDWalletProvider更好的新解决方案是使用新的truffle dashboard命令连接元掩码,它连接到您的硬件钱包

相关内容