Skip to content

Commit

Permalink
fix: miner fees (#30)
Browse files Browse the repository at this point in the history
  • Loading branch information
sectore authored Nov 21, 2024
1 parent 573081c commit 5c5ae1a
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 19 deletions.
8 changes: 4 additions & 4 deletions src/TUI/Service/Types.hs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module TUI.Service.Types where

import Data.Aeson ((.:))
import Data.Aeson ((.:), (.:?))
import qualified Data.Aeson as A
import Data.Aeson.Types (Parser)
import Data.Foldable (toList)
Expand Down Expand Up @@ -264,7 +264,7 @@ data Block = Block
, txs :: Int
, size :: Int
, poolName :: Text
, poolFees :: Amount SATS
, poolFees :: Maybe (Amount SATS)
, reward :: Amount SATS
}
deriving (Show, Eq)
Expand All @@ -283,7 +283,7 @@ instance A.FromJSON Block where
size <- o .: "size"
txs <- o .: "tx_count"
extras <- o .: "extras"
fees <- extras .: "expectedFees"
fees <- extras .:? "expectedFees"
pool <- extras .: "pool"
name <- pool .: "name"
reward <- extras .: "reward"
Expand All @@ -294,7 +294,7 @@ instance A.FromJSON Block where
, size = size
, time = posixSecondsToUTCTime (fromIntegral timestamp)
, poolName = name
, poolFees = Amount fees
, poolFees = Amount <$> fees
, reward = Amount reward
}
)
Expand Down
47 changes: 32 additions & 15 deletions src/TUI/Widgets/Block.hs
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,8 @@ drawBlock st =
[ col1 (str "fees")
, col2 $
vBox
[ (if st ^. extraInfo then withBold else id) $ rdToStr poolFees (show . toBtc)
, if st ^. extraInfo then rdToFiatStr poolFees else emptyWidget
[ (if st ^. extraInfo then withBold else id) $ mRdToStr poolFees (show . toBtc)
, if st ^. extraInfo then mRdToFiatStr poolFees else emptyWidget
]
]
,
Expand Down Expand Up @@ -112,22 +112,39 @@ drawBlock st =
Loading ma -> maybe loadingStr (str . show' . accessor) ma
Failure _ -> withError $ str "error"
Success b -> str $ show' $ accessor b
mRdToStr :: forall a n. (Show a) => (Block -> Maybe a) -> (a -> String) -> Widget n
mRdToStr mAccessor show' =
let loadingStr = drawLoadingString4 (st ^. tick)
in case rdBlock of
NotAsked -> loadingStr
Loading ma -> maybe loadingStr (str . maybe "unknown" show' . mAccessor) ma
Failure _ -> withError $ str "error"
Success b -> str . maybe "unknown" show' $ mAccessor b
priceStr :: Amount 'SATS -> Prices -> Widget n
priceStr s ps =
case st ^. selectedFiat of
EUR -> str $ show $ satsToFiat s (pEUR ps)
USD -> str $ show $ satsToFiat s (pUSD ps)
GBP -> str $ show $ satsToFiat s (pGBP ps)
CAD -> str $ show $ satsToFiat s (pCAD ps)
CHF -> str $ show $ satsToFiat s (pCHF ps)
AUD -> str $ show $ satsToFiat s (pAUD ps)
JPY -> str $ show $ satsToFiat s (pJPY ps)

rdToFiatStr :: forall n. (Block -> Amount 'SATS) -> Widget n
rdToFiatStr accessor =
let errorStr = withError $ str "error"
priceStr :: Block -> Prices -> Widget n
priceStr b ps =
let s = accessor b
in case st ^. selectedFiat of
EUR -> str $ show $ satsToFiat s (pEUR ps)
USD -> str $ show $ satsToFiat s (pUSD ps)
GBP -> str $ show $ satsToFiat s (pGBP ps)
CAD -> str $ show $ satsToFiat s (pCAD ps)
CHF -> str $ show $ satsToFiat s (pCHF ps)
AUD -> str $ show $ satsToFiat s (pAUD ps)
JPY -> str $ show $ satsToFiat s (pJPY ps)
in case liftA2 (,) rdBlock (st ^. prices) of
Loading (Just (b, ps)) -> priceStr b ps
Success (b, ps) -> priceStr b ps
Loading (Just (b, ps)) -> priceStr (accessor b) ps
Success (b, ps) -> priceStr (accessor b) ps
Failure _ -> errorStr
_ -> drawLoadingString4 (st ^. tick)

mRdToFiatStr :: forall n. (Block -> Maybe (Amount 'SATS)) -> Widget n
mRdToFiatStr mAccessor =
let errorStr = withError $ str "error"
in case liftA2 (,) rdBlock (st ^. prices) of
Loading (Just (b, ps)) -> maybe (str "unknown") (`priceStr` ps) (mAccessor b)
Success (b, ps) -> maybe (str "unknown") (`priceStr` ps) (mAccessor b)
Failure _ -> errorStr
_ -> drawLoadingString4 (st ^. tick)

0 comments on commit 5c5ae1a

Please sign in to comment.