Ropsten Networks 未定义

问题描述 投票:0回答:2

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

当我希望它是一个错误时,我希望它给我一条消息。我现在就遇到了这个错误。 '确保您处于正确的网络上。将网络设置为 Ropsten 测试网络'

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"
      // }
    }
  },

 }
};

我还在终端编写了这段代码“truffle migrate --network ropsten”。我没有看到任何错误。

reactjs blockchain smartcontracts truffle metamask
2个回答
0
投票

// SPDX 许可证标识符:MIT 杂注可靠性 ^0.8.0;

合约 SimlingsIdeas {

struct Idea {
    string description; // Fikir açıklaması
    uint256 timestamp; // Kaydedildiği zaman
    address owner; // Fikri kaydeden kişinin adresi
}

mapping(uint256 => Idea) public ideas; // Fikirlerin kaydedileceği bir liste
uint256 public ideaCount = 0; // Toplam fikir sayısını tutar

// Yeni bir fikir kaydetmek için fonksiyon
function addIdea(string memory _description) public {
    ideaCount++;
    ideas[ideaCount] = Idea(_description, block.timestamp, msg.sender);
}

// Belirli bir fikri getirmek için fonksiyon
function getIdea(uint256 _id) public view returns (string memory, uint256, address) {
    require(_id > 0 && _id <= ideaCount, "Fikir bulunamadi.");
    Idea memory i = ideas[_id];
    return (i.description, i.timestamp, i.owner);
}

}


-1
投票

为了将来参考,请勿发布以 08ac7785 开头的 api 密钥...这意味着任何人都可以使用它,如果可能,请删除 api 密钥。您的

Project
命名空间似乎也无效。比使用 HDWalletProvider 更好的新解决方案是使用新的
truffle dashboard
命令来连接 Metamask,该命令已连接到您的硬件钱包

© www.soinside.com 2019 - 2024. All rights reserved.