Re: Bug: “Immature” coins lost in wallet.dat during transaction


I am running R119 on a Linux box, and last night was fortunate enough to solve a block and get 50 BTC.  Hooray, right?  Well, I tried to send 30 BTC before they were “mature” (i.e. before the 100+ block mark had passed), and so of course bitcoind reported an error.  However, it also marked those 30 coins as spent, so not only was no transaction created, but the coins aren’t usable by me at the moment.

Here is the relevant bit from my debug.log:

ThreadRPCServer method=sendtoaddress
CTransaction(hash=cf3bee, ver=1, vin.size=1, vout.size=2, nLockTime=0)
CTxIn(COutPoint(e9894c, 0), scriptSig=0x014866DE7A1889014BAC9A)
CTxOut(nValue=20.00000000, scriptPubKey=OP_DUP OP_HASH160 0x01BA)
CTxOut(nValue=30.00000000, scriptPubKey=OP_DUP OP_HASH160 0x3F3A)
AddToWallet cf3bee  new
CommitTransaction() : Error: Transaction not validreceived: addr (27 bytes)
07/30/10 15:27:00 Flushing wallet.dat
Flushed wallet.dat 1ms

So my wallet started with 50.01 BTC in it (the 0.01 was just a test I’d run the other day from one machine to another), and now my wallet just has 20.01 BTC in it.  I’m a little sad—I was excited about generating those coins!


I don’t get how it let you send if it was not matured.  Your balance would have been lower than the amount.  It would have said balance 0.01, right?  If I try that it says “you don’t have enough money” or “Insufficient funds” from the command line.

How many blocks did it say it had left to mature when you sent?

There’s a chance it might still go through.

Have you copied or moved your wallet.dat in any way?

22,288 total views, 15 views today