Web3.js查看方法call()错误,因为返回值无效,是否用完了

时间:2019-10-14 10:45:06

标签: node.js ethereum solidity web3

我正在尝试调用我的合同的view方法,该方法在内部调用另一个合同的view方法。

合同:

//In Contract A (imports Contract B)
function getContractData() public view returns(string memory data){
  ContractB instance = ContractB(<address where ContractB is available>));
  return instance.getData();
}

//In Contract B
function getData() public view returns(string memory data){
  return "Hello";
}

JS:

//Calling function
instance = await new web3.eth.Contract(JSON.parse(<ContractA ABI>, <ContractA Address>);
console.log(await instance.methods.getContractData().call());

我的方法在Remix浏览器中可以正常工作,但是当使用Web3在geth上的网络上运行时,我收到错误消息:返回值无效,它用完了吗?

我发现一些解决方案可以更改web3的版本,但它们对我没有用,我尝试添加from帐户和gas,即使这对于查看方法没有意义,但没有任何效果。

我在哪里出错?

1 个答案:

答案 0 :(得分:0)

在Github上查看Should I use the <p /> tag in markup?。此类错误可能是由solc编译器引起的,该升级有助于解决该问题。