lnd-client-0.1.0.0: src/LndClient/Data/HtlcEvent.hs
module LndClient.Data.HtlcEvent
( HtlcEvent (..),
)
where
import LndClient.Import
import qualified Proto.RouterGrpc as LnGRPC
import qualified Proto.RouterGrpc_Fields as LnGRPC
data HtlcEvent
= HtlcEvent
{ incomingChannelId :: Word64,
outgoingChannelId :: Word64,
incomingHtlcId :: Word64,
outgoingHtlcId :: Word64,
timestampNs :: Word64,
eventType :: EventType
}
deriving (Eq)
data EventType
= UNKNOWN
| SEND
| RECEIVE
| FORWARD
deriving (Eq)
instance FromGrpc HtlcEvent LnGRPC.HtlcEvent where
fromGrpc x =
HtlcEvent
<$> fromGrpc (x ^. LnGRPC.incomingChannelId)
<*> fromGrpc (x ^. LnGRPC.outgoingChannelId)
<*> fromGrpc (x ^. LnGRPC.incomingHtlcId)
<*> fromGrpc (x ^. LnGRPC.outgoingHtlcId)
<*> fromGrpc (x ^. LnGRPC.timestampNs)
<*> fromGrpc (x ^. LnGRPC.eventType)
instance FromGrpc EventType LnGRPC.HtlcEvent'EventType where
fromGrpc x =
case x of
LnGRPC.HtlcEvent'UNKNOWN -> Right UNKNOWN
LnGRPC.HtlcEvent'SEND -> Right SEND
LnGRPC.HtlcEvent'RECEIVE -> Right RECEIVE
LnGRPC.HtlcEvent'FORWARD -> Right FORWARD
LnGRPC.HtlcEvent'EventType'Unrecognized v -> Left $ FromGrpcError ("Cannot parse EventType, value:" <> show v)