Skip to content

Commit

Permalink
removed globals for feerates
Browse files Browse the repository at this point in the history
  • Loading branch information
pm47 committed Aug 28, 2019
1 parent 2f42538 commit 5b5f1f1
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 20 deletions.
11 changes: 0 additions & 11 deletions eclair-core/src/main/scala/fr/acinq/eclair/Globals.scala
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,6 @@ object Globals {
*/
val blockCount = new AtomicLong(0)

/**
* This holds the current feerates, in satoshi-per-kilobytes.
* The value is read by all actors, hence it needs to be thread-safe.
*/
val feeratesPerKB = new AtomicReference[FeeratesPerKB](null)

/**
* This holds the current feerates, in satoshi-per-kw.
* The value is read by all actors, hence it needs to be thread-safe.
*/
val feeratesPerKw = new AtomicReference[FeeratesPerKw](null)
}


29 changes: 21 additions & 8 deletions eclair-core/src/main/scala/fr/acinq/eclair/Setup.scala
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import java.io.File
import java.net.InetSocketAddress
import java.sql.DriverManager
import java.util.concurrent.TimeUnit
import java.util.concurrent.atomic.AtomicReference

import akka.Done
import akka.actor.{ActorRef, ActorSystem, Props, SupervisorStrategy}
Expand Down Expand Up @@ -96,9 +97,21 @@ class Setup(datadir: File,
case None => Databases.sqliteJDBC(chaindir)
}

/**
* This holds the current feerates, in satoshi-per-kilobytes.
* The value is read by all actors, hence it needs to be thread-safe.
*/
val feeratesPerKB = new AtomicReference[FeeratesPerKB](null)

/**
* This holds the current feerates, in satoshi-per-kw.
* The value is read by all actors, hence it needs to be thread-safe.
*/
val feeratesPerKw = new AtomicReference[FeeratesPerKw](null)

val feeEstimator = new FeeEstimator {
override def getFeeratePerKb(target: Int): Long = Globals.feeratesPerKB.get().feePerBlock(target)
override def getFeeratePerKw(target: Int): Long = Globals.feeratesPerKw.get().feePerBlock(target)
override def getFeeratePerKb(target: Int): Long = feeratesPerKB.get().feePerBlock(target)
override def getFeeratePerKw(target: Int): Long = feeratesPerKw.get().feePerBlock(target)
}

val nodeParams = NodeParams.makeNodeParams(config, keyManager, initTor(), database, feeEstimator)
Expand Down Expand Up @@ -196,8 +209,8 @@ class Setup(datadir: File,
blocks_72 = config.getLong("on-chain-fees.default-feerates.72"),
blocks_144 = config.getLong("on-chain-fees.default-feerates.144")
)
Globals.feeratesPerKB.set(confDefaultFeerates)
Globals.feeratesPerKw.set(FeeratesPerKw(confDefaultFeerates))
feeratesPerKB.set(confDefaultFeerates)
feeratesPerKw.set(FeeratesPerKw(confDefaultFeerates))
confDefaultFeerates
}
minFeeratePerByte = config.getLong("min-feerate")
Expand All @@ -211,10 +224,10 @@ class Setup(datadir: File,
}
_ = system.scheduler.schedule(0 seconds, 10 minutes)(feeProvider.getFeerates.map {
case feerates: FeeratesPerKB =>
Globals.feeratesPerKB.set(feerates)
Globals.feeratesPerKw.set(FeeratesPerKw(feerates))
system.eventStream.publish(CurrentFeerates(Globals.feeratesPerKw.get))
logger.info(s"current feeratesPerKB=${Globals.feeratesPerKB.get()} feeratesPerKw=${Globals.feeratesPerKw.get()}")
feeratesPerKB.set(feerates)
feeratesPerKw.set(FeeratesPerKw(feerates))
system.eventStream.publish(CurrentFeerates(feeratesPerKw.get))
logger.info(s"current feeratesPerKB=${feeratesPerKB.get()} feeratesPerKw=${feeratesPerKw.get()}")
feeratesRetrieved.trySuccess(Done)
})
_ <- feeratesRetrieved.future
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ class OpenChannelController(val handlers: Handlers, val stage: Stage) extends Lo
@FXML def initialize() = {
fundingUnit.setItems(Constants.FX_UNITS_ARRAY_NO_MSAT)
fundingUnit.setValue(FxApp.getUnit.label)
feerateField.setText((Globals.feeratesPerKB.get().blocks_6 / 1000).toString)
//feerateField.setText((Globals.feeratesPerKB.get().blocks_6 / 1000).toString) TODO: fix this

simpleConnection.selectedProperty.addListener(new ChangeListener[Boolean] {
override def changed(observable: ObservableValue[_ <: Boolean], oldValue: Boolean, newValue: Boolean) = {
Expand Down

0 comments on commit 5b5f1f1

Please sign in to comment.