{-# LANGUAGE ImportQualifiedPost #-} {-# LANGUAGE OverloadedLists #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -Wno-unrecognised-pragmas #-} {-# HLINT ignore "Use camelCase" #-} module Cardano.Ledger.CanonicalState.Namespace.EntitiesDReps.V0.CDDL where import Cardano.Ledger.CanonicalState.Namespace.CDDL.Common import Codec.CBOR.Cuddle.Huddle import Data.Function (($)) import Text.Heredoc (str) record_entry :: Rule record_entry :: Rule record_entry = Comment -> Rule -> Rule forall a. HasComment a => Comment -> a -> a comment Comment [str| The key for the namespace | | ``` | meta: | endian: be | | seq: | - id: key | type: credential | | types: | credential: | seq: | - id: tag | size: 1 | - id: hash | size: 28 | ``` |] (Rule -> Rule) -> Rule -> Rule forall a b. (a -> b) -> a -> b $ Name "record_entry" Name -> Rule -> Rule forall a. IsType0 a => Name -> a -> Rule =:= Rule drep_state drep_state :: Rule drep_state :: Rule drep_state = Name "drep_state" Name -> MapChoice -> Rule forall a. IsType0 a => Name -> a -> Rule =:= MapChoice -> MapChoice mp [ Key "expiry" Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule epoch_no , Key "anchor" Key -> Choice Type2 -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule anchor Rule -> Value Void -> Choice Type2 forall a c b. (IsChoosable a c, IsChoosable b c) => a -> b -> Choice c / Value Void VNil , Key "deposit" Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule coin , Key "delegations" Key -> GRuleCall -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule -> GRuleCall forall t0. IsType0 t0 => t0 -> GRuleCall set Rule credential ]