From b733257739f60ee1a3398c04fd82b36c0b15bc2f Mon Sep 17 00:00:00 2001 From: operagxsasha Date: Mon, 26 Jan 2026 10:39:04 +0200 Subject: [PATCH 1/5] chore: add safety guard for negative cycle index --- .../src/main/java/org/tron/core/service/MortgageService.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/chainbase/src/main/java/org/tron/core/service/MortgageService.java b/chainbase/src/main/java/org/tron/core/service/MortgageService.java index b1fd279c2db..2ee1e3b2b92 100644 --- a/chainbase/src/main/java/org/tron/core/service/MortgageService.java +++ b/chainbase/src/main/java/org/tron/core/service/MortgageService.java @@ -214,6 +214,10 @@ private long computeReward(long beginCycle, long endCycle, AccountCapsule accoun } if (beginCycle < endCycle) { for (Pair vote : srAddresses) { + if (beginCycle == 0) { + continue; + } + byte[] srAddress = vote.getKey(); BigInteger beginVi = delegationStore.getWitnessVi(beginCycle - 1, srAddress); BigInteger endVi = delegationStore.getWitnessVi(endCycle - 1, srAddress); From c9e229948efb1a2a6b2d155c3ef0524923b49723 Mon Sep 17 00:00:00 2001 From: operagxsasha Date: Mon, 2 Mar 2026 07:35:44 +0200 Subject: [PATCH 2/5] chore: move guard to method level --- .../java/org/tron/core/service/MortgageService.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/chainbase/src/main/java/org/tron/core/service/MortgageService.java b/chainbase/src/main/java/org/tron/core/service/MortgageService.java index 2ee1e3b2b92..6737a6da9ee 100644 --- a/chainbase/src/main/java/org/tron/core/service/MortgageService.java +++ b/chainbase/src/main/java/org/tron/core/service/MortgageService.java @@ -213,10 +213,12 @@ private long computeReward(long beginCycle, long endCycle, AccountCapsule accoun beginCycle = oldEndCycle; } if (beginCycle < endCycle) { - for (Pair vote : srAddresses) { - if (beginCycle == 0) { - continue; - } + + if (beginCycle <= 0) { + return; + } + + for (Pair vote : srAddresses) { byte[] srAddress = vote.getKey(); BigInteger beginVi = delegationStore.getWitnessVi(beginCycle - 1, srAddress); From 3e334c7fd8ca4e350e3bf0bd386297b341259123 Mon Sep 17 00:00:00 2001 From: operagxsasha Date: Mon, 2 Mar 2026 07:52:41 +0200 Subject: [PATCH 3/5] chore: fix return type for beginCycle guard --- .../src/main/java/org/tron/core/service/MortgageService.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/chainbase/src/main/java/org/tron/core/service/MortgageService.java b/chainbase/src/main/java/org/tron/core/service/MortgageService.java index 6737a6da9ee..63817a017a5 100644 --- a/chainbase/src/main/java/org/tron/core/service/MortgageService.java +++ b/chainbase/src/main/java/org/tron/core/service/MortgageService.java @@ -213,9 +213,8 @@ private long computeReward(long beginCycle, long endCycle, AccountCapsule accoun beginCycle = oldEndCycle; } if (beginCycle < endCycle) { - if (beginCycle <= 0) { - return; + return 0L; } for (Pair vote : srAddresses) { From dad308a0421fcabc7e355ddbde1d53e67792aaa4 Mon Sep 17 00:00:00 2001 From: operagxsasha Date: Mon, 2 Mar 2026 08:46:55 +0200 Subject: [PATCH 4/5] style: fix checkstyle LineLength in ShieldedReceiveTest --- .../test/java/org/tron/core/zksnark/ShieldedReceiveTest.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/framework/src/test/java/org/tron/core/zksnark/ShieldedReceiveTest.java b/framework/src/test/java/org/tron/core/zksnark/ShieldedReceiveTest.java index 2a7545f7a9b..78136f5e208 100755 --- a/framework/src/test/java/org/tron/core/zksnark/ShieldedReceiveTest.java +++ b/framework/src/test/java/org/tron/core/zksnark/ShieldedReceiveTest.java @@ -320,8 +320,9 @@ public void testBroadcastBeforeAllowZksnark() } /* - * generate spendproof, dataToBeSigned, outputproof example dynamically according to the params file - */ + * generate spendproof, dataToBeSigned, outputproof example + * dynamically according to the params file + */ public String[] generateSpendAndOutputParams() throws ZksnarkException, BadItemException { librustzcashInitZksnarkParams(); chainBaseManager.getDynamicPropertiesStore().saveAllowShieldedTransaction(1); From 8077531c46a61625edfdf141937f00ac00641b26 Mon Sep 17 00:00:00 2001 From: operagxsasha Date: Mon, 2 Mar 2026 10:01:36 +0200 Subject: [PATCH 5/5] chore: remove redundant beginCycle guard --- .../src/main/java/org/tron/core/service/MortgageService.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/chainbase/src/main/java/org/tron/core/service/MortgageService.java b/chainbase/src/main/java/org/tron/core/service/MortgageService.java index 63817a017a5..99414311ec5 100644 --- a/chainbase/src/main/java/org/tron/core/service/MortgageService.java +++ b/chainbase/src/main/java/org/tron/core/service/MortgageService.java @@ -213,9 +213,6 @@ private long computeReward(long beginCycle, long endCycle, AccountCapsule accoun beginCycle = oldEndCycle; } if (beginCycle < endCycle) { - if (beginCycle <= 0) { - return 0L; - } for (Pair vote : srAddresses) {