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

Cardano.Chain.Update.Validation.Voting

Description

Validation rules for registering votes and confirming proposals

This is an implementation of the rules defined in the Byron ledger specification

Synopsis

Documentation

data Environment Source #

Environment used to register votes and confirm proposals

Instances

Instances details
Eq Environment Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Show Environment Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Generic Environment Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Associated Types

type Rep Environment :: Type -> Type #

NFData Environment Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Methods

rnf :: Environment -> () #

type Rep Environment Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

type Rep Environment = D1 ('MetaData "Environment" "Cardano.Chain.Update.Validation.Voting" "cardano-ledger-0.1.0.0-LsmGdPmHvbsHmMt4VaqSe3" 'False) (C1 ('MetaCons "Environment" 'PrefixI 'True) (S1 ('MetaSel ('Just "veCurrentSlot") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SlotNumber) :*: (S1 ('MetaSel ('Just "veConfirmationThreshold") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just "veVotingRegistrationEnvironment") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RegistrationEnvironment))))

data RegistrationEnvironment Source #

Environment required to validate and register a vote

Instances

Instances details
Eq RegistrationEnvironment Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Show RegistrationEnvironment Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Generic RegistrationEnvironment Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Associated Types

type Rep RegistrationEnvironment :: Type -> Type #

NFData RegistrationEnvironment Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Methods

rnf :: RegistrationEnvironment -> () #

type Rep RegistrationEnvironment Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

type Rep RegistrationEnvironment = D1 ('MetaData "RegistrationEnvironment" "Cardano.Chain.Update.Validation.Voting" "cardano-ledger-0.1.0.0-LsmGdPmHvbsHmMt4VaqSe3" 'False) (C1 ('MetaCons "RegistrationEnvironment" 'PrefixI 'True) (S1 ('MetaSel ('Just "vreRegisteredUpdateProposal") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Set UpId)) :*: S1 ('MetaSel ('Just "vreDelegationMap") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Map)))

data State Source #

State keeps track of registered votes and confirmed proposals

Constructors

State 

Fields

data Error Source #

Error captures the ways in which vote registration could fail

Instances

Instances details
Eq Error Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Methods

(==) :: Error -> Error -> Bool #

(/=) :: Error -> Error -> Bool #

Show Error Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Methods

showsPrec :: Int -> Error -> ShowS #

show :: Error -> String #

showList :: [Error] -> ShowS #

ToCBOR Error Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Methods

toCBOR :: Error -> Encoding Source #

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

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

FromCBOR Error Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

registerVoteWithConfirmation :: MonadError Error m => Annotated ProtocolMagicId ByteString -> Environment -> State -> AVote ByteString -> m State Source #

Register a vote and confirm the corresponding proposal if it passes the voting threshold. This corresponds to the UPVOTE rules in the spec.