diff --git a/src/main/java/org/qortal/api/resource/ArbitraryResource.java b/src/main/java/org/qortal/api/resource/ArbitraryResource.java index ee8b6786..fb4b8620 100644 --- a/src/main/java/org/qortal/api/resource/ArbitraryResource.java +++ b/src/main/java/org/qortal/api/resource/ArbitraryResource.java @@ -262,10 +262,10 @@ public class ArbitraryResource { publicKey58, Paths.get(path), name, Method.valueOf(methodString), Service.ARBITRARY_DATA ); - byte[] bytes = transactionBuilder.build(); - return Base58.encode(bytes); + ArbitraryTransactionData transactionData = transactionBuilder.build(); + return Base58.encode(ArbitraryTransactionTransformer.toBytes(transactionData)); - } catch (DataException e) { + } catch (DataException | TransformationException e) { throw ApiExceptionFactory.INSTANCE.createCustomException(request, ApiError.INVALID_DATA, e.getMessage()); } } diff --git a/src/main/java/org/qortal/api/resource/WebsiteResource.java b/src/main/java/org/qortal/api/resource/WebsiteResource.java index 1f4005bf..71d9430d 100644 --- a/src/main/java/org/qortal/api/resource/WebsiteResource.java +++ b/src/main/java/org/qortal/api/resource/WebsiteResource.java @@ -31,6 +31,7 @@ import org.qortal.api.ApiExceptionFactory; import org.qortal.api.HTMLParser; import org.qortal.api.Security; import org.qortal.arbitrary.ArbitraryDataTransactionBuilder; +import org.qortal.data.transaction.ArbitraryTransactionData; import org.qortal.data.transaction.ArbitraryTransactionData.*; import org.qortal.repository.DataException; import org.qortal.settings.Settings; @@ -38,6 +39,8 @@ import org.qortal.arbitrary.ArbitraryDataFile; import org.qortal.arbitrary.ArbitraryDataFile.*; import org.qortal.arbitrary.ArbitraryDataReader; import org.qortal.arbitrary.ArbitraryDataWriter; +import org.qortal.transform.TransformationException; +import org.qortal.transform.transaction.ArbitraryTransactionTransformer; import org.qortal.utils.Base58; @@ -93,10 +96,10 @@ public class WebsiteResource { publicKey58, Paths.get(path), name, Method.valueOf(methodString), Service.WEBSITE ); - byte[] bytes = transactionBuilder.build(); - return Base58.encode(bytes); + ArbitraryTransactionData transactionData = transactionBuilder.build(); + return Base58.encode(ArbitraryTransactionTransformer.toBytes(transactionData)); - } catch (DataException e) { + } catch (DataException | TransformationException e) { throw ApiExceptionFactory.INSTANCE.createCustomException(request, ApiError.INVALID_DATA, e.getMessage()); } } diff --git a/src/main/java/org/qortal/arbitrary/ArbitraryDataTransactionBuilder.java b/src/main/java/org/qortal/arbitrary/ArbitraryDataTransactionBuilder.java index 28b58a2b..592d907f 100644 --- a/src/main/java/org/qortal/arbitrary/ArbitraryDataTransactionBuilder.java +++ b/src/main/java/org/qortal/arbitrary/ArbitraryDataTransactionBuilder.java @@ -44,7 +44,7 @@ public class ArbitraryDataTransactionBuilder { this.service = service; } - public byte[] build() throws DataException { + public ArbitraryTransactionData build() throws DataException { ArbitraryDataFile arbitraryDataFile = null; try (final Repository repository = RepositoryManager.getRepository()) { @@ -109,11 +109,11 @@ public class ArbitraryDataTransactionBuilder { throw new DataException(String.format("Arbitrary transaction invalid: %s", result)); } - return ArbitraryTransactionTransformer.toBytes(transactionData); + return transactionData; - } catch (TransformationException | DataException e) { + } catch (DataException e) { arbitraryDataFile.deleteAll(); - throw new DataException(String.format("Unable to build ARBITRARY transaction: %s", e.getMessage())); + throw(e); } }