lnd-client-0.1.0.0: src/LndClient/Data/ForceClosedChannel.hs
module LndClient.Data.ForceClosedChannel
( ForceClosedChannel (..),
)
where
import LndClient.Data.PendingChannel
import LndClient.Import
import qualified Proto.LndGrpc as LnGRPC
import qualified Proto.LndGrpc_Fields as LnGRPC
data ForceClosedChannel
= ForceClosedChannel
{ channel :: PendingChannel,
closingTxid :: TxId 'Closing,
limboBalance :: MSat,
maturityHeight :: Word32,
blocksTilMaturity :: Int32,
recoveredBalance :: MSat
}
deriving (Eq, Show)
instance
FromGrpc
ForceClosedChannel
LnGRPC.PendingChannelsResponse'ForceClosedChannel
where
fromGrpc x =
ForceClosedChannel
<$> ( case pendingChannel of
Nothing ->
Left $ FromGrpcError "PendingChannel is required"
Just this ->
fromGrpc this
)
<*> fromGrpc (x ^. LnGRPC.closingTxid)
<*> ( toMSat
<$> fromGrpc
(x ^. LnGRPC.limboBalance)
)
<*> fromGrpc
(x ^. LnGRPC.maturityHeight)
<*> fromGrpc
(x ^. LnGRPC.blocksTilMaturity)
<*> ( toMSat
<$> fromGrpc
(x ^. LnGRPC.recoveredBalance)
)
where
pendingChannel =
x ^. LnGRPC.maybe'channel