From 8950bb7af940f20ece39b8df5f6f2a47857e8d20 Mon Sep 17 00:00:00 2001 From: catbref Date: Thu, 24 Feb 2022 09:13:51 +0000 Subject: [PATCH] Very slightly relax validity checks for TRANSFER_PRIVS to allow for skeletal account records, e.g. due to CHAT transactions, but account last reference still needs to be null. Example at block height 736196 / 7 --- .../java/org/qortal/transaction/TransferPrivsTransaction.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/qortal/transaction/TransferPrivsTransaction.java b/src/main/java/org/qortal/transaction/TransferPrivsTransaction.java index f77dac15..f6a9de68 100644 --- a/src/main/java/org/qortal/transaction/TransferPrivsTransaction.java +++ b/src/main/java/org/qortal/transaction/TransferPrivsTransaction.java @@ -58,7 +58,9 @@ public class TransferPrivsTransaction extends Transaction { return ValidationResult.INVALID_ADDRESS; // Check recipient is new account - if (this.repository.getAccountRepository().accountExists(this.transferPrivsTransactionData.getRecipient())) + AccountData recipientAccountData = this.repository.getAccountRepository().getAccount(this.transferPrivsTransactionData.getRecipient()); + // Non-existent account data is OK, but if account data exists then reference needs to be null + if (recipientAccountData != null && recipientAccountData.getReference() != null) return ValidationResult.ACCOUNT_ALREADY_EXISTS; // Check sender has funds for fee