cardano-ledger-0.1.0.0: The blockchain layer of Cardano
Safe HaskellNone
LanguageHaskell2010

Cardano.Chain.Slotting

Synopsis

Documentation

newtype SlotNumber Source #

SlotNumber is an absolute slot number from the beginning of time

SlotNumber is held in a Word64. Assuming a slot every 20 seconds, Word64 is sufficient for slot indices for 10^13 years.

Constructors

SlotNumber 

Fields

Instances

Instances details
Eq SlotNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotNumber

Num SlotNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotNumber

Ord SlotNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotNumber

Show SlotNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotNumber

Generic SlotNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotNumber

Associated Types

type Rep SlotNumber :: Type -> Type #

NFData SlotNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotNumber

Methods

rnf :: SlotNumber -> () #

ToJSON SlotNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotNumber

ToCBOR SlotNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotNumber

FromCBOR SlotNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotNumber

Buildable SlotNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotNumber

NoThunks SlotNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotNumber

Monad m => ToJSON m SlotNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotNumber

MonadError SchemaError m => FromJSON m SlotNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotNumber

type Rep SlotNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotNumber

type Rep SlotNumber = D1 ('MetaData "SlotNumber" "Cardano.Chain.Slotting.SlotNumber" "cardano-ledger-0.1.0.0-LsmGdPmHvbsHmMt4VaqSe3" 'True) (C1 ('MetaCons "SlotNumber" 'PrefixI 'True) (S1 ('MetaSel ('Just "unSlotNumber") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)))

subSlotCount :: SlotCount -> SlotNumber -> SlotNumber Source #

Decrease a SlotNumber by SlotCount, going no lower than 0

newtype SlotCount Source #

A number of slots

Constructors

SlotCount 

Fields

Instances

Instances details
Eq SlotCount Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotCount

Ord SlotCount Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotCount

Read SlotCount Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotCount

Show SlotCount Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotCount

Generic SlotCount Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotCount

Associated Types

type Rep SlotCount :: Type -> Type #

NFData SlotCount Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotCount

Methods

rnf :: SlotCount -> () #

ToCBOR SlotCount Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotCount

Methods

toCBOR :: SlotCount -> Encoding Source #

encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy SlotCount -> Size Source #

encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [SlotCount] -> Size Source #

FromCBOR SlotCount Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotCount

Buildable SlotCount Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotCount

type Rep SlotCount Source # 
Instance details

Defined in Cardano.Chain.Slotting.SlotCount

type Rep SlotCount = D1 ('MetaData "SlotCount" "Cardano.Chain.Slotting.SlotCount" "cardano-ledger-0.1.0.0-LsmGdPmHvbsHmMt4VaqSe3" 'True) (C1 ('MetaCons "SlotCount" 'PrefixI 'True) (S1 ('MetaSel ('Just "unSlotCount") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)))

newtype EpochSlots Source #

The number of slots per epoch.

Constructors

EpochSlots 

Fields

Instances

Instances details
Eq EpochSlots Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochSlots

Data EpochSlots Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochSlots

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> EpochSlots -> c EpochSlots #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c EpochSlots #

toConstr :: EpochSlots -> Constr #

dataTypeOf :: EpochSlots -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c EpochSlots) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c EpochSlots) #

gmapT :: (forall b. Data b => b -> b) -> EpochSlots -> EpochSlots #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> EpochSlots -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> EpochSlots -> r #

gmapQ :: (forall d. Data d => d -> u) -> EpochSlots -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> EpochSlots -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> EpochSlots -> m EpochSlots #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> EpochSlots -> m EpochSlots #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> EpochSlots -> m EpochSlots #

Ord EpochSlots Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochSlots

Read EpochSlots Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochSlots

Show EpochSlots Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochSlots

Generic EpochSlots Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochSlots

Associated Types

type Rep EpochSlots :: Type -> Type #

ToCBOR EpochSlots Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochSlots

FromCBOR EpochSlots Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochSlots

Buildable EpochSlots Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochSlots

NoThunks EpochSlots Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochSlots

type Rep EpochSlots Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochSlots

type Rep EpochSlots = D1 ('MetaData "EpochSlots" "Cardano.Chain.Slotting.EpochSlots" "cardano-ledger-0.1.0.0-LsmGdPmHvbsHmMt4VaqSe3" 'True) (C1 ('MetaCons "EpochSlots" 'PrefixI 'True) (S1 ('MetaSel ('Just "unEpochSlots") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)))

data WithEpochSlots a Source #

Data with an accompanying slots per epoch context.

epochFirstSlot :: EpochSlots -> EpochNumber -> SlotNumber Source #

Calculate the first slot in an epoch.

Note that this function will give an undetermined result if Byron is not the first and only era - a more robust method should use EpochInfo from cardano-slotting.

newtype EpochNumber Source #

Index of epoch.

Constructors

EpochNumber 

Instances

Instances details
Bounded EpochNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochNumber

Enum EpochNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochNumber

Eq EpochNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochNumber

Integral EpochNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochNumber

Data EpochNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochNumber

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> EpochNumber -> c EpochNumber #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c EpochNumber #

toConstr :: EpochNumber -> Constr #

dataTypeOf :: EpochNumber -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c EpochNumber) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c EpochNumber) #

gmapT :: (forall b. Data b => b -> b) -> EpochNumber -> EpochNumber #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> EpochNumber -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> EpochNumber -> r #

gmapQ :: (forall d. Data d => d -> u) -> EpochNumber -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> EpochNumber -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> EpochNumber -> m EpochNumber #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> EpochNumber -> m EpochNumber #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> EpochNumber -> m EpochNumber #

Num EpochNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochNumber

Ord EpochNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochNumber

Real EpochNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochNumber

Show EpochNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochNumber

Ix EpochNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochNumber

Generic EpochNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochNumber

Associated Types

type Rep EpochNumber :: Type -> Type #

NFData EpochNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochNumber

Methods

rnf :: EpochNumber -> () #

ToJSON EpochNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochNumber

ToCBOR EpochNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochNumber

FromCBOR EpochNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochNumber

Buildable EpochNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochNumber

NoThunks EpochNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochNumber

Monad m => ToJSON m EpochNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochNumber

MonadError SchemaError m => FromJSON m EpochNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochNumber

type Rep EpochNumber Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochNumber

type Rep EpochNumber = D1 ('MetaData "EpochNumber" "Cardano.Chain.Slotting.EpochNumber" "cardano-ledger-0.1.0.0-LsmGdPmHvbsHmMt4VaqSe3" 'True) (C1 ('MetaCons "EpochNumber" 'PrefixI 'True) (S1 ('MetaSel ('Just "getEpochNumber") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)))

isBootstrapEra Source #

Arguments

:: EpochNumber

Unlock stake epoch

-> EpochNumber

Epoch in question (for which we determine whether it belongs to the bootstrap era)

-> Bool 

Bootstrap era is ongoing until stakes are unlocked. The reward era starts from the epoch specified as the epoch that unlocks stakes:

                      [unlock stake epoch]
                              /
  Epoch: ...  E-3  E-2  E-1   E+0  E+1  E+2  E+3  ...
         ------------------ | -----------------------
              Bootstrap era   Reward era
  

data EpochAndSlotCount Source #

EpochAndSlotCount identifies a slot by its EpochNumber and the number of slots into the epoch that it sits

Instances

Instances details
Eq EpochAndSlotCount Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochAndSlotCount

Ord EpochAndSlotCount Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochAndSlotCount

Show EpochAndSlotCount Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochAndSlotCount

Generic EpochAndSlotCount Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochAndSlotCount

Associated Types

type Rep EpochAndSlotCount :: Type -> Type #

NFData EpochAndSlotCount Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochAndSlotCount

Methods

rnf :: EpochAndSlotCount -> () #

ToCBOR EpochAndSlotCount Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochAndSlotCount

FromCBOR EpochAndSlotCount Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochAndSlotCount

Buildable EpochAndSlotCount Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochAndSlotCount

type Rep EpochAndSlotCount Source # 
Instance details

Defined in Cardano.Chain.Slotting.EpochAndSlotCount

type Rep EpochAndSlotCount = D1 ('MetaData "EpochAndSlotCount" "Cardano.Chain.Slotting.EpochAndSlotCount" "cardano-ledger-0.1.0.0-LsmGdPmHvbsHmMt4VaqSe3" 'False) (C1 ('MetaCons "EpochAndSlotCount" 'PrefixI 'True) (S1 ('MetaSel ('Just "epochNo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 EpochNumber) :*: S1 ('MetaSel ('Just "slotCount") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SlotCount)))