Disallow registering/updating to a name that looks like an address

This commit is contained in:
catbref
2020-05-27 10:56:03 +01:00
parent 9aabf93523
commit 6eea7c2aa1
4 changed files with 53 additions and 1 deletions

View File

@@ -6,6 +6,7 @@ import java.util.List;
import org.qortal.account.Account;
import org.qortal.asset.Asset;
import org.qortal.block.BlockChain;
import org.qortal.crypto.Crypto;
import org.qortal.data.transaction.RegisterNameTransactionData;
import org.qortal.data.transaction.TransactionData;
import org.qortal.naming.Name;
@@ -62,6 +63,10 @@ public class RegisterNameTransaction extends Transaction {
if (!name.equals(Unicode.normalize(name)))
return ValidationResult.NAME_NOT_NORMALIZED;
// Check name doesn't look like an address
if (Crypto.isValidAddress(name))
return ValidationResult.INVALID_ADDRESS;
// Check registrant has enough funds
if (registrant.getConfirmedBalance(Asset.QORT) < this.registerNameTransactionData.getFee())
return ValidationResult.NO_BALANCE;

View File

@@ -5,6 +5,7 @@ import java.util.List;
import org.qortal.account.Account;
import org.qortal.asset.Asset;
import org.qortal.crypto.Crypto;
import org.qortal.data.naming.NameData;
import org.qortal.data.transaction.TransactionData;
import org.qortal.data.transaction.UpdateNameTransactionData;
@@ -77,6 +78,10 @@ public class UpdateNameTransaction extends Transaction {
// Check new name is in normalized form (no leading/trailing whitespace, etc.)
if (!newName.equals(Unicode.normalize(newName)))
return ValidationResult.NAME_NOT_NORMALIZED;
// Check name doesn't look like an address
if (Crypto.isValidAddress(newName))
return ValidationResult.INVALID_ADDRESS;
}
// Check new data size bounds (0 length means don't update data)

View File

@@ -41,7 +41,7 @@ public abstract class Unicode {
buildHomoglyphCodePointArrays();
}
/** Returns string in Unicode canonical normalized form (NFC),<br>
/** Returns string in Unicode canonical normalized form (NFKC),<br>
* with zero-width spaces/joiners removed,<br>
* leading/trailing whitespace trimmed<br>
* and all other whitespace blocks collapsed into a single space character.