TX не имеет правильного одноразового номера. аккаунт имеет одноразовый номер: 5 TX имеет одноразовый номер: 15

Используя truffle (3.4.6), metamask (3.9.2) и testrpc (4.0.1), я вызываю транзакцию и получаю сообщение "Ошибка: у tx нет правильного одноразового номера. У учетной записи есть одноразовый номер: 5 tx имеет одноразовый номер" из: 15". Я сократил тело моего метода контракта до чего-то тривиального, и я все еще понимаю это. Любая идея, что вызывает это?

contract MyContract {
  mapping (address => bool) authorized;

  function myMethod (uint element, uint price) whenNotPaused returns (bool) {
     if (!authorized[msg.sender]) throw;
     return true;
  }
}

Я называю метод следующим образом (используя трюфель):

  MyContract.deployed().then((instance) => {
      instance.myMethod (id, price, {from: account}).then (...)

2 ответа

В этой теме я увидел предложение переключать сети туда-сюда и исправлять ошибки.

¯\_(ツ)_/¯

@okwme прав, но вы также можете изменить конфигурацию сети, чтобы решить проблему. Предположим, вы используете сеть разработки на локальном хосте с поставщиком HDWallet, тогда вы можете исправить ошибку, закомментировав это свойство конфигурации и добавив к нему свойства хоста и порта. Это выглядит следующим образом:

      development: {
      host: "127.0.0.1",
      port: 8545,
      network_id: "*",
      gas: 6721975
      // networkCheckTimeout: 10000,
      // provider: function() {
      //   return new HDWalletProvider(mnemonic, 'http://127.0.0.1:8545/', 0, 10);
      // },
      // network_id: '*',
      // gas: 6721975,
    },
  },
Другие вопросы по тегам