cardano-ledger-test-9.9.9.9: Testing harness, tests and benchmarks for Shelley style cardano ledgers
Safe HaskellNone
LanguageHaskell2010

Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Synopsis

Documentation

genSigningKey ∷ Gen SigningKey Source #

Turn a random bytestring into a SigningKey

genAddrPair ∷ Network → Gen (BootstrapAddress, SigningKey) Source #

Generate a pair, A Byron address, and the key that can sign it.

class (Eq (ProofType hashtype era), EncCBOR (ProofType hashtype era), ToExpr (ProofType hashtype era), NFData (ProofType hashtype era), NFData hashtype, Eq hashtype) ⇒ HasWitness hashtype era where Source #

Associated Types

type ProofType hashtype era Source #

type WitnessType hashtype era Source #

type TypeHashed hashtype era Source #

Methods

hash ∷ TypeHashed hashtype era → hashtype Source #

mkWitness ∷ ProofType hashtype era → WitnessType hashtype era Source #

getTypeHashed ∷ ProofType hashtype era → TypeHashed hashtype era Source #

prettyHash ∷ hashtype → Doc Source #

Instances

Instances details
Era era ⇒ HasWitness BootstrapAddress era Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

EraScript era ⇒ HasWitness DataHash era Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Associated Types

type ProofType DataHash era 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

type ProofType DataHash era = Data era
type WitnessType DataHash era 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

type WitnessType DataHash era = Data era
type TypeHashed DataHash era 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

type TypeHashed DataHash era = Data era
GenScript era ⇒ HasWitness ScriptHash era Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Era era ⇒ HasWitness (KeyHash 'Witness) era Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

data WitBlock t era where Source #

A WitBlock is designed to have five purposes 1) To efficiently constrain objects to be witnessed when using constraint generators the (Set hashtype) allows efficient constraints like :: (member_ t) (lit (wbHash witblock)) 2) To efficiently compute witnesses from a hashtype the (Map hashtype (ProofType hashtype era)) can be used like this case Map.lookup hash (wbMap witblock) of Just base -> mkWitness base Nothing -> error "Missing hash. perhaps generator did not constrain the hash to be witnessed?" 3) When (HasWitness hashtype era) holds, the WitBlock can be computed from only [ProofType hashtype era] using getTypeHashed. This makes Gen and CBOR instances, especially easy. We compute only with [ProofType hashtype era] and then reconstruct the rest 4) WitBlock is a Monoid, so we can combine them easily 5) We can easily make (Gen (WitBlock t era)), so we can make them for testing.

Constructors

WitBlock ∷ ∀ era t. (Era era, HasWitness t era) ⇒ Set t → Map t (ProofType t era) → WitBlock t era 

Instances

Instances details
Era era ⇒ EncCBOR (WitBlock t era) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

encCBOR ∷ WitBlock t era → Encoding Source #

NFData (WitBlock t era) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

rnf ∷ WitBlock t era → () #

(Era era, Ord t, HasWitness t era) ⇒ Monoid (WitBlock t era) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

mempty ∷ WitBlock t era #

mappend ∷ WitBlock t era → WitBlock t era → WitBlock t era #

mconcat ∷ [WitBlock t era] → WitBlock t era #

Ord t ⇒ Semigroup (WitBlock t era) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

(<>) ∷ WitBlock t era → WitBlock t era → WitBlock t era #

sconcat ∷ NonEmpty (WitBlock t era) → WitBlock t era #

stimes ∷ Integral b ⇒ b → WitBlock t era → WitBlock t era #

(Show t, ToExpr t) ⇒ Show (WitBlock t era) Source #

when we print a WitBlock, we are only interested in the hashes, not the witnesses

Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

showsPrec ∷ Int → WitBlock t era → ShowS #

show ∷ WitBlock t era → String #

showList ∷ [WitBlock t era] → ShowS #

Eq (WitBlock t era) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

(==) ∷ WitBlock t era → WitBlock t era → Bool #

(/=) ∷ WitBlock t era → WitBlock t era → Bool #

ToExpr t ⇒ ToExpr (WitBlock t era) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

toExpr ∷ WitBlock t era → Expr Source #

listToExpr ∷ [WitBlock t era] → Expr Source #

wbHash ∷ WitBlock t era → Set t Source #

wbMap ∷ WitBlock t era → Map t (ProofType t era) Source #

data WitUniv era Source #

Instances

Instances details
(HasWitness ScriptHash era, GenScript era) ⇒ Arbitrary (WitUniv era) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

arbitrary ∷ Gen (WitUniv era) Source #

shrink ∷ WitUniv era → [WitUniv era] Source #

Era era ⇒ EncCBOR (WitUniv era) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

encCBOR ∷ WitUniv era → Encoding Source #

NFData (WitUniv era) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

rnf ∷ WitUniv era → () #

(EraScript era, HasWitness ScriptHash era) ⇒ Monoid (WitUniv era) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

mempty ∷ WitUniv era #

mappend ∷ WitUniv era → WitUniv era → WitUniv era #

mconcat ∷ [WitUniv era] → WitUniv era #

Era era ⇒ Semigroup (WitUniv era) Source #

Easy to extend Monoid from WitBlock to WitUniv

Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

(<>) ∷ WitUniv era → WitUniv era → WitUniv era #

sconcat ∷ NonEmpty (WitUniv era) → WitUniv era #

stimes ∷ Integral b ⇒ b → WitUniv era → WitUniv era #

Generic (WitUniv era) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Associated Types

type Rep (WitUniv era) 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

type Rep (WitUniv era) = D1 ('MetaData "WitUniv" "Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse" "cardano-ledger-test-9.9.9.9-inplace" 'False) (C1 ('MetaCons "WitUniv" 'PrefixI 'True) ((S1 ('MetaSel ('Just "wvSize") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just "wvVKey") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (WitBlock (KeyHash 'Witness) era))) :*: (S1 ('MetaSel ('Just "wvBoot") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (WitBlock BootstrapAddress era)) :*: (S1 ('MetaSel ('Just "wvScript") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (WitBlock ScriptHash era)) :*: S1 ('MetaSel ('Just "wvDats") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (WitBlock DataHash era))))))

Methods

from ∷ WitUniv era → Rep (WitUniv era) x #

to ∷ Rep (WitUniv era) x → WitUniv era #

Show (WitUniv era) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

showsPrec ∷ Int → WitUniv era → ShowS #

show ∷ WitUniv era → String #

showList ∷ [WitUniv era] → ShowS #

Eq (WitUniv era) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

(==) ∷ WitUniv era → WitUniv era → Bool #

(/=) ∷ WitUniv era → WitUniv era → Bool #

ToExpr (WitUniv era) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

toExpr ∷ WitUniv era → Expr Source #

listToExpr ∷ [WitUniv era] → Expr Source #

type Rep (WitUniv era) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

type Rep (WitUniv era) = D1 ('MetaData "WitUniv" "Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse" "cardano-ledger-test-9.9.9.9-inplace" 'False) (C1 ('MetaCons "WitUniv" 'PrefixI 'True) ((S1 ('MetaSel ('Just "wvSize") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just "wvVKey") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (WitBlock (KeyHash 'Witness) era))) :*: (S1 ('MetaSel ('Just "wvBoot") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (WitBlock BootstrapAddress era)) :*: (S1 ('MetaSel ('Just "wvScript") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (WitBlock ScriptHash era)) :*: S1 ('MetaSel ('Just "wvDats") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (WitBlock DataHash era))))))

witKeyHashSpec ∷ ∀ era (krole ∷ KeyRole). Typeable krole ⇒ WitUniv era → Specification (KeyHash krole) Source #

witCredSpec ∷ ∀ era (krole ∷ KeyRole). Typeable krole ⇒ WitUniv era → Specification (Credential krole) Source #

witAccountAddressSpec ∷ WitUniv era → Specification AccountAddress Source #

Used only in Withdrawals, other AccountAddresses, not being withdrawn do not need witnessing

witShelleyTxCert ∷ Era era ⇒ WitUniv era → Specification (ShelleyTxCert era) Source #

Constrains all the Certificate Authors. Sometimes thay are keyHashes, and sometimes Credentials

witConwayTxCert ∷ Era era ⇒ WitUniv era → Specification (ConwayTxCert era) Source #

Constrains all the Certificate Authors. Sometimes thay are keyHashes, and sometimes Credentials

blockFromProofList ∷ ∀ t era. (Era era, Ord t, HasWitness t era) ⇒ [ProofType t era] → WitBlock t era Source #

Reconstruct a (WitBlock t era) from only a [ProofType t era]

genWitBlock ∷ ∀ t era. (Era era, Ord t, HasWitness t era) ⇒ Int → Gen (ProofType t era) → Gen (WitBlock t era) Source #

class Witnessed era t where Source #

The class of things we know how to witness. This way you don't have to remember long complicated names.

Methods

witness ∷ WitUniv era → Term t → Pred Source #

Instances

Instances details
Era era ⇒ Witnessed era AccountAddress Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

witness ∷ WitUniv era → Term AccountAddress → Pred Source #

Era era ⇒ Witnessed era BootstrapAddress Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Era era ⇒ Witnessed era DRep Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

witness ∷ WitUniv era → Term DRep → Pred Source #

Era era ⇒ Witnessed era GenDelegPair Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

witness ∷ WitUniv era → Term GenDelegPair → Pred Source #

Era era ⇒ Witnessed era ScriptHash Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

witness ∷ WitUniv era → Term ScriptHash → Pred Source #

Era era ⇒ Witnessed era StakePoolState Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

witness ∷ WitUniv era → Term StakePoolState → Pred Source #

EraSpecPParams era ⇒ Witnessed era (Committee era) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

witness ∷ WitUniv era → Term (Committee era) → Pred Source #

Era era ⇒ Witnessed era (ConwayAccountState era) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

witness ∷ WitUniv era → Term (ConwayAccountState era) → Pred Source #

Era era ⇒ Witnessed era (ConwayAccounts era) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

witness ∷ WitUniv era → Term (ConwayAccounts era) → Pred Source #

Era era ⇒ Witnessed era (ConwayTxCert era) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

witness ∷ WitUniv era → Term (ConwayTxCert era) → Pred Source #

(Era era, Typeable r) ⇒ Witnessed era (Credential r) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

witness ∷ WitUniv era → Term (Credential r) → Pred Source #

(Era era, Typeable r) ⇒ Witnessed era (KeyHash r) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

witness ∷ WitUniv era → Term (KeyHash r) → Pred Source #

Era era ⇒ Witnessed era (StakePoolParams era) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

witness ∷ WitUniv era → Term (StakePoolParams era) → Pred Source #

Era era ⇒ Witnessed era (ShelleyAccountState era) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

witness ∷ WitUniv era → Term (ShelleyAccountState era) → Pred Source #

Era era ⇒ Witnessed era (ShelleyTxCert era) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

witness ∷ WitUniv era → Term (ShelleyTxCert era) → Pred Source #

(Era era, HasSpec t, Witnessed era t, IsNormalType t) ⇒ Witnessed era (StrictMaybe t) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

witness ∷ WitUniv era → Term (StrictMaybe t) → Pred Source #

(Era era, HasSpec t, Ord t, Witnessed era t) ⇒ Witnessed era (Set t) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

witness ∷ WitUniv era → Term (Set t) → Pred Source #

(Era era, HasSpec t, Witnessed era t, IsNormalType t) ⇒ Witnessed era (Maybe t) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

witness ∷ WitUniv era → Term (Maybe t) → Pred Source #

(Era era, HasSpec t, Witnessed era t) ⇒ Witnessed era [t] Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

witness ∷ WitUniv era → Term [t] → Pred Source #

(Era era, HasSpec t, HasSpec v, IsNormalType t, IsNormalType v, Ord t, Witnessed era t) ⇒ Witnessed era (Map t v) Source # 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

Methods

witness ∷ WitUniv era → Term (Map t v) → Pred Source #

go1 ∷ IO () Source #

go2 ∷ IO () Source #

govActionStateWitness ∷ EraSpecPParams era ⇒ WitUniv era → Specification (GovActionState era) Source #

Constrains just the parts that need witnessing in GovActionState

govActionWitness ∷ EraSpecPParams era ⇒ WitUniv era → Specification (GovAction era) Source #

Constrains just the parts that need witnessing in GovAction

proposalProcedureWitness ∷ EraSpecPParams era ⇒ WitUniv era → Specification (ProposalProcedure era) Source #

Constrains just the parts that need witnessing in ProposalProcedure

committeeWitness ∷ EraSpecPParams era ⇒ WitUniv era → Specification (Committee era) Source #

Constrains just the parts that need witnessing in Committee

go9 ∷ IO () Source #

Orphan instances

ToExpr SigningKey Source # 
Instance details

Era era ⇒ HasSpec (TxDats era) Source # 
Instance details

Associated Types

type TypeSpec (TxDats era) 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

type TypeSpec (TxDats era) = TypeSpec (SimpleRep (TxDats era))
type Prerequisites (TxDats era) 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

type Prerequisites (TxDats era) = ()
(ShelleyEraScript era, NativeScript era ~ MultiSig era) ⇒ HasSpec (MultiSig era) Source # 
Instance details

Associated Types

type TypeSpec (MultiSig era) 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

type TypeSpec (MultiSig era) = ()
type Prerequisites (MultiSig era) 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

type Prerequisites (MultiSig era) = ()
AlonzoEraScript era ⇒ HasSimpleRep (Redeemers era) Source # 
Instance details

Associated Types

type SimpleRep (Redeemers era) 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

type TheSop (Redeemers era) 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

type TheSop (Redeemers era) = SOPOf (Rep (Redeemers era))
Era era ⇒ HasSimpleRep (TxDats era) Source # 
Instance details

Associated Types

type SimpleRep (TxDats era) 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

type SimpleRep (TxDats era) = Map DataHash (Data era)
type TheSop (TxDats era) 
Instance details

Defined in Test.Cardano.Ledger.Constrained.Conway.WitnessUniverse

type TheSop (TxDats era) = SOPOf (Rep (TxDats era))