/// <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)); }
/// <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)); }