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