{-# 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.EntitiesAccounts.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 account_state account_state :: Rule account_state :: Rule account_state = Name "account_state" Name -> MapChoice -> Rule forall a. IsType0 a => Name -> a -> Rule =:= MapChoice -> MapChoice mp [ Key "balance" Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule coin , Key "deposit" Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule coin , Key "drep_delegation" Key -> Choice Type2 -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule drep Rule -> Value Void -> Choice Type2 forall a c b. (IsChoosable a c, IsChoosable b c) => a -> b -> Choice c / Value Void VNil , Key "stake_pool_delegation" Key -> Choice Type2 -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule pool_keyhash Rule -> Value Void -> Choice Type2 forall a c b. (IsChoosable a c, IsChoosable b c) => a -> b -> Choice c / Value Void VNil ] drep :: Rule drep :: Rule drep = Comment -> Rule -> Rule forall a. HasComment a => Comment -> a -> a comment Comment [str| 0 - key hash | 1 - script hash | 2 - always abstain | 3 - always no confidence |] (Rule -> Rule) -> Rule -> Rule forall a b. (a -> b) -> a -> b $ Name "drep" Name -> Choice ArrayChoice -> Rule forall a. IsType0 a => Name -> a -> Rule =:= ArrayChoice -> ArrayChoice arr [Item ArrayChoice ArrayEntry 0, Rule -> ArrayEntry forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e a Rule keyhash28] ArrayChoice -> ArrayChoice -> Choice ArrayChoice forall a c b. (IsChoosable a c, IsChoosable b c) => a -> b -> Choice c / ArrayChoice -> ArrayChoice arr [Item ArrayChoice ArrayEntry 1, Rule -> ArrayEntry forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e a Rule script_hash] Choice ArrayChoice -> ArrayChoice -> Choice ArrayChoice forall a c b. (IsChoosable a c, IsChoosable b c) => a -> b -> Choice c / ArrayChoice -> ArrayChoice arr [Item ArrayChoice ArrayEntry 2] Choice ArrayChoice -> ArrayChoice -> Choice ArrayChoice forall a c b. (IsChoosable a c, IsChoosable b c) => a -> b -> Choice c / ArrayChoice -> ArrayChoice arr [Item ArrayChoice ArrayEntry 3]