Pass Service enum to TransactionRepository.getSignaturesMatchingCriteria() instead of an Integer.

This fixes a bug when no service was specified in the /arbitrary/search API.
This commit is contained in:
CalDescent 2021-11-12 14:22:22 +00:00
parent 8bebe11b4e
commit d49caa29ce
3 changed files with 8 additions and 6 deletions

View File

@ -152,7 +152,7 @@ public class ArbitraryResource {
try (final Repository repository = RepositoryManager.getRepository()) {
List<byte[]> 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<TransactionData> transactions = new ArrayList<TransactionData>(signatures.size());

View File

@ -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<byte[]> getSignaturesMatchingCriteria(Integer startBlock, Integer blockLimit, Integer txGroupId,
List<TransactionType> txTypes, Integer service, String name, String address,
ConfirmationStatus confirmationStatus, Integer limit, Integer offset, Boolean reverse) throws DataException;
List<TransactionType> 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.

View File

@ -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<byte[]> getSignaturesMatchingCriteria(Integer startBlock, Integer blockLimit, Integer txGroupId,
List<TransactionType> txTypes, Integer service, String name, String address,
ConfirmationStatus confirmationStatus, Integer limit, Integer offset, Boolean reverse) throws DataException {
List<TransactionType> txTypes, Service service, String name, String address,
ConfirmationStatus confirmationStatus, Integer limit, Integer offset, Boolean reverse) throws DataException {
List<byte[]> 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) {