node.js - Web3.js 查看方法 call() 错误,因为返回值无效,是否耗尽了气体

标签 node.js ethereum solidity web3

我正在尝试调用我的契约(Contract)的 View 方法,该方法在内部调用另一个契约(Contract)的 View 方法。

契约(Contract):

//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 上的网络上运行时,我收到错误 Returned Values are not valid, 难道它用尽了 Gas?

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

我似乎在哪里犯了错误?

最佳答案

看看the issue在 Github 上。此类错误可能是由 solc 编译器引起的,该升级有助于解决它。

关于node.js - Web3.js 查看方法 call() 错误,因为返回值无效,是否耗尽了气体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58375121/

相关文章:

node.js - Bluebird 和 Mongoose : Warning: a promise was created in a handler but was not returned from it

node.js - 如何将字符串解析为 child_process.spawn 的适当参数?

javascript - 用 Jest 测试匿名函数相等性

python - 无法在 python3.6、ubuntu 中导入 ethjsonrpc

node.js - Gas 资金不足 * 价格 + 值(value)

node.js - fs:用另一个文件内容替换文件内容

blockchain - 为什么 Solidity 中没有小数?

struct - Solidity:使用映射和代码设计彩票合约地址

npm - 使用 Truffle 测试时找不到模块 'fs-extra'

arrays - 将整数数组向左移动 `n` 位