From 40d879813d923da765690a19cee6ee7ae639b946 Mon Sep 17 00:00:00 2001 From: catbref Date: Thu, 26 Sep 2019 17:22:03 +0100 Subject: [PATCH] Added exists() test to BlockRepository & HSQLDB implementation --- src/main/java/org/qora/repository/BlockRepository.java | 5 +++++ .../qora/repository/hsqldb/HSQLDBBlockRepository.java | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/src/main/java/org/qora/repository/BlockRepository.java b/src/main/java/org/qora/repository/BlockRepository.java index d12e490f..084332aa 100644 --- a/src/main/java/org/qora/repository/BlockRepository.java +++ b/src/main/java/org/qora/repository/BlockRepository.java @@ -37,6 +37,11 @@ public interface BlockRepository { */ public BlockData fromHeight(int height) throws DataException; + /** + * Returns whether block exists based on passed block signature. + */ + public boolean exists(byte[] signature) throws DataException; + /** * Return height of block in blockchain using block's signature. * diff --git a/src/main/java/org/qora/repository/hsqldb/HSQLDBBlockRepository.java b/src/main/java/org/qora/repository/hsqldb/HSQLDBBlockRepository.java index bff9132f..c8acd507 100644 --- a/src/main/java/org/qora/repository/hsqldb/HSQLDBBlockRepository.java +++ b/src/main/java/org/qora/repository/hsqldb/HSQLDBBlockRepository.java @@ -88,6 +88,15 @@ public class HSQLDBBlockRepository implements BlockRepository { } } + @Override + public boolean exists(byte[] signature) throws DataException { + try { + return this.repository.exists("Blocks", "signature = ?", signature); + } catch (SQLException e) { + throw new DataException("Unable to check for block in repository", e); + } + } + @Override public int getHeightFromSignature(byte[] signature) throws DataException { try (ResultSet resultSet = this.repository.checkedExecute("SELECT height FROM Blocks WHERE signature = ? LIMIT 1", signature)) {