diff --git a/src/main/java/org/qortal/repository/TransactionRepository.java b/src/main/java/org/qortal/repository/TransactionRepository.java
index 68d0cdac..acde78df 100644
--- a/src/main/java/org/qortal/repository/TransactionRepository.java
+++ b/src/main/java/org/qortal/repository/TransactionRepository.java
@@ -239,6 +239,18 @@ public interface TransactionRepository {
return getUnconfirmedTransactions(null, null, null);
}
+ /**
+ * Returns list of unconfirmed transactions with specified type and/or creator.
+ *
+ * At least one of txType or creatorPublicKey must be non-null.
+ *
+ * @param txType optional
+ * @param creatorPublicKey optional
+ * @return list of transactions, or empty if none.
+ * @throws DataException
+ */
+ public List getUnconfirmedTransactions(TransactionType txType, byte[] creatorPublicKey) throws DataException;
+
/**
* Remove transaction from unconfirmed transactions pile.
*
diff --git a/src/main/java/org/qortal/repository/hsqldb/transaction/HSQLDBTransactionRepository.java b/src/main/java/org/qortal/repository/hsqldb/transaction/HSQLDBTransactionRepository.java
index a603a916..83eeba72 100644
--- a/src/main/java/org/qortal/repository/hsqldb/transaction/HSQLDBTransactionRepository.java
+++ b/src/main/java/org/qortal/repository/hsqldb/transaction/HSQLDBTransactionRepository.java
@@ -1124,6 +1124,63 @@ public class HSQLDBTransactionRepository implements TransactionRepository {
}
}
+ @Override
+ public List getUnconfirmedTransactions(TransactionType txType, byte[] creatorPublicKey) throws DataException {
+ if (txType == null && creatorPublicKey == null)
+ throw new IllegalArgumentException("At least one of txType or creatorPublicKey must be non-null");
+
+ StringBuilder sql = new StringBuilder(1024);
+ sql.append("SELECT signature FROM UnconfirmedTransactions ");
+ sql.append("JOIN Transactions USING (signature) ");
+ sql.append("WHERE ");
+
+ List whereClauses = new ArrayList<>();
+ List