packages feed

bitcoin-payment-channel-1.0.0.0: src/Bitcoin/Orphans.hs

module Bitcoin.Orphans where

import qualified Network.Haskoin.Transaction    as HT
import qualified Network.Haskoin.Crypto         as HC
import qualified Network.Haskoin.Script         as HS
import qualified Data.Ord                       as Ord



-- | SigSingle first, then SigNone, then SigAll
instance Ord.Ord HS.SigHash where
    compare s1 s2 =
            case (s1,s2) of
                (HS.SigSingle  _,               _) -> Ord.LT
                (HS.SigNone    _, HS.SigSingle  _) -> Ord.GT
                (HS.SigNone    _, HS.SigNone    _) -> Ord.EQ
                (HS.SigNone    _, HS.SigAll     _) -> Ord.LT
                (HS.SigAll     _,               _) -> Ord.GT
                (HS.SigUnknown{},               _) -> Ord.GT
                (              _, HS.SigUnknown{}) -> Ord.GT