lnd-client-0.1.0.1: src/LndClient/Data/FundingStateStep.hs
{-# LANGUAGE FlexibleContexts #-}
module LndClient.Data.FundingStateStep
(
FundingStateStepRequest(..)
)
where
import Data.ProtoLens.Message
import LndClient.Import
import qualified Proto.Lnrpc.Ln0 as L
import qualified Proto.Lnrpc.Ln0_Fields as L
import LndClient.Data.FundingPsbtVerify
import LndClient.Data.FundingPsbtFinalize
import LndClient.Data.FundingShimCancel
import LndClient.Data.FundingShim
import Lens.Micro
data FundingStateStepRequest =
FundingStateStepShimCancelRequest FundingShimCancel |
FundingStateStepPsbtFinalizeRequest FundingPsbtFinalize |
FundingStateStepPsbtVerifyRequest FundingPsbtVerify |
FundingStateStepShimRegister FundingShim
deriving stock (Eq, Ord, Show, Generic)
instance Out FundingStateStepRequest
instance ToGrpc FundingStateStepRequest L.FundingTransitionMsg where
toGrpc x = msg <$> mapTrigger x
where
mapTrigger :: FundingStateStepRequest -> Either LndError L.FundingTransitionMsg'Trigger
mapTrigger (FundingStateStepShimCancelRequest t) = L.FundingTransitionMsg'ShimCancel <$> toGrpc t
mapTrigger (FundingStateStepPsbtFinalizeRequest t) = L.FundingTransitionMsg'PsbtFinalize <$> toGrpc t
mapTrigger (FundingStateStepPsbtVerifyRequest t) = L.FundingTransitionMsg'PsbtVerify <$> toGrpc t
mapTrigger (FundingStateStepShimRegister t) = L.FundingTransitionMsg'ShimRegister <$> toGrpc t
msg t = defMessage & L.maybe'trigger ?~ t