Skip to content

Commit ded36db

Browse files
authored
Merge pull request #648 from lxcmyf/release_v4.7.2
Merge 'origin/develop' into release_v4.7.2
2 parents 8b3d7a4 + fd95cdf commit ded36db

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

src/main/java/org/tron/walletcli/Client.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,10 @@
2525
import org.jline.terminal.TerminalBuilder;
2626
import org.tron.api.GrpcAPI.*;
2727
import org.tron.common.crypto.Hash;
28+
import org.tron.common.crypto.SignInterface;
29+
import org.tron.common.crypto.SignUtils;
2830
import org.tron.common.utils.AbiUtil;
31+
import org.tron.common.utils.Base58;
2932
import org.tron.common.utils.ByteArray;
3033
import org.tron.common.utils.ByteUtil;
3134
import org.tron.common.utils.Utils;
@@ -99,6 +102,7 @@ public class Client {
99102
"ExchangeWithdraw",
100103
"FreezeBalance",
101104
"FreezeBalanceV2",
105+
"GenerateAddress",
102106
// "GenerateShieldedAddress",
103107
"GenerateShieldedTRC20Address",
104108
"GetAccount",
@@ -241,6 +245,7 @@ public class Client {
241245
"ExchangeWithdraw",
242246
"FreezeBalance",
243247
"FreezeBalanceV2",
248+
"GenerateAddress",
244249
// "GenerateShieldedAddress",
245250
"GenerateShieldedTRC20Address",
246251
"GetAccount",
@@ -2857,6 +2862,24 @@ private void getContractInfo(String[] parameters) {
28572862
}
28582863
}
28592864

2865+
private void generateAddress(String[] parameters) {
2866+
try {
2867+
boolean isECKey = parameters == null || parameters.length == 0
2868+
|| Boolean.parseBoolean(parameters[0]);
2869+
SignInterface cryptoEngine = SignUtils.getGeneratedRandomSign(Utils.getRandom(), isECKey);
2870+
byte[] priKey = cryptoEngine.getPrivateKey();
2871+
byte[] address = cryptoEngine.getAddress();
2872+
String addressStr = WalletApi.encode58Check(address);
2873+
String priKeyStr = ByteArray.toHexString(priKey);
2874+
AddressPrKeyPairMessage.Builder builder = AddressPrKeyPairMessage.newBuilder();
2875+
builder.setAddress(addressStr);
2876+
builder.setPrivateKey(priKeyStr);
2877+
System.out.println(Utils.formatMessageString(builder.build()));
2878+
} catch (Exception e) {
2879+
System.out.println("GenerateAddress failed !!!");
2880+
}
2881+
}
2882+
28602883
private void updateAccountPermission(String[] parameters)
28612884
throws CipherException, IOException, CancelException {
28622885
if (parameters == null || parameters.length != 2) {
@@ -4745,6 +4768,10 @@ private void run() {
47454768
getContractInfo(parameters);
47464769
break;
47474770
}
4771+
case "generateaddress": {
4772+
generateAddress(parameters);
4773+
break;
4774+
}
47484775
case "updateaccountpermission": {
47494776
updateAccountPermission(parameters);
47504777
break;

src/main/protos/api/api.proto

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1091,6 +1091,7 @@ message GetAvailableUnfreezeCountResponseMessage {
10911091
int64 count = 1;
10921092
}
10931093

1094+
//GetCanDelegatedMaxSize
10941095
message CanDelegatedMaxSizeRequestMessage {
10951096
int32 type = 1;
10961097
bytes owner_address = 2;
@@ -1099,6 +1100,7 @@ message CanDelegatedMaxSizeResponseMessage {
10991100
int64 max_size = 1;
11001101
}
11011102

1103+
//GetCanWithdrawUnfreezeAmount
11021104
message CanWithdrawUnfreezeAmountRequestMessage {
11031105
bytes owner_address = 1;
11041106
int64 timestamp = 2;
@@ -1194,6 +1196,11 @@ message PaginatedMessage {
11941196
int64 offset = 1;
11951197
int64 limit = 2;
11961198
}
1199+
// for only wallet-cli, do not delete
1200+
message AddressPrKeyPairMessage {
1201+
string address = 1;
1202+
string privateKey = 2;
1203+
}
11971204

11981205
message TransactionExtention {
11991206
Transaction transaction = 1;

0 commit comments

Comments
 (0)