Skip to content

Commit c4a1e8e

Browse files
committed
Revert "refactor: remove same code"
This reverts commit 1da0189.
1 parent 644b27f commit c4a1e8e

File tree

2 files changed

+56
-1
lines changed

2 files changed

+56
-1
lines changed

src/main/java/org/tron/core/capsule/TransactionCapsule.java

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -860,6 +860,61 @@ public String toString() {
860860
return toStringBuff.toString();
861861
}
862862

863+
public void setResult(Runtime runtime) {
864+
RuntimeException exception = runtime.getResult().getException();
865+
if (Objects.isNull(exception) && StringUtils
866+
.isEmpty(runtime.getRuntimeError()) && !runtime.getResult().isRevert()) {
867+
this.setResultCode(contractResult.SUCCESS);
868+
return;
869+
}
870+
if (runtime.getResult().isRevert()) {
871+
this.setResultCode(contractResult.REVERT);
872+
return;
873+
}
874+
if (exception instanceof IllegalOperationException) {
875+
this.setResultCode(contractResult.ILLEGAL_OPERATION);
876+
return;
877+
}
878+
if (exception instanceof OutOfEnergyException) {
879+
this.setResultCode(contractResult.OUT_OF_ENERGY);
880+
return;
881+
}
882+
if (exception instanceof BadJumpDestinationException) {
883+
this.setResultCode(contractResult.BAD_JUMP_DESTINATION);
884+
return;
885+
}
886+
if (exception instanceof OutOfTimeException) {
887+
this.setResultCode(contractResult.OUT_OF_TIME);
888+
return;
889+
}
890+
if (exception instanceof OutOfMemoryException) {
891+
this.setResultCode(contractResult.OUT_OF_MEMORY);
892+
return;
893+
}
894+
if (exception instanceof PrecompiledContractException) {
895+
this.setResultCode(contractResult.PRECOMPILED_CONTRACT);
896+
return;
897+
}
898+
if (exception instanceof StackTooSmallException) {
899+
this.setResultCode(contractResult.STACK_TOO_SMALL);
900+
return;
901+
}
902+
if (exception instanceof StackTooLargeException) {
903+
this.setResultCode(contractResult.STACK_TOO_LARGE);
904+
return;
905+
}
906+
if (exception instanceof JVMStackOverFlowException) {
907+
this.setResultCode(contractResult.JVM_STACK_OVER_FLOW);
908+
return;
909+
}
910+
if (exception instanceof Program.TransferException) {
911+
this.setResultCode(contractResult.TRANSFER_FAILED);
912+
return;
913+
}
914+
this.setResultCode(contractResult.UNKNOWN);
915+
return;
916+
}
917+
863918
public void setResultCode(contractResult code) {
864919
Result ret = Result.newBuilder().setContractRet(code).build();
865920
if (this.transaction.getRetCount() > 0) {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1246,7 +1246,7 @@ public boolean processTransaction(final TransactionCapsule trxCap, BlockCapsule
12461246

12471247
trace.finalization();
12481248
if (Objects.nonNull(blockCap) && getDynamicPropertiesStore().supportVM()) {
1249-
trxCap.setResultCode(trace.getReceipt().getResult());
1249+
trxCap.setResult(trace.getRuntime());
12501250
}
12511251
transactionStore.put(trxCap.getTransactionId().getBytes(), trxCap);
12521252

0 commit comments

Comments
 (0)