Пример #1
0
        /// <summary>Adds or updates a transaction from the collection of transactions to broadcast.</summary>
        public void AddOrUpdate(Transaction transaction, TransactionBroadcastState transactionBroadcastState, string errorMessage = null)
        {
            bool    changed = false;
            uint256 trxHash = transaction.GetHash();
            BroadcastTransactionStateChanedEntry broadcastEntry = this.Broadcasts.TryGet(trxHash);

            if (broadcastEntry == null)
            {
                broadcastEntry = new BroadcastTransactionStateChanedEntry(transaction, transactionBroadcastState, errorMessage);
                this.Broadcasts.Add(trxHash, broadcastEntry);
                changed = true;
            }
            else
            {
                if (broadcastEntry.TransactionBroadcastState != transactionBroadcastState)
                {
                    broadcastEntry.TransactionBroadcastState = transactionBroadcastState;
                    changed = true;
                }

                if (broadcastEntry.ErrorMessage != errorMessage)
                {
                    broadcastEntry.ErrorMessage = errorMessage;
                    changed = true;
                }
            }

            if (changed)
            {
                this.OnTransactionStateChanged(broadcastEntry);
            }
        }
        /// <summary>Adds or updates a transaction from the collection of transactions to broadcast.</summary>
        public void AddOrUpdate(Transaction transaction, TransactionBroadcastState transactionBroadcastState, MempoolError mempoolError = null)
        {
            TransactionBroadcastEntry broadcastEntry = this.Broadcasts.FirstOrDefault(x => x.Transaction.GetHash() == transaction.GetHash());

            if (broadcastEntry == null)
            {
                broadcastEntry = new TransactionBroadcastEntry(transaction, transactionBroadcastState, mempoolError);
                this.Broadcasts.Add(broadcastEntry);
                this.OnTransactionStateChanged(broadcastEntry);
            }
            else if (broadcastEntry.TransactionBroadcastState != transactionBroadcastState)
            {
                broadcastEntry.TransactionBroadcastState = transactionBroadcastState;
                this.OnTransactionStateChanged(broadcastEntry);
            }
        }
Пример #3
0
        /// <summary>Adds or updates a transaction from the collection of transactions to broadcast.</summary>
        public void AddOrUpdate(Transaction transaction, TransactionBroadcastState transactionBroadcastState, string errorMessage = null)
        {
            BroadcastTransactionStateChanedEntry broadcastEntry = this.Broadcasts.FirstOrDefault(x => x.Transaction.GetHash() == transaction.GetHash());

            if (broadcastEntry == null)
            {
                broadcastEntry = new BroadcastTransactionStateChanedEntry(transaction, transactionBroadcastState, errorMessage);
                this.Broadcasts.Add(broadcastEntry);
                this.OnTransactionStateChanged(broadcastEntry);
            }
            else if (broadcastEntry.TransactionBroadcastState != transactionBroadcastState)
            {
                broadcastEntry.TransactionBroadcastState = transactionBroadcastState;
                this.OnTransactionStateChanged(broadcastEntry);
            }
        }
 public BroadcastTransactionStateChanedEntry(Transaction transaction, TransactionBroadcastState transactionBroadcastState, string errorMessage)
 {
     this.Transaction = transaction ?? throw new ArgumentNullException(nameof(transaction));
     this.TransactionBroadcastState = transactionBroadcastState;
     this.ErrorMessage = (errorMessage == null) ? string.Empty : errorMessage;
 }
Пример #5
0
 public TransactionBroadcastEntry(NBitcoin.Transaction transaction, TransactionBroadcastState transactionBroadcastState, MempoolError mempoolError)
 {
     this.Transaction = transaction ?? throw new ArgumentNullException(nameof(transaction));
     this.TransactionBroadcastState = transactionBroadcastState;
     this.MempoolError = mempoolError;
 }