cardano-ledger-byron-1.3.0.0: 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

rnfEnvironment → () #

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.0-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.0-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

rnfRegistrationEnvironment → () #

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.0-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.0-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

toCBORErrorEncoding Source #

encodedSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy ErrorSize 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

encCBORErrorEncoding Source #

Show Error Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Methods

showsPrecIntErrorShowS #

showErrorString #

showList ∷ [Error] → ShowS #

Eq Error Source # 
Instance details

Defined in Cardano.Chain.Update.Validation.Voting

Methods

(==)ErrorErrorBool #

(/=)ErrorErrorBool #

registerVoteWithConfirmationMonadError Error m ⇒ Annotated ProtocolMagicId ByteStringEnvironmentStateAVote 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.