Как исправить «Неверное количество параметров для <method>. Получено 0, ожидается 1!» - PullRequest
0 голосов
/ 29 июня 2019

Когда я пытаюсь вызвать метод в моей реализации 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$ (pages / notices / show.js: 28: 0) в tryCatch (node_modules / регенератор-runtime / runtime.js: 62: 0) в Generator.invoke [как _invoke] (node_modules / Регенератор-runtime / runtime.js:296: 0) в Generator.prototype.[как далее] (node_modules / регенератор-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).

Это действительно неловко, потому что метод get для i_publish_bn работает нормально. Я могу получить это значение обычным способом. Еще один метод, имеющий такое поведение, - getLastNoticeInfo () (объявление в строке 287).

После развертывания моего контракта в моем частном блокчейн-узле я могу загрузить контракт, используя Remix и используя любые методы без проблем. Я действительно потерян. Кто-нибудь знает, как решить эту проблему?

Я уже несколько дней ищу обходные пути или решения, но ничего не помогло.

Я использую: Linux ubuntu 18.04 x64 Truffle 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();
...