Skip to content

Commit

Permalink
Merge pull request #655 from tronprotocol/release_v4.7.2
Browse files Browse the repository at this point in the history
feat(master): merge release v4.7.2 into master
  • Loading branch information
forfreeday committed Jul 1, 2023
2 parents 2c60edc + b75b232 commit 31e626e
Show file tree
Hide file tree
Showing 11 changed files with 156 additions and 37 deletions.
49 changes: 45 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,8 @@ For more information on a specific command, just type the command on terminal wh
| [GetBalance](#Account-related-commands) | [GetBlock](#How-to-get-block-information) |[GetBlockById](#How-to-get-block-information) |
| [GetBlockByLatestNum](#How-to-get-block-information) | [GetBlockByLimitNext](#How-to-get-block-information) | [GetBrokerage](#Brokerage) |
| [GetContract](#How-to-use-smart-contracts) | [GetDelegatedResource](#How-to-delegate-resource) |[GetDelegatedResourceAccountIndex](#How-to-delegate-resource) |
| [GetDiversifier](#How-to-transfer-shielded-TRC20-token)| [GetExpandedSpendingKey](#How-to-transfer-shielded-TRC20-token)| [GetIncomingViewingKey](#How-to-transfer-shielded-TRC20-token) |

This comment has been minimized.

| [GetMarketOrderByAccount](#How-to-use-tron-dex-to-sell-asset)| [GetMarketOrderById](#How-to-use-tron-dex-to-sell-asset)| [GetMarketOrderListByPair](#How-to-use-tron-dex-to-sell-asset) |

This comment has been minimized.

| [GetDiversifier](#How-to-transfer-shielded-TRC20-token)| [GetExpandedSpendingKey](#How-to-transfer-shielded-TRC20-token)| [GetIncomingViewingKey](#How-to-transfer-shielded-TRC20-token) |
| [GetMarketOrderByAccount](#How-to-use-tron-dex-to-sell-asset)| [GetMarketOrderById](#How-to-use-tron-dex-to-sell-asset)| [GetMarketOrderListByPair](#How-to-use-tron-dex-to-sell-asset) |
| [GetMarketPairList](#How-to-use-tron-dex-to-sell-asset)| [GetMarketPriceByPair](#How-to-use-tron-dex-to-sell-asset)| [GetNextMaintenanceTime](#Some-others) |
| [GetNkFromNsk](#How-to-transfer-shielded-TRC20-token) | [GetProposal](#Get-proposal-information) | [GetShieldedPaymentAddress](#How-to-transfer-shielded-TRC20-token)|
| [GetSpendingKey](#How-to-transfer-shielded-TRC20-token) | [GetReward](#Brokerage) | [GetTransactionApprovedList](#How-to-use-the-multi-signature-feature-of-wallet-cli) |
Expand All @@ -97,8 +97,9 @@ For more information on a specific command, just type the command on terminal wh
| [UpdateBrokerage](#Brokerage) | [UpdateEnergyLimit](#How-to-use-smart-contracts) |[UpdateSetting](#How-to-use-smart-contracts) |
| [UpdateAccountPermission](#How-to-use-the-multi-signature-feature-of-wallet-cli) | [VoteWitness](#How-to-vote) | [FreezeBalanceV2](#How-to-freezev2) |
| [UnfreezeBalanceV2](#How-to-freezev2) | [DelegateResource](#How-to-freezev2) | [UnDelegateResource](#How-to-freezev2) |
| [WithdrawExpireUnfreeze](#How-to-freezev2) | [GetDelegatedResourceV2](#How-to-freezev2) | [GetDelegatedResourceAccountIndexV2](#How-to-freezev2) |
| [GetCanDelegatedMaxSize](#How-to-freezev2) | [GetAvailableUnfreezeCount](#How-to-freezev2) | [GetCanWithdrawUnfreezeAmount](#How-to-freezev2) |
| [WithdrawExpireUnfreeze](#How-to-freezev2) | [CancelAllUnfreezeV2](#How-to-freezev2) |[GetDelegatedResourceV2](#How-to-freezev2) |
| [GetDelegatedResourceAccountIndexV2](#How-to-freezev2) | [GetCanDelegatedMaxSize](#How-to-freezev2) | [GetAvailableUnfreezeCount](#How-to-freezev2) |
| [GetCanWithdrawUnfreezeAmount](#How-to-freezev2) | | |

Type any one of the listed commands, to display how-to tips.

Expand Down Expand Up @@ -1342,6 +1343,46 @@ wallet> GetTransactionById e5763ab8dfb1e7ed076770d55cf3c1ddaf36d75e23ec8330f99df
"raw_data_hex":"0a020000220819b59068c6058ff44096e18bb5d1305a5a083812560a3b747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e5769746864726177457870697265556e667265657a65436f6e747261637412170a154159e3741a68ec3e1ebba80ad809d5ccd31674236e7093b3e5aad130"
}
```
> cancelAllUnfreezeV2 [OwnerAddress]
OwnerAddress
> The address of the account that initiated the transaction, optional, default is the address of the login account.
Example:
```console
wallet> cancelAllUnfreezeV2 TJAVcszse667FmSNCwU2fm6DmfM5D4AyDh
txid is e5763ab8dfb1e7ed076770d55cf3c1ddaf36d75e23ec8330f99df7e98f54a147
wallet> GetTransactionById e5763ab8dfb1e7ed076770d55cf3c1ddaf36d75e23ec8330f99df7e98f54a147
{
"ret":[
{
"contractRet":"SUCCESS"
}
],
"signature":[
"f8f02b5aa634b8666862a6d2ed68fcfd90afc616d14062952b0b09f0404d9bca6c4d3dc6dab082784950ff1ded235a07dab0d738c8a202be9451d5ca92b8eece01"
],
"txID":"e5763ab8dfb1e7ed076770d55cf3c1ddaf36d75e23ec8330f99df7e98f54a147",
"raw_data":{
"contract":[
{
"parameter":{
"value":{
"owner_address":"4159e3741a68ec3e1ebba80ad809d5ccd31674236e"
},
"type_url":"type.googleapis.com/protocol.CancelAllUnfreezeV2"
},
"type":"CancelAllUnfreezeV2Contract"
}
],
"ref_block_bytes":"0000",
"ref_block_hash":"19b59068c6058ff4",
"expiration":1671122055318,
"timestamp":1671100455315
},
"raw_data_hex":"0a020000220819b59068c6058ff44096e18bb5d1305a5a083812560a3b747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e5769746864726177457870697265556e667265657a65436f6e747261637412170a154159e3741a68ec3e1ebba80ad809d5ccd31674236e7093b3e5aad130"
}
```

### get resource delegation information use v2 API

Expand Down
1 change: 0 additions & 1 deletion src/main/java/org/tron/common/utils/AbiUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@ static class CoderArray extends Coder {
if (length == -1) {
this.dynamic = true;
}
this.dynamic = true;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,6 @@ public class HttpSelfFormatFieldName {
//ShieldedTransferContract
AddressFieldNameMap.put("protocol.ShieldedTransferContract.transparent_from_address", 1);
AddressFieldNameMap.put("protocol.ShieldedTransferContract.transparent_to_address", 1);

//FreezeBalanceV2Contract
AddressFieldNameMap.put("protocol.FreezeBalanceV2Contract.owner_address", 1);
//UnfreezeBalanceV2Contract
Expand All @@ -119,6 +118,9 @@ public class HttpSelfFormatFieldName {
//UnDelegateResourceContract
AddressFieldNameMap.put("protocol.UnDelegateResourceContract.owner_address", 1);
AddressFieldNameMap.put("protocol.UnDelegateResourceContract.receiver_address", 1);
//CancelAllUnfreezeV2Contract
AddressFieldNameMap.put("protocol.CancelAllUnfreezeV2Contract.owner_address", 1);

AddressFieldNameMap.put("protocol.CanDelegatedMaxSizeRequestMessage.owner_address", 1);
AddressFieldNameMap.put("protocol.GetAvailableUnfreezeCountRequestMessage.owner_address", 1);
AddressFieldNameMap.put("protocol.CanWithdrawUnfreezeAmountRequestMessage.owner_address", 1);
Expand Down
8 changes: 8 additions & 0 deletions src/main/java/org/tron/common/utils/Utils.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

package org.tron.common.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.protobuf.Any;
Expand Down Expand Up @@ -55,6 +56,7 @@
import org.tron.protos.contract.AssetIssueContractOuterClass.TransferAssetContract;
import org.tron.protos.contract.AssetIssueContractOuterClass.UnfreezeAssetContract;
import org.tron.protos.contract.AssetIssueContractOuterClass.UpdateAssetContract;
import org.tron.protos.contract.BalanceContract.CancelAllUnfreezeV2Contract;
import org.tron.protos.contract.BalanceContract.FreezeBalanceContract;
import org.tron.protos.contract.BalanceContract.TransferContract;
import org.tron.protos.contract.BalanceContract.UnfreezeBalanceContract;
Expand Down Expand Up @@ -618,6 +620,12 @@ public static JSONObject printTransactionToJSON(Transaction transaction, boolean
JSONObject.parseObject(
JsonFormat.printToString(unDelegateResourceContract, selfType));
break;
case CancelAllUnfreezeV2Contract:
CancelAllUnfreezeV2Contract cancelAllUnfreezeV2Contract =
contractParameter.unpack(CancelAllUnfreezeV2Contract.class);
contractJson = JSON.parseObject(
JsonFormat.printToString(cancelAllUnfreezeV2Contract, selfType));
break;
// new freeze end
// todo add other contract
default:
Expand Down
48 changes: 36 additions & 12 deletions src/main/java/org/tron/walletcli/Client.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import java.io.IOException;
import java.math.BigInteger;
import java.security.SecureRandom;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Base64.Decoder;
Expand Down Expand Up @@ -37,7 +36,6 @@
import org.tron.common.zksnark.LibrustzcashParam;
import org.tron.core.exception.CancelException;
import org.tron.core.exception.CipherException;
import org.tron.core.exception.EncodingException;
import org.tron.core.exception.ZksnarkException;
import org.tron.core.zen.ShieldedAddressInfo;
import org.tron.core.zen.ShieldedNoteInfo;
Expand Down Expand Up @@ -87,6 +85,7 @@ public class Client {
"BackupWallet",
"BackupWallet2Base64",
"BroadcastTransaction",
"CancelAllUnfreezeV2",
"ChangePassword",
"ClearContractABI",
"Create2",
Expand Down Expand Up @@ -229,6 +228,7 @@ public class Client {
"BackupWallet",
"BackupWallet2Base64",
"BroadcastTransaction",
"CancelAllUnfreezeV2",
"ChangePassword",
"ClearContractABI",
"Create2",
Expand Down Expand Up @@ -1413,30 +1413,32 @@ private void withdrawExpireUnfreeze(String[] parameters)

private void delegateResource(String[] parameters)
throws IOException, CipherException, CancelException {
if (parameters == null || !(parameters.length == 3 || parameters.length == 4 || parameters.length == 5)) {
if (parameters == null || !(parameters.length == 3 || parameters.length == 4 || parameters.length == 5 || parameters.length == 6)) {
System.out.println("Use delegateResource command with below syntax: ");
System.out.println(
"delegateResource [OwnerAddress] balance ResourceCode(0 BANDWIDTH,1 ENERGY), ReceiverAddress [lock]");
"delegateResource [OwnerAddress] balance ResourceCode(0 BANDWIDTH,1 ENERGY), "
+ "ReceiverAddress [lock] [lockPeriod]");
return;
}

int index = 0;
byte[] ownerAddress = null;
long balance = 0;
int resourceCode = 0;
byte[] receiverAddress = null;
long balance;
int resourceCode;
byte[] receiverAddress;
boolean lock = false;
long lockPeriod = 0;

if (parameters.length == 3) {
balance = Long.parseLong(parameters[index++]);
resourceCode = Integer.parseInt(parameters[index++]);
receiverAddress = getAddressBytes(parameters[index++]);
receiverAddress = getAddressBytes(parameters[index]);
if (receiverAddress == null) {
System.out.println(
"delegateResource receiverAddress is invalid");
return;
}
} else if (parameters.length == 4 || parameters.length == 5) {
} else {
ownerAddress = getAddressBytes(parameters[index]);
if (ownerAddress != null) {
index ++;
Expand All @@ -1450,14 +1452,17 @@ private void delegateResource(String[] parameters)
return;
}

if (parameters.length == 5 ||
(ownerAddress == null && parameters.length == 4)) {
if ((ownerAddress != null && parameters.length == 5) || (ownerAddress == null && parameters.length == 4)) {
lock = Boolean.parseBoolean(parameters[index++]);
}
if (parameters.length == 6 || (ownerAddress == null && parameters.length == 5)) {
lock = Boolean.parseBoolean(parameters[index++]);
lockPeriod = Long.parseLong(parameters[index]);
}
}

boolean result = walletApiWrapper.delegateresource(
ownerAddress, balance, resourceCode, receiverAddress, lock);
ownerAddress, balance, resourceCode, receiverAddress, lock, lockPeriod);
if (result) {
System.out.println("delegateResource successful !!!");
} else {
Expand Down Expand Up @@ -1513,6 +1518,21 @@ private void unDelegateResource(String[] parameters)
}
}

private void cancelAllUnfreezeV2(String[] parameters)
throws IOException, CipherException, CancelException {
if (parameters.length > 0) {
System.out.println("Use CancelAllUnfreezeV2 command with below syntax: ");
System.out.println("CancelAllUnfreezeV2");
return;
}
boolean result = walletApiWrapper.cancelAllUnfreezeV2();
if (result) {
System.out.println("cancelAllUnfreezeV2 successful !!!");
} else {
System.out.println("cancelAllUnfreezeV2 failed !!!");
}
}

private void unfreezeAsset(String[] parameters) throws IOException,
CipherException, CancelException {
System.out.println("Use UnfreezeAsset command like: ");
Expand Down Expand Up @@ -4528,6 +4548,10 @@ private void run() {
unDelegateResource(parameters);
break;
}
case "cancelallunfreezev2": {
cancelAllUnfreezeV2(parameters);
break;
}
case "withdrawbalance": {
withdrawBalance(parameters);
break;
Expand Down
14 changes: 11 additions & 3 deletions src/main/java/org/tron/walletcli/WalletApiWrapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
import org.tron.core.zen.address.SpendingKey;
import org.tron.keystore.StringUtils;
import org.tron.keystore.WalletFile;
import org.tron.keystore.WalletUtils;
import org.tron.protos.Protocol.Account;
import org.tron.protos.Protocol.Block;
import org.tron.protos.Protocol.ChainParameters;
Expand Down Expand Up @@ -548,15 +547,15 @@ public boolean withdrawExpireUnfreeze(byte[] ownerAddress)
}

public boolean delegateresource(byte[] ownerAddress, long balance
, int resourceCode, byte[] receiverAddress, boolean lock)
, int resourceCode, byte[] receiverAddress, boolean lock, long lockPeriod)
throws CipherException, IOException, CancelException {
if (wallet == null || !wallet.isLoginState()) {
System.out.println("Warning: delegateresource failed, Please login first !!");
return false;
}

return wallet.delegateResource(ownerAddress, balance
, resourceCode, receiverAddress, lock);
, resourceCode, receiverAddress, lock, lockPeriod);
}

public boolean undelegateresource(byte[] ownerAddress, long balance
Expand All @@ -570,6 +569,15 @@ public boolean undelegateresource(byte[] ownerAddress, long balance
return wallet.unDelegateResource(ownerAddress, balance, resourceCode, receiverAddress);
}

public boolean cancelAllUnfreezeV2()
throws CipherException, IOException, CancelException {
if (wallet == null || !wallet.isLoginState()) {
System.out.println("Warning: cancelAllUnfreezeV2 failed, Please login first !!");
return false;
}
return wallet.cancelAllUnfreezeV2();
}

public boolean unfreezeAsset(byte[] ownerAddress)
throws CipherException, IOException, CancelException {
if (wallet == null || !wallet.isLoginState()) {
Expand Down
5 changes: 5 additions & 0 deletions src/main/java/org/tron/walletserver/GrpcClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
import org.tron.protos.contract.AssetIssueContractOuterClass.UnfreezeAssetContract;
import org.tron.protos.contract.AssetIssueContractOuterClass.UpdateAssetContract;
import org.tron.protos.contract.BalanceContract;
import org.tron.protos.contract.BalanceContract.CancelAllUnfreezeV2Contract;
import org.tron.protos.contract.BalanceContract.FreezeBalanceContract;
import org.tron.protos.contract.BalanceContract.TransferContract;
import org.tron.protos.contract.BalanceContract.UnfreezeBalanceContract;
Expand Down Expand Up @@ -229,6 +230,10 @@ public TransactionExtention createTransactionV2(BalanceContract.UnDelegateResour
return blockingStubFull.unDelegateResource(contract);
}

public TransactionExtention createTransactionV2(CancelAllUnfreezeV2Contract contract) {
return blockingStubFull.cancelAllUnfreezeV2(contract);
}

public Transaction createTransaction(UnfreezeAssetContract contract) {
return blockingStubFull.unfreezeAsset(contract);
}
Expand Down
Loading

0 comments on commit 31e626e

Please sign in to comment.