packages feed

lnd-client-0.1.0.1: src/LndClient/Data/FundingPsbtVerify.hs

{-# LANGUAGE FlexibleContexts #-}

module LndClient.Data.FundingPsbtVerify (FundingPsbtVerify (..)) where

import Data.ProtoLens.Message
import LndClient.Import
import qualified Proto.Lnrpc.Ln0 as L
import qualified Proto.Lnrpc.Ln0_Fields as L

data FundingPsbtVerify = FundingPsbtVerify
  { fundedPsbt :: Psbt,
    pendingChanId :: PendingChannelId,
    skipFinalize :: Bool
  }
  deriving stock (Eq, Ord, Show, Generic)

instance Out FundingPsbtVerify

instance ToGrpc FundingPsbtVerify L.FundingPsbtVerify where
  toGrpc x = msg <$> toGrpc (fundedPsbt x) <*> toGrpc (pendingChanId x) <*> pure (skipFinalize x)
    where
      msg fp pci sf =
        defMessage & L.fundedPsbt .~ fp & L.pendingChanId .~ pci & L.skipFinalize .~ sf