mirror of
https://github.com/Qortal/qortal.git
synced 2025-07-23 04:36:50 +00:00
Registered names: changing 'owner' and allowing renaming.
REGISTER_NAME has an "owner" field which can be different from the actual registrant (transaction creator's public key, used for signing transaction). This allowed people to register names to be owned by someone else, thus breaking the whole "one name per account" aspect. So now "owner" is removed from REGISTER_NAME, and the actual owner address is derived from transaction creator's public key, as you would expect. Similarly, UPDATE_NAME has a corresponding "newOwner" field which has been removed. In addition, UPDATE_NAME now allows users to change their registered name using a new "newName" field. Various changes made to DB, Name class, etc. to accomodate above, along with some minor bug-fixes and comment improvements/corrections. Needs new unit tests to cover both new functionality and old!
This commit is contained in:
@@ -46,7 +46,7 @@ public class NamesApiTests extends ApiCommon {
|
||||
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
||||
String name = "test-name";
|
||||
|
||||
RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), alice.getAddress(), name, "{}");
|
||||
RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, "{}");
|
||||
TransactionUtils.signAndMint(repository, transactionData, alice);
|
||||
|
||||
assertNotNull(this.namesResource.getNamesByAddress(alice.getAddress(), null, null, null));
|
||||
@@ -61,7 +61,7 @@ public class NamesApiTests extends ApiCommon {
|
||||
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
||||
String name = "test-name";
|
||||
|
||||
RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), alice.getAddress(), name, "{}");
|
||||
RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, "{}");
|
||||
TransactionUtils.signAndMint(repository, transactionData, alice);
|
||||
|
||||
assertNotNull(this.namesResource.getName(name));
|
||||
@@ -76,7 +76,7 @@ public class NamesApiTests extends ApiCommon {
|
||||
String name = "test-name";
|
||||
long price = 1_23456789L;
|
||||
|
||||
TransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), alice.getAddress(), name, "{}");
|
||||
TransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, "{}");
|
||||
TransactionUtils.signAndMint(repository, transactionData, alice);
|
||||
|
||||
// Sell-name
|
||||
|
@@ -9,14 +9,13 @@ import org.qortal.repository.Repository;
|
||||
public class RegisterNameTestTransaction extends TestTransaction {
|
||||
|
||||
public static TransactionData randomTransaction(Repository repository, PrivateKeyAccount account, boolean wantValid) throws DataException {
|
||||
String owner = account.getAddress();
|
||||
String name = "test name";
|
||||
if (!wantValid)
|
||||
name += " " + random.nextInt(1_000_000);
|
||||
|
||||
String data = "{ \"key\": \"value\" }";
|
||||
|
||||
return new RegisterNameTransactionData(generateBase(account), owner, name, data);
|
||||
return new RegisterNameTransactionData(generateBase(account), name, data);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -61,7 +61,7 @@ public class BuySellTests extends Common {
|
||||
@Test
|
||||
public void testRegisterName() throws DataException {
|
||||
// Register-name
|
||||
RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), alice.getAddress(), name, "{}");
|
||||
RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, "{}");
|
||||
TransactionUtils.signAndMint(repository, transactionData, alice);
|
||||
|
||||
String name = transactionData.getName();
|
||||
|
@@ -29,7 +29,7 @@ public class MiscTests extends Common {
|
||||
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
||||
String name = "test-name";
|
||||
|
||||
RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), alice.getAddress(), name, "{}");
|
||||
RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, "{}");
|
||||
TransactionUtils.signAndMint(repository, transactionData, alice);
|
||||
|
||||
List<String> recentNames = repository.getNameRepository().getRecentNames(0L);
|
||||
|
Reference in New Issue
Block a user