{-# LANGUAGE GeneralizedNewtypeDeriving #-} module PaymentChannel.Internal.Types.MonadConf where import Bitcoin.Types import Control.Monad.Reader import Control.Monad.Trans.Reader (Reader, runReader) import PaymentChannel.Internal.Config newtype MonadConf a = MonadConf (Reader ServerSettings a) deriving (Functor, Applicative, Monad, MonadReader ServerSettings) runConfM :: ServerSettings -> MonadConf a -> a runConfM cfg (MonadConf r) = runReader r cfg instance HasConfDustLimit MonadConf where confDustLimit = asks serverConfDustLimit instance HasConfSettlePeriod MonadConf where confSettlePeriod = asks serverConfSettlePeriod