{-# OPTIONS_GHC -Wno-orphans #-}
module Plutarch.LedgerApi.V1.Address (
PAddress (..),
) where
import GHC.Generics (Generic)
import Generics.SOP qualified as SOP
import Plutarch.LedgerApi.Utils (PMaybeData)
import Plutarch.LedgerApi.V1.Credential (PCredential, PStakingCredential)
import Plutarch.Prelude
import PlutusLedgerApi.V1 qualified as Plutus
data PAddress (s :: S) = PAddress
{ forall (s :: S). PAddress s -> Term s PCredential
paddress'credential :: Term s PCredential
, forall (s :: S).
PAddress s -> Term s (PMaybeData PStakingCredential)
paddress'stakingCredential :: Term s (PMaybeData PStakingCredential)
}
deriving stock
(
(forall x. PAddress s -> Rep (PAddress s) x)
-> (forall x. Rep (PAddress s) x -> PAddress s)
-> Generic (PAddress s)
forall x. Rep (PAddress s) x -> PAddress s
forall x. PAddress s -> Rep (PAddress s) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (s :: S) x. Rep (PAddress s) x -> PAddress s
forall (s :: S) x. PAddress s -> Rep (PAddress s) x
$cfrom :: forall (s :: S) x. PAddress s -> Rep (PAddress s) x
from :: forall x. PAddress s -> Rep (PAddress s) x
$cto :: forall (s :: S) x. Rep (PAddress s) x -> PAddress s
to :: forall x. Rep (PAddress s) x -> PAddress s
Generic
)
deriving anyclass
(
All SListI (Code (PAddress s))
All SListI (Code (PAddress s)) =>
(PAddress s -> Rep (PAddress s))
-> (Rep (PAddress s) -> PAddress s) -> Generic (PAddress s)
Rep (PAddress s) -> PAddress s
PAddress s -> Rep (PAddress s)
forall a.
All SListI (Code a) =>
(a -> Rep a) -> (Rep a -> a) -> Generic a
forall (s :: S). All SListI (Code (PAddress s))
forall (s :: S). Rep (PAddress s) -> PAddress s
forall (s :: S). PAddress s -> Rep (PAddress s)
$cfrom :: forall (s :: S). PAddress s -> Rep (PAddress s)
from :: PAddress s -> Rep (PAddress s)
$cto :: forall (s :: S). Rep (PAddress s) -> PAddress s
to :: Rep (PAddress s) -> PAddress s
SOP.Generic
,
(forall (s :: S). Term s (PAsData PAddress) -> Term s PAddress)
-> (forall (s :: S). Term s PAddress -> Term s PData)
-> PIsData PAddress
forall (s :: S). Term s (PAsData PAddress) -> Term s PAddress
forall (s :: S). Term s PAddress -> Term s PData
forall (a :: S -> Type).
(forall (s :: S). Term s (PAsData a) -> Term s a)
-> (forall (s :: S). Term s a -> Term s PData) -> PIsData a
$cpfromDataImpl :: forall (s :: S). Term s (PAsData PAddress) -> Term s PAddress
pfromDataImpl :: forall (s :: S). Term s (PAsData PAddress) -> Term s PAddress
$cpdataImpl :: forall (s :: S). Term s PAddress -> Term s PData
pdataImpl :: forall (s :: S). Term s PAddress -> Term s PData
PIsData
,
(forall (s :: S).
Term s PAddress -> Term s PAddress -> Term s PBool)
-> PEq PAddress
forall (s :: S). Term s PAddress -> Term s PAddress -> Term s PBool
forall (t :: S -> Type).
(forall (s :: S). Term s t -> Term s t -> Term s PBool) -> PEq t
$c#== :: forall (s :: S). Term s PAddress -> Term s PAddress -> Term s PBool
#== :: forall (s :: S). Term s PAddress -> Term s PAddress -> Term s PBool
PEq
,
(forall (s :: S). Bool -> Term s PAddress -> Term s PString)
-> PShow PAddress
forall (s :: S). Bool -> Term s PAddress -> Term s PString
forall (t :: S -> Type).
(forall (s :: S). Bool -> Term s t -> Term s PString) -> PShow t
$cpshow' :: forall (s :: S). Bool -> Term s PAddress -> Term s PString
pshow' :: forall (s :: S). Bool -> Term s PAddress -> Term s PString
PShow
)
deriving
(
(forall (s :: S). PAddress s -> Term s (PInner PAddress))
-> (forall (s :: S) (b :: S -> Type).
Term s (PInner PAddress) -> (PAddress s -> Term s b) -> Term s b)
-> PlutusType PAddress
forall (s :: S). PAddress s -> Term s (PInner PAddress)
forall (s :: S) (b :: S -> Type).
Term s (PInner PAddress) -> (PAddress s -> Term s b) -> Term s b
forall (a :: S -> Type).
(forall (s :: S). a s -> Term s (PInner a))
-> (forall (s :: S) (b :: S -> Type).
Term s (PInner a) -> (a s -> Term s b) -> Term s b)
-> PlutusType a
$cpcon' :: forall (s :: S). PAddress s -> Term s (PInner PAddress)
pcon' :: forall (s :: S). PAddress s -> Term s (PInner PAddress)
$cpmatch' :: forall (s :: S) (b :: S -> Type).
Term s (PInner PAddress) -> (PAddress s -> Term s b) -> Term s b
pmatch' :: forall (s :: S) (b :: S -> Type).
Term s (PInner PAddress) -> (PAddress s -> Term s b) -> Term s b
PlutusType
)
via (DeriveAsDataStruct PAddress)
deriving via
DeriveDataPLiftable PAddress Plutus.Address
instance
PLiftable PAddress