bitcoin-payment-channel-1.0.0.0: src/PaymentChannel/Internal/Class/Value.hs
{-# LANGUAGE FlexibleInstances #-}
module PaymentChannel.Internal.Class.Value where
import PaymentChannel.Internal.Payment.Types
import PaymentChannel.Internal.Payment
import PaymentChannel.Internal.Receiver.Types
import Bitcoin.Types
class HasValue a where
valueOf :: a -> BtcAmount
instance HasValue SignedPayment where
valueOf SigSinglePair{..} =
btcInValue singleInput - nonDusty (btcAmount singleOutput)
instance HasValue (PayChanState BtcSig) where
valueOf = valueOf . pcsPayment
instance HasValue a => HasValue [a] where
valueOf = sum . map valueOf