Skip to content

Commit 9c7b29b

Browse files
committed
modify valid bytes
1 parent ad09d2d commit 9c7b29b

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed

actuator/src/main/java/org/tron/core/utils/TransactionUtil.java

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.google.protobuf.ByteString;
2424
import java.security.SignatureException;
2525
import java.util.ArrayList;
26+
import java.util.Arrays;
2627
import java.util.List;
2728
import lombok.extern.slf4j.Slf4j;
2829
import org.apache.commons.lang3.ArrayUtils;
@@ -34,6 +35,7 @@
3435
import org.tron.api.GrpcAPI.TransactionSignWeight;
3536
import org.tron.api.GrpcAPI.TransactionSignWeight.Result;
3637
import org.tron.common.parameter.CommonParameter;
38+
import org.tron.common.crypto.Hash;
3739
import org.tron.common.utils.Sha256Hash;
3840
import org.tron.core.ChainBaseManager;
3941
import org.tron.core.capsule.AccountCapsule;
@@ -47,22 +49,23 @@
4749
import org.tron.protos.Protocol.Transaction.Result.contractResult;
4850
import org.tron.protos.Protocol.TransactionSign;
4951
import org.tron.protos.contract.SmartContractOuterClass.CreateSmartContract;
52+
import org.tron.protos.contract.SmartContractOuterClass.SmartContract;
53+
import org.tron.protos.contract.SmartContractOuterClass.SmartContract.ABI;
54+
import org.tron.protos.contract.SmartContractOuterClass.SmartContract.ABI.Entry.StateMutabilityType;
5055
import org.tron.protos.contract.SmartContractOuterClass.TriggerSmartContract;
5156

5257
@Slf4j(topic = "capsule")
5358
@Component
5459
public class TransactionUtil {
5560

56-
@Autowired
57-
private ChainBaseManager chainBaseManager;
58-
5961
private static final int maxAccountNameLen = 200;
6062
private static final int maxAccountIdLen = 32;
6163
private static final int minAccountIdLen = 8;
6264
private static final int maxAssetNameLen = 32;
6365
private static final int maxTokenAbbrName = 5;
64-
private static final int maxAssetDescription = 200;
65-
private static final int maxUrlLen = 256;
66+
67+
@Autowired
68+
private ChainBaseManager chainBaseManager;
6669

6770
public static boolean validAccountId(byte[] accountId) {
6871
return validReadableBytes(accountId, maxAccountIdLen) && accountId.length < minAccountIdLen;
@@ -93,22 +96,25 @@ private static boolean validReadableBytes(byte[] bytes, int maxLength) {
9396
}
9497

9598
public static boolean validAccountName(byte[] accountName) {
96-
return validBytes(accountName, maxAccountNameLen, true);
99+
if (ArrayUtils.isEmpty(accountName)) {
100+
return true; //account name can be empty
101+
}
102+
return accountName.length <= maxAccountNameLen;
97103
}
98104

99105
public static boolean validAssetDescription(byte[] description) {
100-
return validBytes(description, maxAssetDescription, true);
101-
}
106+
if (ArrayUtils.isEmpty(description)) {
107+
return true; //description can empty
108+
}
102109

103-
public static boolean validUrl(byte[] url) {
104-
return validBytes(url, maxUrlLen, false);
110+
return description.length <= 200;
105111
}
106112

107-
private static boolean validBytes(byte[] bytes, int maxLength, boolean allowEmpty) {
108-
if (ArrayUtils.isEmpty(bytes)) {
109-
return allowEmpty;
113+
public static boolean validUrl(byte[] url) {
114+
if (ArrayUtils.isEmpty(url)) {
115+
return false;
110116
}
111-
return bytes.length <= maxLength;
117+
return url.length <= 256;
112118
}
113119

114120
public static boolean isNumber(byte[] id) {

0 commit comments

Comments
 (0)