From d49caa29cee1b96de7ac080a615512b792ff5755 Mon Sep 17 00:00:00 2001 From: CalDescent Date: Fri, 12 Nov 2021 14:22:22 +0000 Subject: [PATCH] Pass Service enum to TransactionRepository.getSignaturesMatchingCriteria() instead of an Integer. This fixes a bug when no service was specified in the /arbitrary/search API. --- .../java/org/qortal/api/resource/ArbitraryResource.java | 2 +- .../java/org/qortal/repository/TransactionRepository.java | 5 +++-- .../hsqldb/transaction/HSQLDBTransactionRepository.java | 7 ++++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/qortal/api/resource/ArbitraryResource.java b/src/main/java/org/qortal/api/resource/ArbitraryResource.java index 2ef4d553..3cd4467d 100644 --- a/src/main/java/org/qortal/api/resource/ArbitraryResource.java +++ b/src/main/java/org/qortal/api/resource/ArbitraryResource.java @@ -152,7 +152,7 @@ public class ArbitraryResource { try (final Repository repository = RepositoryManager.getRepository()) { List signatures = repository.getTransactionRepository().getSignaturesMatchingCriteria(startBlock, blockLimit, txGroupId, txTypes, - service.value, name, address, confirmationStatus, limit, offset, reverse); + service, name, address, confirmationStatus, limit, offset, reverse); // Expand signatures to transactions List transactions = new ArrayList(signatures.size()); diff --git a/src/main/java/org/qortal/repository/TransactionRepository.java b/src/main/java/org/qortal/repository/TransactionRepository.java index 093309a4..d53f2c7e 100644 --- a/src/main/java/org/qortal/repository/TransactionRepository.java +++ b/src/main/java/org/qortal/repository/TransactionRepository.java @@ -6,6 +6,7 @@ import java.util.Map; import org.qortal.api.resource.TransactionsResource.ConfirmationStatus; import org.qortal.data.group.GroupApprovalData; +import org.qortal.data.transaction.ArbitraryTransactionData.Service; import org.qortal.data.transaction.GroupApprovalTransactionData; import org.qortal.data.transaction.TransactionData; import org.qortal.data.transaction.TransferAssetTransactionData; @@ -70,8 +71,8 @@ public interface TransactionRepository { * @throws DataException */ public List getSignaturesMatchingCriteria(Integer startBlock, Integer blockLimit, Integer txGroupId, - List txTypes, Integer service, String name, String address, - ConfirmationStatus confirmationStatus, Integer limit, Integer offset, Boolean reverse) throws DataException; + List txTypes, Service service, String name, String address, + ConfirmationStatus confirmationStatus, Integer limit, Integer offset, Boolean reverse) throws DataException; /** * Returns signatures for transactions that match search criteria. 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 1c7422a7..78a1a86a 100644 --- a/src/main/java/org/qortal/repository/hsqldb/transaction/HSQLDBTransactionRepository.java +++ b/src/main/java/org/qortal/repository/hsqldb/transaction/HSQLDBTransactionRepository.java @@ -22,6 +22,7 @@ import org.qortal.data.transaction.BaseTransactionData; import org.qortal.data.transaction.GroupApprovalTransactionData; import org.qortal.data.transaction.TransactionData; import org.qortal.data.transaction.TransferAssetTransactionData; +import org.qortal.data.transaction.ArbitraryTransactionData.Service; import org.qortal.repository.DataException; import org.qortal.repository.TransactionRepository; import org.qortal.repository.hsqldb.HSQLDBRepository; @@ -386,8 +387,8 @@ public class HSQLDBTransactionRepository implements TransactionRepository { @Override public List getSignaturesMatchingCriteria(Integer startBlock, Integer blockLimit, Integer txGroupId, - List txTypes, Integer service, String name, String address, - ConfirmationStatus confirmationStatus, Integer limit, Integer offset, Boolean reverse) throws DataException { + List txTypes, Service service, String name, String address, + ConfirmationStatus confirmationStatus, Integer limit, Integer offset, Boolean reverse) throws DataException { List signatures = new ArrayList<>(); boolean hasAddress = address != null && !address.isEmpty(); @@ -466,7 +467,7 @@ public class HSQLDBTransactionRepository implements TransactionRepository { if (service != null) { whereClauses.add("ArbitraryTransactions.service = ?"); - bindParams.add(service); + bindParams.add(service.value); } if (name != null) {