Esempio n. 1
0
        /// <summary>
        /// 是否可花费
        /// </summary>
        /// <param name="utxoSet"></param>
        /// <param name="lastHeight"></param>
        /// <param name="localTime"></param>
        /// <returns></returns>
        public static bool IsSpentable(this UtxoSet utxoSet, long lastHeight, long localTime)
        {
            if (utxoSet.IsSpent())
            {
                return(false);
            }
            var confirmcount = lastHeight - utxoSet.BlockHeight;

            if (TransactionPoolDac.Default.UtxoHasSpent(utxoSet.TransactionHash, utxoSet.Index))
            {
                return(false);
            }
            return((confirmcount >= 100 && utxoSet.IsCoinbase) || (confirmcount >= 6 && !utxoSet.IsCoinbase && utxoSet.Locktime <= localTime));
        }
Esempio n. 2
0
 /// <summary>
 /// 是否正在等待中
 /// </summary>
 /// <param name="utxoSet"></param>
 /// <param name="lastHeight"></param>
 /// <param name="localTime"></param>
 /// <returns></returns>
 public static bool IsWaiting(this UtxoSet utxoSet, long lastHeight, long localTime)
 {
     return(!utxoSet.IsSpent() && utxoSet.IsSpentableWithoutPool(lastHeight, localTime));
 }