当我尝试在dApp实现中调用方法时,出现以下错误:
错误:“ i_open_session_bn”的参数数量无效。得到了0预期1! 在Object.InvalidNumberOfParams(node_modules / web3-core-helpers / src / errors.js:32:0) 在Object._createTxObject(node_modules / web3-eth-contract / src / index.js:693:0) 在Function._callee3 $(页面/通知/show.js:28:0) 在tryCatch(node_modules / regenerator-runtime / runtime.js:62:0) 在Generator.invoke上[作为_invoke](node_modules / regenerator-runtime / runtime.js:296:0) 在Generator.prototype中。 [下一个](node_modules / regenerator-runtime / runtime.js:114:0) 在步骤(http://localhost:3000/_next/webpack/4.6d649236eac6f1183328.hot-update.js:23:221) 在_next(http://localhost:3000/_next/webpack/4.6d649236eac6f1183328.hot-update.js:23:409)
此“ i_open_session_bn”是一个公共uint变量,如下所示:
uint public i_publish_bn;
uint public i_open_session_bn;
uint public i_start_eminent_bn;
uint public i_end_notice;
uint public i_open_to_eminent;
这是一份广泛的合同-这就是为什么我没有将其粘贴在这里的原因。但是,这是仓库的链接:https://github.com/rodcaldeira/graduation-project/blob/master/ethereum/contracts/PregaoOnline.sol(第64-68行)。
那真的很尴尬,因为“ i_publish_bn”的get方法可以正常工作。我可以正常检索此值。具有此行为的另一种方法是getLastNoticeInfo()(在第287行的声明)。
在我的私有区块链节点中部署合同后,我可以使用Remix并使用任何方法加载合同而不会出现问题。我真的迷路了。有人知道如何解决吗?
几天以来,我一直在寻找解决方法或解决方案,但没有任何效果。
我正在使用: Linux Ubuntu 18.04 x64 松露v5.0.15 Ganache v2.0.2 Web3JS v1.0.0-beta.34
预先感谢, 罗德里戈
-编辑1: 尝试调用该函数的代码:
const i_open_session_bn = await notice.methods.i_open_session_bn().call();