cardano-ledger-byron-1.3.0.1: The blockchain layer of Cardano during the Byron era
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
NFData Environment Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Methods

rnf ∷ Environment → () #

Generic Environment Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Associated Types

type Rep Environment 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

type Rep Environment = D1 ('MetaData "Environment" "Cardano.Chain.Update.Validation.Voting" "cardano-ledger-byron-1.3.0.1-inplace" '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))))
Show Environment Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Eq Environment Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

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-byron-1.3.0.1-inplace" '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
NFData RegistrationEnvironment Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Methods

rnf ∷ RegistrationEnvironment → () #

Generic RegistrationEnvironment Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Associated Types

type Rep RegistrationEnvironment 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

type Rep RegistrationEnvironment = D1 ('MetaData "RegistrationEnvironment" "Cardano.Chain.Update.Validation.Voting" "cardano-ledger-byron-1.3.0.1-inplace" '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)))
Show RegistrationEnvironment Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Eq RegistrationEnvironment Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

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-byron-1.3.0.1-inplace" '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
FromCBOR Error Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

ToCBOR Error Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Methods

toCBOR ∷ Error → Encoding Source #

encodedSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy Error → Size Source #

encodedListSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy [Error] → Size Source #

DecCBOR Error Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

EncCBOR Error Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Methods

encCBOR ∷ Error → Encoding Source #

Show Error Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Methods

showsPrec ∷ Int → Error → ShowS #

show ∷ Error → String #

showList ∷ [Error] → ShowS #

Eq Error Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Methods

(==) ∷ Error → Error → Bool #

(/=) ∷ Error → Error → Bool #

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.