ouroboros-consensus
Safe HaskellNone
LanguageHaskell2010

Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Synopsis

Value for each era

Values for some eras

Value for one era

newtype OneEraBlock (xs ∷ [Type]) Source #

Constructors

OneEraBlock 

Fields

Instances

Instances details
CanHardFork xs ⇒ Show (OneEraBlock xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Methods

showsPrecIntOneEraBlock xs → ShowS #

showOneEraBlock xs → String #

showList ∷ [OneEraBlock xs] → ShowS #

newtype OneEraCannotForge (xs ∷ [Type]) Source #

Instances

Instances details
CanHardFork xs ⇒ Show (OneEraCannotForge xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

newtype OneEraGenTx (xs ∷ [Type]) Source #

Constructors

OneEraGenTx 

Fields

newtype OneEraGenTxId (xs ∷ [Type]) Source #

Constructors

OneEraGenTxId 

Instances

Instances details
CanHardFork xs ⇒ Eq (OneEraGenTxId xs) Source #

Compare OneEraGenTxIds by their transaction id, ignoring the era.

Two transactions in different eras can therefore have equal TxIds. This should only happen when the transaction format is backwards compatible from one era to the next.

The comparison itself lives in the CanHardFork instance for xs, as hardForkEqGenTxId/hardForkCompareGenTxId. The Cardano instance implements them without allocating; other instances use rawHashNS.

Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Methods

(==)OneEraGenTxId xs → OneEraGenTxId xs → Bool #

(/=)OneEraGenTxId xs → OneEraGenTxId xs → Bool #

CanHardFork xs ⇒ Ord (OneEraGenTxId xs) Source #

See the corresponding Eq instance.

Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

CanHardFork xs ⇒ Show (OneEraGenTxId xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Methods

showsPrecIntOneEraGenTxId xs → ShowS #

showOneEraGenTxId xs → String #

showList ∷ [OneEraGenTxId xs] → ShowS #

CanHardFork xs ⇒ NoThunks (OneEraGenTxId xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

newtype OneEraHash (xs ∷ [k]) Source #

The hash for an era

This type is special: we don't use an NS here, because the hash by itself should not allow us to differentiate between eras. If it did, the size of the hash would necessarily have to increase, and that leads to trouble. So, the type parameter xs here is merely a phantom one, and we just store the underlying raw hash.

Constructors

OneEraHash 

Instances

Instances details
(Typeable k, Typeable xs)FromCBOR (OneEraHash xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

(Typeable k, Typeable xs)ToCBOR (OneEraHash xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Methods

toCBOROneEraHash xs → Encoding Source #

encodedSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy (OneEraHash xs) → Size Source #

encodedListSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy [OneEraHash xs] → Size Source #

NFData (OneEraHash xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Methods

rnfOneEraHash xs → () #

Eq (OneEraHash xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Methods

(==)OneEraHash xs → OneEraHash xs → Bool #

(/=)OneEraHash xs → OneEraHash xs → Bool #

Ord (OneEraHash xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Methods

compareOneEraHash xs → OneEraHash xs → Ordering #

(<)OneEraHash xs → OneEraHash xs → Bool #

(<=)OneEraHash xs → OneEraHash xs → Bool #

(>)OneEraHash xs → OneEraHash xs → Bool #

(>=)OneEraHash xs → OneEraHash xs → Bool #

maxOneEraHash xs → OneEraHash xs → OneEraHash xs #

minOneEraHash xs → OneEraHash xs → OneEraHash xs #

Show (OneEraHash xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Methods

showsPrecIntOneEraHash xs → ShowS #

showOneEraHash xs → String #

showList ∷ [OneEraHash xs] → ShowS #

NoThunks (OneEraHash xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Condense (OneEraHash xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Methods

condenseOneEraHash xs → String Source #

Serialise (OneEraHash xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

newtype OneEraHeader (xs ∷ [Type]) Source #

Constructors

OneEraHeader 

Fields

newtype OneEraIsLeader (xs ∷ [Type]) Source #

Constructors

OneEraIsLeader 

newtype OneEraPerasVote (xs ∷ [Type]) Source #

Instances

Instances details
Typeable xs ⇒ ShowProxy (OneEraPerasVote xs ∷ Type) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Methods

showProxyProxy (OneEraPerasVote xs) → String #

CanHardFork xs ⇒ Eq (OneEraPerasVote xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Generic (OneEraPerasVote xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Associated Types

type Rep (OneEraPerasVote xs) 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (OneEraPerasVote xs) = D1 ('MetaData "OneEraPerasVote" "Ouroboros.Consensus.HardFork.Combinator.AcrossEras" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "OneEraPerasVote" 'PrefixI 'True) (S1 ('MetaSel ('Just "getOneEraPerasVote") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NS WrapPerasVote xs))))

Methods

fromOneEraPerasVote xs → Rep (OneEraPerasVote xs) x #

toRep (OneEraPerasVote xs) x → OneEraPerasVote xs #

CanHardFork xs ⇒ Show (OneEraPerasVote xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

CanHardFork xs ⇒ NoThunks (OneEraPerasVote xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (OneEraPerasVote xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (OneEraPerasVote xs) = D1 ('MetaData "OneEraPerasVote" "Ouroboros.Consensus.HardFork.Combinator.AcrossEras" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "OneEraPerasVote" 'PrefixI 'True) (S1 ('MetaSel ('Just "getOneEraPerasVote") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NS WrapPerasVote xs))))

newtype OneEraPerasCert (xs ∷ [Type]) Source #

Instances

Instances details
Typeable xs ⇒ ShowProxy (OneEraPerasCert xs ∷ Type) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Methods

showProxyProxy (OneEraPerasCert xs) → String #

CanHardFork xs ⇒ Eq (OneEraPerasCert xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Generic (OneEraPerasCert xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Associated Types

type Rep (OneEraPerasCert xs) 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (OneEraPerasCert xs) = D1 ('MetaData "OneEraPerasCert" "Ouroboros.Consensus.HardFork.Combinator.AcrossEras" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "OneEraPerasCert" 'PrefixI 'True) (S1 ('MetaSel ('Just "getOneEraPerasCert") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NS WrapPerasCert xs))))

Methods

fromOneEraPerasCert xs → Rep (OneEraPerasCert xs) x #

toRep (OneEraPerasCert xs) x → OneEraPerasCert xs #

CanHardFork xs ⇒ Show (OneEraPerasCert xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

CanHardFork xs ⇒ NoThunks (OneEraPerasCert xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (OneEraPerasCert xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (OneEraPerasCert xs) = D1 ('MetaData "OneEraPerasCert" "Ouroboros.Consensus.HardFork.Combinator.AcrossEras" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "OneEraPerasCert" 'PrefixI 'True) (S1 ('MetaSel ('Just "getOneEraPerasCert") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NS WrapPerasCert xs))))

newtype OneEraPerasError (xs ∷ [Type]) Source #

Instances

Instances details
CanHardFork xs ⇒ Eq (OneEraPerasError xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

CanHardFork xs ⇒ Exception (OneEraPerasError xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Generic (OneEraPerasError xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Associated Types

type Rep (OneEraPerasError xs) 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (OneEraPerasError xs) = D1 ('MetaData "OneEraPerasError" "Ouroboros.Consensus.HardFork.Combinator.AcrossEras" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "OneEraPerasError" 'PrefixI 'True) (S1 ('MetaSel ('Just "getOneEraPerasError") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NS WrapPerasError xs))))
CanHardFork xs ⇒ Show (OneEraPerasError xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

CanHardFork xs ⇒ NoThunks (OneEraPerasError xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (OneEraPerasError xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (OneEraPerasError xs) = D1 ('MetaData "OneEraPerasError" "Ouroboros.Consensus.HardFork.Combinator.AcrossEras" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "OneEraPerasError" 'PrefixI 'True) (S1 ('MetaSel ('Just "getOneEraPerasError") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NS WrapPerasError xs))))

data HardForkPerasError (xs ∷ [Type]) Source #

Constructors

HardForkPerasErrorEraMismatch 
HardForkPerasErrorOneEraPerasError (OneEraPerasError xs) 
HardForkPerasErrorConversionError

Should never be produced in practice, since we dispatch to a concrete era before calling any fallible operation.

HardForkPerasErrorQuorumNotReachedError

Should never be produced in practice, since we dispatch to a concrete era before calling any fallible operation.

HardForkPerasErrorCommitteeError

Should never be produced in practice, since we dispatch to a concrete era before calling any fallible operation.

Instances

Instances details
Eq (OneEraPerasError xs) ⇒ Eq (HardForkPerasError xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

CanHardFork xs ⇒ Exception (HardForkPerasError xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Generic (HardForkPerasError xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Associated Types

type Rep (HardForkPerasError xs) 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (HardForkPerasError xs) = D1 ('MetaData "HardForkPerasError" "Ouroboros.Consensus.HardFork.Combinator.AcrossEras" "ouroboros-consensus-4.0.0.0-inplace" 'False) ((C1 ('MetaCons "HardForkPerasErrorEraMismatch" 'PrefixI 'False) (U1TypeType) :+: C1 ('MetaCons "HardForkPerasErrorOneEraPerasError" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (OneEraPerasError xs)))) :+: (C1 ('MetaCons "HardForkPerasErrorConversionError" 'PrefixI 'False) (U1TypeType) :+: (C1 ('MetaCons "HardForkPerasErrorQuorumNotReachedError" 'PrefixI 'False) (U1TypeType) :+: C1 ('MetaCons "HardForkPerasErrorCommitteeError" 'PrefixI 'False) (U1TypeType))))
Show (OneEraPerasError xs) ⇒ Show (HardForkPerasError xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

NoThunks (OneEraPerasError xs) ⇒ NoThunks (HardForkPerasError xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (HardForkPerasError xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (HardForkPerasError xs) = D1 ('MetaData "HardForkPerasError" "Ouroboros.Consensus.HardFork.Combinator.AcrossEras" "ouroboros-consensus-4.0.0.0-inplace" 'False) ((C1 ('MetaCons "HardForkPerasErrorEraMismatch" 'PrefixI 'False) (U1TypeType) :+: C1 ('MetaCons "HardForkPerasErrorOneEraPerasError" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (OneEraPerasError xs)))) :+: (C1 ('MetaCons "HardForkPerasErrorConversionError" 'PrefixI 'False) (U1TypeType) :+: (C1 ('MetaCons "HardForkPerasErrorQuorumNotReachedError" 'PrefixI 'False) (U1TypeType) :+: C1 ('MetaCons "HardForkPerasErrorCommitteeError" 'PrefixI 'False) (U1TypeType))))

newtype OneEraPerasCrypto (xs ∷ [Type]) Source #

Instances

Instances details
CanHardFork xs ⇒ Eq (OneEraPerasCrypto xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Generic (OneEraPerasCrypto xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Associated Types

type Rep (OneEraPerasCrypto xs) 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (OneEraPerasCrypto xs) = D1 ('MetaData "OneEraPerasCrypto" "Ouroboros.Consensus.HardFork.Combinator.AcrossEras" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "OneEraPerasCrypto" 'PrefixI 'True) (S1 ('MetaSel ('Just "getOneEraPerasCrypto") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NS WrapPerasCrypto xs))))
CanHardFork xs ⇒ Show (OneEraPerasCrypto xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

CanHardFork xs ⇒ NoThunks (OneEraPerasCrypto xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

CanHardFork xs ⇒ FromCBOR (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) Source #

Hand-written rather than deriving via SerialiseNS: that derivation needs All (Compose Serialise WrapPerasVotingCommittee) xs, which GHC cannot solve from the CanHardFork xs (i.e. All SingleEraBlock xs) context for an abstract xs. We instead build the per-era codecs with hcpure proxySingle, where each era's Serialise (WrapPerasVotingCommittee blk) is reachable from SingleEraBlock blk via its StateSupportsPerasEpochContext superclass, and feed them to encodeNS and decodeNS, producing the same wire format a SerialiseNS derivation would.

Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

CanHardFork xs ⇒ ToCBOR (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

CanHardFork xs ⇒ Eq (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Generic (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Associated Types

type Rep (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) = D1 ('MetaData "VotingCommittee" "Ouroboros.Consensus.HardFork.Combinator.AcrossEras" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "OneEraPerasVotingCommittee" 'PrefixI 'True) (S1 ('MetaSel ('Just "getOneEraPerasVotingCommittee") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NS WrapPerasVotingCommittee xs))))
CanHardFork xs ⇒ Show (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

CanHardFork xs ⇒ NoThunks (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (OneEraPerasCrypto xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (OneEraPerasCrypto xs) = D1 ('MetaData "OneEraPerasCrypto" "Ouroboros.Consensus.HardFork.Combinator.AcrossEras" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "OneEraPerasCrypto" 'PrefixI 'True) (S1 ('MetaSel ('Just "getOneEraPerasCrypto") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NS WrapPerasCrypto xs))))
type PrivateKey (OneEraPerasCrypto xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

newtype VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) = D1 ('MetaData "VotingCommittee" "Ouroboros.Consensus.HardFork.Combinator.AcrossEras" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "OneEraPerasVotingCommittee" 'PrefixI 'True) (S1 ('MetaSel ('Just "getOneEraPerasVotingCommittee") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NS WrapPerasVotingCommittee xs))))

newtype OneEraPerasVotingCommitteeScheme (xs ∷ [Type]) Source #

Instances

Instances details
CanHardFork xs ⇒ Eq (OneEraPerasVotingCommitteeScheme xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Generic (OneEraPerasVotingCommitteeScheme xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Associated Types

type Rep (OneEraPerasVotingCommitteeScheme xs) 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (OneEraPerasVotingCommitteeScheme xs) = D1 ('MetaData "OneEraPerasVotingCommitteeScheme" "Ouroboros.Consensus.HardFork.Combinator.AcrossEras" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "OneEraPerasVotingCommitteeScheme" 'PrefixI 'True) (S1 ('MetaSel ('Just "getOneEraPerasVotingCommitteeScheme") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NS WrapPerasVotingCommitteeScheme xs))))
CanHardFork xs ⇒ Show (OneEraPerasVotingCommitteeScheme xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

CanHardFork xs ⇒ NoThunks (OneEraPerasVotingCommitteeScheme xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

CanHardFork xs ⇒ FromCBOR (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) Source #

Hand-written rather than deriving via SerialiseNS: that derivation needs All (Compose Serialise WrapPerasVotingCommittee) xs, which GHC cannot solve from the CanHardFork xs (i.e. All SingleEraBlock xs) context for an abstract xs. We instead build the per-era codecs with hcpure proxySingle, where each era's Serialise (WrapPerasVotingCommittee blk) is reachable from SingleEraBlock blk via its StateSupportsPerasEpochContext superclass, and feed them to encodeNS and decodeNS, producing the same wire format a SerialiseNS derivation would.

Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

CanHardFork xs ⇒ ToCBOR (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

CanHardFork xs ⇒ Eq (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Generic (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Associated Types

type Rep (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) = D1 ('MetaData "VotingCommittee" "Ouroboros.Consensus.HardFork.Combinator.AcrossEras" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "OneEraPerasVotingCommittee" 'PrefixI 'True) (S1 ('MetaSel ('Just "getOneEraPerasVotingCommittee") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NS WrapPerasVotingCommittee xs))))
CanHardFork xs ⇒ Show (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

CanHardFork xs ⇒ NoThunks (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (OneEraPerasVotingCommitteeScheme xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (OneEraPerasVotingCommitteeScheme xs) = D1 ('MetaData "OneEraPerasVotingCommitteeScheme" "Ouroboros.Consensus.HardFork.Combinator.AcrossEras" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "OneEraPerasVotingCommitteeScheme" 'PrefixI 'True) (S1 ('MetaSel ('Just "getOneEraPerasVotingCommitteeScheme") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NS WrapPerasVotingCommitteeScheme xs))))
newtype VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) = D1 ('MetaData "VotingCommittee" "Ouroboros.Consensus.HardFork.Combinator.AcrossEras" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "OneEraPerasVotingCommittee" 'PrefixI 'True) (S1 ('MetaSel ('Just "getOneEraPerasVotingCommittee") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NS WrapPerasVotingCommittee xs))))

data family VotingCommittee crypto committee Source #

Structure storing the voting committee context

NOTE: This data family is defined outside of the CryptoSupportsVotingCommittee class so that it can be instantiated for the HFC block without having to provide an instance of the whole class (because for HFC, we dispatch to a concrete era first so none of the methods/types of the class would actually be used).

Instances

Instances details
CanHardFork xs ⇒ FromCBOR (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) Source #

Hand-written rather than deriving via SerialiseNS: that derivation needs All (Compose Serialise WrapPerasVotingCommittee) xs, which GHC cannot solve from the CanHardFork xs (i.e. All SingleEraBlock xs) context for an abstract xs. We instead build the per-era codecs with hcpure proxySingle, where each era's Serialise (WrapPerasVotingCommittee blk) is reachable from SingleEraBlock blk via its StateSupportsPerasEpochContext superclass, and feed them to encodeNS and decodeNS, producing the same wire format a SerialiseNS derivation would.

Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Typeable blk ⇒ FromCBOR (VotingCommittee (VoidPerasCrypto blk) VoidPerasVotingCommitteeScheme) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Void

(Typeable crypto, FromCBOR (PublicKey crypto))FromCBOR (VotingCommittee crypto EveryoneVotes) Source # 
Instance details

Defined in Ouroboros.Consensus.Committee.EveryoneVotes

(Typeable crypto, FromCBOR (PublicKey crypto))FromCBOR (VotingCommittee crypto WFALS) Source # 
Instance details

Defined in Ouroboros.Consensus.Committee.WFALS

CanHardFork xs ⇒ ToCBOR (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Typeable blk ⇒ ToCBOR (VotingCommittee (VoidPerasCrypto blk) VoidPerasVotingCommitteeScheme) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Void

(Typeable crypto, ToCBOR (PublicKey crypto))ToCBOR (VotingCommittee crypto EveryoneVotes) Source # 
Instance details

Defined in Ouroboros.Consensus.Committee.EveryoneVotes

(Typeable crypto, ToCBOR (PublicKey crypto))ToCBOR (VotingCommittee crypto WFALS) Source # 
Instance details

Defined in Ouroboros.Consensus.Committee.WFALS

Methods

toCBORVotingCommittee crypto WFALSEncoding Source #

encodedSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy (VotingCommittee crypto WFALS) → Size Source #

encodedListSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy [VotingCommittee crypto WFALS] → Size Source #

CanHardFork xs ⇒ Eq (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Eq (VotingCommittee (VoidPerasCrypto blk) VoidPerasVotingCommitteeScheme) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Void

Eq (PublicKey crypto) ⇒ Eq (VotingCommittee crypto EveryoneVotes) Source # 
Instance details

Defined in Ouroboros.Consensus.Committee.EveryoneVotes

Eq (PublicKey crypto) ⇒ Eq (VotingCommittee crypto WFALS) Source # 
Instance details

Defined in Ouroboros.Consensus.Committee.WFALS

Methods

(==)VotingCommittee crypto WFALSVotingCommittee crypto WFALSBool #

(/=)VotingCommittee crypto WFALSVotingCommittee crypto WFALSBool #

Generic (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Associated Types

type Rep (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) = D1 ('MetaData "VotingCommittee" "Ouroboros.Consensus.HardFork.Combinator.AcrossEras" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "OneEraPerasVotingCommittee" 'PrefixI 'True) (S1 ('MetaSel ('Just "getOneEraPerasVotingCommittee") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NS WrapPerasVotingCommittee xs))))
Generic (VotingCommittee (VoidPerasCrypto blk) VoidPerasVotingCommitteeScheme) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Void

Generic (VotingCommittee crypto EveryoneVotes) Source # 
Instance details

Defined in Ouroboros.Consensus.Committee.EveryoneVotes

Associated Types

type Rep (VotingCommittee crypto EveryoneVotes) 
Instance details

Defined in Ouroboros.Consensus.Committee.EveryoneVotes

type Rep (VotingCommittee crypto EveryoneVotes) = D1 ('MetaData "VotingCommittee" "Ouroboros.Consensus.Committee.EveryoneVotes" "ouroboros-consensus-4.0.0.0-inplace" 'False) (C1 ('MetaCons "EveryoneVotesVotingCommittee" 'PrefixI 'True) ((S1 ('MetaSel ('Just "extWFAStakeDistr") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExtWFAStakeDistr (PublicKey crypto))) :*: S1 ('MetaSel ('Just "candidateSeats") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map PoolId SeatIndex))) :*: (S1 ('MetaSel ('Just "numActiveVoters") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 NumPoolsWithPositiveStake) :*: S1 ('MetaSel ('Just "totalActiveStake") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TotalStake))))
Generic (VotingCommittee crypto WFALS) Source # 
Instance details

Defined in Ouroboros.Consensus.Committee.WFALS

Associated Types

type Rep (VotingCommittee crypto WFALS) 
Instance details

Defined in Ouroboros.Consensus.Committee.WFALS

type Rep (VotingCommittee crypto WFALS) = D1 ('MetaData "VotingCommittee" "Ouroboros.Consensus.Committee.WFALS" "ouroboros-consensus-4.0.0.0-inplace" 'False) (C1 ('MetaCons "WFALSVotingCommittee" 'PrefixI 'True) ((S1 ('MetaSel ('Just "extWFAStakeDistr") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExtWFAStakeDistr (PublicKey crypto))) :*: (S1 ('MetaSel ('Just "candidateSeats") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map PoolId SeatIndex)) :*: S1 ('MetaSel ('Just "persistentCommitteeSize") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PersistentCommitteeSize))) :*: ((S1 ('MetaSel ('Just "nonPersistentCommitteeSize") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 NonPersistentCommitteeSize) :*: S1 ('MetaSel ('Just "totalPersistentStake") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TotalPersistentStake)) :*: (S1 ('MetaSel ('Just "totalNonPersistentStake") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TotalNonPersistentStake) :*: S1 ('MetaSel ('Just "epochNonce") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Nonce)))))

Methods

fromVotingCommittee crypto WFALSRep (VotingCommittee crypto WFALS) x #

toRep (VotingCommittee crypto WFALS) x → VotingCommittee crypto WFALS #

CanHardFork xs ⇒ Show (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Show (VotingCommittee (VoidPerasCrypto blk) VoidPerasVotingCommitteeScheme) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Void

Show (PublicKey crypto) ⇒ Show (VotingCommittee crypto EveryoneVotes) Source # 
Instance details

Defined in Ouroboros.Consensus.Committee.EveryoneVotes

Show (PublicKey crypto) ⇒ Show (VotingCommittee crypto WFALS) Source # 
Instance details

Defined in Ouroboros.Consensus.Committee.WFALS

Methods

showsPrecIntVotingCommittee crypto WFALSShowS #

showVotingCommittee crypto WFALSString #

showList ∷ [VotingCommittee crypto WFALS] → ShowS #

CanHardFork xs ⇒ NoThunks (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

NoThunks (VotingCommittee (VoidPerasCrypto blk) VoidPerasVotingCommitteeScheme) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Void

NoThunks (PublicKey crypto) ⇒ NoThunks (VotingCommittee crypto EveryoneVotes) Source # 
Instance details

Defined in Ouroboros.Consensus.Committee.EveryoneVotes

NoThunks (PublicKey crypto) ⇒ NoThunks (VotingCommittee crypto WFALS) Source # 
Instance details

Defined in Ouroboros.Consensus.Committee.WFALS

data VotingCommittee crypto EveryoneVotes Source # 
Instance details

Defined in Ouroboros.Consensus.Committee.EveryoneVotes

data VotingCommittee crypto WFALS Source # 
Instance details

Defined in Ouroboros.Consensus.Committee.WFALS

newtype VotingCommittee (VoidPerasCrypto blk) VoidPerasVotingCommitteeScheme Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Void

newtype VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep (VotingCommittee (OneEraPerasCrypto xs) (OneEraPerasVotingCommitteeScheme xs)) = D1 ('MetaData "VotingCommittee" "Ouroboros.Consensus.HardFork.Combinator.AcrossEras" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "OneEraPerasVotingCommittee" 'PrefixI 'True) (S1 ('MetaSel ('Just "getOneEraPerasVotingCommittee") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NS WrapPerasVotingCommittee xs))))
type Rep (VotingCommittee (VoidPerasCrypto blk) VoidPerasVotingCommitteeScheme) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Void

type Rep (VotingCommittee crypto EveryoneVotes) Source # 
Instance details

Defined in Ouroboros.Consensus.Committee.EveryoneVotes

type Rep (VotingCommittee crypto EveryoneVotes) = D1 ('MetaData "VotingCommittee" "Ouroboros.Consensus.Committee.EveryoneVotes" "ouroboros-consensus-4.0.0.0-inplace" 'False) (C1 ('MetaCons "EveryoneVotesVotingCommittee" 'PrefixI 'True) ((S1 ('MetaSel ('Just "extWFAStakeDistr") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExtWFAStakeDistr (PublicKey crypto))) :*: S1 ('MetaSel ('Just "candidateSeats") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map PoolId SeatIndex))) :*: (S1 ('MetaSel ('Just "numActiveVoters") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 NumPoolsWithPositiveStake) :*: S1 ('MetaSel ('Just "totalActiveStake") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TotalStake))))
type Rep (VotingCommittee crypto WFALS) Source # 
Instance details

Defined in Ouroboros.Consensus.Committee.WFALS

type Rep (VotingCommittee crypto WFALS) = D1 ('MetaData "VotingCommittee" "Ouroboros.Consensus.Committee.WFALS" "ouroboros-consensus-4.0.0.0-inplace" 'False) (C1 ('MetaCons "WFALSVotingCommittee" 'PrefixI 'True) ((S1 ('MetaSel ('Just "extWFAStakeDistr") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExtWFAStakeDistr (PublicKey crypto))) :*: (S1 ('MetaSel ('Just "candidateSeats") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map PoolId SeatIndex)) :*: S1 ('MetaSel ('Just "persistentCommitteeSize") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PersistentCommitteeSize))) :*: ((S1 ('MetaSel ('Just "nonPersistentCommitteeSize") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 NonPersistentCommitteeSize) :*: S1 ('MetaSel ('Just "totalPersistentStake") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TotalPersistentStake)) :*: (S1 ('MetaSel ('Just "totalNonPersistentStake") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TotalNonPersistentStake) :*: S1 ('MetaSel ('Just "epochNonce") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Nonce)))))

Serialisation of n-ary sums

decodeNS ∷ ∀ {k} (xs ∷ [k]) (f ∷ k → Type) s. SListI xs ⇒ NP (Decoder s :.: f) xs → Decoder s (NS f xs) Source #

encodeNS ∷ ∀ {k} (xs ∷ [k]) (f ∷ k → Type). SListI xs ⇒ NP (f -.-> (K Encoding ∷ k → Type)) xs → NS f xs → Encoding Source #

Value for two different eras

data EraMismatch Source #

Extra info for errors caused by applying a block, header, transaction, or query from one era to a ledger from a different era.

Constructors

EraMismatch 

Fields

Instances

Instances details
Eq EraMismatch Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Generic EraMismatch Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Associated Types

type Rep EraMismatch 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep EraMismatch = D1 ('MetaData "EraMismatch" "Ouroboros.Consensus.HardFork.Combinator.AcrossEras" "ouroboros-consensus-4.0.0.0-inplace" 'False) (C1 ('MetaCons "EraMismatch" 'PrefixI 'True) (S1 ('MetaSel ('Just "ledgerEraName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Just "otherEraName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)))
Show EraMismatch Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep EraMismatch Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

type Rep EraMismatch = D1 ('MetaData "EraMismatch" "Ouroboros.Consensus.HardFork.Combinator.AcrossEras" "ouroboros-consensus-4.0.0.0-inplace" 'False) (C1 ('MetaCons "EraMismatch" 'PrefixI 'True) (S1 ('MetaSel ('Just "ledgerEraName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Just "otherEraName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)))

newtype MismatchEraInfo (xs ∷ [Type]) Source #

Constructors

MismatchEraInfo 

Fields

mismatchFutureEra ∷ ∀ (xs ∷ [Type]) x. SListI xs ⇒ MismatchEraInfo (x ': xs) → NS SingleEraInfo xs Source #

A mismatch _must_ involve a future era

mkEraMismatch ∷ ∀ (xs ∷ [Type]). SListI xs ⇒ MismatchEraInfo xs → EraMismatch Source #

When a transaction or block from a certain era was applied to a ledger from another era, we get a MismatchEraInfo.

Given such a MismatchEraInfo, return the name of the era of the transaction/block and the name of the era of the ledger.

Utility

getSameValue ∷ ∀ {k} (xs ∷ [k]) a. (IsNonEmpty xs, Eq a, SListI xs, HasCallStack)NP (K a ∷ k → Type) xs → a Source #

oneEraBlockHeader ∷ ∀ (xs ∷ [Type]). CanHardFork xs ⇒ OneEraBlock xs → OneEraHeader xs Source #

Orphan instances