{-# LANGUAGE FlexibleContexts #-} module LndClient.Data.AddHodlInvoice ( AddHodlInvoiceRequest (..), ) where import Data.ProtoLens.Message import LndClient.Import import qualified Proto.InvoiceGrpc as LnGRPC import qualified Proto.InvoiceGrpc_Fields as LnGRPC data AddHodlInvoiceRequest = AddHodlInvoiceRequest { memo :: Maybe Text, hash :: RHash, valueMsat :: MSat, expiry :: Maybe Seconds } deriving (Eq, Show) instance ToGrpc AddHodlInvoiceRequest LnGRPC.AddHoldInvoiceRequest where toGrpc x = msg <$> toGrpc (memo x) <*> toGrpc (hash x) <*> toGrpc (valueMsat x) <*> toGrpc (expiry x) where msg gMemo gHash gValue gExp = defMessage & LnGRPC.memo .~ gMemo & LnGRPC.hash .~ gHash & LnGRPC.valueMsat .~ gValue & LnGRPC.expiry .~ gExp