From f809638c72ca5d988f6cd2569fc6f9da2ac06a48 Mon Sep 17 00:00:00 2001 From: Josh Rickmar Date: Wed, 6 Nov 2013 12:37:46 -0500 Subject: [PATCH] Write dirty wallet to disk if a change address is added. --- cmdmgr.go | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/cmdmgr.go b/cmdmgr.go index 3195c5c..2cf9f79 100644 --- a/cmdmgr.go +++ b/cmdmgr.go @@ -368,8 +368,15 @@ func SendFrom(reply chan []byte, msg *btcjson.Message) { return } - // Request updates for change address. - w.ReqNewTxsForAddress(createdTx.changeAddr) + // If a change address was added, mark wallet as dirty, sync to disk, + // and Request updates for change address. + if len(createdTx.changeAddr) != 0 { + w.dirty = true + if err := w.writeDirtyToDisk(); err != nil { + log.Errorf("cannot write dirty wallet: %v", err) + } + w.ReqNewTxsForAddress(createdTx.changeAddr) + } // Send rawtx off to btcd n := <-NewJSONID @@ -528,8 +535,15 @@ func SendMany(reply chan []byte, msg *btcjson.Message) { return } - // Request updates for change address. - w.ReqNewTxsForAddress(createdTx.changeAddr) + // If a change address was added, mark wallet as dirty, sync to disk, + // and Request updates for change address. + if len(createdTx.changeAddr) != 0 { + w.dirty = true + if err := w.writeDirtyToDisk(); err != nil { + log.Errorf("cannot write dirty wallet: %v", err) + } + w.ReqNewTxsForAddress(createdTx.changeAddr) + } // Send rawtx off to btcd n := <-NewJSONID