private void OnFillMemoryPool(IEnumerable <Transaction> transactions) { // Invalidate all the transactions in the memory pool, to avoid any failures when adding new transactions. MemPool.InvalidateAllTransactions(); // Add the transactions to the memory pool foreach (var tx in transactions) { if (tx.Type == TransactionType.MinerTransaction) { continue; } if (Store.ContainsTransaction(tx.Hash)) { continue; } if (!Plugin.CheckPolicy(tx)) { continue; } // First remove the tx if it is unverified in the pool. MemPool.TryRemoveUnVerified(tx.Hash, out _); // Verify the the transaction if (!tx.Verify(currentSnapshot, MemPool.GetVerifiedTransactions())) { continue; } // Add to the memory pool MemPool.TryAdd(tx.Hash, tx); } // Transactions originally in the pool will automatically be reverified based on their priority. Sender.Tell(new FillCompleted()); }
private void OnFillMemoryPool(IEnumerable <Transaction> transactions) { // Invalidate all the transactions in the memory pool, to avoid any failures when adding new transactions. MemPool.InvalidateAllTransactions(); // Add the transactions to the memory pool foreach (var tx in transactions) { if (View.ContainsTransaction(tx.Hash)) { continue; } if (!NativeContract.Policy.CheckPolicy(tx, currentSnapshot)) { continue; } // First remove the tx if it is unverified in the pool. MemPool.TryRemoveUnVerified(tx.Hash, out _); // Verify the the transaction if (tx.Verify(currentSnapshot, MemPool.SendersFeeMonitor.GetSenderFee(tx.Sender)) != VerifyResult.Succeed) { continue; } // Add to the memory pool MemPool.TryAdd(tx.Hash, tx); } // Transactions originally in the pool will automatically be reverified based on their priority. Sender.Tell(new FillCompleted()); }
private void OnFillMemoryPool(IEnumerable <Transaction> transactions) { // Invalidate all the transactions in the memory pool, to avoid any failures when adding new transactions. MemPool.InvalidateAllTransactions(); // Add the transactions to the memory pool foreach (var tx in transactions) { if (View.ContainsTransaction(tx.Hash)) { continue; } // First remove the tx if it is unverified in the pool. MemPool.TryRemoveUnVerified(tx.Hash, out _); // Add to the memory pool MemPool.TryAdd(tx, currentSnapshot); } // Transactions originally in the pool will automatically be reverified based on their priority. Sender.Tell(new FillCompleted()); }