lnd-client-0.1.0.1: src/LndClient/Data/ListChannels.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
module LndClient.Data.ListChannels
( ListChannelsRequest (..),
)
where
import Data.ProtoLens.Message
import LndClient.Import
import qualified Proto.Lightning as LnGRPC
import qualified Proto.Lightning_Fields as LnGRPC
data ListChannelsRequest = ListChannelsRequest
{ activeOnly :: Bool,
inactiveOnly :: Bool,
publicOnly :: Bool,
privateOnly :: Bool,
peer :: Maybe NodePubKey
}
deriving stock (Generic, Show)
instance Out ListChannelsRequest
instance ToGrpc ListChannelsRequest LnGRPC.ListChannelsRequest where
toGrpc x =
msg
<$> toGrpc (activeOnly x)
<*> toGrpc (inactiveOnly x)
<*> toGrpc (privateOnly x)
<*> toGrpc (publicOnly x)
<*> toGrpc (peer x)
where
msg gActiveOnly gInactiveOnly gPrivateOnly gPublicOnly gPeer =
defMessage
& LnGRPC.activeOnly .~ gActiveOnly
& LnGRPC.inactiveOnly .~ gInactiveOnly
& LnGRPC.privateOnly .~ gPrivateOnly
& LnGRPC.publicOnly .~ gPublicOnly
& LnGRPC.peer .~ gPeer