diff --git a/actuator/src/main/java/org/tron/core/actuator/ClearABIContractActuator.java b/actuator/src/main/java/org/tron/core/actuator/ClearABIContractActuator.java index 5e0b2367dc5..7ce96d3318c 100755 --- a/actuator/src/main/java/org/tron/core/actuator/ClearABIContractActuator.java +++ b/actuator/src/main/java/org/tron/core/actuator/ClearABIContractActuator.java @@ -1,5 +1,7 @@ package org.tron.core.actuator; +import static org.tron.core.actuator.ActuatorConstant.NOT_EXIST_STR; + import com.google.protobuf.ByteString; import com.google.protobuf.InvalidProtocolBufferException; import java.util.Arrays; @@ -16,13 +18,10 @@ import org.tron.core.store.AbiStore; import org.tron.core.store.AccountStore; import org.tron.core.store.ContractStore; -import org.tron.core.vm.config.VMConfig; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.Protocol.Transaction.Result.code; -import org.tron.protos.contract.SmartContractOuterClass.SmartContract.ABI; import org.tron.protos.contract.SmartContractOuterClass.ClearABIContract; - -import static org.tron.core.actuator.ActuatorConstant.NOT_EXIST_STR; +import org.tron.protos.contract.SmartContractOuterClass.SmartContract.ABI; @Slf4j(topic = "actuator") public class ClearABIContractActuator extends AbstractActuator { @@ -57,17 +56,16 @@ public boolean execute(Object result) throws ContractExeException { @Override public boolean validate() throws ContractValidateException { - if (!VMConfig.allowTvmConstantinople()) { - throw new ContractValidateException( - "contract type error,unexpected type [ClearABIContract]"); - } - if (this.any == null) { throw new ContractValidateException(ActuatorConstant.CONTRACT_NOT_EXIST); } if (chainBaseManager == null) { throw new ContractValidateException("No account store or contract store!"); } + if (chainBaseManager.getDynamicPropertiesStore().getAllowTvmConstantinople() == 0) { + throw new ContractValidateException( + "contract type error,unexpected type [ClearABIContract]"); + } AccountStore accountStore = chainBaseManager.getAccountStore(); ContractStore contractStore = chainBaseManager.getContractStore(); if (!this.any.is(ClearABIContract.class)) { diff --git a/actuator/src/main/java/org/tron/core/actuator/UpdateEnergyLimitContractActuator.java b/actuator/src/main/java/org/tron/core/actuator/UpdateEnergyLimitContractActuator.java index 369b936a527..f6b67e02891 100755 --- a/actuator/src/main/java/org/tron/core/actuator/UpdateEnergyLimitContractActuator.java +++ b/actuator/src/main/java/org/tron/core/actuator/UpdateEnergyLimitContractActuator.java @@ -6,10 +6,10 @@ import java.util.Objects; import lombok.extern.slf4j.Slf4j; import org.tron.common.utils.DecodeUtil; -import org.tron.common.utils.StorageUtils; import org.tron.common.utils.StringUtil; import org.tron.core.capsule.AccountCapsule; import org.tron.core.capsule.ContractCapsule; +import org.tron.core.capsule.ReceiptCapsule; import org.tron.core.capsule.TransactionResultCapsule; import org.tron.core.exception.ContractExeException; import org.tron.core.exception.ContractValidateException; @@ -58,16 +58,16 @@ public boolean execute(Object object) throws ContractExeException { @Override public boolean validate() throws ContractValidateException { - if (!StorageUtils.getEnergyLimitHardFork()) { - throw new ContractValidateException( - "contract type error, unexpected type [UpdateEnergyLimitContract]"); - } if (this.any == null) { throw new ContractValidateException(ActuatorConstant.CONTRACT_NOT_EXIST); } if (chainBaseManager == null) { throw new ContractValidateException(ActuatorConstant.STORE_NOT_EXIST); } + if (!ReceiptCapsule.checkForEnergyLimit(chainBaseManager.getDynamicPropertiesStore())) { + throw new ContractValidateException( + "contract type error, unexpected type [UpdateEnergyLimitContract]"); + } AccountStore accountStore = chainBaseManager.getAccountStore(); ContractStore contractStore = chainBaseManager.getContractStore(); if (!this.any.is(UpdateEnergyLimitContract.class)) { diff --git a/framework/src/main/java/org/tron/core/db/Manager.java b/framework/src/main/java/org/tron/core/db/Manager.java index fa75deafb3f..a9d11133866 100644 --- a/framework/src/main/java/org/tron/core/db/Manager.java +++ b/framework/src/main/java/org/tron/core/db/Manager.java @@ -85,7 +85,6 @@ import org.tron.core.capsule.BlockCapsule; import org.tron.core.capsule.BlockCapsule.BlockId; import org.tron.core.capsule.BytesCapsule; -import org.tron.core.capsule.ReceiptCapsule; import org.tron.core.capsule.TransactionCapsule; import org.tron.core.capsule.TransactionInfoCapsule; import org.tron.core.capsule.TransactionRetCapsule; @@ -155,7 +154,6 @@ import org.tron.core.store.WitnessScheduleStore; import org.tron.core.store.WitnessStore; import org.tron.core.utils.TransactionRegister; -import org.tron.core.vm.config.VMConfig; import org.tron.protos.Protocol.AccountType; import org.tron.protos.Protocol.Permission; import org.tron.protos.Protocol.Transaction; @@ -537,9 +535,6 @@ public void init() { //initActuatorCreator ActuatorCreator.init(); TransactionRegister.registerActuator(); - //initEnergyLimitHardFork - VMConfig.initVmHardFork(ReceiptCapsule.checkForEnergyLimit( - chainBaseManager.getDynamicPropertiesStore())); long exitHeight = CommonParameter.getInstance().getShutdownBlockHeight(); long exitCount = CommonParameter.getInstance().getShutdownBlockCount(); diff --git a/framework/src/test/java/org/tron/core/actuator/ClearABIContractActuatorTest.java b/framework/src/test/java/org/tron/core/actuator/ClearABIContractActuatorTest.java index a5341c22c3c..de6a426f1ef 100644 --- a/framework/src/test/java/org/tron/core/actuator/ClearABIContractActuatorTest.java +++ b/framework/src/test/java/org/tron/core/actuator/ClearABIContractActuatorTest.java @@ -26,7 +26,6 @@ import org.tron.core.db.Manager; import org.tron.core.exception.ContractExeException; import org.tron.core.exception.ContractValidateException; -import org.tron.core.vm.config.VMConfig; import org.tron.protos.Protocol; import org.tron.protos.contract.AssetIssueContractOuterClass; import org.tron.protos.contract.SmartContractOuterClass.ClearABIContract; @@ -68,8 +67,8 @@ public class ClearABIContractActuatorTest { */ @BeforeClass public static void init() { - VMConfig.initAllowTvmConstantinople(1); dbManager = context.getBean(Manager.class); + dbManager.getDynamicPropertiesStore().saveAllowTvmConstantinople(1); } /** diff --git a/framework/src/test/java/org/tron/core/actuator/UpdateEnergyLimitContractActuatorTest.java b/framework/src/test/java/org/tron/core/actuator/UpdateEnergyLimitContractActuatorTest.java index 7dfcbee8824..9a662e15834 100644 --- a/framework/src/test/java/org/tron/core/actuator/UpdateEnergyLimitContractActuatorTest.java +++ b/framework/src/test/java/org/tron/core/actuator/UpdateEnergyLimitContractActuatorTest.java @@ -30,7 +30,6 @@ import org.tron.core.exception.ContractExeException; import org.tron.core.exception.ContractValidateException; import org.tron.core.exception.TronException; -import org.tron.core.vm.config.VMConfig; import org.tron.protos.Protocol; import org.tron.protos.contract.AssetIssueContractOuterClass; import org.tron.protos.contract.SmartContractOuterClass.SmartContract; @@ -78,7 +77,7 @@ public static void init() { Arrays.fill(stats, (byte) 1); dbManager.getDynamicPropertiesStore() .statsByVersion(ForkBlockVersionConsts.ENERGY_LIMIT, stats); - VMConfig.initVmHardFork(true); + CommonParameter.getInstance().setBlockNumForEnergyLimit(0); } /** @@ -93,7 +92,6 @@ public static void destroy() { } else { logger.info("Release resources failure."); } - CommonParameter.setENERGY_LIMIT_HARD_FORK(false); } /**