/// <summary> /// /// </summary> /// <param name="transaction"></param> /// <returns></returns> private bool isValidChangeTx(TransactionDetail transaction) { // amount check if (transaction.Amount > ticketCost) { return(false); } // category check //if (transaction.Category != "send") if (transaction.Category != "receive") { return(false); } // adress check //if (btc.ValidateAddress(transaction.Address).IsMine) if (!btc.ValidateAddress(transaction.Address).IsMine) { return(false); } // check if it's linked to a ticket transaction RawTransaction rawtransaction = btc.GetRawTransactionObject(transaction.TxId); string rawtransactionTxId = rawtransaction.Vin[0].TxId; if (!getTransactionOfType(Type.Ticket).Any(t => t.TxId == rawtransactionTxId)) { return(false); } return(true); }
/// <summary> /// /// </summary> /// <param name="transaction"></param> /// <returns></returns> private bool isValidTicketTx(TransactionDetail transaction) { // category check if (transaction.Category != "receive") { return(false); } // adress check if (!btc.ValidateAddress(transaction.Address).IsMine) { return(false); } // amount check int[] ticket = null; if (!lottery.getTicketFromAmount(transaction.Amount, out ticket) && transaction.Amount != ticketCost + (2 * networkFee)) { return(false); } return(true); }