Skip to content

Commit f98ba20

Browse files
committed
[ci] Move faucet trigger to use the new round based scheduling
Signed-off-by: Nicu Reut <nicu.reut@digitalasset.com>
1 parent 286badb commit f98ba20

File tree

1 file changed

+21
-14
lines changed

1 file changed

+21
-14
lines changed

apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/automation/ReceiveFaucetCouponTrigger.scala

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,14 @@
44
package org.lfdecentralizedtrust.splice.validator.automation
55

66
import cats.data.OptionT
7+
import com.digitalasset.canton.logging.pretty.{Pretty, PrettyPrinting}
8+
import com.digitalasset.canton.time.Clock
9+
import com.digitalasset.canton.tracing.TraceContext
10+
import io.opentelemetry.api.trace.Tracer
11+
import org.apache.pekko.stream.Materializer
12+
import org.lfdecentralizedtrust.splice.automation.RoundBasedRewardTrigger.RoundBasedTask
713
import org.lfdecentralizedtrust.splice.automation.{
8-
PollingParallelTaskExecutionTrigger,
14+
RoundBasedRewardTrigger,
915
TaskOutcome,
1016
TaskSuccess,
1117
TriggerContext,
@@ -19,15 +25,12 @@ import org.lfdecentralizedtrust.splice.validator.store.ValidatorStore
1925
import org.lfdecentralizedtrust.splice.validator.util.ValidatorUtil
2026
import org.lfdecentralizedtrust.splice.wallet.UserWalletManager
2127
import org.lfdecentralizedtrust.splice.wallet.util.{TopupUtil, ValidatorTopupConfig}
22-
import com.digitalasset.canton.logging.pretty.{Pretty, PrettyPrinting}
23-
import com.digitalasset.canton.time.Clock
24-
import com.digitalasset.canton.tracing.TraceContext
25-
import io.opentelemetry.api.trace.Tracer
26-
import org.apache.pekko.stream.Materializer
2728

29+
import java.time.temporal.ChronoUnit
30+
import java.time.{Duration, Instant}
2831
import scala.concurrent.{ExecutionContext, Future}
2932
import scala.jdk.OptionConverters.*
30-
import math.Ordering.Implicits.*
33+
import scala.math.Ordering.Implicits.*
3134

3235
class ReceiveFaucetCouponTrigger(
3336
override protected val context: TriggerContext,
@@ -41,17 +44,14 @@ class ReceiveFaucetCouponTrigger(
4144
override val ec: ExecutionContext,
4245
override val tracer: Tracer,
4346
materializer: Materializer,
44-
) extends PollingParallelTaskExecutionTrigger[ReceiveFaucetCouponTrigger.Task] {
45-
46-
override def isRewardOperationTrigger = true
47+
) extends RoundBasedRewardTrigger[ReceiveFaucetCouponTrigger.Task] {
4748

4849
private val validatorParty = validatorStore.key.validatorParty
4950

50-
override protected def retrieveTasks()(implicit
51+
override protected def retrieveAvailableTasksForRound()(implicit
5152
tc: TraceContext
52-
): Future[Seq[ReceiveFaucetCouponTrigger.Task]] = {
53+
): Future[Seq[ReceiveFaucetCouponTrigger.Task]] =
5354
retrieveNextRoundToClaim().value.map(_.toList)
54-
}
5555

5656
private def retrieveNextRoundToClaim()(implicit
5757
tc: TraceContext
@@ -139,13 +139,20 @@ object ReceiveFaucetCouponTrigger {
139139
case class Task(
140140
license: AssignedContract[ValidatorLicense.ContractId, ValidatorLicense],
141141
round: ContractWithState[OpenMiningRound.ContractId, OpenMiningRound],
142-
) extends PrettyPrinting {
142+
) extends PrettyPrinting
143+
with RoundBasedTask {
143144
import org.lfdecentralizedtrust.splice.util.PrettyInstances.*
144145
override def pretty: Pretty[this.type] =
145146
prettyOfClass(
146147
param("license", _.license),
147148
param("round", _.round),
148149
)
150+
151+
override def roundDetails: (Long, Instant) =
152+
Long.unbox(round.payload.round.number) -> round.payload.opensAt
153+
154+
override def tickDuration: Duration =
155+
Duration.of(round.payload.tickDuration.microseconds, ChronoUnit.MICROS)
149156
}
150157

151158
}

0 commit comments

Comments
 (0)