抛出新错误“返回值无效,是否耗尽了 Gas?”

9 solidity web3js

我收到此错误:

错误:返回值无效,是否耗尽 Gas?如果您没有为从中检索数据的合约使用正确的 ABI、从不存在的区块号请求数据或查询未完全同步的节点,您也可能会看到此错误。

const Web3 = require("web3");
const MyContract = require("./build/contracts/MyContract.json");

const init = async () => {
  const web3 = new Web3("http://127.0.0.1:9545");

  const id = await web3.eth.net.getId();
  const deployedNetwork = MyContract.networks[id];
  const contract = new web3.eth.Contract(
    MyContract.abi,
    deployedNetwork.address
  );

  const addresses = await web3.eth.getAccounts();
   await contract.methods.setData(10).send({
      from: addresses[0]   
  });

  const data = await contract.methods.getData().call();
  console.log(data)
};

init();
Run Code Online (Sandbox Code Playgroud)

小智 4

可能有很多原因,但最常见的原因有两个。

  1. 如果您使用 abi 并且合约地址正确,则非常有用。
  2. 如果您选择了正确的网络,则非常重要,例如,如果您的合约在 Rinkeby 上,您可以选择 Rinkeby,或者如果您的合约在 Mainnet 上,则选择 Mainnet。