Skip to content

Commit

Permalink
Simpler implementation of Ordered
Browse files Browse the repository at this point in the history
By attaching an underlying `Int` specifically used for comparison.
  • Loading branch information
t-bast committed Sep 21, 2023
1 parent 166cccf commit 97eb72a
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,26 +24,29 @@ import fr.acinq.eclair.transactions.Transactions

// @formatter:off
sealed trait ConfirmationPriority extends Ordered[ConfirmationPriority] {
def underlying: Int

def getFeerate(feerates: FeeratesPerKw): FeeratePerKw = this match {
case ConfirmationPriority.Slow => feerates.slow
case ConfirmationPriority.Medium => feerates.medium
case ConfirmationPriority.Fast => feerates.fast
}

override def compare(that: ConfirmationPriority): Int = (this, that) match {
case (ConfirmationPriority.Slow, ConfirmationPriority.Slow) => 0
case (ConfirmationPriority.Slow, _) => -1
case (ConfirmationPriority.Medium, ConfirmationPriority.Slow) => 1
case (ConfirmationPriority.Medium, ConfirmationPriority.Medium) => 0
case (ConfirmationPriority.Medium, ConfirmationPriority.Fast) => -1
case (ConfirmationPriority.Fast, ConfirmationPriority.Fast) => 0
case (ConfirmationPriority.Fast, _) => 1
}
override def compare(that: ConfirmationPriority): Int = this.underlying.compare(that.underlying)
}
object ConfirmationPriority {
case object Slow extends ConfirmationPriority { override def toString = "slow" }
case object Medium extends ConfirmationPriority { override def toString = "medium" }
case object Fast extends ConfirmationPriority { override def toString = "fast" }
case object Slow extends ConfirmationPriority {
override val underlying = 1
override def toString = "slow"
}
case object Medium extends ConfirmationPriority {
override val underlying = 2
override def toString = "medium"
}
case object Fast extends ConfirmationPriority {
override val underlying = 3
override def toString = "fast"
}
}
sealed trait ConfirmationTarget
object ConfirmationTarget {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -720,7 +720,7 @@ object Helpers {

/**
* This function checks if the proposed confirmation target is more aggressive than whatever confirmation target
* we previously had. Not that absolute targets are always considered more aggressive than relative targets.
* we previously had. Note that absolute targets are always considered more aggressive than relative targets.
*/
private def shouldUpdateAnchorTxs(anchorTxs: List[ClaimAnchorOutputTx], confirmationTarget: ConfirmationTarget): Boolean = {
anchorTxs
Expand Down

0 comments on commit 97eb72a

Please sign in to comment.