1+ package org .arkecosystem .crypto .transactions .types ;
2+
3+ import java .nio .ByteBuffer ;
4+ import java .nio .ByteOrder ;
5+ import java .util .HashMap ;
6+ import org .arkecosystem .crypto .enums .CoreTransactionTypes ;
7+ import org .arkecosystem .crypto .enums .TransactionTypeGroup ;
8+
9+ public class UsernameRegistration extends Transaction {
10+ @ Override
11+ public int getTransactionType () {
12+ return CoreTransactionTypes .USERNAME_REGISTRATION .getValue ();
13+ }
14+
15+ @ Override
16+ public int getTransactionTypeGroup () {
17+ return TransactionTypeGroup .CORE .getValue ();
18+ }
19+
20+ @ Override
21+ public HashMap <String , Object > assetToHashMap () {
22+ HashMap <String , Object > asset = new HashMap <>();
23+
24+ asset .put ("username" , this .asset .username );
25+
26+ return asset ;
27+ }
28+
29+ @ Override
30+ public byte [] serialize () {
31+ byte [] username = this .asset .username .getBytes ();
32+
33+ ByteBuffer buffer = ByteBuffer .allocate (username .length + 1 );
34+
35+ buffer .order (ByteOrder .LITTLE_ENDIAN );
36+
37+ buffer .put ((byte ) username .length );
38+ buffer .put (username );
39+
40+ return buffer .array ();
41+ }
42+
43+ @ Override
44+ public void deserialize (ByteBuffer buffer ) {
45+ int usernameLength = buffer .get () & 0xff ;
46+
47+ byte [] username = new byte [usernameLength ];
48+ buffer .get (username );
49+
50+ String utf8Username = new String (username );
51+ this .asset .username = utf8Username ;
52+ }
53+ }
0 commit comments