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,
},
},