remix部署合约报错解决

1、remix连接MetaMask后,无法获取地址

  • 报错信息

remix 选择 Environment 时,选择 Injected Provider - MetaMask

Account 无法显示

  • 解决方法

此时需要点击 Environment ,选择 WalletConnect,然后就可以连接我们MetaMask的地址

2、remix 部署合约失败,但浏览器显示成功

  • 报错信息

remix连接MetaMask 部署合约时,出现报错

You may want to cautiously increase the gas limit if the transaction went out of gas.
  • 报错现象

remix出现报错:

You may want to cautiously increase the gas limit if the transaction went out of gas.

MetaMask 出现部署合约失败,但是区块链浏览器中,该笔合约部署的交易是成功的

  • 报错原因
1、交易确认延迟:

MetaMask 可能因为网络或节点延迟,暂时没有收到交易的确认消息。尽管交易在链上已经成功,但 MetaMask 还未及时更新状态。

2、网络问题:

有时 MetaMask 所连接的节点可能会出现问题,导致无法及时获取交易的状态,即使在区块链上交易已经被确认。

3、Gas 费问题:

如果设置了较低的 gas 费,MetaMask 可能会认为交易失败(尤其是如果它过了某个时间期限),但实际上交易可能在更高的 gas 费用下成功了。

或许切换一个好用的MetaMask 的网络RPC地址就可以了

3、部署合约后,认证该合约时显示:该合约与合约源代码中已部署的字节码相匹配,信息如下:

  • 报错信息
This contract matches the deployed Bytecode of the Source Code for Contract
0x9DA1B206...AabD5A1aB
 The constructor portion of the code might be different and could alter the actual behaviour of the contract
  • 报错原因

在部署合约时,可能传入的构造函数参数是否与源代码中的一致。在区块链浏览器中查找相关交易数据,尤其是合约创建交易中传递的参数。

在这之前,可能已经部署过一个一样的合约代码,合约名称的合约

  • 解决方法

再次发布合约时,尽量不要和之前的合约名称,符号,精度一致

### Remix合约部署到本地联盟链的操作说明 要将智能合约通过Remix IDE部署到本地联盟链,需完成以下几个方面的配置和操作: #### 1. 准备工作 确保已搭建好本地联盟链环境并运行正常。通常情况下,可以通过Ganache、Truffle Develop或其他自定义脚本启动私有区块链网络[^1]。 #### 2. 配置Metamask钱包连接至本地联盟链 - 打开MetaMask插件,点击“Add Network”按钮。 - 输入本地联盟链的相关参数,例如: - **Network Name**: 自定义名称(如Local Testnet) - **New RPC URL**: 运行本地联盟链的RPC接口地址(如`http://localhost:7545`)。 - **Chain ID**: 设置为本地联盟链对应的ID(通常是自定义值,如1337或8900)。 - **Currency Symbol (optional)**: 可选字段,默认填写TEST即可。 - **Block Explorer URL (optional)**: 如果没有区块浏览器可留空。 - 完成上述设置后,切换到刚刚创建的新网络选项[^2]。 #### 3. 使用Remix编写与编译智能合约 - 访问在线版Remix IDE (`https://remix.ethereum.org`) 或者安装桌面版本。 - 创建一个新的Solidity文件(.sol),输入目标智能合约代码片段如下所示: ```solidity // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract SimpleStorage { uint storedData; function set(uint x) public { storedData = x; } function get() public view returns (uint) { return storedData; } } ``` - 编辑完成后,在右侧导航栏选择“Solidity Compiler”,勾选启用优化(EVMOptimizer),最后单击“Compile SimpleStorage.sol”来触发编译过程[^3]。 #### 4. 部署智能合约至本地联盟链 - 切换到左侧菜单中的“Deploy & Run Transactions”标签页。 - 在Environment下拉框里选取“Injected Web3”。此时应该能够检测到来自之前步骤中配置好的MetaMask账户列表以及余额情况。 - 下方会出现刚才成功编译过的SimpleStorage合同实例条目;选定该条目之后按下绿色箭头图标即发起实际部署动作。 - MetaMask弹窗提示确认交易费用详情,仔细核对无误后再授权签名提交给本地联盟链处理。 - 成功上传后可以看到具体地址链接指向刚生成出来的智能合同样品位置信息[^4]。 #### 5. 测试交互功能 利用Remix界面直接调用已经发布的智能合约公开方法进行读写测试验证其行为逻辑是否符合预期设计标准[^5]。 ```javascript await contract.methods.set(10).send({from: accounts[0]}); let result = await contract.methods.get().call(); console.log(result); // 输出应显示数值 '10' ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杰哥的技术杂货铺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值