| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Cardano.Protocol.Leios.BlockHeader
Description
Block header associated with Leios.
The Leios header body is the Praos header body with the protocol version
replaced by BlockHeaderVersionInfo and two additional fields appended. Unlike
the Praos header body, it is memoized, and its KES signature is made and
checked over its original bytes. See Cardano.Protocol.Praos.BlockHeader for
the remaining details.
Documentation
newtype Header crypto Source #
Constructors
| HeaderConstr (MemoBytes (HeaderRaw crypto)) |
Instances
data HeaderRaw crypto Source #
Constructors
| HeaderRaw | |
Fields
| |
Instances
| Crypto crypto ⇒ DecCBOR (Annotator (HeaderRaw crypto)) Source # | |||||
| Crypto crypto ⇒ EncCBOR (HeaderRaw crypto) Source # | |||||
| Generic (HeaderRaw crypto) Source # | |||||
Defined in Cardano.Protocol.Leios.BlockHeader Associated Types
| |||||
| Crypto crypto ⇒ Show (HeaderRaw crypto) Source # | |||||
| Crypto c ⇒ Eq (HeaderRaw c) Source # | |||||
| Crypto crypto ⇒ NoThunks (HeaderRaw crypto) Source # | |||||
| type MemoHashIndex (HeaderRaw crypto) Source # | |||||
Defined in Cardano.Protocol.Leios.BlockHeader | |||||
| type Rep (HeaderRaw crypto) Source # | |||||
Defined in Cardano.Protocol.Leios.BlockHeader type Rep (HeaderRaw crypto) = D1 ('MetaData "HeaderRaw" "Cardano.Protocol.Leios.BlockHeader" "cardano-protocol-0.3.0.0-inplace" 'False) (C1 ('MetaCons "HeaderRaw" 'PrefixI 'True) (S1 ('MetaSel ('Just "headerRawBody") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (HeaderBody crypto)) :*: S1 ('MetaSel ('Just "headerRawSig") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (SignedKES (KES crypto) (HeaderBody crypto))))) | |||||
newtype HeaderBody crypto Source #
Constructors
| HeaderBodyConstr (MemoBytes (HeaderBodyRaw crypto)) |
Bundled Patterns
| pattern HeaderBody ∷ BlockNo → SlotNo → PrevHash → VKey 'BlockIssuer → VerKeyVRF (VRF crypto) → CertifiedVRF (VRF crypto) InputVRF → Word32 → Hash HASH EraIndependentBlockBody → OCert crypto → BlockHeaderVersionInfo → Bool → StrictMaybe EbReferencesAnnouncement → HeaderBody crypto |
Instances
| Typeable crypto ⇒ ToCBOR (HeaderBody crypto) Source # | |||||
Defined in Cardano.Protocol.Leios.BlockHeader Methods toCBOR ∷ HeaderBody crypto → Encoding Source # encodedSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy (HeaderBody crypto) → Size Source # encodedListSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy [HeaderBody crypto] → Size Source # | |||||
| SignableRepresentation (HeaderBody crypto) Source # | |||||
Defined in Cardano.Protocol.Leios.BlockHeader Methods getSignableRepresentation ∷ HeaderBody crypto → ByteString Source # | |||||
| Crypto crypto ⇒ DecCBOR (Annotator (HeaderBody crypto)) Source # | |||||
| Crypto crypto ⇒ EncCBOR (HeaderBody crypto) Source # | |||||
Defined in Cardano.Protocol.Leios.BlockHeader Methods encCBOR ∷ HeaderBody crypto → Encoding Source # | |||||
| SafeToHash (HeaderBody crypto) Source # | |||||
Defined in Cardano.Protocol.Leios.BlockHeader Methods originalBytes ∷ HeaderBody crypto → ByteString Source # originalBytesSize ∷ HeaderBody crypto → Int Source # makeHashWithExplicitProxys ∷ Proxy i → HeaderBody crypto → SafeHash i Source # | |||||
| Memoized (HeaderBody crypto) Source # | |||||
Defined in Cardano.Protocol.Leios.BlockHeader Associated Types
Methods getMemoBytes ∷ HeaderBody crypto → MemoBytes (RawType (HeaderBody crypto)) wrapMemoBytes ∷ MemoBytes (RawType (HeaderBody crypto)) → HeaderBody crypto | |||||
| Generic (HeaderBody crypto) Source # | |||||
Defined in Cardano.Protocol.Leios.BlockHeader Associated Types
Methods from ∷ HeaderBody crypto → Rep (HeaderBody crypto) x # to ∷ Rep (HeaderBody crypto) x → HeaderBody crypto # | |||||
| Crypto crypto ⇒ Show (HeaderBody crypto) Source # | |||||
Defined in Cardano.Protocol.Leios.BlockHeader Methods showsPrec ∷ Int → HeaderBody crypto → ShowS # show ∷ HeaderBody crypto → String # showList ∷ [HeaderBody crypto] → ShowS # | |||||
| Crypto crypto ⇒ Eq (HeaderBody crypto) Source # | |||||
Defined in Cardano.Protocol.Leios.BlockHeader Methods (==) ∷ HeaderBody crypto → HeaderBody crypto → Bool # (/=) ∷ HeaderBody crypto → HeaderBody crypto → Bool # | |||||
| Crypto crypto ⇒ NoThunks (HeaderBody crypto) Source # | |||||
Defined in Cardano.Protocol.Leios.BlockHeader | |||||
| type RawType (HeaderBody crypto) Source # | |||||
Defined in Cardano.Protocol.Leios.BlockHeader | |||||
| type Rep (HeaderBody crypto) Source # | |||||
Defined in Cardano.Protocol.Leios.BlockHeader type Rep (HeaderBody crypto) = D1 ('MetaData "HeaderBody" "Cardano.Protocol.Leios.BlockHeader" "cardano-protocol-0.3.0.0-inplace" 'True) (C1 ('MetaCons "HeaderBodyConstr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (MemoBytes (HeaderBodyRaw crypto))))) | |||||
data HeaderBodyRaw crypto Source #
Constructors
| HeaderBodyRaw | |
Fields
| |
Instances
| Crypto crypto ⇒ DecCBOR (Annotator (HeaderBodyRaw crypto)) Source # | |||||
| Crypto crypto ⇒ DecCBOR (HeaderBodyRaw crypto) Source # | |||||
Defined in Cardano.Protocol.Leios.BlockHeader | |||||
| Crypto crypto ⇒ EncCBOR (HeaderBodyRaw crypto) Source # | |||||
Defined in Cardano.Protocol.Leios.BlockHeader Methods encCBOR ∷ HeaderBodyRaw crypto → Encoding Source # | |||||
| Generic (HeaderBodyRaw crypto) Source # | |||||
Defined in Cardano.Protocol.Leios.BlockHeader Associated Types
Methods from ∷ HeaderBodyRaw crypto → Rep (HeaderBodyRaw crypto) x # to ∷ Rep (HeaderBodyRaw crypto) x → HeaderBodyRaw crypto # | |||||
| Crypto crypto ⇒ Show (HeaderBodyRaw crypto) Source # | |||||
Defined in Cardano.Protocol.Leios.BlockHeader Methods showsPrec ∷ Int → HeaderBodyRaw crypto → ShowS # show ∷ HeaderBodyRaw crypto → String # showList ∷ [HeaderBodyRaw crypto] → ShowS # | |||||
| Crypto crypto ⇒ Eq (HeaderBodyRaw crypto) Source # | |||||
Defined in Cardano.Protocol.Leios.BlockHeader Methods (==) ∷ HeaderBodyRaw crypto → HeaderBodyRaw crypto → Bool # (/=) ∷ HeaderBodyRaw crypto → HeaderBodyRaw crypto → Bool # | |||||
| Crypto crypto ⇒ NoThunks (HeaderBodyRaw crypto) Source # | |||||
Defined in Cardano.Protocol.Leios.BlockHeader | |||||
| type MemoHashIndex (HeaderBodyRaw crypto) Source # | |||||
Defined in Cardano.Protocol.Leios.BlockHeader | |||||
| type Rep (HeaderBodyRaw crypto) Source # | |||||
Defined in Cardano.Protocol.Leios.BlockHeader type Rep (HeaderBodyRaw crypto) = D1 ('MetaData "HeaderBodyRaw" "Cardano.Protocol.Leios.BlockHeader" "cardano-protocol-0.3.0.0-inplace" 'False) (C1 ('MetaCons "HeaderBodyRaw" 'PrefixI 'True) (((S1 ('MetaSel ('Just "hbrBlockNo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 BlockNo) :*: (S1 ('MetaSel ('Just "hbrSlotNo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SlotNo) :*: S1 ('MetaSel ('Just "hbrPrev") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PrevHash))) :*: (S1 ('MetaSel ('Just "hbrVk") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (VKey 'BlockIssuer)) :*: (S1 ('MetaSel ('Just "hbrVrfVk") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (VerKeyVRF (VRF crypto))) :*: S1 ('MetaSel ('Just "hbrVrfRes") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (CertifiedVRF (VRF crypto) InputVRF))))) :*: ((S1 ('MetaSel ('Just "hbrBodySize") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word32) :*: (S1 ('MetaSel ('Just "hbrBodyHash") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Hash HASH EraIndependentBlockBody)) :*: S1 ('MetaSel ('Just "hbrOCert") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (OCert crypto)))) :*: (S1 ('MetaSel ('Just "hbrVersionInfo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 BlockHeaderVersionInfo) :*: (S1 ('MetaSel ('Just "hbrBlockBodyContainsLeiosCert") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool) :*: S1 ('MetaSel ('Just "hbrEbReferencesAnnouncement") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (StrictMaybe EbReferencesAnnouncement))))))) | |||||
mkHeader ∷ (Era era, Crypto crypto) ⇒ proxy era → HeaderBody crypto → SignedKES (KES crypto) (HeaderBody crypto) → Header crypto Source #
mkHeaderBody ∷ (Era era, Crypto crypto) ⇒ proxy era → HeaderBodyRaw crypto → HeaderBody crypto Source #
headerBody ∷ Header crypto → HeaderBody crypto Source #
headerHash ∷ Header crypto → Hash HASH EraIndependentBlockHeader Source #
headerSize ∷ Header crypto → Int Source #