Skip to content

Commit 8791a2c

Browse files
Merge pull request #6210 from halibobo1205/feat/rename_use_strictMath2
reactor(actuator): rename allowStrictMath2 to disableJavaLangMath
2 parents e5af636 + 698f895 commit 8791a2c

38 files changed

+131
-139
lines changed

actuator/src/main/java/org/tron/core/actuator/AbstractActuator.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -69,46 +69,43 @@ public AbstractActuator setForkUtils(ForkController forkController) {
6969
}
7070

7171
public long addExact(long x, long y) {
72-
return Maths.addExact(x, y, chainBaseManager.getDynamicPropertiesStore().allowStrictMath2());
72+
return Maths.addExact(x, y, this.disableJavaLangMath());
7373
}
7474

7575
public long addExact(int x, int y) {
76-
return Maths.addExact(x, y, chainBaseManager.getDynamicPropertiesStore().allowStrictMath2());
76+
return Maths.addExact(x, y, this.disableJavaLangMath());
7777
}
7878

7979
public long floorDiv(long x, long y) {
80-
return Maths.floorDiv(x, y, chainBaseManager.getDynamicPropertiesStore().allowStrictMath2());
80+
return Maths.floorDiv(x, y, this.disableJavaLangMath());
8181
}
8282

8383
public long floorDiv(long x, int y) {
8484
return this.floorDiv(x, (long) y);
8585
}
8686

8787
public long multiplyExact(long x, long y) {
88-
return Maths.multiplyExact(x, y,
89-
chainBaseManager.getDynamicPropertiesStore().allowStrictMath2());
88+
return Maths.multiplyExact(x, y, this.disableJavaLangMath());
9089
}
9190

9291
public long multiplyExact(long x, int y) {
9392
return this.multiplyExact(x, (long) y);
9493
}
9594

9695
public int multiplyExact(int x, int y) {
97-
return Maths.multiplyExact(x, y,
98-
chainBaseManager.getDynamicPropertiesStore().allowStrictMath2());
96+
return Maths.multiplyExact(x, y, this.disableJavaLangMath());
9997
}
10098

10199
public long subtractExact(long x, long y) {
102-
return Maths.subtractExact(x, y,
103-
chainBaseManager.getDynamicPropertiesStore().allowStrictMath2());
100+
return Maths.subtractExact(x, y, this.disableJavaLangMath());
104101
}
105102

106103
public int min(int a, int b) {
107-
return Maths.min(a, b, chainBaseManager.getDynamicPropertiesStore().allowStrictMath2());
104+
return Maths.min(a, b, this.disableJavaLangMath());
108105
}
109106

110107
public long min(long a, long b) {
111-
return Maths.min(a, b, chainBaseManager.getDynamicPropertiesStore().allowStrictMath2());
108+
return Maths.min(a, b, this.disableJavaLangMath());
112109
}
113110

114111
public void adjustBalance(AccountStore accountStore, byte[] accountAddress, long amount)
@@ -122,7 +119,10 @@ public void adjustBalance(AccountStore accountStore, byte[] accountAddress, long
122119
*/
123120
public void adjustBalance(AccountStore accountStore, AccountCapsule account, long amount)
124121
throws BalanceInsufficientException {
125-
Commons.adjustBalance(accountStore, account, amount,
126-
chainBaseManager.getDynamicPropertiesStore().allowStrictMath2());
122+
Commons.adjustBalance(accountStore, account, amount, this.disableJavaLangMath());
123+
}
124+
125+
private boolean disableJavaLangMath() {
126+
return chainBaseManager.getDynamicPropertiesStore().disableJavaLangMath();
127127
}
128128
}

actuator/src/main/java/org/tron/core/actuator/DelegateResourceActuator.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import java.util.Arrays;
1616
import java.util.Objects;
1717
import lombok.extern.slf4j.Slf4j;
18-
import org.apache.commons.lang3.ArrayUtils;
1918
import org.tron.common.utils.DecodeUtil;
2019
import org.tron.common.utils.StringUtil;
2120
import org.tron.core.capsule.AccountCapsule;
@@ -163,7 +162,7 @@ public boolean validate() throws ContractValidateException {
163162
long netUsage = (long) (accountNetUsage * TRX_PRECISION * ((double)
164163
(dynamicStore.getTotalNetWeight()) / dynamicStore.getTotalNetLimit()));
165164
long v2NetUsage = getV2NetUsage(ownerCapsule, netUsage,
166-
dynamicStore.allowStrictMath2());
165+
dynamicStore.disableJavaLangMath());
167166
if (ownerCapsule.getFrozenV2BalanceForBandwidth() - v2NetUsage < delegateBalance) {
168167
throw new ContractValidateException(
169168
"delegateBalance must be less than or equal to available FreezeBandwidthV2 balance");
@@ -177,7 +176,7 @@ public boolean validate() throws ContractValidateException {
177176
long energyUsage = (long) (ownerCapsule.getEnergyUsage() * TRX_PRECISION * ((double)
178177
(dynamicStore.getTotalEnergyWeight()) / dynamicStore.getTotalEnergyCurrentLimit()));
179178
long v2EnergyUsage = getV2EnergyUsage(ownerCapsule, energyUsage,
180-
dynamicStore.allowStrictMath2());
179+
dynamicStore.disableJavaLangMath());
181180
if (ownerCapsule.getFrozenV2BalanceForEnergy() - v2EnergyUsage < delegateBalance) {
182181
throw new ContractValidateException(
183182
"delegateBalance must be less than or equal to available FreezeEnergyV2 balance");

actuator/src/main/java/org/tron/core/actuator/MarketSellAssetActuator.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -400,10 +400,10 @@ private void matchSingleOrder(MarketOrderCapsule takerOrderCapsule,
400400
// => takerBuyTokenQuantityCurrent_A = takerSellTokenQuantityRemain_TRX *
401401
// makerSellTokenQuantity_A/makerBuyTokenQuantity_TRX
402402

403-
boolean useStrictMath2 = dynamicStore.allowStrictMath2();
403+
boolean disableMath = dynamicStore.disableJavaLangMath();
404404
long takerBuyTokenQuantityRemain = MarketUtils
405405
.multiplyAndDivide(takerSellRemainQuantity, makerSellQuantity, makerBuyQuantity,
406-
useStrictMath2);
406+
disableMath);
407407

408408
if (takerBuyTokenQuantityRemain == 0) {
409409
// quantity too small, return sellToken to user
@@ -427,7 +427,7 @@ private void matchSingleOrder(MarketOrderCapsule takerOrderCapsule,
427427

428428
makerBuyTokenQuantityReceive = MarketUtils
429429
.multiplyAndDivide(makerSellRemainQuantity, makerBuyQuantity, makerSellQuantity,
430-
chainBaseManager.getDynamicPropertiesStore().allowStrictMath2());
430+
chainBaseManager.getDynamicPropertiesStore().disableJavaLangMath());
431431
takerBuyTokenQuantityReceive = makerOrderCapsule.getSellTokenQuantityRemain();
432432

433433
long takerSellTokenLeft =
@@ -462,7 +462,7 @@ private void matchSingleOrder(MarketOrderCapsule takerOrderCapsule,
462462
// makerSellTokenQuantity_A/makerBuyTokenQuantity_TRX
463463
makerBuyTokenQuantityReceive = MarketUtils
464464
.multiplyAndDivide(makerSellRemainQuantity, makerBuyQuantity, makerSellQuantity,
465-
chainBaseManager.getDynamicPropertiesStore().allowStrictMath2());
465+
chainBaseManager.getDynamicPropertiesStore().disableJavaLangMath());
466466

467467
MarketUtils.updateOrderState(makerOrderCapsule, State.INACTIVE, marketAccountStore);
468468
if (makerBuyTokenQuantityReceive == 0) {

actuator/src/main/java/org/tron/core/actuator/VMActuator.java

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ public void validate(Object object) throws ContractValidateException {
128128
if (isConstantCall && trx.getRawData().getFeeLimit() > 0) {
129129
maxEnergyLimit = min(maxEnergyLimit, trx.getRawData().getFeeLimit()
130130
/ context.getStoreFactory().getChainBaseManager()
131-
.getDynamicPropertiesStore().getEnergyFee(), VMConfig.allowStrictMath2());
131+
.getDynamicPropertiesStore().getEnergyFee(), VMConfig.disableJavaLangMath());
132132
}
133133
blockCap = context.getBlockCap();
134134
if ((VMConfig.allowTvmFreeze() || VMConfig.allowTvmFreezeV2())
@@ -566,9 +566,9 @@ public long getAccountEnergyLimitWithFixRatio(AccountCapsule account, long feeLi
566566
}
567567

568568
long energyFromBalance = max(account.getBalance() - callValue, 0,
569-
VMConfig.allowStrictMath2()) / sunPerEnergy;
569+
VMConfig.disableJavaLangMath()) / sunPerEnergy;
570570
long availableEnergy = addExact(leftFrozenEnergy, energyFromBalance,
571-
VMConfig.allowStrictMath2());
571+
VMConfig.disableJavaLangMath());
572572

573573
long energyFromFeeLimit = feeLimit / sunPerEnergy;
574574
if (VMConfig.allowTvmFreezeV2()) {
@@ -585,12 +585,12 @@ public long getAccountEnergyLimitWithFixRatio(AccountCapsule account, long feeLi
585585
account.setEnergyUsage(
586586
energyProcessor.increase(account, ENERGY,
587587
account.getEnergyUsage(), min(leftFrozenEnergy, energyFromFeeLimit,
588-
VMConfig.allowStrictMath2()), now, now));
588+
VMConfig.disableJavaLangMath()), now, now));
589589
receipt.setCallerEnergyMergedUsage(account.getEnergyUsage());
590590
receipt.setCallerEnergyMergedWindowSize(account.getWindowSize(ENERGY));
591591
rootRepository.updateAccount(account.createDbKey(), account);
592592
}
593-
return min(availableEnergy, energyFromFeeLimit, VMConfig.allowStrictMath2());
593+
return min(availableEnergy, energyFromFeeLimit, VMConfig.disableJavaLangMath());
594594

595595
}
596596

@@ -603,7 +603,7 @@ private long getAccountEnergyLimitWithFloatRatio(AccountCapsule account, long fe
603603
}
604604
// can change the calc way
605605
long leftEnergyFromFreeze = rootRepository.getAccountLeftEnergyFromFreeze(account);
606-
boolean isStrict2 = VMConfig.allowStrictMath2();
606+
boolean isStrict2 = VMConfig.disableJavaLangMath();
607607
callValue = max(callValue, 0, isStrict2);
608608
long energyFromBalance = floorDiv(max(
609609
account.getBalance() - callValue, 0, isStrict2), sunPerEnergy, isStrict2);
@@ -627,12 +627,12 @@ private long getAccountEnergyLimitWithFloatRatio(AccountCapsule account, long fe
627627
} else {
628628
energyFromFeeLimit = addExact(
629629
leftEnergyFromFreeze, (feeLimit - leftBalanceForEnergyFreeze) / sunPerEnergy,
630-
VMConfig.allowStrictMath2());
630+
VMConfig.disableJavaLangMath());
631631
}
632632
}
633633

634634
return min(addExact(leftEnergyFromFreeze, energyFromBalance,
635-
VMConfig.allowStrictMath2()), energyFromFeeLimit, VMConfig.allowStrictMath2());
635+
VMConfig.disableJavaLangMath()), energyFromFeeLimit, VMConfig.disableJavaLangMath());
636636
}
637637

638638
public long getTotalEnergyLimit(AccountCapsule creator, AccountCapsule caller,
@@ -708,7 +708,7 @@ public long getTotalEnergyLimitWithFixRatio(AccountCapsule creator, AccountCapsu
708708
ContractCapsule contractCapsule = rootRepository
709709
.getContract(contract.getContractAddress().toByteArray());
710710
long consumeUserResourcePercent = contractCapsule.getConsumeUserResourcePercent(
711-
VMConfig.allowStrictMath2());
711+
VMConfig.disableJavaLangMath());
712712

713713
long originEnergyLimit = contractCapsule.getOriginEnergyLimit();
714714
if (originEnergyLimit < 0) {
@@ -724,7 +724,7 @@ public long getTotalEnergyLimitWithFixRatio(AccountCapsule creator, AccountCapsu
724724
}
725725
if (consumeUserResourcePercent <= 0) {
726726
creatorEnergyLimit = min(originEnergyLeft, originEnergyLimit,
727-
VMConfig.allowStrictMath2());
727+
VMConfig.disableJavaLangMath());
728728
} else {
729729
if (consumeUserResourcePercent < VMConstant.ONE_HUNDRED) {
730730
// creatorEnergyLimit =
@@ -735,8 +735,8 @@ public long getTotalEnergyLimitWithFixRatio(AccountCapsule creator, AccountCapsu
735735
BigInteger.valueOf(callerEnergyLimit)
736736
.multiply(BigInteger.valueOf(VMConstant.ONE_HUNDRED - consumeUserResourcePercent))
737737
.divide(BigInteger.valueOf(consumeUserResourcePercent)).longValueExact(),
738-
min(originEnergyLeft, originEnergyLimit, VMConfig.allowStrictMath2()),
739-
VMConfig.allowStrictMath2());
738+
min(originEnergyLeft, originEnergyLimit, VMConfig.disableJavaLangMath()),
739+
VMConfig.disableJavaLangMath());
740740
}
741741
}
742742
if (VMConfig.allowTvmFreezeV2()) {
@@ -758,7 +758,7 @@ public long getTotalEnergyLimitWithFixRatio(AccountCapsule creator, AccountCapsu
758758
rootRepository.updateAccount(creator.createDbKey(), creator);
759759
}
760760
return addExact(callerEnergyLimit, creatorEnergyLimit,
761-
VMConfig.allowStrictMath2());
761+
VMConfig.disableJavaLangMath());
762762
}
763763

764764
private long getTotalEnergyLimitWithFloatRatio(AccountCapsule creator, AccountCapsule caller,
@@ -775,16 +775,16 @@ private long getTotalEnergyLimitWithFloatRatio(AccountCapsule creator, AccountCa
775775
ContractCapsule contractCapsule = rootRepository
776776
.getContract(contract.getContractAddress().toByteArray());
777777
long consumeUserResourcePercent = contractCapsule.getConsumeUserResourcePercent(
778-
VMConfig.allowStrictMath2());
778+
VMConfig.disableJavaLangMath());
779779

780780
if (creatorEnergyLimit * consumeUserResourcePercent
781781
> (VMConstant.ONE_HUNDRED - consumeUserResourcePercent) * callerEnergyLimit) {
782782
return floorDiv(
783783
callerEnergyLimit * VMConstant.ONE_HUNDRED, consumeUserResourcePercent,
784-
VMConfig.allowStrictMath2());
784+
VMConfig.disableJavaLangMath());
785785
} else {
786786
return addExact(callerEnergyLimit, creatorEnergyLimit,
787-
VMConfig.allowStrictMath2());
787+
VMConfig.disableJavaLangMath());
788788
}
789789
}
790790

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
import org.tron.common.parameter.CommonParameter;
4141
import org.tron.common.utils.Sha256Hash;
4242
import org.tron.core.ChainBaseManager;
43-
import org.tron.core.Constant;
4443
import org.tron.core.capsule.AccountCapsule;
4544
import org.tron.core.capsule.TransactionCapsule;
4645
import org.tron.core.exception.PermissionException;
@@ -53,7 +52,6 @@
5352
import org.tron.protos.Protocol.Transaction.Result.contractResult;
5453
import org.tron.protos.contract.SmartContractOuterClass.CreateSmartContract;
5554
import org.tron.protos.contract.SmartContractOuterClass.TriggerSmartContract;
56-
import org.tron.protos.Protocol.Transaction.Contract.ContractType;
5755
import org.tron.protos.contract.BalanceContract.DelegateResourceContract;
5856

5957
@Slf4j(topic = "capsule")
@@ -271,7 +269,7 @@ public static long estimateConsumeBandWidthSize(DynamicPropertiesStore dps, long
271269
DelegateResourceContract.Builder builder2 = DelegateResourceContract.newBuilder()
272270
.setBalance(TRX_PRECISION);
273271
long builder2Size = builder2.build().getSerializedSize();
274-
long addSize = max(builderSize - builder2Size, 0L, dps.allowStrictMath2());
272+
long addSize = max(builderSize - builder2Size, 0L, dps.disableJavaLangMath());
275273

276274
return DELEGATE_COST_BASE_SIZE + addSize;
277275
}

actuator/src/main/java/org/tron/core/vm/PrecompiledContracts.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -626,7 +626,7 @@ public long getEnergyForData(byte[] data) {
626626
int expLen = parseLen(data, 1);
627627
int modLen = parseLen(data, 2);
628628

629-
boolean allowStrictMath2 = VMConfig.allowStrictMath2();
629+
boolean allowStrictMath2 = VMConfig.disableJavaLangMath();
630630

631631
byte[] expHighBytes = parseBytes(data, addSafely(ARGS_OFFSET, baseLen), min(expLen, 32,
632632
allowStrictMath2));

actuator/src/main/java/org/tron/core/vm/VMUtils.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ public static boolean validateForSmartContract(Repository deposit, byte[] ownerA
170170
"Validate InternalTransfer error, balance is not sufficient.");
171171
}
172172

173-
addExact(toAccount.getBalance(), amount, VMConfig.allowStrictMath2());
173+
addExact(toAccount.getBalance(), amount, VMConfig.disableJavaLangMath());
174174
} catch (ArithmeticException e) {
175175
logger.debug(e.getMessage(), e);
176176
throw new ContractValidateException(e.getMessage());
@@ -232,7 +232,7 @@ public static boolean validateForSmartContract(Repository deposit, byte[] ownerA
232232
if (assetBalance != null) {
233233
try {
234234
addExact(assetBalance, amount,
235-
VMConfig.allowStrictMath2()); //check if overflow
235+
VMConfig.disableJavaLangMath()); //check if overflow
236236
} catch (Exception e) {
237237
logger.debug(e.getMessage(), e);
238238
throw new ContractValidateException(e.getMessage());

actuator/src/main/java/org/tron/core/vm/config/ConfigLoader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public static void load(StoreFactory storeFactory) {
4242
VMConfig.initAllowEnergyAdjustment(ds.getAllowEnergyAdjustment());
4343
VMConfig.initAllowStrictMath(ds.getAllowStrictMath());
4444
VMConfig.initAllowTvmCancun(ds.getAllowTvmCancun());
45-
VMConfig.initAllowStrictMath2(ds.getConsensusLogicOptimization());
45+
VMConfig.initDisableJavaLangMath(ds.getConsensusLogicOptimization());
4646
}
4747
}
4848
}

actuator/src/main/java/org/tron/core/vm/nativecontract/DelegateResourceProcessor.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import com.google.protobuf.ByteString;
1111
import java.util.Arrays;
1212
import lombok.extern.slf4j.Slf4j;
13-
import org.apache.commons.lang3.ArrayUtils;
1413
import org.tron.common.utils.DecodeUtil;
1514
import org.tron.common.utils.StringUtil;
1615
import org.tron.core.ChainBaseManager;
@@ -54,7 +53,7 @@ public void validate(DelegateResourceParam param, Repository repo) throws Contra
5453
throw new ContractValidateException("delegateBalance must be greater than or equal to 1 TRX");
5554
}
5655

57-
boolean allowStrictMath2 = dynamicStore.allowStrictMath2();
56+
boolean allowStrictMath2 = dynamicStore.disableJavaLangMath();
5857
switch (param.getResourceType()) {
5958
case BANDWIDTH: {
6059
BandwidthProcessor processor = new BandwidthProcessor(ChainBaseManager.getInstance());

actuator/src/main/java/org/tron/core/vm/nativecontract/UnDelegateResourceProcessor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ public void execute(UnDelegateResourceParam param, Repository repo) {
117117
* dynamicStore.getTotalNetLimit() / repo.getTotalNetWeight());
118118
transferUsage = (long) (receiverCapsule.getNetUsage()
119119
* ((double) (unDelegateBalance) / receiverCapsule.getAllFrozenBalanceForBandwidth()));
120-
transferUsage = min(unDelegateMaxUsage, transferUsage, VMConfig.allowStrictMath2());
120+
transferUsage = min(unDelegateMaxUsage, transferUsage, VMConfig.disableJavaLangMath());
121121

122122
receiverCapsule.addAcquiredDelegatedFrozenV2BalanceForBandwidth(-unDelegateBalance);
123123
}
@@ -141,7 +141,7 @@ public void execute(UnDelegateResourceParam param, Repository repo) {
141141
* dynamicStore.getTotalEnergyCurrentLimit() / repo.getTotalEnergyWeight());
142142
transferUsage = (long) (receiverCapsule.getEnergyUsage()
143143
* ((double) (unDelegateBalance) / receiverCapsule.getAllFrozenBalanceForEnergy()));
144-
transferUsage = min(unDelegateMaxUsage, transferUsage, VMConfig.allowStrictMath2());
144+
transferUsage = min(unDelegateMaxUsage, transferUsage, VMConfig.disableJavaLangMath());
145145

146146
receiverCapsule.addAcquiredDelegatedFrozenV2BalanceForEnergy(-unDelegateBalance);
147147
}

0 commit comments

Comments
 (0)