Skip to content

Commit e77b3d5

Browse files
Merge pull request #4768 from tronprotocol/feature/optimize_proposal_check
func(proposal): optimize proposal check
2 parents 1e952f3 + b9b39b7 commit e77b3d5

5 files changed

Lines changed: 14 additions & 24 deletions

File tree

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

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.tron.core.actuator;
22

3+
import static org.tron.core.actuator.ActuatorConstant.NOT_EXIST_STR;
4+
35
import com.google.protobuf.ByteString;
46
import com.google.protobuf.InvalidProtocolBufferException;
57
import java.util.Arrays;
@@ -16,13 +18,10 @@
1618
import org.tron.core.store.AbiStore;
1719
import org.tron.core.store.AccountStore;
1820
import org.tron.core.store.ContractStore;
19-
import org.tron.core.vm.config.VMConfig;
2021
import org.tron.protos.Protocol.Transaction.Contract.ContractType;
2122
import org.tron.protos.Protocol.Transaction.Result.code;
22-
import org.tron.protos.contract.SmartContractOuterClass.SmartContract.ABI;
2323
import org.tron.protos.contract.SmartContractOuterClass.ClearABIContract;
24-
25-
import static org.tron.core.actuator.ActuatorConstant.NOT_EXIST_STR;
24+
import org.tron.protos.contract.SmartContractOuterClass.SmartContract.ABI;
2625

2726
@Slf4j(topic = "actuator")
2827
public class ClearABIContractActuator extends AbstractActuator {
@@ -57,17 +56,16 @@ public boolean execute(Object result) throws ContractExeException {
5756

5857
@Override
5958
public boolean validate() throws ContractValidateException {
60-
if (!VMConfig.allowTvmConstantinople()) {
61-
throw new ContractValidateException(
62-
"contract type error,unexpected type [ClearABIContract]");
63-
}
64-
6559
if (this.any == null) {
6660
throw new ContractValidateException(ActuatorConstant.CONTRACT_NOT_EXIST);
6761
}
6862
if (chainBaseManager == null) {
6963
throw new ContractValidateException("No account store or contract store!");
7064
}
65+
if (chainBaseManager.getDynamicPropertiesStore().getAllowTvmConstantinople() == 0) {
66+
throw new ContractValidateException(
67+
"contract type error,unexpected type [ClearABIContract]");
68+
}
7169
AccountStore accountStore = chainBaseManager.getAccountStore();
7270
ContractStore contractStore = chainBaseManager.getContractStore();
7371
if (!this.any.is(ClearABIContract.class)) {

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
import java.util.Objects;
77
import lombok.extern.slf4j.Slf4j;
88
import org.tron.common.utils.DecodeUtil;
9-
import org.tron.common.utils.StorageUtils;
109
import org.tron.common.utils.StringUtil;
1110
import org.tron.core.capsule.AccountCapsule;
1211
import org.tron.core.capsule.ContractCapsule;
12+
import org.tron.core.capsule.ReceiptCapsule;
1313
import org.tron.core.capsule.TransactionResultCapsule;
1414
import org.tron.core.exception.ContractExeException;
1515
import org.tron.core.exception.ContractValidateException;
@@ -58,16 +58,16 @@ public boolean execute(Object object) throws ContractExeException {
5858

5959
@Override
6060
public boolean validate() throws ContractValidateException {
61-
if (!StorageUtils.getEnergyLimitHardFork()) {
62-
throw new ContractValidateException(
63-
"contract type error, unexpected type [UpdateEnergyLimitContract]");
64-
}
6561
if (this.any == null) {
6662
throw new ContractValidateException(ActuatorConstant.CONTRACT_NOT_EXIST);
6763
}
6864
if (chainBaseManager == null) {
6965
throw new ContractValidateException(ActuatorConstant.STORE_NOT_EXIST);
7066
}
67+
if (!ReceiptCapsule.checkForEnergyLimit(chainBaseManager.getDynamicPropertiesStore())) {
68+
throw new ContractValidateException(
69+
"contract type error, unexpected type [UpdateEnergyLimitContract]");
70+
}
7171
AccountStore accountStore = chainBaseManager.getAccountStore();
7272
ContractStore contractStore = chainBaseManager.getContractStore();
7373
if (!this.any.is(UpdateEnergyLimitContract.class)) {

framework/src/main/java/org/tron/core/db/Manager.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,6 @@
8585
import org.tron.core.capsule.BlockCapsule;
8686
import org.tron.core.capsule.BlockCapsule.BlockId;
8787
import org.tron.core.capsule.BytesCapsule;
88-
import org.tron.core.capsule.ReceiptCapsule;
8988
import org.tron.core.capsule.TransactionCapsule;
9089
import org.tron.core.capsule.TransactionInfoCapsule;
9190
import org.tron.core.capsule.TransactionRetCapsule;
@@ -155,7 +154,6 @@
155154
import org.tron.core.store.WitnessScheduleStore;
156155
import org.tron.core.store.WitnessStore;
157156
import org.tron.core.utils.TransactionRegister;
158-
import org.tron.core.vm.config.VMConfig;
159157
import org.tron.protos.Protocol.AccountType;
160158
import org.tron.protos.Protocol.Permission;
161159
import org.tron.protos.Protocol.Transaction;
@@ -537,9 +535,6 @@ public void init() {
537535
//initActuatorCreator
538536
ActuatorCreator.init();
539537
TransactionRegister.registerActuator();
540-
//initEnergyLimitHardFork
541-
VMConfig.initVmHardFork(ReceiptCapsule.checkForEnergyLimit(
542-
chainBaseManager.getDynamicPropertiesStore()));
543538

544539
long exitHeight = CommonParameter.getInstance().getShutdownBlockHeight();
545540
long exitCount = CommonParameter.getInstance().getShutdownBlockCount();

framework/src/test/java/org/tron/core/actuator/ClearABIContractActuatorTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import org.tron.core.db.Manager;
2727
import org.tron.core.exception.ContractExeException;
2828
import org.tron.core.exception.ContractValidateException;
29-
import org.tron.core.vm.config.VMConfig;
3029
import org.tron.protos.Protocol;
3130
import org.tron.protos.contract.AssetIssueContractOuterClass;
3231
import org.tron.protos.contract.SmartContractOuterClass.ClearABIContract;
@@ -68,8 +67,8 @@ public class ClearABIContractActuatorTest {
6867
*/
6968
@BeforeClass
7069
public static void init() {
71-
VMConfig.initAllowTvmConstantinople(1);
7270
dbManager = context.getBean(Manager.class);
71+
dbManager.getDynamicPropertiesStore().saveAllowTvmConstantinople(1);
7372
}
7473

7574
/**

framework/src/test/java/org/tron/core/actuator/UpdateEnergyLimitContractActuatorTest.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import org.tron.core.exception.ContractExeException;
3131
import org.tron.core.exception.ContractValidateException;
3232
import org.tron.core.exception.TronException;
33-
import org.tron.core.vm.config.VMConfig;
3433
import org.tron.protos.Protocol;
3534
import org.tron.protos.contract.AssetIssueContractOuterClass;
3635
import org.tron.protos.contract.SmartContractOuterClass.SmartContract;
@@ -78,7 +77,7 @@ public static void init() {
7877
Arrays.fill(stats, (byte) 1);
7978
dbManager.getDynamicPropertiesStore()
8079
.statsByVersion(ForkBlockVersionConsts.ENERGY_LIMIT, stats);
81-
VMConfig.initVmHardFork(true);
80+
CommonParameter.getInstance().setBlockNumForEnergyLimit(0);
8281
}
8382

8483
/**
@@ -93,7 +92,6 @@ public static void destroy() {
9392
} else {
9493
logger.info("Release resources failure.");
9594
}
96-
CommonParameter.setENERGY_LIMIT_HARD_FORK(false);
9795
}
9896

9997
/**

0 commit comments

Comments
 (0)