aaa108424 2024-04-12 00:10 采纳率: 0%
浏览 96

remix使用测试环境部署合约的时候账户都为空

我在用remix VM部署合约的时候不管选择哪个测试环境账户都为空,部署不了,这是为什么各位

img

img

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-04-12 00:10
    关注

    引自免费微信小程序:皆我百晓生

    在Remix IDE中,如果你在尝试部署合约时遇到所有账户都是空的情况,可能是因为你的浏览器扩展(如MetaMask)没有正确连接到Remix,或者你尚未登录任何钱包。

    为了解决这个问题,请按照以下步骤操作:

    1. 确保已安装并启用Web3支持的浏览器扩展,例如MetaMask、WalletConnect或其他支持的插件。
    2. 登录你的加密货币钱包(例如MetaMask)。打开浏览器扩展,确保你已经连接到了一个有余额的账户,并且该账户已解锁。
    3. 在Remix IDE中,切换至你想要使用的测试网络环境。默认情况下,Remix VM使用的是本地虚拟机(柏林),但如果你想使用与真实区块链类似的环境,可以选择"Injected Provider - MetaMask",这会自动从你已经连接的钱包获取账户信息。

    以下是切换环境的步骤:

    • 点击顶部菜单栏中的 "Environment"。
    • 从下拉列表中选择 "Injected Provider - MetaMask" 或其他你希望使用的网络(如Mainnet fork等)。

    如果你使用的是"Injected Provider - MetaMask",Remix将自动检测并使用你当前已登录的钱包地址。此时你应该能看到账户余额,然后可以继续部署合约了。

    如果你仍然遇到问题,可能是由于浏览器缓存导致的问题。尝试清除浏览器缓存或者使用隐私模式重新打开Remix IDE。

    下面是完整的部署流程示例代码(假设你已经有了一个名为Mutilnheritance.sol的合约文件):

    // Mutilnheritance.sol 文件内容
    pragma solidity ^0.8.0;
    
    contract MultiInheritance {
        uint public value;
        
        function setValue(uint _value) public {
            value = _value;
        }
    }
    
    // 在Remix IDE的JavaScript Console中运行以下代码来部署合约
    var Mutilnheritance = await ethers.getContractFactory('MultiInheritance');
    var instance = await Mutilnheritance.deploy();
    await instance.setValue(42);
    

    这段代码首先导入合约工厂,然后创建合约实例,并调用setValue函数设置初始值。注意,你需要先编译你的合约才能执行这些操作。在Remix中,点击左上角的"Compile"按钮编译合约,然后在"Solidity Compiler"面板中确认合约已被成功编译。

    如果你对如何使用Remix IDE有任何疑问,随时告诉我,我会提供进一步的帮助。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月12日