Skip to content

Commit 074e0d6

Browse files
authored
hotfix(net):throw exception if scalingFactor <=0 (#5746)
1 parent fa46c4f commit 074e0d6

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

chainbase/src/main/java/org/tron/core/capsule/TransactionCapsule.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -738,7 +738,6 @@ public Transaction getInstance() {
738738
@Override
739739
public String toString() {
740740
StringBuilder toStringBuff = new StringBuilder();
741-
toStringBuff.setLength(0);
742741
toStringBuff.append("TransactionCapsule \n[ ");
743742

744743
toStringBuff.append("hash=").append(getTransactionId()).append("\n");

framework/src/main/java/org/tron/core/Wallet.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3862,12 +3862,11 @@ private boolean isShieldedTRC20NoteSpent(GrpcAPI.Note note, long pos, byte[] ak,
38623862
TransactionExtention.Builder trxExtBuilder = TransactionExtention.newBuilder();
38633863
Return.Builder retBuilder = Return.newBuilder();
38643864
TransactionExtention trxExt;
3865-
Transaction trx;
38663865

38673866
try {
38683867
TransactionCapsule trxCap = createTransactionCapsule(trigger,
38693868
ContractType.TriggerSmartContract);
3870-
trx = triggerConstantContract(trigger, trxCap, trxExtBuilder, retBuilder);
3869+
Transaction trx = triggerConstantContract(trigger, trxCap, trxExtBuilder, retBuilder);
38713870

38723871
retBuilder.setResult(true).setCode(response_code.SUCCESS);
38733872
trxExtBuilder.setTransaction(trx);
@@ -3890,10 +3889,10 @@ private boolean isShieldedTRC20NoteSpent(GrpcAPI.Note note, long pos, byte[] ak,
38903889
logger.warn("unknown exception caught: " + e.getMessage(), e);
38913890
} finally {
38923891
trxExt = trxExtBuilder.build();
3893-
trx = trxExt.getTransaction();
38943892
}
38953893

3896-
if (code.SUCESS == trx.getRet(0).getRet()) {
3894+
String code = trxExt.getResult().getCode().toString();
3895+
if ("SUCCESS".equals(code)) {
38973896
List<ByteString> list = trxExt.getConstantResultList();
38983897
byte[] listBytes = new byte[0];
38993898
for (ByteString bs : list) {
@@ -4086,6 +4085,9 @@ private long[] checkPublicAmount(byte[] address, BigInteger fromAmount, BigInteg
40864085
} catch (ContractExeException e) {
40874086
throw new ContractExeException("Get shielded contract scalingFactor failed");
40884087
}
4088+
if (scalingFactor.compareTo(BigInteger.ZERO) <= 0) {
4089+
throw new ContractValidateException("scalingFactor must be positive");
4090+
}
40894091

40904092
// fromAmount and toAmount must be a multiple of scalingFactor
40914093
if (!(fromAmount.mod(scalingFactor).equals(BigInteger.ZERO)
@@ -4127,12 +4129,11 @@ public byte[] getShieldedContractScalingFactor(byte[] contractAddress)
41274129
TransactionExtention.Builder trxExtBuilder = TransactionExtention.newBuilder();
41284130
Return.Builder retBuilder = Return.newBuilder();
41294131
TransactionExtention trxExt;
4130-
Transaction trx;
41314132

41324133
try {
41334134
TransactionCapsule trxCap = createTransactionCapsule(trigger,
41344135
ContractType.TriggerSmartContract);
4135-
trx = triggerConstantContract(trigger, trxCap, trxExtBuilder, retBuilder);
4136+
Transaction trx = triggerConstantContract(trigger, trxCap, trxExtBuilder, retBuilder);
41364137

41374138
retBuilder.setResult(true).setCode(response_code.SUCCESS);
41384139
trxExtBuilder.setTransaction(trx);
@@ -4155,10 +4156,10 @@ public byte[] getShieldedContractScalingFactor(byte[] contractAddress)
41554156
logger.warn("Unknown exception caught: " + e.getMessage(), e);
41564157
} finally {
41574158
trxExt = trxExtBuilder.build();
4158-
trx = trxExt.getTransaction();
41594159
}
41604160

4161-
if (code.SUCESS == trx.getRet(0).getRet()) {
4161+
String code = trxExt.getResult().getCode().toString();
4162+
if ("SUCCESS".equals(code)) {
41624163
List<ByteString> list = trxExt.getConstantResultList();
41634164
byte[] listBytes = new byte[0];
41644165
for (ByteString bs : list) {

0 commit comments

Comments
 (0)