Пример #1
0
        /// <summary>
        /// Lock the coins before queueing them.
        /// </summary>
        public IEnumerable <SmartCoin> QueueCoinsToMix(string password, params SmartCoin[] coins)
        {
            using (MixLock.Lock())
            {
                var successful = new List <SmartCoin>();

                foreach (SmartCoin coin in coins)
                {
                    if (coin.SpenderTransactionId != null)
                    {
                        continue;
                    }
                    var secret = KeyManager.GetSecrets(password, coin.ScriptPubKey).SingleOrDefault();
                    if (secret == null)
                    {
                        continue;
                    }
                    if (CoinsWaitingForMix.Select(x => x.SmartCoin).Contains(coin))
                    {
                        continue;
                    }

                    CoinsWaitingForMix.Add(new MixCoin(coin, secret));
                    successful.Add(coin);
                }

                return(successful);
            }
        }