| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Ouroboros.Consensus.HardFork.Combinator.Block
Synopsis
- data family Header blk
- data family NestedCtxt_ blk ∷ (Type → Type) → Type → Type
- class KnownNat (HashSize blk) ⇒ ConvertRawHash blk where
- type HashSize blk ∷ Nat
- toRawHash ∷ proxy blk → HeaderHash blk → ByteString
- toShortRawHash ∷ proxy blk → HeaderHash blk → ShortByteString
- fromRawHash ∷ proxy blk → ByteString → Maybe (HeaderHash blk)
- fromShortRawHash ∷ proxy blk → ShortByteString → Maybe (HeaderHash blk)
- unsafeFromRawHash ∷ proxy blk → ByteString → HeaderHash blk
- unsafeFromShortRawHash ∷ proxy blk → ShortByteString → HeaderHash blk
- hashSize ∷ proxy blk → Word32
- distribAnnTip ∷ ∀ (xs ∷ [Type]). SListI xs ⇒ AnnTip (HardForkBlock xs) → NS AnnTip xs
- undistribAnnTip ∷ ∀ (xs ∷ [Type]). SListI xs ⇒ NS AnnTip xs → AnnTip (HardForkBlock xs)
Type family instances
data family Header blk Source #
Instances
data family NestedCtxt_ blk ∷ (Type → Type) → Type → Type Source #
Context identifying what kind of block we have
In almost all places we will use NestedCtxt rather than NestedCtxt_.
Instances
class KnownNat (HashSize blk) ⇒ ConvertRawHash blk where Source #
Convert a hash from/to raw bytes
Variants of toRawHash and fromRawHash for ShortByteString are
included. Override the default implementations to avoid an extra step in
case the HeaderHash is a ShortByteString under the hood.
The associated type HashSize is the size of the hash in bytes, expressed at
the type level. The hashSize method returns the same value at the term
level.
The hash size is enforced by default: fromRawHash and fromShortRawHash
return Nothing when the input does not have the announced hashSize. One
can opt out of this check through the unsafeFromRawHash and
unsafeFromShortRawHash variants, which must only be used at call sites
where there is no easy way to handle failure and the size is known to be
correct.
Minimal complete definition
(toRawHash | toShortRawHash), (unsafeFromRawHash | unsafeFromShortRawHash)
Associated Types
type HashSize blk ∷ Nat Source #
The size of the hash in number of bytes, at the type level.
See hashSize for the term-level counterpart.
Methods
toRawHash ∷ proxy blk → HeaderHash blk → ByteString Source #
Get the raw bytes from a hash
toShortRawHash ∷ proxy blk → HeaderHash blk → ShortByteString Source #
Variant of toRawHash for ShortByteString
fromRawHash ∷ proxy blk → ByteString → Maybe (HeaderHash blk) Source #
Construct the hash from a raw hash, enforcing that the input has the
announced hashSize.
Returns Nothing on a size mismatch.
fromShortRawHash ∷ proxy blk → ShortByteString → Maybe (HeaderHash blk) Source #
Construct the hash from a raw hash, enforcing that the input has the
announced hashSize.
Returns Nothing on a size mismatch.
unsafeFromRawHash ∷ proxy blk → ByteString → HeaderHash blk Source #
Construct the hash from a raw hash without enforcing the size.
PRECONDITION: the input's size must match hashSize.
unsafeFromShortRawHash ∷ proxy blk → ShortByteString → HeaderHash blk Source #
Construct the hash from a raw hash without enforcing the size.
PRECONDITION: the input's size must match hashSize.
hashSize ∷ proxy blk → Word32 Source #
The size of the hash in number of bytes
Instances
AnnTip
distribAnnTip ∷ ∀ (xs ∷ [Type]). SListI xs ⇒ AnnTip (HardForkBlock xs) → NS AnnTip xs Source #
undistribAnnTip ∷ ∀ (xs ∷ [Type]). SListI xs ⇒ NS AnnTip xs → AnnTip (HardForkBlock xs) Source #
Orphan instances
| CanHardFork xs ⇒ HasNestedContent Header (HardForkBlock xs) Source # | |||||
Methods unnest ∷ Header (HardForkBlock xs) → DepPair (NestedCtxt Header (HardForkBlock xs)) Source # nest ∷ DepPair (NestedCtxt Header (HardForkBlock xs)) → Header (HardForkBlock xs) Source # | |||||
| CanHardFork xs ⇒ StandardHash (HardForkBlock xs ∷ Type) Source # | |||||
| Typeable xs ⇒ ShowProxy (Header (HardForkBlock xs) ∷ Type) Source # | |||||
| CanHardFork xs ⇒ SameDepIndex (NestedCtxt_ (HardForkBlock xs) Header ∷ Type → Type) Source # | |||||
Methods sameDepIndex ∷ NestedCtxt_ (HardForkBlock xs) Header a → NestedCtxt_ (HardForkBlock xs) Header b → Maybe (a :~: b) Source # | |||||
| All (Compose Eq Header) xs ⇒ Eq (Header (HardForkBlock xs)) Source # | |||||
Methods (==) ∷ Header (HardForkBlock xs) → Header (HardForkBlock xs) → Bool # (/=) ∷ Header (HardForkBlock xs) → Header (HardForkBlock xs) → Bool # | |||||
| All Eq xs ⇒ Eq (HardForkBlock xs) Source # | |||||
Methods (==) ∷ HardForkBlock xs → HardForkBlock xs → Bool # (/=) ∷ HardForkBlock xs → HardForkBlock xs → Bool # | |||||
| CanHardFork xs ⇒ Show (Header (HardForkBlock xs)) Source # | |||||
| CanHardFork xs ⇒ NoThunks (Header (HardForkBlock xs)) Source # | |||||
| CanHardFork xs ⇒ ConvertRawHash (HardForkBlock xs) Source # | |||||
Associated Types
Methods toRawHash ∷ proxy (HardForkBlock xs) → HeaderHash (HardForkBlock xs) → ByteString Source # toShortRawHash ∷ proxy (HardForkBlock xs) → HeaderHash (HardForkBlock xs) → ShortByteString Source # fromRawHash ∷ proxy (HardForkBlock xs) → ByteString → Maybe (HeaderHash (HardForkBlock xs)) Source # fromShortRawHash ∷ proxy (HardForkBlock xs) → ShortByteString → Maybe (HeaderHash (HardForkBlock xs)) Source # unsafeFromRawHash ∷ proxy (HardForkBlock xs) → ByteString → HeaderHash (HardForkBlock xs) Source # unsafeFromShortRawHash ∷ proxy (HardForkBlock xs) → ShortByteString → HeaderHash (HardForkBlock xs) Source # hashSize ∷ proxy (HardForkBlock xs) → Word32 Source # | |||||
| CanHardFork xs ⇒ GetHeader (HardForkBlock xs) Source # | |||||
Methods getHeader ∷ HardForkBlock xs → Header (HardForkBlock xs) Source # blockMatchesHeader ∷ Header (HardForkBlock xs) → HardForkBlock xs → Bool Source # headerIsEBB ∷ Header (HardForkBlock xs) → Maybe EpochNo Source # | |||||
| CanHardFork xs ⇒ GetPrevHash (HardForkBlock xs) Source # | |||||
Methods headerPrevHash ∷ Header (HardForkBlock xs) → ChainHash (HardForkBlock xs) Source # | |||||
| CanHardFork xs ⇒ BasicEnvelopeValidation (HardForkBlock xs) Source # | |||||
Methods expectedFirstBlockNo ∷ proxy (HardForkBlock xs) → BlockNo Source # expectedNextBlockNo ∷ proxy (HardForkBlock xs) → TipInfo (HardForkBlock xs) → TipInfo (HardForkBlock xs) → BlockNo → BlockNo Source # minimumPossibleSlotNo ∷ Proxy (HardForkBlock xs) → SlotNo Source # minimumNextSlotNo ∷ proxy (HardForkBlock xs) → TipInfo (HardForkBlock xs) → TipInfo (HardForkBlock xs) → SlotNo → SlotNo Source # | |||||
| CanHardFork xs ⇒ HasAnnTip (HardForkBlock xs) Source # | |||||
Associated Types
Methods getTipInfo ∷ Header (HardForkBlock xs) → TipInfo (HardForkBlock xs) Source # tipInfoHash ∷ proxy (HardForkBlock xs) → TipInfo (HardForkBlock xs) → HeaderHash (HardForkBlock xs) Source # | |||||
| CanHardFork xs ⇒ HasHeader (Header (HardForkBlock xs)) Source # | |||||
Methods getHeaderFields ∷ Header (HardForkBlock xs) → HeaderFields (Header (HardForkBlock xs)) # | |||||
| CanHardFork xs ⇒ HasHeader (HardForkBlock xs) Source # | |||||
Methods getHeaderFields ∷ HardForkBlock xs → HeaderFields (HardForkBlock xs) # | |||||
| All SingleEraBlock xs ⇒ Show (NestedCtxt_ (HardForkBlock xs) Header a) Source # | |||||
Methods showsPrec ∷ Int → NestedCtxt_ (HardForkBlock xs) Header a → ShowS # show ∷ NestedCtxt_ (HardForkBlock xs) Header a → String # showList ∷ [NestedCtxt_ (HardForkBlock xs) Header a] → ShowS # | |||||