问题描述
我正在开发我要测试的应用程序的前端。但是,MetaMask 不断给我这个错误?我尝试像之前建议的那样更改气体限制,但什么也没改变。有什么想法吗?
错误: MetaMask - RPC 错误:内部 JSON-RPC 错误。
代码:-32603 数据:{代码:-32000,消息:“所需的气体超过限额(30000000)或总是失败的交易”} 消息:“内部 JSON-RPC 错误。”
解决方法
没有看到代码,很难确定,但您可以尝试:
- 检查您在前端更改的任何代码,特别是在您的代码中,您可能有以下内容:
const contractInstance = new state.web3.eth.Contract(
MyContract.abi,"0x.....",// contract address
{
from: state.accounts[0],gasPrice: 1000,gas: 100000
}
);
确保汽油价格与那些相似,您可能需要根据您的情况进行调整。
-
重新编译和重新部署 --> 对于 truffle,首先运行
truffle develop
,然后是compile
,然后是migrate --reset
用于本地部署。 -
在 Metamask 中,重置您的测试帐户。 Metamask > 选择帐户 > 设置 > 高级 > 重置帐户。 仅对测试帐户执行此操作
以前由于已修复的 gas 规格问题,它曾经发生在旧版本中。 rpcErrors.internal` 需要一个字符串作为第一个参数,任意数据作为可选的第二个参数。传入一个非 字符串第一个参数导致错误被错误掩盖 来自 eth-json-rpc-errors。
请检查您传递给 Metamask 的内容。