diff --git a/src/main/java/org/qortal/transaction/ChatTransaction.java b/src/main/java/org/qortal/transaction/ChatTransaction.java index ccef1f37..a670ea4b 100644 --- a/src/main/java/org/qortal/transaction/ChatTransaction.java +++ b/src/main/java/org/qortal/transaction/ChatTransaction.java @@ -11,6 +11,7 @@ import org.qortal.crypto.MemoryPoW; import org.qortal.data.transaction.ChatTransactionData; import org.qortal.data.transaction.TransactionData; import org.qortal.group.Group; +import org.qortal.list.ResourceListManager; import org.qortal.repository.DataException; import org.qortal.repository.GroupRepository; import org.qortal.repository.Repository; @@ -138,6 +139,12 @@ public class ChatTransaction extends Transaction { public ValidationResult isValid() throws DataException { // Nonce checking is done via isSignatureValid() as that method is only called once per import + // Check for blacklisted author by address + ResourceListManager listManager = ResourceListManager.getInstance(); + if (listManager.isAddressInBlacklist(this.chatTransactionData.getSender())) { + return ValidationResult.ADDRESS_IN_BLACKLIST; + } + // If we exist in the repository then we've been imported as unconfirmed, // but we don't want to make it into a block, so return fake non-OK result. if (this.repository.getTransactionRepository().exists(this.chatTransactionData.getSignature())) diff --git a/src/main/java/org/qortal/transaction/Transaction.java b/src/main/java/org/qortal/transaction/Transaction.java index d7dd1455..3c761d28 100644 --- a/src/main/java/org/qortal/transaction/Transaction.java +++ b/src/main/java/org/qortal/transaction/Transaction.java @@ -247,6 +247,7 @@ public abstract class Transaction { INVALID_GROUP_BLOCK_DELAY(93), INCORRECT_NONCE(94), INVALID_TIMESTAMP_SIGNATURE(95), + ADDRESS_IN_BLACKLIST(96), INVALID_BUT_OK(999), NOT_YET_RELEASED(1000);