Думаю проще запретить формирование транзакций для несинхронизированного клиента как у других и не париться.
Почти согласен. Это решает ~99,9% подобных проблем, но остаются случаи когда до трансфера выхода в коинтрансфер транзакцию остается 1-2 блока(или гораздо больше при максимальной загрузке блоков транзакциями) и тогда при не попадании в течении этого времени транзакции в какой-либо блок по какой-либо причине она будет считаться даблспендом и зависнет в кошельке.
В таких пограничных случаях нужно автоматическое удаление сделать таких транзакций из кошелька, что восстанавливает первоначальный баланс.
И предупреждение пользователя наверное тоже не помешает добавить. Что то типа:
Если Ваша транзакция не подтвердится в течении ХХХ блоков она вернётся назад, но с неё будет списана комиссия в размере 0,XXX%. Поэтому желательно сделать то-то и то-то чтобы транзакция подтвердилась как можно скорее... или т.п. В том-то и дело что кошелек синхронизирован - есть зеленая галочка.
Любопытный случай. Напишите что выдаёт эта команда в консоли кошелька: getrawtransaction
1
- в списке транзакций в выпадающей менюшке кликнуть Copy transaction ID
для примера: getrawtransaction
c0af3d495038affbad2f8ea10b0e51f272056c011f5921f04ceb428107adbdbc 1
No information available about transaction (code -5)
Странно. Вроде бы должно работать(у себя только что проверил).
Свой wallet.dat можете прислать для изучения такого случая?