packages feed

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

{-# LANGUAGE FlexibleContexts #-}

module LndClient.Data.FundingPsbtFinalize
  (FundingPsbtFinalize (..))
where

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

data FundingPsbtFinalize = FundingPsbtFinalize
  {
    signedPsbt :: Psbt,
    pendingChanId :: PendingChannelId,
    finalRawTx :: RawTx
  } deriving stock (Eq, Ord, Show, Generic)

instance Out FundingPsbtFinalize

instance ToGrpc FundingPsbtFinalize L.FundingPsbtFinalize where
  toGrpc x = msg <$> toGrpc (signedPsbt x) <*> toGrpc (pendingChanId x) <*> toGrpc (finalRawTx x)
    where
      msg sp pci frt =
        defMessage & L.signedPsbt .~ sp & L.pendingChanId .~ pci & L.finalRawTx .~ frt