【发布时间】:2020-02-25 09:06:54
【问题描述】:
从我的一个 Solidity 智能合约调用仅视图函数时,我在 web3js 中遇到错误。奇怪的是,它可以在本地测试网络(通过 Ganache 运行)上运行,但是当我将合约部署到 ropsten 测试网络时,fall 函数失败并出现以下错误:
Uncaught (in promise) Error: Returned values aren't valid, did it run Out of Gas?
at i.decodeParameters (web3.min.js:22508)
at l.o._decodeMethodReturn (web3.min.js:29647)
at A.outputFormatter (web3.min.js:29766)
at A.formatOutput (web3.min.js:16439)
at u (web3.min.js:16615)
at web3.min.js:17813
at inpage.js:1
at inpage.js:1
at i (inpage.js:1)
at inpage.js:1
at inpage.js:1
at c (inpage.js:1)
at inpage.js:1
at We (inpage.js:1)
at Object.<anonymous> (inpage.js:1)
at e.exports._runReturnHandlersUp (inpage.js:1)
at inpage.js:1
at n (inpage.js:1)
at i (inpage.js:1)
at inpage.js:1
at inpage.js:1
at n (inpage.js:1)
at i (inpage.js:1)
at inpage.js:1
at inpage.js:1
at inpage.js:1
at inpage.js:1
at c (inpage.js:1)
at u (inpage.js:1)
at inpage.js:1
at inpage.js:1
at a (inpage.js:1)
在此声明之后我还收到另一个错误:
Denying load of chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/sourcemaps/inpage.js.map. Resources must be listed in the web_accessible_resources manifest key in order to be loaded by pages outside the extension.
可能相关也可能不相关。
导致错误的前端代码是:
for (var i = 0; i < userDetails[0]; i++) {
console.log(i)
var contractAddress = await trsContract.methods.getUserContract(i).call()
console.log(contractAddress)
contractAddresses.push(contractAddress)
}
我正在使用以下依赖项
"@material-ui/core": "^4.5.2",
"material-ui": "^0.20.2",
"react": "^16.11.0",
"react-dom": "^16.11.0",
"react-router-dom": "^5.1.2",
"react-scripts": "3.2.0",
"react-spinners": "^0.6.1",
"validator": "^12.0.0",
"web3": "^1.2.2"
【问题讨论】:
-
我遇到了这个问题,我按照这里提到的方法修复了它。 stackoverflow.com/a/65519028/11638802
标签: javascript ethereum web3 web3js