如何解决“ <方法>的参数数目无效。预期会出现0个1!”

时间:2019-06-28 23:10:09

标签: ethereum solidity web3 truffle web3js

当我尝试在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();

0 个答案:

没有答案