From f6914821d3bd0194e81c63ad90ac1a8d4857ad9e Mon Sep 17 00:00:00 2001 From: CalDescent Date: Fri, 31 Mar 2023 18:30:05 +0100 Subject: [PATCH] Always use PUT for on-chain data. --- .../qortal/arbitrary/ArbitraryDataTransactionBuilder.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/org/qortal/arbitrary/ArbitraryDataTransactionBuilder.java b/src/main/java/org/qortal/arbitrary/ArbitraryDataTransactionBuilder.java index ccc1fc38..6e8d150f 100644 --- a/src/main/java/org/qortal/arbitrary/ArbitraryDataTransactionBuilder.java +++ b/src/main/java/org/qortal/arbitrary/ArbitraryDataTransactionBuilder.java @@ -191,6 +191,14 @@ public class ArbitraryDataTransactionBuilder { return Method.PUT; } + // We can't use PATCH for on-chain data because this requires the .qortal directory, which can't be put on chain + final boolean isSingleFileResource = FilesystemUtils.isSingleFileResource(this.path, false); + final boolean shouldUseOnChainData = (isSingleFileResource && AES.getEncryptedFileSize(FilesystemUtils.getSingleFileContents(path).length) <= ArbitraryTransaction.MAX_DATA_SIZE); + if (shouldUseOnChainData) { + LOGGER.info("Data size is small enough to go on chain - using PUT"); + return Method.PUT; + } + // State is appropriate for a PATCH transaction return Method.PATCH; }