From dcb8d67236930907d6389455103c06b60d64cfe3 Mon Sep 17 00:00:00 2001 From: catbref Date: Tue, 4 Jun 2019 08:55:20 +0100 Subject: [PATCH] Don't allow new transactions to be submitted if not up to date --- src/main/java/org/qora/api/ApiError.java | 1 + .../java/org/qora/api/resource/TransactionsResource.java | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/qora/api/ApiError.java b/src/main/java/org/qora/api/ApiError.java index b7702047..ed475e22 100644 --- a/src/main/java/org/qora/api/ApiError.java +++ b/src/main/java/org/qora/api/ApiError.java @@ -14,6 +14,7 @@ public enum ApiError { UNAUTHORIZED(4, 403), REPOSITORY_ISSUE(5, 500), NON_PRODUCTION(6, 403), + BLOCKCHAIN_NEEDS_SYNC(7, 503), // VALIDATION INVALID_SIGNATURE(101, 400), diff --git a/src/main/java/org/qora/api/resource/TransactionsResource.java b/src/main/java/org/qora/api/resource/TransactionsResource.java index 217f52bb..27dde0a3 100644 --- a/src/main/java/org/qora/api/resource/TransactionsResource.java +++ b/src/main/java/org/qora/api/resource/TransactionsResource.java @@ -408,9 +408,12 @@ public class TransactionsResource { } ) @ApiErrors({ - ApiError.INVALID_SIGNATURE, ApiError.INVALID_DATA, ApiError.TRANSFORMATION_ERROR, ApiError.REPOSITORY_ISSUE + ApiError.BLOCKCHAIN_NEEDS_SYNC, ApiError.INVALID_SIGNATURE, ApiError.INVALID_DATA, ApiError.TRANSFORMATION_ERROR, ApiError.REPOSITORY_ISSUE }) public String processTransaction(String rawBytes58) { + if (!Controller.getInstance().isUpToDate()) + throw ApiExceptionFactory.INSTANCE.createException(request, ApiError.BLOCKCHAIN_NEEDS_SYNC); + try (final Repository repository = RepositoryManager.getRepository()) { byte[] rawBytes = Base58.decode(rawBytes58);