Как повторно отправить транзакцию, не распознанную сетью?

Я отправил простую транзакцию (без вызова смарт-контракта), в то время как у моего узла geth не было подключенных пиров. Он создал транзакцию штрафа и вернул идентификатор транзакции.

Даже сейчас, когда подключено много узлов, я не могу найти эту транзакцию ни в одном обозревателе блоков. Я полагаю, это означает, что его не транслировали?

Как я могу ретранслировать транзакцию?

Ответы (2)

Просто используйте eth.pendingTransactions, чтобы найти транзакцию, которую вы хотите отправить повторно.

затем

var tx = eth.pendingTransactions[index], заменив index на индекс транзакции, которую вы хотите отправить повторно.

затем

eth.resend(tx, <optional gas price>, <optional gas limit>).

Это позволяет вам изменить цену газа и лимит газа для последней транзакции.

Из документов .

Отличное объяснение, но, учитывая количество шагов и тот факт, что задействован код, я не знаю, сможете ли вы обойтись «просто» :)
Обратите внимание, что pendingTransactions — это массив, а не функция, поэтому вы должны получить первую ожидающую транзакцию с помощью var tx = eth.pendingTransactions[0], без круглых скобок.
eth.resend(eth.pendingTransactions[0]) Error: Transaction 0885f7449756ae676259370a7c20dcf1c983f4276b7b333de505460928c1b164 not found

Для чего стоит, слегка родственное.

Я отправил транзакцию MetaMaskс низкой ценой газа.

Я искал решение, чтобы исправить это.

К счастью MetaMask, предлагает удобное решение:

введите описание изображения здесь

(отличная функция, спасибо разработчикам)