MetaMask RPC 错误? “MetaMask - RPC 错误:内部 JSON-RPC 错误。”

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

我正在开发一个要测试的应用程序的前端。但是,MetaMask 一直给我这个错误?我尝试像之前建议的那样更改气体限制,但什么也没做。有什么想法吗?

错误: MetaMask - RPC 错误:内部 JSON-RPC 错误。

代码:-32603 数据:{代码:-32000,消息:“所需的天然气超过限额(30000000)或总是失败交易”} 消息:“内部 JSON-RPC 错误。”

blockchain ethereum solidity metamask
4个回答
0
投票

没有看到代码,很难确定,但你可以尝试:

  1. 检查您在前端更改的任何代码,特别是在您的代码中您可能有这样的内容:
const contractInstance = new state.web3.eth.Contract(
    MyContract.abi,
    "0x.....",            // contract address
    {
        from: state.accounts[0],
        gasPrice: 1000,
        gas: 100000
    }
);

确保汽油价格与这些价格相似,您可能需要根据您的情况进行调整。

  1. 重新编译并重新部署 --> 对于 truffle,先运行

    truffle develop
    ,然后运行
    compile
    ,然后运行
    migrate --reset
    进行本地部署。

  2. 在 Metamask 中,重置您的测试帐户。 Metamask > 选择帐户 > 设置 > 高级 > 重置帐户。 仅对测试帐户执行此操作


0
投票

以前,由于气体规格问题已修复,旧版本中曾发生过这种情况。 rpcErrors.internal` 期望一个字符串作为第一个参数,任意数据作为可选的第二个参数。传递一个非 字符串第一个参数导致错误被错误掩盖 来自 eth-json-rpc-errors。

请检查您传递给 Metamask 的内容。


0
投票

就我而言,在尝试了这么多选项后,我重新启动了 Ganache 并将新帐户从 Ganache 重新导入到 Metamask。 我将这个新帐户与本地主机应用程序连接起来。

这解决了我的问题。


0
投票

在执行任何交易之前,发送 ETH 地址必须连接到您自己的站点或 UI。这样它就可以获取发送帐户的地址并进行元掩码中的进一步交易。

确保您的发送帐户地址必须连接到您的 UI。

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