module Cardano.Api.Anchor
  ( AnchorUrl (..)
  , AnchorDataHash (..)
  )
where

import qualified Cardano.Ledger.BaseTypes as L
import qualified Cardano.Ledger.Crypto as Crypto
import qualified Cardano.Ledger.SafeHash as L

-- | The URL to build the anchor to pass to DRep registration certificate
newtype AnchorUrl = AnchorUrl
  { AnchorUrl -> Url
unAnchorUrl :: L.Url
  }
  deriving (AnchorUrl -> AnchorUrl -> Bool
(AnchorUrl -> AnchorUrl -> Bool)
-> (AnchorUrl -> AnchorUrl -> Bool) -> Eq AnchorUrl
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AnchorUrl -> AnchorUrl -> Bool
== :: AnchorUrl -> AnchorUrl -> Bool
$c/= :: AnchorUrl -> AnchorUrl -> Bool
/= :: AnchorUrl -> AnchorUrl -> Bool
Eq, Int -> AnchorUrl -> ShowS
[AnchorUrl] -> ShowS
AnchorUrl -> String
(Int -> AnchorUrl -> ShowS)
-> (AnchorUrl -> String)
-> ([AnchorUrl] -> ShowS)
-> Show AnchorUrl
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AnchorUrl -> ShowS
showsPrec :: Int -> AnchorUrl -> ShowS
$cshow :: AnchorUrl -> String
show :: AnchorUrl -> String
$cshowList :: [AnchorUrl] -> ShowS
showList :: [AnchorUrl] -> ShowS
Show)

-- | The hash to build the anchor to pass to DRep registration certificate
newtype AnchorDataHash = AnchorDataHash
  { AnchorDataHash -> SafeHash StandardCrypto AnchorData
unAnchorDataHash :: L.SafeHash Crypto.StandardCrypto L.AnchorData
  }
  deriving (AnchorDataHash -> AnchorDataHash -> Bool
(AnchorDataHash -> AnchorDataHash -> Bool)
-> (AnchorDataHash -> AnchorDataHash -> Bool) -> Eq AnchorDataHash
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AnchorDataHash -> AnchorDataHash -> Bool
== :: AnchorDataHash -> AnchorDataHash -> Bool
$c/= :: AnchorDataHash -> AnchorDataHash -> Bool
/= :: AnchorDataHash -> AnchorDataHash -> Bool
Eq, Int -> AnchorDataHash -> ShowS
[AnchorDataHash] -> ShowS
AnchorDataHash -> String
(Int -> AnchorDataHash -> ShowS)
-> (AnchorDataHash -> String)
-> ([AnchorDataHash] -> ShowS)
-> Show AnchorDataHash
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AnchorDataHash -> ShowS
showsPrec :: Int -> AnchorDataHash -> ShowS
$cshow :: AnchorDataHash -> String
show :: AnchorDataHash -> String
$cshowList :: [AnchorDataHash] -> ShowS
showList :: [AnchorDataHash] -> ShowS
Show)