From c056809d5a4f8637b671ec9ace93c3e7bc36b705 Mon Sep 17 00:00:00 2001 From: ashu Date: Tue, 28 Aug 2018 12:32:30 +0800 Subject: [PATCH 1/2] fix bug --- .../java/org/tron/common/runtime/Runtime.java | 31 +------------------ src/main/java/org/tron/core/db/Manager.java | 1 - .../org/tron/core/db/TransactionTrace.java | 2 +- .../org/tron/common/runtime/TVMTestUtils.java | 2 -- .../tron/core/db/TransactionTraceTest.java | 1 - 5 files changed, 2 insertions(+), 35 deletions(-) diff --git a/src/main/java/org/tron/common/runtime/Runtime.java b/src/main/java/org/tron/common/runtime/Runtime.java index dc562711431..558ad5a1a40 100644 --- a/src/main/java/org/tron/common/runtime/Runtime.java +++ b/src/main/java/org/tron/common/runtime/Runtime.java @@ -74,7 +74,6 @@ public class Runtime { private Deposit deposit; private ProgramInvokeFactory programInvokeFactory = null; private String runtimeError; - private boolean readyToExecute = false; private EnergyProcessor energyProcessor = null; private StorageMarket storageMarket = null; @@ -199,27 +198,6 @@ public void precompiled() throws ContractValidateException, ContractExeException } } - /** - */ - public void init() { - readyToExecute = true; - // switch (trxType) { - // case TRX_PRECOMPILED_TYPE: - // readyToExecute = true; - // break; - // case TRX_CONTRACT_CREATION_TYPE: - // case TRX_CONTRACT_CALL_TYPE: - // // if (!curENERGYLimitReachedBlockENERGYLimit()) { - // // readyToExecute = true; - // // } - // readyToExecute = true; - // break; - // default: - // readyToExecute = true; - // break; - // } - } - public BigInteger getBlockCPULeftInUs() { @@ -260,10 +238,6 @@ public boolean curCPULimitReachedBlockCPULimit() { } public void execute() throws ContractValidateException, ContractExeException { - - if (!readyToExecute) { - return; - } switch (trxType) { case TRX_PRECOMPILED_TYPE: precompiled(); @@ -275,7 +249,7 @@ public void execute() throws ContractValidateException, ContractExeException { call(); break; default: - break; + throw new ContractValidateException("Unknown contract type"); } } @@ -505,9 +479,6 @@ private void call() } public void go() throws OutOfSlotTimeException { - if (!readyToExecute) { - return; - } try { if (vm != null) { diff --git a/src/main/java/org/tron/core/db/Manager.java b/src/main/java/org/tron/core/db/Manager.java index 5e1e50cdf51..720efe2b47a 100644 --- a/src/main/java/org/tron/core/db/Manager.java +++ b/src/main/java/org/tron/core/db/Manager.java @@ -1043,7 +1043,6 @@ public boolean processTransaction(final TransactionCapsule trxCap, Block block) trace.init(); trace.exec(runtime); - trace.pay(); transactionStore.put(trxCap.getTransactionId().getBytes(), trxCap); diff --git a/src/main/java/org/tron/core/db/TransactionTrace.java b/src/main/java/org/tron/core/db/TransactionTrace.java index be0c14a8b89..b34dc40863a 100644 --- a/src/main/java/org/tron/core/db/TransactionTrace.java +++ b/src/main/java/org/tron/core/db/TransactionTrace.java @@ -90,9 +90,9 @@ public void setNetBill(long netUsage, long netFee) { public void exec(Runtime runtime) throws ContractExeException, ContractValidateException, OutOfSlotTimeException { /** VM execute **/ - runtime.init(); runtime.execute(); runtime.go(); + pay(); runtime.finalization(); } diff --git a/src/test/java/org/tron/common/runtime/TVMTestUtils.java b/src/test/java/org/tron/common/runtime/TVMTestUtils.java index 42acf9ee2fd..9c1e3992a20 100644 --- a/src/test/java/org/tron/common/runtime/TVMTestUtils.java +++ b/src/test/java/org/tron/common/runtime/TVMTestUtils.java @@ -147,8 +147,6 @@ public static TVMTestResult processTransactionAndReturnTVMTestResult(Transaction //exec trace.exec(runtime); - trace.pay(); - return new TVMTestResult(runtime, trace.getReceipt(), null); } diff --git a/src/test/java/org/tron/core/db/TransactionTraceTest.java b/src/test/java/org/tron/core/db/TransactionTraceTest.java index 105a380161e..832041790a3 100644 --- a/src/test/java/org/tron/core/db/TransactionTraceTest.java +++ b/src/test/java/org/tron/core/db/TransactionTraceTest.java @@ -150,7 +150,6 @@ public void testUseFee() throws InvalidProtocolBufferException { new ProgramInvokeFactoryImpl()); try { trace.exec(runtime); - trace.pay(); Assert.assertEquals(0, trace.getReceipt().getEnergyUsage()); Assert.assertEquals(49503930, trace.getReceipt().getEnergyFee()); // Assert.assertEquals(deployStorageDelta, trace.getReceipt().getStorageDelta()); From 772800920be86bc6bac1bec2b9969e75f57a012a Mon Sep 17 00:00:00 2001 From: ashu Date: Tue, 28 Aug 2018 13:08:44 +0800 Subject: [PATCH 2/2] fix bug --- src/main/java/org/tron/core/Wallet.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/org/tron/core/Wallet.java b/src/main/java/org/tron/core/Wallet.java index f68baea5d78..a44e0901b16 100755 --- a/src/main/java/org/tron/core/Wallet.java +++ b/src/main/java/org/tron/core/Wallet.java @@ -851,7 +851,6 @@ public Transaction triggerContract(TriggerSmartContract triggerSmartContract, Runtime runtime = new Runtime(trxCap.getInstance(), headBlock, deposit, new ProgramInvokeFactoryImpl()); - runtime.init(); runtime.execute(); runtime.go(); runtime.finalization();