Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data ShelleyGenesisStaking c = ShelleyGenesisStaking {}
- type family ChainDepState p
- type family ChainDepState p
- condense :: Condense a => a -> String
- data family GenTx blk
- txId :: HasTxId tx => tx -> TxId tx
- unsafeExtendSafeZone :: forall (xs :: [Type]). Interpreter xs -> Interpreter xs
- data PastHorizonException
- interpreterToEpochInfo :: forall (xs :: [Type]). Interpreter xs -> EpochInfo (Except PastHorizonException)
- data EraMismatch = EraMismatch {
- ledgerEraName :: !Text
- otherEraName :: !Text
- data ByronBlock
- byronIdTx :: ATxAux ByteString -> TxId
- class ConsensusProtocol p => PraosProtocolSupportsNode p where
- type PraosProtocolSupportsNodeCrypto p
- getOpCertCounters :: proxy p -> ChainDepState p -> Map (KeyHash 'BlockIssuer (PraosProtocolSupportsNodeCrypto p)) Word64
- type family PraosProtocolSupportsNodeCrypto p
Documentation
data ShelleyGenesisStaking c Source #
Genesis Shelley staking configuration.
This allows us to configure some initial stake pools and delegation to them, in order to test Praos in a static configuration, without requiring on-chain registration and delegation.
For simplicity, pools defined in the genesis staking do not pay deposits for their registration.
ShelleyGenesisStaking | |
|
Instances
type family ChainDepState p Source #
Protocol-specific state
NOTE: This chain is blockchain dependent, i.e., updated when new blocks come in (more precisely, new headers), and subject to rollback.
Instances
type ChainDepState (HardForkProtocol xs) | |
type ChainDepState (PBft c) | |
Defined in Ouroboros.Consensus.Protocol.PBFT | |
type ChainDepState (TPraos c) | |
Defined in Ouroboros.Consensus.Protocol.TPraos |
type family ChainDepState p Source #
Protocol-specific state
NOTE: This chain is blockchain dependent, i.e., updated when new blocks come in (more precisely, new headers), and subject to rollback.
Instances
type ChainDepState (HardForkProtocol xs) | |
type ChainDepState (PBft c) | |
Defined in Ouroboros.Consensus.Protocol.PBFT | |
type ChainDepState (TPraos c) | |
Defined in Ouroboros.Consensus.Protocol.TPraos |
data family GenTx blk Source #
Generalized transaction
The mempool (and, accordingly, blocks) consist of "generalized transactions"; this could be "proper" transactions (transferring funds) but also other kinds of things such as update proposals, delegations, etc.
Instances
data GenTx ByronBlock | Generalized transactions in Byron This is effectively the same as |
Defined in Ouroboros.Consensus.Byron.Ledger.Mempool | |
type TranslationError era (GenTx :.: ShelleyBlock proto) | |
Defined in Ouroboros.Consensus.Shelley.ShelleyHFC | |
type Rep (Validated (GenTx (HardForkBlock xs))) | |
Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool type Rep (Validated (GenTx (HardForkBlock xs))) = D1 ('MetaData "Validated" "Ouroboros.Consensus.HardFork.Combinator.Mempool" "ouroboros-consensus-0.21.0.0-96a81cb4588538917e2e1bd1565d867fc48490e88747b2693485d823f16f2133" 'True) (C1 ('MetaCons "HardForkValidatedGenTx" 'PrefixI 'True) (S1 ('MetaSel ('Just "getHardForkValidatedGenTx") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (OneEraValidatedGenTx xs)))) | |
type Rep (Validated (GenTx ByronBlock)) | |
Defined in Ouroboros.Consensus.Byron.Ledger.Mempool type Rep (Validated (GenTx ByronBlock)) = D1 ('MetaData "Validated" "Ouroboros.Consensus.Byron.Ledger.Mempool" "ouroboros-consensus-cardano-0.20.0.0-2bd9b95213c4ce1ce608f7e1fa75ab5517c5c68b93059f91e3d89fedcdadeff3" 'True) (C1 ('MetaCons "ValidatedByronTx" 'PrefixI 'True) (S1 ('MetaSel ('Just "forgetValidatedByronTx") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (GenTx ByronBlock)))) | |
type Rep (Validated (GenTx (ShelleyBlock proto era))) | |
Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool type Rep (Validated (GenTx (ShelleyBlock proto era))) = D1 ('MetaData "Validated" "Ouroboros.Consensus.Shelley.Ledger.Mempool" "ouroboros-consensus-cardano-0.20.0.0-2bd9b95213c4ce1ce608f7e1fa75ab5517c5c68b93059f91e3d89fedcdadeff3" 'False) (C1 ('MetaCons "ShelleyValidatedTx" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (TxId (EraCrypto era))) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Validated (Tx era))))) | |
type Rep (GenTx (HardForkBlock xs)) | |
Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool type Rep (GenTx (HardForkBlock xs)) = D1 ('MetaData "GenTx" "Ouroboros.Consensus.HardFork.Combinator.Mempool" "ouroboros-consensus-0.21.0.0-96a81cb4588538917e2e1bd1565d867fc48490e88747b2693485d823f16f2133" 'True) (C1 ('MetaCons "HardForkGenTx" 'PrefixI 'True) (S1 ('MetaSel ('Just "getHardForkGenTx") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (OneEraGenTx xs)))) | |
type Rep (GenTx ByronBlock) | |
Defined in Ouroboros.Consensus.Byron.Ledger.Mempool type Rep (GenTx ByronBlock) = D1 ('MetaData "GenTx" "Ouroboros.Consensus.Byron.Ledger.Mempool" "ouroboros-consensus-cardano-0.20.0.0-2bd9b95213c4ce1ce608f7e1fa75ab5517c5c68b93059f91e3d89fedcdadeff3" 'False) ((C1 ('MetaCons "ByronTx" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 TxId) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ATxAux ByteString))) :+: C1 ('MetaCons "ByronDlg" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 CertificateId) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ACertificate ByteString)))) :+: (C1 ('MetaCons "ByronUpdateProposal" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 UpId) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (AProposal ByteString))) :+: C1 ('MetaCons "ByronUpdateVote" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 VoteId) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (AVote ByteString))))) | |
type Rep (GenTx (ShelleyBlock proto era)) | |
Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool type Rep (GenTx (ShelleyBlock proto era)) = D1 ('MetaData "GenTx" "Ouroboros.Consensus.Shelley.Ledger.Mempool" "ouroboros-consensus-cardano-0.20.0.0-2bd9b95213c4ce1ce608f7e1fa75ab5517c5c68b93059f91e3d89fedcdadeff3" 'False) (C1 ('MetaCons "ShelleyTx" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (TxId (EraCrypto era))) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Tx era)))) | |
type Rep (TxId (GenTx (HardForkBlock xs))) | |
Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool type Rep (TxId (GenTx (HardForkBlock xs))) = D1 ('MetaData "TxId" "Ouroboros.Consensus.HardFork.Combinator.Mempool" "ouroboros-consensus-0.21.0.0-96a81cb4588538917e2e1bd1565d867fc48490e88747b2693485d823f16f2133" 'True) (C1 ('MetaCons "HardForkGenTxId" 'PrefixI 'True) (S1 ('MetaSel ('Just "getHardForkGenTxId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (OneEraGenTxId xs)))) | |
newtype Validated (GenTx (HardForkBlock xs)) | |
newtype Validated (GenTx ByronBlock) | |
Defined in Ouroboros.Consensus.Byron.Ledger.Mempool | |
data Validated (GenTx (ShelleyBlock proto era)) | |
Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool data Validated (GenTx (ShelleyBlock proto era)) = ShelleyValidatedTx !(TxId (EraCrypto era)) !(Validated (Tx era)) | |
newtype GenTx (HardForkBlock xs) | |
newtype TxId (GenTx (HardForkBlock xs)) | |
data TxId (GenTx ByronBlock) | |
Defined in Ouroboros.Consensus.Byron.Ledger.Mempool | |
newtype TxId (GenTx (ShelleyBlock proto era)) | |
Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool | |
data GenTx (ShelleyBlock proto era) | |
Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool |
txId :: HasTxId tx => tx -> TxId tx Source #
NOTE: a TxId
must be unique up to ledger rules, i.e., two GenTx
s with
the same TxId
must be the same transaction according to the ledger.
However, we do not assume that a TxId
uniquely determines a GenTx
:
two GenTx
s with the same TxId
can differ in, e.g., witnesses.
Should be cheap as this will be called often.
unsafeExtendSafeZone :: forall (xs :: [Type]). Interpreter xs -> Interpreter xs Source #
UNSAFE: extend the safe zone of the current era of the given Interpreter
to be unbounded, ignoring any future hard forks.
This only has effect when the Interpreter
was obtained in an era that was
not the final one (in the final era, this is a no-op). The Interpreter
will be made to believe that the current era is the final era, making its
horizon unbounded, and thus never returning a PastHorizonException
.
Use of this function is strongly discouraged, as it will ignore any future
hard forks, and the results produced by the Interpreter
can thus be
incorrect.
data PastHorizonException Source #
We tried to convert something that is past the horizon
That is, we tried to convert something that is past the point in time beyond which we lack information due to uncertainty about the next hard fork.
Instances
interpreterToEpochInfo :: forall (xs :: [Type]). Interpreter xs -> EpochInfo (Except PastHorizonException) Source #
Construct an EpochInfo
for a snapshot of the ledger state
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.
EraMismatch | |
|
Instances
Generic EraMismatch | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras
from :: EraMismatch -> Rep EraMismatch x Source # to :: Rep EraMismatch x -> EraMismatch Source # | |||||
Show EraMismatch | |||||
Eq EraMismatch | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras (==) :: EraMismatch -> EraMismatch -> Bool Source # (/=) :: EraMismatch -> EraMismatch -> Bool Source # | |||||
type Rep EraMismatch | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras type Rep EraMismatch = D1 ('MetaData "EraMismatch" "Ouroboros.Consensus.HardFork.Combinator.AcrossEras" "ouroboros-consensus-0.21.0.0-96a81cb4588538917e2e1bd1565d867fc48490e88747b2693485d823f16f2133" 'False) (C1 ('MetaCons "EraMismatch" 'PrefixI 'True) (S1 ('MetaSel ('Just "ledgerEraName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Just "otherEraName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text))) |
data ByronBlock Source #
Byron block
We cache two bits of information:
- We cache the slot number as this is not readily available for EBBs.
Having it cached allows us to e.g. give a
HasHeader
instance. - We cache the hash as this is expensive to compute and we need it often.
Instances
Show ByronBlock | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Block | |||||
ConvertLedgerEvent ByronBlock | |||||
ProtocolClient ByronBlockHFC | |||||
Defined in Cardano.Api.Protocol
protocolClientInfo :: ProtocolClientInfoArgs ByronBlockHFC -> ProtocolClientInfo ByronBlockHFC | |||||
Eq ByronBlock | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Block (==) :: ByronBlock -> ByronBlock -> Bool Source # (/=) :: ByronBlock -> ByronBlock -> Bool Source # | |||||
ConvertRawHash ByronBlock | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Block toRawHash :: proxy ByronBlock -> HeaderHash ByronBlock -> ByteString Source # fromRawHash :: proxy ByronBlock -> ByteString -> HeaderHash ByronBlock Source # toShortRawHash :: proxy ByronBlock -> HeaderHash ByronBlock -> ShortByteString Source # fromShortRawHash :: proxy ByronBlock -> ShortByteString -> HeaderHash ByronBlock Source # hashSize :: proxy ByronBlock -> Word32 Source # | |||||
GetHeader ByronBlock | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Block getHeader :: ByronBlock -> Header ByronBlock Source # blockMatchesHeader :: Header ByronBlock -> ByronBlock -> Bool Source # headerIsEBB :: Header ByronBlock -> Maybe EpochNo Source # | |||||
GetPrevHash ByronBlock | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Block | |||||
Condense ByronBlock | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Block condense :: ByronBlock -> String Source # | |||||
HasHeader ByronBlock | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Block | |||||
IOLike m => Protocol m ByronBlockHFC | |||||
Defined in Cardano.Api.Protocol | |||||
StandardHash ByronBlock | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Block | |||||
ShowProxy ByronBlock | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Block | |||||
(CardanoHardForkConstraints StandardCrypto, IOLike m) => Protocol m (CardanoBlock StandardCrypto) | |||||
Defined in Cardano.Api.Protocol | |||||
ShowProxy (Header ByronBlock) | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Block | |||||
Generic (Header ByronBlock) | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Block
from :: Header ByronBlock -> Rep (Header ByronBlock) x Source # to :: Rep (Header ByronBlock) x -> Header ByronBlock Source # | |||||
Show (Header ByronBlock) | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Block | |||||
ConvertLedgerEvent (HardForkBlock (CardanoEras StandardCrypto)) | |||||
CardanoHardForkConstraints StandardCrypto => ProtocolClient (CardanoBlock StandardCrypto) | |||||
Defined in Cardano.Api.Protocol
protocolClientInfo :: ProtocolClientInfoArgs (CardanoBlock StandardCrypto) -> ProtocolClientInfo (CardanoBlock StandardCrypto) | |||||
Eq (Header ByronBlock) | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Block (==) :: Header ByronBlock -> Header ByronBlock -> Bool Source # (/=) :: Header ByronBlock -> Header ByronBlock -> Bool Source # | |||||
NoThunks (Header ByronBlock) | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Block noThunks :: Context -> Header ByronBlock -> IO (Maybe ThunkInfo) # wNoThunks :: Context -> Header ByronBlock -> IO (Maybe ThunkInfo) # showTypeOf :: Proxy (Header ByronBlock) -> String # | |||||
Condense (Header ByronBlock) | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Block | |||||
HasHeader (Header ByronBlock) | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Block | |||||
data ProtocolClientInfoArgs ByronBlockHFC | |||||
Defined in Cardano.Api.Protocol | |||||
data ProtocolInfoArgs ByronBlockHFC | |||||
data BlockConfig ByronBlock | Extended configuration we need for Byron | ||||
type BlockProtocol ByronBlock | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.PBFT | |||||
newtype CodecConfig ByronBlock | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Config | |||||
data Header ByronBlock | Byron header See | ||||
newtype StorageConfig ByronBlock | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Config | |||||
type CannotForge ByronBlock | |||||
Defined in Ouroboros.Consensus.Byron.Node | |||||
type ForgeStateInfo ByronBlock | |||||
Defined in Ouroboros.Consensus.Byron.Node | |||||
type ForgeStateUpdateError ByronBlock | |||||
Defined in Ouroboros.Consensus.Byron.Node | |||||
data NestedCtxt_ ByronBlock f a | Since the Byron header does not contain the size, we include it in the nested type instead. | ||||
type TentativeHeaderState ByronBlock | |||||
type TentativeHeaderView ByronBlock | |||||
type HardForkIndices ByronBlock | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Ledger | |||||
type PartialLedgerConfig ByronBlock | |||||
type OtherHeaderEnvelopeError ByronBlock | |||||
type TipInfo ByronBlock | |||||
data LedgerState ByronBlock | |||||
type LedgerUpdate ByronBlock | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Inspect | |||||
type LedgerWarning ByronBlock | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Inspect | |||||
data BlockQuery ByronBlock a | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Ledger | |||||
type ApplyTxErr ByronBlock | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Mempool | |||||
data GenTx ByronBlock | Generalized transactions in Byron This is effectively the same as | ||||
Defined in Ouroboros.Consensus.Byron.Ledger.Mempool | |||||
type TxMeasure ByronBlock | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Mempool | |||||
type BlockNodeToClientVersion ByronBlock | |||||
type BlockNodeToNodeVersion ByronBlock | |||||
type HeaderHash ByronBlock | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Block | |||||
type Rep (BlockConfig ByronBlock) | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Config type Rep (BlockConfig ByronBlock) = D1 ('MetaData "BlockConfig" "Ouroboros.Consensus.Byron.Ledger.Config" "ouroboros-consensus-cardano-0.20.0.0-2bd9b95213c4ce1ce608f7e1fa75ab5517c5c68b93059f91e3d89fedcdadeff3" 'False) (C1 ('MetaCons "ByronConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "byronGenesisConfig") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Config) :*: (S1 ('MetaSel ('Just "byronProtocolVersion") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ProtocolVersion) :*: S1 ('MetaSel ('Just "byronSoftwareVersion") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SoftwareVersion)))) | |||||
type Rep (CodecConfig ByronBlock) | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Config type Rep (CodecConfig ByronBlock) = D1 ('MetaData "CodecConfig" "Ouroboros.Consensus.Byron.Ledger.Config" "ouroboros-consensus-cardano-0.20.0.0-2bd9b95213c4ce1ce608f7e1fa75ab5517c5c68b93059f91e3d89fedcdadeff3" 'True) (C1 ('MetaCons "ByronCodecConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "getByronEpochSlots") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 EpochSlots))) | |||||
type Rep (Header ByronBlock) | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Block type Rep (Header ByronBlock) = D1 ('MetaData "Header" "Ouroboros.Consensus.Byron.Ledger.Block" "ouroboros-consensus-cardano-0.20.0.0-2bd9b95213c4ce1ce608f7e1fa75ab5517c5c68b93059f91e3d89fedcdadeff3" 'False) (C1 ('MetaCons "ByronHeader" 'PrefixI 'True) ((S1 ('MetaSel ('Just "byronHeaderRaw") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ABlockOrBoundaryHdr ByteString)) :*: S1 ('MetaSel ('Just "byronHeaderSlotNo") 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 SlotNo)) :*: (S1 ('MetaSel ('Just "byronHeaderHash") 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 ByronHash) :*: S1 ('MetaSel ('Just "byronHeaderBlockSizeHint") 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 SizeInBytes)))) | |||||
type Rep (StorageConfig ByronBlock) | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Config type Rep (StorageConfig ByronBlock) = D1 ('MetaData "StorageConfig" "Ouroboros.Consensus.Byron.Ledger.Config" "ouroboros-consensus-cardano-0.20.0.0-2bd9b95213c4ce1ce608f7e1fa75ab5517c5c68b93059f91e3d89fedcdadeff3" 'True) (C1 ('MetaCons "ByronStorageConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "getByronBlockConfig") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (BlockConfig ByronBlock)))) | |||||
type Rep (Validated (GenTx ByronBlock)) | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Mempool type Rep (Validated (GenTx ByronBlock)) = D1 ('MetaData "Validated" "Ouroboros.Consensus.Byron.Ledger.Mempool" "ouroboros-consensus-cardano-0.20.0.0-2bd9b95213c4ce1ce608f7e1fa75ab5517c5c68b93059f91e3d89fedcdadeff3" 'True) (C1 ('MetaCons "ValidatedByronTx" 'PrefixI 'True) (S1 ('MetaSel ('Just "forgetValidatedByronTx") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (GenTx ByronBlock)))) | |||||
type Rep (LedgerState ByronBlock) | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Ledger type Rep (LedgerState ByronBlock) = D1 ('MetaData "LedgerState" "Ouroboros.Consensus.Byron.Ledger.Ledger" "ouroboros-consensus-cardano-0.20.0.0-2bd9b95213c4ce1ce608f7e1fa75ab5517c5c68b93059f91e3d89fedcdadeff3" 'False) (C1 ('MetaCons "ByronLedgerState" 'PrefixI 'True) (S1 ('MetaSel ('Just "byronLedgerTipBlockNo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (WithOrigin BlockNo)) :*: (S1 ('MetaSel ('Just "byronLedgerState") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ChainValidationState) :*: S1 ('MetaSel ('Just "byronLedgerTransition") 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 ByronTransition)))) | |||||
type Rep (GenTx ByronBlock) | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Mempool type Rep (GenTx ByronBlock) = D1 ('MetaData "GenTx" "Ouroboros.Consensus.Byron.Ledger.Mempool" "ouroboros-consensus-cardano-0.20.0.0-2bd9b95213c4ce1ce608f7e1fa75ab5517c5c68b93059f91e3d89fedcdadeff3" 'False) ((C1 ('MetaCons "ByronTx" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 TxId) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ATxAux ByteString))) :+: C1 ('MetaCons "ByronDlg" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 CertificateId) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ACertificate ByteString)))) :+: (C1 ('MetaCons "ByronUpdateProposal" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 UpId) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (AProposal ByteString))) :+: C1 ('MetaCons "ByronUpdateVote" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 VoteId) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (AVote ByteString))))) | |||||
type Rep (Ticked (LedgerState ByronBlock)) | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Ledger type Rep (Ticked (LedgerState ByronBlock)) = D1 ('MetaData "Ticked" "Ouroboros.Consensus.Byron.Ledger.Ledger" "ouroboros-consensus-cardano-0.20.0.0-2bd9b95213c4ce1ce608f7e1fa75ab5517c5c68b93059f91e3d89fedcdadeff3" 'False) (C1 ('MetaCons "TickedByronLedgerState" 'PrefixI 'True) (S1 ('MetaSel ('Just "tickedByronLedgerState") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ChainValidationState) :*: S1 ('MetaSel ('Just "untickedByronLedgerTransition") 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 ByronTransition))) | |||||
data ProtocolClientInfoArgs (CardanoBlock StandardCrypto) | |||||
Defined in Cardano.Api.Protocol data ProtocolClientInfoArgs (CardanoBlock StandardCrypto) = ProtocolClientInfoArgsCardano EpochSlots | |||||
data ProtocolInfoArgs (CardanoBlock StandardCrypto) | |||||
type HardForkTxMeasure (CardanoEras c) | |||||
Defined in Ouroboros.Consensus.Cardano.CanHardFork | |||||
newtype Validated (GenTx ByronBlock) | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Mempool | |||||
type AuxLedgerEvent (LedgerState ByronBlock) | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Ledger | |||||
type LedgerCfg (LedgerState ByronBlock) | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Ledger | |||||
type LedgerErr (LedgerState ByronBlock) | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Ledger | |||||
data TxId (GenTx ByronBlock) | |||||
Defined in Ouroboros.Consensus.Byron.Ledger.Mempool | |||||
data Ticked (LedgerState ByronBlock) | The ticked Byron ledger state | ||||
class ConsensusProtocol p => PraosProtocolSupportsNode p where Source #
The node has Praos-aware code that inspects nonces in order to support some Cardano API queries that are crucial to the user exprience
The interface being used for that has grown and needs review, but we're adding to it here under time pressure. See https://github.com/IntersectMBO/cardano-node/issues/3864
getOpCertCounters :: proxy p -> ChainDepState p -> Map (KeyHash 'BlockIssuer (PraosProtocolSupportsNodeCrypto p)) Word64 Source #
Instances
PraosCrypto c => PraosProtocolSupportsNode (TPraos c) | |||||
Defined in Ouroboros.Consensus.Protocol.TPraos
getPraosNonces :: proxy (TPraos c) -> ChainDepState (TPraos c) -> PraosNonces Source # getOpCertCounters :: proxy (TPraos c) -> ChainDepState (TPraos c) -> Map (KeyHash 'BlockIssuer (PraosProtocolSupportsNodeCrypto (TPraos c))) Word64 Source # |
type family PraosProtocolSupportsNodeCrypto p Source #
Instances
type PraosProtocolSupportsNodeCrypto (TPraos c) | |
Defined in Ouroboros.Consensus.Protocol.TPraos |