From e2a186af10d81a0e27b2e7c34783711d65caeae7 Mon Sep 17 00:00:00 2001 From: s_nakamoto Date: Tue, 9 Nov 2010 19:47:07 +0000 Subject: SelectCoins first pass tries not to use coins with less than 6 confirmations git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@177 1a98c847-1fd6-4fd8-948a-caf3550aa51b --- main.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'main.cpp') diff --git a/main.cpp b/main.cpp index 904c2b8f76..190cd4b296 100644 --- a/main.cpp +++ b/main.cpp @@ -3400,7 +3400,7 @@ int64 GetBalance() } -bool SelectCoins(int64 nTargetValue, set& setCoinsRet) +bool SelectCoinsMinConf(int64 nTargetValue, int nConfMine, int nConfTheirs, set& setCoinsRet) { setCoinsRet.clear(); @@ -3422,6 +3422,11 @@ bool SelectCoins(int64 nTargetValue, set& setCoinsRet) { if (!pcoin->IsFinal() || pcoin->fSpent || !pcoin->IsConfirmed()) continue; + + int nDepth = pcoin->GetDepthInMainChain(); + if (nDepth < (pcoin->IsFromMe() ? nConfMine : nConfTheirs)) + continue; + int64 n = pcoin->GetCredit(); if (n <= 0) continue; @@ -3506,6 +3511,13 @@ bool SelectCoins(int64 nTargetValue, set& setCoinsRet) return true; } +bool SelectCoins(int64 nTargetValue, set& setCoinsRet) +{ + return (SelectCoinsMinConf(nTargetValue, 1, 6, setCoinsRet) || + SelectCoinsMinConf(nTargetValue, 1, 1, setCoinsRet) || + SelectCoinsMinConf(nTargetValue, 0, 1, setCoinsRet)); +} + -- cgit v1.2.3