Почему я получаю «удален tx из пула: низкий одноразовый номер tx или нет средств»?

Учетная запись, которую я использую для отправки транзакции, имеет 10490 ETH (1,0585e+22 Wei). Стоимость сделки составляет 20477 газа, а цена газа составляет 300000000000.

Вот вывод Geth:

I0330 22:28:05.762119 8235 transaction_pool.go:491] removed tx (
  TX(c2c8b07508b51fcd1828e312dc1ebf219c579f9bb4776ebbf462cd8b7f61e85c)
  Contract: false
  From: fa7b2db995e286e882cb4ded7b413ce4f3aa4775
  To: 1ca2b90df6bc95a0dc988b771f81a105d6b59bb5
  Nonce: 7
  GasPrice: 300000000000
  GasLimit 90000
  Value: 0
  Data: 0x1522eba7000000000000000000000000fa7b2db995e286e882cb4ded7b413ce4f3aa477500000000000000000000000000000000000000000000000000000000000000df
  V: 0x1b
  R: 0xbb2a8f533b0b729a1149aa4d30a10f72fe528050dfb22c57b43b5e20fdad0f70
  S: 0x185c5676078b14ca332a10f696c5e93a98d56ec0da10870f90216d459cf9bae8
  Hex: f8aa078545d964b80083015f90941ca2b90df6bc95a0dc988b771f81a105d6b59bb580b8441522eba7000000000000000000000000fa7b2db995e286e882cb4ded7b413ce4f3aa477500000000000000000000000000000000000000000000000000000000000000df1ba0bb2a8f533b0b729a1149aa4d30a10f72fe528050dfb22c57b43b5e20fdad0f70a0185c5676078b14ca332a10f696c5e93a98d56ec0da10870f90216d459cf9bae8
) from pool: low tx nonce or out of funds

Ответы (1)

Часть исходного кода, которая генерирует эту ошибку, взята с https://github.com/ethereum/go-ethereum/blob/4044a8cea44cd4cee3a8ddaf51a76b71c9d22042/core/tx_pool.go#L489-L502 и вызывается внутри функции tx_pool.go:validate_pool( ...) .

...
if past := state.GetNonce(sender) > tx.Nonce(); past || balance.Cmp(tx.Cost()) < 0 {
    // Remove an already past it invalidated transaction
    if glog.V(logger.Core) {
        glog.Infof("removed tx (%v) from pool: low tx nonce or out of funds\n", tx)
    }
    delete(pool.pending, hash)
    ...

Поскольку вы заявили, что у вас есть достаточный баланс на вашем счете, транзакция должна быть отклонена из-за проверки одноразового номера транзакции. В опубликованных вами данных одноразовый номер вашей транзакции равен 7. Должно быть, уже были предыдущие транзакции с той же учетной записи, где уже использовался одноразовый номер 7 или выше.

OP может попробовать проверить текущий одноразовый номер ethereum.stackexchange.com/q/2527/42 и попытаться повторно отправить транзакцию со следующим одноразовым номером.
И как я могу это решить?
Каковы подробности проблемы, которую вы пытаетесь решить? Если необходимо, откройте новый вопрос.
Та же проблема: эфира более чем достаточно, но не могу развернуть даже пустой контракт, получая все тот же «удален tx из пула: low tx nonce or out of funds»
И просто подтверждая, что вы не указываете одноразовый номер транзакции?
@HenriqueBarcelos: Если я правильно понял, вам просто нужно увеличить одноразовый номер. Если 7 уже используется, установите его на 8, 9, ...