11/*
2- * Copyright 2020-2023 IEXEC BLOCKCHAIN TECH
2+ * Copyright 2020-2024 IEXEC BLOCKCHAIN TECH
33 *
44 * Licensed under the Apache License, Version 2.0 (the "License");
55 * you may not use this file except in compliance with the License.
3030import org .web3j .protocol .core .methods .response .TransactionReceipt ;
3131
3232import java .math .BigInteger ;
33+ import java .time .Instant ;
3334import java .util .Date ;
3435import java .util .List ;
3536import java .util .Optional ;
3839import java .util .concurrent .Executors ;
3940import java .util .concurrent .ThreadPoolExecutor ;
4041
41- import static com .iexec .common .utils .DateTimeUtils .now ;
4242import static com .iexec .commons .poco .chain .ChainContributionStatus .CONTRIBUTED ;
4343import static com .iexec .commons .poco .chain .ChainContributionStatus .REVEALED ;
4444import static com .iexec .commons .poco .contract .generated .IexecHubContract .*;
@@ -160,18 +160,17 @@ public Date getChainDealFinalDeadline(ChainDeal chainDeal) {
160160 }
161161
162162 public boolean canFinalize (String chainTaskId ) {
163- Optional < ChainTask > optional = getChainTask (chainTaskId );
164- if (optional . isEmpty () ) {
163+ final ChainTask chainTask = getChainTask (chainTaskId ). orElse ( null );
164+ if (chainTask == null ) {
165165 return false ;
166166 }
167- ChainTask chainTask = optional .get ();
168167
169- boolean isChainTaskStatusRevealing = chainTask .getStatus ().equals (ChainTaskStatus .REVEALING );
170- boolean isFinalDeadlineInFuture = now () < chainTask .getFinalDeadline ();
171- boolean hasEnoughRevealors = (chainTask .getRevealCounter () == chainTask .getWinnerCounter ())
172- || (chainTask .getRevealCounter () > 0 && chainTask .getRevealDeadline () <= now ());
168+ final boolean isChainTaskStatusRevealing = chainTask .getStatus () == ChainTaskStatus .REVEALING ;
169+ final boolean isFinalDeadlineInFuture = Instant .now ().toEpochMilli () < chainTask .getFinalDeadline ();
170+ final boolean hasEnoughRevealors = chainTask .getRevealCounter () == chainTask .getWinnerCounter ()
171+ || (chainTask .getRevealCounter () > 0 && chainTask .getRevealDeadline () <= Instant .now ().toEpochMilli ());
172+ final boolean ret = isChainTaskStatusRevealing && isFinalDeadlineInFuture && hasEnoughRevealors ;
173173
174- boolean ret = isChainTaskStatusRevealing && isFinalDeadlineInFuture && hasEnoughRevealors ;
175174 if (ret ) {
176175 log .info ("Finalizable onchain [chainTaskId:{}]" , chainTaskId );
177176 } else {
@@ -183,15 +182,14 @@ public boolean canFinalize(String chainTaskId) {
183182 }
184183
185184 public boolean canReopen (String chainTaskId ) {
186- Optional < ChainTask > optional = getChainTask (chainTaskId );
187- if (optional . isEmpty () ) {
185+ final ChainTask chainTask = getChainTask (chainTaskId ). orElse ( null );
186+ if (chainTask == null ) {
188187 return false ;
189188 }
190- ChainTask chainTask = optional .get ();
191189
192- boolean isChainTaskStatusRevealing = chainTask .getStatus (). equals ( ChainTaskStatus .REVEALING ) ;
193- boolean isBeforeFinalDeadline = now () < chainTask .getFinalDeadline ();
194- boolean isAfterRevealDeadline = chainTask .getRevealDeadline () <= now ();
190+ boolean isChainTaskStatusRevealing = chainTask .getStatus () == ChainTaskStatus .REVEALING ;
191+ boolean isBeforeFinalDeadline = Instant . now (). toEpochMilli () < chainTask .getFinalDeadline ();
192+ boolean isAfterRevealDeadline = chainTask .getRevealDeadline () <= Instant . now (). toEpochMilli ();
195193 boolean revealCounterEqualsZero = chainTask .getRevealCounter () == 0 ;
196194
197195 boolean check = isChainTaskStatusRevealing && isBeforeFinalDeadline && isAfterRevealDeadline
@@ -247,7 +245,9 @@ Flowable<IexecHubContract.SchedulerNoticeEventResponse> getDealEventObservable(E
247245 }
248246
249247 public boolean hasEnoughGas () {
250- return hasEnoughGas (credentialsService .getCredentials ().getAddress ());
248+ final boolean hasEnoughGas = hasEnoughGas (credentialsService .getCredentials ().getAddress ());
249+ log .debug ("Gas status [hasEnoughGas:{}]" , hasEnoughGas );
250+ return hasEnoughGas ;
251251 }
252252
253253 private ChainReceipt buildChainReceipt (TransactionReceipt receipt ) {
0 commit comments