|
26 | 26 | import org.jline.terminal.TerminalBuilder; |
27 | 27 | import org.tron.api.GrpcAPI.*; |
28 | 28 | import org.tron.common.crypto.Hash; |
| 29 | +import org.tron.common.crypto.SignInterface; |
| 30 | +import org.tron.common.crypto.SignUtils; |
29 | 31 | import org.tron.common.utils.AbiUtil; |
| 32 | +import org.tron.common.utils.Base58; |
30 | 33 | import org.tron.common.utils.ByteArray; |
31 | 34 | import org.tron.common.utils.ByteUtil; |
32 | 35 | import org.tron.common.utils.Utils; |
@@ -100,6 +103,7 @@ public class Client { |
100 | 103 | "ExchangeWithdraw", |
101 | 104 | "FreezeBalance", |
102 | 105 | "FreezeBalanceV2", |
| 106 | + "GenerateAddress", |
103 | 107 | // "GenerateShieldedAddress", |
104 | 108 | "GenerateShieldedTRC20Address", |
105 | 109 | "GetAccount", |
@@ -241,6 +245,7 @@ public class Client { |
241 | 245 | "ExchangeWithdraw", |
242 | 246 | "FreezeBalance", |
243 | 247 | "FreezeBalanceV2", |
| 248 | + "GenerateAddress", |
244 | 249 | // "GenerateShieldedAddress", |
245 | 250 | "GenerateShieldedTRC20Address", |
246 | 251 | "GetAccount", |
@@ -2837,6 +2842,24 @@ private void getContractInfo(String[] parameters) { |
2837 | 2842 | } |
2838 | 2843 | } |
2839 | 2844 |
|
| 2845 | + private void generateAddress(String[] parameters) { |
| 2846 | + try { |
| 2847 | + boolean isECKey = parameters == null || parameters.length == 0 |
| 2848 | + || Boolean.parseBoolean(parameters[0]); |
| 2849 | + SignInterface cryptoEngine = SignUtils.getGeneratedRandomSign(Utils.getRandom(), isECKey); |
| 2850 | + byte[] priKey = cryptoEngine.getPrivateKey(); |
| 2851 | + byte[] address = cryptoEngine.getAddress(); |
| 2852 | + String addressStr = Base58.encode(address); |
| 2853 | + String priKeyStr = ByteArray.toHexString(priKey); |
| 2854 | + AddressPrKeyPairMessage.Builder builder = AddressPrKeyPairMessage.newBuilder(); |
| 2855 | + builder.setAddress(addressStr); |
| 2856 | + builder.setPrivateKey(priKeyStr); |
| 2857 | + System.out.println(Utils.formatMessageString(builder.build())); |
| 2858 | + } catch (Exception e) { |
| 2859 | + System.out.println("GenerateAddress failed !!!"); |
| 2860 | + } |
| 2861 | + } |
| 2862 | + |
2840 | 2863 | private void updateAccountPermission(String[] parameters) |
2841 | 2864 | throws CipherException, IOException, CancelException { |
2842 | 2865 | if (parameters == null || parameters.length != 2) { |
@@ -4721,6 +4744,10 @@ private void run() { |
4721 | 4744 | getContractInfo(parameters); |
4722 | 4745 | break; |
4723 | 4746 | } |
| 4747 | + case "generateaddress": { |
| 4748 | + generateAddress(parameters); |
| 4749 | + break; |
| 4750 | + } |
4724 | 4751 | case "updateaccountpermission": { |
4725 | 4752 | updateAccountPermission(parameters); |
4726 | 4753 | break; |
|
0 commit comments