Skip to content

Commit 3aea5fc

Browse files
committed
refactor(zen): replace arithmetic operators with StrictMathWrapper
1 parent 485921c commit 3aea5fc

3 files changed

Lines changed: 13 additions & 11 deletions

File tree

framework/src/main/java/org/tron/core/zen/ShieldedTRC20ParametersBuilder.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.tron.api.GrpcAPI;
1515
import org.tron.api.GrpcAPI.BytesMessage;
1616
import org.tron.api.GrpcAPI.ShieldedTRC20Parameters;
17+
import org.tron.common.math.StrictMathWrapper;
1718
import org.tron.common.utils.ByteArray;
1819
import org.tron.common.utils.ByteUtil;
1920
import org.tron.common.utils.Sha256Hash;
@@ -548,7 +549,7 @@ public void addSpend(
548549
byte[] path,
549550
long position) throws ZksnarkException {
550551
spends.add(new SpendDescriptionInfo(expsk, note, anchor, path, position));
551-
valueBalance += note.getValue();
552+
valueBalance = StrictMathWrapper.addExact(valueBalance, note.getValue());
552553
}
553554

554555
public void addSpend(
@@ -559,7 +560,7 @@ public void addSpend(
559560
byte[] path,
560561
long position) {
561562
spends.add(new SpendDescriptionInfo(expsk, note, alpha, anchor, path, position));
562-
valueBalance += note.getValue();
563+
valueBalance = StrictMathWrapper.addExact(valueBalance, note.getValue());
563564
}
564565

565566
public void addSpend(
@@ -571,22 +572,22 @@ public void addSpend(
571572
byte[] path,
572573
long position) {
573574
spends.add(new SpendDescriptionInfo(ak, nsk, note, alpha, anchor, path, position));
574-
valueBalance += note.getValue();
575+
valueBalance = StrictMathWrapper.addExact(valueBalance, note.getValue());
575576
}
576577

577578
public void addOutput(byte[] ovk, PaymentAddress to, long value, byte[] memo)
578579
throws ZksnarkException {
579580
Note note = new Note(to, value);
580581
note.setMemo(memo);
581582
receives.add(new ReceiveDescriptionInfo(ovk, note));
582-
valueBalance -= value;
583+
valueBalance = StrictMathWrapper.subtractExact(valueBalance, value);
583584
}
584585

585586
public void addOutput(byte[] ovk, DiversifierT d, byte[] pkD, long value, byte[] r, byte[] memo) {
586587
Note note = new Note(d, pkD, value, r);
587588
note.setMemo(memo);
588589
receives.add(new ReceiveDescriptionInfo(ovk, note));
589-
valueBalance -= value;
590+
valueBalance = StrictMathWrapper.subtractExact(valueBalance, value);
590591
}
591592

592593
public static class SpendDescriptionInfo {

framework/src/main/java/org/tron/core/zen/ZenTransactionBuilder.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import lombok.Setter;
1111
import lombok.extern.slf4j.Slf4j;
1212
import org.apache.commons.lang3.ArrayUtils;
13+
import org.tron.common.math.StrictMathWrapper;
1314
import org.tron.common.utils.ByteArray;
1415
import org.tron.common.zksnark.IncrementalMerkleVoucherContainer;
1516
import org.tron.common.zksnark.JLibrustzcash;
@@ -67,7 +68,7 @@ public ZenTransactionBuilder() {
6768

6869
public void addSpend(SpendDescriptionInfo spendDescriptionInfo) {
6970
spends.add(spendDescriptionInfo);
70-
valueBalance += spendDescriptionInfo.note.getValue();
71+
valueBalance = StrictMathWrapper.addExact(valueBalance, spendDescriptionInfo.note.getValue());
7172
}
7273

7374
public void addSpend(
@@ -76,7 +77,7 @@ public void addSpend(
7677
byte[] anchor,
7778
IncrementalMerkleVoucherContainer voucher) throws ZksnarkException {
7879
spends.add(new SpendDescriptionInfo(expsk, note, anchor, voucher));
79-
valueBalance += note.getValue();
80+
valueBalance = StrictMathWrapper.addExact(valueBalance, note.getValue());
8081
}
8182

8283
public void addSpend(
@@ -86,7 +87,7 @@ public void addSpend(
8687
byte[] anchor,
8788
IncrementalMerkleVoucherContainer voucher) {
8889
spends.add(new SpendDescriptionInfo(expsk, note, alpha, anchor, voucher));
89-
valueBalance += note.getValue();
90+
valueBalance = StrictMathWrapper.addExact(valueBalance, note.getValue());
9091
}
9192

9293
public void addSpend(
@@ -98,22 +99,22 @@ public void addSpend(
9899
byte[] anchor,
99100
IncrementalMerkleVoucherContainer voucher) {
100101
spends.add(new SpendDescriptionInfo(ak, nsk, ovk, note, alpha, anchor, voucher));
101-
valueBalance += note.getValue();
102+
valueBalance = StrictMathWrapper.addExact(valueBalance, note.getValue());
102103
}
103104

104105
public void addOutput(byte[] ovk, PaymentAddress to, long value, byte[] memo)
105106
throws ZksnarkException {
106107
Note note = new Note(to, value);
107108
note.setMemo(memo);
108109
receives.add(new ReceiveDescriptionInfo(ovk, note));
109-
valueBalance -= value;
110+
valueBalance = StrictMathWrapper.subtractExact(valueBalance, value);
110111
}
111112

112113
public void addOutput(byte[] ovk, DiversifierT d, byte[] pkD, long value, byte[] r, byte[] memo) {
113114
Note note = new Note(d, pkD, value, r);
114115
note.setMemo(memo);
115116
receives.add(new ReceiveDescriptionInfo(ovk, note));
116-
valueBalance -= value;
117+
valueBalance = StrictMathWrapper.subtractExact(valueBalance, value);
117118
}
118119

119120
public void setTransparentInput(byte[] address, long value) {

sprout-verifying.key

-1.42 KB
Binary file not shown.

0 commit comments

Comments
 (0)